๐ Daftar Isi
Statemen if yang terkandung pada statemen if yang lain, yang lebih atas, disebut dengan statemen if tersarang (nested if). Hal ini mungkin terjadi jika statemen yang seharusnya dijalankan setelah pemeriksaan kondisi atau ekspresi boolean, tidak dapat langsung dijalankan karena harus memeriksa kondisi atau ekspresi boolean yang lain.
Berikut ini bentuk umum dari if tersarang:
if kondisi1 then
begin
if kondisi2 then
statemen1
else
statemen2
end;
Selain itu dapat juga berbentuk seperti berikut:
if kondisi1 then
if kondisi2 then
statemen1
else
statemen2
else
statemen3;
if kondisi then-1
if kondisi then-2
...
if kondisi then-n
pernyataan-n1
else
pernyataan-n2
...
else
pernyataan-2
else
pernyataan-1;
Contoh Kasus
Berikut ini contoh kasus skor dan grade yang diselesaikan dengan if tersarang.
Program ini menampilkan skor siswa dan gradenya sesuai dengan klasifikasi berikut:
- Grade “A” dengan nilai dari 90% sampai 100%
- Grade “B” dengan nilai dari 80% sampai 89%
- Grade “C” dengan nilai dari 70% sampai 79%
- Grade “D” dengan nilai dari 60% sampai 69%
- Grade “E” dengan nilai kurang dari 60%
program skordangrade;
var
nilai:integer;
begin
write('Masukkan skor/nilai: ');readln(nilai);
writeln;
if nilai>59 then
if nilai>69 then
if nilai>79 then
if nilai>89 then
writeln('Excellent. Grade Anda adalah A')
else
writeln('Very Good. Grade Anda adalah B')
else
writeln('Good. Grade Anda adalah C')
else
writeln('Passed. Grade Anda adalah D')
else
writeln('Better luck next time. Grade Anda adalah E');
writeln('Tekan ENTER untuk melanjutkan');
readln;
end.
Output dari program di atas adalah sebagai berikut.
Contoh Program Lainnya
Program Bonus Pegawai
Buatlah program untuk menentukan bonus pegawai, berdasarkan ketentuan yang diberikan oleh bagian personalia dan keuangan sebagai berikut : Pegawai perusahaan digolongkan menjadi dua golongan, yaitu staf dan non staf. Staf akan mendapatkan bonus sebesar 1 juta rupiah dengan syarat bahwa ia telah bekerja paling tidak 5 tahun dan umurnya sudah mencapai 50 tahun; staf yang bekerja kurang dari 5 tahun dan berapapun umurnya, hanya mendapat bonus sebesar Rp. 500.000. Pegawai non staf yang telah bekerja lebih dari 5 tahun akan mendapat bonus sebesar Rp. 400.000 jika berumur lebih dari 50 tahun sedangkan pegawai non staf yang berumur kurang dari 50 tahun hanya mendapat bonus Rp. 250.000. Pegawai staf yang umurnya kurang dari 50 tahun akan mendapat bonus Rp. 300.000
Kode program dari permasalahan di atas adalah sebagai berikut.
program bonus_pegawai;
uses crt;
var lama,usia:real;
golongan,pilih:char;
bonus:string;
label atas;
begin
clrscr;
writeln('==================');
writeln('BONUS GAJI PEGAWAI');
writeln('==================');
writeln;
atas:
write('Masukkan Golongan [1. Staf 2. Non Staf] = ');readln(golongan);
if (golongan='1') then
begin
write('Lama Bekerja = ');readln(lama);
write('Usia Anda = ');readln(usia);
if (lama>=5) then
begin
if (usia>=50) then
bonus:='Rp 1000000'
else
bonus:='Maaf, usia dan masa kerja Anda belum memenuhi syarat untuk mendapat bonus'
end
else bonus:='Rp 500000'
end;
if (golongan='2') then
begin
write('Lama Bekerja = ');readln(lama);
write('Usia Anda = ');readln(usia);
if (lama>5) then
begin
if (usia>50) then
bonus:='400000'
else bonus:='Rp 250000'
end
else bonus:='Maaf, usia dan masa kerja Anda belum memenuhi syarat untuk mendapat bonus'
end;
writeln('Bonus Anda adalah = ',bonus);
writeln;
writeln('------------------------------------------');
write('Ingin memeriksa bonus lagi?(Y/T) = ');readln(pilih);
writeln('------------------------------------------');
writeln;
if (pilih='y') or (pilih='Y') then
goto atas;
if (pilih='t') or (pilih='T') then
writeln('Terima kasih, Semangat Bekerja :)');
readln;
end.
Contoh Output:
Program Konversi Suhu
Buatlah program menggunakan statemen if then yang membaca sebuah besaraninteger yang menunjukkan hasil pengukuran suhu pada derajat celcius danmenuliskan kondisi air pada suhu yang diberikan dengan ketentuan sebagai berikut:
- Suhu sama atau kurang dari 0 (nol) tuliskan โbekuโ,
- Suhu lebih dari 0 (nol) dan kurang dari 100 tuliskan โcairโ, dan
- Suhu sama atau lebih dari 100 tuliskan โuapโ.
Kode program dari permasalahan di atas adalah sebagai berikut.
program suhu_bekucairgas;
uses Crt;
var C:integer;
pilih:char;
label atas;
begin
clrscr;
writeln('----------------------');
writeln('Menentukan Kondisi Air');
writeln('----------------------');
atas:
write('Input derajad Farenheit = ');readln(C);
write('Kondisi suhu air adalah = ');
if C<=0 then
writeln('Beku')
else if (C>0) and (C<100) then
writeln('Cair')
else if C>=100 then
writeln('Uap');
writeln;
writeln('----------------------------------------');
write('Ingin memeriksa suhu yang lain ?(Y/T) = ');readln(pilih);
writeln('----------------------------------------');
writeln;
if (pilih='y') or (pilih='Y') then
goto atas;
if (pilih='t') or (pilih='T') then
writeln('Terima kasih :)');
readln;
end.
Contoh Output:
Program Mata Kuliah
Buatlah program menggunakan statemen if then yang menerima masukan namahari (string) dan menuliskan mata kuliah yang diberikan pada hari tersebut,dengan ketentuan sebagai berikut :
Senin mata kuliah yang diberikan Algoritma dan Pemrograman I
Selasa mata kuliah yang diberikan Kalkulus
Rabu mata kuliah yang diberikan Bahasa Indonesia
Kamis mata kuliah yang diberikan Pengantar Teknik Informatika
Jumโat mata kuliah yang diberikan Bahasa Inggris
Sabtu mata kuliah yang diberikan Basis Data
Kode program dari permasalahan di atas adalah seabgai berikut.
program namahari;
uses crt;
var hari:string;
pilih:char;
label atas;
begin
clrscr;
writeln('------------------');
writeln('JADWAL MATA KULIAH');
writeln('------------------');
atas:
write('Masukkan Hari = ');readln(hari);
write('Mata Kuliah Saat ini = ');
if (hari='senin') or (hari='Senin') or (hari='SENIN') then
writeln('Algoritma dan Pemrogaman I')
else if (hari='selasa') or (hari='Selasa') or (hari='SELASA') then
writeln('Kalkulus')
else if (hari='rabu') or (hari='Rabu') or(hari='RABU') then
writeln('Bahasa Indonesia')
else if (hari='kamis') or (hari='Kamis') or (hari='KAMIS') then
writeln('Pengantar Teknik Informatika')
else if (hari='jumat') or (hari='Jumat') or (hari='JUMAT') then
writeln('Bahasa Inggris')
else if (hari='sabtu') or (hari='Sabtu') or (hari='SABTU') then
writeln('Basis Data')
else writeln('Tidak Ada Jadwal Perkuliahan');
writeln;
writeln('-------------------------------------');
write('Apakah ingin memeriksa mata kuliah lagi ? (Y/T) = ');readln(pilih);
writeln('-------------------------------------');
writeln;
if (pilih='y') or (pilih='Y') then
goto atas;
if (pilih='t') or (pilih='T') then
writeln('Terima kasih, Semangat Kuliahnya');
readln;
end.
Contoh Output:
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Konsep Pemilihan, daftar lengkapnya adalah sebagai berikut.