330 likes | 542 Views
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.
E N D
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 1 Perintah 2 END
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 tidak jumlah := jumlah + bil n := n + 1
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, 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 if-then-else-eif
Percabangan tidak bil > 0 ya mutlak = - bil mutlak = bil
Percabangan • Algoritmanya akhirData :=0 read(bil) while bil<> akhirData 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 akhirData : = 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 (‘x1=‘, p, ‘+’, q, ‘i’) write (‘x2=‘, p, ‘-’, q, ‘i’) else continue
Percabangan {akar komplek atau tidak} if d=0 then {hitung akar kembar} x1:= -b/(2*a) x2 := x1
Percabangan else {hitung akar tidak kembar} x1:= (-b+sqr(d))/(2*a) x2 := (-b-sqr(d))/(2*a) eif write (‘x1=‘, x1) write (‘x2=‘,x2) eif read(a)