Pada ebook ini, kita akan membangun sebuah proyek web nyata menggunakan Next.js sebagai framework React yang powerful dan MongoDB sebagai database NoSQL yang fleksibel. Proyek ini akan mengajarkan Anda bagaimana menghubungkan frontend dan backend secara seamless, membuat API, dan mengelola data secara efisien.
Dengan mengikuti langkah demi langkah, Anda akan memahami konsep dasar dan praktik terbaik dalam membangun aplikasi modern fullstack.
2. Persiapan Lingkungan Pengembangan
Sebelum mulai coding, pastikan Anda sudah menyiapkan beberapa hal berikut:
Node.js versi terbaru (disarankan v16 ke atas)
Code editor seperti VSCode
Akun MongoDB Atlas untuk database cloud (gratis)
Terminal atau command prompt
Langkah instalasi Next.js:
npx create-next-app@latest nextjs-mongodb-project
cd nextjs-mongodb-project
npm run dev
Setelah menjalankan perintah di atas, buka
http://localhost:3000
di browser Anda untuk melihat aplikasi Next.js default berjalan.
3. Struktur Proyek Next.js
Berikut adalah struktur folder utama yang akan kita gunakan:
/pages
- Tempat file halaman dan API routes
/components
- Komponen React yang dapat digunakan ulang
/lib
- Kode library seperti koneksi database
/public
- File statis seperti gambar
Kita akan membuat folder
lib
untuk menyimpan file koneksi MongoDB agar mudah digunakan di seluruh aplikasi.
4. Membuat Koneksi ke MongoDB
Buat file
lib/mongodb.js
untuk mengatur koneksi ke MongoDB menggunakan
mongodb
driver.
import { MongoClient } from 'mongodb';
const uri = process.env.MONGODB_URI;
const options = {};
let client;
let clientPromise;
if (!process.env.MONGODB_URI) {
throw new Error('Please add your Mongo URI to .env.local');
}
if (process.env.NODE_ENV === 'development') {
// In development mode, use a global variable so the client is cached across hot reloads
if (!global._mongoClientPromise) {
client = new MongoClient(uri, options);
global._mongoClientPromise = client.connect();
}
clientPromise = global._mongoClientPromise;
} else {
// In production mode, create a new client for every connection
client = new MongoClient(uri, options);
clientPromise = client.connect();
}
export default clientPromise;
Jangan lupa buat file
.env.local
di root proyek dan tambahkan variabel berikut: