Structure Theorem Rahmat D.R. Dako, ST, M.Eng
Background Why should learn structure theorem ? Dalam penyelesaian suatu masalah terdapat : proses penentuan keputusan dari beberapa keputusan alur yang menghendaki perulangan Penyelesaian masalah lebih efisien dan efektif
Kind of Structure Theorem Sequence theorem Selection theorem Repetition theorem
Sequence Theorem Teorema struktur terurut adalah pengeksekusian statement atau pernyataan instruksi berurutan dari satu statement ke statement yang lain Contoh : Statement a Statement b Statement c start Statement a Statement b Statement c end
Sequence Theorem Contoh : menghitung luas persegi panjang Pseoudocode Read panjang Read lebar Calculate luas = panjang * lebar Print luas start panjang, lebar Luas = panjang * lebar Luas end
Selection Theorem Fungsi selection theorem (teorema seleksi) ? Pengambilan keputusan, how ? Proses untuk menentukan jalur eksekusi dari sejumlah jalur eksekusi yang tersedia berdasarkan suatu syarat kondisi tertentu
Kondisi Untuk menentukan sebuah kondisi, syaratnya apa ? Terdapat dua atau lebih besaran yang dibandingkan Perbandingan dua besaran memerlukan operator pembanding dan operator logika
Operator pembanding > lebih besar < Lebih kecil == Sama dengan < Lebih kecil == Sama dengan >= Lebih besar atau sama dengan <= Lebih kecil atau sama dengan != Tidak sama dengan
Operator logika && AND || OR ! NOT Proof these with truth table
Variasi pengambilan keputusan Dua jalur Tiga jalur banyak jalur (lebih dari tiga jalur).
Dua jalur Penentuan dua jalur atau pilihan biasanya digunakan statement ? “ if ” Jika kondisi salah benar pernyataan
Dua jalur (2) Statement “ if-else ” kondisi salah benar Pernyataan-1
Dua jalur (3) Contoh : Diketahui dua buah bilangan, dan diinginkan untuk menghitung hasil pembagian bilangan pertama dengan bilangan kedua.
Dua jalur (4) kemungkinan : Kedua bilangan tak nol, hasilnya ? ADA Bilangan pertama nol, bilangan kedua tak nol, hasilnya ? Bilangan pertama tak nol, bilangan kedua nol, hasilnya ? TIDAK DAPAT DIHITUNG Kedua bilangan nol, hasilnya ? NOL
Dua jalur (5) Mulai A B Baca A, B C=A/B Cetak “Tidak bisa dihitung” ? Tidak Ya A B Selesai
Tiga jalur Variasi penentuan tiga jalur/pilihan ini, sebenarnya hampir sama dengan yang dua jalur/pilihan, hanya ada penambahan satu pemilihan kondisi. Contoh : Diketahui suatu persamaan kuadrad yang nilai-nilai koefisiennya dimasukkan lewat keyboard. Buatlah flowchart dan pseudocode untuk menghitung akar-akar persamaan kuadrad tersebut.
Tiga jalur (2) Solusi Rumus: Kondisi: ax2 + bx + c = 0 Akar2nya: b2 - 4ac > 0 --> dua akar riil b2 - 4ac = 0 --> satu akar (dua akar kembar) b2 - 4ac < 0 --> dua akar imajiner
Tiga jalur (3) A Mulai Baca 0 > D ? > 0 A, B, C = 0 D = B^2-4*A*C Cetak “Dua akar imajiner” Cetak “Akar kembar” Cetak “Dua akar riil” A Selesai
Banyak Jalur Contoh : Diinputkan nilai huruf suatu mata kuliah dan buatlah flowchart dan pseudocode untuk mencetak ekivalensi nilai angkanya.
Banyak Jalur (2) Solusi : Diketahui : nilai huruf Konversi ke nilai angka A = 4 B = 3 C = 2 D = 1 E = 0
Banyak Jalur (3) Pseudocode : Baca nilai NH Cek kondisi Selesai if (NH == ‘A’) NA = 4 else if (NH == ‘B’) NA = 3 else if (NH == ‘C’) NA = 2 else if (NH == ‘D’) NA = 1 else NA = 0 Cetak NH, NA Selesai
Banyak Jalur (4) A A Baca NH Mulai Tidak NH=‘A’ ? Tidak NH=‘B’ ? NA = 4 Tidak NH=‘C’ ? Ya A NA = 3 Tidak Ya NH=‘D’ ? Cetak NH, NA NA = 2 Ya NA = 1 NA = 0 Selesai A
Latihan Nilai ujian dinyatakan dengan angka dari 0 sampai 100. Untuk mengkonversinya ke nilai huruf digunakan kriteria sebagai berikut: NA >= 80, NH = ‘A’ 80 > NA >= 60, NH = ‘B’ 60 > NA >= 40, NH = ‘C’ 40 > NA >= 20, NH = ‘D’ 20 > NA, NH = ‘E’ Tulislah pseudocodenya dan flowchartnya
Latihan Baca nilai NA Cek kondisi Selesai Cetak NH, NA if (NA >= 80) NH = ‘A’ else if (NA >= 60) NH = ‘B’ else if (NA >= 40) NH = ‘C’ else if (NA >= 20) NH = ‘D’ else NA = ‘E’ Cetak NH, NA Selesai
Latihan Baca nilai NA Cek kondisi Selesai Cetak NH, NA if (NA >= 80) NH = ‘A’ else if (80 >NA >= 60) NH = ‘B’ else if (60 > NA >= 40) NH = ‘C’ else if (40 > NA >= 20) NH = ‘D’ else NA = ‘E’ Cetak NH, NA Selesai
Latihan Baca nilai NA Cek kondisi Selesai Cetak NH, NA if (NA >= 80) NH = ‘A’ else if ((NA < 80) && (NA >= 60)) NH = ‘B’ else if ((NA < 60 ) && (NA >= 40)) NH = ‘C’ else if ((NA < 40) && (NA >= 20)) NH = ‘D’ else NA = ‘E’ Cetak NH, NA Selesai
Next Week Repetition theorem