Mengambil keputusan dengan if dan else
Pernyataan if menjalankan sebuah blok kode hanya kalau kondisinya true. Dengan else if, JavaScript memeriksa kondisi dari atas dan berhenti pada kondisi pertama yang true.
Menjalankan kode hanya pada saat tertentu
Setiap program sejauh ini menjalankan setiap baris, setiap kali. Program yang berguna berperilaku berbeda dalam situasi yang berbeda: sebuah gim menampilkan "You win" hanya kalau skornya cukup tinggi, dan sebuah toko menambahkan ongkos kirim hanya kalau pesanannya kecil. Pernyataan if adalah cara JavaScript memilih.
const temperature = 31;
if (temperature >= 30) {
console.log("Hot day. Drink water.");
}
console.log("Done");Kondisi ditulis di dalam tanda kurung setelah kata if. Kondisi adalah ekspresi apa pun yang menghasilkan boolean, biasanya perbandingan dari unit sebelumnya. Kode yang dijalankan saat kondisinya true ditaruh di dalam kurung kurawal, yang membentuk blok. Kalau kondisinya false, JavaScript melewati seluruh blok dan melanjutkan setelah kurung kurawal penutup. Pada contoh di atas, kedua baris dicetak. Ubah temperature menjadi 20 dan hanya "Done" yang dicetak. Baris-baris di dalam blok menjorok dua spasi. JavaScript tidak memerlukan indentasi itu, tetapi indentasi menunjukkan sekilas baris mana yang termasuk if, dan setiap pemrogram berpengalaman akan mengharapkannya.
else: jalur yang lain
Sering kali kamu ingin satu hal terjadi saat kondisinya true dan hal lain saat kondisinya false. Tambahkan blok else. Tepat satu dari kedua blok dijalankan, tidak pernah keduanya dan tidak pernah tidak satu pun.
const n = 7;
if (n % 2 === 0) {
console.log(n + " is even");
} else {
console.log(n + " is odd");
}
// mencetak: 7 is oddelse if: lebih dari dua pilihan
Untuk beberapa kemungkinan, rangkai kondisi dengan else if. JavaScript mengujinya dari atas. Begitu ada yang true, blok itu dijalankan dan semua sisanya dilewati, sekalipun kondisi di bawahnya juga true. else terakhir menangkap semua yang tidak cocok dengan apa pun di atasnya.
const score = 72;
if (score >= 90) {
console.log("A");
} else if (score >= 80) {
console.log("B");
} else if (score >= 70) {
console.log("C");
} else {
console.log("F");
}
// mencetak: CUrutan kondisi itu penting. Dengan skor 95, uji pertama sudah true dan A dicetak. Kalau uji-ujinya ditulis terbalik, dimulai dengan score >= 70, skor 95 akan berhenti di uji pertama dan mencetak C. Kalau rentangnya tumpang-tindih seperti ini, taruh kondisi yang paling sempit di depan. Menelusuri kode dengan tangan adalah kebiasaan yang baik: pilih sebuah nilai, baca dari atas, dan sebutkan dengan suara keras cabang mana yang diambilnya.
Bersarang dan digabungkan
Sebuah blok bisa berisi pernyataan if lain, yang disebut bersarang (nesting). Sering kali sarang yang dalam bisa dihindari dengan menggabungkan kondisi memakai && dan || dari unit sebelumnya. Kedua potong kode ini melakukan pekerjaan yang sama, dan yang kedua lebih mudah dibaca:
if (age >= 8) {
if (height >= 120) {
console.log("You can ride");
}
}
if (age >= 8 && height >= 120) {
console.log("You can ride");
}Operator kondisional
Kalau kamu hanya perlu memilih di antara dua nilai, ada bentuk ringkas yang disebut operator kondisional (ternary): condition ? valueIfTrue : valueIfFalse. Misalnya, const label = n % 2 === 0 ? "even" : "odd";. Pakai untuk pilihan nilai yang singkat. Untuk apa pun yang menjalankan beberapa pernyataan, if dan else biasa lebih jelas.
Kekeliruan yang umum adalah menulis satu tanda sama dengan di dalam kondisi: if (score = 100). Itu menyimpan 100 ke dalam score alih-alih membandingkan, dan bloknya selalu dijalankan. Selalu bandingkan dengan ===.
if (kondisi) { ... } else if (kondisi lain) { ... } else { ... }
| kondisi | Ekspresi boolean di dalam if ( ) |
| blok | Pernyataan yang dikelompokkan dalam { } |
| else | Dijalankan saat kondisi if bernilai false |
| else if | Kondisi lain, diperiksa hanya kalau kondisi di atasnya false |
| cabang | Salah satu jalur yang mungkin dalam pernyataan if |
| bersarang (nesting) | if di dalam if lain |
| ternary | cond ? a : b memilih salah satu dari dua nilai |
| indentasi | Spasi di awal baris di dalam blok |
- Apa yang dicetak kode ini?
const x = 5; if (x > 3) { console.log("big"); } else { console.log("small"); } - Apa yang dicetak kode ini?
const x = 2; if (x > 3) { console.log("big"); } console.log("end");- big, then end
- Only end
- Nothing
- Apa yang dicetak kode ini?
const t = 18; if (t >= 30) { console.log("hot"); } else if (t >= 15) { console.log("mild"); } else { console.log("cold"); } - Apa yang dicetak kode ini?
const s = 95; if (s >= 70) { console.log("C"); } else if (s >= 90) { console.log("A"); } - Dalam rangkaian if / else if / else, paling banyak berapa blok yang dijalankan?
- Apa yang dicetak kode ini?
const n = 10; console.log(n > 5 ? "yes" : "no"); - Apa yang dicetak kode ini?
const a = 4; const b = 9; if (a > 5 || b > 5) { console.log("one"); } else { console.log("none"); } - Apa yang dicetak kode ini?
const a = 4; const b = 9; if (a > 5 && b > 5) { console.log("both"); } else { console.log("not both"); } - Apa yang salah dengan
if (score = 100)?- Tidak ada
- Itu menyimpan 100 alih-alih membandingkan; pakai ===
- Perlu titik koma di dalamnya
- Apa yang dicetak kode ini?
let msg = "start"; const n = 0; if (n) { msg = "nonzero"; } console.log(msg);
- if (kondisi) { ... } menjalankan blok hanya kalau kondisinya true.
- else dijalankan saat kondisinya false; tepat satu dari keduanya yang dijalankan.
- Rangkaian else if diperiksa dari atas; yang pertama true yang menang.
- Taruh kondisi paling sempit di depan kalau rentangnya tumpang-tindih.
- Bandingkan dengan ===, jangan pernah dengan satu tanda =.
Sumber kursus ini (2)
- MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
- Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)
Diperiksa: 2026-10-17