Laravel Relationship: Student, Major, dan Subject

Author: Sherly Ananda Putri - 2311532017

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

Tools yang saya gunakan:

- Komputer/Laptop

- XAMPP: Sebagai local web server untuk menjalankan PHP dan MySQL di komputer lokal.

xampp-image

- Visual Studio Code: Sebagai code editor untuk menulis skrip PHP dan HTML.

vscode-image

- Composer, Git, Node JS, NPM: Untuk manajemen paket dan dependensi.

Fitur-fitur pada Laravel

1. Eloquent ORM (Object-Relational Mapping): Memudahkan operasi database dengan pendekatan OOP.

2. Blade Templating Engine: Templating engine yang efisien dan bersih.

3. Artisan Console: Command-line interface (CLI) yang disertakan dengan Laravel.

4. Routing: Sistem perutean yang fleksibel memungkinkan untuk mendefinisikan URL aplikasi dan mengaitkannya dengan controller atau closure functions.

5. Middleware: Digunakan untuk autentikasi, logging, validasi, dan tugas-tugas lain sebelum atau sesudah request ditangani oleh aplikasi.

6. Form Request Validation: Memudahkan proses validasi data yang dikirim melalui form.

7. Security: Fitur keamanan laravel.

8. Authentication & Authorization: Menyediakan sistem otentikasi (login, registrasi, lupa kata sandi) dan otorisasi (hak akses pengguna) yang mudah diimplementasikan.

9. Testing: Dukungan bawaan untuk berbagai jenis pengujian, termasuk unit testing, integration testing, dan end-to-end testing.

10. Queues: Sistem antrian yang memungkinkan untuk menunda tugas-tugas yang memakan waktu

11. Caching: Mendukung berbagai sistem caching (seperti Redis, Memcached, file) untuk meningkatkan performa aplikasi dengan menyimpan data yang sering diakses dalam memori.

12. Events & Listeners: Implementasi dari pola Observer.

13. Notifications: Memudahkan pengiriman notifikasi ke berbagai saluran, seperti email, SMS, database, atau layanan pihak ketiga.

14. Broadcasting: Memungkinkan melakukan siaran event secara real-time melalui WebSockets.

15. Task Scheduling: Memungkinkan menjadwalkan tugas-tugas cron menggunakan sintaks yang ekspresif dalam kode PHP.

16. Passport (OAuth2 Server): Paket resmi untuk mengimplementasikan otentikasi OAuth2.

17. Sanctum (API Authentication): Paket ringan untuk mengimplementasikan sistem otentikasi berbasis token untuk Single-Page Applications (SPAs), mobile applications, dan simple APIs.

18. Socialite (Social Authentication): Memudahkan integrasi otentikasi dengan berbagai penyedia layanan OAuth seperti Facebook, Twitter, Google, dan lainnya.

19. Filesystem: Abstraksi untuk berinteraksi dengan berbagai sistem penyimpanan file, baik lokal maupun cloud (seperti Amazon S3 atau Google Cloud Storage).

20. Mail: Memudahkan pengiriman email dengan dukungan untuk berbagai driver seperti SMTP, Mailgun, dan Amazon SES.

21. Pusher (Realtime Services): Untuk menambahkanfitur realtime ke aplikasi.

22. Localization: (Realtime Services): Memudahkan pembuatan aplikasi multibahasa dengan fitur untuk mengelola terjemahan.

23. Packages: Memungkinkan dengan mudah menambahkan fungsionalitas tambahan ke aplikasi.

Langkah-langkah:

1. Membuat Migration:

Buat tabel major , students , subjects dan student_subject menggunakan perintah artisan dan tambahkan relasi menggunakan foreignId dan constrained() .
2. Jalankan migration:
Jalankan semua migration dengan perintah php artisan serve untuk membuat struktul tabel di database.

3. Membuat Model: Buat model major , Student , dan Subject serta definisikan relasi Eloquentnya (hasMany, belongsTo, belongsToMany)


4. Membuat Seeder Tambahkan data dummy ke tabel Major , Students , dan Subjects dengan membuat file seeder masing-masing dan panggil relasi pivot pada student ke subject.



5. Membuat Seeder untuk Database: Update file DatabaseSeeder.php menjadi seperti berikut:

Syarat Laravel

6. Menjalankan Seeder: Jalankan php artisan db:seed di bash untuk menjalankan seeder.

7. Membuat Controller: Tambahkan route resource Route::resource('students', StudentController::class); di file web.php.

Syarat Laravel

8. Membuat Route: Gunakan perintah php artisan make:controller StudentController dan buat method untuk CRUD data mahasiswa serta menampilkan relasi dengan eager loading.

Syarat Laravel

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 data mahasiswa dengan jurursan dan mata kuliah di blade view:
Syarat Laravel
Demikian Laporan 5 Praktikum Pemograman Web pertemuan 10 ini. Semoga Bermanfaat.
Kembali ke menu praktikum