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.

Syntax
if (kondisi) then
    statement;

Contoh Soal

Buatlah suatu perkondisian dengan ketentuan jika total belanja lebih dari sama dengan 100000 maka akan mendapat cashback 25000.

Source Code
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.
Masukan Total Harga : 120000

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.

Syntax
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.

Source Code
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.
Masukan Nilai : 46
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.

Syntax
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.

Source Code
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.
Masukan Usia : 20

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.

Syntax
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
Source Code
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.
Masukan Nilai Anda (0-100) : 90
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.

Syntax
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.

Source Code
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.
Masukan Bilangan : 12
Bilangan POSITIF
Bilangan GENAP
root@USER-PC:~$ |

Related Post

Komentar