Function & Scope dalam JavaScript: Fondasi Penting yang Wajib Dipahami
Kalau kamu sedang belajar JavaScript—apalagi kalau ingin serius masuk ke dunia web development atau bahkan AI berbasis JavaScript—dua konsep yang wajib benar-benar dipahami adalah: function dan scope.
Kenapa?
Karena hampir semua logika program JavaScript berdiri di atas dua hal ini.
Apa Itu Function di JavaScript?
Function adalah blok kode yang bisa dipanggil kembali untuk menjalankan tugas tertentu.Bayangkan function seperti “mesin kecil” yang bisa kamu gunakan berulang kali tanpa harus menulis ulang kodenya.
🔹 Contoh Dasar Function :
function sapa() {
console.log("Halo dunia!");
}
sapa(); // Memanggil function
Output:
Halo dunia!
🔹 Function dengan Parameter
Parameter membuat function jadi fleksibel.function sapa(nama) {
console.log("Halo " + nama);
}
sapa("Budi");
Output:
Halo Budi
🔹 Function dengan Return Value
Function juga bisa mengembalikan nilai.function tambah(a, b) {
return a + b;
}
let hasil = tambah(5, 3);
console.log(hasil);
Output:
8
return itu penting. Tanpa return, function hanya menjalankan kode tapi tidak mengembalikan hasil.
Jenis-Jenis Function di JavaScript
🔹 Function Declaration
function kali(a, b) {
return a * b;
}
Bisa dipanggil sebelum didefinisikan (karena hoisting).
🔹 Function Expression
const bagi = function(a, b) {
return a / b;
};
Tidak bisa dipanggil sebelum didefinisikan.
🔹 Arrow Function (Modern JavaScript)
const kurang = (a, b) => {
return a - b;
};
const kurang = (a, b) => a - b;
Arrow function sering dipakai di React, Node.js, dan berbagai framework modern.
Apa Itu Scope?
Scope adalah ruang lingkup di mana sebuah variabel bisa diakses.Banyak bug di JavaScript terjadi karena orang belum paham scope.
🔹 Global Scope
Variabel yang dideklarasikan di luar function bisa diakses di mana saja.let nama = "Andi";
function cetak() {
console.log(nama);
}
cetak();
🔹 Function Scope
Variabel yang dibuat di dalam function hanya bisa diakses di dalam function itu saja.function contoh() {
let umur = 25;
console.log(umur);
}
contoh();
console.log(umur); // Error!
Kenapa error?
Karena umur hanya hidup di dalam function.
🔹 Block Scope (let & const)
Sejak ES6, let dan const punya block scope.if (true) {
let angka = 10;
console.log(angka);
}
console.log(angka); // Error
Berbeda dengan var yang tidak punya block scope.
Scope Chain (Konsep Penting!)
JavaScript mencari variabel dari dalam ke luar.Contoh:
let globalVar = "Saya global";
function luar() {
let luarVar = "Saya di luar";
function dalam() {
console.log(globalVar);
console.log(luarVar);
}
dalam();
}
luar();
Urutan pencarian:
- Cek di dalam function sekarang
- Jika tidak ada, naik ke atas
- Terus naik sampai global
- Jika tidak ketemu → error
Kenapa Ini Penting?
Kalau kamu:- Mau jadi web developer
- Mau masuk ke backend Node.js
- Mau belajar React
- Mau bikin logic trading bot
- Mau bikin AI berbasis JavaScript
Karena:
- 80% bug pemula berasal dari scope
- Closure (konsep lanjutan) bergantung pada scope
- Async programming juga sangat berkaitan dengan function
Kesalahan Umum Pemula
- ❌ Lupa pakai let / const
- ❌ Salah paham hoisting
- ❌ Mengira variabel di dalam function bisa diakses di luar
- ❌ Terlalu banyak global variable
Kesimpulan
Function = Mesin logikaScope = Batas wilayah variabel
Kalau kamu kuasai dua ini, kamu sudah naik level dari pemula ke menengah.