Algoritma dan Pemrograman Lesson 3 From Algorithms to













































- Slides: 45
Algoritma dan Pemrograman Lesson 3
From Algorithms to Programs 12/17/2021 Algoritma dan Pemrograman - Genap 2012 2
The Software Development Process Define the problem clearly Analyse the problem thoroughly Design an algorithm carefully Code the algorithm efficiently Test the code thoroughly Document the system lucidly 12/17/2021 Algoritma dan Pemrograman - Genap 2012 3
Top-down Algorithm Design Write down what you have to do Break that into 3 -7 smaller steps Break each step into 3 -7 smaller steps Keeping subdividing until each individual step is easy enough to do Example: Learning 12/17/2021 Algoritma dan Pemrograman - Genap 2012 4
Top-down Design -- Example 12/17/2021 Algoritma dan Pemrograman - Genap 2012 5
Cara Penyajian Algoritma Uraian Deskriptif Menggunakan bahasa yang bisa di gunakan sehari-hari Menggunakan flow chart (diagram alir) Menggunakan pseudo-code Ditulis dalam kode-kode yang disepakati yang mempunyai arti 12/17/2021 Algoritma dan Pemrograman - Genap 2012 6
Dasar-dasar FLOWCHART 12/17/2021 Algoritma dan Pemrograman - Genap 2012 7
Algoritma dan Flowchart Algoritma merupakan urutan langkah logika pemikiran detail yang diperlukan untuk memecahkan masalah. Algoritma dapat direpresentasikan dalam format grafis yang disebut flowchart atau diagram alir. Flowchart juga dapat digunakan untuk menggambarkan aliran urutan program 12/17/2021 Algoritma dan Pemrograman - Genap 2012 8
Bagan-bagan Flowchart Terminal Bentuk : rounded rectangle Mengindikasikan titik awal atau akhir 12/17/2021 Algoritma dan Pemrograman - Genap 2012 9
Bagan-bagan Flowchart Connector Bentuk : circle Mengindikasikan titik penghubung ke bagan lain yang terputus dalam satu halaman karena terlalu jauh atau memungkinkan memotong garis panah lain 12/17/2021 Algoritma dan Pemrograman - Genap 2012 10
Bagan-bagan Flowchart Connector Bentuk : pentagon Mengindikasikan titik penghubung ke bagan lain yang terputus karena beda halaman 12/17/2021 Algoritma dan Pemrograman - Genap 2012 11
Bagan-bagan Flowchart Preparation atau initialization Bentuk : hexagon Mengindikasikan tahap awal pemrograman (misalnya mendeklarasikan variabel, mengidentifikasikan nilai awal konstanta atau variabel) 12/17/2021 Algoritma dan Pemrograman - Genap 2012 12
Bagan-bagan Flowchart Data Bentuk : parallelogram Mengindikasikan masukan atau keluaran data 12/17/2021 Algoritma dan Pemrograman - Genap 2012 13
Bagan-bagan Flowchart Process Bentuk : rectangle Mengindikasikan proses komputasi 12/17/2021 Algoritma dan Pemrograman - Genap 2012 14
Bagan-bagan Flowchart Predefined/Nested Process (Subroutine) Bentuk : rectangle Mengindikasikan proses komputasi 12/17/2021 Algoritma dan Pemrograman - Genap 2012 15
Bagan-bagan Flowchart Manual Operation Bentuk : trapezoid Mengindikasikan operasi yang dilakukan secara manual 12/17/2021 Algoritma dan Pemrograman - Genap 2012 16
Bagan-bagan Flowchart Manual Input Bentuk : trapezoid Mengindikasikan masukan manual menggunakan input device (misalnya keyboard, mouse, bar code reader, imaging device) 12/17/2021 Algoritma dan Pemrograman - Genap 2012 17
Bagan-bagan Flowchart Card Bentuk : chamfered rectangle Mengindikasikan penggunaan card reader (misalnya punched card reader ataupun memory card reader) 12/17/2021 Algoritma dan Pemrograman - Genap 2012 18
Bagan-bagan Flowchart Database atau Repository Bentuk : drum Mengindikasikan penggunaan media penyimpanan basisdata 12/17/2021 Algoritma dan Pemrograman - Genap 2012 19
Bagan-bagan Flowchart Display Bentuk : CRT Symbol Mengindikasikan proses penampilan informasi untuk dibaca atau dilihat user di layar monitor atau projector 12/17/2021 Algoritma dan Pemrograman - Genap 2012 20
Bagan-bagan Flowchart Report Bentuk : Sheet Mengindikasikan proses pencetakan laporan untuk dibaca atau dilihat user menggunakan printer atau plotter 12/17/2021 Algoritma dan Pemrograman - Genap 2012 21
Bagan-bagan Flowchart Annotation Bentuk : Arrow Mengindikasikan hubungan presedensi antar operasi atau alur urutan operasi 12/17/2021 Algoritma dan Pemrograman - Genap 2012 22
Bagan-bagan Flowchart Decision Bentuk : diamond Mengindikasikan pencabangan alternatif operasi dengan pengambilan keputusan berdasarkan kriteria atau kondisi 12/17/2021 Algoritma dan Pemrograman - Genap 2012 23
Contoh Flowchart: Metodologi Pengembangan Program Mulai Analisis Domain Masalah Merumuskan Algoritma Semua Skenario Tertulis ? Mapping Flowchart 12/17/2021 Struktur Logika Sesuai ? Compile Machine Code Compile Berhasil ? Verify Program Code Debug Listing Program Eksekusi Program Identifier, Syntax, Semantic ? Eksekusi Berhasil ? Algoritma dan Pemrograman - Genap 2012 Keluaran Program Sesuai ? Eksekusi Program Selesai 24
Contoh Algoritma Step 1: Turn the stereo on. Step 2: If the band is set to FM, switch it to AM. Step 3: If the station is set to a station greater than 610, turn the station to the left until 610 is reached. Step 4: If the station is set to a station less than 610, turn the station to the right until 610 is reached. Step 5: Listen to the best sports talk station in the country. 12/17/2021 Algoritma dan Pemrograman - Genap 2012 25
Contoh Flowchart 12/17/2021 Algoritma dan Pemrograman - Genap 2012 26
Contoh Requirement Buat sebuah algoritma untuk memilih bilangan terbesar dari 3 buah bilangan Nantinya ini bisa digeneralisir menjadi n buah bilangan 12/17/2021 Algoritma dan Pemrograman - Genap 2012 27
Algoritma Dalam Bahasa Natural 1. 2. 3. 4. 5. 6. Ambil bilangan pertama dan set maks sama dengan bilangan pertama Ambil bilangan kedua dan bandingkan dengan maks Apa bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua Ambil bilangan ketiga dan bandingan dengan maks Apabilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga Variabel maks berisi bilangan terbesar. Tayangkan hasilnya 12/17/2021 Algoritma dan Pemrograman - Genap 2012 28
Algoritma dengan Flowchart memilih bilangan terbesar dari 3 buah bilangan 12/17/2021 Algoritma dan Pemrograman - Genap 2012 29
Algoritma dengan pseudo-code maks ← bilangan pertama if (maks < bilangan kedua) maks ← bilangan kedua if (maks < bilangan ketiga) maks ← bilangan ketiga 12/17/2021 Algoritma dan Pemrograman - Genap 2012 30
CONTOH PSEUDOCODE (1) Algoritma untuk menampilkan 7 buah simbol # 1 for i=1 to 7 do 2 display ”#” 3 end for 12/17/2021 Algoritma dan Pemrograman - Genap 2012 31
CONTOH PSEUDOCODE (2) Algoritma untuk menghitung Faktorial dari N 1 i. Tampung=1 2 for i=1 to N do 3 i. Tampung=i. Tampung*i 4 end for 5 display ”Faktorial dari ”, N, ” adalah ”, i. Tampung, NL 12/17/2021 Algoritma dan Pemrograman - Genap 2012 32
Contoh Flowchart 12/17/2021 Algoritma dan Pemrograman - Genap 2012 33
CONDITION/DECISION 12/17/2021 Algoritma dan Pemrograman - Genap 2012 34
Decision / Condition Structure NO YES NO YES 12/17/2021 Algoritma dan Pemrograman - Genap 2012 35
Logika Keputusan Tunggal 12/17/2021 Algoritma dan Pemrograman - Genap 2012 36
Logika Keputusan Ganda 12/17/2021 Algoritma dan Pemrograman - Genap 2012 37
Logika Keputusan Bertingkat/Jamak 12/17/2021 Algoritma dan Pemrograman - Genap 2012 38
Logika Rekursif/Repetition/Looping dan Kriteria Pemberhentian
Repetition / Recursive Structure YES NO NO YES 12/17/2021 Algoritma dan Pemrograman - Genap 2012 40
Alternatif 1 12/17/2021 Algoritma dan Pemrograman - Genap 2012 41
Alternatif 2 12/17/2021 Algoritma dan Pemrograman - Genap 2012 42
Alternatif 3 12/17/2021 Algoritma dan Pemrograman - Genap 2012 43
Alternatif 4 12/17/2021 Algoritma dan Pemrograman - Genap 2012 44
SEE YOU…… 12/17/2021 Algoritma dan Pemrograman - Genap 2012 45