Penyeleksian Kondisi
Penyelekasian kondisi
adalah salah satu elemen algoritma yang paling sederhana. Penyeleksian kondisi
memungkinkan suatu pernyataan dieksekusi hanya jika kondisi terpenuhi atau
tidak terpenuhi. Berikut flowchartnya :
A. Pernyataan if .. then
digunakan untuk menguji
sebuah kondisi. Bila kondisi yang diuji terpenuhi, program akan menjalankan pernyataan-pernyataan tertentu,
dan bila kondisi yang diuji salah, program akan berhenti dan tidak manjalankan
apapun.
If kondisi
(pernyataan-pernyataan yang dijalankan
jika kondisi terpenuhi)
kondisi sendiri
merupakan suatu ekspresi bertipe Boolean, artinya hanya dapat bernilai benar
(true) atau salah (false).
Contoh :
If (x>0)
then
Writeln (‘x bilangan positif’)
Program ini akan
menuliskan ‘x bilangan positif’ jika variabel x lebih besar daripada 0 dan akan
berhenti atau tidak menjalankan pernyataan apapun jika x<0.
Contoh lain :
program tugas3;
uses crt;
var
tipe,jenis : char;
begin
clrscr;
writeln(' PROGRAM MENGHITUNG ANGSURAN RUMAH ');
writeln;
write('Tipe
Rumah [A,B,C,D] = ');readln(tipe);
write('Jenis
Pembayaran [T/K] = ');readln(jenis);
if tipe = 'A'
then
begin
if jenis='T'
then
begin
writeln('Harga Rumah = Rp. 50.000.000');
end
else if
jenis='K' then
begin
writeln('Angsuran Per Bulan = Rp. 500.000');
end;
end
else if tipe =
'B' then
begin
if jenis='T'
then
begin
writeln('Harga Rumah = Rp.65.000.000');
end
else if
jenis='K' then
begin
writeln('Angsuran Per Bulan = Rp. 650.000');
end;
end
else if tipe =
'C' then
begin
if jenis='T'
then
begin
writeln('Harga Rumah = Rp.75.000.000');
end
else if
jenis='K' then
begin
writeln('Angsuran Per Bulan = Rp. 750.000');
end;
end
else if tipe =
'D' then
begin
if jenis='T'
then
begin
writeln('Harga Rumah = Rp.85.000.000');
end
else if
jenis='K' then
begin
writeln('Angsuran Per Bulan = Rp. 850.000');
end;
end;
readln;
end.
Outputnya :
B. IF tersarang (nested IF)
Struktur if tersarang
merupakan bentuk dari suatu statement if berada didalam lingkungan statement if
yang lainnya.
Bentuk statement if
tersarang sebagai berikut :
if kondisi1 then
begin
if kondisi2
then
begin
Statement1
end;
else statement2
End;
Else
Statement3;
Contoh :
Program
untuk menghitung sewa sebuah Angkutan yang harga untuk 1 km pertama Rp. 4500,-
dan selanjutnya 2000/km
program
menghitung_sewa_angkutan;
uses crt;
const
pertama = 4500;
lanjut
= 2000;
var
jarak,bayar : integer;
begin
clrscr;
writeln(' PROGRAM MENGHITUNG SEWA ANGKUTAN
');
writeln;
write('Jarak Tempuh (Km) = ');readln(jarak);
if jarak>1 Then
begin
bayar := pertama + (jarak * lanjut);
end
else
bayar := pertama;
writeln('Bayarnya = Rp. ',bayar);
readln;
end.
Outputnya :
C.
Pernyataan if .. then .. else ..
Digunakan untuk menguji
sebuah kondisi. Bila kondisi yang diuji terpenuhi program akan menjalankan
pernyataan-pernyataan tertentu, dan bila kondisi yang diuji salah, program akan
menjalankan pernyataan-pernyataan lain.
Bentuk umum pernyataan
ini adalah sebagai berikut :
If kondisi then
Begin
(pernyataan-pernyataan
yang dijalankan jika kondisi terpenuhi)
End
Else
Begin
(pernyataan-pernyataan yang dijalankan jika
kondisi TIDAK terpenuhi)
End;
Contoh :
If (x>0) then
Writeln(‘x bilangan positif’)
Else
Writeln(‘x BUKAN bilangan positif’);
Program ini akan menuliskan ‘x bilangan
positif’ jika variabel x lebih besar daripada 0 dan menuliskan ‘x BUKAN bilangan
positif’ jika x lebih kecil atau sama dengan 0.
Pernyataan if .. else diatas tidak diletakkan diantara kata kunci begin dan
end, karena pernyataan yang dieksekusi hanya satu baris, sedang untuk
pernyataan lebih dari satu baris maka wajib diletakkan di antara kata kunci
begin dan end.
Contoh lain :
Program menetukan
bilangan terbesar dari tiga buah bilangan bulat
program
bil_terbesar;
uses crt;
var
bil1,bil2,bil3 : longint;
terbesar : longint;
begin
clrscr;
writeln('PROGRAM MENCARI BILANGAN TERBESAR
');
writeln(' MASUKKAN 3 BUAH BILANGAN ');
writeln;
write(' Masukkan Bilangan Pertama =
');readln(bil1);
write(' Masukkan Bilangan Kedua = ');readln(bil2);
write(' Masukkan Bilangan Ketiga = ');readln(bil3);
if(bil1>bil2) then
terbesar:=bil1
else terbesar:=bil2;
if(terbesar>bil3)then
terbesar:=terbesar
else terbesar :=bil3;
writeln;
write(' Bilangan Yang Terbesar Adalah =
',terbesar);
readln;
end.
Outputnya :
D.
Pernyataan if .. then .. else if .. then .. else ..
Dalam kasus-kasus
tertentu, terdapat kondisi lebih dari dua yang tidak dimungkinkan menggunakan
pernyataan if .. else. Oleh sebab itu, untuk menangani kasus tersebut digunakan
pernytaan if .. else if
Contoh :
If (x>0) then
Writeln (‘x bilangan positif’)
Else if (x<0)
then
Writeln (‘x bilangan negatif’)
Else
Write
(‘x adalah nol’);
Pada contoh diatas,
mula-mula program mengecek nilai x > 0 atau tidak. Bila kondisi ini
terpenuhi program akan menulis ‘x bilangan positif’, sebaliknya bila tidak
terpenuhi program akan menjalankan pernyataan if kedua untuk mengecek nilai x
< 0 atau tidak. Bila kondisi ini terpenuhi program akan menulis ‘x bilangan
negatif’. Dan bila tidak terpenuhi, program menulis ‘x adalah nol’
Contoh lain :
Program menghitung gaji Karyawan pada PT XTZ jika
diinput adalah nama dan Kode Jabatan dan pengeluarkan jabatan dan perincian
gajinya ditetapkan berdasarkan jabatan
program PT_XYZ;
uses crt;
var
kj : string[5];
gp,tt,tm,Total : longint;
nama,jabatan : string [30];
begin
clrscr;
writeln(' PROGRAM MENGHITUNG GAJI KARYAWAN PT
XYZ');
writeln;
write('Masukkan Nama Karyawan :
');readln(nama);
write('Masukkan Kode Jabatan
[DR,WD,MN,AS,KW]: '); readln(kj);
writeln('');
if kj= 'DR' Then
begin
jabatan:='Direktur';
gp
:=3000000;
tt
:=850000;
tm
:=500000;
end
else if kj= 'WD' Then
begin
jabatan:='Wak.Direktur';
gp
:=2500000;
tt
:=800000;
tm
:=500000;
end
else if kj= 'MN' Then
begin
jabatan:='Manajer';
gp
:=2000000;
tt
:=800000;
tm
:=450000;
end
else if kj= 'AS' Then
begin
jabatan:='Asisten';
gp
:=1500000;
tt
:=700000;
tm
:=400000;
end
else if kj= 'KW' Then
begin
jabatan:='Karyawan';
gp
:=1000000;
tt
:=500000;
tm
:=300000;
end;
Total := gp + tt + tm;
writeln('Nama Karyawan = ',nama);
writeln('Jabatan = ',jabatan);
writeln('Gaji Pokok = ', gp);
writeln('Tunjangan Transaksi = ', tt);
writeln('Tunjangan Makan = ', tm);
writeln('Total Gaji = Rp ', Total);
readln;
end.
Outputnya :
E.
Pernyataan Case
Digunakan untuk
menyederhanakan konstruksi if .. else if yang terlalu banyak.
Bentuk umum pernyataan
ini adalah sebagai berikut :
Case variabel
kondisi of
Case – Label 1;
statement 1;
Case – Label 2;
statement 2;
Case – Label 3;
statement 3;
Case – Label 4;
statement 4;
........
........
Case – Label n;
statement n;
End; {end dari case}
Contoh
:
Program
untuk Mengetahui informasi harga dan besar angsuran Rumah
uses crt;
var
tipe,jenis : char;
begin
clrscr;
writeln(' PROGRAM MENGHITUNG SEWA RUMAH JIKA DI
KREDIT ');
writeln;
write('Tipe
Rumah [A,B,C,D] = ');readln(tipe);
write('Jenis
Pembayaran [T/K] = ');readln(jenis);
case upcase(tipe) of
'A' : begin
case
upcase (jenis) of
'T' :
writeln('Harga Rumah = Rp.
50.000.000');
'K' :
writeln('Angsuran Per Bulan = Rp. 500.000');
end;
end;
'B' : begin
case
upcase(jenis) of
'T' :
writeln('Harga Rumah = Rp.
65.000.000');
'K' :
writeln('Angsuran Per Bulan = Rp. 650.000');
end;
end;
'C' : begin
case upcase (jenis) of
'T' :
writeln('Harga Rumah = Rp.
75.000.000');
'K' :
writeln('Angsuran Per Bulan = Rp. 750.000');
end;
end;
'D' : begin
case
upcase (jenis) of
'T' :
writeln('Harga Rumah = Rp.
85.000.000');
'K' :
writeln('Angsuran Per Bulan = Rp. 850.000');
end;
end;
end;
readln;
end.
Outputnya :
Komentar
Posting Komentar