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.