NO
Add
Contoh • Requirement • Buat sebuah algoritma untuk memilih bilangan terbesar dari 3 buah bilangan • Nantinya ini bisa digeneralisir menjadi n buah bilangan
Algoritma Dalam Bahasa Natural 1. Ambil bilangan pertama dan set maks sama dengan bilangan pertama 2. Ambil bilangan kedua dan bandingkan dengan maks 3. Apa bila bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua 4. Ambil blangan ketiga dan bandingan dengan maks 5. Apabila bilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga 6. Variabel maks berisi bilangan terbesar. Tayangkan hasilnya
Add
Add
Algoritma dengan Flowchart Mulai
Maks = bilangan pertama
Maks < bilangan kedua
Ya
Maks = bilangan kedua
Ya
Maks = bilangan ketiga
Tidak
Maks < bilangan ketiga
Tidak
Selesai
Add
Algoritma dengan pseudo-code maks ← bilangan pertama if (maks < bilangan kedua) maks ← bilangan kedua
if (maks < bilangan ketiga) maks ← bilangan ketiga
Add
Aspek Penting dari Algoritma 1.
Finiteness •
2.
Algoritma harus berhenti after a finite number of steps
Definiteness •
3.
Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambiguous)
Input •
4.
Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan
Output •
5.
Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input
Effectiveness •
Setiap algoritma diharapkan miliki sifat efektif
Add
Tugas • Buat algoritma untuk • Mengurutkan bilangan (sorting) untuk n buah data (misalnya data nilai mahasiswa) • Tower of hanoi • …
Algoritma dan Pseudocode • Algoritma: urutan langkah-langkah yang dapat digunakan untuk memecahkan suatu masalah • Pseudocode: • Bahasa buatan yang bersifat informal yang dapat membantu untuk mengembangkan algoritma • Serupa dengan bahasa sehari-hari • Membantu mempermudah penulisan program; dengan menggunakan statement-statement yang dapat dieksekusi, mempermudah konversi ke bahasa pemrograman
Struktur Kontrol •
Semua program ditulis dalam 3 macam bentuk struktur kontrol: • •
•
•
Sequence atau berturutan: struktur ini tersedia secara built-in. Secara default program dieksekusi secara berturutan sesuai urutan perintah Selection atau pilihan: ada 3 macam dalam bahasa C: if, if…else, dan switch Repetition atau pengulangan: ada 3 macam dalam bahasa C: while, do…while, dan for
Flowchart • • • • •
Representasi grafis dari algoritma Menggunakan simbol-simbol khusus yang dihubungkan dengan garis beranak panah Simbol kotak melambangkan aksi Simbol oval melambangkan awal dan akhir suatu program atau blok program Simbol berlian melambangkan keputusan/pilihan
Selection Control [1] (if) •
Statement if: • •
Digunakan untuk seleksi suatu kondisi Contoh pseudocode:
If student’s grade is greater than or equal to 60 Print “Passed” •
Contoh Flowchart:
grade >= 60
false
true
print “Passed”
Selection Control [2] (if) •
Jika kondisi true •
•
Jika kondisi false •
•
Statement Print dieksekusi dan program dilanjutkan ke statement berikutnya Statement Print diabaikan dan program dilanjutkan ke statement berikutnya
Dalam bahasa C: if ( grade >= 60 ) printf( "Passed\n" );
Selection Control [3] (if…else) •
Statement if…else: •
Menspesifikasikan aksi baik untuk kondisi true maupun untuk kondisi false
•
Contoh pseudocode:
If student’s grade is greater than or equal to 60 Print “Passed” else Print “Failed” •
false Contoh Flowchart:
print “Failed”
grade >= 60
true
print “Passed”
Selection Control [4] (if…else) •
Dalam C : if ( grade >= 60 ) printf( "Passed\n"); else printf( "Failed\n");
•
Ternary conditional operator (?:) • •
Memerlukan tiga argumen (kondisi, nilai jika true, nilai jika false) Contoh di atas dapat ditulis sbb: printf( "%s\n", grade >= 60 ? "Passed" : "Failed" );
•
Atau dapat ditulis sbb: grade >= 60 ? printf( “Passed\n” ) : printf( “Failed\n” );
Selection Control [5] (if…else) •
Statement if…else bertingkat/bersarang: •
Digunakan untuk menguji banyak kondisi dimana menempatkan statement seleksi if…else di dalam statement if…else • Sekali kondisi terpenuhi, sisa statement lainnya dilewatkan/diabaikan • Contoh pseudocode: If student’s grade is greater than or equal to 90 Print “A” else If student’s grade is greater than or equal to 80 Print “B” else If student’s grade is greater than or equal to 70 Print “C” else If student’s grade is greater than or equal to 60 Print “D” else Print “F”
Selection Control [6] (if…else) •
Compound statement • • •
Ada lebih dari satu statement/aksi yang harus dieksekusi setelah suatu kondisi dipenuhi Sering disebut juga blok karena ditandai dengan pasangan { dan } Contoh: if ( grade >= 60 ) printf( "Passed.\n" ); else { printf( "Failed.\n" ); printf( "You must take this course again.\n" ); }
•
Tanpa tanda kurung kurawal, statement printf( "You must take this course again.\n" ); Akan dieksekusi secara otomatis.
Selection Control [7] (switch) •
Multiple-Selection Statement switch: • •
Berguna pada waktu sebuah variabel atau ekspresi diuji terhadap semua nilai yang mungkin dan masing-masing mengambil aksi yang berbeda Format penulisan: • Sederetan label case dan opsional default case switch ( value ){
case '1': actions case '2': actions default: actions } • break; keluar dari statement
Selection Control [8] (switch) •
Flowchart statement switch:
case a
true
case a action(s)
break
case b action(s)
break
case z action(s)
break
false
case b
true
false
. . .
case z false default action(s)
true
Repetition Control [1] (while) •
Struktur pengulangan structure • •
Programmer menentukan aksi yang akan diulang selama kondisi tetap true Psuedocode: While there are more items on my shopping list Purchase next item and cross it off my list
• while loop diulang hingga kondisi menjadi false
•
Contoh: int product = 2; while ( product <= 1000 ) product = 2 * product;
Repetition Control [2] (while) • Flowchart:
product <= 1000
false
true product = 2 * product
Repetition Control [3] (while) •
Pengulangan yang dikontrol sebuah counter • • • •
Loop diulang hingga counter mencapai angka tertentu Disebut juga definite repetition karena jumlah pengulangan dapat kita ketahui Contoh: Sebuah kelas dengan 10 orang mahasiswa mengikuti kuis. Nilai kuis adalah bilangan bulat dari 0 hingga 100. Tentukan nilai rata-rata kuis tersebut. Pseudocode: Set total to zero Set grade counter to one While grade counter is less than or equal to ten Input the next grade Add the grade into the total Add one to the grade counter Set the class average to the total divided by ten Print the class average