Menggunakan Database MySQL / MongoDB
Dalam pengembangan website, database digunakan untuk menyimpan dan mengelola data secara sistematis. Dua jenis database yang umum digunakan adalah MySQL (relasional) dan MongoDB (non-relasional).
1. MySQL (Relational Database)
MySQL adalah database berbasis tabel yang menggunakan SQL (Structured Query Language) untuk mengelola data.
Langkah-langkah dasar menggunakan MySQL:
- Instalasi MySQL (bisa melalui XAMPP untuk lokal).
- Membuat database dengan perintah:
CREATE DATABASE nama_database; - Membuat tabel:
CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, nama VARCHAR(100), email VARCHAR(100) ); - Memasukkan data:
INSERT INTO users (nama, email) VALUES ('John Doe', 'john@example.com'); - Mengambil data:
SELECT * FROM users;
2. MongoDB (NoSQL Database)
MongoDB menyimpan data dalam format JSON-like (dokumen), yang lebih fleksibel dibandingkan MySQL.
Langkah-langkah dasar menggunakan MongoDB:
- Instalasi MongoDB (bisa melalui MongoDB Atlas atau lokal).
- Membuat database dan koleksi:
use nama_database db.createCollection("users") - Memasukkan data:
db.users.insertOne({ nama: "John Doe", email: "john@example.com" }) - Mengambil data:
db.users.find()
Perbandingan MySQL vs. MongoDB
| Aspek | MySQL (Relasional) | MongoDB (NoSQL) |
|---|---|---|
| Struktur Data | Tabel (Rows & Columns) | Dokumen (JSON-like) |
| Skema | Harus didefinisikan sebelumnya | Fleksibel |
| Query | SQL | BSON Query |
| Kecepatan | Lebih cepat untuk data terstruktur | Lebih cepat untuk data tidak terstruktur |
| Kegunaan | Aplikasi dengan data yang sangat terstruktur (e-commerce, sistem keuangan) | Aplikasi yang butuh fleksibilitas tinggi (social media, IoT) |
Kesimpulan
- Gunakan MySQL jika data terstruktur dengan hubungan yang jelas antar tabel.
- Gunakan MongoDB jika data tidak terstruktur dan butuh fleksibilitas tinggi.
- Keduanya bisa digunakan bersamaan dalam proyek yang lebih kompleks.
Implementasi MySQL dan MongoDB dalam Website (Menggunakan Node.js dan Express.js)
Di sini, saya akan memberikan contoh cara menghubungkan website dengan MySQL dan MongoDB menggunakan Node.js dan Express.js.
1. Implementasi MySQL dengan Node.js
Langkah 1: Install Dependensi
npm init -y
npm install express mysql2
Langkah 2: Buat Koneksi ke MySQL
Buat file db.js:
const mysql = require('mysql2');
const db = mysql.createConnection({
host: 'localhost',
user: 'root', // Ganti dengan username MySQL Anda
password: '', // Ganti dengan password MySQL Anda
database: 'belajar_mysql'
});
db.connect((err) => {
if (err) throw err;
console.log('MySQL Connected...');
});
module.exports = db;
Langkah 3: Buat Server dan CRUD
Buat file server.js:
const express = require('express');
const db = require('./db');
const app = express();
app.use(express.json());
// Get all users
app.get('/users', (req, res) => {
db.query('SELECT * FROM users', (err, results) => {
if (err) throw err;
res.json(results);
});
});
// Add user
app.post('/users', (req, res) => {
const { nama, email } = req.body;
db.query('INSERT INTO users (nama, email) VALUES (?, ?)', [nama, email], (err, result) => {
if (err) throw err;
res.json({ message: 'User added', id: result.insertId });
});
});
app.listen(3000, () => console.log('Server running on port 3000'));
Jalankan dengan:
node server.js
Lalu akses di browser http://localhost:3000/users untuk melihat data.
2. Implementasi MongoDB dengan Node.js
Langkah 1: Install Dependensi
npm install mongoose express
Langkah 2: Buat Koneksi ke MongoDB
Buat file db.js:
const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/belajar_mongodb', {
useNewUrlParser: true,
useUnifiedTopology: true
}).then(() => console.log('MongoDB Connected'))
.catch(err => console.log(err));
module.exports = mongoose;
Langkah 3: Buat Model User
Buat file User.js:
const mongoose = require('./db');
const UserSchema = new mongoose.Schema({
nama: String,
email: String
});
const User = mongoose.model('User', UserSchema);
module.exports = User;
Langkah 4: Buat Server dan CRUD
Buat file server.js:
const express = require('express');
const User = require('./User');
const app = express();
app.use(express.json());
// Get all users
app.get('/users', async (req, res) => {
const users = await User.find();
res.json(users);
});
// Add user
app.post('/users', async (req, res) => {
const { nama, email } = req.body;
const newUser = new User({ nama, email });
await newUser.save();
res.json({ message: 'User added', user: newUser });
});
app.listen(3000, () => console.log('Server running on port 3000'));
Jalankan dengan:
node server.js
Lalu akses http://localhost:3000/users untuk melihat data.
Kesimpulan
- MySQL cocok untuk data terstruktur dengan tabel dan relasi yang jelas.
- MongoDB cocok untuk data fleksibel yang tidak membutuhkan skema tetap.
- Keduanya bisa digunakan dalam proyek yang berbeda tergantung kebutuhan.