Kembali ke Laporan

Laprak 7 — Migration, Seeding, Routing, Model, Controller, View

Pemrograman Web · Pertemuan 7

Saskia Alifah 2411531002 Pemrograman Web Laravel 13

Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:

  • Memberikan pemahaman dan keterampilan dasar kepada mahasiswa dalam membangun aplikasi web modern berbasis framework PHP dengan menerapkan konsep MVC (Model View Controller).
  • Memahami struktur dan alur kerja Laravel sebagai salah satu framework yang banyak digunakan dalam pengembangan aplikasi web.
  • Melatih kemampuan mahasiswa dalam mengelola database menggunakan migration dan seeding.
  • Membuat serta mengatur routing aplikasi, membangun model untuk interaksi data, serta membuat tampilan antarmuka menggunakan Blade Template Engine.
  • Mengembangkan controller sebagai penghubung antara model, view, and request user.
  • Mengimplementasikan seluruh materi dalam bentuk aplikasi CRUD (Create, Read, Update, Delete) sederhana.

Konfigurasi Database (.env): File environment global (.env) menyimpan kredensial database lokal. Hal ini memisahkan konfigurasi sensitif dari kode program inti aplikasi.

Migration: Fitur yang bertindak sebagai version control bagi skema database. Pengembang dapat mendesain struktur tabel secara konsisten menggunakan kode program PHP tanpa menyentuh DBMS manual.

Seeding: Proses pengisian data awal atau rekaman dummy ke dalam tabel pangkalan data secara otomatis untuk mempermudah proses pengujian fungsionalitas sistem.

Model (Eloquent ORM): Menyediakan abstraksi berorientasi objek yang memetakan setiap tabel database menjadi satu representasi kelas kode program, menyederhanakan kueri SQL melalui Active Record.

Controller: Berfungsi mengelola alur logika aplikasi, menerima masukan data dari request pengguna, memprosesnya melalui Model, lalu mengembalikannya menuju komponen View.

View (Blade Layout): Mesin pemrosesan template visual bawaan Laravel untuk memproduksi tampilan antarmuka pengguna secara dinamis dan mendukung reusabilitas komponen UI.

  • Laptop / Komputer dengan sistem operasi Windows
  • Laragon Full / XAMPP (Local Development Environment)
  • Visual Studio Code (Code Editor)
  • Web Browser (Google Chrome / Mozilla Firefox)
  • Composer (Dependency Manager PHP) & Git Version Control
  • Node.js & NPM Package Manager

Berikut adalah runtutan langkah praktikum mandiri untuk mengonfigurasi dan menguji integrasi awal pangkalan data produk menggunakan Laravel.

1Buka Terminal di Folder Project

Langkah awal adalah memastikan posisi direktori pengerjaan terminal aktif berada tepat di dalam root folder project Laravel Anda.

Aksi: Jalankan Command Terminal

Pastikan posisi terminal aktif berada di direktori project berikut:

cmd
C:\laragon\www\laravel
2Jalankan Server Development

Menjalankan server bawaan Laravel agar aplikasi dapat diakses lokal melalui peramban web browser.

Aksi: Jalankan Perintah Artisan Serve
bash
php artisan serve
Biarkan terminal ini tetap terbuka dan berjalan di latar belakang, jangan ditutup.
3Buat File Skema Migration Product

Membuat file cetak biru skema migrasi baru untuk mendefinisikan tabel produk ke database.

Aksi: Jalankan Command Generator
Screenshot Langkah 3
Gambar 1 – Berkas file cetak biru migrasi tabel produk sukses diproduksi
4Isi Kolom Struktur File Migration

Membuka berkas skema di VS Code untuk mengonfigurasi kolom-kolom atribut spesifik tabel produk.

Aksi: Lengkapi Method up() di database/migrations/xxxx_create_products_table.php
Screenshot Langkah 4
Gambar 2 – Pengaturan rancangan tipe data kolom tabel produk pada berkas skema
5Jalankan Eksekusi Migration

Mengirim rancangan tabel PHP ke server basis data MySQL agar tabel terbentuk secara nyata.

