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. 
ENDIF

Bahasa 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!).

This article was updated on October 5, 2025