let vs const
Tujuan Pembelajaran
Section titled “Tujuan Pembelajaran”Setelah membaca halaman ini, kamu akan mampu:
- Membedakan
letdanconstsecara teknis - Memilih kata kunci yang tepat untuk setiap situasi
- Memahami mengapa
constlebih sering dianjurkan
Pendahuluan
Section titled “Pendahuluan”Di halaman-halaman sebelumnya, kita selalu menggunakan let untuk membuat variabel. Tapi TypeScript (dan JavaScript modern) punya dua kata kunci utama untuk membuat variabel: let dan const.
Keduanya digunakan untuk menyimpan data, tapi dengan satu perbedaan fundamental yang sangat penting.
Penjelasan Materi
Section titled “Penjelasan Materi”let — Nilai Bisa Berubah
Section titled “let — Nilai Bisa Berubah”Variabel yang dideklarasikan dengan let bisa diubah nilainya kapan saja setelah deklarasi.
let nilaiUjian: number = 75console.log(nilaiUjian) // 75
nilaiUjian = 80 // mengubah nilaiconsole.log(nilaiUjian) // 80
nilaiUjian = 95 // mengubah lagiconsole.log(nilaiUjian) // 95let cocok digunakan untuk data yang memang perlu berubah — seperti nilai ujian yang bisa diremediasi, atau skor game yang terus bertambah.
const — Nilai Tidak Bisa Berubah
Section titled “const — Nilai Tidak Bisa Berubah”Variabel yang dideklarasikan dengan const (singkatan dari constant / konstanta) tidak bisa diubah nilainya setelah diinisialisasi.
const namaSekolah: string = "SMKS Antartika 1 Sidoarjo"console.log(namaSekolah) // SMKS Antartika 1 Sidoarjo
namaSekolah = "Sekolah Lain" // Error!// Cannot assign to 'namaSekolah' because it is a constant.const cocok untuk data yang tidak boleh berubah — seperti nama sekolah, tanggal lahir, atau nilai PI matematika.
Analogi Kehidupan Sehari-hari
Section titled “Analogi Kehidupan Sehari-hari”✏️ let = Spidol Whiteboard
Section titled “✏️ let = Spidol Whiteboard”Spidol whiteboard digunakan untuk menulis di papan tulis. Kamu bisa menulis, menghapus, dan menulis lagi kapan saja. Tulisannya bersifat sementara dan bisa diubah.
[Papan Tulis]Nilai kamu: 75 ← bisa dihapus dan diganti 80🖊️ const = Spidol Permanen
Section titled “🖊️ const = Spidol Permanen”Spidol permanen digunakan untuk menulis sesuatu yang tidak boleh berubah. Begitu ditulis, tidak bisa dihapus.
[Plakat Sekolah]Nama: SMKS Antartika 1 Sidoarjo ← tidak bisa diganti-gantiIlustrasi: Perbandingan let dan const
Section titled “Ilustrasi: Perbandingan let dan const”let skor = 0┌─────────────────┐│ skor │ dapat diubah ✓│ 0 → 10 → 50 │└─────────────────┘
const PI = 3.14┌─────────────────┐│ PI │ tidak dapat diubah 🔒│ 3.14 │└─────────────────┘Mari Mencoba
Section titled “Mari Mencoba”Buat file src/bab1/let-vs-const.ts:
// Contoh penggunaan let — nilai bisa berubahlet skorGame: number = 0console.log("Skor awal:", skorGame)
skorGame = skorGame + 100console.log("Skor setelah level 1:", skorGame)
skorGame = skorGame + 250console.log("Skor setelah level 2:", skorGame)
// Contoh penggunaan const — nilai tetapconst MAX_NILAI: number = 100const NAMA_APLIKASI: string = "Sistem Nilai SMK"const VERSI: string = "1.0.0"
console.log("---")console.log("Aplikasi:", NAMA_APLIKASI)console.log("Versi:", VERSI)console.log("Nilai maksimum:", MAX_NILAI)Jalankan:
tsx src/bab1/let-vs-const.tsOutput:
Skor awal: 0Skor setelah level 1: 100Skor setelah level 2: 350---Aplikasi: Sistem Nilai SMKVersi: 1.0.0Nilai maksimum: 100Kapan Menggunakan let dan const?
Section titled “Kapan Menggunakan let dan const?”| Situasi | Gunakan |
|---|---|
| Nilai perlu diupdate (counter, skor, status) | let |
| Nilai tetap sepanjang program (konstanta, nama) | const |
| Kamu tidak yakin | const dulu, ganti ke let jika perlu |
Konvensi Penamaan untuk const
Section titled “Konvensi Penamaan untuk const”Untuk konstanta yang benar-benar “tetap” dan bersifat global (nilai konfigurasi, nilai matematika, dll), banyak programmer menggunakan UPPER_SNAKE_CASE — semua huruf kapital, kata dipisahkan underscore:
const MAX_SISWA_PER_KELAS: number = 36const NAMA_SEKOLAH: string = "SMKS Antartika 1"const PI: number = 3.14159Tapi ini bukan aturan wajib — hanya konvensi. Untuk variabel const biasa di dalam fungsi atau blok kode, camelCase juga umum digunakan.
Kesalahan Umum
Section titled “Kesalahan Umum”❌ Mengubah nilai const
Section titled “❌ Mengubah nilai const”const namaGuru = "Bu Ani"namaGuru = "Pak Budi" // Error!// Cannot assign to 'namaGuru' because it is a constant.Cara memperbaiki: Jika nilainya memang perlu berubah, gunakan let:
let namaGuru = "Bu Ani"namaGuru = "Pak Budi" // ✓❌ const tanpa nilai awal
Section titled “❌ const tanpa nilai awal”const nilaiAkhir: number // Error!// 'const' declarations must be initialized.const wajib langsung diisi nilainya saat deklarasi — karena nanti tidak bisa diisi ulang.
Cara memperbaiki:
const nilaiAkhir: number = 90 // ✓Latihan
Section titled “Latihan”Buat file src/bab1/latihan-let-const.ts:
- Buat variabel
constuntuk menyimpan namamu — karena nama tidak berubah - Buat variabel
constuntuk menyimpan tahun lahirmu - Buat variabel
letuntuk menyimpan kelasmu saat ini (karena kelas bisa naik) - Ubah nilai variabel kelas menjadi kelas berikutnya (misal dari “X RPL 1” ke “XI RPL 1”)
- Tampilkan semua variabel sebelum dan sesudah perubahan
Ringkasan
Section titled “Ringkasan”let— nilai bisa diubah kapan saja setelah deklarasiconst— nilai tidak bisa diubah setelah inisialisasiconstwajib diisi nilai saat deklarasi- Gunakan
constsebagai default,lethanya jika nilainya memang perlu berubah - Konstanta global sering menggunakan UPPER_SNAKE_CASE sebagai konvensi