Migration, Seeding, Routing, Model, Controller, View
Migration · Seeding · Routing · Model · Controller · View
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.
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.
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.
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 pada file .env
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 perintah php artisan migrate dan tabel terbentuk di database
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.
// Data hasil seeding pada tabel products di database
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 pada file routes/web.php
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().
// Struktur model Product dengan Eloquent ORM
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().
// 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 |
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.
// Tampilan halaman products menggunakan Blade Template Engine
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.
// Tampilan aplikasi CRUD data mahasiswa hasil praktikum 7
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.