Pascal:Percabangan 2
Percabangan adalah bentuk penyeleksian aksi yang dilaksanakan berdasarkan kondisi yang ditentukan. Biasanya aksi yang diberikan terdiri lebih dari satu aksi. Pada sebagian program yang komplek, kadangkala terdapat percabangan didalam percabangan (percabangan tersarang).
Jenis Percabangan
Jenis percabangan yang umum digunakan antara lain:
- Percabangan Tersarang
- Percabangan If Then dan Case Of
If Tersarang
Adalah suatu pilihan di dalam pilihan yang lain atau dalam satu kondisi masih ada subkondisi yang lain. Algoritma percabangan bersarang merupakan bentuk algoritma percabangan dimana pada setiap setiap pernyataan untuk kondisi IF di dalamnya terdapat Instruksi IF Lagi
Intinya algoritma percabangan disebut percabangan bersarang kalau di dalam percabangan ada percabangan lagi, banyak yang menyebut juga dengan sebutan di dalam IF ada IF lagi.
Struktur If di dalam If
- IF(Kondisi A) THEN
IF(kondisi X)THEN pernyataan 1 ELSE IF pernyataan 2 ENDIF ELSE pernyataan B ENDIF
Struktur Lain If dalam If
If (Kondisi 1) Then Begin Program-1 If (Kondisi 1.1) Then Begin Program 1.1 If (Kondisi 1.1.1) Then Begin Program 1.1.1 End End End Else Begin Program 2 If (Kondisi 2.1) Then Begin Program 2.1 End End
Contoh

Sebuah Perusahaan akan memberikan tunjangan anak dengan kententuan sebagai berikut :
- Jika Karyawawan statusnya blm menikah (bujang) maka tidak mendapatkan tunjangan atau tunjangan = 0
- Jika karyawan tersebut menikah dan tidak memiliki anak(anak=0) , maka tunjangan juga = 0
- Jika karyawan tersebut menikah dan memiliki anak 1, maka tunjangannya adalah = 100.000
- Jika karyawan tersebut menikah dan memiliki anak 2, maka tunjangannya adalah = 200.000
- Jika karyawan tersebut menikah dan memiliki anak >=3, maka tunjangannya adalah = 300.000
Penulisan Program
program seleksi_dalam_seleksi
uses crt;
var
status :char;
anak, gol :byte;
nama :string;
gaber,gapok,tunj :real;
begin
clrscr;
writeln('PT. Sama Berjaya');
writeln('Jalan Koekarbo No. 56 Kota Raya');
writeln('Daftar gaji dan tunjangan');
writeln('______________________');
writeln('');
write('Nama Anda : ');readln(nama);
write('Golongan Anda 1/2/3/4 : ');readln(gol);
write('Status [B] Bujang [K] Kawin : ');readln(status);
write('Jumlah Anak : ');readln(anak);
case gol of
1 : gapok := 1000000;
2 : gapok := 1500000;
3 : gapok := 2000000;
4 : gapok := 3000000;
else
writeln('Input data anda salah');
if status='B' then
tunj := 0;
if anak =0 then
tunj :=0
else
if anak = 1 then
tunj := 100000
else
if anak = 2 then
tunj := 200000
else
tunj := 350000;
gaber := gapok + tunj;
clrscr
writeln('Nama anda : ',nama);
writeln('Golongan anda 1/2/3/4 : ',gol);
writeln('Status Anda [B] Bujang [K] Kawin : ',status);
writeln('Jumlah anak : ',anak);
writeln('Gaji pokok : ',gapok:7:2);
writeln('Tunjangan anak : ',tunj:6:2);
writeln('Gaji bersih : ',gaber:7:2);
readln;
end.
Percabangan terserang merupakan penyeleksian seleksi yang paling kompleks diantara percabangan yang ada, karena harus memperhatikan betul kondisi yang akan diseleksi dan pernyataan yang ada
Percangan akan semakin menjadi kompleksi manakala fungsi percabangan ini di gabung dengan fungsi yang lain sperti perulangan ,dll