Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:
Laravel menggunakan pola arsitektur MVC (Model-View-Controller) yang memisahkan logika aplikasi menjadi tiga komponen utama. Model bertugas mengelola data dan interaksi dengan database menggunakan Eloquent ORM. View bertanggung jawab menampilkan antarmuka kepada pengguna menggunakan Blade Template Engine. Controller berfungsi sebagai penghubung antara Model dan View, memproses request dari pengguna.
Migration adalah fitur Laravel untuk membuat dan mengelola struktur database menggunakan kode program, sehingga memudahkan versioning dan kolaborasi antar developer. Seeding digunakan untuk mengisi data awal ke database, sangat berguna untuk pengujian dan pembuatan data dummy.
Buka file .env pada root project Laravel, kemudian ubah konfigurasi database sesuai dengan pengaturan MySQL yang digunakan.
Pastikan database praktikum_laravel sudah dibuat sebelum melanjutkan ke langkah berikutnya.
Migration digunakan untuk membuat dan mengelola struktur database menggunakan kode program. Jalankan perintah php artisan make:migration create_products_table di terminal untuk membuat file migration.
File migration berada pada folder database/migrations. Buka file tersebut dan tambahkan kolom name, price, dan description pada method up().
Jalankan migration menggunakan perintah php artisan migrate. Setelah dijalankan, maka tabel products akan terbentuk secara otomatis.
Untuk mengatasi error tersebut, jalankan perintah php artisan migrate:fresh yang berfungsi menghapus seluruh tabel lama dan menjalankan ulang semua migration dari awal, sehingga tabel products berhasil terbentuk.
Seeding digunakan untuk mengisi data awal ke database. Jalankan perintah php artisan make:seeder ProductSeeder untuk membuat file seeder.
Buka file ProductSeeder.php di folder database/seeders, kemudian isi dengan data produk awal seperti Laptop dan Mouse.
Daftarkan seeder pada file DatabaseSeeder.php dengan menambahkan $this->call(ProductSeeder::class).
Jika ingin menjalankan migration dan seeding bersamaan jalankan perintah php artisan migrate:fresh --seed . Setelah dijalankan, data produk akan masuk ke dalam tabel products di database.
Model digunakan untuk berinteraksi dengan database menggunakan Eloquent ORM. Buat model product dengan perintah php artisan make:model Product di terminal.
Buka file app/Models/Product.php dan tambahkan property $fillable untuk menentukan kolom yang dapat diisi.
Controller bertugas mengatur logika aplikasi dan menjadi penghubung antara Model dan View. Jalankan perintah php artisan make:controller ProductController di terminal.
Buka file ProductController.php di folder app/Http/Controllers, kemudian buat method index() yang mengambil semua data produk menggunakan Product::all() dan mengirimkannya ke view.
Routing menentukan URL dan respon yang diberikan aplikasi. Buka file routes/web.php dan tambahkan route /products yang mengarah ke method index pada ProductController.
Pertama, buat file layout utama pada resources/views/layouts/app.blade.php. Blade Layout memungkinkan kerangka HTML yang sama digunakan ulang di banyak halaman tanpa penulisan ulang.
Kemudian buat file resources/views/products.blade.php dan ubah isinya agar menggunakan layout dengan @extends serta menampilkan data produk menggunakan @foreach. Karena data berasal dari database, akses propertinya menggunakan $product->name.
Pastikan server Laravel sudah berjalan dengan perintah php artisan serve, kemudian buka browser dan akses http://127.0.0.1:8000/products.
Halaman menampilkan judul "Praktikum Pemrograman Web : Laravel" beserta daftar produk dari database lengkap dengan nama, harga, dan deskripsi, membuktikan seluruh alur MVC berjalan dengan benar.
Pada bagian latihan ini, dibuat implementasi Migration, Seeding, Model, Route, Controller, dan View untuk mengelola data mahasiswa dengan kolom nim, nama, jurusan, dan angkatan.
Untuk efisiensi, Laravel menyediakan shortcut pembuatan Model beserta Migration, Seeder, dan Controller sekaligus dalam satu perintah menggunakan flag -mcs.
Dari satu perintah tersebut, Laravel otomatis membuat 4 file sekaligus: Mahasiswa.php (Model), file migration tabel mahasiswas, MahasiswaSeeder.php, dan MahasiswaController.php.
Buka file migration yang terbentuk di folder database/migrations, kemudian tambahkan kolom nim, nama, jurusan, dan angkatan pada method up().
Jalankan php artisan migrate untuk membuat tabel mahasiswas di database.
Buka file MahasiswaSeeder.php di folder database/seeders, kemudian isi dengan data mahasiswa awal.
Daftarkan seeder pada DatabaseSeeder.php dengan menambahkan $this->call(MahasiswaSeeder::class), kemudian jalankan php artisan db:seed.
Buka file app/Models/Mahasiswa.php dan tambahkan property $fillable untuk menentukan kolom yang dapat diisi, yaitu nim, nama, jurusan, dan angkatan.
Buka file app/Http/Controllers/MahasiswaController.php dan isi dengan method-method CRUD: index() untuk menampilkan data, create() untuk form tambah, store() untuk menyimpan data baru, edit() untuk form edit, update() untuk mengubah data, dan destroy() untuk menghapus data.
Buka file routes/web.php dan tambahkan Resource Route untuk mahasiswa dengan Route::resource, yang secara otomatis mendaftarkan semua route CRUD (index, create, store, show, edit, update, destroy) sekaligus.
Buat file resources/views/mahasiswa/index.blade.php untuk menampilkan daftar seluruh mahasiswa dalam bentuk tabel, lengkap dengan tombol Edit dan Hapus pada setiap baris, serta tombol Tambah Mahasiswa di bagian atas.
Buat file resources/views/mahasiswa/create.blade.php yang berisi form input untuk menambahkan data mahasiswa baru. Form menggunakan method POST ke route /mahasiswa dengan token @csrf untuk keamanan.
Buat file resources/views/mahasiswa/edit.blade.php yang berisi form untuk mengubah data mahasiswa. Form menggunakan method POST dengan @method('PUT') dan menampilkan nilai data lama di setiap field sebagai value awal.
Akses http://127.0.0.1:8000/mahasiswa di browser untuk memastikan seluruh fitur CRUD berjalan dengan benar — menampilkan data, menambah, mengedit, dan menghapus data mahasiswa.
Praktikum ini berhasil mengimplementasikan alur lengkap MVC pada Laravel, mulai dari konfigurasi database, pembuatan tabel menggunakan Migration, pengisian data awal melalui Seeding, pembuatan Model dengan Eloquent ORM, pembuatan Controller untuk memproses logika, pengaturan Routing, hingga menampilkan data ke View menggunakan Blade Template Engine.
Data produk dan mahasiswa berhasil ditampilkan di browser pada URL /products dan /mahasiswa dengan format yang rapi,
membuktikan bahwa seluruh komponen MVC telah terhubung dan berjalan dengan benar.
Penggunaan Blade Layout juga berhasil menghindari penulisan ulang struktur HTML pada setiap halaman.
| Komponen | File | Fungsi |
|---|---|---|
| Migration | database/migrations/..._create_products_table.php | Membuat struktur tabel products |
| Seeder | database/seeders/ProductSeeder.php | Mengisi data awal (Laptop, Mouse) |
| Model | app/Models/Product.php | Interaksi data dengan database |
| Controller | app/Http/Controllers/ProductController.php | Mengambil data dan mengirim ke view |
| Route | routes/web.php | Menentukan URL /products |
| Layout | resources/views/layouts/app.blade.php | Template HTML yang dapat digunakan ulang |
| View | resources/views/products.blade.php | Menampilkan daftar produk |
Berdasarkan praktikum yang telah dilakukan, dapat disimpulkan bahwa:
Product::all().