Aksi: Jalankan Artisan Migrate
Screenshot Langkah 5
Gambar 3 – Log terminal membuktikan tabel products berhasil digenerate ke database
6Buat File Seeder Product

Membuat file generator seeder untuk memasukkan data uji coba awal ke dalam tabel produk.

Aksi: Jalankan Perintah Pembuatan Seeder
Screenshot Langkah 6
Gambar 4 – File ProductSeeder.php berhasil dibuat di folder database/seeders
7Isi Array Data Dummy Seeder

Mengonfigurasi isi baris data produk dummy di dalam berkas ProductSeeder yang baru saja terbuat.

Aksi: Edit File database/seeders/ProductSeeder.php
Screenshot Langkah 7
Gambar 5 – Pendefinisian array data sampel produk laptop dan mouse
8Daftarkan Seeder ke DatabaseSeeder

Menghubungkan ProductSeeder agar dapat dieksekusi oleh master seeder bawaan Laravel.

Aksi: Sesuaikan Method run() di database/seeders/DatabaseSeeder.php
Screenshot Langkah 8
Gambar 6 – Registrasi pemanggilan kelas seeder produk pada master seeder induk
9Eksekusi Proses Seeding Data

Menjalankan perintah pengisian data dummy tersebut ke dalam database melalui perintah Artisan.

Aksi: Jalankan db:seed
Screenshot Langkah 9
Gambar 7 – Notifikasi konsol terminal menyatakan pengisian data dummy sukses
10Buat Model Eloquent Product

Membuat file model sebagai perwakilan objek pemetaan data tabel produk di kode program aplikasi Anda.

Aksi: Jalankan Perintah Pembuatan Model
Screenshot Langkah 10
Gambar 8 – Komponen file Model Product berhasil diproduksi otomatis
11Isi Mass Assignment Fillable pada Model

Mengonfigurasi properti whitelist fillable pada model agar kolom tabel aman diisi data secara massal.

Aksi: Edit Konfigurasi File app/Models/Product.php
Screenshot Langkah 11
Gambar 9 – Pengaturan whitelist atribut field masukan data pada kelas model produk
12Buat File Product Controller

Membuat file controller yang nantinya akan mengontrol alur logika penampilan data produk.

Aksi: Jalankan Command Make Controller
Screenshot Langkah 12
Gambar 10 – Inisialisasi komponen file ProductController baru berhasil dilakukan
13Isi Fungsi Logika Pengambilan Data pada Controller

Menulis kueri Eloquent All() untuk mengambil seluruh data dari model produk dan mengirimkannya ke view.

Aksi: Modifikasi Berkas app/Http/Controllers/ProductController.php
Screenshot Langkah 13
Gambar 11 – Deklarasi kueri pengambilan data produk serta pengiriman berkas compact view
14Konfigurasi Pemetaan Routing URL Web

Mendaftarkan alamat URL khusus di file route aplikasi agar link `/products` bisa diakses.

Aksi: Edit Pemetaan URL di routes/web.php
Screenshot Langkah 14
Gambar 12 – Pemetaan penambahan endpoint url /products pada file routes induk
15Buat Struktur Tampilan File Blade View

Membuat file antarmuka HTML menggunakan template engine Blade untuk menampilkan perulangan data produk.

Aksi: Buat Berkas Baru resources/views/products.blade.php
Screenshot Langkah 15
Gambar 13 – Penulisan perulangan directives @foreach data produk dinamis pada file view
16Uji Hasil Output Produk di Browser

Langkah pengujian akhir untuk memastikan bahwa semua komponen terhubung dengan baik tanpa ada kesalahan.

Aksi: Jalankan dan Buka URL Browser
Screenshot Langkah 16
Gambar 14 – Halaman browser berhasil menampilkan daftar data dummy dari database produk

Bagian terpisah ini mendokumentasikan langkah pengerjaan tugas mandiri pembuatan sistem manajemen pengolahan data mahasiswa secara lengkap (Create, Read, Update, Delete).

1Buat Berkas Skema Migration Mahasiswa

Membuat file skema migrasi baru di terminal Laragon khusus untuk mencetak struktur tabel mahasiswa.

