Variabel — JavaScript

Coba inget pas SD diajarin matematika: "x = 5". x adalah label, 5 adalah isi yang nempel di label itu. Variabel di JavaScript persis sama — kotak penyimpanan de

Coba inget pas SD diajarin matematika: "x = 5". x adalah label, 5 adalah isi yang nempel di label itu. Variabel di JavaScript persis sama — kotak penyimpanan dengan nama, kamu bisa taro nilai apapun di dalamnya, terus akses lagi nanti pake namanya. Tanpa variabel, kode kamu cuma sekumpulan angka random tanpa makna. Dengan variabel, data jadi punya identitas dan bisa di-reuse.

🤔 Tiga cara, satu juara. JavaScript punya var (lawas, dihindari), let (modern, bisa diubah), dan const (modern, tetap). Aturan praktis di codebase modern: default pake const, ganti ke let kalau memang perlu reassign. var? Anggep aja gak ada — peninggalan masa lalu yang masih kompatibel tapi lebih ribet.

Di JavaScript, ada tiga cara mendeklarasikan variabel:

let nama = "Budi"
const umur = 17

Gunakan const untuk nilai yang tidak berubah dan let untuk nilai yang bisa berubah.

Reassignment — mengubah nilai variabel

Variabel let bisa ditimpa dengan nilai baru:

let skor = 0
skor = 100   // sekarang skor bernilai 100

Kalau pakai const, error:

const pi = 3.14
pi = 3.15   // TypeError: Assignment to constant variable

Tukar nilai (swap) dengan variabel bantu

Untuk menukar nilai dua variabel, kamu butuh variabel ketiga sebagai penyimpan sementara:

let a = 5
let b = 10

let temp = a  // simpan nilai a dulu
a = b         // a sekarang 10
b = temp      // b sekarang 5 (nilai a lama)

Tanpa temp, nilai a yang lama akan hilang saat ditimpa oleh b.

<title id="var-t">let vs const: kotak isi bisa diganti vs disegel.</title>let vs const — perbedaan kotak penyimpananlet nama = "Budi""Budi" → "Ani"✓ isi bisa digantinama = "Ani" // OKconst PI = 3.143.14 🔒✗ disegelPI = 3.15 // TypeErrorconst melindungi LABEL, bukan isi (object/array masih bisa di-mutate).
Default ke const. Pakai let hanya kalau benar-benar perlu reassign.

🎭 Analogi sehari-hari

Variabel = kotak penyimpanan dengan label nama:

Mau swap dua kotak? Tidak bisa langsung tuang — butuh kotak ketiga (temp) buat menampung sementara, sama seperti tukar isi gelas A dan B butuh gelas kosong dulu.

⚠️ Jebakan yang sering ditemui

🧪 Tebakan cepat — hoisting drama. Tanpa run, tebak output tiap baris:

// BLOK A
console.log(a);
var a = 5;

// BLOK B
console.log(b);
let b = 5;

// BLOK C
console.log(typeof c);

Jawaban:

  • A → undefined (var di-hoist + diisi undefined, bukan error)
  • B → ReferenceError (let di-hoist tapi DI-LARANG akses sampai baris deklarasi — Temporal Dead Zone)
  • C → "undefined" (variable yang gak pernah dideklarasi sama sekali — tapi typeof aman, gak lempar error)

Pelajaran: var permissive (sering tutup bug). let/const strict (paksa kamu inisialisasi sebelum pakai). Selalu pakai let/const.

TL;DR: Variabel = kotak data berlabel. Default pakai const (gak bisa reassign), pakai let cuma kalau perlu reassign. HINDARI var (lawas, function scope aneh). const melindungi LABEL, bukan isi — const arr = [1]; arr.push(2) boleh, arr = [3] error. Swap nilai butuh variabel temp ketiga. Lupa let/const = global pollution diam-diam.

Yang akan kamu pelajari