
Node.js
Hallo gais, di tulisan pertamaku ini, aku ingin menulis tentang sebuah teknologi yang sering aku gunain untuk bekerja sebagai software engineer, dan teknologi ini sering menempati posisi pertama di stack overflow (platform …) di bagian Web Frameworks and Technologies. Jadi kalian juga tidak rugi kalau belajar teknologi ini, karena pasar saat ini selalu mengarah ke situ, nama teknologi itu adalah Node.js.
Apa itu Node.js
Node.js sederhananya adalah lingkungan (runtime) JavaScript di sisi server. Lebih sederhana lagi adalah teknologi yang mampu menjalankan JavaScript diluar browser, bukan hanya server.
Kalau dulu JavaScript cuman bisa berjalan di sisi browser (untuk membuat website interaktif di bagian front-end), dengan Node.js memungkinkan JavaScript juga berjalan di sisi back-end, seperti menghandle request, mengakses database membaca file, dan lain sebagainya seperti yang bisa dilakukan bahasa yang digunakan di back-end lainya (php,java,golang,ruby, dsb).
Secara lebih teknis :
Node.js itu dibangun diatas mesin V8 JavaScript Engine (mesin yang digunakan google chrome untuk menjalankan JavaScript di browsernya)
Bersifat open-source dan cross-platform (Windows, macOS, Linux, AIX), sehingga kita tidak perlu khawatir jika kita pindah device, karena pasti di support.
Menggunakan arsitektur event-driven dan non-blocking I/O, yang artinya :
Node.js tidak menunggu satu tugas selesai dulu baru lanjut tugas lainya.
Cocok digunakan untuk aplikasi yang banyak request sekaligus (misal ribuan user request sekaligus dalam waktu yang sama)
Kenapa Node.js itu special ?
Single-thread tapi bisa menghandle banyak koneksi
Node.js menggunakan single-thread (satu jalur eksekusi utama) + event loop. Kalau ada operasi yang lambat misalnya membaca file, query database, Node.js akan
Melempar tugas yang berat tersebut ke background (OS / thread pool).
Sementara itu, thread utama tadi lanjut mengerjakan tugas yang lain.
Kalau tugas berat tadi sudah selesai, akan “callback” hasilnya.
Makanya Node.js disebut non-blocking.
Javascript di sisi front-end dan back-end
Dengan adanya Node.js ini, kamu bisa menulis kode JavaScript di :
Frontend : React, Vue, Angular, Svelte, dan sebagainya.
Backend : Node.js dengan framework seperti express, NestJS, Hapin dan lain sebagainya.
Keutungannya adalah :
Satu bahasa untuk seluruh stack, tidak perlu belajar bahasa yang lain lagi.
Tim dev jadi lebih simple, bisa pindah pindah role frontend-backend.
Ekosistem yang luas (NPM)
Node.js punya NPM (Node Package Manager), salah satu ekosistem library terbesar di dunia. Jadi kamu tidak perlu menulis kode yang kemungkinan sudah pernah dibuat seseorang, jadi tinggal cari aja di NPM ini.
Kegunaan Node.js
Beberapa hal yang sering dibuat menggunakan Node.js :
REST API / Backend Server
Realtime Apps
Microservice
Frontend tools
CLI Tool
Web Scrapping
Telegram Bot / Discord Bot
Contoh kode Node.js
Contoh 1: “Hello World” di console
file hallo.js
console.log("Hello dari Node.js!");lalu jalankan file tersebu di terminal
node hallo.jsoutpunya akan menjadi seperti berikut
Hello dari Node.js!Contoh 2: Server HTTP sederhana (tanpa framework)
file server.js
const http = require("http"); // bikin server const server = http.createServer((req, res) => { // Tentukan header response res.writeHead(200, { "Content-Type": "text/plain" }); // Kirim isi response res.end("Halo, ini server Node.js sederhana!\n"); }); // Tentukan port const PORT = 3000; // Jalankan server server.listen(PORT, () => { console.log(`Server berjalan di http://localhost:${PORT}`); });jalankan file di terminal :
node server.jslalu buka browser apapun, lalu akses url yang diberikan, maka akan muncul tulisan :
Halo, ini server Node.js sederhana!
Contoh 3: Server REST API sederhana dengan framework Express
Biasanya di real case, backend menggunakan framework agar lebih cepat dan efisien, dan framework paling populer untuk backend Node.js adalah Express.js
Install express
npm init -y # inisialisasi project Node npm install express # install expressBuat file app.js
const express = require("express"); const app = express(); // Biar bisa baca JSON dari body request app.use(express.json()); // Route GET sederhana app.get("/", (req, res) => { res.send("Halo dari API Node.js dengan Express!"); }); // Contoh endpoint GET data app.get("/users", (req, res) => { const users = [ { id: 1, nama: "Andi" }, { id: 2, nama: "Budi" }, ]; res.json(users); }); // Contoh endpoint POST data app.post("/users", (req, res) => { const userBaru = req.body; // misal { "id": 3, "nama": "Cici" } // Di dunia nyata: simpan ke database res.status(201).json({ message: "User berhasil dibuat", data: userBaru, }); }); const PORT = 4000; app.listen(PORT, () => { console.log(`Server Express jalan di http://localhost:${PORT}`); });Jalankan file app.js
node app.jsdan berikut adalah contoh penggunaan dari api yang kita buat diatas :
GET http://localhost:
Kapan sebaiknya menggunakan Node.js
Node.js itu cocok untuk :
Aplikasi yang butuh I/O tinggi: banyak request, banyak akses database, banyak komunikasi jaringan.
Real-time: chat, notifikasi, live location, dashboard real-time.
Tim yang ingin pakai satu bahasa (JavaScript) di front-end + back-end.
Kurang cocok jika :
Butuh perhitungan berat CPU (misalnya machine learning besar, image processing intens).
Singkatnya
“Cara menjalankan JavaScript di luar browser (umumnya di server) untuk membangun aplikasi backend dan berbagai tools modern, dengan model non-blocking dan ekosistem library yang sangat besar.”