Model data: hierarkis, jaringan, relasional, objek
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
- Manager
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):
--- 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):
--- 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):
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:
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.