Operator ternary adalah cara singkat untuk menulis kondisi if...else dalam satu baris. Sangat berguna untuk penugasan nilai berdasarkan kondisi sederhana.
kondisi ? nilaiJikaTrue : nilaiJikaFalse
let umur = 20;
// Cara panjang dengan if...else
let status;
if (umur >= 18) {
status = 'Dewasa';
} else {
status = 'Anak-anak';
}
// Cara singkat dengan ternary
let status = umur >= 18 ? 'Dewasa' : 'Anak-anak';
console.log(status); // "Dewasa"
// Menentukan greeting berdasarkan waktu
let jam = new Date().getHours();
let greeting = jam < 12 ? 'Selamat Pagi' : 'Selamat Siang';
// Menentukan teks tombol
let sedangMuat = true;
let labelTombol = sedangMuat ? 'Memuat...' : 'Kirim';
// Menentukan class CSS
let aktif = true;
let kelas = aktif ? 'tombol-aktif' : 'tombol-nonaktif';
// Dalam template literal
let jumlah = 5;
console.log(`Ada ${jumlah} ${jumlah === 1 ? 'item' : 'items'} dalam keranjang`);
// "Ada 5 items dalam keranjang"
Bisa digunakan untuk beberapa kondisi, tapi jangan terlalu dalam:
let nilai = 75;
// Bisa dibaca jika diformat dengan rapi
let grade = nilai >= 90 ? 'A'
: nilai >= 80 ? 'B'
: nilai >= 70 ? 'C'
: nilai >= 60 ? 'D'
: 'F';
console.log(grade); // "C"
Jika lebih dari 2-3 kondisi bersarang, lebih baik kembali ke if...else if untuk keterbacaan.
// ✅ Tepat: penugasan nilai sederhana
const pesan = berhasil ? 'Sukses!' : 'Gagal!';
// ✅ Tepat: dalam string
console.log(`Selamat ${umur >= 18 ? 'datang, dewasa' : 'datang, muda'}!`);
// ✅ Tepat: nilai prop/atribut
const warna = isError ? 'red' : 'green';
// ❌ Tidak tepat: terlalu banyak aksi
kondisi
? (lakukan_a(), lakukan_b())
: (lakukan_c(), lakukan_d());
// Lebih baik pakai if...else untuk kasus ini
| Cara | Cocok untuk | Contoh |
|---|---|---|
if...else |
Logika kompleks, banyak aksi | Validasi form dengan banyak kondisi |
switch |
Satu nilai vs banyak kemungkinan | Status pesanan, kode respons |
| Ternary | Penugasan nilai sederhana | Label tombol, class CSS |
💡 Tips: Gunakan ternary hanya untuk kondisi satu lapis yang sederhana — ketika nilainya langsung ditugaskan ke variabel atau digunakan dalam ekspresi. Jika kondisinya mengandung beberapa baris aksi atau logika yang kompleks, gunakan
if...elsebiasa agar kode tetap mudah dibaca. ✨
Kursus
JavaScript Dasar
Kategori
Kontrol Alur
Durasi Pelajaran
20 menit