UI vs. UX: What’s the difference?

Perbedaan Var, Let, dan Const di JavaScript

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 KunciKapan DigunakanUmumnya Digunakan Untuk
varCara lama (sebelum tahun 2015)Kode jadul atau kompatibilitas
letVariabel yang bisa berubahData dinamis
constNilai yang tidak boleh berubahKonstanta / 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

Fiturvarletconst
Bisa diubah nilainya Ya Ya Tidak
Bisa dideklarasi ulang Ya Tidak Tidak
Jenis ScopeFunction (function)Block ({})Block ({})
Hoisting Ya (nilai undefined) Ya (tapi error saat akses) Ya (tapi error saat akses)
Waktu dikenalkanVersi awal JSES6 (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.