Model data: hierarkis, jaringan, relasional, objek
Berikut adalah **Modul 3: Model Data dan Entity Relationship (ER)** yang dirancang untuk mata kuliah *Sistem Basis Data*, dengan fokus pada berbagai model data (Hierarkis, Jaringan, Relasional, dan Objek), serta implementasi dasar menggunakan MySQL di Ubuntu 24.04.
---
- **Modul 3: Model Data dan Entity Relationship (ER)**
- **Tujuan Pembelajaran**
Setelah mempelajari modul ini, mahasiswa mampu: - Menjelaskan berbagai jenis model data: hierarkis, jaringan, relasional, dan objek. - Memahami konsep Entity-Relationship (ER). - Mengimplementasikan model relasional dan desain ER menggunakan MySQL di Ubuntu 24.04.
---
- **3.1 Pengantar Model Data**
Model data adalah cara untuk mendeskripsikan struktur logis dari data, hubungan antar data, serta aturan integritasnya. Berikut adalah beberapa jenis model data:
---
- **3.2 Model Data Hierarkis**
- Definisi:**
Model data yang menyusun data secara bertingkat seperti pohon (tree structure). Setiap parent dapat memiliki banyak child, tetapi setiap child hanya memiliki satu parent.
- Contoh:**
Struktur organisasi perusahaan: - CEO
- Manager - Karyawan
- Catatan:**
Model ini **tidak digunakan** secara langsung di MySQL, tapi bisa divisualisasikan melalui struktur tabel dengan relasi `parent-child`.
---
- **3.3 Model Data Jaringan (Network Model)**
- Definisi:**
Memungkinkan setiap record memiliki banyak parent dan banyak child. Hubungan direpresentasikan melalui pointer atau relasi eksplisit.
- Contoh:**
Dalam sistem proyek: - Seorang karyawan bisa terlibat di banyak proyek. - Satu proyek bisa melibatkan banyak karyawan.
- Implementasi MySQL (Relasi Many-to-Many):**
```sql -- Tabel Karyawan CREATE TABLE karyawan (
id_karyawan INT PRIMARY KEY, nama VARCHAR(50)
);
-- Tabel Proyek CREATE TABLE proyek (
id_proyek INT PRIMARY KEY, nama_proyek VARCHAR(50)
);
-- Tabel relasi banyak ke banyak CREATE TABLE karyawan_proyek (
id_karyawan INT, id_proyek INT, PRIMARY KEY (id_karyawan, id_proyek), FOREIGN KEY (id_karyawan) REFERENCES karyawan(id_karyawan), FOREIGN KEY (id_proyek) REFERENCES proyek(id_proyek)
); ```
---
- **3.4 Model Data Relasional**
- Definisi:**
Model data yang paling umum digunakan saat ini, data disimpan dalam bentuk tabel (relasi), dan relasi dihubungkan melalui *foreign key*.
- Contoh MySQL (Relasi Satu ke Banyak):**
```sql -- Tabel Mahasiswa CREATE TABLE mahasiswa (
nim VARCHAR(10) PRIMARY KEY, nama VARCHAR(50)
);
-- Tabel Nilai CREATE TABLE nilai (
id_nilai INT PRIMARY KEY AUTO_INCREMENT, nim VARCHAR(10), mata_kuliah VARCHAR(50), nilai INT, FOREIGN KEY (nim) REFERENCES mahasiswa(nim)
); ```
---
- **3.5 Model Data Berorientasi Objek**
- Definisi:**
Model ini menggabungkan konsep dari OOP (Object-Oriented Programming) seperti class, inheritance, dan encapsulation ke dalam basis data.
- Catatan:**
MySQL tidak mendukung sepenuhnya model ini, namun konsep objek bisa ditiru lewat tipe data JSON atau penggunaan prosedur dan trigger.
- Contoh Pendekatan Obyek di MySQL (menggunakan JSON):**
```sql CREATE TABLE produk (
id INT PRIMARY KEY, nama_produk VARCHAR(50), spesifikasi JSON
);
-- Insert data INSERT INTO produk VALUES (1, 'Laptop', JSON_OBJECT('RAM', '16GB', 'CPU', 'Intel i7')); ```
---
- **3.6 Entity Relationship (ER) Model**
- Definisi:**
ER Model digunakan untuk merancang skema basis data sebelum diubah menjadi tabel relasional. ERD (Entity Relationship Diagram) merepresentasikan entitas, atribut, dan relasi antar entitas.
- Komponen ER:
- **Entitas:** Objek nyata (misalnya: Mahasiswa, Dosen) - **Atribut:** Ciri dari entitas (misalnya: nama, NIM) - **Relasi:** Hubungan antar entitas (misalnya: Mahasiswa mengikuti Mata Kuliah)
---
- **3.7 Studi Kasus & Implementasi ER ke MySQL**
- Desain ER:**
- Entitas: Mahasiswa, Dosen, Mata Kuliah - Relasi: Dosen mengajar Mata Kuliah, Mahasiswa mengikuti Mata Kuliah
- Implementasi di MySQL Ubuntu 24.04:**
```sql CREATE TABLE dosen (
id_dosen INT PRIMARY KEY, nama_dosen VARCHAR(50)
);
CREATE TABLE matakuliah (
id_matkul INT PRIMARY KEY, nama_matkul VARCHAR(50), id_dosen INT, FOREIGN KEY (id_dosen) REFERENCES dosen(id_dosen)
);
CREATE TABLE mahasiswa (
nim VARCHAR(10) PRIMARY KEY, nama VARCHAR(50)
);
CREATE TABLE krs (
nim VARCHAR(10), id_matkul INT, PRIMARY KEY (nim, id_matkul), FOREIGN KEY (nim) REFERENCES mahasiswa(nim), FOREIGN KEY (id_matkul) REFERENCES matakuliah(id_matkul)
); ```
---
- **3.8 Kesimpulan**
- Model data relasional adalah yang paling banyak digunakan di dunia nyata. - Entity Relationship Diagram membantu mendesain database yang efisien. - MySQL mendukung penuh model relasional dan bisa meniru model lainnya secara terbatas. - Implementasi ERD ke tabel MySQL sangat penting sebagai dasar membangun sistem informasi.
---
Kalau kamu mau saya bantu juga buat versi PowerPoint atau diagram ER-nya, tinggal bilang ya!