dasarpercabanganlogikaPemula3 mnt baca

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.

javascript
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:

javascript
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 {}.

javascript
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:

javascript
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:

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