Kembali ke Portofolio
Laporan Praktikum

Laporan Praktikum Pemrograman Web: Migration, Seeding, Routing, Model, Controller, View

1. Pendahuluan

Praktikum ini bertujuan untuk memberikan pemahaman dasar tentang cara membangun aplikasi web menggunakan framework PHP yaitu Laravel. Pada praktikum ini, fokus utamanya adalah menerapkan pola arsitektur MVC (Model-View-Controller). Mahasiswa akan mempelajari cara mengatur database melalui kode program, membuat rute untuk alamat web, hingga menghubungkan proses pengolahan data dengan tampilan halaman. Dengan memahami materi ini, mahasiswa diharapkan bisa membuat fitur manipulasi data (CRUD) dengan lebih rapi, terstruktur, dan mudah dikelola.

Tujuan Praktikum:
  • Mengetahui cara mengatur tabel database menggunakan Migration dan mengisi data awal menggunakan Seeding.
  • Memahami cara membuat rute aplikasi (Routing) dan Model untuk berinteraksi dengan database.
  • Mampu membuat Controller sebagai penghubung antara data dan tampilan.
  • Mampu menampilkan data ke halaman web menggunakan sistem Blade Template milik Laravel.

2. Langkah Kerja dan Implementasi

Berikut adalah langkah-langkah praktikum yang telah dilakukan beserta penjelasan dari gambar kode dan eksekusi programnya:

A. Konfigurasi Database

Langkah pertama dalam membuat proyek Laravel adalah mengatur koneksi ke database. Pengaturan ini dilakukan dengan mengubah beberapa baris pada file konfigurasi bernama `.env`. Pada file tersebut, jenis koneksi dipastikan menggunakan `mysql`, dan nama database diubah menjadi `praktikum_laravel`. Konfigurasi ini sangat penting agar aplikasi Laravel bisa terhubung dan menyimpan data ke dalam database lokal kita.

Screenshot Konfigurasi Database Gambar 2.1: Konfigurasi file .env untuk database
B. Pembuatan Migration

Migration digunakan untuk membuat struktur tabel database langsung melalui kode PHP, sehingga kita tidak perlu membuatnya secara manual. Pada praktikum ini, kita membuat file migration untuk tabel `products`. Di dalam kodenya, ditambahkan beberapa kolom yang dibutuhkan, yaitu kolom `name` dengan tipe string untuk nama produk, `price` dengan tipe integer untuk harga, dan `description` dengan tipe teks untuk deskripsi produk. Perintah `timestamps()` juga otomatis ditambahkan untuk mencatat kapan data dibuat dan diperbarui.

Screenshot Migration Gambar 2.2: Kode pembuatan kolom pada file Migration
C. Membuat Data Awal (Seeding)

Setelah tabel selesai dibuat, kita membutuhkan data contoh (dummy) untuk menguji aplikasi. Hal ini dilakukan menggunakan fitur Seeding. Pertama, kita membuat file seeder dengan mengetikkan perintah `php artisan make:seeder` di terminal. Setelah file seeder berhasil dibuat, kita menuliskan kode menggunakan `DB::table()->insert()` untuk memasukkan beberapa data produk secara langsung beserta atributnya seperti nama barang dan harga.

Screenshot Perintah Seeder Gambar 2.3: Perintah membuat file Seeder di terminal
Screenshot Kode Seeder Gambar 2.4: Kode untuk menambahkan data produk pada Seeder

Untuk menjalankan file seeder dan memasukkan data tersebut ke dalam database, kita menggunakan perintah `php artisan db:seed`. Selain itu, Laravel juga menyediakan perintah yang sangat praktis yaitu `php artisan migrate:fresh --seed`. Perintah ini berfungsi ganda, yaitu menghapus semua tabel lama, membuat tabel ulang dari awal berdasarkan migration, lalu langsung mengisinya dengan data dari seeder.

Screenshot Jalankan Seeder Gambar 2.5: Eksekusi perintah db:seed berjalan sukses
Screenshot Refresh Seeder Gambar 2.6: Proses reset database sekaligus mengisi data seeder
D. Pengaturan Alamat Web (Routing)

Routing berfungsi untuk mengatur setiap alamat link (URL) yang diketik oleh pengguna agar diarahkan ke halaman yang benar. Semua konfigurasi rute ini diletakkan pada file `routes/web.php`. Pada kode di bawah, kita membuat beberapa tipe rute. Mulai dari rute biasa yang mengembalikan teks langsung, rute dengan parameter ID untuk menampilkan data spesifik, hingga rute jenis *resource* yang secara otomatis akan membuat semua jalur URL yang diperlukan untuk fitur pengolahan data (CRUD).

Screenshot Routing Gambar 2.7: Konfigurasi bermacam tipe rute di web.php

Selain rute biasa, kita juga menggunakan fitur *Route Group* dengan tambahan penamaan *prefix*. Fitur ini digunakan untuk mengelompokkan URL. Pada contoh ini, kita mengelompokkan rute untuk bagian admin. Dengan begitu, setiap rute yang berada di dalam grup ini otomatis akan memiliki awalan '/admin' pada alamat webnya (misalnya `/admin/dashboard`). Hal ini membuat penulisan kode rute menjadi lebih rapi dan terorganisir.

Screenshot Route Group Gambar 2.8: Pengelompokan rute menggunakan prefix
E. Konfigurasi Model

Model adalah bagian yang bertugas secara langsung untuk mengambil dan memproses data dari tabel database. Pada file `Product.php`, kita perlu menambahkan variabel `protected $fillable`. Fungsi dari kode ini adalah sebagai sistem keamanan untuk menentukan kolom tabel apa saja yang diizinkan untuk menerima inputan atau diisi secara massal oleh pengguna, seperti nama produk, harga, dan deskripsinya.

Screenshot Model Gambar 2.9: Pengaturan izin kolom pada file Model
F. Pembuatan Controller dan Tampilan (View)

Controller berperan sebagai otak atau pengatur alur dari sebuah halaman. Controller dibuat dengan menggunakan perintah `php artisan make:controller` di terminal. Setelah dibuat, controller inilah yang akan menerima permintaan dari rute, memanggil data dari Model, dan mengirim data tersebut ke halaman depan. Halaman depan ini disebut View, yang dibuat menggunakan file dengan akhiran `.blade.php`. Fitur Blade memudahkan kita untuk menampilkan data dari controller secara dinamis ke dalam kode HTML dasar.

Screenshot Controller Command Gambar 2.10: Perintah pembuatan file Controller
Screenshot View Gambar 2.11: Hasil tampilan halaman web menggunakan View

3. Kesimpulan

Melalui praktikum ini, dapat disimpulkan bahwa penggunaan pola MVC (Model-View-Controller) pada Laravel sangat mempermudah proses pembuatan website. Fitur Migration dan Seeding membuat manajemen database menjadi lebih praktis tanpa harus membuka database manager secara manual. Pemisahan fungsi antara pengelolaan rute (Routing), pengolahan data (Model), logika program (Controller), dan tampilan layar (View) membuat penulisan program menjadi lebih bersih, mudah dipahami, dan memudahkan ketika ada penambahan fitur nantinya.

Teknologi yang digunakan:
HTML Laravel MySQL