Callback Pattern pada Node.js - Perwira Learning Center
1. Latar Belakang
Node.js adalah runtime JavaScript yang memungkinkan kita menjalankan JavaScript di luar browser. Node.js menggunakan konsep non-blocking I/O dan asynchronous programming, artinya proses tidak harus menunggu satu tugas selesai sebelum mengerjakan tugas lainnya.
Karena Node.js berjalan di satu thread utama (single-threaded) tetapi menangani banyak proses sekaligus, maka dibutuhkan cara khusus untuk mengatur proses asynchronous. Salah satu pola dasar yang digunakan adalah Callback Pattern.
Callback pattern adalah teknik di mana sebuah fungsi dikirim sebagai argumen ke fungsi lain, lalu dipanggil kembali (callback) setelah proses selesai. Pola ini sangat penting dalam Node.js, terutama pada operasi seperti membaca file, mengambil data dari database, atau request ke server.
2. Alat dan Bahan
- Browser
- OS (Windows atau Linux atau MacOS)
- Code Editor (VSCODE)
- Node.js
Callback adalah fungsi yang dikirim sebagai parameter ke fungsi lain, lalu dijalankan setelah proses tertentu selesai.
Contoh sederhana:
function sapa(nama, callback) {
console.log("Halo " + nama);
callback();
}
function selesai() {
console.log("Proses selesai");
}
sapa("Agus", selesai);
Node.js sering digunakan untuk operasi asynchronous, misalnya membaca file.
Contoh menggunakan module
fs:
const fs = require("fs");
fs.readFile("data.txt", "utf8", function(err, data) {
if (err) {
console.log("Terjadi kesalahan:", err);
return;
}
console.log("Isi file:", data);
});
Penjelasan:
-
fs.readFilemembutuhkan callback function. -
Callback memiliki dua parameter umum:
errdandata. -
Jika terjadi error,
errakan berisi informasi error. -
Jika berhasil,
databerisi hasilnya.
Ini disebut juga Error-First Callback Pattern, yaitu pola callback yang parameter pertamanya selalu error.
Karena Node.js bersifat non-blocking.
Contoh perbandingan:
const fs = require("fs");
console.log("Mulai");
setTimeout(() => {
console.log("Proses selesai");
}, 2000);
console.log("Selesai duluan");
Salah satu masalah callback adalah jika terlalu banyak callback bersarang (nested), kode menjadi sulit dibaca. Ini disebut Callback Hell.
Contoh:
loginUser(username, function(user) {
getUserData(user.id, function(data) {
getUserPermissions(data.role, function(permission) {
console.log(permission);
});
});
});
Kelebihan:
-
Sederhana dan mudah dipahami untuk kasus kecil
-
Cepat dan ringan
-
Cocok untuk operasi asynchronous sederhana
Kekurangan:
-
Bisa menyebabkan callback hell
-
Sulit dibaca jika terlalu banyak nested
-
Error handling bisa membingungkan
Callback Pattern adalah dasar dari pemrograman asynchronous di Node.js. Dengan callback, Node.js dapat menjalankan banyak proses tanpa harus menunggu satu proses selesai terlebih dahulu.
Meskipun memiliki kekurangan seperti callback hell, memahami callback sangat penting karena menjadi fondasi sebelum mempelajari Promise dan async/await.
Bagi pemula yang ingin serius belajar Node.js, memahami Callback Pattern adalah langkah awal yang wajib sebelum masuk ke konsep asynchronous yang lebih modern.
