Pernah nggak kamu merasa pusing waktu disuruh bikin database? Tiba-tiba semua orang ngomong soal tabel, relasi, foreign key — dan kamu cuma bisa manggut-manggut sambil dalam hati bertanya, "ini dari mana awalnya?"
Jawabannya: dari ERD OBE. Entity Relationship Diagram adalah peta jalan sebelum kamu menulis satu baris pun SQL. Dan kalau kamu lagi membangun sistem informasi akademik berbasis kurikulum OBE, ERD bukan sekadar opsional — ini adalah fondasi segalanya.
Artikel ini adalah bagian ke-17 dari seri "20 Artikel Kurikulum OBE: OBE from Zero to Zorro" — dan di sini kita bakal merancang Entity Relationship Diagram untuk sistem OBE dari nol. Bukan teori kering, tapi panduan visual yang bisa langsung kamu praktikkan hari ini.
🗺️ Apa Itu ERD OBE dan Kenapa Kamu Butuh Ini?
Bayangkan kamu mau bangun rumah. Sebelum tukang datang, kamu perlu denah arsitektur — mana ruang tamu, mana kamar, di mana letak pintu. Tanpa denah, tukang bisa salah pasang dinding, dan rumah jadi berantakan.
ERD adalah denah arsitektur database kamu. Sebelum kamu nulis CREATE TABLE, kamu perlu tahu: tabel apa saja yang ada, kolom apa di tiap tabel, dan bagaimana tabel-tabel itu saling terhubung.
Dalam desain database OBE, kompleksitasnya lebih tinggi dari sistem biasa — karena OBE punya konsep hierarki: CPL → CPMK → Sub-CPMK, dan semua itu harus bisa terlacak sampai ke nilai mahasiswa per aktivitas pembelajaran.
Sebelum membuka aplikasi database, gambar ERD di kertas dulu! Banyak developer berpengalaman yang masih pakai whiteboard untuk fase ini. Tools digital seperti draw.io, dbdiagram.io, atau Lucidchart bisa dipakai setelah konsep ERD sudah jelas.
🔗 Kardinalitas dalam Database OBE: 1:1, 1:N, N:M
Konsep paling krusial dalam desain database OBE adalah kardinalitas — yaitu aturan "berapa banyak yang boleh berhubungan dengan berapa banyak". Ada tiga jenis utama:
| Jenis Relasi | Simbol | Contoh dalam OBE | Implementasi |
|---|---|---|---|
| Satu ke Satu (1:1) | ─┤ ├─ | 1 Kurikulum ↔ 1 Prodi (per angkatan) | Foreign key di salah satu tabel |
| Satu ke Banyak (1:N) | ─┤ ⊳─ | 1 CPL → banyak CPMK | FK di sisi "banyak" (tabel CPMK) |
| Banyak ke Banyak (N:M) | ─⊲ ⊳─ | CPMK ↔ Mata Kuliah (bisa lintas prodi) | Tabel junction/pivot wajib dibuat |
Relasi N:M adalah yang paling sering bikin maba Database galau! Contoh: satu CPMK bisa ada di banyak mata kuliah, dan satu mata kuliah punya banyak CPMK. Solusinya selalu sama: buat tabel perantara (junction table) seperti matakuliah_cpmk.
🏗️ Langkah-Langkah Merancang ERD OBE dari Nol
Merancang Entity Relationship Diagram OBE bukan soal bakat — ini soal mengikuti langkah yang benar. Berikut panduan step-by-step-nya:
Identifikasi Semua Entitas
Daftar semua "objek" yang perlu disimpan datanya. Dalam OBE, entitas utamanya adalah: Prodi, Kurikulum, CPL (Capaian Pembelajaran Lulusan), Mata Kuliah, CPMK, Mahasiswa, Dosen, Kelas, Nilai. Tulis di sticky note atau whiteboard.
Tentukan Atribut Tiap Entitas
Untuk setiap entitas, tentukan atributnya. Contoh entitas CPMK: id_cpmk, kode_cpmk, deskripsi, bobot_penilaian, id_cpl. Tandai mana Primary Key (PK) dan mana yang akan jadi Foreign Key (FK).
Gambar Relasi Antar Entitas
Hubungkan entitas dengan garis. Beri label nama relasi (kata kerja) dan notasi kardinalitas. Contoh: CPL "memiliki" CPMK (1:N). Gunakan notasi Crow's Foot atau Chen — pilih salah satu dan konsisten.
Resolusi Relasi N:M
Setiap relasi N:M wajib dipecah dengan tabel junction. Contoh: relasi antara Mata Kuliah dan CPMK dipecah jadi tabel matakuliah_cpmk yang berisi FK dari kedua tabel + atribut tambahan seperti bobot.
Review & Normalisasi
Cek apakah ada data redundan. Pastikan semua tabel memenuhi minimal 3NF (Third Normal Form). Tanya diri sendiri: "Apakah ada kolom yang nilainya bisa diturunkan dari kolom lain di tabel yang sama?" Jika ya, pisahkan.
📊 Visualisasi ERD Database OBE: Diagram Lengkap
Berikut adalah representasi tekstual dari ERD database OBE yang bisa kamu jadikan acuan. Diagram ini mencakup entitas inti beserta relasinya:
┌─────────────────┐ ┌──────────────────┐
│ PRODI │ 1 N │ KURIKULUM │
│─────────────────│────────►│──────────────────│
│ PK id_prodi │ │ PK id_kurikulum │
│ kode_prodi │ │ tahun_berlaku │
│ nama_prodi │ │ status_aktif │
│ jenjang │ │ FK id_prodi │
└─────────────────┘ └────────┬─────────┘
│ 1
│
▼ N
┌──────────────────┐
│ CPL │
│──────────────────│
│ PK id_cpl │
│ kode_cpl │
│ deskripsi_cpl │
│ FK id_kurikulum │
└────────┬─────────┘
│ 1
│
▼ N
┌─────────────────┐ N M ┌──────────────────┐
│ MATA KULIAH │◄────────►│ CPMK │
│─────────────────│ │──────────────────│
│ PK id_mk │ [tabel │ PK id_cpmk │
│ kode_mk │ pivot: │ kode_cpmk │
│ nama_mk │ mk_cpmk]│ deskripsi │
│ sks │ │ bobot (%) │
│ FK id_kurikulum │ │ FK id_cpl │
└────────┬────────┘ └──────────────────┘
│ 1
│
▼ N
┌─────────────────┐ ┌──────────────────┐
│ KELAS │ N M │ MAHASISWA │
│─────────────────│◄───────►│──────────────────│
│ PK id_kelas │ [pivot: │ PK id_mahasiswa │
│ kode_kelas │ enrollm.]│ nim │
│ semester │ │ nama │
│ FK id_mk │ │ angkatan │
│ FK id_dosen │ │ FK id_prodi │
└────────┬────────┘ └──────────────────┘
│ 1
│
▼ N
┌─────────────────────────────┐
│ NILAI_CPMK │
│─────────────────────────────│
│ PK id_nilai │
│ nilai_angka │
│ nilai_huruf │
│ FK id_mahasiswa │
│ FK id_cpmk │
│ FK id_kelas │
└─────────────────────────────┘
Tabel NILAI_CPMK adalah inti dari sistem OBE. Di sinilah capaian setiap mahasiswa untuk setiap CPMK disimpan. Tabel ini yang nantinya digunakan untuk menganalisis ketercapaian CPL — apakah kurikulum berjalan efektif atau tidak.
💻 Contoh Kode: Membuat Relasi di SQL
Setelah ERD selesai dirancang, kita bisa mentranslasikannya ke SQL. Berikut contoh kode untuk mendefinisikan relasi kunci dalam database OBE:
CREATE TABLE cpl ( id_cpl INT PRIMARY KEY AUTO_INCREMENT, kode_cpl VARCHAR(10) NOT NULL, deskripsi_cpl TEXT NOT NULL, id_kurikulum INT, FOREIGN KEY (id_kurikulum) REFERENCES kurikulum(id_kurikulum) ); CREATE TABLE cpmk ( id_cpmk INT PRIMARY KEY AUTO_INCREMENT, kode_cpmk VARCHAR(15) NOT NULL, deskripsi TEXT, bobot DECIMAL(5,2), id_cpl INT NOT NULL, -- FK ke CPL: relasi 1 CPL → banyak CPMK FOREIGN KEY (id_cpl) REFERENCES cpl(id_cpl) ON DELETE CASCADE ON UPDATE CASCADE );
-- Tabel perantara untuk relasi N:M CREATE TABLE matakuliah_cpmk ( id INT PRIMARY KEY AUTO_INCREMENT, id_mk INT NOT NULL, id_cpmk INT NOT NULL, bobot_mk DECIMAL(5,2) DEFAULT 0.00, FOREIGN KEY (id_mk) REFERENCES mata_kuliah(id_mk), FOREIGN KEY (id_cpmk) REFERENCES cpmk(id_cpmk), -- Hindari duplikasi pasangan mk-cpmk UNIQUE KEY uk_mk_cpmk (id_mk, id_cpmk) );
Selalu tambahkan ON DELETE CASCADE atau ON DELETE RESTRICT pada foreign key-mu secara eksplisit. Kalau dibiarkan default, perilaku database bisa berbeda-beda di tiap RDBMS — dan bisa menyebabkan data orphan (data yang mengacu ke baris yang sudah dihapus).
- Hanya ada: MK, Mahasiswa, Nilai
- Nilai = satu angka final
- Tidak bisa lacak ketercapaian per CLO
- Tidak mendukung evaluasi kurikulum
- Tidak comply dengan standar BAN-PT OBE
- CPL → CPMK → Nilai per indikator
- Bisa hitung attainment rate per CPL
- Support pemetaan kurikulum lintas angkatan
- Dasar laporan akreditasi otomatis
- Siap integrasi dengan SIAKAD modern
- dbdiagram.io — paling cepat, syntax sederhana, bisa generate SQL langsung
- draw.io (diagrams.net) — gratis, lengkap, bisa disimpan ke Google Drive
- MySQL Workbench — kalau sudah mau langsung ke implementasi MySQL
- Lucidchart — kolaborasi tim, cocok untuk proyek besar
Seri Kurikulum OBE: OBE from Zero to Zorro
Panduan lengkap 20 artikel membangun kurikulum OBE dari nol — mulai dari konsep dasar CPL hingga digitalisasi sistem dengan database dan SIAKAD.
📖 Lihat Daftar Isi Lengkap →
No comments:
Post a Comment