Operator Perbandingan dan Logika
Membandingkan nilai dengan benar (=== vs ==) dan menggabungkan kondisi dengan &&, ||, !.
Membandingkan nilai
Operator perbandingan menghasilkan boolean (true/false). Ini bahan utama percabangan dan perulangan.
let umur = 17;
console.log(umur > 16); // true
console.log(umur < 16); // false
console.log(umur >= 17); // true
console.log(umur <= 16); // false=== vs == : perbedaan krusial
JavaScript punya dua operator kesetaraan. Tiga sama dengan (===) membandingkan nilai DAN tipe data. Dua sama dengan (==) melakukan konversi tipe otomatis sebelum membandingkan, dan ini sumber bug.
console.log("5" == 5); // true, string dikonversi ke number
console.log("5" === 5); // false, tipe beda
console.log(0 == false); // true, membingungkan!
console.log(0 === false); // false, jelasAturannya sederhana: selalu pakai === dan !==. Lupakan == kecuali kamu punya alasan sangat spesifik.
Operator logika
let umur = 20;
let punyaKTP = true;
// DAN (&&): semua harus true
console.log(umur >= 17 && punyaKTP); // true
// ATAU (||): salah satu true sudah cukup
console.log(umur >= 17 || punyaKTP); // true
// TIDAK (!): membalik nilai
console.log(!punyaKTP); // falseOperator logika juga dipakai untuk nilai default: let nama = input || "Anonim" akan memakai "Anonim" jika input kosong.
Catatan teknis: && dan || memakai short-circuit. Pada a && b, jika a falsy maka b tidak dievaluasi. Ini dimanfaatkan untuk pola seperti user && user.nama, tapi di kode modern lebih baik pakai optional chaining: user?.nama.
Merangkai kondisi kompleks
Di aplikasi nyata, kondisi jarang tunggal. Contoh aturan promo toko:
let umur = 20;
let member = true;
let totalBelanja = 250000;
// dapat promo jika: dewasa DAN (member ATAU belanja besar)
let dapatPromo = umur >= 17 && (member || totalBelanja >= 200000);
console.log(dapatPromo); // trueTanda kurung di sini penting untuk mengelompokkan logika. Tanpa kurung, && didahulukan sebelum || mengikuti aturan precedence, dan hasilnya bisa beda dari niatmu.
Tips membaca kondisi kompleks: bacakan dengan kata-kata. "Umur minimal 17 dan (member atau belanja minimal 200 ribu)". Kalau susah dibacakan, pecah jadi variabel bernama seperti dapatPromo di atas. Variabel bernama adalah dokumentasi gratis.
Kesimpulan
Tiga hal yang wajib diingat: pakai ===, pahami &&/||/!, dan waspadai nilai falsy. Operator ini adalah otot logika di balik setiap keputusan yang diambil programmu.