Bab 2 b PERINTAH 2 B Percabangan PERCABANGAN
Bab 2 – b PERINTAH 2 B Percabangan
PERCABANGAN • Tidak setiap baris program akan dikerjakan • Hanya yang memenuhi syarat (kondisi) • Syarat terdiri dari operand-operand, yang dihubungkan dengan operator relasi dan operator logika
PERCABANGAN • Menghasilkan pernyataan Boolean, yang dapat bernilai benar (true) atau salah (false) • Menggunakan perintah : if_then_else
Percabangan – Contoh : 5 = 5 True 3 > 5 False 5 <> 3 True (A>5) AND (B>10) True jika keduanya benar (A>5) OR (B>10) True jika keduanya atau salah satu benar START Syarat Perintah 2 END Perintah 1
Percabangan • Contoh kasus: Rata-rata bilangan positif Tujuan : – Menghitung rata-rata sejumlah bilangan yang dimasukkan melalui keyboard (bilangan diakhiri dengan nol) – Menampilkan banyaknya bilangan positif, jumlah, dan rata-ratanya
Percabangan Perkembangan algoritma • Algoritma global read (bil) while bil <> 0 do [jumlahkan dan hitung banyaknya bilangan positif] read (bil) ewhile [tulis banyaknya bilangan, jumlahnya, dan rata-ratanya]
Percabangan Perkembangan algoritma (cont’d) • bagan alir dengan perintah percabangan if-then-eif
Percabangan bil > 0 ya jumlah : = jumlah + bil n : = n + 1 tidak
Percabangan Perkembangan algoritma (cont’d) • Modifikasi algoritma global – variabel n dan jumlah dikosongkan dulu
Percabangan • jika hanya bilangan nol yang dimasukkan • sebelum perintah write diperiksa dahulu apakah n berharga nol • jika n berharga nol atau tidak ada bilangan yang dimasukkan kecuali tanda akhir data, perintah write tidak dilakukan
Percabangan Algoritma modifikasi: n : = 0 jumlah : = 0 read (bil) while bil <> 0 do if bil > 0 then jumlah : = jumlah + bil n : = n + 1 eif
Percabangan Algoritma modifikasi: read (bil) ewhile if n <> 0 then write (n, jumlah/n) eif
Percabangan • Contoh kasus “Bilangan Terbesar” akhirdata : = 0 read (bil)
Percabangan while bil <> akhirdata do [periksa apakah bilangan merupakan bilangan terbesar dari semua bilangan yang telah terbaca, catat bila demikian] read (bil) ewhile [tuliskan bilangan terbesar]
Percabangan – Pengembangan algoritmanya : akhirdata : = 0 read (bil) while bil <> akhirdata do if bil > maks then maks : = bil eif read (bil) ewhile write (maks) – Apakah algoritma diatas sudah benar ?
Percabangan • Pembahasan : – Variabel maks harus diberi nilai awal agar tidak terjadi kesalahan – Variabel maks harus diisi dengan bilangan yang pertama dibaca dari keyboard
Percabangan • Algoritmanya menjadi : akhirdata : = 0 read (bil) maks : = bil while bil <> akhirdata do if bil > maks then maks : = bil eif read (bil) ewhile write (maks)
Percabangan • Bagaimana bila data yang dimasukkan adalah 0 ? Apa yang terjadi ? • Coba anda perbaiki !!
Percabangan • Contoh “Harga Mutlak Bilangan“ • Tujuan : menentukan harga mutlak setiap bilangan yang dimasukkan lewat keyboard (akhirdata = 0) – bagan alir perintah percabangan ifthen-else-eif
Percabangan tidak bil > 0 ya mutlak = bil mutlak = - bil
Percabangan • Algoritmanya akhir. Data : =0 read(bil) while bil<> akhir. Data do [tentukan harga mutlak bil] if bil > 0 then mutlak : = bil else mutlak : = -bil eif
Percabangan write (mutlak) [peragakan harga mutlak tersebut] read (bil) ewhile
Percabangan Contoh “Bilangan genap dan ganjil” • Tujuan : membuat algoritma yang dapat menyatakan suatu bilangan adalah genap atau ganjil
Percabangan • Langkah-langkahnya – menentukan suatu bilangan genap atau ganjil dengan membagi bilangan dengan bilangan 2 (mod) • Sisa pembagian nol bilangan genap • jika tidak nol bilangan ganjil
Percabangan • Algoritmanya akhir. Data : = 0 read(bil) while bil <> 0 do sisa : =bil mod 2 if sisa = 0 then write (‘genap’) else write (‘ganjil’) eif read (bil) ewhile
Percabangan Contoh kasus “Persamaan Kuadrat” • Tujuan : membuat algoritma program menghitung akar-akar persamaan kuadrat yang koefisiennya dimasukkan melalui keyboard
Percabangan • Langkah-langkahnya – menyeleksi kondisi salah dengan memeriksa nilai koefisien – menentukan jenis akar persamaan berdasarkan koefisien
Percabangan Algoritma: read(a) while a<>0 do read (b, c) d: =b^2 -4*a*c continue
Percabangan if d<0 then {hitung akar kompleks} p: = -b/(2*a) q: = abs (sqr(-d)/((2*a)) write (‘x 1=‘, p, ‘+’, q, ‘i’) write (‘x 2=‘, p, ‘-’, q, ‘i’) else continue
Percabangan {akar komplek atau tidak} if d=0 then {hitung akar kembar} x 1: = -b/(2*a) x 2 : = x 1
Percabangan else {hitung akar tidak kembar} x 1: = (-b+sqr(d))/(2*a) x 2 : = (-b-sqr(d))/(2*a) eif write (‘x 1=‘, x 1) write (‘x 2=‘, x 2) eif read(a)
SELESAI BAB 2 -b
- Slides: 32