Matakuliah Tahun Versi : T0616 / Algoritma dan Pemrograman : 2007 : 1/0 Pertemuan 05-06 Pengembangan Algoritma 1 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Mengembangkan algoritma untuk memecahkan masalah (C2) 2 Outline Materi Pengembangan Algoritma • Definisi Masalah • Merancang Solusi Algoritma • Menguji Algoritma 3 Definisi Masalah • Untuk memahami definisi suatu masalah, maka kita perlu berulang kali membaca permasalahan tersebut. Pembacaan ini dilakukan sampai mengerti secara penuh apa yang dibutuhkan. • Untuk melakukan analisis awal, maka masalah perlu dibagi kedalam tiga komponen yaitu : 1. Input : data yang disediakan untuk menyelesaikan masalah 2. Output : data keluaran yang diperlukan 3. Process : daftar aksi yang diperlukan untuk menghasilkan output 4 Merancang algoritma solusi • Setelah melakukan definisi masalah, maka langkah selanjutnya adalah bagaimana merancang algoritma solusi. • Untuk merancang algoritma solusi digunakan pseudocode. • Dari proses yang ada, maka akan diubah kedalam solusi algoritma, dengan menggunakan pseudocode 5 Contoh • Sebuah program dibutuhkan untuk membaca dua bilangan, menghitung jumlah, selisih, hasil kali, dan hasil bagi. Hasil akhir perhitungan akan ditampilkan ke layar. 6 Contoh • Definisi masalah Input Bil_1 Bil_2 Proses baca bil_1,bil_2 Hitung jumlah Hitung selisih Hitung kali Hitung bagi Cetak jumlah Cetak selisih Cetak kali Cetak bagi Output Jumlah Selisih Kali Bagi 7 Contoh • Algoritma solusi: Program_Kalkulator BEGIN baca bil_1, bil_2 jumlah = bil_1 + bil_2 selisih = bil_1 – bil_2 kali = bil_1 * bil_2 bagi = bil_1 / bil_2 cetak jumlah, selisih, kali, bagi END 8 Cek algoritma solusi • Setelah algoritma solusi dibuat, maka algoritma tersebut harus di-cek (diperiksa) untuk mengetahui apakah algoritma solusi yang dirancang sudah benar atau belum. • Pengecekan ini biasanya disebut dengan desk checking 9 Cek algoritma solusi • Ada 6 langkah mudah untuk melakukan pemeriksaan (checking) terhadap algoritma: 1. 2. 3. 4. 5. 6. Pilih data sederhana yang valid. Dua atau tiga data biasanya sudah mencukupi. Tentukan hasil output yang diharapkan untuk setiap set data. Buatlah tabel berisi nama variabel yang ada pada algoritma tersebut di sebuah kertas Jalankan test satu persatu mengikuti algoritma yang ada, mulai dari perintah / statement pertama sampai dengan selesai Ulangi langkah tersebut menggunakan set data yang lain. Cek apakah hasil dari langkah kelima, sesuai dengan hasil yang diharapkan di langkah kedua 10 Contoh • Desk Checking: – Data input: Data 1 Data 2 Bil_1 10 20 Bil_2 5 10 11 Contoh • Desk Checking – Hasil yang diharapkan: Data 1 Data 2 Jumlah 15 30 Selisih 5 10 Kali 50 200 Bagi 2 2 12 Contoh • Tabel desk checking cetak Data ke - 1 Baca jumlah selisih kali bagi cetak Data ke-2 Baca jumlah selisih kali bagi cetak bil_1 10 bil_2 jumlah selisih kali bagi 5 15 5 50 2 ya 20 ya ya ya 10 30 10 200 2 ya ya ya ya 13 Contoh • Mengkonversikan derajat Celcius ke Reamur dan Fahrenheit. Yang dibaca adalah derajat Celcius. Data dibaca sebanyak 15 kali. 14 Contoh – Jawaban • Definisi Masalah Input Proses Output Celcius Baca Celcius Celcius, (15 Kali) Hitung Reamur Reamur, Hitung Fahrenheit Fahrenheit Cetak Celcius, Reamur dan Fahrenheit 15 Contoh – Jawaban • Algoritma Solusi X=0 DOWHILE X<15 X=X+1 Baca Celcius Reamur = 4/5 * Celcius Fahrenheit =9/5*Celcius + 32 Cetak celcius, reamur, fahrenheit ENDDO 16 Contoh – Jawaban • Desk Checking – Data Masukan Celcius Data 1 100 Data 2 50 – Hasil yang diharapkan Reamur Fahrenheit Data 1 80 212 Data 2 40 122 17 Contoh – Jawaban • Tabel Desk Checking x Do while Celcius Reamur Fahrenheit 80 ya 212 ya 40 ya 122 ya Data 1 0 Do While Baca Hitung Cetak Data 2 True 100 ya 1 Do While Baca Hitung Cetak True 50 ya 18 Algoritma menggunakan Selection Susunlah algoritma untuk membaca tiga karakter kemudian susunlah ketiga nilai karakter tersebut dengan urutan menaik (ascending) dan tampilkan ketiga karakter hasil sort tersebut 19 Jawaban • Definisi Masalah Input Kar_1 Kar_2 Kar_3 Proses Output baca Kar_1, Kar_2, Kar_3 Kar_1 sort tiga karakter tersebut Kar_2 cetak hasil sort Kar_3 20 Jawaban • Algoritma Solusi Baca_Tiga_Karakter baca Kar_1, Kar_2, Kar_3 If Kar_1 > Kar_2 THEN temp = Kar_1 Kar_1 = Kar_2 Kar_2 = temp ENDIF If Kar_2 > Kar_3 THEN temp = Kar_2 Kar_2 = Kar_3 Kar_3 = temp ENDIF If Kar_1>Kar_2 THEN temp = Kar_1 Kar_1 = Kar_2 Kar_2 = temp ENDIF cetak Kar_1, Kar_2, Kar_3 END 21 Desk Checking • Data Input : Kar_1 Kar_2 Kar_3 Data 1 k b g Data 2 z s a 22 Desk checking • Hasil yang diharapkan Kar_1 Kar_2 Kar_3 Data 1 b g k Data 2 a s z 23 Desk Checking • Tabel Kar_1 Kar_2 Kar_3 Data 1 Baca IF IF IF Cetak Data 2 Baca IF IF IF Cetak k b b k g g ya ya ya z s s z a s ya a a ya k z temp IF dijalankan ? k k ya ya tidak z z s ya ya ya ya 24 Latihan • Buatlah algoritma yang dapat menerima input dari user berupa harga barang dan kode barang. Program akan menghitung diskon yang didapat sesuai dengan kodenya. Kemudian tampilkan harga awal, besar diskon, dan harga yang harus dibayar. Adapun ketentuan adalah sbb: 25 Latihan • Sebuah program dibutuhkan untuk membaca input berupa pajak (dalam persentase) dan harga lima buah barang. Program harus menghitung biaya yang diperlukan untuk membayar kelima barang tersebut bersama dengan pajaknya. • Buatlah algoritma program tersebut dengan menggunakan pseudocode. 26 Latihan • Buatlah algoritma yang dapat menerima input bilangan dari user, dan kemudian membuat tampilan sesuai dengan bilangan yang dimasukkan Contoh : Masukkan bilangan : 5 Bintang Anda : 1 12 123 1234 12345 27 Latihan • Jelaskan algoritma berikut • Lakukan desk checking untuk nilai bunga = 100, 200, 520 IF saldo < $300 THEN bunga = 0.05 ELSE bunga = 0.1 ENDIF 28 Latihan • Jelaskan algoritma berikut • Lakukan desk checking untuk nilai celcius = 37, 100, 120 dan -10, 20, 1000 X=0 REPEAT X=X+1 baca celcius reamur = 4/5*celcius fahrenheit=9/5*celcius + 32 cetak celcius, reamur, fahrenheit UNTIL x=3 29 Latihan • Jelaskan algoritma berikut • Lakukan desk checking untuk nilai Record_code = A A B C A B C C C D IF record_code=‘A’ THEN increment counter_A ELSE IF record_code=‘B’ THEN increment counter_B ELSE IF record_code=‘C’ THEN increment counter _C ELSE increment error_counter ENDIF ENDIF ENDIF 30
© Copyright 2024 Paperzz