14. ContohContoh
• RequirementRequirement
• Buat sebuah algoritma untuk memilih bilanganBuat sebuah algoritma untuk memilih bilangan
terbesar dari 3 buah bilanganterbesar dari 3 buah bilangan
• Nantinya ini bisa digeneralisir menjadiNantinya ini bisa digeneralisir menjadi nn buahbuah
bilanganbilangan
Add
15. Algoritma Dalam Bahasa NaturalAlgoritma Dalam Bahasa Natural
1.1. Ambil bilangan pertama dan setAmbil bilangan pertama dan set maksmaks samasama
dengan bilangan pertamadengan bilangan pertama
2.2. Ambil bilangan kedua dan bandingkan denganAmbil bilangan kedua dan bandingkan dengan
maksmaks
3.3. Apa bila bilangan kedua lebih besar dariApa bila bilangan kedua lebih besar dari maksmaks,,
setset maksmaks sama dengan bilangan keduasama dengan bilangan kedua
4.4. Ambil blangan ketiga dan bandingan denganAmbil blangan ketiga dan bandingan dengan
maksmaks
5.5. Apabila bilangan ketiga lebih besar dariApabila bilangan ketiga lebih besar dari maksmaks,,
setset maksmaks sama dengan bilangan ketigasama dengan bilangan ketiga
6.6. VariabelVariabel maksmaks berisi bilangan terbesar.berisi bilangan terbesar.
Tayangkan hasilnyaTayangkan hasilnya
Add
17. Algoritma denganAlgoritma dengan pseudo-codepseudo-code
maksmaks ← bilangan pertama← bilangan pertama
if (if (maksmaks < bilangan kedua)< bilangan kedua)
maksmaks ← bilangan kedua← bilangan kedua
if (if (maksmaks < bilangan ketiga)< bilangan ketiga)
maksmaks ← bilangan ketiga← bilangan ketiga
Add
18. Aspek Penting dari AlgoritmaAspek Penting dari Algoritma
1.1. FinitenessFiniteness
• Algoritma harus berhentiAlgoritma harus berhenti after a finite number of stepsafter a finite number of steps
1.1. DefinitenessDefiniteness
• Setiap langkah harus didefinisikan secara tepat, tidak bolehSetiap langkah harus didefinisikan secara tepat, tidak boleh
membingungkan (ambiguous)membingungkan (ambiguous)
1.1. InputInput
• Sebuah algoritma memiliki nol atau lebih input yang diberikanSebuah algoritma memiliki nol atau lebih input yang diberikan
kepada algoritma sebelum dijalankankepada algoritma sebelum dijalankan
1.1. OutputOutput
• Sebuah algoritma memiliki satu atau lebih output, yang biasanyaSebuah algoritma memiliki satu atau lebih output, yang biasanya
bergantung kepada inputbergantung kepada input
1.1. EffectivenessEffectiveness
• Setiap algoritma diharapkan miliki sifat efektifSetiap algoritma diharapkan miliki sifat efektif
Add
19. TugasTugas
• Buat algoritma untukBuat algoritma untuk
• Mengurutkan bilangan (Mengurutkan bilangan (sortingsorting) untuk) untuk nn buahbuah
data (misalnya data nilai mahasiswa)data (misalnya data nilai mahasiswa)
• Tower of hanoiTower of hanoi
• ……
Add
20. Algoritma danAlgoritma dan PseudocodePseudocode
• Algoritma: urutan langkah-langkah yang dapatAlgoritma: urutan langkah-langkah yang dapat
digunakan untuk memecahkan suatu masalahdigunakan untuk memecahkan suatu masalah
• PseudocodePseudocode::
• Bahasa buatan yang bersifat informal yang dapatBahasa buatan yang bersifat informal yang dapat
membantu untuk mengembangkan algoritmamembantu untuk mengembangkan algoritma
• Serupa dengan bahasa sehari-hariSerupa dengan bahasa sehari-hari
• Membantu mempermudah penulisan program; denganMembantu mempermudah penulisan program; dengan
menggunakanmenggunakan statement-statementstatement-statement yang dapatyang dapat
dieksekusi, mempermudah konversi ke bahasadieksekusi, mempermudah konversi ke bahasa
pemrogramanpemrograman
21. Struktur KontrolStruktur Kontrol
• Semua program ditulis dalam 3 macam bentuk struktur kontrol:Semua program ditulis dalam 3 macam bentuk struktur kontrol:
• SequenceSequence atau berturutan: struktur ini tersedia secaraatau berturutan: struktur ini tersedia secara built-inbuilt-in. Secara. Secara
defaultdefault program dieksekusi secara berturutan sesuai urutan perintahprogram dieksekusi secara berturutan sesuai urutan perintah
• SelectionSelection atau pilihan: ada 3 macam dalam bahasa C:atau pilihan: ada 3 macam dalam bahasa C: ifif,, if…elseif…else, dan, dan
switchswitch
• RepetitionRepetition atau pengulangan: ada 3 macam dalam bahasa C:atau pengulangan: ada 3 macam dalam bahasa C: whilewhile,, do…do…
whilewhile, dan, dan forfor
• FlowchartFlowchart
• Representasi grafis dari algoritmaRepresentasi grafis dari algoritma
• Menggunakan simbol-simbol khusus yang dihubungkan dengan garisMenggunakan simbol-simbol khusus yang dihubungkan dengan garis
beranak panahberanak panah
• SimbolSimbol kotakkotak melambangkanmelambangkan aksiaksi
• SimbolSimbol ovaloval melambangkanmelambangkan awalawal dandan akhirakhir suatu program atau bloksuatu program atau blok
programprogram
• SimbolSimbol berlianberlian melambangkan keputusan/pilihanmelambangkan keputusan/pilihan
22. Selection ControlSelection Control [1] ([1] (ifif))
• StatementStatement ifif::
• Digunakan untuk seleksi suatu kondisiDigunakan untuk seleksi suatu kondisi
• ContohContoh pseudocodepseudocode::
If student’s grade is greater than or equal to 60If student’s grade is greater than or equal to 60
Print “Passed”Print “Passed”
• ContohContoh FlowchartFlowchart::
true
false
grade >= 60 print “Passed”
23. Selection ControlSelection Control [2] ([2] (ifif))
• Jika kondisiJika kondisi truetrue
• StatementStatement PrintPrint dieksekusi dan program dilanjutkan kedieksekusi dan program dilanjutkan ke statementstatement
berikutnyaberikutnya
• Jika kondisiJika kondisi falsefalse
• StatementStatement PrintPrint diabaikan dan program dilanjutkan kediabaikan dan program dilanjutkan ke statementstatement berikutnyaberikutnya
• DalamDalam bahasa C:bahasa C:
if ( grade >= 60 )if ( grade >= 60 )
printf( "Passedn" );printf( "Passedn" );
24. Selection ControlSelection Control [3] ([3] (if…elseif…else))
• StatementStatement if…elseif…else::
• Menspesifikasikan aksi baik untuk kondisiMenspesifikasikan aksi baik untuk kondisi truetrue maupun untuk kondisimaupun untuk kondisi
falsefalse
• ContohContoh pseudocodepseudocode::
If student’s grade is greater than or equal to 60If student’s grade is greater than or equal to 60
Print “Passed”Print “Passed”
elseelse
Print “Failed”Print “Failed”
• ContohContoh FlowchartFlowchart:: truefalse
print “Failed” print “Passed”
grade >= 60
25. Selection ControlSelection Control [4] ([4] (if…elseif…else))
• Dalam C :Dalam C :
if ( grade >= 60 )if ( grade >= 60 )
printf( "Passedn");printf( "Passedn");
elseelse
printf( "Failedn");printf( "Failedn");
• Ternary conditional operatorTernary conditional operator ((?:?:))
• Memerlukan tiga argumen (kondisi, nilai jikaMemerlukan tiga argumen (kondisi, nilai jika truetrue, nilai jika, nilai jika falsefalse))
• Contoh di atas dapat ditulis sbb:Contoh di atas dapat ditulis sbb:
printf( "%sn", grade >= 60 ? "Passed" : "Failed" );printf( "%sn", grade >= 60 ? "Passed" : "Failed" );
• Atau dapat ditulis sbb:Atau dapat ditulis sbb:
grade >= 60 ? printf( “Passedn” ) :grade >= 60 ? printf( “Passedn” ) :
printf( “Failedn” );printf( “Failedn” );
26. Selection ControlSelection Control [5] ([5] (if…elseif…else))
• StatementStatement if…elseif…else bertingkat/bersarang:bertingkat/bersarang:
• Digunakan untuk menguji banyak kondisi dimana menempatkanDigunakan untuk menguji banyak kondisi dimana menempatkan statementstatement
seleksiseleksi ifif……elseelse di dalamdi dalam statementstatement ifif……elseelse
• Sekali kondisi terpenuhi, sisaSekali kondisi terpenuhi, sisa statementstatement lainnya dilewatkan/diabaikanlainnya dilewatkan/diabaikan
• ContohContoh pseudocodepseudocode::
IIf student’s grade is greater than or equal to 90f student’s grade is greater than or equal to 90
Print “A”Print “A”
elseelse
If student’s grade is greater than or equal to 80If student’s grade is greater than or equal to 80
Print “B”Print “B”
elseelse
If student’s grade is greater than or equal to 70If student’s grade is greater than or equal to 70
Print “C”Print “C”
elseelse
If student’s grade is greater than or equal to 60If student’s grade is greater than or equal to 60
Print “D”Print “D”
elseelse
Print “F”Print “F”
27. Selection ControlSelection Control [6] ([6] (if…elseif…else))
• Compound statementCompound statement
• Ada lebih dari satuAda lebih dari satu statementstatement/aksi yang harus dieksekusi setelah suatu kondisi/aksi yang harus dieksekusi setelah suatu kondisi
dipenuhidipenuhi
• Sering disebut jugaSering disebut juga blokblok karena ditandai dengan pasangankarena ditandai dengan pasangan {{ dandan }}
• Contoh:Contoh:
if ( grade >= 60 )if ( grade >= 60 )
printf( "Passed.n" );printf( "Passed.n" );
else {else {
printf( "Failed.n" );printf( "Failed.n" );
printf( "You must take this courseprintf( "You must take this course
again.n" );again.n" );
}}
• Tanpa tanda kurung kurawal,Tanpa tanda kurung kurawal, statementstatement
printf( "You must take this courseprintf( "You must take this course
again.n" );again.n" );
Akan dieksekusi secara otomatis.Akan dieksekusi secara otomatis.
28. Selection ControlSelection Control [7] ([7] (switchswitch))
• Multiple-Selection StatementMultiple-Selection Statement switch:switch:
• Berguna pada waktu sebuah variabel atau ekspresi diuji terhadap semuaBerguna pada waktu sebuah variabel atau ekspresi diuji terhadap semua
nilai yang mungkin dan masing-masing mengambil aksi yang berbedanilai yang mungkin dan masing-masing mengambil aksi yang berbeda
• Format penulisan:Format penulisan:
• Sederetan labelSederetan label casecase dan opsionaldan opsional defaultdefault casecase
switchswitch ( value ){( value ){
casecase '1':'1':
actionsactions
casecase '2':'2':
actionsactions
defaultdefault::
actionsactions
}}
• breakbreak;; keluar darikeluar dari statementstatement
29. Selection ControlSelection Control [8] ([8] (switchswitch))
• Flowchart statementFlowchart statement switchswitch::
true
false
.
.
.
case a case a action(s) break
case b case b action(s) break
false
false
case z case z action(s) break
true
true
default action(s)
30. Repetition ControlRepetition Control [1] ([1] (whilewhile))
• Struktur pengulangan structureStruktur pengulangan structure
• Programmer menentukan aksi yang akan diulang selama kondisi tetapProgrammer menentukan aksi yang akan diulang selama kondisi tetap
truetrue
• PsuedocodePsuedocode::
While there are more items on my shopping listWhile there are more items on my shopping list
Purchase next item and cross it off my listPurchase next item and cross it off my list
• whilewhile loop diulang hingga kondisi menjadiloop diulang hingga kondisi menjadi falsefalse
• Contoh:Contoh:
int product = 2;int product = 2;
while ( product <= 1000 )while ( product <= 1000 )
product = 2 * product;product = 2 * product;
32. Repetition ControlRepetition Control [3] ([3] (whilewhile))
• Pengulangan yang dikontrol sebuahPengulangan yang dikontrol sebuah countercounter
• LoopLoop diulang hinggadiulang hingga countercounter mencapai angka tertentumencapai angka tertentu
• Disebut jugaDisebut juga definite repetitiondefinite repetition karena jumlah pengulangan dapat kitakarena jumlah pengulangan dapat kita
ketahuiketahui
• Contoh: Sebuah kelas dengan 10 orang mahasiswa mengikuti kuis. NilaiContoh: Sebuah kelas dengan 10 orang mahasiswa mengikuti kuis. Nilai
kuis adalah bilangan bulat dari 0 hingga 100. Tentukan nilai rata-rata kuiskuis adalah bilangan bulat dari 0 hingga 100. Tentukan nilai rata-rata kuis
tersebut.tersebut.
• Pseudocode:Pseudocode:
Set total to zeroSet total to zero
Set grade counter to oneSet grade counter to one
While grade counter is less than or equal to tenWhile grade counter is less than or equal to ten
Input the next gradeInput the next grade
Add the grade into the totalAdd the grade into the total
Add one to the grade counterAdd one to the grade counter
Set the class average to the total divided by tenSet the class average to the total divided by ten
Print the class averagePrint the class average