Anda di halaman 1dari 6

3 Percabangan

- Jika engkau dipersimpangan maka pilihlah salah satu jalan dengan ilmu Pada bab ini akan diperkenalkan mengenai percabangan yang terdiri dari dua hal yaitu: Percabangan IF yang terdiri IF sederhana (IF - THEN), IF dengan alternatif (IF THEN ELSE) dan IF kompleks (Multiple IF) Percabangan CASE, yang terdiri dari CASE OF

3.1 Kondisi
Sebagai dasar utama dari percabangan adalah kondisi, oleh karena itu percabangan sering disebut sebagai kondisional. Pada kenyataan segala percabangan akan muncul karena adanya kondisi yang memberikan lebih dari satu alternatif jawaban. Berikut ini adalah contoh-contoh kondisi sederhana dengan dua alternatif: Jawaban YA atau TIDAK, BENAR atau SALAH Nilainya TINGGI atau RENDAH Warna HITAM atau PUTIH Arah TIMUR atau BARAT Namun sebenarnya kondisi tidak hanya mempunyai dua alternatif penyelesaian, bisa jadi lebih dari dua. Contoh kondisi berikut ini adalah kondisi dengan alternatif beberapa jawaban: Nilai TINGGI, RENDAH atau SEDANG Warna HITAM, PUTIH atau ABU-ABU Arah TIMUR, BARAT, UTARA atau SELATAN Untuk memudahkan pemikiran tentang kondisi sebagai pemicu percabangan maka diambil contoh kasus ARAH yang terdiri dari TIMUR dan BARAT maka jalannya percabangan adalah sebagai berikut: Kondisi TIMUR terpenuhi Kondisi BARAT tidak terpenuhi Kondisi TIMUR tidak terpenuhi Kondisi BARAT terpenuhi Berbeda jika ARAH mempunyai 3 alternatif TIMUR, BARAT dan UTARA maka alur dari percabangan adalah sebagai berikut: Kondisi TIMUR terpenuhi Kondisi selain TIMUR tidak terpenuhi Kondisi TIMUR tidak terpenuhi Kondisi BARAT terpenuhi Kondisi UTARA tidak terpenuhi Pemrograman Komputer - 5

Kondisi TIMUR tidak terpenuhi Kondisi BARAT tidak terpenuhi Kondisi UTARA terpenuhi

3.2 Percabangan IF
Pada sub bab ini akan dijelaskan mengenai percabangan IF yang dimulai dengan bentuk IF sederhana, yang dilanjutkan IF dengan alternatif, dan IF kompleks.

IF sederhana (IF - THEN)


IF sederhana merupakan kombinasi antara IF THEN, hanya mengakomodasi alternatif kondisi bernilai TRUE saja. Syntax dari IF sederhana: IF kondisi THEN statement_true; IF kondisi THEN BEGIN Statement1_true; Statement2_true; END; Sebagai contoh adalah sebagai berikut: Listing Program 3-1
(* File Author : contohif.pas : Ristu Saptono

- Memperkenalkan if sederhana *) var begin a : boolean; a:=TRUE; IF a then write('Nilai a = ', a); IF (not a)then writeln('Nilai not a = ', not a);

end.

Untuk lebih jelasnya perhatikan contoh spesifikasi berikut: INPUT OUTPUT PROSES : sebuah password bertipe string : keterangan pintu dibuka atau tidak :

Jika masukan dari user sama dengan password yang disimpan maka pintu dibuka, user dipersilakan masuk. Maka programnya adalah sebagai berikut: Listing Program 3 2
(* File : bukapintu.pas Author : Ristu Saptono -Memperkenal IF sederhana dengan multiple statement *) const passwd = 'PASSWORD';

Pemrograman Komputer - 6

var begin

password

: string;

end.

write('Masukkan password : ');readln(password); IF password = passwd THEN BEGIN writeln('Pintu dibuka':40); writeln('Anda dipersilakan masuk':45); END;

Jika masukan adalah PASSWORD maka statement setelah THEN berada antara BEGIN dan END; - akan dilaksanakan, namun jika masukkannya password maka statement setelah THEN tidak akan dilaksanakan.

IF dengan alternatif (IF THEN ELSE)


Jika pada IF sederhana, kondisi salah tidak akan melaksanakan apapun maka pada IF dengan alternatif yang merupakan kombinasi IF THEN ELSE kondisi salah akan mempunyai statement yang dilaksanakan. Sebagai ilustrasi, perhatikan kembali Listing Program 3 1, ada kondisi yang merupakan kebalikan yaitu a bernilai TRUE dan not a bernilai FALSE Pada saat dilaksanakan sebenarnya statement setelah IF not a THEN ..., tidak akan dilaksanakan, karena nilai a:=TRUE. Cobalah untuk mengganti a:=FALSE, maka statement setelah IF a THEN -lah yang tidak akan dilaksanakan. Sebenarnya kedua IF sederhana tersebut dapat diringkas dengan IF THEN ELSE yang syntaxnya: IF kondisi THEN statement_true ELSE statement_false; IF kondisi THEN BEGIN statement1_true; Statement2_true; END ELSE BEGIN Statement1_false; Statement2_false; END; Menjadi sebagai berikut: Listing Program 3 - 3
(* File : contohifelse.pas Author: Ristu Saptono - Memperkenalkan if -then -else *) var begin a : boolean; a:=FALSE; IF a THEN write('Nilai a = ', a) //IF (not a)then writeln('Nilai not a = ', a); ELSE writeln('Nilai not a = ', not a); end.

