Sebelum 2009, JavaScript cuma jalan di browser. Mau bikin backend? Pake bahasa lain (PHP, Python, Java). Frontend dev yang udah jago JS harus belajar bahasa baru lagi buat server. Ryan Dahl frustrasi sama ini, bikin Node.js — runtime yang bawa JavaScript keluar browser, ke server. Boom — sekarang dev bisa pake satu bahasa (JS) di frontend + backend. Netflix, PayPal, LinkedIn, Uber — semua jalan pake Node.js sekarang.
💡 Non-blocking I/O = power Node.js. Berbeda dari PHP/Python tradisional yang block per-request, Node bisa handle ribuan koneksi simultan dengan single thread (event loop). Cocok untuk real-time app (chat, gaming, streaming) dan API berthroughput tinggi.
Mengapa Node.js Populer?
- JavaScript di mana-mana (frontend + backend = satu bahasa)
- Sangat cepat berkat V8 Engine (mesin JavaScript Chrome)
- npm — package manager terbesar di dunia (2+ juta package)
- Non-blocking I/O — bisa menangani ribuan koneksi sekaligus
Apa yang Bisa Dibuat?
- REST API & GraphQL server
- Real-time apps (chat, game multiplayer)
- CLI tools (seperti npm, create-react-app)
- Microservices
Beda JS Browser vs Node.js
| Browser | Node.js |
|---|---|
document, window |
process, fs, path |
| DOM manipulation | File system, network |
fetch() built-in |
http module |
| Modules: ES Modules | CommonJS + ES Modules |
Hello World
console.log("Hello dari Node.js!");
Di BelajarWeb.dev, kamu akan menggunakan API Simulator — sistem yang mensimulasikan Express.js langsung di browser tanpa perlu install Node.js!
🎭 Analogi sehari-hari
JavaScript di browser = musik di kafe (cuma kedengeran di tempat itu). Node.js = mesin sound system di mana saja — bisa di kafe, panggung, mobil, rumah. Bahasa sama (JS), tapi sekarang bisa dipake di banyak konteks. Frontend dev jadi full-stack tanpa belajar bahasa baru.
⚠️ Jebakan yang sering ditemui
process.exit()di middle of code = abrupt stop, log/db gak flush- Blocking operation (sync file read di server) = freeze semua request lain (Node single-threaded)
- Memory leak dari closure besar atau listener gak di-remove = server crash di production
require()vsimport= CommonJS vs ESM, beda sintaks. Pilih satu konsisten- CPU-bound task (image processing, encryption heavy) = pakai worker threads, bukan main thread
TL;DR: Node.js = JavaScript runtime di luar browser. Bikin backend, CLI, real-time app pake bahasa yang sama dengan frontend. V8 engine cepat + non-blocking I/O = handle ribuan request simultan. Dipake Netflix, PayPal, Uber. npm = package manager terbesar (2jt+ packages). Foundational untuk full-stack JavaScript.