
Pengertian Percabangan
Percabangan dikenal juga sebagai perkondisian atau decision making. Percabangan dilakukan untuk menentukan alur program berdasarkan kondisi/syarat tertentu.
Bentuk-Bentuk Perkondisian
Pengkondisian dalam pascal dapat dilakukan dengan beberapa cara, pada dasarnya perkondisian dibagi menjadi dua bentuk, yakni if
dan switch
. Bentuk if
masih bisa dikembangkan lagi menjadi beberapa bentuk, berikut macam-macam bentuk perkondisian.
If Then
Perkondisian menggunakan if dilakukan dengan menyeleksi suatu kondisi, jika kondisi tersebut bernilai benar, maka statement akan dijalankan. Namun jika kondisi bernilai salah, maka statement akan diabaikan dan program akan menjalankan code selanjutnya.
if (kondisi) then
statement;
Contoh Soal
Buatlah suatu perkondisian dengan ketentuan jika total belanja lebih dari sama dengan 100000 maka akan mendapat cashback 25000.
program programCashback;
var totalHarga:longint;
cashback :longint= 0;
begin
write('Masukan Total Harga : ');
readln(totalHarga);
if (totalHarga >= 100000) then
cashback := 25000;
writeln();
writeln('Total Belanja : ', totalHarga);
writeln('Cash Back : ', cashback);
readln();
end.
Total Belanja : 120000
Cash Back : 25000
root@USER-PC:~$ |
If Then Else
Bentuk perkondisian if else bekerja dengan cara menyeleksi suatu kondisi, jika kondisi benar maka akan dijalankan statement pada blok if, namun jika kondisi tersebut salah, maka program akan menjalankan pernyataan pada blok else.
if (kondisi) then
statement
else
statement;
Contoh Soal
Buatlah perkondisian dengan ketentuan jika nilai mahasiswa lebih dari 65, maka dinyatakan LULUS, namun jika kurang dari sama dengan 65 mahasiswa dinyatakan GAGAL.
program luluskahAku;
var
nilai:integer;
status:string;
begin
write('Masukan Nilai : ');
readln(nilai);
if (nilai > 65) then
status := 'LULUS'
else
status := 'GAGAL';
writeln('Anda Dinyatakan ',status,'! Dengan Nilai = ', nilai);
readln();
end.
Anda Dinyatakan GAGAL! Dengan Nilai = 46
root@USER-PC:~$ |
If Then Else If Then
Perkondisian ini tak ubahnya seperti perkondisian diatas, jika kondisi bernilai benar, maka akan dijalankan statement pada blok if, namun jika salah, program akan melakukan perkondisian lagi. Dalam perkondisan kedua akan diseleksi suatu kondisi, jika bernilai benar, maka pernyataan pada blok if akan dieksekusi begitu seterusnya.
if (kondisi) then
statement1
else if (kondisi) then
statement2
else if (kondisi) then
statement3
else
statement4;
Contoh Soal
Suatu daerah mengalami krisis makanan, pemerintah setempat bermaksud memberi bantuan makanan sesuai dengan usia dengan ketentuan:
- Usia 0 - 5 tahun mendapat jatah susu formula dan biskuit bayi.
- Usia 6 - 14 tahun mendapat susu formula, nasi, sayur dan daging sapi.
- Usia 15 - 50 tahun mendapat susu kedelai, nasi, sayur dan daging ayam.
- Usia > 50 tahun mendapat susu kalsium, nasi, sayur dan daging sapi.
program bantuanMakanan;
var
usia:byte;
bantuan:string;
begin
write('Masukan Usia : ');
readln(usia);
if (usia <= 5) then
bantuan := 'BISKUIT BAYI + SUSU FORMULA'
else if (usia <= 14) then
bantuan := 'NASI, SAYUR, DAGING SAPI + SUSU FORMULA'
else if (usia <= 50) then
bantuan := 'NASI, SAYUR, DAGING AYAM + SUSU KEDELAI'
else
bantuan := 'NASI, SAYUR, DAGING SAPI + SUSU KALSIUM';
writeln();
writeln('Usia Anda = ', usia);
writeln('Anda Berhak Mendpaat Bantuan = ', bantuan);
readln();
end.
Usia Anda = 20
Anda Berhak Mendapat Bantuan = NASI, SAYUR, DAGING AYAM + SUSU KEDELAI
root@USER-PC:~$ |
Jenis perkondisian ini ditujukan untuk banyak kondisi, jika kondisi sudah terlampau banyak, dapat menggunakan alternatif lain, yakni dengan menggunakan bentuk case.
Case
Bentuk percabangan ini kegunaannya sama dengan bentuk if then else if then, yakni digunakan untuk menyeleksi kejadian dengan banyak kondisi. Namun jika dibandingkan, bentuk case memiliki syntax yang lebih sederhana.
case (ekspresi) of
kondisi1 : statement1;
kondisi2 : statement2;
kondisin : statementn;
end;
Contoh Soal
Buatlah soal untuk mengkonversi nilai dalam bentuk angka menjadi bentuk abjad dengan ketentuan
- 0 - 40 = D
- 41 - 60 = C
- 61 - 80 = B
- 81 - 100 = A
program nilaikuApa;
var
nilai:integer;
nilaiCh:char;
begin
write('Masukan Nilai Anda (0-100) : ');
readln(nilai);
case (nilai) of
0..40 : nilaiCh := 'D';
41..60 : nilaiCh := 'C';
61..80 : nilaiCh := 'B';
81..100 : nilaiCh := 'A';
end;
writeln('Nilai Anda Adalah = ', nilaiCh);
readln();
end.
Nilai Anda Adalah = A
root@USER-PC:~$ |
Perkondisian Bersarang
Perkondisian bersarang (nested decison making) dapat dibayangkan sebagai perkondisian yang terletak didalam perkondisian lain. Perkondisan pada bagian dalam dapat berbentuk if then ataupun if then else.
if (kondisi) then
begin
if (kondisi2) then
statement;
end;
Contoh Soal
Buatlah perkondisian bersarang untuk menentukan apakah suatu bilangan termasuk bilangan POSITIF dan atau bilangan GENAP, atau bukan keduanya.
program seleksiBil;
var
bil:integer;
begin
write('Masukan Bilangan : ');
readln(bil);
if (bil > 0) then
begin
writeln('Bilangan POSITIF');
if (bil mod 2 = 0) then
writeln('Bilangan GENAP');
end
else
writeln('Bukan bilangan POSITIF maupun GENAP');
readln();
end.
Bilangan POSITIF
Bilangan GENAP
root@USER-PC:~$ |