‹ Daftar slidePertemuan 5: Model Extended Entity-Relationship (EER)
Program Studi Bisnis Digital • FEB
Sistem Database
Pertemuan 5 — Model Extended Entity-Relationship (EER)
Melampaui ER dasar: hierarki superclass/subclass, aturan spesialisasi-generalisasi, agregasi, dan kategori (union) untuk memodelkan dunia bisnis yang lebih kompleks.
RPS minggu 5 • 2x50 menit
Tujuan Pembelajaran Hari Ini
Setelah pertemuan ini, Anda diharapkan mampu memodelkan struktur data bisnis yang berhierarki dan kompleks menggunakan notasi EER. Secara rinci:
CAPAIAN 1
HIERARKI
Menjelaskan konsep generalisasi dan spesialisasi serta relasi superclass/subclass.
CAPAIAN 2
CONSTRAINT
Membedakan disjoint vs overlapping dan total vs partial participation pada subclass.
CAPAIAN 3
AGREGASI & UNION
Menjelaskan konsep agregasi (relasi sebagai entitas) dan kategori/union type.
CAPAIAN 4
TERAPAN
Merancang diagram EER untuk kasus bisnis nyata dan menghitung dampaknya pada desain tabel.
Kenapa ER Dasar Saja Tidak Cukup?
Bayangkan Anda merancang basis data untuk marketplace seperti Tokopedia. Entitas PENGGUNA ternyata punya dua "wajah" yang atributnya berbeda jauh:
PENJUAL PERORANGAN
NIK, Alamat KTP
UMKM rumahan menjual dari rumah — butuh atribut identitas pribadi.
TOKO RESMI (BADAN USAHA)
NPWP, No. SIUP
Brand resmi yang berbadan usaha — butuh atribut legalitas perusahaan.
Kalau dipaksa jadi satu entitas ER biasa, kita harus menaruh SEMUA atribut (NIK, NPWP, SIUP, dst.) dalam satu tabel — banyak kolom akan kosong (NULL) karena tidak relevan untuk sebagian baris. EER hadir untuk mengatasi masalah ini secara terstruktur.
Bagian 1 dari 3
Spesialisasi & Generalisasi
Dua cara berpikir yang berlawanan arah untuk membangun hierarki superclass/subclass — plus notasi resminya.
SuperclassSubclassNotasi ISA
Spesialisasi: Dari Umum ke Khusus
Spesialisasi (specialization) adalah proses membagi satu superclass (entitas umum) menjadi beberapa subclass (entitas lebih spesifik) berdasarkan karakteristik yang membedakan.
Contoh: Superclass PEGAWAI
Atribut umum: nip, nama, tgl_lahir, gaji_pokok
Dipecah jadi 3 subclass karena karakteristik kerjanya berbeda
ARAH BERPIKIR
Top-Down
Mulai dari entitas besar (PEGAWAI), lalu identifikasi perbedaan untuk membentuk MANAJER, STAF, TEKNISI.
Subclass mewarisi (inherit) semua atribut & relasi superclass-nya, lalu menambah atribut miliknya sendiri — mirip konsep inheritance di pemrograman berorientasi objek.
Generalisasi: Dari Khusus ke Umum
Generalisasi (generalization) adalah proses SEBALIKNYA: kita mulai dari beberapa entitas yang sudah ada, lalu menemukan kesamaan di antara mereka dan menariknya menjadi satu superclass baru.
Contoh: Dari 3 Entitas Terpisah
MOBIL, MOTOR, TRUK awalnya dirancang terpisah
Semuanya ternyata punya no_polisi, merek, tahun
Ditarik menjadi superclass baru KENDARAAN
ARAH BERPIKIR
Bottom-Up
Mulai dari entitas-entitas kecil, lalu tarik kesamaan menjadi satu entitas induk baru.
Hasil akhirnya sama persis dengan spesialisasi — sebuah hierarki superclass/subclass. Bedanya cuma arah proses berpikir perancang basis data, bukan hasil diagramnya.
Notasi Resmi EER: Superclass/Subclass
Diagram EER memakai simbol khusus di luar ER dasar. Perhatikan segitiga ISA (Is-A, dibaca "adalah sebuah") yang menghubungkan superclass ke subclass-nya:
Constraint 1: Disjoint (d) vs Overlapping (o)
Simbol d atau o di dalam lingkaran ISA menjawab pertanyaan: "Bolehkah satu baris data masuk ke lebih dari satu subclass sekaligus?"
DISJOINT (d)
Pilih Satu
Satu pegawai HANYA boleh jadi satu subclass: Manajer atau Staf atau Teknisi — tidak bisa dua-duanya.
OVERLAPPING (o)
Boleh Ganda
Satu orang boleh jadi beberapa subclass sekaligus — mis. MAHASISWA yang juga ASISTEN_DOSEN di kampus.
Contoh Tokopedia: seorang penjual bisa berstatus PENJUAL_BIASA dan PENJUAL_POWER_MERCHANT di waktu berbeda — tapi tidak bisa disjoint dan overlapping sekaligus; perancang harus memilih salah satu aturan saat merancang.
Constraint 2: Total vs Partial Participation
Garis penghubung superclass ke lingkaran ISA menjawab pertanyaan kedua: "Wajibkah setiap anggota superclass punya subclass?"
TOTAL (garis ganda)
Wajib
SETIAP anggota superclass harus masuk minimal satu subclass. Semua pegawai wajib berperan Manajer/Staf/Teknisi.
PARTIAL (garis tunggal)
Opsional
Boleh ada anggota superclass yang tidak masuk subclass mana pun. Mis. tidak semua MOBIL adalah MOBIL_SEWAAN.
Setiap hierarki EER harus ditentukan salah satu dari empat kombinasi berikut — pilihannya mengikuti aturan bisnis, bukan selera perancang:
Kombinasi
Makna
Contoh
Disjoint + Total
Wajib satu & hanya satu subclass
PEGAWAI → Manajer/Staf/Teknisi
Disjoint + Partial
Boleh satu subclass, boleh tidak sama sekali
KENDARAAN → Mobil_Sewaan (opsional)
Overlapping + Total
Wajib ≥1 subclass, boleh rangkap
AKUN → Pembeli/Penjual (wajib salah satu, boleh dua-duanya)
Overlapping + Partial
Boleh rangkap, boleh tidak punya subclass
MAHASISWA → Asisten_Dosen (opsional, boleh rangkap peran lain)
Coba Sendiri: Pilih Kombinasi Constraint EER yang Tepat
Klik disjoint/overlapping dan total/partial secara bergantian untuk melihat langsung diagram EER dan contoh kasusnya berubah.
Bagian 2 dari 3
Agregasi & Kategori (Union)
Dua konsep EER tambahan di luar hierarki superclass/subclass — untuk kasus yang lebih rumit lagi.
AgregasiKategori/Union
Agregasi: Relasi yang Diperlakukan sebagai Entitas
Agregasi dipakai ketika kita perlu menghubungkan sebuah relasi (bukan entitas biasa) ke entitas lain — sesuatu yang tidak bisa digambar langsung di ER dasar.
Tanpa agregasi, kita tak bisa menyatakan langsung "MANAJER mengawasi relasi PEGAWAI-mengerjakan-PROYEK" — hanya bisa relasi antar-entitas, bukan relasi-ke-relasi. Agregasi "membungkus" relasi jadi seolah entitas.
Kategori (Union Type): Subclass dari Beberapa Superclass
Kebalikan dari hierarki biasa: satu subclass di sini punya lebih dari satu superclass yang jenisnya berbeda, disatukan lewat simbol U (union).
Contoh: pemilik kendaraan di Samsat bisa berupa PERUSAHAAN (rental mobil) atau PERORANGAN (pribadi) — dua entitas yang sudah ada duluan dan tidak berhubungan hierarki, tapi bisa sama-sama jadi PEMILIK_KENDARAAN.
Rangkuman: 4 Konsep Inti EER
Konsep
Arah Relasi
Kapan Dipakai
Spesialisasi
1 superclass → banyak subclass (top-down)
Superclass sudah ada, cari perbedaan
Generalisasi
Banyak entitas → 1 superclass baru (bottom-up)
Entitas sudah ada, cari kesamaan
Agregasi
Relasi diperlakukan sebagai entitas
Butuh menghubungkan relasi ke entitas lain
Kategori (Union)
Banyak superclass berbeda → 1 subclass
Subclass punya ≥2 superclass tak berkerabat
Keempatnya SEMUA memperluas ER dasar — inilah kenapa modelnya disebut Extended Entity-Relationship.
Bagian 3 dari 3
Dari EER ke Implementasi
Studi kasus lengkap, lalu dua sesi hitung-hitungan: dampak nyata pilihan EER pada jumlah tabel & kolom kosong.
Studi KasusHitung dari Nol
Studi Kasus: Merancang EER Marketplace UMKM
Ikuti langkah perancang basis data marketplace UMKM digital menentukan hierarki EER-nya, satu keputusan per langkah:
Langkah
Pertanyaan & Keputusan
Hasil
1. Superclass
Semua pengguna butuh atribut sama (email, no_hp, tgl_daftar)?
Bolehkah satu akun jadi penjual DAN pembeli sekaligus? Ya, umum di Tokopedia
Overlapping (o)
4. Total/partial?
Wajibkah semua akun berperan salah satu? Ya, tak ada akun "kosong"
Total → garis ganda
Hasil akhir: PENGGUNA (o, total) → PEMBELI, PENJUAL — persis pola akun Tokopedia di dunia nyata.
Hitung dari Nol: Sel NULL Jika Dipaksa 1 Tabel
Kasus: sebuah startup logistik punya 1.000 pegawai — 400 Manajer, 350 Staf, 250 Teknisi — dan memaksakan SEMUA atribut subclass ke dalam satu tabel PEGAWAI (3 kolom khusus subclass).
Langkah
Perhitungan
Nilai
Total baris
400 + 350 + 250
1.000 pegawai
Total sel kolom khusus
1.000 baris × 3 kolom
3.000 sel
Sel terisi
1 kolom/baris (peran tunggal, disjoint)
1.000 sel
Sel NULL
3.000 − 1.000
2.000 sel
PEMBOROSAN
66,7%
2.000 ÷ 3.000 × 100
Dua dari tiga sel kolom khusus selalu kosong — inilah alasan kuat memisah subclass jadi tabel sendiri.
Hitung dari Nol: Opsi Tabel Terpisah per Subclass
Bandingkan dengan opsi memisahkan tiap subclass jadi tabel fisik sendiri, terhubung ke PEGAWAI lewat foreign key (FK — kolom rujukan ke tabel lain):
Langkah
Perhitungan
Nilai
Tabel supertype
1 tabel PEGAWAI
1 tabel
Tabel subclass
Manajer + Staf + Teknisi
3 tabel
Total tabel fisik
1 + 3
4 tabel
Total kolom FK baru
1 FK per tabel subclass × 3
3 FK
SEL NULL PADA ATRIBUT SUBCLASS
0 sel
vs 2.000 sel pada opsi 1 tabel
Tiap tabel subclass hanya menyimpan atribut miliknya sendiri — tak ada kolom yang terpaksa kosong.
Trade-off: opsi ini butuh lebih banyak JOIN (penggabungan tabel) saat query — akan kita bahas trade-off lengkapnya di pertemuan konversi ER-ke-relasional.
Latihan Kelas: Rancang EER Sistem Perbankan
Kerjakan berpasangan (10 menit). Bank BBCA punya entitas NASABAH dengan dua jenis rekening: TABUNGAN (bunga harian) dan DEPOSITO (bunga jatuh tempo, jangka waktu tetap).
Instruksi
Tentukan superclass & subclass-nya
Satu nasabah boleh punya kedua jenis rekening sekaligus — tentukan disjoint/overlapping
Tidak semua nasabah wajib punya rekening — tentukan total/partial
Gambar notasi ISA lengkap dengan simbolnya di kertas
KUNCI JAWABAN (DIBAHAS SETELAH 10 MENIT)
(o, partial)
Overlapping karena boleh rangkap dua rekening; partial karena nasabah baru bisa belum punya rekening apa pun.