HOME ABOUT PORTFOLIO LAPORAN CONTACT
///
PRAKTIKUM 07
// 07 · PRACTICAL REPORT

LAPORAN 7

Migration, Seeding, Routing, Model, Controller, View

Kembali ke Laporan
// Pemrograman Web

Laporan Praktikum 7

Migration · Seeding · Routing · Model · Controller · View

Disusun Oleh Rafi Haikal Pratama
Tanggal 27 Mei 2026
Status Selesai

Pada praktikum ke-7 ini, kegiatan difokuskan pada penerapan konsep MVC (Model-View-Controller) secara lebih mendalam menggunakan framework Laravel. Berbeda dari praktikum sebelumnya yang membahas instalasi dan konfigurasi dasar, praktikum ini berfokus pada pengelolaan database menggunakan Migration dan Seeding, pengaturan Routing, serta pembuatan Model, Controller, dan View secara terintegrasi.

Dalam praktikum ini, mahasiswa mengimplementasikan seluruh komponen utama Laravel untuk membangun aplikasi CRUD (Create, Read, Update, Delete) sederhana. Proses dimulai dari konfigurasi database, pembuatan struktur tabel melalui migration, pengisian data awal menggunakan seeder, hingga menampilkan data ke pengguna melalui Blade Template Engine.

1. Tujuan Praktikum

Tujuan dari praktikum ini adalah memberikan pemahaman dan keterampilan kepada mahasiswa dalam membangun aplikasi web modern berbasis Laravel dengan menerapkan konsep MVC secara menyeluruh. Mahasiswa diharapkan mampu mengelola database menggunakan migration dan seeding, membuat serta mengatur routing aplikasi, membangun model untuk interaksi data dengan Eloquent ORM, mengembangkan controller sebagai penghubung antara model dan view, serta membuat tampilan antarmuka menggunakan Blade Template Engine.

2. Hasil & Pembahasan

Pada praktikum ini dilakukan beberapa tahapan utama, dimulai dari konfigurasi database, pembuatan migration, seeding data awal, pengaturan routing, pembuatan model dan controller, hingga menampilkan data pada view menggunakan Blade Template.

2.1 Konfigurasi Database

Langkah pertama adalah mengonfigurasi koneksi database pada file .env. Database yang digunakan adalah MySQL dengan nama database praktikum_laravel. Konfigurasi ini memastikan Laravel dapat terhubung ke database lokal melalui XAMPP.

Konfigurasi Database .env

// Konfigurasi database pada file .env

2.2 Migration

Migration digunakan untuk membuat dan mengelola struktur database menggunakan kode program. Tabel products dibuat menggunakan perintah php artisan make:migration create_products_table. File migration yang dihasilkan berada pada folder database/migrations dan berisi definisi kolom seperti name, price, description, dan timestamps.

Migration dijalankan menggunakan perintah php artisan migrate, sehingga tabel products terbentuk secara otomatis di database. Untuk membatalkan migration dapat menggunakan php artisan migrate:rollback, sedangkan untuk menjalankan ulang seluruh migration menggunakan php artisan migrate:fresh.

Hasil Migration

// Hasil perintah php artisan migrate dan tabel terbentuk di database

2.3 Seeding

Seeding digunakan untuk mengisi data awal ke dalam database. Seeder dibuat menggunakan perintah php artisan make:seeder ProductSeeder, lalu file ProductSeeder.php diisi dengan data produk seperti Laptop dan Mouse menggunakan metode DB::table('products')->insert(). Seeder dipanggil melalui file DatabaseSeeder.php dan dijalankan dengan perintah php artisan db:seed.

Hasil Seeding

// Data hasil seeding pada tabel products di database

2.4 Routing

Routing digunakan untuk menentukan URL dan respons yang diberikan aplikasi. Semua konfigurasi routing web berada pada file routes/web.php. Pada praktikum ini digunakan berbagai jenis routing, mulai dari routing dasar, routing parameter, named route, hingga route group. Selain itu digunakan pula Resource Route yang secara otomatis membuat 7 route sekaligus untuk operasi CRUD melalui Route::resource('products', ProductController::class).

