Featured Post

Tren CSS & Layout Modern 2025: Flexbox, Grid & Beyond

 Kalau gue flashback sedikit ke awal belajar front-end, rasanya lucu juga mengingat betapa ribetnya bikin layout cuma pakai float dan posisi manual. Dikit-dikit “clear: both;”, margin lari ke mana-mana, dan debugging layout bisa makan waktu berjam-jam. Tapi industri website development berkembang cepat, dan setiap tahun selalu muncul cara baru yang bikin hidup developer lebih gampang. Masuk ke tahun 2025, CSS sudah jauh lebih matang, elegan, dan terasa seperti alat superpower. Gue ngerasa bikin layout sekarang nggak lagi sekadar “nyusun kotak", tapi benar-benar menciptakan pengalaman visual yang fleksibel, responsif, dan smart. Flexbox sudah mapan, Grid makin kuat, dan CSS modern seperti container queries, subgrid, dan nesting bikin proses styling jadi lebih rapi dan manusiawi. Artikel ini gue tulis berdasarkan pengalaman gue mengerjakan project klien sepanjang 2024–2025. Kita bakal bahas tren layout terbaru yang paling relevan, gimana cara pakainya, dan kenapa lo wajib melek t...

Panduan CRUD API Lengkap dengan Express + MongoDB

 Ada masa ketika gue mulai belajar backend development dan cuma ngerti satu hal: “bisa jalan di localhost berarti udah benar.” Ternyata… nggak sesimpel itu.

Apalagi ketika gue mulai membangun API untuk website dinamis pertama gue. Butuh sistem CRUD, butuh validasi, butuh database, dan tentu saja butuh struktur yang rapi agar bisa terus dikembangkan.

Waktu itu, kombinasi Express dan MongoDB adalah pasangan yang menyelamatkan gue. Simple, fleksibel, cepat dikembangkan, dan cocok banget buat pemula di dunia website development. Setelah lama menggunakannya di berbagai proyek, akhirnya gue bisa merangkum panduan CRUD API ini supaya lo bisa ikuti tanpa harus pusing.

Yuk mulai!


Kenapa Memilih Express + MongoDB?

Sebelum masuk ke coding, gue mau bahas dulu kenapa kombinasi ini disukai banyak developer.

1. Express: Minimalis tapi Fleksibel

Express itu kayak “template kosong” yang lo bisa isi sesuka hati. Nggak banyak aturan, jadi enak buat eksperimen.

2. MongoDB: Schema Fleksibel, JSON-Friendly

MongoDB simpelnya menyimpan data seperti objek JavaScript. Buat pemula di website development, ini bikin alur kerja jauh lebih natural.

3. Cepat untuk Bangun CRUD

Dengan dua tools ini, lo bisa bikin CRUD API dalam waktu kurang dari 30 menit. Serius.


Setup Project: Persiapan Express dan MongoDB

1. Inisialisasi Project

Buat folder project baru:

mkdir express-mongo-crud cd express-mongo-crud npm init -y

Install package utama:

npm install express mongoose cors
  • express → web framework

  • mongoose → ODM untuk MongoDB

  • cors → biar API bisa diakses frontend


2. Struktur Folder

Biar rapi, gue sarankan pakai struktur ini:

/project /models /routes server.js

Kalau di dunia website development modern, struktur rapi itu penting banget agar API gampang di-scale nanti.


Membangun CRUD API: Langkah demi Langkah

Misalnya kita bikin CRUD untuk data “Produk”.


1. Setup Koneksi MongoDB

Buka server.js:

const express = require("express"); const mongoose = require("mongoose"); const cors = require("cors"); const app = express(); app.use(cors()); app.use(express.json()); mongoose.connect("mongodb://localhost:27017/crud_db") .then(() => console.log("MongoDB connected")) .catch(err => console.error(err)); app.listen(3000, () => console.log("Server running on port 3000"));

2. Buat Model Produk

Buat file: models/Product.js

const mongoose = require("mongoose"); const ProductSchema = new mongoose.Schema({ name: { type: String, required: true }, price: { type: Number, required: true }, stock: { type: Number, default: 0 } }, { timestamps: true }); module.exports = mongoose.model("Product", ProductSchema);

