Dalam JavaScript, kita menggunakan variabel untuk menyimpan nilai. Ada tiga cara mendeklarasikan variabel:
✅ var
✅ let
✅ const
Walaupun ketiganya digunakan untuk hal yang sama (menyimpan data), cara kerja dan sifatnya berbeda. Perbedaan ini sangat penting karena bisa menyebabkan error kalau kita tidak paham.
Apa Itu var
, let
, dan const
?
Kata Kunci | Kapan Digunakan | Umumnya Digunakan Untuk |
---|---|---|
var | Cara lama (sebelum tahun 2015) | Kode jadul atau kompatibilitas |
let | Variabel yang bisa berubah | Data dinamis |
const | Nilai yang tidak boleh berubah | Konstanta / data tetap |
1. var
– Cara Lama, Banyak Risiko
Ciri-Ciri var
:
✅ Bisa diubah nilainya (reassign
)
✅ Bisa dideklarasikan ulang (redeclare
)
Scope-nya function, bukan block
Mendukung hoisting, tapi nilainya jadi undefined
Contoh:
var nama = "Idos";
var nama = "Dodds"; // Boleh, tidak error
console.log(nama); // Output: Dodds
Contoh hoisting
:
console.log(umur); // Output: undefined (bukan error!)
var umur = 25;
Kenapa bisa? Karena
var
"naik ke atas" secara otomatis oleh JavaScript (disebut hoisting).
2. let
– Modern, Aman, dan Fleksibel
Ciri-Ciri let
:
✅ Bisa diubah nilainya
❌ Tidak bisa dideklarasi ulang di blok yang sama
Scope-nya adalah block {}
(lebih aman dari var
)
⚠️ Kena hoisting juga, tapi kalau diakses sebelum dideklarasikan = Error
Contoh:
let kota = "Jakarta";
kota = "Bandung"; // Boleh, nilainya berubah
console.log(kota); // Output: Bandung
let kota = "Surabaya"; // ❌ Error! Tidak bisa dideklarasi ulang
Contoh Scope:
let x = 10;
if (true) {
let x = 5;
console.log(x); // Output: 5 (x lokal dalam blok)
}
console.log(x); // Output: 10 (x global luar blok)
Contoh Hoisting (Error):
console.log(angka); // ❌ Error: Cannot access 'angka' before initialization
let angka = 100;
3. const
– Tetap, Tidak Bisa Diubah
Ciri-Ciri const
:
❌ Tidak bisa diubah nilainya setelah dibuat
❌ Tidak bisa dideklarasi ulang
Scope-nya block seperti let
⚠️ Kena hoisting juga, tapi langsung error jika diakses sebelum dideklarasi
Contoh:
const pi = 3.14;
pi = 3.14159; // ❌ Error: Tidak bisa diubah
const pi = 3.15; // ❌ Error: Tidak bisa dideklarasi ulang
Tapi Hati-Hati: Objek/array bisa dimodifikasi!
const user = { nama: "Idos" };
user.nama = "Dodds"; // ✅ Boleh! Karena objeknya tidak diganti, hanya isinya
user = { nama: "Ali" }; // ❌ Error: Tidak boleh ganti objeknya
Tabel Ringkasan Perbedaan
Fitur | var | let | const |
---|---|---|---|
Bisa diubah nilainya | Ya | Ya | Tidak |
Bisa dideklarasi ulang | Ya | Tidak | Tidak |
Jenis Scope | Function (function ) | Block ({} ) | Block ({} ) |
Hoisting | Ya (nilai undefined) | Ya (tapi error saat akses) | Ya (tapi error saat akses) |
Waktu dikenalkan | Versi awal JS | ES6 (2015) | ES6 (2015) |
Kapan Harus Pakai let
dan const
?
Rekomendasi dari developer JavaScript modern:
- Gunakan
**const**
sebanyak mungkin. Lebih aman karena tidak bisa diubah. - Gunakan
**let**
jika memang butuh mengganti nilai. - Hindari
var
kecuali untuk kode lama (legacy code).
Contoh Lengkap:
// Ini boleh:
const API_KEY = "123ABC";
// Ini juga boleh:
let score = 0;
score = score + 10;
// Ini harus dihindari:
var total = 100;
var total = 200; // Gampang bikin error dan konflik
Kesimpulan
-
var
= gaya lama, banyak jebakan -
let
= aman untuk variabel yang bisa berubah -
const
= pilihan terbaik untuk nilai yang tetap
Gunakan let
dan const
di semua proyek JavaScript modern.var
sudah tidak direkomendasikan lagi.