Prisma adalah ORM (Object Relational Mapping) modern untuk Node.js dan TypeScript. ORM sendiri adalah alat yang mempermudah kita dalam mengakses dan mengelola database melalui kode, tanpa perlu menulis banyak SQL mentah. Prisma sangat populer karena:
- Mendukung TypeScript dan JavaScript
- Terintegrasi dengan baik dengan PostgreSQL, MySQL, SQLite, dan lainnya
- Dokumentasi yang lengkap dan komunitas yang aktif
Alat yang Dibutuhkan
Sebelum memulai, pastikan kamu sudah menginstal:
- Node.js (versi terbaru disarankan)
- PostgreSQL (bisa juga pakai versi lokal atau layanan seperti Supabase)
- VSCode (opsional, untuk editor)
- Terminal / Command Prompt
Langkah-Langkah Install & Setup Prisma
1.Inisialisasi Project Node.js
mkdir belajar-prisma
cd belajar-prisma
npm init -y
2.Install Prisma CLI dan Prisma Client
npm install prisma --save-dev
npm install @prisma/client
3.Inisialisasi Prisma
npx prisma init
Perintah ini akan membuat dua file:
prisma/schema.prisma
→ untuk mendefinisikan model database.env
→ tempat menyimpan variabel koneksi ke database
Konfigurasi PostgreSQL
Buka file .env
dan ubah konfigurasi DATABASE_URL
sesuai pengaturan PostgreSQL milikmu:
DATABASE_URL="postgresql://username:password@localhost:5432/nama_database"
Contoh:
DATABASE_URL="postgresql://postgres:admin123@localhost:5432/belajar_prisma"
Pastikan database tersebut sudah dibuat di PostgreSQL ya!
Membuat Model Prisma
Edit file prisma/schema.prisma
seperti ini:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
name String
email String @unique
createdAt DateTime @default(now())
}
Generate Prisma Client
Setelah model dibuat, jalankan:
npx prisma generate
Untuk membuat skema tabel di database:
npx prisma migrate dev --name init
CRUD Sederhana dengan Prisma
Buat file index.js
dan tulis:
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function main() {
// CREATE
const user = await prisma.user.create({
data: {
name: 'Farel Ardhi',
email: '[email protected]',
},
});
console.log('User Created:', user);
// READ
const allUsers = await prisma.user.findMany();
console.log('All Users:', allUsers);
// UPDATE
const updated = await prisma.user.update({
where: { id: user.id },
data: { name: 'Farel Update' },
});
// DELETE
const deleted = await prisma.user.delete({
where: { id: user.id },
});
console.log('User Deleted:', deleted);
}
main()
.then(() => prisma.$disconnect())
.catch((e) => {
console.error(e);
prisma.$disconnect();
});
Tips dan Best Practices
- Selalu gunakan migrasi (
prisma migrate
) untuk perubahan skema - Manfaatkan auto-complete Prisma di TypeScript
- Buatlah folder
services
untuk memisahkan logika query agar kode lebih rapi - Gunakan
prisma studio
untuk melihat isi database secara visual:
npx prisma studio
Kesimpulan
Dengan Prisma, pengelolaan database PostgreSQL di Node.js menjadi jauh lebih mudah, aman, dan efisien. Cocok sekali untuk kamu yang ingin mulai belajar backend dengan struktur yang modern.
Struktur Project Akhir
belajar-prisma/
├── node_modules/
├── prisma/
│ └── schema.prisma
├── .env
├── index.js
├── package.json