Model ini jadi blueprint data yang bakal kita save.


3. Buat Routes CRUD

File: routes/productRoutes.js

const express = require("express"); const router = express.Router(); const Product = require("../models/Product"); // CREATE router.post("/", async (req, res) => { try { const newProduct = await Product.create(req.body); res.json(newProduct); } catch (err) { res.status(400).json({ error: err.message }); } }); // READ ALL router.get("/", async (_req, res) => { const products = await Product.find(); res.json(products); }); // READ ONE router.get("/:id", async (req, res) => { const product = await Product.findById(req.params.id); res.json(product); }); // UPDATE router.put("/:id", async (req, res) => { const updated = await Product.findByIdAndUpdate( req.params.id, req.body, { new: true } ); res.json(updated); }); // DELETE router.delete("/:id", async (req, res) => { await Product.findByIdAndDelete(req.params.id); res.json({ message: "Deleted" }); }); module.exports = router;

4. Hubungkan Route ke Server

Tambahkan di server.js:

const productRoutes = require("./routes/productRoutes"); app.use("/api/products", productRoutes);

Sekarang API CRUD lo sudah lengkap:

  • POST → /api/products

  • GET → /api/products

  • GET → /api/products/:id

  • PUT → /api/products/:id

  • DELETE → /api/products/:id


Testing CRUD API

Gue biasanya pakai Postman atau Thunder Client.

CREATE (POST)

Body:

{ "name": "Keyboard Mechanical", "price": 350000, "stock": 20 }

READ ALL (GET)

Hasilnya list semua produk.

UPDATE (PUT)

Body:

{ "price": 320000 }

DELETE

Cukup panggil endpoint-nya.

Dalam proses website development, testing ini wajib rutin dilakukan biar API lo nggak error waktu dipakai frontend.


Error Handling dan Validasi Sederhana

API tanpa validasi bakal bikin data kacau. Minimal kasih error handling sederhana.

Contoh validasi di POST:

if (!req.body.name) { return res.status(400).json({ error: "Name is required" }); }

Atau manfaatkan built-in validation dari Mongoose.


Tips Membuat CRUD API Lebih Profesional

Seiring waktu, gue belajar beberapa hal yang bikin API lebih solid.

1. Gunakan Controller File Terpisah

Route jadi bersih.

2. Tambahkan Middleware Error Handling

Biar error lebih mudah ditangani.

3. Gunakan ENV untuk Koneksi DB

Pakai dotenv agar aman:

MONGO_URI=xxxx

4. Buat Pagination

Untuk list panjang, pagination wajib.

5. Tambahkan Authentication JWT

Karena sebagian besar API dalam website development butuh keamanan.


Kelebihan Express + MongoDB untuk Website Development

Setelah bertahun-tahun pakai kombinasi ini, gue bisa bilang:

  • Cepat untuk development awal

  • Sangat fleksibel

  • Tidak terlalu banyak boilerplate

  • Cocok untuk web app skala kecil-menengah

  • Banyak tutorial & komunitas

Hal ini bikin CRUD API dengan Express + MongoDB jadi pilihan pertama banyak developer.


Kesimpulan

Membangun CRUD API dengan Express dan MongoDB itu jauh lebih mudah dibanding kelihatannya. Lo cukup:

  1. Setup Express

  2. Koneksi MongoDB dengan Mongoose

  3. Buat model

  4. Buat route CRUD

  5. Test API

Dan semuanya sudah cukup untuk membangun backend dasar sebuah website atau web app dinamis.

Dalam dunia website development, fondasi CRUD ini penting banget karena jadi dasar untuk fitur yang lebih besar seperti authentication, dashboard admin, e-commerce, dan sebagainya.

Komentar

Postingan populer dari blog ini

Belajar dari Kesalahan: Kisah Website yang Drop Trafiknya – Proses Pemulihan

7 Framework JavaScript Terpopuler Tahun 2025

Cara Menggunakan AI untuk Meningkatkan Pendapatan Website