Struktur Pemilihan Lanjutan: Logika IF-ELSE IF dan Banyak Kasus
Setelah memahami struktur pemilihan dasar untuk satu kasus (IF-THEN) dan dua kasus (IF-THEN-ELSE), kita akan melangkah lebih jauh. Dalam dunia nyata, masalah seringkali memiliki lebih dari dua kemungkinan solusi.
Jika IF-THEN-ELSE adalah sebuah pertigaan, maka struktur pemilihan banyak kasus adalah perempatan, atau bahkan bundaran dengan banyak jalan keluar. Struktur ini memungkinkan algoritma kita untuk menangani skenario yang lebih kompleks dan membuat keputusan yang lebih spesifik.
Kilas Balik: Pemilihan Dua Kasus (IF-THEN-ELSE)
Sebagai pengingat, struktur IF-THEN-ELSE digunakan ketika ada satu kondisi yang menghasilkan dua aksi yang berbeda.
Bentuk Umum:
if kondisi then
aksi_jika_benar
else
aksi_jika_salah
endif
Contoh: Algoritma Bilangan Ganjil atau Genap
Algoritma ini memeriksa apakah sisa bagi sebuah bilangan dengan 2 adalah 0. Jika ya, bilangan itu genap; jika tidak, maka ganjil.
Deklarasi:
Bil : integer
Ket : string
Algoritma:
Read(Bil)
if Bil mod 2 = 0 then
ket <- 'Bilangan Genap'
else
ket <- 'Bilangan Ganjil'
endif
write(ket)Pemilihan Tiga Kasus atau Lebih (IF-ELSE IF)
Bagaimana jika kita butuh lebih dari dua pilihan? Misalnya, untuk menentukan apakah sebuah bilangan itu Positif, Negatif, atau Nol. Di sinilah kita menggunakan struktur pemilihan N kasus, yang sering diimplementasikan sebagai rantai IF-ELSE IF atau IF bersarang. Struktur ini bekerja dengan cara menguji serangkaian kondisi secara berurutan.
Bentuk Umum
if kondisi_1 then
aksi_1
else
if kondisi_2 then
aksi_2
else
aksi_3
endif
endif
Logikanya sederhana:
- Periksa
kondisi_1. Jika benar, jalankanaksi_1dan proses selesai. - Jika
kondisi_1salah, maka periksakondisi_2. Jika benar, jalankanaksi_2dan selesai. - Jika
kondisi_2juga salah, maka jalankanaksi_3sebagai pilihan terakhir.
Contoh Kasus 1: Bilangan Positif, Negatif, atau Nol
Berikut adalah algoritma untuk mengklasifikasikan sebuah bilangan.
Deklarasi:
bil: integer
ket: string
Algoritma:
Read(bil)
if bil = 0 then
ket <- 'Bilangan Adalah Nol'
else
if bil > 0 then
ket <- 'Bilangan adalah Positif'
else
ket <- 'Bilangan adalah Negatif'
endif
endif
write(ket)Studi Kasus: Konversi Nilai Indeks ke Keterangan
Struktur IF-ELSE IF sangat berguna untuk kasus yang memiliki banyak kategori, seperti sistem penilaian. Mari kita buat algoritma yang mengubah nilai indeks huruf (A, B, C, D, E) menjadi keterangan.
Deklarasi:
indeks: char
ket: string
Algoritma:
Read(indeks)
if indeks = 'A' then
ket <- 'Sangat Baik'
else
if indeks = 'B' then
ket <- 'Baik'
else
if indeks = 'C' then
ket <- 'Cukup'
else
if indeks = 'D' then
ket <- 'Kurang'
else
if indeks = 'E' then
ket <- 'Sangat Kurang'
else
ket <- 'Indeks yang dimasukkan salah'
endif
endif
endif
endif
endif
Write(ket)
Perhatikan penggunaan else terakhir. Ini adalah praktik yang sangat baik untuk menangani default case atau input yang tidak valid, membuat algoritma kita lebih tangguh.
Kesimpulan
Dengan merangkai struktur IF-ELSE IF, Anda dapat membangun pohon keputusan yang kompleks untuk menangani berbagai skenario. Kemampuan ini adalah inti dari pembuatan program yang bisa beradaptasi dan merespons berbagai macam input secara cerdas. Anda tidak lagi terbatas pada pilihan "ya atau tidak", tetapi bisa membuat pilihan "jika ini, maka lakukan A; jika tidak, tapi jika itu, maka lakukan B; jika tidak juga, maka lakukan C," dan seterusnya.
Tantangan: Buatlah algoritma untuk menentukan diskon berdasarkan total belanja. Aturan: Belanja > Rp 500.000 diskon 20%, Belanja > Rp 200.000 diskon 10%, selain itu tidak ada diskon.
