KuloDev
1 Hari
0 XP
intermediate20 menitModul: 04-functions-modularity

Variable Scope & Konsep Closure

Memahami ruang lingkup variabel (Global vs Block vs Function Scope) dan bagaimana fungsi dapat mengingat memori leksikalnya (Closure).

1. Tingkatan Variable Scope

Scope (ruang lingkup) menentukan di bagian mana dalam kode suatu variabel dapat diakses atau dimodifikasi. Ada 3 tingkat scope utama:

Hierarki Scope
1. **Global Scope**: Variabel yang dibuat di luar fungsi/blok apapun. Dapat diakses dari mana saja. 2. **Function Scope**: Variabel yang dibuat di dalam fungsi. Hanya bisa diakses di dalam tubuh fungsi tersebut. 3. **Block Scope (`let` / `const`)**: Variabel yang dibuat di dalam tanda kurung kurawal `{ ... }` (seperti di dalam if atau for loop). Tidak bisa diakses di luar kurung kurawal tersebut.
Demonstrasi Block Scope
javascript
1if (true) {
2 const rahasia = "kunci123";
3 console.log(rahasia); // ✅ Berhasil diakses di dalam blok
4}
5
6// console.log(rahasia); // ❌ ReferenceError: rahasia is not defined!

2. Apa itu Closure?

Closure adalah kemampuan suatu fungsi internal (child function) untuk 'mengingat' dan tetap memiliki akses ke variabel di scope induknya (parent scope), bahkan setelah fungsi induk tersebut telah selesai dieksekusi.

Contoh Function Factory dengan Closure
1function buatPencatatSkor() {
2 let skor = 0; // Private state yang dilindungi oleh closure
3
4 return function tambahSkor(poin) {
5 skor += poin;
6 return "Skor saat ini: " + skor;
7 };
8}
9
10const player1 = buatPencatatSkor();
11console.log(player1(10)); // "Skor saat ini: 10"
12console.log(player1(25)); // "Skor saat ini: 35"
13
14// player1 memiliki variabel skor independen yang tidak bisa diutak-atik dari luar!
Kuis Pemahaman
+10 XP

Mengapa Closure sering digunakan dalam arsitektur software?

Selesaikan Materi Ini?

Dapatkan +25 XP dan simpan progres belajarmu.