Percabangan Lanjutan Pascal: Menguasai Nested IF dan CASE OF
Setelah memahami dasar-dasar IF-THEN-ELSE, Anda siap untuk menangani skenario program yang lebih kompleks. Terkadang, sebuah keputusan bergantung pada hasil dari keputusan lain, atau Anda perlu memeriksa satu variabel terhadap banyak kemungkinan nilai.
Di sinilah percabangan lanjutan berperan. Artikel ini akan membahas dua struktur kontrol yang kuat di Pascal: Nested IF (IF Bersarang) dan CASE OF.
1. Nested IF (IF Bersarang): Logika di Dalam Logika nesting dolls
Nested IF atau IF bersarang adalah struktur di mana Anda meletakkan satu pernyataan IF di dalam pernyataan IF yang lain. Ini digunakan untuk menangani alur program yang kompleks di mana sebuah kondisi hanya akan diperiksa jika kondisi utamanya sudah terpenuhi.
Analogi: Bayangkan Anda ingin masuk ke sebuah ruang rahasia. Anda harus membuka pintu pertama (Kondisi 1). Jika berhasil, baru Anda bisa mencoba membuka pintu kedua di dalamnya (Kondisi 1.1).
Struktur Dasar Nested IF
IF (kondisi_1) THEN
begin
// Kode program 1
IF (kondisi_1.1) THEN
begin
// Kode ini hanya akan dijalankan jika
// kondisi_1 DAN kondisi_1.1 keduanya TRUE
end;
end
ELSE
begin
// Kode ini hanya dijalankan
// jika kondisi_1 FALSE
end;
Kode program di dalam IF kedua hanya akan dieksekusi jika kondisi_1 dan kondisi_1.1 keduanya bernilai benar.
Contoh Kasus: Mencari Bilangan Terbesar dari 3 Angka
Mari kita buat program yang meminta input tiga buah bilangan, lalu menentukan mana yang terbesar menggunakan Nested IF.
program Tiga_Bilangan_Terbesar;
uses crt;
var
a, b, c: integer;
begin
clrscr;
write('Input Bilangan Pertama: ');
readln(a);
write('Input Bilangan Kedua: ');
readln(b);
write('Input Bilangan Ketiga: ');
readln(c);
if (a > b) then // Cek pertama: Apakah a > b?
begin
if (a > c) then // Jika ya, cek kedua: Apakah a > c?
writeln('Angka Terbesar : ', a)
else
writeln('Angka Terbesar: ', c);
end
else // Jika a tidak lebih besar dari b
begin
if (b > c) then // Cek kedua: Apakah b > c?
writeln('Angka Terbesar : ', b)
else
writeln('Angka Terbesar: ', c);
end;
readln;
end.2. CASE OF: Alternatif Elegan untuk IF Bertingkat
Terkadang, Anda memiliki rantai IF-THEN-ELSE IF yang sangat panjang untuk memeriksa satu variabel terhadap banyak nilai. Struktur seperti ini bisa menjadi sulit dibaca.
CASE OF adalah solusi percabangan yang lebih sederhana dan rapi untuk situasi seperti ini. Ia bekerja dengan memeriksa sebuah nilai ekspresi, lalu menjalankan blok kode yang kondisinya cocok dengan nilai tersebut.
Perbandingan Struktur IF vs CASE OF
Contoh Kasus: Mengubah Angka Menjadi Kata
Mari kita selesaikan kasus di mana program menerima input angka 1-4, lalu menampilkannya dalam bentuk kata.
program Belajar_Case_Of;
uses crt;
var
bilangan: integer;
begin
clrscr;
write('Input Bilangan (1-4) : ');
readln(bilangan);
case (bilangan) of
1 : writeln('Satu');
2 : writeln('Dua');
3 : writeln('Tiga');
4 : writeln('Empat');
end;
readln;
end.Menangani Kondisi Default dengan CASE-OF-ELSE
Apa yang terjadi jika pengguna memasukkan angka 5 pada program di atas? Tidak terjadi apa-apa, karena tidak ada kondisi yang cocok. Untuk menangani situasi di luar kondisi yang ditentukan, kita bisa menambahkan klausa ELSE di akhir blok CASE.
Contoh Kasus: Konversi Nilai Huruf Program ini akan menampilkan keterangan berdasarkan input nilai huruf (A-E) dan memberikan pesan error jika input tidak valid.
program Belajar_Case_Of_Else;
uses crt;
var
grade: char; // Menggunakan char untuk satu huruf
begin
clrscr;
write('Silahkan input grade anda (A-E): ');
readln(grade);
// Mengubah input ke huruf besar untuk konsistensi
grade := UpCase(grade);
case (grade) of
'A' : writeln('Sangat Memuaskan');
'B' : writeln('Memuaskan');
'C' : writeln('Cukup');
'D' : writeln('Kurang Baik');
'E' : writeln('Gagal');
else
writeln('Maaf, format yang anda masukkan salah.');
end;
readln;
end.Kapan Sebaiknya Menggunakan Nested IF vs CASE OF?
Meskipun terkadang bisa digunakan untuk masalah yang sama, keduanya memiliki kekuatan masing-masing.
- Gunakan Nested IF ketika Anda perlu mengevaluasi serangkaian kondisi yang berbeda dan tidak saling berhubungan secara langsung, di mana satu kondisi bergantung pada hasil dari kondisi lain. Contoh: Apakah pengguna sudah login? JIKA YA, apakah level aksesnya admin?
- Gunakan CASE OF ketika Anda memeriksa satu variabel atau ekspresi terhadap daftar nilai yang spesifik dan setara. Ini jauh lebih bersih dan mudah dibaca daripada
IF-ELSE IFyang panjang. Contoh: Memeriksa hari dalam seminggu, bulan, atau pilihan menu.
Kesimpulan
Dengan menguasai Nested IF dan CASE OF, Anda kini memiliki perangkat yang lebih canggih untuk mengontrol alur program yang kompleks. Nested IF memberikan Anda kemampuan untuk membuat logika keputusan yang mendalam, sementara CASE OF menawarkan cara yang bersih dan efisien untuk menangani banyak pilihan setara.
Tantangan: Buatlah program yang menerima input angka 1-12 dan menampilkan nama bulan yang sesuai. Jika angka di luar rentang 1-12, tampilkan pesan error. (Petunjuk: CASE OF ELSE adalah pilihan yang sangat tepat untuk ini!)
