Percabangan if-else
Mengambil keputusan di program dengan if, else if, dan else, plus memahami nilai truthy dan falsy.
Program yang bisa memutuskan
Percabangan membuat program memilih jalur berbeda berdasarkan kondisi. Analoginya seperti rambu jalan: kalau lampu merah berhenti, kalau hijau jalan.
let nilai = 85;
if (nilai >= 90) {
console.log("A, luar biasa!");
} else if (nilai >= 75) {
console.log("B, bagus!");
} else {
console.log("Belajar lagi ya");
}Blok if dicek pertama. Kalau salah, lanjut ke else if berikutnya. Kalau semua salah, blok else yang jalan.
Kondisi tidak harus perbandingan
Kondisi bisa berupa nilai apa pun. JavaScript otomatis mengubahnya jadi boolean:
let nama = "Rizky";
if (nama) {
console.log("Halo, " + nama);
}String tidak kosong dianggap true. Ini membawa kita ke konsep truthy dan falsy.
Truthy dan falsy
Nilai falsy (dianggap false) hanya ada enam: false, 0, "" (string kosong), null, undefined, dan NaN. Sisanya truthy, termasuk string "0", array kosong [], dan object kosong {}.
if (0) console.log("tidak jalan");
if ("0") console.log("jalan, string tidak kosong itu truthy");
if ([]) console.log("jalan juga, array kosong itu truthy");Catatan teknis: Array dan object kosong itu truthy, ini jebakan umum. Untuk mengecek array kosong, pakai arr.length === 0, bukan if (arr). Untuk object kosong, pakai Object.keys(obj).length === 0.
Guard clause: keluar cepat
Di dalam fungsi, pola yang rapi adalah memeriksa kasus gagal dulu dan keluar cepat, bukan membungkus semua kode dalam if besar:
function daftar(nama, umur) {
if (!nama) {
return "Nama wajib diisi";
}
if (umur < 17) {
return "Umur minimal 17 tahun";
}
// kode utama di sini, tidak bertingkat-tingkat
return "Pendaftaran " + nama + " berhasil";
}
console.log(daftar("", 20)); // "Nama wajib diisi"
console.log(daftar("Rizky", 15)); // "Umur minimal 17 tahun"
console.log(daftar("Rizky", 18)); // "Pendaftaran Rizky berhasil"Pola ini disebut guard clause atau early return. Kode utama tetap datar di bawah, tidak tenggelam dalam piramida if. Setiap validasi berdiri sendiri dan mudah ditambah atau dihapus.
if tanpa else
Tidak semua if butuh else. Kadang kamu hanya peduli satu kondisi:
let suhu = 35;
if (suhu > 30) {
console.log("Nyalakan AC!");
}
console.log("Program lanjut...");Baris terakhir selalu jalan apapun kondisinya. Pola "if sekali jalan" ini dipakai untuk peringatan, logging, atau aksi opsional yang tidak punya alternatif. Jangan paksakan else kalau memang tidak ada aksi alternatifnya.
Kesimpulan
if-else adalah struktur keputusan paling dasar. Kuasai truthy/falsy karena ia menentukan perilaku kondisi yang tidak memakai operator perbandingan eksplisit.