Algoritma dan Pemrograman Lesson 3 From Algorithms to

  • Slides: 45
Download presentation
Algoritma dan Pemrograman Lesson 3

Algoritma dan Pemrograman Lesson 3

From Algorithms to Programs 12/17/2021 Algoritma dan Pemrograman - Genap 2012 2

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

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

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

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

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

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

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

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

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

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

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

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 -

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

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

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

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

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

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

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

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

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

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

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

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 Flowchart 12/17/2021 Algoritma dan Pemrograman - Genap 2012 26

Contoh Requirement Buat sebuah algoritma untuk memilih bilangan terbesar dari 3 buah bilangan Nantinya

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

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

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 ←

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

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

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

Contoh Flowchart 12/17/2021 Algoritma dan Pemrograman - Genap 2012 33

CONDITION/DECISION 12/17/2021 Algoritma dan Pemrograman - Genap 2012 34

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

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 Tunggal 12/17/2021 Algoritma dan Pemrograman - Genap 2012 36

Logika Keputusan Ganda 12/17/2021 Algoritma dan Pemrograman - Genap 2012 37

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 Keputusan Bertingkat/Jamak 12/17/2021 Algoritma dan Pemrograman - Genap 2012 38

Logika Rekursif/Repetition/Looping dan Kriteria Pemberhentian

Logika Rekursif/Repetition/Looping dan Kriteria Pemberhentian

Repetition / Recursive Structure YES NO NO YES 12/17/2021 Algoritma dan Pemrograman - Genap

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 1 12/17/2021 Algoritma dan Pemrograman - Genap 2012 41

Alternatif 2 12/17/2021 Algoritma dan Pemrograman - Genap 2012 42

Alternatif 2 12/17/2021 Algoritma dan Pemrograman - Genap 2012 42

Alternatif 3 12/17/2021 Algoritma dan Pemrograman - Genap 2012 43

Alternatif 3 12/17/2021 Algoritma dan Pemrograman - Genap 2012 43

Alternatif 4 12/17/2021 Algoritma dan Pemrograman - Genap 2012 44

Alternatif 4 12/17/2021 Algoritma dan Pemrograman - Genap 2012 44

SEE YOU…… 12/17/2021 Algoritma dan Pemrograman - Genap 2012 45

SEE YOU…… 12/17/2021 Algoritma dan Pemrograman - Genap 2012 45