• Node.js
  • 12 Oktober 2025
  • 1.437 Dilihat

Dalam pengembangan aplikasi modern, REST API menjadi salah satu komponen penting untuk menghubungkan frontend dan backend. Salah satu kombinasi populer untuk membangun REST API adalah menggunakan Node.js dan Express sebagai server, serta MySQL sebagai database.

Pada artikel ini, kamu akan belajar langkah demi langkah membuat CRUD API (Create, Read, Update, Delete) sederhana menggunakan Node.js, Express, dan MySQL.

1. Persiapan Awal

a. Instalasi Tools yang Diperlukan

Pastikan kamu sudah menginstal:

  • Node.js
  • MySQL Server
  • Text editor seperti VS Code

b. Buat Folder Project

mkdir nodejs-crud-api
cd nodejs-crud-api

c. Inisialisasi Project Node.js

npm init -y

d. Install Dependencies

npm install express mysql2 body-parser cors
  • express → framework untuk membuat server.
  • mysql2 → koneksi ke database MySQL.
  • body-parser → parsing data dari request body.
  • cors → agar API bisa diakses dari frontend lain.

2. Membuat Struktur Folder

Buat struktur sederhana seperti ini:

nodejs-crud-api/
│
├── db.js
├── server.js
└── routes/
    └── userRoutes.js

3. Konfigurasi Database (MySQL)

Buat database baru di MySQL:

CREATE DATABASE crud_api;
USE crud_api;

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100),
  email VARCHAR(100),
  age INT
);

4. Koneksi ke Database (db.js)

const mysql = require("mysql2");

const db = mysql.createConnection({
  host: "localhost",
  user: "root",       // ubah sesuai user MySQL kamu
  password: "",       // isi password jika ada
  database: "crud_api"
});

db.connect(err => {
  if (err) throw err;
  console.log("✅ Database connected!");
});

module.exports = db;

5. Membuat Server (server.js)

const express = require("express");
const bodyParser = require("body-parser");
const cors = require("cors");
const userRoutes = require("./routes/userRoutes");

const app = express();
app.use(cors());
app.use(bodyParser.json());

// Routing utama
app.use("/api/users", userRoutes);

// Jalankan server
const PORT = 3000;
app.listen(PORT, () => {
  console.log(`🚀 Server running at http://localhost:${PORT}`);
});

6. Membuat Routing CRUD (routes/userRoutes.js)

const express = require("express");
const router = express.Router();
const db = require("../db");

// ✅ CREATE - Tambah data
router.post("/", (req, res) => {
  const { name, email, age } = req.body;
  const sql = "INSERT INTO users (name, email, age) VALUES (?, ?, ?)";
  db.query(sql, [name, email, age], (err, result) => {
    if (err) return res.status(500).send(err);
    res.json({ message: "User berhasil ditambahkan!", id: result.insertId });
  });
});

// ✅ READ - Ambil semua data
router.get("/", (req, res) => {
  db.query("SELECT * FROM users", (err, results) => {
    if (err) return res.status(500).send(err);
    res.json(results);
  });
});

// ✅ READ by ID
router.get("/:id", (req, res) => {
  const { id } = req.params;
  db.query("SELECT * FROM users WHERE id = ?", [id], (err, result) => {
    if (err) return res.status(500).send(err);
    res.json(result[0]);
  });
});

// ✅ UPDATE - Ubah data
router.put("/:id", (req, res) => {
  const { id } = req.params;
  const { name, email, age } = req.body;
  const sql = "UPDATE users SET name=?, email=?, age=? WHERE id=?";
  db.query(sql, [name, email, age, id], (err) => {
    if (err) return res.status(500).send(err);
    res.json({ message: "User berhasil diperbarui!" });
  });
});

// ✅ DELETE - Hapus data
router.delete("/:id", (req, res) => {
  const { id } = req.params;
  db.query("DELETE FROM users WHERE id=?", [id], (err) => {
    if (err) return res.status(500).send(err);
    res.json({ message: "User berhasil dihapus!" });
  });
});

module.exports = router;

7. Menjalankan Server

Jalankan server dengan perintah:

node server.js

Jika berhasil, terminal akan menampilkan:

✅ Database connected!
🚀 Server running at http://localhost:3000

8. Uji API dengan Postman / Thunder Client

Gunakan Postman untuk mengetes endpoint berikut:

Metode Endpoint Keterangan
GET /api/users Ambil semua data
GET /api/users/:id Ambil data berdasarkan ID
POST /api/users Tambah data baru
PUT /api/users/:id Ubah data
DELETE /api/users/:id Hapus data

Contoh body untuk POST:

{
  "name": "John Doe",
  "email": "john@example.com",
  "age": 25
}

9. Kesimpulan

Dengan kombinasi Node.js, Express, dan MySQL, kamu bisa membuat REST API CRUD yang cepat, fleksibel, dan mudah dikembangkan. Struktur ini juga cocok untuk diintegrasikan dengan frontend modern seperti React, Vue, atau Flutter.

💡 Tips: Setelah API ini stabil, kamu bisa menambahkan fitur seperti validasi data, autentikasi JWT, atau pagination agar lebih lengkap dan siap produksi.

Tag Populer:
#crud rest api #Node.js #express #mysql #CRUD API #Express MySQL #REST API Tutorial #Node.js Development #MySQL REST API #Belajar Node.js #API Backend
Bagikan Artikel:

Artikel Terkait

Belajar Socket Emit di Node.js untuk Pemula
  • Node.js
  • 18 Agustus 2025

Belajar Socket Emit di Node.js untuk Pemula

Panduan lengkap belajar socket emit di Node.js untuk pemula. Pelajari cara mengirim dan menerima eve...

Konsep Event Loop di Node.js: Cara Kerja dan Visualisasi yang Mudah Dipahami
  • Node.js
  • 04 Desember 2025

Konsep Event Loop di Node.js: Cara Kerja dan Visualisasi yang Mudah Dipahami

Pahami bagaimana Node.js bisa secepat kilat dan efisien meskipun berjalan di single thread berkat me...

Daftar Periksa Keamanan Node.js: Panduan Mengamankan API Anda
  • Node.js
  • 13 Februari 2026

Daftar Periksa Keamanan Node.js: Panduan Mengamankan API Anda

Pelajari daftar periksa keamanan komprehensif untuk Node.js untuk melindungi API Anda dari serangan...