Entity-Relationship Diagram (ERD)
ERD adalah diagram yang menggambarkan struktur logis basis data dengan menampilkan entitas, atribut, dan relasi di antara entitas-entitas tersebut. ERD membantu merancang database sebelum implementasi, memastikan konsistensi dan kejelasan hubungan data.
1. Pengertian ERD
-
Entitas: Objek nyata atau konseptual yang memiliki data, contohnya Siswa, Kelas, Produk.
-
Atribut: Properti atau informasi detail tentang entitas, misalnya entitas Siswa punya atribut NIS, Nama, Tanggal_Lahir.
-
Relasi: Hubungan antara dua (atau lebih) entitas, seperti satu Siswa “BERADA_DI” satu Kelas.
ERD memetakan model data sehingga memudahkan developer dan stakeholder memahami bagaimana data saling terhubung.
2. Komponen Utama ERD
Komponen |
Simbol / Notasi |
Keterangan |
Entitas |
Persegi panjang |
Menyatakan objek/data utama |
Atribut |
Oval |
Menyatakan detail/field dari entitas |
Primary Key |
Atribut bergaris bawah |
Atribut unik untuk tiap instansi entitas |
Relasi |
Belah ketupat (♦) |
Menyatakan jenis hubungan antar entitas |
Kardinalitas |
Angka atau simbol (1, N, M) |
Menunjukkan jumlah maksimum/minimum hubungan |
3. Jenis Kardinalitas Relasi
-
One-to-One (1–1)
Setiap baris entitas A berpasangan tepat satu baris entitas B.
-
One-to-Many (1–N)
Satu baris entitas A dapat berhubungan dengan banyak baris entitas B, tapi B hanya dengan satu A.
-
Many-to-Many (M–N)
Banyak baris entitas A bisa berhubungan dengan banyak baris entitas B (biasanya membutuhkan tabel penghubung).
4. Contoh ERD Sederhana
Misalkan kita punya sistem Perpustakaan dengan tiga entitas: Buku, Anggota, dan Peminjaman.
[ BUKU ] [ ANGGOTA ]
| |
| 1 1 |
| |
+---< DIPINJAM >----+
N–M
[ PEMINJAMAN ]
-
Entitas Buku
-
Entitas Anggota
-
Entitas Peminjaman
-
PK: (ISBN, ID_Anggota, Tgl_Pinjam)
-
Atribut: Tgl_Kembali, Denda
Relasi
5. Inti/Terperinci
-
Definisi & Tujuan
-
Langkah Pembuatan
-
Identifikasi entitas utama.
-
Tentukan atribut tiap entitas & tetapkan PK.
-
Gambar relasi; tetapkan kardinalitas.
-
Tambahkan entitas penghubung (jika M–N).
-
Review dan validasi dengan stakeholder.
-
Manfaat
-
Komunikasi jelas antara developer dan non-tech.
-
Basis data terstruktur, mudah dikembangkan dan dipelihara.
Rumus :
Berikut “rumus” atau pola dasar relasi (kardinalitas) di ERD, lengkap dengan notasi dan cara implementasinya ke tabel–tabel database:
1. Kardinalitas & Notasi ERD
Tipe Relasi | Notasi Singkat | Notasi Min–Max | Penjelasan singkat |
---|
One-to-One | 1 : 1 | (1,1) – (1,1) | Tiap A hanya punya satu B, dan sebaliknya. |
One-to-Many | 1 : N | (1,1) – (0,N) | Satu A bisa punya banyak B; B hanya satu A. |
Many-to-Many | M : N atau N : M | (0,M) – (0,N) | Banyak A bisa ke banyak B, dan sebaliknya. |
-
Notasi Min–Max (min,max)
menunjukkan banyaknya relasi minimal dan maksimal.
-
Contoh (1,1)–(0,N)
artinya: setiap baris A wajib punya tepat 1 B; tiap baris B boleh 0 sampai N A.
2. “Rumus” Implementasi di Database
ERD | Tabel Relasional | Keterangan |
---|
1 : 1 | Tambah foreign key di salah satu tabel, + UNIQUE | sql<br>CREATE TABLE KTP (no_ktp CHAR(16) PRIMARY KEY, nama VARCHAR(100));<br>CREATE TABLE Warga (id INT PRIMARY KEY, no_ktp CHAR(16) UNIQUE, FOREIGN KEY(no_ktp) REFERENCES KTP(no_ktp)); |
1 : N | Tambah foreign key di sisi N | sql<br>CREATE TABLE Kelas (id INT PRIMARY KEY, nama VARCHAR(50));<br>CREATE TABLE Siswa (id INT PRIMARY KEY, nama VARCHAR(100), id_kelas INT, FOREIGN KEY(id_kelas) REFERENCES Kelas(id)); |
M : N | Buat tabel penghubung (associative) | sql<br>CREATE TABLE Mahasiswa (id INT PRIMARY KEY, nama VARCHAR(100));<br>CREATE TABLE MataKuliah (kode CHAR(6) PRIMARY KEY, judul VARCHAR(100));<br>CREATE TABLE KRS (mhs_id INT, mk_kode CHAR(6), PRIMARY KEY(mhs_id,mk_kode), FOREIGN KEY(mhs_id) REFERENCES Mahasiswa(id), FOREIGN KEY(mk_kode) REFERENCES MataKuliah(kode)); |
-
One-to-One: FK + UNIQUE
memastikan tiap nilai hanya muncul sekali.
-
One-to-Many: FK di tabel “many” menunjuk PK tabel “one”.
-
Many-to-Many: Tabel ketiga (KRS
) membawa dua FK sebagai kombinasi PK.
versi cepat : 4. Ringkasan “Rumus” Cepat
-
1 : 1 → FK + UNIQUE
-
1 : N → FK di sisi “N” (tanpa UNIQUE
)
-
M : N → Tabel penghubung dengan dua FK (gabungan PK)
contoh :