Sistem Module di Node.js: Panduan Lengkap CommonJS dan ES Module
Contents
- 1 Pendahuluan
- 2 Apa Itu Module di Node.js?
- 3 Mengapa Sistem Module Penting di Node.js?
- 4 Satu File JavaScript Sama dengan Satu Module
- 5 Sistem Module di Node.js
- 6 CommonJS di Node.js
- 7 ES Module (ESM) di Node.js
- 8 Export dan Import dengan ES Module
- 9 Default Export pada ES Module
- 10 Struktur Folder Module yang Disarankan
- 11 Kesalahan Umum dalam Menggunakan Module Node.js
- 12 Contoh Praktik Memecah Logika Aplikasi
- 13 Kesimpulan
- 14 Related Posts
Pendahuluan
Dalam Node.js, module adalah mekanisme untuk memecah aplikasi menjadi bagian-bagian kecil yang terpisah ke dalam file berbeda. Setiap file JavaScript di Node.js secara otomatis diperlakukan sebagai satu module dengan ruang lingkup (scope) sendiri.
Artinya, variabel, fungsi, atau class yang didefinisikan di dalam satu file tidak bisa langsung diakses oleh file lain kecuali jika kita secara eksplisit mengekspornya. Konsep ini sangat penting karena membantu menjaga kode tetap terisolasi, aman, dan terstruktur.
Tanpa sistem module, aplikasi Node.js akan cepat berubah menjadi satu file besar yang sulit dibaca, sulit dirawat, dan rawan menimbulkan bug. Dengan module, setiap bagian kode memiliki tanggung jawab yang jelas dan mudah dikembangkan.
Apa Itu Module di Node.js?
Module di Node.js adalah unit kode mandiri yang memiliki scope sendiri. Module memungkinkan developer untuk:
- membagi aplikasi menjadi bagian kecil
- mengatur tanggung jawab kode
- menggunakan kembali fungsi atau logika tertentu
Setiap file JavaScript secara default adalah sebuah module.
Mengapa Sistem Module Penting di Node.js?
Node.js banyak digunakan untuk aplikasi backend yang bersifat jangka panjang dan terus berkembang. Oleh karena itu, struktur kode menjadi faktor yang sangat penting.
Manfaat utama sistem module di Node.js antara lain:
- memisahkan logika aplikasi
- menghindari duplikasi kode
- mempermudah debugging
- memudahkan kolaborasi tim
Tanpa sistem module, aplikasi Node.js akan cepat sulit dirawat dan dikembangkan.
Satu File JavaScript Sama dengan Satu Module
Di Node.js, setiap file JavaScript adalah module yang berdiri sendiri. Variabel atau function di dalamnya tidak otomatis tersedia untuk file lain.
Contoh Module Sederhana
// greeting.js
function sayHello() {
console.log("Halo dari module greeting");
}
Function sayHello tidak dapat digunakan di file lain sebelum diekspor.
Sistem Module di Node.js
Node.js mendukung dua sistem module utama:
- CommonJS (CJS) – sistem module klasik Node.js
- ES Module (ESM) – sistem module modern standar JavaScript
Keduanya memiliki cara kerja dan sintaks yang berbeda.
CommonJS di Node.js
Apa Itu CommonJS?
CommonJS adalah sistem module bawaan Node.js sejak awal. Hingga saat ini, CommonJS masih banyak digunakan pada proyek lama dan library tertentu.
Ciri-ciri CommonJS
- menggunakan
require()untuk import - menggunakan
module.exportsuntuk export - tidak memerlukan konfigurasi tambahan
- bersifat sinkron
Contoh Export Module CommonJS
// utils/math.js
function sum(a, b) {
return a + b;
}
module.exports = { sum };
Contoh Import Module CommonJS
// index.js
const { sum } = require("./utils/math");
console.log(sum(5, 3));
Export Satu Fungsi dengan CommonJS
// utils/logger.js
function logger(message) {
console.log(`[LOG] ${message}`);
}
module.exports = logger;
// index.js
const logger = require("./utils/logger");
logger("Aplikasi dijalankan");
ES Module (ESM) di Node.js
Apa Itu ES Module?
ES Module adalah standar resmi JavaScript yang digunakan di browser dan Node.js modern. Sistem ini direkomendasikan untuk proyek baru.
Cara Mengaktifkan ES Module
Tambahkan konfigurasi berikut ke file package.json:
{
"type": "module"
}
Export dan Import dengan ES Module
Named Export pada ES Module
// utils/math.js
export function sum(a, b) {
return a + b;
}
// index.js
import { sum } from "./utils/math.js";
console.log(sum(5, 3));
Aturan Penting ES Module
- path file harus ditulis lengkap
- ekstensi
.jswajib digunakan - tidak bisa mencampur
requiredanimport
Default Export pada ES Module
Default export digunakan ketika sebuah module hanya memiliki satu fungsi utama.
// utils/logger.js
export default function logger(message) {
console.log(`[LOG] ${message}`);
}
import logger from "./utils/logger.js";
logger("Aplikasi dimulai");
Struktur Folder Module yang Disarankan
Struktur folder yang rapi akan mempermudah pengembangan aplikasi Node.js.
src/
├── index.js
├── services/
│ └── userService.js
├── utils/
│ └── logger.js
// services/userService.js
export function getUser() {
return { id: 1, name: "Andi" };
}
// index.js
import { getUser } from "./services/userService.js";
import logger from "./utils/logger.js";
logger("Aplikasi dimulai");
console.log(getUser());
Kesalahan Umum dalam Menggunakan Module Node.js
Beberapa kesalahan yang sering terjadi:
- mencampur CommonJS dan ES Module
- lupa menuliskan ekstensi
.jspada ES Module - membuat satu module terlalu besar
Prinsip Terbaik
Satu module, satu tanggung jawab
Contoh Praktik Memecah Logika Aplikasi
// services/messageService.js
export function getMessage() {
return "Belajar Node.js itu menyenangkan";
}
// index.js
import { getMessage } from "./services/messageService.js";
console.log(getMessage());
Kesimpulan
Sistem module adalah fondasi utama dalam pengembangan aplikasi Node.js. Dengan memahami CommonJS dan ES Module, developer dapat:
- menulis kode yang lebih rapi dan terstruktur
- mempermudah perawatan aplikasi
- mempersiapkan proyek untuk berkembang di masa depan
Untuk proyek baru, ES Module sangat direkomendasikan, sementara CommonJS tetap penting untuk memahami dan merawat proyek Node.js lama.