MODUL PERTEMUAN 4
ENTITY RELATIONSHIP DIAGRAM (ERD)
A. INFORMASI UMUM MATA KULIAH
| Item | Keterangan |
|---|---|
| Mata Kuliah | Data Modelling |
| Kode MK | SSD1019 |
| Bobot | 3 SKS (Praktikum) |
| Semester | 4 (Empat) |
| Program Studi | Sains Data |
| Fakultas | Ekonomi dan Bisnis Islam |
| Universitas | UIN K.H. Abdurrahman Wahid Pekalongan |
| Dosen Pengampu | Mohammad Reza Maulana, M.Kom |
B. INFORMASI PERTEMUAN
B.1 Sub-CPMK Pertemuan 4
Sub-CPMK 4.1: Mahasiswa mampu menyusun model data konseptual dari tahap identifikasi hingga representasi visual menggunakan notasi ERD standar (Chen dan Crow's Foot), termasuk memodelkan weak entity dan hierarki generalisasi/spesialisasi.
B.2 Tujuan Pembelajaran (Learning Objectives)
Setelah mengikuti pertemuan ini, mahasiswa akan mampu:
- Membedakan notasi Chen dan Crow's Foot serta memilih notasi yang tepat untuk konteks yang berbeda (C2 – Memahami)
- Menerapkan simbol-simbol notasi ERD dengan benar untuk entity, attribute, dan relationship (C3 – Mengaplikasikan)
- Menentukan kardinalitas dan participation constraint dari sebuah relationship berdasarkan business rules (C3 – Mengaplikasikan)
- Memodelkan weak entity beserta identifying relationship-nya dalam ERD (C3 – Mengaplikasikan)
- Menggambar hierarki generalisasi dan spesialisasi (ISA) dengan tepat (C3 – Mengaplikasikan)
- Merancang ERD lengkap dari narasi bisnis dengan menerapkan best practices (C4 – Menganalisis)
B.3 Kompetensi yang Dikembangkan
| Domain | Kompetensi |
|---|---|
| Kognitif | Memahami notasi (C2), Menerapkan dalam kasus (C3), Menganalisis kebutuhan desain (C4) |
| Afektif | Mengembangkan ketelitian dan presisi dalam representasi visual; menghargai standar notasi |
| Psikomotorik | Menggunakan tools ERD digital (Draw.io) untuk menghasilkan diagram yang rapi dan benar |
B.4 Indikator Pencapaian
Setelah mengikuti pertemuan ini, mahasiswa diharapkan mampu:
- Menggambar simbol-simbol Chen notation dengan benar tanpa melihat referensi
- Menerjemahkan kardinalitas ke dalam simbol Crow's Foot yang tepat (one, many, zero-or-one, one-or-many, zero-or-many)
- Membedakan total participation dan partial participation serta cara merepresentasikannya
- Mengidentifikasi dan menggambar weak entity dengan double rectangle dan double diamond
- Merancang hierarki ISA dengan menentukan constraintnya (disjoint/overlapping, total/partial)
- Menghasilkan ERD lengkap yang rapi, konsisten, dan sesuai dengan narasi bisnis
B.5 Alokasi Waktu
| No | Kegiatan | Durasi | Keterangan |
|---|---|---|---|
| 1 | Pembukaan & Review Latihan Pertemuan 3 | 10 menit | Highlight temuan menarik dari latihan identifikasi |
| 2 | Aktivitas Pemantik: "Tebak ERD-nya!" | 10 menit | Mahasiswa membaca diagram ERD dan menebak sistem apa |
| 3 | Materi 1: Notasi Chen dan Crow's Foot | 25 menit | Ceramah + demonstrasi live di tools |
| 4 | Materi 2: Kardinalitas dan Participation Constraint | 20 menit | Ceramah + latihan berpasangan |
| 5 | Break | 10 menit | – |
| 6 | Materi 3: Weak Entity dalam ERD | 15 menit | Ceramah + demonstrasi |
| 7 | Materi 4: Generalisasi & Spesialisasi (ISA) | 15 menit | Ceramah + contoh kasus |
| 8 | Materi 5: Best Practices Menggambar ERD | 10 menit | Ceramah + tips & common mistakes |
| 9 | Praktikum Terbimbing: Gambar ERD dari Kasus | 25 menit | Kerja individual/berpasangan di tools |
| 10 | Review & Diskusi Hasil Praktikum | 10 menit | Presentasi singkat + umpan balik |
| 11 | Evaluasi, Briefing Tugas & Penutup | 10 menit | Kuis, penjelasan tugas ERD, refleksi |
| Total | 160 menit | (termasuk fleksibilitas 10 menit) |
C. MATERI PEMBELAJARAN
C.1 Aktivitas Pemantik – "Tebak ERD-nya!"
Instruksi (10 menit): Dosen menampilkan sebuah ERD sederhana di layar tanpa label nama sistem. ERD tersebut menampilkan entity, attribute, dan relationship dalam bentuk diagram visual. Mahasiswa diberi waktu 5 menit untuk mengamati, lalu menjawab pertanyaan berikut secara lisan.
ERD yang Ditampilkan:

Deskripsi ERD:
- Terdapat 4 entity: [A] (ID, Nama, Tanggal_Lahir, Alamat), [B] (Kode, Judul, Deskripsi, Durasi), [C] (ID_C, Tanggal, Status, Nilai), [D] (ID_D, Nama, Kategori)
- Relationship: [A] ──(1)──"mengikuti"──(M)──[B] dengan atribut Tanggal_Mulai & Nilai_Akhir, [D]──(1)──"berisi"──(M)──[B], dan [A]──(1)──"membuat"──(M)──[C]
Pertanyaan:
- Sistem apa yang kamu bayangkan dari ERD ini?
- Apa makna bisnis dari relationship "mengikuti"?
- Mengapa atribut
Nilai_Akhirberada di relationship, bukan di entity [A] atau [B]?
Poin Pembelajaran: Aktifitas ini menunjukkan bahwa ERD adalah bahasa universal — seseorang yang memahami notasinya bisa membaca dan memahami model data sistem apapun tanpa harus mengetahui domainnya terlebih dahulu. Itulah mengapa kita perlu belajar notasi ERD dengan benar.
C.2 Materi 1: Notasi ERD — Chen dan Crow's Foot
ERD (Entity Relationship Diagram) adalah representasi visual dari model data konseptual. Ada beberapa notasi yang digunakan di industri, dan dua yang paling umum adalah Chen Notation dan Crow's Foot Notation.
C.2.1 Chen Notation
Dikembangkan oleh Peter Chen pada tahun 1976 dalam makalahnya yang berjudul "The Entity-Relationship Model—Toward a Unified View of Data". Notasi ini adalah yang paling sering digunakan dalam konteks akademik dan pendidikan karena sangat eksplisit dalam merepresentasikan setiap komponen.
Referensi Visual: Untuk melihat ilustrasi lengkap simbol Chen Notation beserta contoh visualnya, baca artikel Redgate: Chen ERD Notation (opens in a new tab). Artikel ini menampilkan gambar simbol entity, weak entity, associative entity, atribut (key, partial key, multivalued, derived, composite), serta relationship (strong, weak, kardinalitas, dan participation constraint) dalam notasi Chen.
Simbol-Simbol Chen Notation:
┌─────────────────────────────────────────────────────────────────┐
│ SIMBOL CHEN NOTATION │
├──────────────────────┬──────────────────────────────────────────┤
│ SIMBOL │ MAKNA │
├──────────────────────┼──────────────────────────────────────────┤
│ ┌───────────┐ │ ENTITY (Strong) │
│ │ ENTITY │ │ Rectangle / kotak │
│ └───────────┘ │ Contoh: MAHASISWA, PRODUK, PESANAN │
├──────────────────────┼──────────────────────────────────────────┤
│ ╔═══════════╗ │ WEAK ENTITY │
│ ║ W.ENTITY ║ │ Double rectangle / kotak ganda │
│ ╚═══════════╝ │ Contoh: ITEM_PESANAN, TANGGUNGAN │
├──────────────────────┼──────────────────────────────────────────┤
│ ╱ ─── ╲ │ RELATIONSHIP │
│ ╱ REL. ╲ │ Diamond / belah ketupat │
│ ╲ ╱ │ Contoh: mengambil, membuat, berisi │
│ ╲─────╱ │ │
├──────────────────────┼──────────────────────────────────────────┤
│ ╔══════╗ │ IDENTIFYING RELATIONSHIP │
│ ╔╬══════╬╗ │ Double diamond / belah ketupat ganda │
│ ╚╬══════╬╝ │ Menghubungkan weak entity ke owner-nya │
│ ╚══════╝ │ │
├──────────────────────┼──────────────────────────────────────────┤
│ ╭───╮ │ ATTRIBUTE (Simple) │
│ │attr│ │ Ellipse / oval │
│ ╰───╯ │ Contoh: Nama, Harga, Tanggal │
├──────────────────────┼──────────────────────────────────────────┤
│ ╭───────╮ │ MULTIVALUED ATTRIBUTE │
│ ╭┤ attr ├╮ │ Double ellipse / oval ganda │
│ ╰┤ ├╯ │ Contoh: Nomor_HP, Keahlian │
│ ╰───────╯ │ │
├──────────────────────┼──────────────────────────────────────────┤
│ ╭ ─ ─ ╮ │ DERIVED ATTRIBUTE │
│ │ attr │ │ Dashed ellipse / oval putus-putus │
│ ╰ ─ ─ ╯ │ Contoh: Umur, Total, Rating_Rata │
├──────────────────────┼──────────────────────────────────────────┤
│ ╭───╮ │ KEY ATTRIBUTE (Primary Key) │
│ │attr│ │ Ellipse dengan nama atribut digarisbawahi│
│ ╰───╯ │ Contoh: NIM, Kode_Produk │
│ ‾‾‾‾ │ │
├──────────────────────┼──────────────────────────────────────────┤
│ ╭──╮ │ PARTIAL KEY (Weak Entity Key) │
│ │key│ │ Ellipse dengan nama atribut bergaris │
│ ╰──╯ │ putus-putus di bawahnya │
│ ╌╌╌ │ │
└──────────────────────┴──────────────────────────────────────────┘Contoh Lengkap ERD Chen — Sistem Sederhana Perpustakaan:
╭────╮ ╭──────────╮ ╭──────────╮
│ NIM │ │ Nama │ │ Angkatan │
╰──┬─╯ ╰────┬─────╯ ╰────┬─────╯
│ │ │
┌──┴─────────┴──────────────┴──┐
│ MAHASISWA │
└──────────────┬───────────────┘
│ M
╱────┴───╲
╱ meminjam ╲
╲ ╱
╲────┬───╱
│ N ╭──────────────╮
┌──────────────┴──────┐ │ Tanggal_Pinjam│
│ BUKU │ ╰──────────────╯
└──────────────┬──────┘ ╭───────────────╮
╭──────╮ ╭────┴──╮ │ Tanggal_Kembali│
│ ISBN │ │ Judul │ ╰───────────────╯
╰──────╯ ╰───────╯
(atribut di relationship "meminjam": Tanggal_Pinjam, Tanggal_Kembali)Cara Membaca Kardinalitas di Chen:
- Angka atau huruf ditulis di dekat garis yang menghubungkan entity ke relationship
1berarti "satu",NatauMberarti "banyak"- Dibaca dari entity ke arah relationship: "Satu MAHASISWA dapat meminjam banyak (N) BUKU"
C.2.2 Crow's Foot Notation
Crow's Foot (atau disebut juga Information Engineering Notation) adalah notasi yang lebih banyak digunakan di industri dan dalam tools seperti MySQL Workbench dan Draw.io. Notasi ini lebih compact dan lebih intuitif untuk menunjukkan kardinalitas. Nama "Crow's Foot" berasal dari simbol tiga cabang yang menyerupai kaki gagak untuk menandai sisi "many" pada sebuah relationship.
Referensi Visual: Untuk melihat ilustrasi lengkap simbol Crow's Foot Notation beserta contoh visualnya, baca artikel Redgate: Crow's Foot Notation (opens in a new tab). Artikel ini menampilkan gambar simbol entity, atribut, serta semua varian kardinalitas (zero-or-many, one-or-many, one-and-only-one, zero-or-one) dalam notasi Crow's Foot.
Simbol-Simbol Crow's Foot:
┌─────────────────────────────────────────────────────────────────┐
│ SIMBOL CROW'S FOOT NOTATION │
├─────────────────────────────────────────────────────────────────┤
│ ENTITY → Kotak/rectangle dengan nama di dalam │
│ │
│ Atribut → Listed di dalam kotak entity (berbeda dari Chen) │
│ Format: [PK] nama_atribut : tipe │
│ │
│ RELATIONSHIP → Garis yang menghubungkan dua entity │
│ Nama relationship ditulis di atas/bawah garis │
└─────────────────────────────────────────────────────────────────┘
SIMBOL KARDINALITAS (dibaca dari ujung garis ke entity):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
──| → EXACTLY ONE (tepat satu)
Satu garis vertikal tegak
──< → MANY (banyak / satu atau lebih)
Tiga garis seperti kaki gagak (crow's foot)
──o| → ZERO OR ONE (nol atau satu / opsional-satu)
Lingkaran + garis vertikal
──o< → ZERO OR MANY (nol atau banyak / opsional-banyak)
Lingkaran + kaki gagak
──|| → ONE AND ONLY ONE (tepat satu, wajib)
Dua garis vertikal
──|< → ONE OR MANY (satu atau lebih, wajib)
Garis vertikal + kaki gagak
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CARA MEMBACA:
Simbol dibaca dari kanan ke kiri (dari entity ke pusat garis):
Simbol di sisi entity → berapa banyak instance entity TERSEBUT
yang terlibat dalam relationshipContoh Pembacaan Crow's Foot:
Kasus 1: Satu DEPARTEMEN memiliki banyak KARYAWAN (wajib)
Setiap KARYAWAN harus berada di tepat satu DEPARTEMEN (wajib)
DEPARTEMEN ||──────────|< KARYAWAN
↑ ↑
"tepat satu" "satu atau banyak"
Dibaca dari KARYAWAN: "Setiap KARYAWAN berada di tepat satu DEPARTEMEN"
Dibaca dari DEPARTEMEN: "Setiap DEPARTEMEN memiliki satu atau banyak KARYAWAN"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Kasus 2: Mahasiswa mengambil mata kuliah (banyak ke banyak, keduanya opsional)
Mahasiswa boleh belum ambil MK (baru daftar), MK boleh belum ada peminat
MAHASISWA o<──────────o< MATA_KULIAH
↑ ↑
"nol atau banyak" "nol atau banyak"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Kasus 3: Karyawan boleh punya mobil dinas atau tidak (1:1 opsional di satu sisi)
Mobil dinas pasti milik tepat satu karyawan (tidak boleh berbagi)
KARYAWAN ||──────────o| MOBIL_DINAS
↑ ↑
"tepat satu" "nol atau satu"
Dibaca dari MOBIL_DINAS: "Setiap MOBIL_DINAS dimiliki oleh tepat satu KARYAWAN"
Dibaca dari KARYAWAN: "Setiap KARYAWAN boleh tidak punya atau punya satu MOBIL_DINAS"Format Entity di Crow's Foot (dalam tools):
┌──────────────────────────┐
│ MAHASISWA │ ← Nama Entity (header)
├──────────────────────────┤
│ PK │ nim │ CHAR(10) │ ← Primary Key (bold/italic)
├──────────────────────────┤
│ │ nama │ VARCHAR │
│ │ tgl_lahir│ DATE │
│ │ email │ VARCHAR │
│ FK │ prodi_id │ INT │ ← Foreign Key
└──────────────────────────┘C.2.3 Perbandingan Chen vs Crow's Foot
| Aspek | Chen Notation | Crow's Foot |
|---|---|---|
| Representasi Atribut | Oval terpisah (lebih visual) | Daftar di dalam kotak entity |
| Representasi Relationship | Diamond terpisah | Garis langsung antar entity |
| Kardinalitas | Angka di dekat garis | Simbol di ujung garis (lebih visual) |
| Weak Entity | Double rectangle | Biasanya dengan label/notasi khusus |
| Popularitas Akademik | Sangat tinggi | Sedang |
| Popularitas Industri | Sedang | Sangat tinggi |
| Tools | Draw.io | MySQL Workbench, Draw.io |
| Keterbacaan Diagram Besar | Bisa padat/ramai (banyak oval) | Lebih compact dan rapi |
| Cocok untuk | Pembelajaran konsep, dokumen akademik | Dokumentasi teknis, implementasi |
Rekomendasi Kelas: Kita akan belajar keduanya. Untuk latihan konseptual dan tugas akademik, gunakan Chen notation. Untuk proyek semester dan pekerjaan yang lebih dekat ke implementasi, gunakan Crow's Foot. Di industri, Crow's Foot jauh lebih umum.
C.3 Materi 2: Kardinalitas dan Participation Constraint
Dua konsep yang sangat penting dan sering membingungkan: kardinalitas (berapa banyak) dan participation (apakah wajib).
C.3.1 Kardinalitas (Cardinality)
Kardinalitas menggambarkan berapa banyak instance dari satu entity yang dapat berasosiasi dengan berapa banyak instance dari entity lain.
Tiga Jenis Kardinalitas Dasar:
1. ONE-TO-ONE (1:1)
Satu instance A ↔ tepat satu instance B
Contoh: MAHASISWA ──── KTM
(Satu mahasiswa memiliki tepat satu KTM; satu KTM milik satu mahasiswa)
Pertanyaan diagnostik:
"Bisakah satu mahasiswa punya 2 KTM?" → Tidak → sisi mahasiswa: 1
"Bisakah satu KTM dimiliki 2 mahasiswa?" → Tidak → sisi KTM: 1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2. ONE-TO-MANY (1:N)
Satu instance A ↔ banyak instance B
Satu instance B ↔ tepat satu instance A
Contoh: DEPARTEMEN ──── KARYAWAN
(Satu departemen punya banyak karyawan; satu karyawan di satu departemen)
Contoh lain dari kehidupan nyata:
- IBU ──── ANAK (satu ibu → banyak anak; satu anak → satu ibu kandung)
- PENULIS ──── BUKU (satu penulis → banyak buku; satu buku → satu penulis)
- KATEGORI ──── PRODUK (satu kategori → banyak produk)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3. MANY-TO-MANY (M:N)
Satu instance A ↔ banyak instance B
Satu instance B ↔ banyak instance A
Contoh: MAHASISWA ──── MATA_KULIAH
(Satu mahasiswa ambil banyak MK; satu MK diambil banyak mahasiswa)
Contoh lain:
- PENULIS ──── BUKU (buku bisa multi-penulis; penulis bisa multi-buku)
- DOKTER ──── PASIEN (satu dokter tangani banyak pasien; satu pasien bisa ke banyak dokter)
- AKTOR ──── FILM (satu aktor main di banyak film; satu film punya banyak aktor)Teknik Menentukan Kardinalitas — "The Two-Question Method":
Untuk menentukan kardinalitas antara Entity A dan Entity B, tanyakan dua pertanyaan:
PERTANYAAN 1: "Berapa banyak instance B yang dapat dihubungkan
dengan SATU instance A tertentu?"
→ Jawaban ini menentukan sisi B (banyak atau satu)
PERTANYAAN 2: "Berapa banyak instance A yang dapat dihubungkan
dengan SATU instance B tertentu?"
→ Jawaban ini menentukan sisi A (banyak atau satu)
CONTOH: PENULIS dan ARTIKEL di sebuah jurnal ilmiah
Q1: "Berapa banyak ARTIKEL yang bisa ditulis oleh satu PENULIS?"
A1: "Banyak" → sisi ARTIKEL = N (many)
Q2: "Berapa banyak PENULIS yang bisa menulis satu ARTIKEL?"
A2: "Bisa lebih dari satu (co-authorship)" → sisi PENULIS = M (many)
Hasil: PENULIS ──M:N── ARTIKELC.3.2 Participation Constraint (Batasan Partisipasi)
Participation constraint menentukan apakah setiap instance dari sebuah entity wajib berpartisipasi dalam relationship. Ada dua jenis:
Total Participation (Mandatory / Wajib)
Setiap instance dari entity HARUS berpartisipasi dalam relationship. Tidak boleh ada instance yang "berdiri sendiri" tanpa relasi.
- Di Chen notation: digambarkan dengan garis ganda (double line)
- Di Crow's Foot: simbol di ujung garis tidak mengandung lingkaran
o - Kata kunci dalam business rules: "harus", "wajib", "setiap...pasti..."
Contoh Total Participation:
"Setiap KARYAWAN HARUS bekerja di satu DEPARTEMEN"
→ KARYAWAN memiliki total participation terhadap DEPARTEMEN
"Setiap item PESANAN HARUS merujuk ke satu PRODUK"
→ ITEM_PESANAN memiliki total participation terhadap PRODUKPartial Participation (Optional / Opsional)
Instance dari entity BOLEH tidak berpartisipasi dalam relationship. Ada instance yang tidak memiliki relasi, dan itu diperbolehkan.
- Di Chen notation: digambarkan dengan garis tunggal biasa
- Di Crow's Foot: simbol di ujung garis mengandung lingkaran
o - Kata kunci: "boleh", "bisa", "mungkin", "opsional"
Contoh Partial Participation:
"MAHASISWA boleh belum mengajukan skripsi"
→ MAHASISWA memiliki partial participation terhadap SKRIPSI
"PRODUK boleh belum masuk ke keranjang belanja manapun"
→ PRODUK memiliki partial participation terhadap KERANJANG
"KARYAWAN boleh tidak punya jabatan manajerial"
→ KARYAWAN memiliki partial participation terhadap peran MANAJERC.3.3 Menggabungkan Kardinalitas dan Participation
Dengan menggabungkan keduanya, kita bisa mengekspresikan constraint yang lebih kaya:
FORMAT NOTASI CHEN: (min, max)
Di sisi setiap entity ditulis pasangan (minimum, maksimum):
(0,1) = opsional, maksimal satu → partial participation, one
(1,1) = wajib, tepat satu → total participation, one
(0,N) = opsional, bisa banyak → partial participation, many
(1,N) = wajib, paling sedikit satu → total participation, many
CONTOH:
MAHASISWA (1,N) ──mengambil── (0,N) MATA_KULIAH
Dibaca dari MAHASISWA: "Satu mahasiswa mengambil minimal 1, maksimal N mata kuliah"
Dibaca dari MATA_KULIAH: "Satu mata kuliah diambil minimal 0 (boleh kosong), maksimal N mahasiswa"Tabel Kombinasi Kardinalitas + Participation:
| Kardinalitas | Participation A | Participation B | Contoh |
|---|---|---|---|
| 1:1 | Total | Total | Negara ↔ Ibu Kota |
| 1:1 | Partial | Partial | Karyawan ↔ Mobil Dinas |
| 1:N | Total (N) | Total (1) | Karyawan ↔ Departemen |
| 1:N | Partial (N) | Total (1) | Produk ↔ Kategori |
| M:N | Total | Total | Mahasiswa ↔ MK (semester aktif) |
| M:N | Partial | Partial | Penulis ↔ Artikel (bisa belum punya) |
C.4 Materi 3: Weak Entity dalam ERD
C.4.1 Recap: Definisi Weak Entity
Dari pertemuan 3, kita ingat bahwa weak entity adalah entity yang:
- Tidak memiliki atribut yang bisa menjadi identifier unik secara mandiri
- Bergantung pada identifying entity (strong entity) untuk keberadaan dan identitasnya
- Memiliki partial key (discriminator) — atribut yang unik hanya dalam konteks entity induknya
C.4.2 Komponen Weak Entity dalam ERD
Dalam Chen notation, weak entity memiliki representasi khusus:
KOMPONEN WEAK ENTITY DI CHEN NOTATION:
1. WEAK ENTITY → Double Rectangle (kotak ganda)
╔══════════════╗
║ NAMA_ENTITY ║
╚══════════════╝
2. IDENTIFYING RELATIONSHIP → Double Diamond (berlian ganda)
╔═══════════════╗
║ nama_relasi ║
╚═══════════════╝
3. PARTIAL KEY → Atribut dengan nama bergaris putus-putus di bawah
╭───────────╮
│ nama_attr │
╰───────────╯
╌╌╌╌╌╌╌╌╌╌╌ (dashed underline)
4. Garis penghubung ke identifying entity selalu TOTAL PARTICIPATION
(double line dari weak entity ke identifying relationship)Contoh Lengkap — PESANAN dan ITEM_PESANAN:
Narasi:
"Setiap pesanan terdiri dari satu atau lebih item.
Setiap item hanya ada dalam konteks satu pesanan tertentu.
Item diidentifikasi dengan nomor urut dalam pesanan tersebut
(item ke-1, ke-2, ke-3, dst.)."
ERD (Chen Notation):
╭─────────────╮ ╭──────────╮ ╭──────────╮
│ ID_Pesanan │ │ Tanggal │ │ Status │
╰──────┬──────╯ ╰────┬─────╯ ╰────┬─────╯
│ │ │
┌────┴──────────────┴──────────────┴────┐
│ PESANAN │ ← Strong Entity
└────────────────────┬──────────────────┘
║ 1 ← total participation
╔════╬════╗
║ berisi ║ ← Identifying Relationship (double diamond)
╚════╬════╝
║ N ← total participation dari ITEM_PESANAN
╔════════════════════╬═══════════════════╗
║ ITEM_PESANAN ║ ← Weak Entity (double rectangle)
╚════════════════════╬═══════════════════╝
│ │ │
╭──────────╮ ╭────────────╮ ╭────────────╮
│ Nomor_ │ │ ID_Produk │ │ Kuantitas │
│ Urut_Item│ │ │ │ │
╰──────────╯ ╰────────────╯ ╰────────────╯
╌╌╌╌╌╌╌╌╌╌ (partial key)
Partial Key: Nomor_Urut_Item
→ Dalam Pesanan #001: Item ke-1, Item ke-2, Item ke-3
→ Dalam Pesanan #002: Item ke-1, Item ke-2 (BERBEDA dengan di atas!)
→ Identifier lengkap: (ID_Pesanan, Nomor_Urut_Item)Contoh Lain Weak Entity:
1. TANGGUNGAN (Weak) bergantung pada KARYAWAN (Strong)
Partial Key: Nama_Tanggungan
Identifier: (ID_Karyawan, Nama_Tanggungan)
→ "Anak bernama 'Budi' dari Karyawan ID=K001" ≠
"Anak bernama 'Budi' dari Karyawan ID=K002"
2. RUANG (Weak) bergantung pada GEDUNG (Strong)
Partial Key: Nomor_Ruang
Identifier: (ID_Gedung, Nomor_Ruang)
→ "Ruang 101 di Gedung A" ≠ "Ruang 101 di Gedung B"
3. PERTANYAAN (Weak) bergantung pada KUIS (Strong)
Partial Key: Nomor_Soal
Identifier: (ID_Kuis, Nomor_Soal)
→ "Soal no. 5 pada Kuis UTS" ≠ "Soal no. 5 pada Kuis UAS"C.4.3 Aturan Penting Weak Entity
✅ ATURAN YANG HARUS DIPERHATIKAN:
1. Weak entity selalu memiliki TOTAL PARTICIPATION terhadap
identifying entity (karena tanpa entity induk, weak entity
tidak bisa eksis).
2. Garis dari weak entity ke identifying relationship
digambar GANDA (double line) untuk menunjukkan total participation.
3. Jika identifying entity dihapus (DELETE), semua weak entity
yang bergantung padanya ikut terhapus (CASCADE DELETE).
Contoh: Hapus Pesanan → hapus semua Item_Pesanan
4. Satu weak entity bisa bergantung pada lebih dari satu
identifying entity (dalam kasus ternary identifying relationship).C.5 Materi 4: Generalisasi dan Spesialisasi (Hierarki ISA)
C.5.1 Konsep Dasar
Generalisasi dan Spesialisasi adalah dua cara pandang terhadap hierarki entity yang saling berlawanan arah:
- Spesialisasi (top-down): Mulai dari entity umum (supertype), kemudian dibuat subtype yang lebih spesifik. "Dari ORANG, kita turunkan MAHASISWA dan DOSEN."
- Generalisasi (bottom-up): Mulai dari entity spesifik, kemudian diidentifikasi kesamaan dan digabung ke supertype. "MAHASISWA dan DOSEN memiliki banyak kesamaan — kita buat supertype ORANG."
Hasil akhirnya sama: hierarki ISA (IS-A), yang menyatakan bahwa "MAHASISWA IS-A ORANG" dan "DOSEN IS-A ORANG".
C.5.2 Konsep Inheritance
Dalam hierarki ISA, subtype mewarisi (inherits) semua atribut dan relationship dari supertype-nya. Subtype kemudian menambahkan atribut dan relationship spesifik miliknya sendiri.
CONTOH:
ORANG (Supertype)
├── Atribut: NIK, Nama, Tanggal_Lahir, Jenis_Kelamin, Alamat
├── Relationship: bertempat_tinggal_di KOTA
ISA ┌─────────────────────────────┐
│ │
MAHASISWA (Subtype) DOSEN (Subtype)
├── Mewarisi: NIK, Nama, ├── Mewarisi: NIK, Nama,
│ Tgl_Lahir, dll. │ Tgl_Lahir, dll.
├── Tambahan: NIM, Prodi, ├── Tambahan: NIP, Spesialisasi,
│ Tahun_Masuk, IPK │ Jabatan_Fungsional
└── Tambahan rel: mengambil MK └── Tambahan rel: mengampu MKC.5.3 Constraint Hierarki ISA
Ada dua dimensi constraint yang perlu ditentukan untuk setiap hierarki ISA:
Dimensi 1: Disjoint vs Overlapping
DISJOINT (exclusive / saling eksklusif):
Satu instance HANYA bisa menjadi anggota dari SATU subtype.
Contoh:
PRODUK → { PRODUK_FISIK, PRODUK_DIGITAL }
Sebuah produk tidak bisa sekaligus fisik dan digital.
Notasi di ERD: "d" di dalam lingkaran pada hierarki ISA
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OVERLAPPING (non-exclusive / bisa tumpang tindih):
Satu instance BISA menjadi anggota dari LEBIH DARI SATU subtype.
Contoh:
ORANG → { MAHASISWA, DOSEN, STAF }
Seseorang bisa sekaligus berstatus mahasiswa DAN dosen tidak tetap.
Contoh lain:
KARYAWAN → { INSINYUR, MANAJER }
Seorang insinyur senior bisa merangkap sebagai manajer tim.
Notasi di ERD: "o" di dalam lingkaran pada hierarki ISADimensi 2: Total vs Partial Specialization
TOTAL SPECIALIZATION (complete):
Setiap instance supertype HARUS menjadi anggota minimal satu subtype.
Tidak ada instance supertype yang "tidak punya subtype".
Contoh:
ORANG → { LAKI_LAKI, PEREMPUAN }
Setiap orang PASTI adalah salah satu (atau keduanya dalam kasus khusus).
AKUN → { AKUN_TABUNGAN, AKUN_GIRO, AKUN_DEPOSITO }
Setiap akun bank pasti memiliki tipe tertentu.
Notasi: Garis ganda dari supertype ke lingkaran ISA
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PARTIAL SPECIALIZATION (incomplete):
Instance supertype BOLEH tidak memiliki subtype.
Ada instance yang hanya ada di level supertype saja.
Contoh:
ORANG → { MAHASISWA, DOSEN }
Ada orang (misalnya: staf kebersihan) yang bukan mahasiswa maupun dosen.
KENDARAAN → { MOBIL, MOTOR }
Ada kendaraan lain (sepeda, kapal) yang tidak tercakup subtype manapun.
Notasi: Garis tunggal dari supertype ke lingkaran ISARepresentasi ERD Hierarki ISA:
NOTASI HIERARKI ISA (Chen-style):
┌─────────────┐
│ ORANG │ ← Supertype
└──────┬──────┘
│
╭──────┴──────╮
│ ISA / {o} │ → "o" = overlapping
╰──────┬──────╯ → garis ganda = total specialization
╔════╝════╗
║ ║
┌──────┴──┐ ┌───┴──────┐
│MAHASISWA│ │ DOSEN │ ← Subtypes
└─────────┘ └──────────┘
EMPAT KOMBINASI CONSTRAINT:
{d, total} = Disjoint + Total → Setiap instance masuk tepat satu subtype
{d, partial} = Disjoint + Partial → Instance boleh tidak punya subtype, jika punya hanya satu
{o, total} = Overlapping + Total → Setiap instance masuk minimal satu subtype (bisa lebih)
{o, partial} = Overlapping + Partial → Instance boleh tidak punya subtype, jika punya bisa lebihContoh Nyata Empat Kombinasi:
{d, total} — AKUN BANK:
Setiap akun PASTI salah satu tipe, tidak bisa dua tipe sekaligus.
AKUN → { TABUNGAN | GIRO | DEPOSITO }
{d, partial} — KENDARAAN (di sistem transportasi umum):
Tidak semua kendaraan terdaftar sebagai kendaraan umum.
Jika terdaftar, hanya satu tipe.
KENDARAAN → { BUS | ANGKOT | OJEK_ONLINE }
{o, total} — PERAN SISTEM:
Setiap user PASTI punya minimal satu peran, bisa punya lebih.
USER → { ADMIN | PENULIS | PEMBACA }
{o, partial} — ORANG dalam konteks akademik:
Seseorang boleh tidak punya peran di sistem.
Jika punya, bisa lebih dari satu.
ORANG → { MAHASISWA | DOSEN | ALUMNI }C.6 Materi 5: Best Practices Menggambar ERD
Sebuah ERD yang benar secara teknis belum tentu baik secara komunikasi. Best practices berikut membantu menghasilkan ERD yang tidak hanya akurat, tetapi juga mudah dibaca dan dipelihara.
C.6.1 Konvensi Penamaan
ENTITY:
✓ Gunakan kata benda tunggal (singular noun)
✓ Huruf kapital semua atau CamelCase
✓ Deskriptif dan tidak ambigu
✓ Hindari singkatan yang tidak umum
Baik: MAHASISWA, PRODUK, PESANAN, JADWAL_KELAS
Buruk: mhs, Prods, order, JdwlKls
RELATIONSHIP:
✓ Gunakan kata kerja aktif (verb phrase)
✓ Bisa dibaca dari kiri ke kanan
✓ Mencerminkan makna bisnis yang sesungguhnya
Baik: mengambil, membuat, berisi, mengampu, mendaftar_ke
Buruk: hubungan, relasi, terkait, ada_di
ATRIBUT:
✓ Kata benda, deskriptif, tidak ambigu
✓ Hindari nama yang terlalu generik
✓ Konsisten dalam penggunaan bahasa (Indonesia atau Inggris, pilih satu)
Baik: tanggal_lahir, harga_satuan, status_pesanan
Buruk: tgl, harga, status (terlalu generik)C.6.2 Layout dan Keterbacaan
TIPS LAYOUT ERD:
✓ Minimalkan garis silang (crossing lines)
→ Tempatkan entity yang sering berhubungan berdekatan
→ Gunakan fitur auto-layout pada tools sebagai titik awal
✓ Hierarchy dari atas ke bawah atau kiri ke kanan
→ Entity utama/pusat di tengah
→ Entity pendukung di sekitarnya
✓ Ukuran dan jarak yang konsisten
→ Semua entity dengan ukuran yang seragam
→ Jarak antar entity yang cukup agar tidak berjubel
✓ Label yang terbaca
→ Font cukup besar untuk dibaca
→ Hindari label yang terpotong
✓ Gunakan warna dengan bijak (opsional)
→ Satu warna per kategori entity (mis: hijau = master, biru = transaksi)
→ Jangan terlalu banyak warna — menggangu, bukan membantuC.6.3 Kesalahan Umum yang Harus Dihindari
❌ KESALAHAN 1: Atribut yang Seharusnya Menjadi Entity
SALAH:
PESANAN ──── atribut: Nama_Produk, Harga_Produk, Stok_Produk
BENAR:
PESANAN ──── PRODUK (relasi M:N dengan ITEM_PESANAN sebagai bridge)
Tanda bahaya: Jika sebuah "atribut" punya sub-atributnya sendiri
atau punya relasi ke hal lain → kemungkinan besar harus jadi entity.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❌ KESALAHAN 2: Entity yang Seharusnya Menjadi Atribut
SALAH: Membuat entity STATUS dengan instance: "Aktif", "Non-aktif", "Cuti"
BENAR: STATUS adalah atribut (enum) di entity MAHASISWA
Tanda bahaya: Jika entity hanya punya 1-2 atribut dan nilainya
terbatas (enum) → mungkin lebih tepat sebagai atribut.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❌ KESALAHAN 3: Relationship Redundan
SALAH:
MAHASISWA ──mengambil── MATA_KULIAH
MAHASISWA ──belajar── MATA_KULIAH (dua relationship untuk hal yang sama!)
BENAR: Hanya satu relationship yang mewakili koneksi tersebut.
Jika ada perbedaan makna → definisikan dengan jelas dan beri nama berbeda.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❌ KESALAHAN 4: Kardinalitas Terbalik
SALAH: KARYAWAN (1) ── bekerja_di ── (N) DEPARTEMEN
(menyatakan: satu karyawan bekerja di banyak departemen — umumnya tidak benar)
BENAR: KARYAWAN (N) ── bekerja_di ── (1) DEPARTEMEN
(satu departemen punya banyak karyawan, satu karyawan di satu departemen)
Tip: Selalu verifikasi dengan "two-question method" (lihat C.3.1)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❌ KESALAHAN 5: Mengabaikan Participation Constraint
SALAH: Menggambar semua garis sebagai partial participation tanpa dipikirkan
BENAR: Setiap sisi relationship harus dipikirkan apakah total atau partial
berdasarkan business rules dari pertemuan 2.
Contoh: "Setiap pesanan HARUS memiliki minimal 1 item"
→ PESANAN memiliki total participation terhadap ITEM_PESANAN.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❌ KESALAHAN 6: Lupa Relationship Attribute
SALAH: Menaruh "Nilai" sebagai atribut MAHASISWA atau MATA_KULIAH
BENAR: "Nilai" adalah atribut dari relationship MENGAMBIL antara
MAHASISWA dan MATA_KULIAH, karena nilai baru ada saat ada kombinasi
"mahasiswa tertentu mengambil MK tertentu".C.7 Studi Kasus Komprehensif: ERD Sistem E-Commerce "BatikNusantara"
C.7.1 Narasi Bisnis
BatikNusantara adalah platform jual-beli online produk batik UMKM. Penjual adalah UMKM yang mendaftar dan menjual produk mereka. Pembeli adalah konsumen yang mendaftar dan membeli produk. Setiap produk dikategorikan dan bisa memiliki beberapa foto. Pembeli bisa memasukkan produk ke keranjang belanja sebelum checkout. Setiap pesanan bisa berisi banyak item produk. Setelah transaksi selesai, pembeli bisa memberikan ulasan (rating dan teks) untuk produk yang dibeli.
C.7.2 Daftar Entity, Atribut, dan Relationship (dari hasil pertemuan 3)
ENTITY:
PEMBELI - ID_Pembeli (PK), Nama, Email, Nomor_HP, Alamat
PENJUAL - ID_Penjual (PK), Nama_Toko, Email, Nomor_HP, NPWP
PRODUK - ID_Produk (PK), Nama, Deskripsi, Harga, Stok
KATEGORI - ID_Kategori (PK), Nama_Kategori
FOTO_PRODUK - (weak entity) Nomor_Urut (partial key), URL, Keterangan
PESANAN - ID_Pesanan (PK), Tanggal, Status, Total_Bayar
ITEM_PESANAN - (weak entity) Nomor_Item (partial key), Qty, Harga_Saat_Pesan
ULASAN - ID_Ulasan (PK), Rating, Teks_Ulasan, Tanggal
RELATIONSHIP:
PEMBELI – membuat – PESANAN (1:N, total dari PESANAN)
PESANAN – berisi – ITEM_PESANAN (1:N, weak entity)
PRODUK – masuk_ke – ITEM_PESANAN (1:N, total dari ITEM_PESANAN)
PENJUAL – menjual – PRODUK (1:N, total dari PRODUK)
PRODUK – dikategorikan_di – KATEGORI (M:N)
PRODUK – memiliki – FOTO_PRODUK (1:N, weak entity)
PEMBELI – menulis – ULASAN (1:N)
PRODUK – menerima – ULASAN (1:N)C.7.3 Representasi ERD Tekstual (Chen Notation)
DIAGRAM ERD BATIK NUSANTARA (tekstual/ASCII-art):
╭───────╮ ╭───────╮ ╭──────╮ ╭────────────╮ ╭────────────╮
│Email │ │ Nama │ │ Stok │ │ID_Penjual │ │Nama_Toko │
╰───┬───╯ ╰───┬───╯ ╰───┬──╯ ╰─────┬──────╯ ╰─────┬──────╯
│ │ │ │ │
┌───┴─────────┴──────────┴────┐ ┌──────┴───────────────┴──┐
│ PRODUK │ │ PENJUAL │
└───────────────┬─────────────┘ └──────────────┬───────────┘
╭──────┤ 1 │ 1
│ │ ╱──────┴──╲
╱────┴──╲ └──────────────────────────╲ menjual ╱
╲dikate-╱ ╱──────────╲
╱ gorikan╲ ← M:N ║ N (total)
╲ ╱ ┌──────╨───────────┐
╱────────╲ │ PRODUK │
│ N └──────────────────┘
┌────────┴─────────┐ [dilanjutkan di bawah]
│ KATEGORI │
└──────────────────┘
[PRODUK – lanjutan koneksi]
PRODUK (1) ──memiliki──(N, total)── ╔══════════╗
║FOTO_PRODUK║ ← weak entity
╚══════════╝
PRODUK (1) ──menerima──(N)── ULASAN ──menulis──(N) ── PEMBELI (1)
PEMBELI (1) ──membuat──(N, total)── PESANAN ──berisi──(N, total)── ╔══════════════╗
║ ITEM_PESANAN ║ ← weak entity
╚══════════════╝
║(total)
PRODUK ──masuk_ke──(N)C.7.4 Crow's Foot Representation
CROW'S FOOT — ENTITAS DAN RELASINYA:
┌─────────────┐ ┌─────────────┐
│ KATEGORI │ │ PENJUAL │
├─────────────┤ ├─────────────┤
│PK│id_kat │ │PK│id_penjual│
│ │nama_kat │ │ │nama_toko │
└──────┬──────┘ │ │email │
│ └──────┬──────┘
│ o< │ ||
│ │ |<
┌──────┴──────────────────┐ │
│ PRODUK │◄───┘
├─────────────────────────┤
│PK│id_produk │
│ │nama │ ┌──────────────┐
│ │deskripsi │ │ FOTO_PRODUK │ (weak)
│ │harga │||──────|<├──────────────┤
│ │stok │ │PK│id_foto │
│FK│id_penjual │ │ │nomor_urut │
└──────┬───────────────┬──┘ │ │url │
│ │ └──────────────┘
│|| │||
│|< │|<
│ │
┌──────┴──────┐ ┌──────┴──────┐
│ ULASAN │ │ ITEM_PESANAN│ (weak)
├─────────────┤ ├─────────────┤
│PK│id_ulasan │ │PK│id_item │
│ │rating │ │ │nomor_item│
│ │teks │ │ │qty │
│ │tanggal │ │ │harga_saat│
│FK│id_pembeli│ │FK│id_pesanan│
│FK│id_produk │ │FK│id_produk │
└──────┬──────┘ └──────┬──────┘
│ │
│ o< │ ||
│ │ |<
┌──────┴──────┐ ┌──────┴──────┐
│ PEMBELI │ │ PESANAN │
├─────────────┤ ├─────────────┤
│PK│id_pembeli│ │PK│id_pesanan│
│ │nama │ │ │tanggal │
│ │email │ │ │status │
│ │nomor_hp │ │ │total_bayar│
│ │alamat │ │FK│id_pembeli│
└─────────────┘ └─────────────┘D. PRAKTIKUM TERBIMBING
D.1 Latihan: Baca dan Interpretasi ERD (Berpasangan, 10 menit)
Perhatikan diagram ERD berikut (tekstual) dan jawab pertanyaan di bawahnya:
ERD SISTEM PERPUSTAKAAN DIGITAL
ANGGOTA ||────────────o< PEMINJAMAN >o────────────|| BUKU
"melakukan" "melibatkan"
PEMINJAMAN memiliki atribut: ID_Pinjam, Tgl_Pinjam, Tgl_Kembali, Status
BUKU memiliki: Kode_Buku (PK), Judul, Penulis, Tahun_Terbit
ANGGOTA memiliki: ID_Anggota (PK), Nama, Email, Status_Anggota
BUKU ||──────────|< EKSEMPLAR (weak entity)
"memiliki" Partial key: Nomor_Eksemplar
PENULIS o<─────────o< BUKU
"menulis"Pertanyaan:
- Bisa kah seorang ANGGOTA yang belum pernah meminjam tetap terdaftar di sistem? Tunjukkan simbol yang mendukung jawabanmu!
- Bisa kah satu BUKU tidak ditulis oleh PENULIS manapun di sistem? Tunjukkan simbol yang mendukung!
- Apa makna bisnis dari EKSEMPLAR sebagai weak entity? Mengapa EKSEMPLAR tidak bisa berdiri sendiri?
- Sebuah buku yang sama ditulis oleh tiga penulis berbeda. Penulis yang sama juga menulis buku lain. Apakah kardinalitas
PENULIS o<──o< BUKUsudah benar? Jelaskan! - Jika seorang ANGGOTA dihapus dari sistem, apa yang terjadi dengan data PEMINJAMAN-nya? Apa implikasi terhadap desain?
D.2 Praktikum: Gambar ERD dengan Tools (Individual, 25 menit)
Instruksi: Gunakan Draw.io untuk menggambar ERD dari narasi berikut. Gunakan Crow's Foot notation.
NARASI: Sistem Manajemen Klinik "Medika Prima"
Klinik Medika Prima memiliki beberapa dokter dengan spesialisasi masing-masing. Pasien mendaftar dengan data diri lengkap dan mendapatkan nomor rekam medis. Setiap kunjungan pasien ke dokter dicatat sebagai satu sesi pemeriksaan. Dalam satu kunjungan, dokter bisa meresepkan beberapa obat dengan dosis dan aturan pakai tertentu. Stok obat dikelola oleh apotek klinik.
Ketentuan bisnis yang relevan:
- Setiap dokter harus terdaftar di minimal satu spesialisasi
- Satu pasien bisa ditangani oleh banyak dokter (di kunjungan berbeda)
- Satu dokter bisa menangani banyak pasien
- Setiap kunjungan PASTI ditangani oleh tepat satu dokter
- Setiap kunjungan PASTI milik tepat satu pasien
- Resep obat hanya ada dalam konteks satu kunjungan (weak entity)
- Satu obat bisa diresepkan di banyak kunjungan berbeda
- Kunjungan boleh tanpa resep (dokter hanya konsultasi)
Yang Harus Digambar:
- Semua entity (strong dan weak) dengan atributnya
- Semua relationship dengan nama yang tepat
- Kardinalitas yang benar di setiap sisi relationship
- Participation constraint (mandatory/optional) yang sesuai business rules
- Weak entity dengan identifying relationship
Panduan Pengerjaan Bertahap:
LANGKAH 1 (3 menit): Identifikasi semua entity dari narasi
Entity kandidat: ________________________________
LANGKAH 2 (3 menit): Tentukan mana strong dan weak entity
Weak entity: ____________________________________
Alasan: _________________________________________
LANGKAH 3 (5 menit): Tentukan atribut dan PK setiap entity
LANGKAH 4 (5 menit): Tentukan semua relationship + kardinalitas
LANGKAH 5 (9 menit): Gambar di tools dan rapikan layoutE. EVALUASI DAN PENILAIAN
E.1 Kuis Penutup (10 menit, bobot partisipasi)
-
Gambarkan simbol-simbol berikut dalam Chen Notation: (a) weak entity, (b) multivalued attribute, (c) derived attribute, (d) identifying relationship, (e) key attribute!
-
Dalam Crow's Foot notation, apa perbedaan antara simbol
||dan|? Dan apa perbedaan antarao<dan|<? Berikan contoh nyata untuk masing-masing! -
Perhatikan business rule berikut: "Setiap karyawan baru HARUS segera ditempatkan di satu divisi. Namun, sebuah divisi boleh sementara tidak memiliki karyawan (misalnya divisi baru yang belum diisi)." Gambarkan kardinalitas dan participation constraint yang tepat dalam Crow's Foot!
-
Sebuah platform music streaming memiliki entity LAGU dan PLAYLIST. Satu lagu bisa masuk ke banyak playlist, dan satu playlist berisi banyak lagu. Atribut apa yang paling tepat dijadikan relationship attribute? Jelaskan mengapa atribut tersebut tidak bisa diletakkan di LAGU atau PLAYLIST!
-
Kapan kita perlu menggunakan hierarki ISA overlapping alih-alih disjoint? Berikan satu contoh domain bisnis yang memerlukan overlapping!
E.2 Tugas ERD (dikumpulkan sebelum pertemuan 5)
Judul: Perancangan ERD Sistem Pilihan
Konteks: Tugas ini adalah kelanjutan dari latihan identifikasi yang dikumpulkan setelah pertemuan 3. Mahasiswa akan menggambar ERD secara visual dari hasil identifikasi tersebut, dan memperbaiki/melengkapi jika ada kekurangan.
Ketentuan:
-
Domain yang Digunakan: Domain yang sama dengan latihan pertemuan 3 (jika ingin ganti, konfirmasi ke dosen)
-
Deliverable Utama — Diagram ERD:
- Gunakan salah satu notasi: Chen ATAU Crow's Foot (pilih satu, konsisten)
- Gambar menggunakan Draw.io atau MySQL Workbench
- Simpan/export dalam format PNG atau PDF
- Diagram harus mencakup:
- Semua entity yang relevan (minimal 5 entity)
- Atribut untuk setiap entity (minimal 4 atribut per entity)
- Primary key yang jelas
- Semua relationship dengan nama dan kardinalitas yang tepat
- Participation constraint (total/partial) yang sesuai business rules
- Weak entity jika ada dalam domain tersebut
- Hierarki ISA jika ada dalam domain tersebut
-
Deliverable Pendukung — Dokumen Penjelasan (1-2 halaman):
- Daftar keputusan desain yang dibuat dan alasannya
- Minimal 3 pertanyaan: "Mengapa kardinalitas X:Y untuk relationship Z?"
- Daftar business rules yang mendasari setiap participation constraint
-
Reflection (setengah halaman):
- Apa perbedaan paling signifikan antara identifikasi tekstual (pertemuan 3) dengan menggambar ERD visual (pertemuan 4)?
- Apakah ada entity atau relationship yang kamu ubah saat menggambar? Mengapa?
Format Pengumpulan:
- Satu file PDF (gabungkan diagram + dokumen penjelasan)
- Nama file:
ERD_[NIM]_[Nama]_[Domain].pdf - Upload ke Ngaji UIN Gusdur sebelum jam kuliah pertemuan 5
Bobot: Bagian dari nilai Tugas Individu (komponen ERD, 25% dari total nilai)
F. PERSIAPAN PERTEMUAN 5
F.1 Yang Akan Dipelajari
Pertemuan 5 adalah Transformasi Conceptual Model ke Logical Model — kita akan mempelajari algoritma step-by-step untuk mengubah ERD (model konseptual) menjadi skema tabel relasional (model logikal). Ini adalah langkah penting yang menjembatani "gambar" ERD dengan "tabel" database yang sesungguhnya.
Topik utama pertemuan 5:
- Mapping strong entity → tabel
- Mapping relationship 1:1, 1:N, M:N → foreign key / junction table
- Mapping weak entity → tabel
- Mapping hierarki ISA → pilihan tabel (3 strategi)
- Naming convention untuk primary key dan foreign key
F.2 Bacaan Wajib Sebelum Pertemuan 5
- Elmasri & Navathe, Chapter 9: ER-to-Relational Mapping (baca Section 9.1 s.d. 9.6)
- Hoberman, Chapter 5: Logical Data Model — Transformation Rules
F.3 Pertanyaan Pemantik
Bayangkan ERD yang sudah kamu buat untuk tugas pertemuan ini. Sekarang pikirkan:
- Bagaimana relationship M:N antara dua entity direpresentasikan dalam tabel? (Petunjuk: tidak bisa langsung dengan satu kolom saja)
- Bagaimana atribut multivalued direpresentasikan dalam tabel?
- Untuk hierarki ISA, apakah subtype menjadi tabel terpisah, atau digabung ke satu tabel?
G. REFERENSI
G.1 Referensi Utama
-
Elmasri, R. & Navathe, S. B. (2015). Fundamentals of Database Systems (7th Edition). Pearson. ISBN: 978-0133970777
- Chapter 3: Data Modeling Using the Entity-Relationship Model (bacaan utama — notasi ERD, weak entity, ISA)
- Section 3.3: Attributes
- Section 3.4: Relationship Types
- Section 3.7: Extended ER Features (Generalization, Specialization)
-
Hoberman, S. (2009). Data Modeling Made Simple (2nd Edition). Technics Publications. ISBN: 978-0977140060
- Chapter 5: Logical Data Model
- Chapter 6: Relationships and Cardinality
-
Connolly, T. & Begg, C. (2014). Database Systems: A Practical Approach to Design, Implementation, and Management (6th Edition). Pearson.
- Chapter 11: Entity-Relationship Modeling (Chen & Crow's Foot notation)
- Chapter 12: Enhanced Entity-Relationship Modeling (Generalization, Specialization)
G.2 Referensi Pendukung
-
Simsion, G. & Witt, G. (2004). Data Modeling Essentials (3rd Edition). Morgan Kaufmann.
- Chapter 5: Relationships — Cardinality and Optionality
-
Chen, P. P. (1976). "The Entity-Relationship Model — Toward a Unified View of Data." ACM Transactions on Database Systems, 1(1), 9–36. (Paper asli yang memperkenalkan ERD — referensi historis penting)
G.3 Referensi Online dan Tools
- Lucidchart. "Entity Relationship Diagram Tutorial & Examples" — https://www.lucidchart.com/pages/er-diagrams (opens in a new tab)
- ERDPlus. "Documentation and Tutorials" — https://erdplus.com/faq (opens in a new tab)
- draw.io. "ER Diagram Template and Shapes" — https://app.diagrams.net (opens in a new tab)
- Crow's Foot Notation Guide. "Database Diagram Symbols" — https://www.vertabelo.com/blog/crow-s-foot-notation/ (opens in a new tab)
- Redgate. "Chen ERD Notation" — https://www.red-gate.com/blog/chen-erd-notation/ (opens in a new tab) (penjelasan lengkap simbol Chen beserta ilustrasi visual)
- Redgate. "Crow's Foot Notation" — https://www.red-gate.com/blog/crow-s-foot-notation/ (opens in a new tab) (penjelasan simbol Crow's Foot beserta sejarah dan ilustrasi visual)
G.4 Video Resources
- Lucidchart — "Entity Relationship Diagram (ERD) Tutorial — Part 1 & 2" (YouTube)
- freeCodeCamp — "Database Design Course" — Bagian ERD (YouTube, menit 1:30 s.d. 3:00)
- Database Star — "Crow's Foot Notation" (YouTube — penjelasan visual sangat baik)
H. LAMPIRAN
Lampiran A: Lembar Kerja Praktikum Pertemuan 4
LEMBAR KERJA PRAKTIKUM ERD Nama: ___________________________ NIM: _______________ Tanggal: ________________________
BAGIAN 1: Latihan Baca ERD — Sistem Perpustakaan Digital
Jawab pertanyaan berikut berdasarkan ERD di bagian D.1:
-
Bisakah anggota yang belum pernah meminjam tetap terdaftar? Jawaban: ___________________________________________________ Simbol yang mendukung: _____________________________________
-
Bisakah satu buku tidak ditulis penulis manapun? Jawaban: ___________________________________________________ Simbol yang mendukung: _____________________________________
-
Makna bisnis EKSEMPLAR sebagai weak entity: Jawaban: ___________________________________________________
-
Apakah kardinalitas PENULIS–BUKU sudah benar? Jelaskan: Jawaban: ___________________________________________________
-
Jika anggota dihapus, apa yang terjadi pada PEMINJAMAN? Jawaban: ___________________________________________________ Implikasi desain: __________________________________________
BAGIAN 2: Identifikasi Sebelum Praktikum — Sistem Klinik "Medika Prima"
Entity yang teridentifikasi:
| No | Nama Entity | Strong/Weak? | Primary Key / Partial Key |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | |||
| 5 | |||
| 6 |
Relationship yang teridentifikasi:
| No | Entity A | Nama Relationship | Entity B | Kard. | Part. A | Part. B |
|---|---|---|---|---|---|---|
| 1 | Total/Partial | Total/Partial | ||||
| 2 | ||||||
| 3 | ||||||
| 4 | ||||||
| 5 |
Apakah ada weak entity? Jelaskan:
Apakah ada hierarki ISA? Jelaskan:
BAGIAN 3: Catatan Selama Praktikum
Tools yang digunakan: ________________________________________
Kesulitan yang ditemui:
Keputusan desain yang dibuat (dan alasannya):
Lampiran B: Tabel Referensi Cepat — Simbol ERD
╔══════════════════════════════════════════════════════════════════╗
║ REFERENSI CEPAT SIMBOL ERD — DUA NOTASI ║
╠═════════════════════╦════════════════════════════════════════════╣
║ KOMPONEN ║ CHEN │ CROW'S FOOT ║
╠═════════════════════╬════════════════╪════════════════════════════╣
║ Strong Entity ║ Rectangle │ Rectangle dengan list attr ║
║ Weak Entity ║ Double Rect │ Rectangle (label berbeda) ║
║ Relationship ║ Diamond │ Garis + label ║
║ Identifying Rel. ║ Double Diamond │ Garis (ke weak entity) ║
║ Attribute ║ Oval │ Baris dalam rectangle ║
║ Multivalued Attr. ║ Double Oval │ {braces} atau catatan ║
║ Derived Attribute ║ Dashed Oval │ "/" prefix atau catatan ║
║ Key Attribute ║ Underlined │ "PK" label ║
║ Partial Key ║ Dashed Under. │ "PK" bersama FK ║
╠═════════════════════╬════════════════╪════════════════════════════╣
║ KARDINALITAS ║ │ ║
║ One (tepat satu) ║ 1 │ | (garis tegak) ║
║ Many ║ N atau M │ < (kaki gagak) ║
║ Zero or One ║ (0,1) │ o| (lingkaran + tegak) ║
║ One or Many ║ (1,N) │ |< (tegak + gagak) ║
║ Zero or Many ║ (0,N) │ o< (lingkaran + gagak) ║
║ Exactly One ║ (1,1) │ || (dua garis tegak) ║
╠═════════════════════╬════════════════╪════════════════════════════╣
║ PARTICIPATION ║ │ ║
║ Total (mandatory) ║ Double line │ Tidak ada "o" di simbol ║
║ Partial (optional) ║ Single line │ Ada "o" di simbol ║
╠═════════════════════╬════════════════╪════════════════════════════╣
║ ISA HIERARCHY ║ │ ║
║ Disjoint ║ {d} dalam │ Label atau catatan "d" ║
║ Overlapping ║ {o} dalam │ Label atau catatan "o" ║
║ Total Spec. ║ Double line │ Garis ganda ke ISA ║
║ Partial Spec. ║ Single line │ Garis tunggal ke ISA ║
╚═════════════════════╩════════════════╧════════════════════════════╝Lampiran C: ERD Review Checklist
Gunakan checklist ini untuk memvalidasi ERD sebelum dikumpulkan:
Entity Review:
- Setiap entity diberi nama kata benda tunggal yang deskriptif
- Setiap entity memiliki definisi bisnis yang jelas
- Strong entity vs weak entity sudah dibedakan dengan benar
- Tidak ada entity yang sebenarnya lebih tepat menjadi atribut
- Tidak ada atribut yang sebenarnya harus menjadi entity
Attribute Review:
- Setiap entity memiliki primary key yang ditandai jelas
- Primary key stabil, unik, dan tidak null
- Atribut multivalued ditandai (double oval / catatan)
- Atribut derived ditandai (dashed oval / prefix)
- Atribut composite diurai jika sub-komponennya penting
Relationship Review:
- Setiap relationship diberi nama (kata kerja aktif, bisa dibaca)
- Kardinalitas di kedua sisi sudah ditentukan dan diverifikasi
- Participation constraint (total/partial) ditentukan dan dijustifikasi
- Relationship attribute dicantumkan jika ada
- Tidak ada relationship redundan
Weak Entity Review:
- Weak entity menggunakan simbol yang benar (double rect / double diamond)
- Partial key teridentifikasi
- Identifying entity sudah terhubung dengan benar
- Total participation dari weak entity ke identifying entity
ISA Hierarchy Review:
- Constraint disjoint/overlapping ditentukan
- Constraint total/partial specialization ditentukan
- Atribut yang diwarisi tidak diulang di subtype
Layout & Konsistensi:
- Notasi konsisten (semua Chen ATAU semua Crow's Foot)
- Naming convention konsisten sepanjang diagram
- Layout rapi, garis silang diminimalkan
- Semua label terbaca dengan jelas
Lampiran D: Panduan Singkat Menggunakan draw.io untuk ERD
LANGKAH-LANGKAH DASAR draw.io:
1. MULAI:
Buka https://app.diagrams.net
Pilih "Create New Diagram" → pilih "Blank Diagram"
2. TAMBAH SHAPE ERD:
Di panel kiri, cari "Entity Relation" atau "ER Shapes"
Atau gunakan: Extras → Edit Diagram (untuk import XML)
3. MEMBUAT ENTITY (Chen):
Drag shape "Entity" (rectangle) ke kanvas
Double-click untuk memberi nama
4. MEMBUAT ATTRIBUTE:
Drag shape "Attribute" (ellipse) ke kanvas
Hubungkan ke entity dengan "Connection" (klik tepi shape, tarik)
5. MEMBUAT RELATIONSHIP:
Drag shape "Relationship" (diamond) ke kanvas
Hubungkan ke entity di kedua sisi
6. MENAMBAH LABEL KARDINALITAS:
Klik garis penghubung → tambah label di Connection Properties
Atau: klik garis → kanan klik → "Edit Label"
7. EXPORT:
File → Export As → PNG atau PDF
TIPS:
• Gunakan Ctrl+Shift+H untuk auto-layout
• Gunakan Ctrl+G untuk group entity dengan atributnya
• Simpan sebagai .drawio untuk bisa diedit kembali
• Aktifkan "Snap to Grid" untuk layout yang rapiPENUTUP
Pertemuan 4 adalah jembatan antara identifikasi tekstual (pertemuan 3) dan komunikasi visual yang terstandar. ERD bukan hanya "gambar" — ini adalah bahasa teknis yang harus dipahami oleh semua pemangku kepentingan dalam proyek data, dari data scientist hingga database administrator.
Key Messages Pertemuan 4:
- Notasi ERD adalah bahasa universal pemodelan data — pelajari dengan serius karena akan digunakan sepanjang karier
- Kardinalitas dan participation constraint adalah representasi langsung dari business rules — jika business rules-nya salah, ERD-nya pun salah
- Weak entity dan hierarki ISA adalah konstruksi yang powerful untuk memodelkan realitas yang kompleks
- Diagram yang rapi dan konsisten adalah tanda profesionalisme — bukan sekadar estetika
Koneksi ke Proyek Semester: ERD yang dibuat dalam tugas pertemuan ini adalah tahap 2 dari proyek bertahap — Conceptual Model. Output ini akan langsung menjadi input untuk pertemuan 5 (transformasi ke Logical Model). Pastikan ERD-mu lengkap dan akurat sebelum pertemuan 5.
Preview Pertemuan 5: Di pertemuan 5, kita akan belajar algoritma transformasi ERD ke skema tabel relasional secara sistematis. Setiap jenis relationship (1:1, 1:N, M:N) dan setiap konstruksi khusus (weak entity, ISA) memiliki aturan transformasi yang berbeda-beda. Ini adalah langkah paling "teknis" dalam alur perancangan database.
Disusun oleh: Mohammad Reza Maulana, M.Kom Program Studi Sains Data Fakultas Ekonomi dan Bisnis Islam UIN K.H. Abdurrahman Wahid Pekalongan
Revisi: Februari 2026