edubun
Bahasa Indonesia

Variabel: let dan const

Variabel adalah nama untuk sebuah nilai. Setelah let score = 10, kata score mewakili 10 sampai kamu memberinya nilai lain.

Memberi nama pada nilai agar bisa dipakai lagi

Sejauh ini setiap nilai diketik langsung ke dalam console.log lalu dilupakan. Program sungguhan perlu mengingat banyak hal: skor pemain, barang di keranjang belanja, nama yang diketik seseorang. Variabel adalah kotak bernama yang menyimpan sebuah nilai. Kamu membuatnya sekali, lalu memakai namanya di mana pun kamu memerlukan nilai itu.

let score = 10;
console.log(score);        // 10
console.log(score + 5);    // 15

Baris let score = 10; melakukan dua hal. Kata kunci let mendeklarasikan variabel baru bernama score, dan = 10 memasukkan nilai 10 ke dalamnya. Tanda sama dengan di sini tidak berarti "sama dengan" seperti dalam matematika. Artinya "simpan nilai di sebelah kanan ke dalam nama di sebelah kiri." Pemrogram menyebutnya penugasan (assignment). Saat score muncul lagi tanpa tanda kutip, JavaScript mencari kotak itu dan memakai nilai di dalamnya.

Mengubah nilai dengan let

Variabel yang dideklarasikan dengan let bisa diberi nilai baru nanti. Tulis namanya, tanda sama dengan, dan nilai barunya, kali ini tanpa let, karena variabelnya sudah ada:

let score = 10;
score = 25;
console.log(score);        // 25
score = score + 5;
console.log(score);        // 30

Baris score = score + 5; tampak mustahil sebagai matematika, tetapi bacalah sebagai instruksi dan maknanya jelas. JavaScript lebih dulu mengevaluasi ruas kanan, yaitu skor saat ini ditambah 5, hasilnya 30. Lalu ia menyimpan 30 kembali ke dalam score. Nilai lamanya hilang. Pola ini, membaca variabel lalu menyimpan nilai yang diperbarui ke dalamnya, adalah cara program menghitung, menjumlahkan total, dan melacak apa pun yang berubah.

const untuk nilai yang tetap

Kata kunci const juga mendeklarasikan variabel, tetapi variabel itu harus langsung diberi nilai dan tidak pernah bisa diberi nilai baru. Kalau dicoba, program berhenti dengan TypeError: Assignment to constant variable. Galat itu berguna. Kalau sebuah nilai memang tidak boleh berubah, misalnya jumlah hari dalam seminggu atau tarif pajak, mendeklarasikannya dengan const berarti kesalahan di bagian lain program tidak bisa diam-diam menimpanya.

const daysInWeek = 7;
console.log(daysInWeek * 4);   // 28
// daysInWeek = 8;  akan berhenti dengan TypeError

Kebiasaan yang baik, dan dianjurkan banyak panduan gaya, adalah memakai const secara bawaan lalu beralih ke let hanya kalau kamu tahu nilainya akan berubah. Kamu mungkin juga melihat kata kunci lama var dalam kode di web. Kata kunci itu masih berfungsi, tetapi aturannya lebih longgar dan sering menimbulkan bug yang mengejutkan, jadi kursus ini hanya memakai let dan const.

Aturan penamaan

Nama variabel boleh berisi huruf, angka, garis bawah _ dan tanda dolar $, tetapi tidak boleh diawali angka dan tidak boleh mengandung spasi. Jadi total2 boleh, sedangkan 2total tidak. Nama peka huruf besar-kecil: score dan Score adalah dua variabel yang berbeda. Beberapa kata seperti let, const, if, dan for dicadangkan oleh bahasa dan tidak bisa dipakai sebagai nama. Kalau nama terdiri atas beberapa kata, pemrogram JavaScript biasanya menulisnya dalam camelCase: kata pertama huruf kecil dan setiap kata berikutnya diawali huruf besar, seperti totalPrice atau daysInWeek. Pilih nama yang menjelaskan arti nilainya; price memberi tahu pembaca jauh lebih banyak daripada x.

Dideklarasikan tetapi kosong, dan dipakai terlalu awal

Kalau kamu menulis let answer; tanpa nilai, variabelnya ada tetapi berisi undefined sampai kamu memberinya sesuatu. Memakai variabel let atau const di baris yang berada di atas deklarasinya menimbulkan galat: ReferenceError: Cannot access 'answer' before initialization. Memakai nama yang sama sekali belum pernah dideklarasikan menghasilkan ReferenceError: answer is not defined. Dalam praktiknya kedua pesan itu berarti hal yang sama: periksa ejaannya dan pastikan deklarasinya ada lebih dulu.

let nama = nilai; bisa berubah nanti. const nama = nilai; tidak pernah berubah.

variabelNama yang menyimpan sebuah nilai
mendeklarasikanMembuat variabel dengan let atau const
penugasanMenyimpan nilai dengan =
letMendeklarasikan variabel yang nilainya bisa berubah
constMendeklarasikan variabel yang tidak bisa diberi nilai baru
camelCasetotalPrice: kata-kata berikutnya diawali huruf besar
undefinedIsi variabel yang sudah dideklarasikan sebelum diberi nilai
kata cadanganKata seperti let atau if yang tidak bisa dipakai sebagai nama
  1. Apa yang dicetak kode ini?
    let x = 4;
    x = x + 3;
    console.log(x);
  2. Apa yang dicetak kode ini?
    let n = 2;
    n = 10;
    n = n * 3;
    console.log(n);
  3. Apa yang dicetak kode ini?
    let city = "Busan";
    console.log("city");
    • Busan
    • city
    • undefined
  4. Apa yang terjadi saat kode ini dijalankan?
    const max = 5;
    max = 6;
    • max menjadi 6
    • TypeError: Assignment to constant variable
    • Tidak terjadi apa-apa, max diam-diam tetap 5
  5. Mana nama variabel yang sah?
    • 2ndPlace
    • second place
    • secondPlace
  6. Apa yang dicetak kode ini?
    let total;
    console.log(typeof total);
  7. Apa yang dicetak kode ini?
    let a = 5;
    let b = a;
    a = 9;
    console.log(b);
  8. Apakah score dan Score variabel yang sama?
    • Ya
    • Tidak
  9. Kata kunci mana yang sebaiknya dipakai untuk jumlah menit dalam satu jam?
    • const
    • let
    • var
  10. Apa yang dicetak kode ini?
    let word = "hi";
    word = word + word;
    console.log(word);
Poin penting
  • let nama = nilai; mendeklarasikan variabel yang bisa berubah.
  • const nama = nilai; mendeklarasikan variabel yang tidak bisa diberi nilai baru.
  • = berarti simpan, bukan sama dengan.
  • x = x + 1 membaca x, menambahkan 1, lalu menyimpan hasilnya kembali.
  • Nama: huruf, angka, _ dan $, tidak diawali angka, peka huruf besar-kecil, camelCase.
Sumber kursus ini (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)

Diperiksa: 2026-10-17