Pemrograman Komputer - 7

Untuk lebih jelasnya perhatikan contoh soal cerita berikut: Persoalan: Diketahui dua buah bilangan bulat a dan b yang akan dibandingkan dan akan memperoleh dua hasil perbandingan yaitu pertama, a sama dengan b, atau kedua, a tidak sama dengan b. Penyelesaian: INPUT OUTPUT PROSES : a, b bilangan bulat : kesimpulan string :

Jika a = b maka kesimpulan:=a = b selain itu kesimpulan:=a <>b; Listing Program 3 4


(* *) var begin File : perbandingan.pas Author : Ristu Saptono -Memperkenalkan if then else a,b: integer; kesimpulan : string; write('Masukkan nilai a: '); readln(a); write('Masukkan nilai b: '); readln(b); IF a = b THEN kesimpulan:='a = b' ELSE kesimpulan:='a <> b'; writeln('Kesimpulannya ',kesimpulan);

end.

IF kompleks (Multiple IF)


IF kompleks disebabkan adanya kondisi yang mempunyai lebih dari dua alternative jawaban. Syntaxnya adalah IF kondisi1 THEN statement_kondisi1_true ELSE IF kondisi2 THEN statement_kondisi1_false_kondisi2_true; ELSE statement_ kondisi1_false_kondisi2_false; IF kondisi1 THEN BEGIN statement1_kondisi1_true; Statement2_kondisi1_true; END ELSE IF kondisi2 THEN BEGIN Statement1_kondisi1_false_kondisi2_true; Statement2_kondisi1_false_kondisi2_true; END ELSE statement_kondisi1_false_kondisi2_false; Perhatikan kembali Listing Program 3 4, jika nilai a tidak sama dengan b, sebenarnya ada dua kemungkinan lain yaitu a > b atau a < b. Sehingga alurnya menjadi Pemrograman Komputer - 8

Jika a = b maka Jika a <> b dan a > b maka Jika a<>b dan a < b maka Sehingga Listing Program 3 4 berubah menjadi: Listing Program 3 - 5
(* *) var begin File : perbandingan2.pas Author: Ristu Saptono -Memperkenalkan if kompleks a,b: integer; kesimpulan : string; write('Masukkan nilai a: '); readln(a); write('Masukkan nilai b: '); readln(b); IF a = b THEN kesimpulan:='a = b' ELSE IF (a >b) THEN kesimpulan:='a > b' ELSE kesimpulan:=a < b; // a<b writeln('Kesimpulannya ',kesimpulan); end.

3.3 Percabangan CASE


Ada beberapa bentuk percabangan yang menjadi sangat kompleks ketika harus menggunakan IF. Ada beberapa percabangan IF kompleks yang bisa dirubah dalam bentuk yang lebih mudah yaitu CASE, mempunyai syntax sebagai berikut: CASE kondisi OF Alternatif1 : statement_alternatif1_true; Alternatif2 : statement_alternatif2_true; Alternatifn : statement_alternatifn_true; ELSE statement_alternatif1_sd_n_false; END; Perhatikan Listing program IF berikut:
(* *) var begin File : nilaiif.pas Nilai dengan if nilai : char; angka : integer; write('Masukkan Nilai huruf : ');readln(nilai); IF nilai='A'THEN angka:=4 ELSE IF nilai='B' THEN angka:=3 ELSE IF nilai='C' THEN angka:=2 ELSE IF nilai='D' THEN angka:=1 ELSE IF nilai='E' THEN angka:=0; writeln('Nilai angka = ',angka);

Listing Program 3 6

end.

Program di atas dapat dirubah dalam bentuk CASE seperti pada listing 3 7

Pemrograman Komputer - 9

Listing Program 3 7
(* *) var nilai : char; angka : integer; begin write('Masukkan Nilai huruf : ');readln(nilai); CASE nilai OF 'A' : angka:=4; 'B' : angka:=3; 'C' : angka:=2; 'D' : angka:=1; 'E' : angka:=0; END; writeln('Nilai angka = ',angka); File : nilai.pas Program nilai dengan CASE

end.

Hasil dari Listing Program 3 7, jika diberi masukan a maka yang keluar adalah angka 0. Hal tersebut disebabkan karena yang didefinisikan pada alternatif jawaban adalah huruf A, bukan a. Oleh karena itu Listing Program 3 7 dapat diperbaiki menjadi
(* *) var begin File : nilai.pas Program nilai dengan CASE nilai : char; angka : integer; write('Masukkan Nilai huruf : ');readln(nilai); CASE nilai OF 'A','a' : angka:=4; 'B','b' : angka:=3; 'C','c' : angka:=2; 'D','d' : angka:=1; 'E' : angka:=0; END; writeln('Nilai angka = ',angka);

Listing Program 3 8

end.

Alternatif pada CASE bisa juga berupa interval , seperti pada contoh berikut: Listing Program 3 9
(* *) var nilai : integer; huruf : char; begin write('Masukkan Nilai huruf : ');readln(nilai); CASE nilai OF 80 .. 100 : huruf:='A'; 70 .. 79 : huruf:='B'; 60 .. 69 : huruf:='C'; 50 .. 59 : huruf:='D'; 0 .. 49 : huruf:='E'; END; writeln('Nilai huruf = ',huruf); File : nilaihuruf.pas Program nilai dengan CASE, alternatif interval

end.

Pemrograman Komputer - 10