LAPORAN PRESENTASI PENGENALAN BAHASA PEMROGRAMAN PROGRAMING LANGUAGE CONCEPT
KELOMPOK 7
Session 2 (Describing Syntax and Semantics)
- C
- Pengenalan Bahasa C
- C adalah bahasa pemrograman yang digunakan sebagai dasar bahasa pemrograman lain, seperti C# dan C++
- C merupakan hasil pengembangan dari bahasa BCPL oleh Martin Richards (1966), bahasa B oleh Ken Thompson (1970), dan kemudian menjadi bahasa C oleh Dennis Ritchie.
- C termasuk bahasa pemrograman tingkat menengah.
- C digunakan untuk merancang berbagai aplikasi dan sistem operasi seperti DOTA dan Windows.
- Kelebihan
- Tersedia untuk semua sistem operasi
- Sedikit kata kunci
- Terstruktur sehingga mudah dipahami
- Digunakan banyak orang
- Kekurangan
- Banyaknya operator
- Pointer (penanda alamat) yang susah dipahami
- Versi
- C K&R
- ANSI C dan ISO C
- C99
- Cara Penggunaan
#include<stdio.h>
int main()
{
statement;
getchar ();
return 0;
}
- Structure Theorem
- Sequence
Tahapan algoritma
- Selection
Seleksi kondisi sesuai syarat yang dimasukkan
- Repetition
Pengulangan untuk kondisi
#include<stdio.h>
int main ()
{
int total = 0;
int gradeCounter = 0;
int grade = 0;
int gradeAverage = 0;
while (gradeCounter < 10){
printf(“Masukkan 10 nilai murid : \n”);
scanf (“%d” , &grade);
total = total + grade;
gradeCounter++;
}
fflush (stdin);
gradeAverage = total /10;
printf(“the average is %d\n”, gradeAverage);
if (gradeAverage >= 70){
printf (“PASS!\n”);}
else{
printf(“FAILED!\n”);}
getchar();
return 0;
}
- Syntax-Semantic
Syntax : aturan penulisan untuk setiap statement
Semantic : arti dari statement
- C
- Syntax
Syntax adalah aturan penulisan untuk setiap statement pada bahasa C
- Semantic
- Operational Semantic (operasi matematika)
- Denotational Semantic (looping)
- Axiomatic Semantic (if, and, or)
Catatan jika syntax sudah benar namun menurut semantic salah, kemungkinan karena virus atau memori yang digunakan sudah tidak mencukupi.
- General Problem in C
- Recognizer
- Generators
- Ambiguous
Ex. intfloat = 0;
float adalah keyword yang tidak bisa dijadikan variabel
nilaiAkhir = 20/100*TM + 30/100*UTS + 50/100*UAS
ambigu jika tipe data yang digunakan adalah int karena hasil dari 20/100 adalah desimal, sementara int tidak membaca hasil desimal
- Grammar
- Backus Naur Form (BNF)
- Context – Free Grammar
Session 3 (Names, Bindings, Scopes)
- HTML
- Pengenalan HTML
- C adalah bahasa pemrograman yang digunakan untuk membuat web
- Sudah dikembangkan sejak Perang Dingin dengan nama ARPA
- Name
- String untuk mengidentifikasi program
- Tidak case sensitive
- Diawali dan diakhiri dengan tanda <>
- Binding
- Konsep dasar – menyimpan data pada memory sebagai penyimpan data dan pusat kegiatan sebelum program diproses
- Penulisan harus dengan 2 bahasa (HTML dan CSS)
- Ada 3 cara – tag, class, dan id
- Ada 3 jenis Binding – collateral, sequential, dan recursive
- Teknik Penggabungan HTML dan CSS
<html>
<head>
<style/css>
</head>
- Scope – tidak ada dalam HTML
- PHP
- Pengenalan PHP
- Hypertext Preprocessor
- Memiliki banyak keunggulan seperti, gratis, dinamis, mudah, didukung dengan banyak platform
- PHP juga dapat menggunakan berbagai jenis database, membuat cookies, dan encrypt data
- Variable
- Lokasi penyimpanan sebuah nilai dari suatu infomasi
- Tidak boleh diawali angka (alphanumeric), tanpa spasi, dan harus unik
- Diawali dengan tanda $
- Contoh : $angka = 5 atau $_kata = “Halo”
- Name
- Judul dari suatu informasi
- Panjang suatu Name tidak terbatas
- Type
Jenis data yang digunakan dalam PHP seperti, string, integer, float, double, array, Boolean, object, resource, NULL
- Value
Nilai dari suatu variable bisa selalu berubah. Nilai variable harus selalu dideklarasi.
- Scope
- Global : ada di setiap bagian program, diluar fungsi
- Local : hanya ada di program yang relevan, dideklarasikan pada fungsi
- Static : menyimpan nilai setelah dieksekusi
- Lifetime
3 jenis Lifetime, yaitu Static, Automatic, Dynamic
Session 5 (Expression and Assignments Statements)
- Java
- Operator – Operand
5 + 3
Ket. 5, 3 = operand
+ = operator
- Unary : 1 operand
- Binary : 2 operand
- Ternary : 3 operand
- Overloaded Operator (perjumlahan matriks)
Tidak diperlukan karena – tidak rapi, menghindari error, rumit
- Conversion
- Narrowing – float ” int
- Widening – int ” float
- Char 1 int
- Relational & Boolean Expression
< less than
> greater than
≤ less than or equal with
≥ greater than or equal with
== equal with
!= not equal
- Logical Expression
&& and
|| or
!= negation
- Short Circuit Evaluation
Digunakan untuk menghentikan operasi matematika dengan logical expression atau bitwise operator
- Assignment Statement
Statement yang berisi perintah, diakhiri dengan semicolon (;)
- Mixed Node Assignment
- Cara Kerja
- Fetching – mengambil operand
- Execute – melihat operator
- Cara Konversi
- Implisit – langsung diconvert
- Explisit – melalui variable
Session 6 (Control Structures Statement)
- Java
- Statement = perintah
- Looping = perintah berulang berurutan
- For
For (expression1; condition; expression2)
{statements}
- While
While (condition)
{statements}
- Do-While
Do {statements}
While (condition )
- Selection = menyeleksi perintah sesuai kondisi
- Switch case
Switch (variable){
Case a:
Statements;
Break;
Default:
Statements;
Break;
}
- If-else
If (condition)
{statement;}
Else if (condition)
{statement;}
Else (condition)
{statement;}
- Boolean
== equal
!= not equal
< less than
<= less than or equal with
> greater than
>= greater than or equal with
- C++
- Iterative
- Counter-control loop
For (expression1; condition; expression2)
{statements;}
- Pretest logically control loop
While(condition)
{statements;}
- Post test logically control loop
Do {statements;}
While (condition)
- Selection
- Multiple Ways
Switch (variable){
Case a:
Statements;
Break;
Default:
Statements;
Break;
}
- Two Ways
If (Boolean expression)
{statement;}
Else if (Boolean expression)
{statement;}
Else (Boolean expression)
{statement;}
- HTML (Javascript)
- Selection
- If-else
Example :
<html>
<body>
<script type=“text/javascript”>
var book=“maths”;
if(book==“history”){
document.write(“History book”);
}
else if (book==“maths”){
document.write(“Maths Book”);
}
else { document.write(“unknown book”);}
</script>
</body>
</html>
- Switch
Example :
<html>
<body>
<script type=”text/javascript”>
var grade=’A’;
document.write(“Entering switch block<br />”);
switch (grade)
{
case ‘A’: document.write(“Good job<br />”);
break;
case ‘B’: document.write(“Pretty good<br />”);
break;
case ‘C’: document.write(“Passed<br />”);
break;
case ‘D’: document.write(“Not so good<br />”);
break;
case ‘F’: document.write(“Failed<br />”);
break;
default: document.write(“Unknown grade<br />”)
}
document.write(“Exiting switch block”);
</script>
<p>Set the variable to different value and then try…</p>
</body>
</html>
- Iterative
- While
Example :
<html>
<body>
<script type=”text/javascript”>
var count = 0;
document.write(“Starting Loop “);
while (count < 10){
document.write(“Current Count : ” + count + “<br />”);
count++;
}
document.write(“Loop stopped!”);
</script>
<p>Set the variable to different value and then try…</p>
</body>
</html>
- Do – While
Example :
<html>
<body>
<script type=”text/javascript”>
var count = 0;
document.write(“Starting Loop” + “<br />”);
do{
document.write(“Current Count : ” + count + “<br />”);
count++;
}
while (count < 5);
document.write (“Loop stopped!”);
</script>
<p>Set the variable to different value and then try…</p>
</body>
</html>
- For
Example :
<html>
<body>
<script type=”text/javascript”>
var count;
document.write(“Starting Loop” + “<br />”);
for(count = 0; count < 10; count++){
document.write(“Current Count : ” + count );
document.write(“<br />”);
}
document.write(“Loop stopped!”);
</script>
<p>Set the variable to different value and then try…</p>
</body>
</html>
Session 8 (Abstract Data Type)
- C++
- Tipe data abstrak ” Structure (struct)
- Perbedaan Array dan Struct
Array : tipe data harus sama
Struct : tipe data bisa disesuaikan
- Contoh
Typedef struct{
Type name1;
Type name2;
}sepatu;
Int main(){
Sepatu sepatu1;
}
- PHP
- Tipe data abstrak ” Definisi static
- Stack : LIFO (Last In First Out)
- Queue : FIFO (First In First Out)
Session 10 (Concurrency)
- Concurrency adalah kondisi dimana dua pekerjaan dilakukan bersamaan dalam satu proses. Concurrency diselesaikan dengan Synchronization
- Jenis Concurrency :
- Physical ” CPU/hardware; ada lebih dari 2 instruksi
- Logical ” 1 proses 2 instruksi dijalankan sedikit demi sedikit
- Level Concurrency :
- Machine instruction ” terjadi pada bahasa mesin
- High level language statement ” terjadi pada bahasa pemrograman
- Unit/Subprogram” terjadi pada subprogram
- Program ” terjadi pada program (multitask)
- Tasks :
- Heavyweight ” masing-masing mempunyai address
- Lightweight ” mempunyai satu address
- Disjoint “tidak terjadi communication
- Critical Region adalah melarang 2 pekerjaan dilakukan bersamaan
- Jenis Critical Region :
- Mutual exclusion ” 1 proses menunggu/tidak interrupt
- Continuously progress ” 1 proses ga boleh di stop
- Bounded waiting ” 1 proses mencapai limit, stop proses
- Parallel somputing ” masing-masing di waktu yang sama
- Concurrency ” dikerjakan 2 pekerjaan sekaligus dalam 1 proses
- Synchronization :
- Cooperation ” jika suatu pekerjaan belum selesai, pekerjaan lainnya tidak bisa dikerjakan
- Competition “hasil suatu pekerjaan tertimpa oleh pekerjan lain yang keduanya dilakukan bersamaan
- Task Execution States :
New >> Ready >> Running >> Blocked >> Dead
- Race Condition :
- Competition & Cooperation
- Controlling Task Schedule
- Application Influence Task Scheduling
- Task Start & End Execution
- Liveness adalah program yang diyakini selesai dengan baik
- Deadlock adalah program yang diyakini tidak bisa bekerja dengan baik
- Metode Providing Sync :
- Semaphore ” cooperation – competition
- Monitors ” program yang mengawasi program utama
- Message passing ” communication