ORM (Object-Relational Mapping)
Library yang memetakan tabel database ke object dalam kode programming.
ORM adalah teknik/library yang memungkinkan developer berinteraksi dengan database menggunakan object dan method di bahasa pemrograman, bukan menulis SQL mentah. ORM memetakan tabel database ke class/object, baris ke instance, dan kolom ke property. Keuntungan ORM: produktivitas (tidak perlu menulis SQL berulang), type safety (dengan TypeScript), database agnostic (ganti DB tanpa ubah kode), dan auto-generated queries. Kekurangan: overhead performa (ORM generate SQL yang mungkin tidak optimal), learning curve, dan abstraction leak (kompleksitas SQL tersembunyi). ORM populer: Drizzle (TypeScript, lightweight), Prisma (schema-first), TypeORM (decorator-based), Sequelize, dan SQLAlchemy (Python).
Contoh Kode
// Drizzle ORM example
import { eq } from 'drizzle-orm';
import { users } from './schema';
// SELECT * FROM users WHERE id = 1
const user = await db.select().from(users).where(eq(users.id, 1));
// INSERT INTO users (email, name) VALUES (...)
await db.insert(users).values({ email: 'budi@mail.com', name: 'Budi' });
// UPDATE users SET name = 'Budi Baru' WHERE id = 1
await db.update(users).set({ name: 'Budi Baru' }).where(eq(users.id, 1));
// DELETE FROM users WHERE id = 1
await db.delete(users).where(eq(users.id, 1));