Kembali ke Beranda

Praktikum Laravel: Relationship (Student - Major - Subject)

Tujuan Pembelajaran

  • Memahami konsep relationship dalam Laravel
  • Mengimplementasikan One-to-Many dan Many-to-Many relationship
  • Membuat migration dengan foreign key
  • Menggunakan Eloquent relationship untuk query data
  • Menampilkan data dengan relationship di view

Struktur Relasi

  • Student belongs to Major (Many-to-One)
  • Student belongs to many Subjects (Many-to-Many)
  • Major has many Students (One-to-Many)
  • Subject belongs to many Students (Many-to-Many)
ERD Major dan Student

ERD Major dan Student

ERD Student dan Subject

ERD Student dan Subject

1. Migration

Kita akan membuat migration untuk 4 tabel: majors, students, subjects, dan student_subject.

php artisan make:migration create_majors_table
Migration students
php artisan make:migration create_students_table 
Migration students
php artisan make:migration create_subjects_table
Migration subjects
php artisan make:migration create_student_subject_table 
Migration Student_subject

Jalankan migrate

php artisan migrate 

2. Model & Relationship

Kita akan membuat 3 model: Major, Student, dan Subject. Setiap model memiliki relasi sebagai berikut:

php artisan make:model Major 
Migration majors
php artisan make:model Student 
Migration Student
php artisan make:model Subject 
Migration subject

3. Seeder Data

Untuk mengisi data awal, buatlah seeder untuk masing-masing model: MajorSeeder, SubjectSeeder, dan StudentSeeder.

php artisan make:model Major 
Migration majorseeder
php artisan make:seeder SubjectSeeder  
Migration subjectseeder
php artisan make:seeder StudentSeeder  
Migration Studentseeder
Update databaseSeeder
Migration databaseSeeder

Jalankan seeder dengan perintah:

php artisan db:seed
Seeder

4. Controller

Kita buat controller resource untuk Student dengan command:

php artisan make:controller StudentController
StudentController

5. Routing

Tambahkan route resource di file web.php:

update route Web
web route

6. Tampilan (Views)

Gunakan folder resources/views/students. buat folder Layout : layouts/app.blade.php.

Buat file app.blade.php seperti gambar
app blade
Buat file index.blade.php seperti gambar
index blade
buat file create.blade.php seperti gambar
Create blade

7. Hasil Tampilan

Halaman List Mahasiswa
List Mahasiswa
Form Tambah Mahasiswa
Form Tambah Mahasiswa
Tampilan Setelah Menambahkan Data
Setelah Menambahkan Data
Halaman Edit Mahasiswa
Halaman Edit Mahasiswa
Tampilan Setelah Mengedit Data
Setelah Mengedit Data

Latihan & Query Relationship

  • Tampilkan semua mahasiswa beserta jurusan dan mata kuliahnya
  • Jurusan dengan mahasiswa terbanyak
  • Mata kuliah yang diambil oleh mahasiswa tertentu
  • Total SKS tiap mahasiswa
  • a. Membuat file detail.blade.php

    DetailBlade

    b. Update Route/web.php

    update dengan kode dibawah supaya terbaca file detail.blade

    DetailBlade

    c. Tambahkan function Detail di StudentControler

    DetailBlade

    Tampilan Detail Mahasiswa

    DetailBlade DetailBlade

Kesimpulan

  • Relationship Laravel membantu mengelola relasi antar tabel dengan mudah
  • One-to-Many dan Many-to-Many diterapkan menggunakan Eloquent
  • Data ditampilkan dinamis di view menggunakan Blade
  • Meningkatkan efisiensi query dengan eager loading