Node.js dari Nol

Node.js dari Nol

Node.js menjalankan JavaScript di luar browser, di komputer Anda dan di server. Anda bisa memakai satu bahasa untuk sisi depan maupun sisi belakang. Node.js memakai I/O tanpa pemblokiran, yang cocok untuk pekerjaan jaringan dan API. Artikel ini menjalankan skrip pertama, membaca dan menulis file dengan modul standar, dan membangun server HTTP kecil yang membalas dengan JSON.

Setiap contoh di sini sudah dijalankan dengan Node.js dan keluarannya adalah keluaran nyata.

Yang Anda butuhkan

Cara kerjanya

Diagram: skrip .js dijalankan oleh Node.js, yang memakai sistem file dan melayani HTTP ke browser
Diagram: skrip .js dijalankan oleh Node.js, yang memakai sistem file dan melayani HTTP ke browser

Skrip pertama Anda

Buat `hello.js` dan jalankan dengan `node hello.js`:

console.log("Halo Node.js");

Modul serta membaca dan menulis file

Node.js sudah menyertakan modul standar seperti `fs` untuk file dan `path` untuk jalur. Contoh ini menulis file JSON lalu membacanya kembali.

const http = require("http");
const path = require("path");
const fs = require("fs");

// modul dan fungsi
function nilai(skor) {
  if (skor >= 80) return "A";
  if (skor >= 70) return "B";
  if (skor >= 50) return "C";
  return "F";
}

const siswa = [
  { name: "Budi", score: 85 },
  { name: "Siti", score: 72 },
  { name: "Andi", score: 45 },
];

// menulis file lalu membacanya kembali
const file = path.join(__dirname, "nilai.json");
fs.writeFileSync(file, JSON.stringify(siswa.map(s => ({ ...s, grade: nilai(s.score) })), null, 2));
const data = JSON.parse(fs.readFileSync(file, "utf8"));
console.log("Halo Node.js", data.length, "orang");
console.log(data.map(d => `${d.name}: ${d.grade}`).join("\n"));

// server HTTP kecil: membalas JSON lalu berhenti setelah 1 balasan (untuk pengujian)
const server = http.createServer((req, res) => {
  res.writeHead(200, { "Content-Type": "application/json; charset=utf-8" });
  res.end(JSON.stringify({ message: "Salam dari Node.js", count: data.length }));
  server.close();
});
server.listen(3100, () => console.log("server listening on http://localhost:3100"));

Keluaran nyata (jalankan skrip, lalu kirim permintaan dengan curl ke `http://localhost:3100/`):

Halo Node.js 3 orang
Budi: A
Siti: B
Andi: F
server listening on http://localhost:3100
{"message":"Salam dari Node.js","count":3}

Hal yang perlu diperhatikan:

Promise dan async/await

Akses file secara asinkron membuat program tetap berjalan saat menunggu. Contoh ini memakai `async/await` agar kodenya terbaca berurutan:

const fs = require("fs/promises");

async function main() {
  await fs.writeFile("catatan.txt", "Catatan dari Node.js");
  const text = await fs.readFile("catatan.txt", "utf8");
  console.log("Terbaca:", text);
}

main().catch(err => console.error("Terjadi kesalahan:", err.message));

Kesalahan umum

Langkah berikutnya

Buat API yang menyimpan daftar tugas di file JSON, lalu lanjut ke Express atau Fastify, dua framework populer untuk Node.js.

Ringkasan

Node.js membawa JavaScript ke server. Modul standar menangani file dan jaringan, dan async/await membuat kode bersamaan tetap mudah dibaca.