Coding

Membuat CRUD dengan Node.js, Express, dan MySQL

Dipublikasikan: 16 Mar 2026
⏱️ Estimasi waktu baca: 4 menit

Setelah struktur aplikasi backend selesai dibuat, langkah berikutnya adalah membuat fitur CRUD (Create, Read, Update, Delete).

CRUD adalah operasi dasar dalam hampir semua aplikasi web yang berhubungan dengan database.

Operasi CRUD terdiri dari:

Baca juga:
Belajar Coding Bagian 6: Membuat Link dan Navigasi dalam HTML
Cara Membuat Backend PHP Native untuk Aplikasi Web (Panduan Lengkap untuk Pemula)
  • Create → menambahkan data

  • Read → mengambil data

  • Update → memperbarui data

  • Delete → menghapus data

Pada contoh ini kita akan membuat CRUD sederhana untuk modul Audit.


1 Membuat Database MySQL

Pertama buat database baru.

CREATE DATABASE pengawasan;

Gunakan database tersebut.

USE pengawasan;

Buat tabel audit.

CREATE TABLE audit (
    id INT AUTO_INCREMENT PRIMARY KEY,
    judul VARCHAR(200),
    deskripsi TEXT,
    tanggal DATE
);

Struktur tabel ini menyimpan:

  • judul audit

  • deskripsi audit

  • tanggal audit


2 Menginstall Library MySQL

Install library MySQL untuk Node.js.

npm install mysql2

Library ini digunakan untuk menghubungkan Node.js dengan database MySQL.


3 Membuat Koneksi Database

Buat file:

src/config/database.js

Contoh kode:

const mysql = require("mysql2");

const db = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "",
    database: "pengawasan"
});

db.connect((err)=>{
    if(err){
        console.log("Koneksi database gagal");
    }else{
        console.log("Database terhubung");
    }
});

module.exports = db;

File ini akan digunakan oleh model untuk menjalankan query database.


4 Membuat Model Audit

Buat file:

src/models/auditModel.js

Contoh kode:

const db = require("../config/database");

exports.getAll = (callback)=>{
    db.query("SELECT * FROM audit", callback);
};

exports.create = (data, callback)=>{
    db.query("INSERT INTO audit SET ?", data, callback);
};

exports.update = (id,data,callback)=>{
    db.query("UPDATE audit SET ? WHERE id=?", [data,id], callback);
};

exports.delete = (id,callback)=>{
    db.query("DELETE FROM audit WHERE id=?", [id], callback);
};

Model bertugas menjalankan query ke database.


5 Membuat Controller Audit

Buat file:

src/controllers/auditController.js

Contoh kode:

const auditModel = require("../models/auditModel");

exports.getAudit = (req,res)=>{
    auditModel.getAll((err,result)=>{
        if(err) throw err;
        res.json(result);
    });
};

exports.createAudit = (req,res)=>{
    auditModel.create(req.body,(err,result)=>{
        if(err) throw err;
        res.json({message:"Data berhasil ditambahkan"});
    });
};

exports.updateAudit = (req,res)=>{
    const id = req.params.id;
    auditModel.update(id,req.body,(err,result)=>{
        if(err) throw err;
        res.json({message:"Data berhasil diperbarui"});
    });
};

exports.deleteAudit = (req,res)=>{
    const id = req.params.id;
    auditModel.delete(id,(err,result)=>{
        if(err) throw err;
        res.json({message:"Data berhasil dihapus"});
    });
};

Controller bertugas menerima request dari frontend dan memanggil model.


6 Membuat Route API

Buat file:

src/routes/auditRoutes.js

Contoh kode:

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

const auditController = require("../controllers/auditController");

router.get("/audit", auditController.getAudit);
router.post("/audit", auditController.createAudit);
router.put("/audit/:id", auditController.updateAudit);
router.delete("/audit/:id", auditController.deleteAudit);

module.exports = router;

Route berfungsi menentukan alamat endpoint API.


7 Menghubungkan Route ke Server

Buka file:

server.js

Tambahkan kode berikut.

const express = require("express");
const auditRoutes = require("./src/routes/auditRoutes");

const app = express();

app.use(express.json());
app.use(express.static("public"));

app.use("/api", auditRoutes);

app.listen(3000, ()=>{
    console.log("Server berjalan di port 3000");
});

Endpoint API sekarang tersedia pada:

GET    /api/audit
POST   /api/audit
PUT    /api/audit/:id
DELETE /api/audit/:id

8 Mengambil Data dari Frontend

Pada file JavaScript frontend:

public/js/app.js

Contoh mengambil data audit.

fetch("/api/audit")
.then(res => res.json())
.then(data => {
    console.log(data);
});

Contoh menambahkan data.

fetch("/api/audit",{
    method:"POST",
    headers:{
        "Content-Type":"application/json"
    },
    body:JSON.stringify({
        judul:"Audit Kebersihan",
        deskripsi:"Audit ruang rawat",
        tanggal:"2026-03-16"
    })
});

9 Alur Kerja CRUD

Ketika pengguna menyimpan data audit:

  1. Frontend mengirim request POST

  2. Request masuk ke route Express

  3. Route memanggil controller

  4. Controller memanggil model

  5. Model menjalankan query MySQL

  6. Database menyimpan data

  7. Server mengirim respon ke frontend

Diagram alur:

Frontend
   │
   ▼
Route
   │
   ▼
Controller
   │
   ▼
Model
   │
   ▼
Database

10 Kesimpulan

Dengan menggunakan Node.js, Express, dan MySQL, kita dapat membangun backend aplikasi web yang terstruktur dan mudah dikembangkan.

Struktur manual seperti ini memberikan fleksibilitas tinggi dan sering digunakan dalam banyak aplikasi produksi.

Dengan arsitektur ini, developer dapat membuat berbagai sistem seperti:

  • sistem audit

  • sistem pengawasan

  • sistem manajemen dokumen

  • dashboard laporan

  • sistem manajemen rumah sakit

Chat Admin Sekarang //