Featured Post
Cara Menghubungkan Database MySQL ke Website Node.js
- Dapatkan link
- X
- Aplikasi Lainnya
Beberapa tahun lalu, aku sempat mengira membuat website dinamis itu sulit.
Aku bisa bikin tampilan depan yang cantik dengan HTML dan CSS, tapi setiap kali mencoba menyimpan data ke database, selalu berakhir error.
Sampai akhirnya aku menemukan cara yang sederhana — dan masuk akal — untuk menghubungkan MySQL ke website Node.js.
Jika kamu sedang belajar website development, memahami bagaimana Node.js berkomunikasi dengan database seperti MySQL adalah langkah penting.
Koneksi inilah yang memungkinkan website menyimpan data pengguna, menampilkan postingan, atau bahkan memproses transaksi.
Di artikel ini, aku akan membagikan langkah demi langkah cara menghubungkan Node.js dengan MySQL, mulai dari instalasi hingga membuat query sederhana.
Mengapa Node.js dan MySQL Cocok untuk Website Dinamis
Sebelum kita masuk ke teknis, mari pahami dulu kenapa banyak developer memilih kombinasi Node.js + MySQL.
-
Node.js terkenal karena kecepatan dan kemampuannya menangani banyak permintaan secara bersamaan.
-
MySQL adalah database relasional yang stabil dan mudah digunakan.
-
Keduanya open source, artinya kamu bisa memulai tanpa biaya lisensi.
Dalam proyek website development, kombinasi ini sangat ideal untuk aplikasi seperti blog, toko online, dashboard admin, atau sistem login sederhana.
Langkah 1: Persiapan Lingkungan
Sebelum mulai coding, pastikan kamu sudah menyiapkan semua alatnya.
1. Instal Node.js dan npm
Kamu bisa unduh di nodejs.org.
Pastikan sudah terinstal dengan benar lewat terminal:
node -v
npm -v
2. Instal MySQL
Unduh dari mysql.com dan pastikan service-nya berjalan.
Kamu bisa cek melalui terminal atau aplikasi MySQL Workbench.
3. Buat Database Baru
Masuk ke MySQL dan jalankan:
CREATE DATABASE node_app;
USE node_app;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);
Database ini akan kita pakai untuk simulasi website sederhana.
Langkah 2: Membuat Proyek Node.js
Buka terminal dan buat folder proyek:
mkdir node-mysql-demo
cd node-mysql-demo
npm init -y
Lalu instal package mysql2 dan express:
npm install express mysql2
Setelah itu, buat file server.js:
const express = require('express');
const mysql = require('mysql2');
const app = express();
const PORT = 3000;
app.use(express.json());
Langkah 3: Menghubungkan Node.js ke MySQL
Sekarang saatnya membuat koneksi database.
Tambahkan kode berikut ke server.js:
const db = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'node_app'
});
db.connect(err => {
if (err) {
console.error('Koneksi ke database gagal:', err);
return;
}
console.log('Terhubung ke MySQL!');
});
Lalu jalankan server:
app.listen(PORT, () => {
console.log(`Server berjalan di http://localhost:${PORT}`);
});
Kalau muncul pesan “Terhubung ke MySQL!”, berarti koneksi berhasil 🎉
Langkah penting dalam website development kamu baru saja tercapai!
Langkah 4: Membuat Endpoint untuk CRUD (Create, Read, Update, Delete)
Mari kita buat beberapa route sederhana untuk mengelola data pengguna.
1. Menambahkan Data (Create)
app.post('/users', (req, res) => {
const { name, email } = req.body;
const sql = 'INSERT INTO users (name, email) VALUES (?, ?)';
db.query(sql, [name, email], (err, result) => {
if (err) return res.status(500).json({ error: err.message });
res.json({ message: 'User ditambahkan!', id: result.insertId });
});
});
2. Menampilkan Data (Read)
app.get('/users', (req, res) => {
db.query('SELECT * FROM users', (err, results) => {
if (err) return res.status(500).json({ error: err.message });
res.json(results);
});
});
3. Memperbarui Data (Update)
app.put('/users/:id', (req, res) => {
const { name, email } = req.body;
const sql = 'UPDATE users SET name=?, email=? WHERE id=?';
db.query(sql, [name, email, req.params.id], (err) => {
if (err) return res.status(500).json({ error: err.message });
res.json({ message: 'User diperbarui!' });
});
});
4. Menghapus Data (Delete)
app.delete('/users/:id', (req, res) => {
db.query('DELETE FROM users WHERE id=?', [req.params.id], (err) => {
if (err) return res.status(500).json({ error: err.message });
res.json({ message: 'User dihapus!' });
});
});
Sekarang kamu sudah memiliki API dasar yang bisa menyimpan dan mengambil data dari MySQL.
Itu artinya websitemu sudah “hidup” — tidak hanya menampilkan konten statis.
Langkah 5: Tips Keamanan & Performa
Ketika proyekmu berkembang, ada beberapa hal penting yang perlu diperhatikan:
1. Gunakan .env untuk Menyimpan Kredensial
Jangan pernah menyimpan username dan password database di kode.
Gunakan library dotenv:
npm install dotenv
Lalu buat file .env:
DB_HOST=localhost
DB_USER=root
DB_PASS=
DB_NAME=node_app
Dan ubah koneksi database jadi:
require('dotenv').config();
const db = mysql.createConnection({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME
});
2. Gunakan Connection Pool
Daripada membuka koneksi baru tiap request, gunakan pool agar lebih efisien:
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
database: 'node_app',
waitForConnections: true,
connectionLimit: 10,
});
3. Validasi Input
Sebelum menyimpan data ke database, pastikan semua input dari pengguna aman dan sesuai format.
Gunakan library seperti Joi atau Validator.js.
Langkah 6: Integrasi dengan Front-End Website
Setelah API berjalan, kamu bisa menghubungkannya dengan tampilan front-end.
Misalnya kamu membuat form HTML sederhana:
<form id="userForm">
<input type="text" name="name" placeholder="Nama" />
<input type="email" name="email" placeholder="Email" />
<button type="submit">Kirim</button>
</form>
<script>
document.getElementById('userForm').addEventListener('submit', async (e) => {
e.preventDefault();
const name = e.target.name.value;
const email = e.target.email.value;
await fetch('/users', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name, email })
});
});
</script>
Dengan begini, setiap data dari form akan dikirim ke server dan disimpan di database MySQL.
Bagian ini sering jadi titik balik banyak developer — momen di mana mereka menyadari betapa serunya website development yang interaktif.
Penutup — Fondasi Kuat untuk Web Modern
Menghubungkan MySQL ke website Node.js bukan lagi hal yang menakutkan.
Kamu baru saja mempelajari dasar dari banyak aplikasi besar di luar sana: cara mengelola data dengan backend yang efisien.
Begitu kamu memahami alur koneksi dan struktur CRUD, langkah selanjutnya bisa lebih jauh — seperti autentikasi, relasi tabel, atau ORM seperti Sequelize.
Dan percayalah, begitu kamu menaklukkan tahap ini, dunia website development akan terasa jauh lebih luas dan menarik. 🌐
- Dapatkan link
- X
- Aplikasi Lainnya
Komentar