Membuat API Sederhana dengan Node.js & Express untuk Pemula

Kalau kamu sudah mulai belajar JavaScript dan framework frontend seperti React atau Vue, biasanya akan muncul satu kebutuhan baru: backend.
Frontend butuh data, butuh login, butuh simpan informasi ke database. Nah, di sinilah API berperan.

Kabar baiknya, JavaScript tidak hanya bisa dipakai di browser. Dengan Node.js, kamu bisa membuat backend dan API menggunakan bahasa yang sama. Dan untuk urusan bikin API dengan cepat dan rapi, Express.js adalah pilihan paling populer.

Di artikel ini, kita akan membahas cara membuat API sederhana dengan Node.js dan Express dari nol, khusus untuk pemula, dengan bahasa santai dan contoh yang mudah dipahami.

Apa Itu API dan Kenapa Penting?

API (Application Programming Interface) adalah jembatan komunikasi antara frontend dan backend.

Contoh sederhananya:

  • Frontend minta data user
  • Backend mengirimkan data lewat API
  • Frontend menampilkan data ke layar

Tanpa API:

  • frontend dan backend tidak bisa berkomunikasi
  • aplikasi tidak bisa login
  • data tidak bisa disimpan atau diambil

Hampir semua aplikasi modern saat ini berbasis API, mulai dari:

  • website
  • mobile app
  • sistem internal perusahaan
  • hingga integrasi payment gateway

Kenapa Memilih Node.js dan Express?

Node.js

Node.js memungkinkan JavaScript berjalan di server.
Artinya, kamu bisa membuat backend menggunakan JavaScript.

Keunggulan Node.js:

  • cepat dan ringan
  • non-blocking (asynchronous)
  • cocok untuk API
  • komunitas besar

Express.js

Express adalah framework minimalis di atas Node.js.

Keunggulan Express:

  • mudah dipelajari
  • setup cepat
  • fleksibel
  • cocok untuk pemula dan profesional

Kombinasi Node.js + Express sangat populer di dunia kerja dan startup.

Persiapan Sebelum Mulai

Sebelum ngoding, pastikan kamu sudah punya:

  1. Node.js (versi LTS)
  2. NPM atau Yarn
  3. Text editor seperti VS Code
  4. Dasar JavaScript (variabel, function, async)

Kalau Node.js belum terinstall, kamu bisa cek dengan perintah:

node -v

Kalau muncul versinya, berarti sudah siap.

Membuat Project Node.js Pertama

Buat folder project, lalu masuk ke folder tersebut:

mkdir api-sederhana
cd api-sederhana

Inisialisasi project:

npm init -y

Install Express:

npm install express


Membuat Server Express

Buat file index.js, lalu isi dengan kode berikut:

const express = require("express");
const app = express();

const PORT = 3000;

app.get("/", (req, res) => {
  res.send("API Pertama Saya Jalan 🚀");
});

app.listen(PORT, () => {
  console.log(`Server berjalan di http://localhost:${PORT}`);
});

Jalankan server:

node index.js

Buka browser dan akses http://localhost:3000.
Kalau muncul teks, selamat! API pertama kamu sudah jalan.

Memahami Konsep Routing

Routing adalah cara menentukan endpoint API.

Contoh endpoint:

  • GET /users
  • POST /users
  • GET /products

Contoh routing sederhana:

app.get("/users", (req, res) => {
  res.json([
    { id: 1, name: "Budi" },
    { id: 2, name: "Ani" }
  ]);
});

Kalau diakses lewat browser atau Postman, API akan mengembalikan data JSON.

HTTP Method yang Wajib Kamu Tahu

Dalam API, ada beberapa method utama:

  • GET → ambil data
  • POST → kirim data
  • PUT → update data
  • DELETE → hapus data

Contoh POST:

app.post("/users", (req, res) => {
  res.json({
    message: "User berhasil ditambahkan"
  });
});

Menggunakan Middleware

Middleware adalah fungsi yang dijalankan di tengah request dan response.

Contoh middleware untuk membaca JSON:

app.use(express.json());

Tanpa ini, Express tidak bisa membaca data dari body request.

Contoh API CRUD Sederhana

Kita buat API CRUD sederhana menggunakan data array.

let users = [
  { id: 1, name: "Budi" },
  { id: 2, name: "Ani" }
];

GET Semua User

app.get("/users", (req, res) => {
  res.json(users);
});

POST Tambah User

app.post("/users", (req, res) => {
  const newUser = {
    id: users.length + 1,
    name: req.body.name
  };

  users.push(newUser);

  res.json({
    message: "User berhasil ditambahkan",
    data: newUser
  });
});

PUT Update User

app.put("/users/:id", (req, res) => {
  const id = parseInt(req.params.id);
  const user = users.find(u => u.id === id);

  if (!user) {
    return res.status(404).json({ message: "User tidak ditemukan" });
  }

  user.name = req.body.name;
  res.json({ message: "User berhasil diupdate", data: user });
});

DELETE User

app.delete("/users/:id", (req, res) => {
  const id = parseInt(req.params.id);
  users = users.filter(u => u.id !== id);

  res.json({ message: "User berhasil dihapus" });
});

Dengan ini, kamu sudah punya API CRUD lengkap.

Testing API dengan Postman

Untuk mengetes API, gunakan:

  • Postman
  • Insomnia
  • Thunder Client (VS Code)

Testing itu penting supaya kamu tahu:

  • API berjalan normal
  • response sesuai
  • error handling benar

Error Handling Dasar

Jangan biarkan API selalu mengembalikan status 200.

Gunakan status code yang sesuai:

res.status(400).json({ message: "Request tidak valid" });

Ini penting untuk frontend dan debugging.

Struktur Folder yang Lebih Rapi

Kalau project mulai besar, sebaiknya dipisah:

  • routes
  • controllers
  • services
  • middlewares

Contoh struktur:

src/
  routes/
  controllers/
  app.js

Ini akan memudahkan maintenance.

Kesalahan Umum Pemula Saat Membuat API

Beberapa kesalahan yang sering terjadi:

  • tidak pakai async/await
  • lupa validasi input
  • tidak pakai status code
  • logika dicampur di satu file
  • tidak testing API

Semua ini wajar dan akan membaik dengan latihan.

Node.js dan Express di Dunia Kerja

Node.js dan Express banyak dipakai di:

  • startup teknologi
  • fintech
  • e-commerce
  • SaaS
  • aplikasi internal perusahaan

Menguasai API adalah skill wajib untuk backend dan fullstack developer.

Kesimpulan

Membuat API dengan Node.js dan Express itu:

  • relatif mudah
  • cepat dipelajari
  • fleksibel
  • sangat dibutuhkan di industri

Untuk pemula, fokuslah pada:

  • konsep API
  • routing
  • CRUD
  • error handling

Setelah itu, kamu bisa lanjut ke:

  • database (MySQL, MongoDB)
  • authentication (JWT)
  • deployment ke server

Kalau kamu konsisten latihan, backend bukan hal yang menakutkan.