Kondisi — JavaScript

Hidup penuh keputusan: kalo hujan, bawa payung. Kalo lapar, makan. Kalo nilai >= 75, lulus. Otak kita kerja pake aturan if-else terus-menerus tanpa sadar…

Hidup penuh keputusan: kalo hujan, bawa payung. Kalo lapar, makan. Kalo nilai >= 75, lulus. Otak kita kerja pake aturan if-else terus-menerus tanpa sadar. Komputer juga butuh aturan ini buat ngambil keputusan. Kondisi di JavaScript pake if, else if, else — sama persis kayak cara otak mikir. Tanpa kondisi, program cuma bisa jalan satu jalur kayak kereta yang gak bisa belok.

💡 Operator perbandingan = jebakan klasik. = itu assign nilai (x = 5), == compare loose (auto-konversi tipe — bisa weird), === compare strict (recommended 99% kasus). Pakai === selalu, kecuali kamu betul-betul tau alasan pakai ==. Aturan emas yang nyelametin ribuan jam debugging.

if (nilai >= 75) {
  console.log("Lulus!");
} else {
  console.log("Belum lulus.");
}

Operator perbandingan:

🎭 Analogi sehari-hari

Bayangin lagi nyetir sampai di perempatan lampu merah. Otak kamu otomatis kerja kayak gini: "Kalo hijau, terus aja" (if). "Kalo merah, injak rem" (else). "Kalo kuning, mulai ngerem pelan-pelan" (else if). JavaScript juga gitu — dia baca tiap kondisi urut dari atas ke bawah, pas nemu yang cocok pertama langsung jalan, sisanya di-skip. Persis kayak kamu yang gak mungkin sekalian nginjak gas DAN rem barengan di satu lampu yang sama.

⚠️ Jebakan yang sering ditemui

🎯 if/else vs switch vs ternary vs lookup object — pilih yang mana?

  • 2 cabang sederhana (true/false, ya/tidak) → ternary cond ? a : b (lebih ringkas)
  • 2-3 cabang dengan logika kompleksif/else if
  • Banyak cabang dengan VALUE EXACT match (status code, hari minggu) → switch atau lookup object (const map = { 200: ..., 404: ... })
  • Range angka / kondisi kompleks (nilai >= 90, < 70) → if/else if (switch gak bisa range)
  • Default value untuk variabel → ternary atau ??/|| operator

Aturan modern: lookup object (const grade = { 90: "A", 80: "B" }) sering lebih clean dari switch panjang. Ternary cocok untuk inline (JSX render {loggedIn ? <Profile /> : <Login />}).

TL;DR: Kondisi = if/else if/else buat ambil keputusan. Operator: === strict equal (PAKAI INI), == loose (auto-konversi tipe — hindari), = assign (bukan compare). if (x = 5) = bug klasik (assignment, selalu true). 2 cabang → ternary a ? b : c. Banyak cabang exact match → switch atau lookup object. Default value: ?? (null/undefined saja) lebih aman dari || (semua falsy). Pakai === 99% kasus.

Yang akan kamu pelajari