Panduan CRUD dengan Node.js dan MongoDB untuk Pemula

Panduan CRUD dengan Node.js dan MongoDB untuk Pemula

2025-06-09

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.

  1. Buat folder project:
mkdir crud-node-mongodb
cd crud-node-mongodb
npm init -y
  1. Install dependencies yang dibutuhkan:
npm install express mongoose body-parser
  • express : framework web untuk Node.js
  • mongoose : ODM (Object Data Modeling) untuk MongoDB
  • body-parser : middleware untuk parsing request body
  1. 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, dan age untuk 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 joi atau express-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!