Kembali ke Portofolio
Pemrograman Web
Published on: 3 June 2026

Laporan Praktikum 8: Laravel Relationship

Pendahuluan

Praktikum ini bertujuan untuk memberikan pemahaman mendalam mengenai konsep relasi antar-tabel (relationship) di dalam framework Laravel, serta mengimplementasikannya secara nyata melalui hubungan One-to-Many dan Many-to-Many. Selain memetakan hubungan antar-objek di tingkat basis data menggunakan migration yang dilengkapi dengan foreign key, praktikum ini juga melatih penggunaan fitur Eloquent Relationship untuk melakukan query data secara efisien. Pada tahap akhir, mahasiswa diharapkan mampu mengintegrasikan alur data tersebut untuk kemudian menampilkan informasi yang saling berelasi secara dinamis ke dalam halaman antarmuka (view).

Repository Github

Langkah Kerja

1. Membuat migration untuk tabel

Pertama kita buat migration untuk tabel major, dengan perintah php artisan make:migration create_majors_table. Lalu kita buka file migration yang sudah dibuat, lalu kita buat field-fieldnya, disini aku membuat field id, name, dan timestamps.

ss1 ss2

Selanjutnya kita buat migration untuk tabel student, dengan perintah php artisan make:migration create_students_table. Lalu kita buka file migration yang sudah dibuat, lalu kita buat field-fieldnya, disini aku membuat field id, name, major_id, dan timestamps. Disini kita buat field major_id sebagai foreign key yang mengarah ke tabel majors.

ss3 ss4

Selanjutnya membuat migration untuk tabel subject, dengan perintah php artisan make:migration create_subjects_table. Lalu kita buka file migration yang sudah dibuat, lalu kita buat field-fieldnya.

ss5 ss6

Selanjutnya kita buat migration untuk tabel pivot student_subject, dengan perintah php artisan make:migration create_student_subject_table. Lalu kita buka file migration yang sudah dibuat, lalu kita buat field-fieldnya, disini aku membuat field student_id dan subject_id sebagai foreign key yang mengarah ke tabel students dan subjects.

ss7 ss8

Terakhir kita jalankan perintah php artisan migrate untuk menjalankan migration dan membuat tabel di database.

ss9
2. Membuat model dengan relationship

Buat model untuk tabel major, student, dan subject dengan perintah php artisan make:model major, student, subject. Lalu kita buka file model yang sudah dibuat, lalu kita buat function untuk mendefinisikan relationship antar model. Lalu kita buat function agar masing masing model dapat mengakses data dari model lain yang berelasi dengan model tersebut.

ss10 ss11 ss12 ss13 ss14 ss15
3. Membuat seeder untuk data sample

Pertama, seeder untuk tabel major, dengan perintah php artisan make:seeder MajorSeeder. Lalu tambahkan code pada foto berikut di function run() untuk mengisi data sample pada tabel major.

ss16 ss17

Selanjutnya, seeder untuk tabel subject, dengan perintah php artisan make:seeder SubjectSeeder. Lalu tambahkan code pada foto berikut di function run() untuk mengisi data sample pada tabel subject.

ss18 ss19

Selanjutnya, seeder untuk tabel student, dengan perintah php artisan make:seeder StudentSeeder. Lalu tambahkan code pada foto berikut di function run() untuk mengisi data sample pada tabel student.

ss20 ss21

Selanjutnya, kita melakukan update pada file DatabaseSeeder.php untuk memanggil seeder yang sudah dibuat, lalu kita jalankan perintah php artisan db:seed untuk menjalankan seeder dan mengisi data sample ke dalam tabel di database.

ss22 ss23
4. Membuat Controller

Proses pembuatan controller diawali dengan menjalankan perintah php artisan make:controller StudentController pada terminal untuk membuat sebuah resource controller khusus bagi entitas Student. Setelah berkas berhasil digenerasikan, beberapa fungsi operasi CRUD (Create, Read, Update, Delete) ditambahkan ke dalam StudentController guna mengelola data mahasiswa secara terstruktur. Fungsi-fungsi tersebut meliputi index() untuk menampilkan daftar keseluruhan mahasiswa, show() untuk menyajikan detail informasi dari seorang mahasiswa secara spesifik, serta create() dan store() yang masing-masing berfungsi untuk menampilkan formulir dan menyimpan data mahasiswa baru ke basis data. Sementara itu, untuk proses perubahan data, fungsi edit() digunakan untuk menampilkan formulir pengeditan dan update() untuk memperbarui data yang telah diubah, yang kemudian diakhiri dengan fungsi destroy() untuk menangani aksi penghapusan data mahasiswa dari sistem.

ss24 ss25
5. Membuat Route

Tambahkan route untuk resource student pada file web.php dengan perintah Route::resource('students', StudentController::class).

ss26
5. Membuat View

Kita buat view untuk layout utama, index, create.

ss27 ss28 ss29

Berikut adalah hasil dari project yang kita buat.

ss30
6. Latihan dan Tugas (Query dgn Relationship)

Kita diminta untuk membuat query untuk menampilkan: 1.Semua mahasiswa beserta jurusan dan mata kuliahnya; 2.Jurusan yang memiliki mahasiswa terbanyak; 3.Mata kuliah yang diambil oleh mahasiswa tertentu; 4.Total SKS yang diambil setiap mahasiswa. Disini aku membuat function pada studentcontroller untuk setiap nomor latihan. juga kita buatkan route dan view agar function tersebut dapat diakses melalui url.

ss31 ss32

Latihan 1,

ss33

Latihan 2,

ss34

Latihan 3,

ss35

Latihan 4,

ss36