Implementasi CRUD menggunakan Node.js dan MySQL - Perwira Learning Center
1. Latar Belakang
Dalam pengembangan backend, operasi CRUD (Create, Read, Update, Delete) adalah dasar dari hampir semua aplikasi berbasis data. Jika sebelumnya kita menggunakan MongoDB (NoSQL), kali ini kita akan menggunakan database relasional yaitu MySQL.
Node.js sering digunakan untuk membangun server karena ringan dan cepat. Sedangkan MySQL adalah database berbasis tabel yang menggunakan SQL (Structured Query Language) untuk mengelola data.
Kombinasi Node.js dan MySQL sangat cocok untuk aplikasi seperti sistem sekolah, kasir, inventaris, dan lain-lain yang membutuhkan relasi antar tabel.
2. Alat dan Bahan
- Node.js
- XAMPP
- NPM
- Text Editor (VSCode)
- Postman
3. Pembahasan
3.1 Membuat database dan Tabel
Masuk ke MySQL lalu buat database:
CREATE DATABASE dbbelajar;
USE dbbelajar;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100),
email VARCHAR(100),
umur INT
);
3.2 Membuat Server dan Koneksi Database
Buat file index.js:
const express = require("express");
const mysql = require("mysql2");
const app = express();
app.use(express.json());
const db = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "dbbelajar"
});
db.connect((err) => {
if (err) {
console.log("Koneksi gagal:", err);
} else {
console.log("Database terhubung");
}
});
app.listen(3000, () => {
console.log("Server berjalan di port 3000");
});
3.3 Membuat Endpoint CRUD
3.3.1 Create (Tambah Data) app.post("/users", (req, res) => {
const { nama, email, umur } = req.body;
const sql = "INSERT INTO users (nama, email, umur) VALUES (?, ?, ?)";
db.query(sql, [nama, email, umur], (err, result) => {
if (err) return res.status(500).json(err);
res.json({ message: "Data berhasil ditambahkan" });
});
});
3.3.2 Read (Ambil Data)app.get("/users", (req, res) => {
db.query("SELECT * FROM users", (err, results) => {
if (err) return res.status(500).json(err);
res.json(results);
});
});
3.3.3 Update app.put("/users/:id", (req, res) => {
const { nama, email, umur } = req.body;
const sql = "UPDATE users SET nama=?, email=?, umur=? WHERE id=?";
db.query(sql, [nama, email, umur, req.params.id], (err, result) => {
if (err) return res.status(500).json(err);
res.json({ message: "Data berhasil diupdate" });
});
});
3.3.4 Delete
app.delete("/users/:id", (req, res) => {
db.query("DELETE FROM users WHERE id=?", [req.params.id], (err, result) => {
if (err) return res.status(500).json(err);
res.json({ message: "Data berhasil dihapus" });
});
});
3.4 Cara Menjalankan Server
Tambahkan di package.json:
"scripts": {
"start": "nodemon index.js"
}Lalu jalankan:
npm start
4. Kesimpulan
Menggunakan Node.js dan MySQL untuk membuat CRUD sangat cocok untuk aplikasi berbasis data terstruktur. Dengan SQL, kita bisa:
-
Mengelola tabel dan relasi
-
Melakukan query kompleks
-
Mengontrol integritas data
Perbedaan utama dengan MongoDB adalah:
-
MySQL → berbasis tabel (relasional)
-
MongoDB → berbasis dokumen (NoSQL)
Keduanya memiliki kelebihan masing-masing tergantung kebutuhan aplikasi.