Konfigurasi Routing

// Konfigurasi routing pada file routes/web.php

2.5 Model

Model digunakan untuk berinteraksi dengan database. Laravel menggunakan Eloquent ORM yang mempermudah manipulasi data. Model Product dibuat pada file app/Models/Product.php dengan mendefinisikan properti $fillable untuk mengizinkan mass assignment pada kolom name, price, dan description. Operasi CRUD dapat dilakukan menggunakan method seperti Product::create(), Product::all(), Product::find(), update(), dan delete().

Model Product

// Struktur model Product dengan Eloquent ORM

2.6 Controller

Controller digunakan untuk mengatur logika aplikasi dan menjadi penghubung antara Model dan View. Controller dibuat menggunakan perintah php artisan make:controller ProductController --resource, sehingga menghasilkan file controller dengan 7 method siap pakai. File controller berada di folder app/Http/Controllers. Method index() mengambil semua data produk dari database menggunakan Product::all() dan mengirimkannya ke view menggunakan fungsi compact().

ProductController

// Isi ProductController dengan method index mengambil data dari model

Berikut adalah daftar method pada Resource Controller beserta fungsinya:

Method HTTP Verb Fungsi
index GET Menampilkan seluruh data produk
create GET Menampilkan form tambah data
store POST Menyimpan data baru ke database
show GET Menampilkan detail satu data
edit GET Menampilkan form edit data
update PUT/PATCH Mengubah data yang sudah ada
destroy DELETE Menghapus data dari database
2.7 View & Blade Template

View digunakan untuk menampilkan halaman kepada pengguna. Laravel menggunakan Blade Template Engine dengan file berekstensi .blade.php yang disimpan di folder resources/views. Blade Layout memungkinkan pembuatan kerangka tampilan yang dapat digunakan ulang di banyak halaman, sehingga bagian seperti header, navbar, dan footer tidak perlu ditulis berulang. Directive Blade seperti @extends, @section, @yield, dan @foreach digunakan untuk mengelola layout dan menampilkan data secara dinamis.

Blade View

// Tampilan halaman products menggunakan Blade Template Engine

2.8 Hasil Akhir Aplikasi CRUD Mahasiswa

Sebagai tugas praktikum, dibangun aplikasi CRUD data mahasiswa menggunakan seluruh komponen yang telah dipelajari. Aplikasi ini memiliki fitur untuk menampilkan daftar mahasiswa, menambahkan data baru, mengedit data yang sudah ada, dan menghapus data. Data mahasiswa terdiri dari kolom nim, nama, jurusan, dan angkatan.

Hasil Akhir CRUD Mahasiswa

// Tampilan aplikasi CRUD data mahasiswa hasil praktikum 7

3. Kesimpulan

Berdasarkan praktikum yang telah dilakukan, Laravel menyediakan ekosistem yang lengkap untuk membangun aplikasi web secara terstruktur. Migration dan Seeding memudahkan pengelolaan database secara konsisten dan dapat direproduksi, sehingga pengembangan tim menjadi lebih mudah. Eloquent ORM menyederhanakan operasi CRUD tanpa perlu menulis query SQL secara manual.

Konsep MVC yang diterapkan Laravel melalui Model, Controller, dan Blade View menciptakan pemisahan tanggung jawab yang jelas antara logika data, logika aplikasi, dan tampilan. Resource Controller dan Resource Route semakin mempercepat proses pengembangan dengan menghasilkan struktur CRUD yang lengkap secara otomatis. Praktikum ini menjadi fondasi penting untuk mempelajari materi Laravel tingkat lanjut seperti autentikasi, middleware, API, dan deployment aplikasi.

Detail Praktikum
  • Konfigurasi Database (.env)
  • Migration Tabel Products
  • Seeding Data Awal
  • Routing (Dasar, Parameter, Named, Group)
  • Model dengan Eloquent ORM
  • Resource Controller
  • Blade Template & Layout
  • CRUD Data Mahasiswa