CRUD adalah singkatan dari Create, Read, Update, dan Delete, yaitu empat operasi dasar yang wajib dikuasai ketika membuat aplikasi backend. Keempat operasi ini memungkinkan kita untuk mengelola data dengan efektif dan efisien.
Pada artikel ini, kita akan belajar cara membuat API CRUD sederhana menggunakan Node.js dengan framework Express dan database MongoDB yang diakses menggunakan Mongoose. Tutorial ini cocok untuk kamu yang baru mulai belajar backend development atau ingin menambah skill dalam pengelolaan data.
Apa itu CRUD dan Mengapa Penting?
CRUD adalah pondasi utama dalam pengelolaan data di aplikasi berbasis database. Setiap aplikasi, baik itu website, mobile, atau sistem lainnya, pasti membutuhkan CRUD untuk:
- Create: Menambahkan data baru ke database.
- Read: Membaca atau mengambil data yang sudah tersimpan.
- Update: Memperbarui data yang sudah ada.
- Delete: Menghapus data yang tidak diperlukan lagi.
Menguasai CRUD adalah langkah awal yang penting sebelum kamu beranjak ke topik yang lebih kompleks seperti autentikasi, authorization, atau arsitektur microservices.
Setup Project dan Koneksi MongoDB
Sebelum mulai coding, kita buat dulu folder project dan inisialisasi project Node.js.
- Buat folder project:
mkdir crud-node-mongodb
cd crud-node-mongodb
npm init -y
- Install dependencies yang dibutuhkan:
npm install express mongoose body-parser
express: framework web untuk Node.jsmongoose: ODM (Object Data Modeling) untuk MongoDBbody-parser: middleware untuk parsing request body
- Koneksi ke MongoDB menggunakan Mongoose
Buat file app.js dan tambahkan kode berikut untuk menghubungkan aplikasi ke database MongoDB lokal:
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
mongoose.connect('mongodb://localhost:27017/mydb', {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => console.log('MongoDB connected'))
.catch(err => console.error('MongoDB connection error:', err));
app.listen(3000, () => {
console.log('Server running on port 3000');
});
Membuat Schema dan Model dengan Mongoose
Schema adalah struktur data untuk mendefinisikan bagaimana data disimpan di MongoDB. Misalnya, kita ingin membuat data user dengan atribut name, email, dan age.
Tambahkan kode berikut di app.js setelah koneksi MongoDB:
const userSchema = new mongoose.Schema({
name: String,
email: String,
age: Number,
});
const User = mongoose.model('User', userSchema);
Implementasi CRUD di Express
Sekarang kita implementasikan route API untuk operasi CRUD.
1. Create: Menambah User Baru
app.post('/users', async (req, res) => {
try {
const user = new User(req.body);
await user.save();
res.status(201).send(user);
} catch (error) {
res.status(400).send(error);
}
});
2. Read: Mengambil Data User
Ambil semua user:
app.get('/users', async (req, res) => {
try {
const users = await User.find();
res.send(users);
} catch (error) {
res.status(500).send(error);
}
});
Ambil user berdasarkan ID:
app.get('/users/:id', async (req, res) => {
try {
const user = await User.findById(req.params.id);
if (!user) return res.status(404).send({ message: 'User tidak ditemukan' });
res.send(user);
} catch (error) {
res.status(500).send(error);
}
});
3. Update: Memperbarui Data User
app.put('/users/:id', async (req, res) => {
try {
const user = await User.findByIdAndUpdate(req.params.id, req.body, { new: true, runValidators: true });
if (!user) return res.status(404).send({ message: 'User tidak ditemukan' });
res.send(user);
} catch (error) {
res.status(400).send(error);
}
});
4. Delete: Menghapus User
app.delete('/users/:id', async (req, res) => {
try {
const user = await User.findByIdAndDelete(req.params.id);
if (!user) return res.status(404).send({ message: 'User tidak ditemukan' });
res.send({ message: 'User berhasil dihapus' });
} catch (error) {
res.status(500).send(error);
}
});
Testing CRUD API
Untuk mencoba API ini, kamu bisa gunakan tools seperti Postman atau Insomnia:
- POST /users Kirim JSON dengan
name,email, danageuntuk tambah data user baru - GET /users Ambil semua data user
- GET /users/:id Ambil data user berdasarkan ID
- PUT /users/:id Update data user dengan ID tertentu
- DELETE /users/:id Hapus user berdasarkan ID
Next Steps: Validasi, Autentikasi, dan Pagination
Setelah berhasil membuat CRUD dasar, kamu bisa kembangkan API dengan fitur tambahan, seperti:
- Validasi data input supaya data yang masuk ke database sesuai aturan (pakai package
joiatauexpress-validator) - Autentikasi dan otorisasi untuk membatasi akses API hanya kepada user yang berhak (pakai JWT atau OAuth)
- Pagination dan filter untuk mengelola data dalam jumlah besar supaya lebih efisien diakses
Kesimpulan
CRUD adalah fondasi yang harus dikuasai sebelum masuk ke pengembangan backend lebih lanjut. Dengan Node.js, Express, dan MongoDB, kamu bisa membangun API yang cepat dan scalable. Tutorial ini memberikan gambaran dasar sekaligus contoh kode yang mudah dipahami dan langsung bisa kamu coba.
Kalau kamu ingin belajar lebih lengkap dan mendalam, termasuk praktik terbaik serta proyek nyata, Nusacodes menyediakan bootcamp programming yang siap membantu kamu jadi developer handal!