Laravel Relationship: Student, Major, dan Subject

Published: 18 Juni 2025 | Author: Ezza Addini

Praktikum ini bertujuan untuk memahami implementasi relasi One-to-Many dan Many-to-Many di Laravel dengan studi kasus sistem akademik sederhana.

Langkah-Langkah Praktikum
  1. Membuat Migration: Buat tabel majors, students, subjects, dan student_subject menggunakan perintah artisan dan tambahkan relasi menggunakan foreignId dan constrained().

    Contoh migration relasi
    Gambar 1: Contoh migration dengan foreign key dan relasi untuk tabel Majors.
    Contoh migration relasi
    Gambar 2: Contoh migration dengan foreign key dan relasi untuk tabel Students.
    Contoh migration relasi
    Gambar 3: Contoh migration dengan foreign key dan relasi untuk tabel Subjects.
    Contoh migration relasi
    Gambar 4: Contoh migration dengan foreign key dan relasi untuk tabel Student_Subject.
  2. Menjalankan Migration: Jalankan semua migration dengan perintah php artisan migrate untuk membuat struktur tabel di database.

    Jalankan migrasi
    Gambar 5: Jalankan perintah migrasi.
  3. Membuat Model: Buat model Major, Student, dan Subject serta definisikan relasi Eloquent-nya (hasMany, belongsTo, belongsToMany).

    Model Eloquent Laravel
    Gambar 6: Membuat model Major di Laravel.
    Model Eloquent Laravel
    Gambar 7: Membuat model Student di Laravel.
    Model Eloquent Laravel
    Gambar 8: Membuat model Subject di Laravel.
  4. Membuat Seeder: Tambahkan data dummy ke tabel majors, subjects, dan students dengan membuat file seeder masing-masing dan panggil relasi pivot pada student ke subject.

    Membuat seeder
    Gambar 9: Membuat seeder untuk tabel Major.
    Membuat seeder
    Gambar 10: Membuat seeder untuk tabel Subject.
    Membuat seeder
    Gambar 11: Membuat seeder untuk tabel Student.
  5. Membuat Seeder untuk Database: Update file DatabaseSeeder.php menjadi sebagai berikut.

    Membuat seeder
    Gambar 12: Membuat seeder untuk DatabaseSeeder.php.
  6. Menjalankan Seeder: Jalankan php artisan db:seed.

    Membuat seeder
    Gambar 13: Jalankan php artisan db:seed.
  7. Membuat Controller: Gunakan perintah php artisan make:controller StudentController dan buat method untuk CRUD data mahasiswa serta menampilkan relasi dengan eager loading.

    StudentController
    Gambar 14: Contoh controller dengan method index() dan relasi.
  8. Mendaftarkan Route: Tambahkan route resource Route::resource('students', StudentController::class); di web.php.

    Route
    Gambar 15: Mendaftarkan route.
  9. Membuat View: Buat view menggunakan Blade di folder resources/views/students dan tampilkan data mahasiswa beserta jurusan dan mata kuliahnya di index.blade.php.

    Tampilan daftar mahasiswa
    Gambar 16: Membuat app.blade.php.
    Tampilan daftar mahasiswa
    Gambar 17: Membuat index.blade.php.
    Tampilan daftar mahasiswa
    Gambar 18: Membuat create.blade.php.
    Tampilan daftar mahasiswa
    Gambar 19: Menampilkan data mahasiswa dengan jurusan dan mata kuliah di blade view.
Latihan 1
  1. Menjalankan perintah tambah, edit, dan hapus.

    Tampilan tambah mahasiswa
    Gambar 20: Menambahkan data mahasiswa.
    Tampilan hapus mahasiswa
    Gambar 21: Menghapus data mahasiswa.
    Tampilan edit mahasiswa
    Gambar 22: Mengedit data mahasiswa.
Latihan 2

File Latihan 2 dapat diakses melalui link GitHub berikut: GitHub Repository

Penutup

Dengan praktikum ini, mahasiswa diharapkan dapat menguasai konsep dan praktik pengelolaan relasi antar tabel menggunakan Laravel Eloquent, serta mampu menampilkan data yang saling terhubung secara efisien dalam aplikasi berbasis web.

Kembali ke Daftar Laprak