Aksi: Jalankan Artisan Command
Screenshot Tugas 1
Gambar 15 – Pembuatan berkas migrasi penampung skema tabel mahasiswa
2Isi Atribut Kolom File Migration Mahasiswa

Membuka file migrasi mahasiswa di VS Code, kemudian menambahkan kolom nama, nim (unik), jurusan, dan email.

Aksi: Lengkapi Method up() di File database/migrations/xxxx_create_mahasiswas_table.php
Screenshot Tugas 2
Gambar 16 – Konfigurasi penambahan field kolom entitas mahasiswa pada file up() migrasi
3Jalankan Eksekusi Migrasi Tabel Mahasiswa

Menjalankan migrasi untuk membuat tabel mahasiswa secara nyata ke dalam pangkalan data MySQL.

Aksi: Jalankan Command Migrate
Screenshot Tugas 3
Gambar 17 – Proses pembentukan tabel mahasiswas di database berhasil dilakukan
4Buat Berkas Seeder Mahasiswa

Membuat file seeder khusus mahasiswa untuk mempermudah penyediaan data dummy pengujian.

Aksi: Jalankan Artisan Make Seeder
Screenshot Tugas 4
Gambar 18 – File penampung data dummy seeder mahasiswa sukses dibuat
5Isi Data Dummy pada File Seeder Mahasiswa

Membuka file `MahasiswaSeeder.php` and memasukkan data sampel seperti 'Budi Santoso' dan 'Siti Aminah'.

Aksi: Edit File database/seeders/MahasiswaSeeder.php
Screenshot Tugas 5
Gambar 19 – Pengisian record sampel data isian mahasiswa lengkap dengan penanda waktu
6Daftarkan Kelas MahasiswaSeeder ke Berkas Induk

Menambahkan instruksi pendaftaran panggil seeder mahasiswa ke dalam file master seeder utama.

Aksi: Edit Method run() di database/seeders/DatabaseSeeder.php
Screenshot Tugas 6
Gambar 20 – Penambahan pemanggilan kelas MahasiswaSeeder pada DatabaseSeeder induk
7Jalankan Seeding Data Mahasiswa

Mengisi baris data dummy mahasiswa secara instan ke pangkalan data menggunakan terminal.

Aksi: Jalankan db:seed Kembali
Screenshot Tugas 7
Gambar 21 – Eksekusi injeksi data awal mahasiswa berhasil masuk ke database
8Buat Model Eloquent Mahasiswa

Membuat file model berorientasi objek khusus untuk memetakan tabel data mahasiswa.

Aksi: Jalankan Command Make Model
Screenshot Tugas 8
Gambar 22 – Berkas kelas Model Mahasiswa.php sukses digenerate aplikasi
9Konfigurasi Property Atribut Whitelist Fillable Model

Mengatur kolom yang boleh diisi pada model mahasiswa demi alasan keamanan sistem masukan data.

Aksi: Edit Isi Berkas app/Models/Mahasiswa.php
Screenshot Tugas 9
Gambar 23 – Proteksi mass assignment fillable untuk kolom data mahasiswa
10Buat Mahasiswa Resource Controller untuk CRUD

Membuat controller dengan flag `--resource` agar otomatis terisi fungsi dasar CRUD (Index, Create, Store, Edit, Update, Destroy).

Aksi: Jalankan Perintah Resource Generator
Screenshot Tugas 10
Gambar 24 – Pembuatan berkas file MahasiswaController lengkap dengan boilerplate method standar
11Isi Logika Validasi & Manipulasi Data Lengkap pada Controller

Mengisi setiap method di MahasiswaController untuk menangani validasi masukan data dan proses penyimpanan database.

Aksi: Lengkapi Seluruh Method di app/Http/Controllers/MahasiswaController.php
Screenshot Tugas 11
Gambar 25 – Implementasi fungsi validasi form serta operasi simpan data mahasiswa
12Daftarkan Resource Route Mahasiswa

Mendaftarkan rute resource tunggal di `web.php` untuk menangani ketujuh jalur URL CRUD mahasiswa secara otomatis.

Aksi: Edit Berkas routes/web.php
Screenshot Tugas 12
Gambar 26 – Deklarasi rute makro resource untuk memetakan otomatis fungsionalitas CRUD
13Buat Folder Penampung Tampilan View

