stdsquare²
🎓 Kelas
stdsquare / materi / slides / pertemuan-05
Tema
Japan
Arcade
Dark Retro
Font
‹ Daftar slide Pertemuan 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.
Superclass Subclass Notasi 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:

PEGAWAIISAMANAJERSTAFTEKNISIGaris ganda = superclass wajib punya subclass (total participation)

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.
4 kombinasi: (d, total) • (d, partial) • (o, total) • (o, partial)

Empat Kombinasi Constraint dalam Praktik

Setiap hierarki EER harus ditentukan salah satu dari empat kombinasi berikut — pilihannya mengikuti aturan bisnis, bukan selera perancang:

KombinasiMaknaContoh
Disjoint + TotalWajib satu & hanya satu subclassPEGAWAI → Manajer/Staf/Teknisi
Disjoint + PartialBoleh satu subclass, boleh tidak sama sekaliKENDARAAN → Mobil_Sewaan (opsional)
Overlapping + TotalWajib ≥1 subclass, boleh rangkapAKUN → Pembeli/Penjual (wajib salah satu, boleh dua-duanya)
Overlapping + PartialBoleh rangkap, boleh tidak punya subclassMAHASISWA → 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.
Agregasi Kategori/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.

AGREGASI (dibungkus)PEGAWAImengerjakanPROYEKmengawasiMANAJER
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).

PERUSAHAANPERORANGANUPEMILIK_KENDARAAN
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

KonsepArah RelasiKapan Dipakai
Spesialisasi1 superclass → banyak subclass (top-down)Superclass sudah ada, cari perbedaan
GeneralisasiBanyak entitas → 1 superclass baru (bottom-up)Entitas sudah ada, cari kesamaan
AgregasiRelasi diperlakukan sebagai entitasButuh menghubungkan relasi ke entitas lain
Kategori (Union)Banyak superclass berbeda → 1 subclassSubclass 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 Kasus Hitung dari Nol

Studi Kasus: Merancang EER Marketplace UMKM

Ikuti langkah perancang basis data marketplace UMKM digital menentukan hierarki EER-nya, satu keputusan per langkah:

LangkahPertanyaan & KeputusanHasil
1. SuperclassSemua pengguna butuh atribut sama (email, no_hp, tgl_daftar)?Superclass PENGGUNA
2. Identifikasi bedaPenjual butuh NPWP/rekening toko; pembeli butuh alamat kirim2 kandidat subclass
3. Disjoint/overlap?Bolehkah satu akun jadi penjual DAN pembeli sekaligus? Ya, umum di TokopediaOverlapping (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).

LangkahPerhitunganNilai
Total baris400 + 350 + 2501.000 pegawai
Total sel kolom khusus1.000 baris × 3 kolom3.000 sel
Sel terisi1 kolom/baris (peran tunggal, disjoint)1.000 sel
Sel NULL3.000 − 1.0002.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):

LangkahPerhitunganNilai
Tabel supertype1 tabel PEGAWAI1 tabel
Tabel subclassManajer + Staf + Teknisi3 tabel
Total tabel fisik1 + 34 tabel
Total kolom FK baru1 FK per tabel subclass × 33 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.

Rangkuman & Persiapan Pertemuan Berikutnya

Cheat Sheet Hari Ini
  • Spesialisasi/generalisasi: hierarki superclass ↔ subclass
  • d/o: boleh rangkap subclass atau tidak
  • Garis ganda/tunggal: wajib punya subclass atau tidak
  • Agregasi: relasi diperlakukan sebagai entitas
  • Kategori (union): banyak superclass → 1 subclass
MINGGU DEPAN — PERTEMUAN 6
Konversi EER → Relasional
Mengubah diagram hari ini menjadi skema tabel + FK sungguhan. Tugas: bawa hasil latihan bank Anda dalam bentuk gambar rapi.