Apa itu Node.js? — Node.js

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…

Node.js adalah program yang menjalankan JavaScript di luar browser: di laptopmu, di terminal, dan di server. Bayangin kamu bisa bahasa Indonesia. Di sekolah kamu menulis di papan tulis, di kantor kamu menelepon dan membuka lemari arsip. Bahasanya sama, alat di sekitarmu yang beda. JavaScript juga begitu: di browser dia bisa mengubah halaman, di Node.js dia bisa membaca file di disk dan menjawab request dari internet.

🧪 Tebakan cepat: console.log(typeof process); dijalankan di Node.js, lalu di browser. Hasilnya sama? Tebak dulu, jawabannya ada di bagian "Bahasanya sama, alatnya beda".

Runtime: yang menjalankan kodemu

Kode JavaScript gak bisa jalan sendiri. Dia butuh runtime: program yang membaca kodemu, menjalankannya, dan menyediakan alat bawaan. Browser adalah runtime. Node.js juga runtime.

Di dalam keduanya ada engine, mesin yang benar-benar menjalankan JavaScript. Node.js memakai V8, engine buatan Google untuk browser Chrome. Ryan Dahl membuat Node.js tahun 2009 dengan mengambil V8 dari Chrome, lalu menambahkan alat untuk file, jaringan, dan proses. Jadi Node.js bukan bahasa baru dan bukan framework: dia tempat JavaScript jalan.

Bahasanya sama, alatnya beda

if, for, function, array, object: semuanya sama persis. Yang beda adalah object dan modul bawaan yang tersedia.

Browser Node.js
Halaman web document, window gak ada
Info program yang jalan gak ada process
Baca dan tulis file gak bisa modul fs
Bikin server gak bisa modul http
fetch() ada ada (sejak Node 18)

process adalah object bawaan Node yang berisi info tentang program yang sedang jalan: versi Node, folder kerja, argumen dari terminal. Di Node, typeof process hasilnya "object". Browser gak punya process, jadi di browser hasilnya "undefined". Hasilnya beda. Itu jawaban tebakannya.

Kebalikannya juga berlaku: Node gak punya document, karena di terminal gak ada halaman yang bisa diubah.

File pertamamu: node app.js

Pasang Node.js versi LTS dari nodejs.org. LTS (Long Term Support) adalah versi bernomor genap yang dirawat bertahun-tahun, misalnya 22 dan 24. Lalu, di terminal:

node --version
# v24.18.0

mkdir catatan-api
cd catatan-api
npm init -y

npm ikut terpasang bersama Node. npm init -y membuat package.json, kartu identitas proyekmu: nama, versi, dan script. -y artinya jawab "ya" untuk semua pertanyaan. Sepanjang track ini kita membangun proyek ini jadi API catatan kecil.

Buat file app.js:

console.log("Hello dari Node.js!");
console.log(process.version);

Jalankan dengan node diikuti nama file-nya:

node app.js
Hello dari Node.js!
v24.18.0

Kalau kodenya butuh alat browser

Tambahkan baris console.log(document.title); di baris 3, lalu jalankan lagi:

Hello dari Node.js!
v24.18.0
/home/budi/catatan-api/app.js:3
console.log(document.title);
            ^

ReferenceError: document is not defined
    at Object.<anonymous> (/home/budi/catatan-api/app.js:3:13)
    ...

Node.js v24.18.0

Baca dari atas: file dan nomor baris, baris yang bermasalah, tanda ^ di kata yang salah, lalu nama error dan pesannya. document is not defined artinya nama document gak ada di runtime ini. Dua baris sebelumnya sudah tercetak, dan program berhenti di baris yang error.

Node.js dipakai buat apa

⚠️ Jebakan yang sering ketemu

TL;DR: Node.js adalah runtime yang menjalankan JavaScript di luar browser, memakai engine V8 dari Google Chrome. Bahasanya sama, alatnya beda: Node punya process, fs, dan http, tapi gak punya document atau window, jadi typeof process di Node hasilnya "object" dan di browser "undefined". Pasang versi LTS (22 atau 24), buat proyek dengan npm init -y (membuat package.json), lalu jalankan file dengan node app.js. process.version mencetak versi Node yang sedang jalan.

Yang akan kamu pelajari