WebTech Interaktif XI RPL

Laravel · Bab 11

Proyek Akhir: Tantangan Mandiri

Dua tantangan untuk menguji pemahamanmu — menambah tabel Supplier ke Smart Retail App, lalu membangun proyek orisinal minimal tiga tabel dengan autentikasi.

Setelah Lab 1–7, kamu sudah membangun satu aplikasi Laravel utuh. Bab ini berisi dua tantangan tanpa panduan langkah demi langkah: memperluas Smart Retail App, lalu membangun aplikasi orisinalmu sendiri.

Tantangan 1: Ekspansi Tabel Master Supplier

Di dunia nyata, stok produk diisi lewat kiriman rekanan dagang (Supplier). Perluas sistem Retail Store agar memiliki tabel master ke-4:

  1. Buat Model & migrasi Supplier. Nama tabel suppliers, dengan kolom id, name (string), phone (string), address (text), dan timestamps.
  2. Modifikasi tabel products. Buat file migrasi baru untuk menambahkan kolom foreign key supplier_id ke tabel products. Jangan mengubah migrasi lama yang sudah dijalankan.
  3. Definisikan relasi Eloquent. Class Supplier memiliki relasi hasMany ke Product, dan Class Product memiliki relasi belongsTo ke Supplier.
  4. Perbarui form antarmuka. Tambahkan dropdown <select name="supplier_id"> pada form tambah dan edit produk, lalu tampilkan nama supplier di tabel katalog (products/index.blade.php).

Tantangan 2: Proyek Mandiri

Pilih salah satu topik berikut, atau usulkan skenario bisnis kontekstual lain. Bangun aplikasi web Laravel CRUD berbasis relasi minimal 3 tabel (2 master, 1 transaksi) dan dilengkapi sistem Autentikasi pengguna.

Opsi A: Motorcycle Workshop System

Sistem manajemen bengkel sepeda motor.

  • Master 1: customers (name, license_plate, phone_number)
  • Master 2: spareparts (part_code, name, price, stock)
  • Transaksi: service_details (customer_id, sparepart_id, service_fee, total_price, complaint, service_date)

Opsi B: School Lab Equipment Loan System

Sistem peminjaman inventaris lab komputer.

  • Master 1: students (student_id_number, name, classroom)
  • Master 2: equipments (equipment_code, name, condition, stock)
  • Transaksi: loans (student_id, equipment_id, quantity, loan_date, return_status)

Opsi C: Outpatient Clinic System

Sistem klinik rawat jalan mini.

  • Master 1: patients (medical_record_number, name, birth_date, address)
  • Master 2: doctors (employee_id, name, specialization)
  • Transaksi: medical_records (patient_id, doctor_id, diagnosis, consultation_fee, examination_date)