Studi Kasus:
Ilustrasi Relasi
- Satu
Mahasiswa dapat mengambil banyak Mata Kuliah melalui tabel KRS.
- Satu
Mata Kuliah dapat diambil oleh banyak Mahasiswa melalui
tabel KRS.
-- ==========================================
-- 1. PEMBUATAN DATABASE
-- ==========================================
CREATE DATABASE IF NOT EXISTS db_akademik;
USE db_akademik;
-- ==========================================
-- 2. PEMBUATAN TABEL INDUK (PARENT TABLES)
-- ==========================================
-- Tabel Mahasiswa
CREATE TABLE mahasiswa (
id_mahasiswa INT
AUTO_INCREMENT PRIMARY KEY,
nim VARCHAR(15)
UNIQUE NOT NULL,
nama_mahasiswa
VARCHAR(100) NOT NULL
);
-- Tabel Mata Kuliah
CREATE TABLE mata_kuliah (
id_matkul INT
AUTO_INCREMENT PRIMARY KEY,
kode_matkul
VARCHAR(10) UNIQUE NOT NULL,
nama_matkul
VARCHAR(100) NOT NULL
);
-- ==========================================
-- 3. PEMBUATAN TABEL PERANTARA (JUNCTION TABLE)
-- ==========================================
-- Tabel KRS (Kartu Rencana Studi) dengan Foreign Key
CREATE TABLE krs (
id_krs INT
AUTO_INCREMENT PRIMARY KEY,
id_mahasiswa INT
NOT NULL,
id_matkul INT NOT
NULL,
-- Menghubungkan
Foreign Key ke tabel mahasiswa dan mata_kuliah
CONSTRAINT
fk_mahasiswa FOREIGN KEY (id_mahasiswa)
REFERENCES
mahasiswa(id_mahasiswa)
ON DELETE
CASCADE ON UPDATE CASCADE,
CONSTRAINT
fk_matkul FOREIGN KEY (id_matkul)
REFERENCES
mata_kuliah(id_matkul)
ON DELETE
CASCADE ON UPDATE CASCADE
);
-- ==========================================
-- 4. CONTOH PENGISIAN DATA (DML)
-- ==========================================
-- Masukkan data mahasiswa
INSERT INTO mahasiswa (nim, nama_mahasiswa) VALUES
('230101', 'Budi Santoso'),
('230102', 'Siti Rahma'),
('230103', 'Ahmad Fauzi');
-- Masukkan data mata kuliah
INSERT INTO mata_kuliah (kode_matkul, nama_matkul) VALUES
('IF101', 'Pemrograman Web'),
('IF102', 'Basis Data'),
('IF103', 'Algoritma Pemrograman');
-- Masukkan data KRS (Relasi Many-to-Many)
INSERT INTO krs (id_mahasiswa, id_matkul) VALUES
(1, 1), -- Budi mengambil Pemrograman Web
(1, 2), -- Budi mengambil Basis Data
(2, 1), -- Siti mengambil Pemrograman Web
(2, 3), -- Siti mengambil Algoritma Pemrograman
(3, 2); -- Ahmad mengambil Basis Data
-- ==========================================
-- 5. CONTOH QUERY MENAMPILKAN DATA (JOIN)
-- ==========================================
SELECT
m.nim,
m.nama_mahasiswa,
mk.kode_matkul,
mk.nama_matkul
FROM krs k
JOIN mahasiswa m ON k.id_mahasiswa = m.id_mahasiswa
JOIN mata_kuliah mk ON k.id_matkul = mk.id_matkul;
Langkah 1: Konfigurasi Koneksi Database (.env)
Buka file .env di root project Laravel Anda, lalu sesuaikan
bagian konfigurasi database agar terhubung ke database db_akademik:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_akademik
DB_USERNAME=root
DB_PASSWORD=
Langkah 2: Membuat Model dan Migration
Gunakan Artisan CLI untuk membuat Model Mahasiswa sekaligus
file migration-nya:
php artisan make:model Mahasiswa -m
Langkah 3: Membuat Controller (Resource Controller)
Buat Controller dengan opsi --resource agar otomatis
menghasilkan fungsi CRUD (index, create, store, show, edit, update, destroy):
php artisan make:controller MahasiswaController –resource
Langkah 4: Menambahkan Route
Buka file routes/web.php, lalu daftarkan resource route
untuk controller tersebut
Langkah 5: Membuat Tampilan (Views Blade)
Buat folder baru bernama mahasiswa di dalam direktori
resources/views/. Di dalam folder tersebut, buat tiga file utama:
- resources/views/mahasiswa/index.php
(Menampilkan tabel data & tombol hapus)
- resources/views/mahasiswa/create.php (Form input data baru)
- resources/views/mahasiswa/edit.blade.php (Form ubah data)
Link






