Model data: hierarkis, jaringan, relasional, objek

From OnnoWiki
Jump to navigation Jump to search

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):

--- 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.

Pranala Menarik