KuloDev
1 Hari
0 XP
intermediate15 menitModul: 02-control-flow-logic

Truthy, Falsy, & Type Coercion

Memahami bagaimana bahasa pemrograman mengevaluasi nilai non-boolean dalam kondisi logika dan cara kerja konversi tipe implisit.

1. Konsep Nilai Truthy dan Falsy

Di banyak bahasa (terutama JavaScript, Python, dan PHP), ketika suatu nilai yang BUKAN boolean diletakkan di dalam kondisi `if (...)`, nilai tersebut akan otomatis dikonversi secara implisit menjadi `true` (dikenal sebagai Truthy) atau `false` (dikenal sebagai Falsy).

Daftar Nilai Falsy di JavaScript
Nilai-nilai berikut selalu bernilai false dalam evaluasi boolean: 1. `false` (boolean asli) 2. `0`, `-0`, `0n` (angka nol) 3. `""` (string kosong) 4. `null` (wadah bernilai kosong sengaja) 5. `undefined` (variabel belum diisi) 6. `NaN` (Not a Number) Semua nilai di luar daftar ini (termasuk string berisi spasi `" "`, array kosong `[]`, object `{}`) adalah TRUTHY!

2. Perbedaan Strict Equality vs Loose Equality

Dalam bahasa bertipe dinamis seperti JavaScript dan PHP, terdapat perbedaan krusial antara pengecekan dengan konversi tipe otomatis (`==`) dan tanpa konversi tipe (`===`).

Perbandingan Equality
1// Loose Equality (Melakukan Type Coercion)
2console.log(5 == "5"); // true (string "5" dipaksa jadi angka 5)
3console.log(0 == false); // true
4console.log(null == undefined); // true
5
6// Strict Equality (Memeriksa Nilai DAN Tipe Data - SELALU DIREKOMENDASIKAN!)
7console.log(5 === "5"); // false (Number vs String)
8console.log(0 === false);// false (Number vs Boolean)
Golden Rule Pemrograman Modern
Di JavaScript & PHP, selalu gunakan `===` (strict equality) dan `!==` (strict inequality) untuk menghindari bug tersembunyi yang sulit dilacak akibat konversi tipe data otomatis.
Kuis Pemahaman
+10 XP

Di JavaScript, apa hasil evaluasi dari: `Boolean([])` (sebuah array kosong)?

Selesaikan Materi Ini?

Dapatkan +25 XP dan simpan progres belajarmu.