Membuat struktur subfolder baru khusus bernama `mahasiswa` di dalam direktori views agar file rapi.

Aksi: Buat Folder Baru
Screenshot Tugas 13
Gambar 27 – Struktur folder penyimpanan khusus untuk modul view mahasiswa
14Susun Tampilan Halaman Tabel Utama (Index)

Membuat halaman tabel untuk menampilkan daftar data mahasiswa yang dilengkapi dengan tombol aksi Edit dan Hapus.

Aksi: Buat Berkas Baru resources/views/mahasiswa/index.blade.php
Screenshot Tugas 14
Gambar 28 – Penyusunan struktur tabel data dinamis serta formulir hapus data
15Susun Tampilan Halaman Formulir Tambah Data (Create)

Membuat halaman form tambah data mahasiswa baru yang dilengkapi dengan pesan error jika isian form tidak valid.

Aksi: Buat Berkas Baru resources/views/mahasiswa/create.blade.php
Screenshot Tugas 15
Gambar 29 – Pembuatan form tambah masukan data mahasiswa lengkap beserta token keamanan @csrf
16Susun Tampilan Halaman Formulir Edit Data (Edit)

Membuat halaman form edit yang otomatis menampilkan data lama pengguna yang akan di-update menggunakan spoofing method `@method('PUT')`.

Aksi: Buat Berkas Baru resources/views/mahasiswa/edit.blade.php
Screenshot Tugas 16
Gambar 30 – Implementasi fungsi penempatan nilai lama data serta deklarasi PUT spoofing method
17Uji Hasil Akhir CRUD Mahasiswa di Browser

Langkah akhir untuk memastikan seluruh fungsionalitas manajemen aplikasi pengolahan data mahasiswa berjalan lancar.

Aksi: Buka URL Browser Utama
Tampilan Awal Browser
Gambar 31 – Tampilan awal daftar mahasiswa saat pertama kali dibuka di browser
Tampilan Form Tambah
Gambar 32 – Tampilan formulir penambahan data mahasiswa baru
Tampilan Setelah Ditambah
Gambar 33 – Tampilan halaman indeks setelah data mahasiswa berhasil ditambahkan
Tampilan Form Edit
Gambar 34 – Tampilan formulir pengubahan (edit) data mahasiswa terpilih
Tampilan Setelah Edit
Gambar 35 – Tampilan halaman indeks setelah proses pembaruan data berhasil dilakukan

Melalui serangkaian tahapan praktikum Pertemuan 7 ini, integrasi penuh arsitektur MVC (Model-View-Controller) pada framework Laravel berhasil dijalankan dengan baik:

  • Konfigurasi Environment Database: Berhasil menghubungkan aplikasi dengan MySQL lokal melalui pengaturan file `.env`.
  • Migration & Seeding: Skema tabel `products` dan `mahasiswas` berhasil diproduksi otomatis oleh Artisan. Pengisian data dummy lewat seeder juga berhasil masuk ke dalam record database.
  • Fungsionalitas CRUD: Pengujian endpoint `/mahasiswa` di browser membuktikan bahwa kelima operasi manipulasi pangkalan data (Index, Create, Store, Edit, Update, Destroy) berjalan lancar dengan sistem validasi form yang aman.

Berdasarkan seluruh tahapan praktikum yang telah dilaksanakan, diperoleh beberapa poin kesimpulan penting:

  1. Pola arsitektur Model-View-Controller (MVC) terbukti mempermudah pengembangan aplikasi dengan memisahkan bagian database (Model), tampilan visual (View), and pemroses logika utama (Controller).
  2. Fitur Migration dan Seeder mempermudah pengelolaan skema database secara konsisten tanpa perlu ekspor/impor SQL manual lewat phpMyAdmin.
  3. Penggunaan Eloquent ORM menyederhanakan penulisan query database yang rumit menjadi perintah berorientasi objek yang lebih singkat dan aman dari serangan SQL Injection.
  4. Pemanfaatan Resource Controller & Route menghemat penulisan jalur kode routing secara signifikan melalui standarisasi restful API endpoint bawaan Laravel.