Kondisi bikin program bisa memilih: jalankan kode ini kalau sesuatu benar, kode lain kalau salah. Di JavaScript, kondisi ditulis pakai if (kalau) dan else (kalau gak). Persis kayak "kalau hujan, bawa payung, kalau gak, pakai topi".
🧪 Tebakan cepat:
nilaikamu 75 dan syarat lulusnyanilai > 75. Lulus atau belum? Tebak dulu, jawabannya ada di bagian "Tanda pembanding".
if, else if, else
let nilai = 80;
if (nilai >= 90) {
console.log("A: luar biasa");
} else if (nilai >= 75) {
console.log("B: lulus");
} else {
console.log("C: belum lulus");
}
if (nilai >= 90)mengecek syarat di dalam kurung. Hasilnyatrue(benar) ataufalse(salah). Kalautrue, isi{ }sesudahnya dijalankan.else if (nilai >= 75)adalah syarat berikutnya. Syarat ini cuma dicek kalau syarat di atasnyafalse.elsegak punya syarat. Isinya jalan kalau semua syarat di atasnyafalse.
Dengan nilai 80, syarat pertama false, syarat kedua true, jadi yang tercetak B: lulus, dan else dilewati. JavaScript mengecek dari atas ke bawah dan berhenti di syarat pertama yang true. Jadi taruh syarat paling ketat (angka paling besar) di paling atas. Kalau nilai >= 75 ditaruh duluan, nilai 95 juga cuma dapat B.
else if dan else boleh gak ditulis. if sendirian juga sah.
Tanda pembanding
console.log(75 > 75); // false
console.log(75 >= 75); // true
console.log(5 === 5); // true
console.log("5" === 5); // false
console.log(5 !== 3); // true
>lebih besar,<lebih kecil.>=lebih besar atau sama dengan,<=lebih kecil atau sama dengan. Angka batasnya ikut masuk.===sama persis,!==gak sama.
Jawaban tebakan: belum lulus, karena 75 > 75 itu false. Kalau 75 harus ikut lulus, pakai >=.
=== mengecek nilai dan tipenya sekaligus. "5" (teks) dan 5 (angka) beda tipe, jadi hasilnya false. Begitu juga "" === false hasilnya false. Ada juga == yang mengubah tipe dulu sebelum membandingkan, jadi "5" == 5 hasilnya true. Hasil == sering mengejutkan, jadi biasakan pakai ===. Satu = beda lagi: itu buat mengisi variabel, bukan membandingkan.
Kondisi di dalam function
function cekUmur(umur) {
if (umur >= 17) {
return "Boleh bikin KTP";
}
return "Belum boleh";
}
console.log(cekUmur(20)); // Boleh bikin KTP
console.log(cekUmur(12)); // Belum boleh
return mengirim hasil keluar dan langsung menghentikan function. Jadi baris return "Belum boleh" cuma tercapai kalau syarat if tadi false. Teks yang dikembalikan harus persis: "Lulus" dan "lulus" itu dua teks yang beda.
Ternary: if-else dalam satu baris
const nilai = 80;
const status = nilai >= 75 ? "Lulus" : "Belum lulus";
console.log(status); // Lulus
Bentuknya syarat ? nilaiKalauBenar : nilaiKalauSalah. Tanda ? sesudah syarat, tanda : di antara dua pilihan. Cocok buat memilih satu dari dua nilai.
⚠️ Jebakan yang sering ketemu
- Titik koma sesudah
if.if (nilai >= 75); { ... }bikin isi kurawalnya selalu jalan, karenaif-nya berhenti di titik koma. - Lupa
returnuntuk sisa nilai. Kalau gak adareturndi akhir, nilai yang gak cocok dengan syarat mana pun dapatundefined. elsediberi syarat.else (nilai < 75) { ... }bikin SyntaxError. Syarat ditulis diifatauelse if,elseselalu tanpa syarat.
TL;DR: if (syarat) { ... } else if (syarat lain) { ... } else { ... } menjalankan satu cabang saja, yaitu cabang pertama yang syaratnya true, jadi syarat paling ketat ditaruh di atas. >= dan <= ikut menghitung angka batasnya, > dan < gak. Pakai === buat membandingkan, karena dia mengecek nilai dan tipe. Di dalam function, kirim hasil pakai return. Buat memilih satu dari dua nilai, pakai ternary syarat ? a : b.