Kondisi memungkinkan program untuk mengambil keputusan — menjalankan blok kode yang berbeda berdasarkan kondisi yang diberikan. Ini adalah fondasi dari logika pemrograman.
let nilai = 75;
if (nilai >= 60) {
console.log('Lulus!');
}
// Jika nilai >= 60, tampilkan "Lulus!"
// Jika tidak, tidak ada yang terjadi
let umur = 16;
if (umur >= 17) {
console.log('Boleh membuat SIM.');
} else {
console.log('Belum cukup umur untuk membuat SIM.');
}
let nilai = 85;
let grade;
if (nilai >= 90) {
grade = 'A';
} else if (nilai >= 80) {
grade = 'B';
} else if (nilai >= 70) {
grade = 'C';
} else if (nilai >= 60) {
grade = 'D';
} else {
grade = 'F';
}
console.log(`Grade kamu: ${grade}`); // "Grade kamu: B"
let umur = 20;
let memilikiKTP = true;
if (umur >= 17) {
if (memilikiKTP) {
console.log('Bisa mendaftar untuk memilih.');
} else {
console.log('Perlu membuat KTP terlebih dahulu.');
}
} else {
console.log('Belum cukup umur untuk memilih.');
}
let suhu = 30;
let adaHujan = false;
// AND: kedua kondisi harus terpenuhi
if (suhu > 25 && !adaHujan) {
console.log('Cuaca bagus, cocok untuk jalan-jalan!');
}
// OR: salah satu kondisi cukup
if (suhu > 35 || adaHujan) {
console.log('Mending di rumah aja.');
}
// NOT: membalik kondisi
let sedangLibur = false;
if (!sedangLibur) {
console.log('Hari ini masuk kerja.');
}
let nama = '';
let pengguna = null;
let daftar = [];
if (nama) {
console.log('Ada nama'); // tidak tampil — '' adalah falsy
}
if (pengguna) {
console.log('Ada pengguna'); // tidak tampil — null adalah falsy
}
if (daftar) {
console.log('Ada daftar'); // TAMPIL — array kosong adalah truthy!
}
// Cara yang lebih aman untuk mengecek array kosong:
if (daftar.length > 0) {
console.log('Daftar tidak kosong');
}
Daripada membuat kondisi bersarang yang dalam, gunakan guard clause — return awal jika kondisi tidak terpenuhi:
// ❌ Cara kurang baik — banyak nesting
function prosesOrder(order) {
if (order) {
if (order.items.length > 0) {
if (order.pembayaran) {
console.log('Memproses order...');
}
}
}
}
// ✅ Dengan guard clause — lebih bersih
function prosesOrder(order) {
if (!order) return;
if (order.items.length === 0) return;
if (!order.pembayaran) return;
// Logika utama di sini — tanpa nesting berlebihan
console.log('Memproses order...');
}
💡 Tips: Hindari kondisi bersarang yang terlalu dalam (lebih dari 3 level) — ini membuat kode sulit dibaca. Gunakan guard clause (return awal) atau pisahkan kondisi menjadi fungsi-fungsi yang lebih kecil untuk membuat kode lebih bersih dan mudah dipahami. 🎯
Kursus
JavaScript Dasar
Kategori
Kontrol Alur
Durasi Pelajaran
20 menit