Advance · Pertemuan 1 · Function JavaScript · Pelajaran 1 dari 13

Perbedaan var, let & const

Catatan: JavaScript tidak punya keyword final (itu milik Java/Dart). Untuk membuat nilai yang tidak bisa diubah, JavaScript memakai const.

Sebelum membuat function, kita perlu tahu cara membuat variabel. Ada tiga keyword: var, let, dan const — masing-masing punya aturan berbeda soal scope, deklarasi ulang, dan pengubahan nilai.

Aspek var let const
Scope Function Block { } Block { }
Boleh dideklarasi ulang ✅ Ya ❌ Tidak ❌ Tidak
Boleh diubah (re-assign) ✅ Ya ✅ Ya ❌ Tidak
Wajib diberi nilai awal Tidak Tidak Ya
Rekomendasi Hindari (gaya lama) Pakai jika nilai berubah Pilihan utama (default)

var — gaya lama (function scope)

var x = 1;
var x = 2; // boleh dideklarasi ulang
x = 3;     // boleh diubah

function contoh() {
  if (true) {
    var y = 10;
  }
  console.log(y); // -> 10  (var TIDAK mengenal block scope)
}

let — modern (block scope, bisa diubah)

let a = 1;
a = 2;        // boleh diubah
// let a = 3; // ERROR: tidak boleh dideklarasi ulang

if (true) {
  let b = 10;
}
// console.log(b); // ERROR: b hanya hidup di dalam block { }

const — nilai tetap (pengganti "final")

const PI = 3.14;
// PI = 3.15; // ERROR: const tidak boleh di-reassign

// Catatan penting: untuk array/object, ISINYA masih bisa diubah,
// yang dilarang hanya MENGGANTI seluruh referensinya.
const daftar = [1, 2];
daftar.push(3);       // boleh
console.log(daftar);  // -> [1, 2, 3]
// daftar = [9];      // ERROR: tidak boleh ganti seluruh array
Aturan praktis: pakai const sebagai default, ganti ke let hanya jika nilainya memang perlu berubah, dan hindari var di kode modern.