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:
• 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:
-
Frontend mengirim request POST
-
Request masuk ke route Express
-
Route memanggil controller
-
Controller memanggil model
-
Model menjalankan query MySQL
-
Database menyimpan data
-
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
