Struktur Pemilihan Algoritma Lanjutan: Nested IF dan CASE
Setelah memahami dasar-dasar pemilihan dengan IF-THEN-ELSE, saatnya kita menjelajahi dua teknik yang lebih kuat untuk menangani skenario keputusan yang kompleks: Nested IF (IF Bersarang) dan Struktur CASE. Keduanya memungkinkan algoritma Anda untuk menangani banyak kemungkinan alur.
1. Nested IF (IF Bersarang) nesting dolls
Secara sederhana, Nested IF adalah penggunaan struktur IF di dalam struktur IF yang lain. Ini adalah cara untuk membuat pohon keputusan yang mendalam, di mana sebuah kondisi sekunder hanya akan diperiksa jika kondisi primernya terpenuhi.
Konsep dan Struktur
Bayangkan sebuah alur logika di mana Anda harus melewati beberapa "gerbang" pengecekan secara berurutan. Anda hanya bisa mencapai gerbang kedua jika berhasil melewati gerbang pertama.
Struktur Umum:
IF (kondisi_1) THEN
// Kode program 1
IF (kondisi_1.1) THEN
// Kode ini hanya dijalankan jika
// kondisi_1 DAN kondisi_1.1 sama-sama benar.
ENDIF
ELSE
// Kode ini dijalankan jika kondisi_1 salah.
ENDIFBahasa pemrograman umumnya tidak membatasi berapa banyak level IF yang bisa Anda sarangkan, memungkinkan pembuatan logika yang sangat kompleks. Namun, penting untuk menggunakan indentasi (kode yang menjorok) agar struktur IF yang berlapis-lapis tetap mudah dibaca.
2. Struktur CASE: Alternatif untuk Banyak Kondisi
Ketika Anda dihadapkan pada rantai IF-THEN-ELSE IF yang sangat panjang untuk memeriksa satu variabel terhadap banyak kemungkinan nilai, kode bisa menjadi sulit dibaca.
Struktur CASE hadir sebagai solusi yang lebih sederhana dan elegan untuk situasi seperti ini. CASE bekerja dengan cara memeriksa nilai dari sebuah ekspresi, lalu menjalankan aksi yang sesuai dengan kondisi pertama yang cocok.
Struktur Umum
case (ekspresi)
kondisi_1 : aksi_1
kondisi_2 : aksi_2
...
kondisi_n : aksi_n
[otherwise : aksi_default]
endcase
Otherwise: Klausa otherwise (atau else di Pascal) bersifat opsional. Ini akan dijalankan jika tidak ada satu pun kondisi yang terpenuhi, berfungsi sebagai penanganan default atau error.
Perbandingan IF-THEN-ELSE vs. CASE
Mari kita lihat contoh kasus yang sama—mengubah angka (1-4) menjadi kata—diselesaikan dengan dua cara berbeda.
1. Menggunakan Struktur IF-THEN-ELSE
Pertama, mari kita selesaikan dengan rantai IF-THEN-ELSE yang bertingkat. Struktur ini berfungsi, namun bisa menjadi cukup panjang dan berulang.
// Algoritma dengan IF-THEN-ELSE
if Angka = 1 then
write('satu')
else
if Angka = 2 then
write('dua')
else
if Angka = 3 then
write('tiga')
else
if Angka = 4 then
write('empat')
else
write('angka yang dimasukkan salah');
2. Menggunakan Struktur CASE
Sekarang, mari kita selesaikan masalah yang sama persis dengan struktur CASE. Perhatikan bagaimana kode menjadi jauh lebih ringkas dan rapi.
// Algoritma dengan CASE
case (Angka) of
1 : write('satu');
2 : write('dua');
3 : write('tiga');
4 : write('empat');
else
write('angka yang dimasukkan salah');
end;Contoh Kasus: Konversi Nomor Bulan ke Nama Bulan
Struktur CASE sangat ideal untuk kasus seperti ini. Berikut adalah implementasinya dalam program Pascal.
program NAMA_BULAN;
{ Mencetak nama bulan berdasarkan nomor bulannya }
var
AngkaBulan: integer;
begin
write('Masukkan angka bulan (1-12) : ');
readln(AngkaBulan);
case AngkaBulan of
1: writeln('Januari');
2: writeln('Februari');
3: writeln('Maret');
4: writeln('April');
5: writeln('Mei');
6: writeln('Juni');
7: writeln('Juli');
8: writeln('Agustus');
9: writeln('September');
10: writeln('Oktober');
11: writeln('Nopember');
12: writeln('Desember');
else writeln('Bukan nomor bulan yang benar');
end;
end.
Perlu dicatat, tidak semua bahasa pemrograman menyediakan struktur CASE. Namun, bahasa populer seperti Pascal dan C menyediakannya. Jika tidak tersedia, struktur CASE selalu dapat digantikan dengan struktur IF-THEN-ELSE yang setara.
Kesimpulan
Baik Nested IF maupun CASE adalah alat yang sangat ampuh untuk mengelola alur program yang kompleks.
- Nested IF memberikan fleksibilitas untuk membangun pohon keputusan dengan kondisi yang beragam dan berlapis-lapis.
- CASE menawarkan cara yang lebih bersih dan efisien khusus untuk memeriksa satu variabel terhadap banyak kemungkinan nilai konstan.
Memilih struktur yang tepat untuk masalah yang tepat akan membuat algoritma Anda tidak hanya berfungsi dengan benar, tetapi juga lebih mudah dibaca dan dikelola.
Tantangan: Buatlah algoritma yang menampilkan menu program (misal: 1. Baca Data, 2. Cetak Data, 3. Keluar). Kemudian, baca pilihan pengguna dan tampilkan pesan konfirmasi seperti "Anda memilih menu nomor [pilihan]". (Petunjuk: CASE adalah pilihan yang sangat tepat untuk ini!).
