MODUL PERTEMUAN 3
KONSEP ENTITY, ATTRIBUTE, DAN RELATIONSHIP
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 3
Sub-CPMK 3.1: Mahasiswa mampu menjelaskan konsep-konsep dasar pemodelan data, termasuk entity, jenis-jenis attribute, dan konsep relationship beserta degree-nya.
Sub-CPMK 4.1: Mahasiswa mampu menyusun model data awal (konseptual) dengan mengidentifikasi entity, attribute, dan relationship dari deskripsi bisnis secara sistematis.
B.2 Tujuan Pembelajaran (Learning Objectives)
Setelah mengikuti pertemuan ini, mahasiswa akan mampu:
- Membedakan antara entity, entity set, dan instance secara konseptual dengan contoh nyata (C2 â Memahami)
- Mengklasifikasikan jenis-jenis attribute (simple, composite, multivalued, derived, stored) dan memilih representasi yang tepat (C3 â Mengaplikasikan)
- Menjelaskan konsep relationship, degree, dan relationship attribute beserta implikasinya (C2 â Memahami)
- Menentukan identifier yang tepat (primary key konseptual) untuk sebuah entity (C3 â Mengaplikasikan)
- Mengidentifikasi entity, attribute, dan relationship dari deskripsi bisnis nyata (C4 â Menganalisis)
B.3 Kompetensi yang Dikembangkan
| Domain | Kompetensi |
|---|---|
| Kognitif | Memahami konsep (C2), Mengaplikasikan klasifikasi (C3), Menganalisis kasus (C4) |
| Afektif | Menghargai ketelitian dalam mendefinisikan data; mengembangkan kebiasaan berpikir terstruktur |
| Psikomotorik | Mengidentifikasi dan mendokumentasikan komponen model data dari teks; mulai menggunakan tool ERD |
B.4 Indikator Pencapaian
Setelah mengikuti pertemuan ini, mahasiswa diharapkan mampu:
- Menjelaskan perbedaan antara entity dan instance dengan minimal 3 contoh dari domain berbeda
- Mengklasifikasikan attribute dari deskripsi bisnis ke dalam kategori yang tepat (simple/composite/multivalued/derived)
- Mengidentifikasi jenis relationship (unary/binary/ternary) dan menentukan degree-nya
- Menentukan candidate key dan memilih primary key yang tepat untuk sebuah entity
- Menghasilkan daftar entity, attribute, dan relationship awal dari sebuah narasi bisnis
B.5 Alokasi Waktu
| No | Kegiatan | Durasi | Keterangan |
|---|---|---|---|
| 1 | Pembukaan & Review Tugas Pertemuan 2 | 10 menit | Highlight pola umum dari tugas mahasiswa |
| 2 | Aktivitas Pemantik: "Apa yang Disimpan Sistem?" | 15 menit | Analisis kartu nama / struk belanja / KTM |
| 3 | Materi 1: Entity dan Entity Set | 20 menit | Ceramah interaktif + contoh nyata |
| 4 | Materi 2: Jenis-Jenis Attribute | 25 menit | Ceramah + latihan klasifikasi |
| 5 | Break | 10 menit | â |
| 6 | Materi 3: Relationship dan Degree | 20 menit | Ceramah + diagram ilustrasi |
| 7 | Materi 4: Identifier dan Primary Key Konseptual | 15 menit | Ceramah + diskusi trade-off |
| 8 | Praktikum Terbimbing: Identifikasi dari Kasus Nyata | 25 menit | Latihan individual/berpasangan |
| 9 | Review Praktikum & Diskusi | 10 menit | Pembahasan jawaban bersama |
| 10 | Evaluasi, Briefing Tugas & Penutup | 10 menit | Kuis singkat, penjelasan tugas, refleksi |
| Total | 160 menit | (termasuk fleksibilitas 10 menit) |
C. MATERI PEMBELAJARAN
C.1 Aktivitas Pemantik â "Apa yang Disimpan Sistem?"
Instruksi (15 menit): Setiap mahasiswa diminta mengambil satu benda dari tas atau kantong mereka â bisa berupa KTM (Kartu Tanda Mahasiswa), struk belanja, kartu nama, atau tiket parkir. Amati benda tersebut selama 3 menit, lalu jawab pertanyaan berikut secara individual, kemudian diskusikan dengan teman sebelah.
Pertanyaan:
- Benda apa ini? â ini adalah representasi fisik dari sebuah "entitas" di dunia nyata
- Informasi apa yang tertulis di sana? â ini adalah kandidat "atribut" dari entitas tersebut
- Ada informasi apa yang tidak tertulis, tapi pasti ada di database sistem yang menerbitkan benda ini? â ini mengajak berpikir tentang atribut yang tersimpan di balik layar
- Benda ini terhubung dengan "benda" lain apa? â ini adalah cikal bakal "relationship"
Contoh Jawaban yang Diharapkan â KTM: (lihat panduan dosen)
Refleksi Dosen: "Itulah yang akan kita pelajari hari ini â bagaimana kita mendefinisikan secara formal 'benda-benda' yang perlu disimpan sistem (entity), informasi yang melekat padanya (attribute), dan keterkaitan antar benda tersebut (relationship). Inilah fondasi dari setiap model data."
C.2 Materi 1: Entity dan Entity Set
C.2.1 Apa Itu Entity?
Dalam pemodelan data, entity (entitas) adalah representasi dari suatu "hal" di dunia nyata yang memiliki keberadaan mandiri dan perlu disimpan informasinya dalam sistem. Entity bisa berupa:
- Orang: Mahasiswa, Dosen, Pelanggan, Karyawan
- Tempat: Ruangan, Gudang, Kota, Cabang
- Benda: Produk, Buku, Kendaraan, Peralatan
- Kejadian/Event: Transaksi, Pemesanan, Kunjungan, Ujian
- Konsep: Mata Kuliah, Jabatan, Kategori, Status
Prinsip Utama: Entity adalah sesuatu yang perlu kita simpan informasinya, bukan sekadar sesuatu yang ada. Angin adalah benda nyata, tetapi dalam kebanyakan sistem bisnis, angin bukanlah entity karena tidak ada informasi angin yang perlu kita simpan.
C.2.2 Entity vs Instance
Perbedaan antara entity dan instance (juga disebut entity occurrence) adalah salah satu konsep paling mendasar yang harus dipahami:
| Konsep | Definisi | Analogi |
|---|---|---|
| Entity | Kelas atau tipe dari objek yang dimodelkan | "Resep kue" â mendefinisikan apa itu kue |
| Instance | Satu individu konkret dari entity tersebut | Satu kue tertentu yang dipanggang |
ENTITY: MAHASISWA
â instance-instance-nya:
âââ Budi Santoso (NIM: 2021001001)
âââ Siti Rahayu (NIM: 2021001002)
âââ Ahmad Fauzi (NIM: 2021001003)
ENTITY: MATA_KULIAH
â instance-instance-nya:
âââ Data Modelling (SSD1019)
âââ Machine Learning (SSD2034)
âââ Statistika Dasar (SSD1005)Analogi Pemrograman: Entity ibarat class dalam OOP, dan instance ibarat object dari class tersebut. Jika kamu pernah belajar Python atau Java, kamu sudah familiar dengan konsep ini!
C.2.3 Entity Set
Entity set adalah koleksi dari semua instance yang memiliki tipe entity yang sama pada suatu waktu tertentu. Dalam implementasi database, entity set menjadi tabel, dan setiap baris adalah satu instance.
ENTITY: DOSEN
ENTITY SET (tabel DOSEN saat ini):
ââââââââââŦâââââââââââââââââââŦâââââââââââââââââââââŦâââââââââââââââ
â NIP â Nama â Bidang_Keahlian â Gelar â
ââââââââââŧâââââââââââââââââââŧâââââââââââââââââââââŧâââââââââââââââ¤
â 001 â Ahmad Fauzi â Data Science â M.Kom â
â 002 â Dewi Lestari â Statistika â Ph.D â
â 003 â Reza Maulana â Database Systems â M.Kom â
ââââââââââ´âââââââââââââââââââ´âââââââââââââââââââââ´âââââââââââââââC.2.4 Strong Entity vs Weak Entity
Tidak semua entity berdiri sendiri. Ada entitas yang keberadaannya bergantung pada entitas lain:
Strong Entity (Entitas Kuat)
- Memiliki identitas sendiri yang tidak bergantung pada entity lain
- Memiliki primary key yang unik secara mandiri
- Contoh: MAHASISWA (diidentifikasi oleh NIM), PRODUK (diidentifikasi oleh Kode_Produk)
Weak Entity (Entitas Lemah)
- Tidak memiliki key yang cukup untuk mengidentifikasi dirinya sendiri
- Bergantung pada identifying entity (strong entity lain) untuk keberadaan dan identifikasinya
- Diidentifikasi oleh kombinasi partial key miliknya sendiri + primary key dari identifying entity
- Contoh: TANGGUNGAN (anggota keluarga karyawan) bergantung pada KARYAWAN
CONTOH WEAK ENTITY:
KARYAWAN (Strong) TANGGUNGAN (Weak)
âââââââââââââââ ââââââââââââââââââââââââ
â ID_Karyawan â âââââââââââ â ID_Karyawan (FK) â
â Nama â 1 N â Nama_Tanggungan â â partial key
â Jabatan â â Hubungan (anak/istri) â
âââââââââââââââ â Tanggal_Lahir â
ââââââââââââââââââââââââ
"Budi" sebagai tanggungan dari Karyawan ID=001 â
"Budi" sebagai tanggungan dari Karyawan ID=002
â Mereka adalah dua instance berbeda meski nama sama!Kapan sebuah entity menjadi weak entity?
- Saat entity tersebut tidak bermakna tanpa keberadaan entity "induk"-nya
- Saat tidak ada satu pun atribut yang bisa menjadi identifier unik mandiri
- Saat instance-nya perlu dihapus otomatis ketika entity induknya dihapus
C.3 Materi 2: Jenis-Jenis Attribute
Attribute (atribut) adalah properti atau karakteristik yang dimiliki oleh sebuah entity. Setiap atribut memiliki domain â himpunan nilai yang diizinkan untuk atribut tersebut.
C.3.1 Simple Attribute (Atribut Sederhana)
Atribut yang tidak dapat atau tidak perlu dipecah lagi menjadi bagian yang lebih kecil.
Contoh Simple Attribute:
- NIM: "2021001001" â tidak perlu dipecah
- Harga: 150000 â satu nilai numerik
- Jenis_Kelamin: "L"/"P" â nilai tunggal diskrit
- Tanggal_Lahir: "2003-05-15" â meski ada komponen, kita anggap atomicCatatan Penting: Apakah
Tanggal_Lahirsimple atau composite? Tergantung kebutuhan bisnis. Jika sistem perlu memfilter data berdasarkan bulan atau tahun lahir secara terpisah, lebih baik diperlakukan sebagai composite (hari, bulan, tahun). Jika cukup disimpan sebagai satu nilai, biarkan sebagai simple.
C.3.2 Composite Attribute (Atribut Komposit)
Atribut yang dapat dipecah menjadi sub-atribut yang lebih kecil dan masing-masing sub-atribut memiliki makna mandiri.
Contoh Composite Attribute:
ALAMAT
âââ Jalan â "Jl. Merdeka No. 12"
âââ Kelurahan â "Podosugih"
âââ Kecamatan â "Pekalongan Barat"
âââ Kota â "Pekalongan"
âââ Kode_Pos â "51111"
NAMA_LENGKAP
âââ Gelar_Depan â "Prof. Dr."
âââ Nama_Pertama â "Ahmad"
âââ Nama_Tengah â "Fauzi"
âââ Nama_Belakang â "Santoso"Kapan harus dipecah (composite) vs dibiarkan (simple)?
| Pertimbangan | Pisahkan (Composite) | Biarkan (Simple) |
|---|---|---|
| Pencarian/Filter | Sering dicari per komponen | Selalu dicari sebagai kesatuhan |
| Laporan | Perlu breakdown per komponen | Tidak perlu dipecah |
| Validasi | Setiap bagian punya aturan sendiri | Validasi sebagai satu nilai |
| Contoh | Alamat (filter per kota) | Nama Tengah (jarang dipakai sendiri) |
C.3.3 Multivalued Attribute (Atribut Bernilai Banyak)
Atribut yang dapat memiliki lebih dari satu nilai untuk satu instance entity.
Contoh Multivalued Attribute:
DOSEN
âââ NIP: "199110082025051002" â simple (satu nilai)
âââ Nama: "Reza Maulana" â simple
âââ Nomor_HP: { "08123456789", â multivalued (bisa punya beberapa nomor)
"08987654321" }
PRODUK
âââ Kode_Produk: "PRD001"
âââ Nama: "Batik Pekalongan"
âââ Ukuran_Tersedia: { "S", "M", "L", "XL" } â multivaluedâ ī¸ Masalah Multivalued Attribute di Database Relasional: Database relasional tidak mendukung penyimpanan nilai multiple dalam satu kolom. Oleh karena itu, multivalued attribute harus dipecah menjadi tabel tersendiri saat transformasi ke model logikal (ini akan kita bahas lebih dalam di pertemuan 5).
Solusi sementara di model konseptual:
Catat bahwa atribut tersebut multivalued (dengan notasi double ellipse di ERD Chen)
â akan diselesaikan saat transformasi ke model relasionalC.3.4 Derived Attribute (Atribut Turunan)
Atribut yang nilainya dapat dihitung atau diturunkan dari atribut lain yang sudah ada, baik dari dalam entity yang sama maupun dari entity lain yang berelasi.
Contoh Derived Attribute:
MAHASISWA
âââ Tanggal_Lahir: "2003-05-15" â stored attribute
âââ Umur: 22 â derived (dihitung dari Tanggal_Lahir + tanggal hari ini)
PESANAN
âââ Harga_Satuan: 50000 â stored
âââ Jumlah: 3 â stored
âââ Subtotal: 150000 â derived (Harga_Satuan à Jumlah)
PENJUAL (di marketplace)
âââ (semua rating dari pembeli) â di entity lain
âââ Rating_Rata_Rata: 4.7 â derived (rata-rata dari koleksi rating)Dilema Derived Attribute: Simpan atau Hitung?
| Opsi | Keuntungan | Kerugian |
|---|---|---|
| Selalu hitung (pure derived) | Tidak ada risiko inkonsistensi, hemat storage | Lambat jika kalkulasi kompleks atau data besar |
| Simpan (stored/cached) | Query cepat, tidak perlu kalkulasi ulang | Risiko stale data, butuh mekanisme update |
| Hybrid | Simpan untuk data sering diakses, hitung untuk yang jarang | Kompleksitas implementasi |
Contoh Nyata: Rating rata-rata toko di Tokopedia tidak dihitung real-time setiap kali halaman dibuka (terlalu lambat). Rating disimpan dan diperbarui secara berkala (batch processing). Ini adalah contoh stored derived attribute.
C.3.5 Stored Attribute
Lawan dari derived attribute â atribut yang nilainya disimpan langsung dalam database dan tidak dihitung dari atribut lain. Ini adalah jenis atribut yang paling umum.
C.3.6 Null Value dan Atribut Opsional
Atribut bisa bersifat mandatory (wajib diisi) atau optional (boleh kosong/null). Nilai NULL bukan berarti nol atau string kosong â NULL berarti "tidak diketahui" atau "tidak berlaku".
KARYAWAN
âââ NIP: wajib (NOT NULL) â harus ada
âââ Nama: wajib (NOT NULL) â harus ada
âââ Email_Kerja: wajib (NOT NULL) â harus ada
âââ Nomor_HP: opsional (NULL OK) â boleh tidak punya
âââ Tanggal_Resign: opsional (NULL OK) â NULL jika masih aktifC.3.7 Ringkasan Jenis Attribute
ENTITY: KARYAWAN
Atribut:
âââ [Simple] ID_Karyawan â "K001"
âââ [Composite] Nama â { Nama_Depan, Nama_Belakang }
âââ [Multivalued] Keahlian â { "Python", "SQL", "R" }
âââ [Derived] Masa_Kerja â dihitung dari Tanggal_Masuk
âââ [Stored] Gaji_Pokok â 8500000
âââ [Stored] Tanggal_Masuk â "2022-03-01"
âââ [Composite] Alamat â { Jalan, Kota, Kode_Pos }C.4 Materi 3: Relationship dan Degree
C.4.1 Apa Itu Relationship?
Relationship (relasi/hubungan) adalah asosiasi atau keterkaitan yang bermakna antara dua atau lebih entity. Relationship merepresentasikan fakta bisnis yang menghubungkan entitas-entitas tersebut.
Cara mengenali relationship: Cari kata kerja yang menghubungkan dua noun (kata benda/entitas). Contoh: Mahasiswa mengambil Mata Kuliah; Dosen mengampu Kelas; Pelanggan membuat Pesanan.
Contoh Relationship:
MAHASISWA ââââ "mengambil" ââââ MATA_KULIAH
DOSEN ââââ "mengampu" ââââ JADWAL
PESANAN ââââ "berisi" ââââ PRODUK
KARYAWAN ââââ "bekerja di"ââââ DEPARTEMENC.4.2 Degree of Relationship
Degree adalah jumlah entity yang berpartisipasi dalam sebuah relationship.
1. Unary Relationship (Degree 1 / Rekursif)
Sebuah entity berelasi dengan dirinya sendiri. Juga disebut self-referencing atau recursive relationship.
KARYAWAN ââââ "menjadi supervisor dari" ââââ KARYAWAN
(satu karyawan bisa menjadi atasan bagi karyawan lain)
PRODUK ââââ "merupakan komponen dari" ââââ PRODUK
(produk A adalah bagian dari produk B)
MATA_KULIAH ââââ "merupakan prasyarat dari" ââââ MATA_KULIAH
(MK A harus diambil sebelum MK B)2. Binary Relationship (Degree 2)
Dua entity berbeda saling berelasi. Ini adalah jenis relationship yang paling umum dalam model data.
MAHASISWA ââââââââââââââââ MATA_KULIAH
"mengambil"
DOSEN ââââââââââââââââ DEPARTEMEN
"bergabung dengan"
PELANGGAN ââââââââââââââââ PESANAN
"membuat"3. Ternary Relationship (Degree 3)
Tiga entity berbeda terlibat dalam satu relationship. Ini lebih kompleks dan kadang bisa disederhanakan, tapi ada kasus di mana ternary relationship memang diperlukan.
DOSEN âââ
âââ "mengajar di" ââââ (satu fakta: siapa mengajar apa di mana)
MATA_KULIAH âââ¤
â
RUANGAN âââ
Artinya: "Dosen A mengajar Mata Kuliah B di Ruangan C"
â Ini tidak bisa dipecah menjadi dua binary relationship
tanpa kehilangan informasi!Mengapa Ternary Berbeda dari Dua Binary?
Jika kita pisah menjadi dua binary:
DOSEN ââââ "mengajar" ââââ MATA_KULIAH
DOSEN ââââ "menggunakan" ââââ RUANGAN
Kita KEHILANGAN informasi: "Di ruangan mana Dosen A mengajar MK B?"
Mungkin Dosen A mengajar di 3 ruangan dan mengajar 3 MK,
tapi kombinasinya tidak bisa diketahui dari dua binary saja.
â Ternary relationship dibutuhkan!C.4.3 Relationship Attribute
Sama seperti entity yang memiliki atribut, relationship pun bisa memiliki atribut. Atribut ini tidak cocok ditempatkan di salah satu entity â atribut tersebut baru ada karena adanya relationship antara kedua entity.
MAHASISWA ââââââââ "mengambil" ââââââââ MATA_KULIAH
â
Relationship Attributes:
âââ Semester_Diambil â "Ganjil 2025"
âââ Nilai â "A"
âââ Tanggal_Input_Nilai â "2025-12-20"
Pertanyaan: Di mana menyimpan atribut "Nilai"?
- Di MAHASISWA? Tidak â satu mahasiswa punya banyak nilai untuk MK berbeda
- Di MATA_KULIAH? Tidak â satu MK punya banyak nilai untuk mahasiswa berbeda
- Di relationship MENGAMBIL? YA! Nilai adalah properti dari kombinasi
"mahasiswa tertentu mengambil MK tertentu"C.4.4 Kardinalitas Relationship (Pengantar)
Kardinalitas menggambarkan berapa banyak instance dari satu entity yang bisa berasosiasi dengan instance dari entity lain. Ini akan dibahas lebih mendalam di pertemuan 4, tapi berikut pengantar awalnya:
ONE-TO-ONE (1:1):
Satu instance A berelasi dengan tepat satu instance B
Contoh: MAHASISWA ââ "memiliki" ââ KTM (satu mahasiswa satu KTM)
ONE-TO-MANY (1:N):
Satu instance A berelasi dengan banyak instance B
Contoh: DEPARTEMEN ââ "memiliki" ââ KARYAWAN
(satu departemen bisa punya banyak karyawan,
satu karyawan hanya di satu departemen)
MANY-TO-MANY (M:N):
Banyak instance A berelasi dengan banyak instance B
Contoh: MAHASISWA ââ "mengambil" ââ MATA_KULIAH
(satu mahasiswa ambil banyak MK, satu MK diambil banyak mahasiswa)C.4.5 Associative Entity â Ternary sebagai Entity Penuh
Associative entity (juga disebut intersection entity atau gerund) adalah teknik untuk merepresentasikan relationship yang kompleks â terutama ternary relationship atau M:N dengan atribut yang kaya â sebagai sebuah entity penuh dalam ERD, bukan sekadar garis relasi.
Dengan menjadikannya entity, ia bisa memiliki:
- Identifier (primary key) sendiri
- Atribut yang kaya dan beragam
- Relationship lanjutan dengan entity lain
Contoh: SUPPLIER menyuplai PRODUK untuk PROYEK
VERSI TERNARY RELATIONSHIP BIASA:
SUPPLIER âââ
âââ "menyuplai" âââ (satu fakta kontrak suplai)
PRODUK âââââ¤
â
PROYEK âââââ
Rel. Attr: Jumlah, Harga_Kontrak, Tanggal_Kontrak
VERSI ASSOCIATIVE ENTITY:
SUPPLIER ââ(1:N)ââ KONTRAK_SUPLAI ââ(N:1)ââ PROYEK
â
(N:1)â
âŧ
PRODUK
KONTRAK_SUPLAI sekarang adalah entity tersendiri:
âââ ID_Kontrak (identifier/PK baru)
âââ Jumlah
âââ Harga_Kontrak
âââ Tanggal_Kontrak
âââ FK â SUPPLIER
âââ FK â PRODUK
âââ FK â PROYEK
KEUNGGULAN:
â Jika nanti KONTRAK_SUPLAI perlu memiliki PEMBAYARAN atau
STATUS_KONTRAK, cukup tambahkan entity baru yang berelasi
dengan KONTRAK_SUPLAI â jauh lebih mudah daripada memodifikasi
ternary relationship.Perbandingan Ternary Relationship vs Associative Entity:
| Aspek | Ternary Relationship | Associative Entity |
|---|---|---|
| Identifier sendiri | Tidak | Ya (PK tersendiri) |
| Atribut | Bisa, tapi terbatas | Bisa atribut lengkap |
| Relationship lanjutan | Sulit | Mudah ditambahkan |
| Pemetaan ke tabel (P5) | Junction table 3 FK | Tabel seperti entity biasa |
| Keterbacaan ERD | Cukup jelas | Lebih eksplisit |
Pola yang sangat umum di industri:
FAKTUR_PENJUALANadalah associative entity dari PELANGGAN Ã PRODUK Ã SALES.JADWAL_SIDANGadalah associative entity dari MAHASISWA Ã PEMBIMBING Ã RUANGAN. Setiap kali kamu menemukan ternary relationship yang "terasa" seperti sebuah objek bisnis dengan nama sendiri (faktur, kontrak, jadwal, tiket...), itu adalah kandidat kuat untuk dijadikan associative entity.
C.5 Materi 4: Identifier dan Primary Key Konseptual
C.5.1 Apa Itu Identifier?
Identifier (dalam konteks konseptual) adalah atribut atau kombinasi atribut yang secara unik mengidentifikasi setiap instance dalam sebuah entity. Tidak boleh ada dua instance dalam entity yang sama yang memiliki nilai identifier yang identik, dan identifier tidak boleh bernilai NULL.
Di level konseptual, kita menyebutnya identifier atau conceptual key. Di level logikal dan fisik, ini menjadi primary key.
C.5.2 Candidate Key
Candidate key adalah setiap atribut atau kombinasi atribut minimal yang bisa menjadi identifier unik. Satu entity bisa memiliki lebih dari satu candidate key.
ENTITY: MAHASISWA
Candidate Keys:
âââ NIM â "2021001001" (unik, tidak null)
âââ Email â "budi@student.uin.ac.id" (unik, tidak null)
âââ (NIK tidak cocok karena tidak selalu tersedia di sistem)
ENTITY: PENERBANGAN
Candidate Keys:
âââ Kode_Penerbangan â "GA-101"
âââ (Nomor_Mesin tidak cocok, terlalu teknis untuk primary key)C.5.3 Primary Key
Primary key adalah candidate key yang dipilih sebagai identifier utama entity. Pemilihan dilakukan berdasarkan beberapa kriteria:
Kriteria Pemilihan Primary Key yang Baik:
| Kriteria | Penjelasan |
|---|---|
| Stabil | Nilainya tidak berubah sepanjang waktu |
| Sederhana | Preferensikan atribut tunggal dibanding komposit |
| Pendek | Semakin pendek, semakin efisien untuk indexing |
| Tidak bermakna ganda | Tidak ambigu dan mudah dipahami |
| Tersedia sejak awal | Tidak bergantung pada data di luar sistem |
Contoh Pemilihan Primary Key:
ENTITY: KARYAWAN
Candidate Keys: NIP, Email, NIK
â Primary Key: NIP (stabil, sudah ada standar, pendek)
â Bukan Email (bisa berubah jika ganti nama pernikahan)
â Bukan NIK (ada kasus duplikasi di KTP Indonesia lama)
ENTITY: PRODUK
Candidate Keys: Kode_Produk, Barcode
â Primary Key: Kode_Produk (dibuat internal, terkontrol)
â Barcode bisa jadi secondary/alternate keyC.5.4 Natural Key vs Surrogate Key
Natural Key adalah identifier yang memiliki makna bisnis â berasal dari dunia nyata, bukan dibuat oleh sistem.
Contoh Natural Key:
NIM (Nomor Induk Mahasiswa) â bermakna: tahun masuk, prodi, urutan
ISBN (buku) â standar internasional
Kode_Pos â representasi geografis
Nomor_Rekening â identitas akun bankSurrogate Key adalah identifier yang dibuat artificial oleh sistem, tanpa makna bisnis, biasanya berupa angka urut (auto-increment) atau UUID.
Contoh Surrogate Key:
ID_Pelanggan: 1, 2, 3, 4, ... (auto-increment)
ID_Transaksi: "TRX-2024-00001" (dibuat sistem)
UUID: "550e8400-e29b-41d4-a716-446655440000"Kapan Menggunakan Masing-masing?
| Situasi | Pilihan | Alasan |
|---|---|---|
| Ada natural key yang benar-benar stabil dan unik | Natural Key | Efisien, bermakna, mudah debug |
| Natural key berpotensi berubah | Surrogate Key | Stabilitas |
| Sistem harus integrasi dengan sistem eksternal | Natural Key | Kompatibilitas |
| Privacy concern (identifier bocor = info bocor) | Surrogate Key | Keamanan |
| M:N relationship (butuh join table) | Surrogate Key | Simplisitas |
Praktik Industri: Kebanyakan sistem modern menggunakan surrogate key (auto-increment ID atau UUID) sebagai primary key untuk fleksibilitas dan performa, sambil tetap menyimpan natural key sebagai kolom dengan constraint UNIQUE.
C.5.5 Composite Key
Composite key adalah primary key yang terdiri dari lebih dari satu atribut. Diperlukan ketika tidak ada satu atribut pun yang bisa menjadi identifier unik secara mandiri.
ENTITY: JADWAL_KELAS
Tidak ada satu atribut yang unik sendiri:
âââ Hari: banyak kelas di hari yang sama
âââ Jam: banyak kelas di jam yang sama
âââ Ruangan: ruangan dipakai berulang di hari berbeda
âââ Mata_Kuliah: satu MK bisa punya beberapa jadwal
Composite Key: (Hari, Jam_Mulai, Ruangan)
â Kombinasi ketiganya baru menjadi unik:
"Senin, 08:00, Ruang A1" hanya ada satu kelas pada waktu ituRELATIONSHIP TABLE: ENROLLMENT (hasil M:N)
Primary Key: (Student_ID, Course_ID, Semester)
â Satu mahasiswa bisa ambil MK yang sama di semester berbeda
â Tapi tidak bisa ambil MK yang sama DI semester yang sama dua kaliC.6 Contoh Pemodelan Kasus Nyata: Sistem Manajemen Rumah Sakit
C.6.1 Narasi Bisnis
Rumah Sakit "Sehat Sejahtera" perlu sistem untuk mengelola data pasien, dokter, jadwal praktek, dan rekam medis. Pasien mendaftar dan bisa berkonsultasi dengan berbagai dokter. Setiap dokter memiliki spesialisasi dan jadwal praktek di poli tertentu. Setiap kunjungan pasien ke dokter dicatat sebagai rekam medis yang berisi keluhan, diagnosa, dan resep obat. Obat yang diresepkan berasal dari apotek rumah sakit.
C.6.2 Identifikasi Entity
Langkah pertama: baca narasi dan tandai semua kata benda yang bisa menjadi entity.
Kata benda kandidat dari narasi:
â PASIEN â perlu disimpan (data identitas, riwayat)
â DOKTER â perlu disimpan (data profil, spesialisasi)
â JADWAL_PRAKTEK â perlu disimpan (hari, jam, poli)
â REKAM_MEDIS â perlu disimpan (keluhan, diagnosa, resep)
â OBAT â perlu disimpan (nama, dosis, stok)
â POLI â perlu disimpan (nama poli, lokasi)
â "Rumah Sakit" â ini konteks sistem, bukan entity terpisah
â "Sistem" â ini bukan entitas dataC.6.3 Identifikasi Attribute per Entity
PASIEN
âââ [PK, Natural] No_RM â Nomor Rekam Medis (unik)
âââ [Simple] Nama_Lengkap
âââ [Simple] NIK
âââ [Simple] Tanggal_Lahir
âââ [Derived] Umur â dihitung dari Tanggal_Lahir
âââ [Simple] Jenis_Kelamin
âââ [Composite] Alamat â {Jalan, Kota, Kode_Pos}
âââ [Multivalued] Nomor_Telepon â bisa punya >1 nomor
âââ [Simple] Golongan_Darah
DOKTER
âââ [PK, Natural] NIP_Dokter
âââ [Simple] Nama_Lengkap
âââ [Simple] Spesialisasi
âââ [Composite] Gelar â {Gelar_Depan, Gelar_Belakang}
âââ [Simple] No_STR â Surat Tanda Registrasi (lisensi)
âââ [Simple] Email
POLI
âââ [PK] Kode_Poli
âââ [Simple] Nama_Poli â "Poli Jantung", "Poli Umum"
âââ [Simple] Lantai_Lokasi
JADWAL_PRAKTEK
âââ [PK Composite] (NIP_Dokter, Hari, Jam_Mulai)
âââ [Simple] Hari â Senin-Sabtu
âââ [Simple] Jam_Mulai
âââ [Simple] Jam_Selesai
âââ [Simple] Kuota_Pasien
REKAM_MEDIS
âââ [PK, Surrogate] ID_RM
âââ [Simple] Tanggal_Kunjungan
âââ [Simple] Keluhan
âââ [Simple] Diagnosa
âââ [Simple] Catatan_Dokter
âââ [Derived] Biaya_Total â dijumlahkan dari biaya layanan + obat
OBAT
âââ [PK] Kode_Obat
âââ [Simple] Nama_Obat
âââ [Simple] Satuan â "tablet", "kapsul", "ml"
âââ [Simple] Harga_Satuan
âââ [Simple] Stok_TersediaC.6.4 Identifikasi Relationship
Relationship yang teridentifikasi:
1. PASIEN ââââ "mendaftar ke" ââââ POLI
Degree: Binary
Kardinalitas: M:N (satu pasien bisa ke banyak poli,
satu poli dikunjungi banyak pasien)
2. DOKTER ââââ "bertugas di" ââââ POLI
Degree: Binary
Kardinalitas: M:N (satu dokter bisa praktek di beberapa poli,
satu poli bisa ditangani beberapa dokter)
3. DOKTER ââââ "memiliki" ââââ JADWAL_PRAKTEK
Degree: Binary
Kardinalitas: 1:N (satu dokter punya banyak jadwal,
satu jadwal hanya milik satu dokter)
4. PASIEN ââââ "memiliki" ââââ REKAM_MEDIS
Degree: Binary
Kardinalitas: 1:N (satu pasien bisa punya banyak rekam medis,
satu rekam medis hanya milik satu pasien)
5. DOKTER ââââ "menulis" ââââ REKAM_MEDIS
Degree: Binary
Kardinalitas: 1:N (satu dokter bisa menulis banyak rekam medis,
satu rekam medis ditulis satu dokter)
6. REKAM_MEDIS ââââ "meresepkan" ââââ OBAT
Degree: Binary
Kardinalitas: M:N (satu kunjungan bisa resepkan banyak obat,
satu obat bisa diresepkan di banyak kunjungan)
Relationship Attributes: Dosis, Jumlah, Aturan_MinumC.6.5 Ringkasan Model Konseptual (Tekstual)
ENTITY LIST:
PASIEN, DOKTER, POLI, JADWAL_PRAKTEK, REKAM_MEDIS, OBAT
WEAK ENTITY:
JADWAL_PRAKTEK (bergantung pada DOKTER)
RELATIONSHIP LIST:
1. PASIEN â[mendaftar ke]â POLI (M:N)
2. DOKTER â[bertugas di]â POLI (M:N)
3. DOKTER â[memiliki]â JADWAL_PRAKTEK (1:N)
4. PASIEN â[memiliki]â REKAM_MEDIS (1:N)
5. DOKTER â[menulis]â REKAM_MEDIS (1:N)
6. REKAM_MEDIS â[meresepkan]â OBAT (M:N, attr: Dosis, Jumlah)
RELATIONSHIP ATTRIBUTES:
MERESEPKAN: Dosis, Jumlah, Aturan_MinumC.7 Pola-Pola Umum dalam Pemodelan Entity
Berikut adalah pola-pola yang sering dijumpai saat memodelkan entity dari berbagai domain bisnis:
C.7.1 Pola Party (Orang/Organisasi)
Banyak sistem memiliki entitas "pihak yang terlibat" â bisa orang, bisa organisasi. Sering ada supertype PERSON atau PARTY.
PERSON (supertype)
âââ Nama, Tanggal_Lahir, Jenis_Kelamin
MAHASISWA (subtype dari PERSON)
âââ NIM, Program_Studi, Tahun_Masuk, IPK
DOSEN (subtype dari PERSON)
âââ NIP, Spesialisasi, Jabatan_FungsionalC.7.2 Pola Transaction-Event
Hampir semua sistem bisnis mencatat kejadian atau transaksi:
HEADER (satu transaksi/event)
âââ ID_Header (PK)
âââ Tanggal
âââ Status
âââ FK ke entitas pelaku dan penerima
DETAIL/LINE ITEM (item-item dalam transaksi)
âââ ID_Header (FK ke header)
âââ Nomor_Urut
âââ Referensi ke item (produk/layanan)
âââ Kuantitas, HargaContoh: PESANAN (header) + ITEM_PESANAN (detail); FAKTUR + BARIS_FAKTUR
C.7.3 Pola Hierarchical (Hierarki)
Untuk data yang memiliki struktur pohon/hierarki:
KATEGORI
âââ ID_Kategori (PK)
âââ Nama_Kategori
âââ ID_Induk (FK ke KATEGORI sendiri) â self-referencing / unary
Contoh data:
ID=1, Nama="Elektronik", ID_Induk=NULL
ID=2, Nama="Handphone", ID_Induk=1
ID=3, Nama="Laptop", ID_Induk=1
ID=4, Nama="Android", ID_Induk=2Pola ini juga digunakan untuk: struktur organisasi (karyawan-atasan), BOM (Bill of Materials), kategori produk berjenjang.
D. PRAKTIKUM TERBIMBING
D.1 Latihan 1: Klasifikasi Attribute (Individual, 10 menit)
Diberikan deskripsi entity berikut. Klasifikasikan setiap atribut ke dalam kategori yang tepat.
Entity: KENDARAAN BERMOTOR
Deskripsi: Sebuah aplikasi perparkiran perlu menyimpan data kendaraan. Setiap kendaraan memiliki nomor polisi, merek dan tipe kendaraan, warna, tahun pembuatan, dan data pemilik (nama dan nomor SIM). Kendaraan bisa memiliki lebih dari satu warna (misalnya kendaraan modifikasi). Dari tahun pembuatan, sistem bisa menghitung usia kendaraan. Nomor polisi terdiri dari kode wilayah (huruf), nomor (angka), dan kode seri (huruf akhir).
| No | Atribut | Kategori | Alasan |
|---|---|---|---|
| 1 | Nomor_Polisi | ? | |
| 2 | Kode_Wilayah (bagian dari nomor polisi) | ? | |
| 3 | Merek | ? | |
| 4 | Tipe | ? | |
| 5 | Warna | ? | |
| 6 | Tahun_Pembuatan | ? | |
| 7 | Usia_Kendaraan | ? | |
| 8 | Nama_Pemilik | ? | |
| 9 | Nomor_SIM_Pemilik | ? |
Diskusi: Mengapa Nama_Pemilik tidak dijadikan entity tersendiri (PEMILIK)? Kapan sebaiknya data pemilik menjadi entity terpisah vs hanya atribut di KENDARAAN?
D.2 Latihan 2: Identifikasi Entity & Relationship dari Narasi (Berpasangan, 15 menit)
Baca narasi berikut dan identifikasi: a) Semua entity yang diperlukan b) Atribut utama dan identifier untuk setiap entity c) Semua relationship antar entity, beserta degree dan kardinalitasnya d) Relationship attribute jika ada
NARASI: Sistem Manajemen Kos "PuriMahasiswa"
Pak Budi memiliki rumah kos dengan 20 kamar yang disewakan kepada mahasiswa. Setiap kamar memiliki nomor kamar, tipe (standard/deluxe/VIP), kapasitas (berapa orang yang boleh tinggal), dan harga sewa per bulan. Mahasiswa yang ingin menyewa mengisi formulir pendaftaran dengan data diri lengkap. Penyewaan dicatat dengan tanggal mulai dan tanggal berakhir kontrak. Pembayaran sewa dilakukan setiap bulan â setiap pembayaran dicatat nomor bukti, tanggal bayar, jumlah dibayar, dan metode pembayaran. Jika ada fasilitas umum yang rusak (seperti WiFi, air panas, AC), mahasiswa bisa melaporkan kerusakan. Setiap laporan kerusakan dicatat beserta tanggal lapor, deskripsi masalah, dan status penanganan.
Panduan Pengerjaan:
- Baca narasi sekali penuh
- Tandai semua kata benda kandidat entity
- Untuk setiap kandidat, tanyakan: "Apakah sistem perlu menyimpan informasi tentang ini?"
- Identifikasi kata kerja yang menghubungkan entity â itu adalah relationship
- Periksa: apakah ada atribut yang "lahir" dari relationship? (relationship attribute)
D.3 Latihan 3: Penentuan Primary Key (Individual, 5 menit)
Untuk setiap entity berikut, tentukan primary key yang paling tepat dan jelaskan alasan pemilihannya. Juga identifikasi apakah ada candidate key lain.
| Entity | Atribut yang Ada | Primary Key Pilihan | Alasan |
|---|---|---|---|
| MAHASISWA | NIM, NIK, Email, Nomor_HP, Nama | ? | |
| PENERBANGAN | Nomor_Penerbangan, Rute, Tanggal, Maskapai | ? | |
| ANGGOTA_KOPERASI | No_Anggota, NIK, Nama, No_HP, Email | ? | |
| DETAIL_PESANAN | ID_Pesanan, ID_Produk, Jumlah, Harga_Saat_Pesan | ? | |
| FOTO_PRODUK | URL_Foto, ID_Produk, Urutan, Keterangan | ? |
Diskusi kelas: Apakah NIK bisa dijadikan primary key untuk MAHASISWA? Apa risikonya?
E. EVALUASI DAN PENILAIAN
E.1 Kuis Penutup (10 menit, bobot partisipasi)
-
Jelaskan perbedaan antara entity dan instance dengan satu contoh dari domain perbankan!
-
Sebuah sistem HR menyimpan data karyawan dengan atribut berikut: Nama_Lengkap, Jabatan, Nomor_HP_Kantor, Nomor_HP_Pribadi, Nomor_HP_Darurat, Gaji_Pokok, Tunjangan_Transport, Tunjangan_Makan, Total_Gaji. Identifikasi:
- Atribut multivalued: ___
- Atribut derived: ___
- Atribut yang sebaiknya menjadi composite: ___
-
Mengapa relationship ternary tidak bisa selalu diganti dengan dua relationship binary? Berikan contoh kasus di mana ternary wajib dipertahankan!
-
Berikan contoh sebuah entity di mana menggunakan surrogate key lebih tepat daripada natural key, dan jelaskan alasannya!
-
Apa yang dimaksud dengan relationship attribute? Berikan satu contoh relationship beserta relationship attribute-nya!
E.2 Latihan ERD Awal (dikumpulkan awal pertemuan 4)
Judul: Latihan Identifikasi Komponen Model Konseptual
Instruksi: Pilih SATU domain dari pilihan berikut (berbeda dari domain tugas individu pertemuan 2):
- Sistem Pemesanan Tiket Bioskop
- Aplikasi Manajemen Proyek (project management)
- Sistem Lelang Online
- Platform Kursus Online
- Sistem Manajemen Bengkel Kendaraan
Yang Harus Dikerjakan:
Bagian 1: Narasi Sistem (100â150 kata) Tuliskan deskripsi singkat sistem yang dipilih â proses bisnis utama dan batas sistemnya.
Bagian 2: Identifikasi Entity (tabel)
| No | Nama Entity | Jenis (Strong/Weak) | Deskripsi Singkat | Mengapa ini Entity? |
|---|---|---|---|---|
| 1 | ||||
| ... |
Bagian 3: Attribute per Entity (tabel)
| Entity | Nama Attribute | Kategori | Identifier? | Alasan Kategori |
|---|---|---|---|---|
| Ya/Tidak |
Bagian 4: Relationship (tabel)
| No | Relationship | Entity A | Entity B | Degree | Kardinalitas | Relationship Attribute |
|---|---|---|---|---|---|---|
| 1 |
Bagian 5: Refleksi (50â80 kata) Apa kesulitan yang paling kamu alami saat mengidentifikasi entity dan relationship? Apakah ada keputusan yang masih kamu ragukan?
Format: PDF, minimal 3 halaman, font 11pt, margin 2.5cm Deadline: Dikumpulkan di Ngaji UIN Gusdur sebelum jam kuliah pertemuan 4 dimulai Bobot: Bagian dari nilai Tugas Individu & porsi dari penilaian Latihan ERD
F. PERSIAPAN PERTEMUAN 4
F.1 Yang Akan Dipelajari
Pertemuan 4 adalah praktikum ERD â kita akan menggambar secara visual semua yang sudah kita identifikasi secara tekstual di pertemuan 3. Kamu akan belajar notasi ERD (Chen dan Crow's Foot), kardinalitas, participation, dan best practices menggambar ERD.
Pastikan sebelum pertemuan 4:
- Latihan identifikasi (Bagian E.2) sudah dikumpulkan
- Sudah mencoba membuka Draw.io (https://draw.io (opens in a new tab))
- Baca Elmasri & Navathe Bab 3 (khususnya bagian notasi ERD)
F.2 Instalasi / Akses Tools (wajib sebelum pertemuan 4)
Kita akan langsung praktikum di pertemuan 4. Siapkan minimal satu dari berikut:
Draw.io (rekomendasi utama untuk mata kuliah ini) URL : https://draw.io (opens in a new tab) atau https://app.diagrams.net (opens in a new tab) Akun : Opsional (bisa akses langsung tanpa login) Kelebihan: Gratis, tidak perlu instalasi, banyak library shape, export fleksibel, kolaborasi mudah
F.3 Pertanyaan Pemantik untuk Pertemuan 4
Pikirkan jawaban dari pertanyaan berikut sebelum pertemuan 4:
- Bagaimana cara menggambar perbedaan antara atribut mandatory vs optional dalam ERD?
- Bagaimana cara merepresentasikan atribut multivalued secara visual?
- Bagaimana cara menunjukkan bahwa sebuah entity adalah weak entity?
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 pertemuan ini)
- Section 3.1â3.5: Basic Concepts, Entity Types, Attributes, Relationships
- Section 3.6: Weak Entity Types
-
Hoberman, S. (2009). Data Modeling Made Simple (2nd Edition). Technics Publications. ISBN: 978-0977140060
- Chapter 3: Conceptual Data Modeling
- Chapter 5: Logical Data Model â Entity dan Attribute
-
Connolly, T. & Begg, C. (2014). Database Systems: A Practical Approach to Design, Implementation, and Management (6th Edition). Pearson.
- Chapter 11: Entity-Relationship Modeling (Bagian A: Entity Types dan Attributes)
- Chapter 12: Enhanced Entity-Relationship Modeling
G.2 Referensi Pendukung
-
Simsion, G. & Witt, G. (2004). Data Modeling Essentials (3rd Edition). Morgan Kaufmann.
- Chapter 4: Entities and Attributes
-
Date, C. J. (2012). Database Design and Relational Theory: Normal Forms and All That Jazz. O'Reilly Media.
- Chapter 1: Preliminary Concepts (Relational Keys)
G.3 Referensi Online
- Lucidchart. "Entity Relationship Diagram Tutorial" â https://www.lucidchart.com/pages/er-diagrams (opens in a new tab)
- Draw.io / Diagrams.net â https://draw.io (opens in a new tab) (Free online diagram tool dengan database diagram template)
- IBM. "Entity-Relationship Model" â https://www.ibm.com/topics/entity-relationship-diagram (opens in a new tab)
G.4 Video Resources
- Draw.io Tutorials â https://draw.io/tutorials (opens in a new tab) (Official documentation)
- freeCodeCamp â "Database Design Course â Learn how to design and plan a database for beginners" (YouTube) â mulai dari menit 0:00 hingga 1:30:00
H. LAMPIRAN
Lampiran A: Lembar Kerja Praktikum Pertemuan 3
LEMBAR KERJA PRAKTIKUM Nama: ___________________________ NIM: _______________ Tanggal: ________________________
LATIHAN 1: Klasifikasi Attribute KENDARAAN
| No | Atribut | Kategori (lingkari) | Alasan Singkat |
|---|---|---|---|
| 1 | Nomor_Polisi | Simple / Composite / Multivalued / Derived | |
| 2 | Kode_Wilayah | Simple / Composite / Multivalued / Derived | |
| 3 | Merek | Simple / Composite / Multivalued / Derived | |
| 4 | Warna | Simple / Composite / Multivalued / Derived | |
| 5 | Tahun_Pembuatan | Simple / Composite / Multivalued / Derived | |
| 6 | Usia_Kendaraan | Simple / Composite / Multivalued / Derived |
Refleksi Latihan 1: Atribut mana yang paling sulit diklasifikasikan? Mengapa?
LATIHAN 2: Identifikasi dari Narasi Kos "PuriMahasiswa"
Entity yang ditemukan:
| No | Nama Entity | Strong/Weak? | Primary Key |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | |||
| 5 |
Relationship yang ditemukan:
| No | Nama Relationship | Entity A | Entity B | Degree | Kard. | Rel. Attribute |
|---|---|---|---|---|---|---|
| 1 | Binary/Ternary/Unary | 1:1/1:N/M:N | ||||
| 2 | ||||||
| 3 | ||||||
| 4 |
Pertanyaan Diskusi: Ada sebuah ambiguitas dalam narasi: apakah LAPORAN_KERUSAKAN seharusnya terhubung ke KAMAR atau ke entity lain? Tuliskan analisis singkatmu:
LATIHAN 3: Penentuan Primary Key
| Entity | Candidate Key(s) | Primary Key Pilihan | Alasan |
|---|---|---|---|
| MAHASISWA | |||
| PENERBANGAN | |||
| ANGGOTA_KOPERASI | |||
| DETAIL_PESANAN | |||
| FOTO_PRODUK |
Lampiran B: Panduan Cepat Jenis-Jenis Attribute
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â PANDUAN CEPAT: JENIS-JENIS ATTRIBUTE â
âââââââââââââââââââŦââââââââââââââââââââââââââââââââââââââââââââââââ¤
â JENIS â CIRI UTAMA â
âââââââââââââââââââŧââââââââââââââââââââââââââââââââââââââââââââââââ¤
â Simple â âĸ Tidak bisa dipecah lagi secara bermakna â
â â âĸ Satu nilai per instance â
â â âĸ Contoh: NIM, Harga, Status â
âââââââââââââââââââŧââââââââââââââââââââââââââââââââââââââââââââââââ¤
â Composite â âĸ Bisa dipecah menjadi sub-atribut â
â â âĸ Pecah jika sub-atribut sering dipakai â
â â secara terpisah â
â â âĸ Contoh: Alamat, Nama Lengkap â
âââââââââââââââââââŧââââââââââââââââââââââââââââââââââââââââââââââââ¤
â Multivalued â âĸ Bisa lebih dari satu nilai per instance â
â â âĸ Harus dipisah jadi tabel sendiri di SQL â
â â âĸ Contoh: Nomor HP, Keahlian, Foto â
âââââââââââââââââââŧââââââââââââââââââââââââââââââââââââââââââââââââ¤
â Derived â âĸ Dihitung dari atribut/entity lain â
â â âĸ Tanyakan: "Haruskah disimpan atau cukup â
â â dihitung saat dibutuhkan?" â
â â âĸ Contoh: Umur, Total, Rating Rata-rata â
âââââââââââââââââââŧââââââââââââââââââââââââââââââââââââââââââââââââ¤
â Stored â âĸ Disimpan langsung, tidak dihitung â
â â âĸ Paling umum â
â â âĸ Contoh: Gaji_Pokok, Tanggal_Lahir â
âââââââââââââââââââ´ââââââââââââââââââââââââââââââââââââââââââââââââ
CHECKLIST KLASIFIKASI ATTRIBUTE:
⥠Bisa dipecah jadi sub-atribut bermakna? â Composite
⥠Bisa punya >1 nilai per instance? â Multivalued
⥠Nilainya dihitung dari data lain? â Derived
⥠Tidak ada dari ketiga di atas? â Simple/StoredLampiran C: Panduan Cepat Degree of Relationship
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â PANDUAN CEPAT: DEGREE OF RELATIONSHIP â
ââââââââââââââŦâââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â DEGREE â KARAKTERISTIK & CONTOH â
ââââââââââââââŧâââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â UNARY â âĸ Satu entity berelasi dengan dirinya sendiri â
â (Rekursif) â âĸ Keyword: "sesama", "menjadi", "melapor ke" â
â â âĸ Contoh: Karyawan â[atasannya]â Karyawan â
â â MK â[prasyarat dari]â MK â
ââââââââââââââŧâââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â BINARY â âĸ Dua entity berbeda berelasi â
â â âĸ Paling umum (>90% relationship) â
â â âĸ Contoh: Mahasiswa â[mengambil]â MK â
â â Dosen â[mengampu]â Kelas â
ââââââââââââââŧâââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â TERNARY â âĸ Tiga entity terlibat dalam satu fakta â
â â âĸ Tidak bisa diganti 2 binary tanpa info loss â
â â âĸ Tanya: "Apakah kombinasi ketiganya bermakna?" â
â â âĸ Contoh: Dosen-MK-Ruangan dalam satu jadwal â
â â Supplier-Produk-Proyek dalam kontrak â
ââââââââââââââ´âââââââââââââââââââââââââââââââââââââââââââââââââââââ
TIPS MENEMUKAN TERNARY:
â Jika memisahkan menjadi dua binary menghasilkan ambiguitas
("Dokter A pakai Ruang B dan Dokter A mengajar MK C â
tapi apakah Dokter A mengajar MK C di Ruang B?"),
maka ternary DIPERLUKAN.Lampiran D: Checklist Model Konseptual Pertemuan 3
Gunakan checklist ini untuk memvalidasi hasil identifikasi entity, attribute, dan relationship kamu:
Entity:
- Setiap entity memiliki nama yang jelas (kata benda tunggal, huruf kapital)
- Setiap entity memiliki deskripsi bisnis yang jelas
- Sudah dibedakan mana strong entity dan weak entity
- Tidak ada entity yang sebenarnya cukup menjadi atribut
- Tidak ada atribut yang sebenarnya harus menjadi entity tersendiri
Attribute:
- Setiap entity memiliki minimal satu identifier (primary key)
- Identifier tidak ambigu dan bersifat stabil
- Atribut composite sudah diidentifikasi dan diputuskan perlu/tidak dipecah
- Atribut multivalued sudah ditandai
- Atribut derived sudah diidentifikasi dan diputuskan simpan/hitung
Relationship:
- Semua hubungan antar entity sudah teridentifikasi
- Setiap relationship diberi nama (kata kerja aktif)
- Degree setiap relationship sudah ditentukan
- Kardinalitas sudah diperkirakan (meski akan divalidasi di pertemuan 4)
- Relationship attribute sudah diidentifikasi jika ada
- Tidak ada relationship yang redundan
PENUTUP
Pertemuan 3 ini membangun kosakata yang akan kita gunakan sepanjang semester untuk berbicara tentang model data. Entity, attribute, dan relationship adalah blok bangunan dasar dari setiap ERD dan setiap skema database relasional.
Key Messages Pertemuan 3:
- Entity adalah "hal" yang perlu disimpan informasinya â bukan sekadar kata benda dalam narasi
- Pemilihan jenis atribut bukan soal benar/salah absolut, melainkan keputusan desain berdasarkan kebutuhan bisnis
- Relationship membawa informasi tentang keterkaitan antar entitas â dan bisa memiliki atributnya sendiri
- Primary key adalah jantung dari setiap entity â pilih dengan hati-hati karena sulit diubah belakangan
Koneksi ke Proyek Semester: Output dari latihan pertemuan ini adalah bahan dasar untuk tugas proyek tahap 2 (Conceptual Model / ERD). Pastikan identifikasi entity dan relationship yang kamu lakukan sudah cukup lengkap untuk domain yang kamu pilih di proyek.
Preview Pertemuan 4: Di pertemuan 4, semua yang kita definisikan secara tekstual hari ini akan kita gambar menggunakan notasi ERD standar (Chen dan Crow's Foot). Siapkan tools dan bawa hasil identifikasi kamu!
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