Praktikum Laravel 12 – Migration, Seeding, Routing, Model, Controller, View
Dokumentasi lapangan praktikum web menggunakan Laravel 12 dengan fokus pada pembuatan tabel, data seeding, resource route, Eloquent model, controller CRUD, dan tampilan Blade.
Ringkasan Praktikum 7
Laporan lengkap migrasi database, data seeding, routing resource, model Eloquent, pengendali resource, dan tampilan Blade untuk entitas Product, Customer, dan Mahasiswa.
Migration & Seeding
Membangun struktur tabel dan memasukkan data awal untuk pengujian cepat aplikasi.
Routing Resource
Memanfaatkan resource route Laravel untuk menghasilkan route CRUD secara otomatis.
Blade View
Menampilkan data dengan struktur halaman yang konsisten dan profesional menggunakan template Blade.
1. Konfigurasi Database
Tahap awal praktikum adalah membangun koneksi database yang stabil.
Database praktikum_laravel dibuat melalui phpMyAdmin XAMPP dan kemudian
disambungkan ke aplikasi Laravel di file .env.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=praktikum_laravel
DB_USERNAME=root
DB_PASSWORD=
Setelah konfigurasi selesai, Laravel berhasil terhubung dengan MySQL sehingga perintah migrasi dan seeding dapat dieksekusi.
Hasil
Koneksi database aktif, lingkungan pengembangan siap, dan struktur migrasi dapat dibuat tanpa error.
2. Migration
Migration digunakan untuk mendefinisikan struktur tabel dengan kode sehingga perubahan dapat dilacak dan direset.
2.1 Migration Product
Membuat tabel products untuk menyimpan data barang.
php artisan make:migration create_products_table
Isi migration:
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->integer('price');
$table->text('description');
$table->timestamps();
});
2.2 Migration Customer
Membuat tabel customers untuk menyimpan informasi pelanggan.
php artisan make:migration create_customers_table
Isi migration:
Schema::create('customers', function (Blueprint $table) {
$table->id();
$table->string('nama');
$table->string('email')->unique();
$table->string('telepon');
$table->text('alamat');
$table->timestamps();
});
2.3 Migration Mahasiswa
Membuat tabel mahasiswas sebagai data akademik mahasiswa.
php artisan make:migration create_mahasiswas_table
Isi migration:
Schema::create('mahasiswas', function (Blueprint $table) {
$table->id();
$table->string('nim')->unique();
$table->string('nama');
$table->string('jurusan');
$table->string('email')->unique();
$table->integer('angkatan');
$table->timestamps();
});
Menjalankan Migration
Setelah seluruh migration selesai dibuat, perintah berikut dieksekusi untuk membuat tabel di database:
php artisan migrate
Hasil
Berhasil membuat tabel products, customers, dan mahasiswas di database praktikum_laravel tanpa error.
3. Seeding
Seeder digunakan untuk mengisi database dengan data dummy sehingga aplikasi dapat diuji tanpa masukan manual.
3.1 Product Seeder
Membuat dua data produk awal untuk pengujian daftar produk.
php artisan make:seeder ProductSeeder
Isi seeder:
DB::table('products')->insert([
[
'name' => 'Laptop',
'price' => 7000000,
'description' => 'Laptop untuk pemrograman',
'created_at' => now(),
'updated_at' => now(),
],
[
'name' => 'Mouse',
'price' => 150000,
'description' => 'Mouse wireless',
'created_at' => now(),
'updated_at' => now(),
]
]);
3.2 Customer Seeder
Membuat tiga data customer untuk menguji daftar dan detail pelanggan.
php artisan make:seeder CustomerSeeder
Isi seeder:
DB::table('customers')->insert([
[
'nama' => 'Alya Pratama',
'email' => 'alya@example.com',
'telepon' => '081234567890',
'alamat' => 'Jalan Merdeka No. 12, Jakarta',
],
[
'nama' => 'Budi Santoso',
'email' => 'budi@example.com',
'telepon' => '082345678901',
'alamat' => 'Jalan Mawar No. 9, Bandung',
],
[
'nama' => 'Citra Dewi',
'email' => 'citra@example.com',
'telepon' => '083456789012',
'alamat' => 'Jalan Melati No. 7, Surabaya',
]
]);
3.3 Mahasiswa Seeder
Class seed sederhana untuk data mahasiswa tunggal sebagai contoh entitas akademik.
php artisan make:seeder MahasiswaSeeder
Isi seeder:
DB::table('mahasiswas')->insert([
[
'nim' => '2411533018',
'nama' => 'Karimah Irsyadiyah',
'jurusan' => 'Informatika',
'email' => 'karimah@unand.ac.id',
'angkatan' => 2024,
]
]);
Daftarkan Seeder
Seeder didaftarkan di file
database/seeders/DatabaseSeeder.php agar dapat berjalan bersama.
$this->call(ProductSeeder::class);
$this->call(CustomerSeeder::class);
$this->call(MahasiswaSeeder::class);
Perintah Jalankan Seeder
php artisan db:seed
Database terisi otomatis dengan data awal sehingga fitur read dan list dapat diuji.
4. Model
Model Eloquent menghubungkan tabel database dengan aplikasi sehingga data dapat diolah secara objek.
4.1 Product Model
php artisan make:model Product
Tambahkan atribut yang dapat diisi massal.
protected $fillable = [
'name',
'price',
'description'
];
4.2 Customer Model
php artisan make:model Customer
Konfigurasi mass assignment untuk entitas pelanggan.
protected $fillable = [
'nama',
'email',
'telepon',
'alamat'
];
4.3 Mahasiswa Model
php artisan make:model Mahasiswa
Menentukan kolom yang boleh diisi saat CRUD Mahasiswa dijalankan.
protected $fillable = [
'nim',
'nama',
'jurusan',
'email',
'angkatan'
];
5. Routing
Routing menghubungkan URL dengan controller. Resource route Laravel menghasilkan semua route CRUD dalam satu deklarasi.
Route::resource('products', ProductController::class);
Route::resource('customers', CustomerController::class);
Route::resource('mahasiswa', MahasiswaController::class);
Route resource membuat method index, create, store, show, edit, update, dan destroy secara otomatis.
Keuntungan
- Mengurangi duplikasi route
- Standarisasi naming convention
- Mudah dikelola pada aplikasi CRUD
6. Controller
Controller bertanggung jawab menerima permintaan, memproses model, dan mengirim data ke tampilan.
6.1 Product Controller
php artisan make:controller ProductController --resource
Contoh method index() untuk mengambil semua product.
public function index()
{
$products = Product::all();
return view('products.index', compact('products'));
}
6.2 Customer Controller
php artisan make:controller CustomerController --resource
Contoh method index() untuk menampilkan daftar
customer.
public function index()
{
$customers = Customer::all();
return view('customers.index', compact('customers'));
}
6.3 Mahasiswa Controller
php artisan make:controller MahasiswaController --resource
Contoh method index() untuk menampilkan semua
mahasiswa.
public function index()
{
$mahasiswas = Mahasiswa::all();
return view('mahasiswa.index', compact('mahasiswas'));
}
Fungsi Tambahan
Selain index(), controller resource biasa juga berisi
store(), update(), dan destroy() untuk operasi CRUD
penuh.
Hasil
Kelas controller mampu mengelola aliran data antara model dan view sesuai standar MVC Laravel.
7. View
View menampilkan data kepada pengguna melalui Blade template dengan struktur halaman yang jelas.
7.1 View Product
Folder dan file view untuk entitas products.
resources/views/products
- index.blade.php
- create.blade.php
- edit.blade.php
- show.blade.php
Fungsi: menampilkan daftar, menambah, mengedit, dan detail produk.
7.2 View Customer
Folder dan file view untuk entitas customers.
resources/views/customers
- index.blade.php
- create.blade.php
- edit.blade.php
- show.blade.php
Fungsi: menampilkan daftar, menambah, mengedit, dan detail customer.
7.3 View Mahasiswa
Folder dan file view untuk entitas mahasiswa.
resources/views/mahasiswa
- index.blade.php
- create.blade.php
- edit.blade.php
- show.blade.php
Fungsi: menampilkan daftar, menambah, mengedit, dan detail mahasiswa.
8. Implementasi CRUD
Praktikum berhasil menerapkan operasi CRUD untuk Product, Customer, dan Mahasiswa.
Product
- Menambah data produk
- Menampilkan daftar produk
- Mengubah data produk
- Menghapus produk
Customer
- Menambah data customer
- Menampilkan daftar customer
- Mengubah data customer
- Menghapus customer
Mahasiswa
- Menambah data mahasiswa
- Menampilkan daftar mahasiswa
- Mengubah data mahasiswa
- Menghapus mahasiswa
9. Kesimpulan
Praktikum 7 memperkuat prinsip MVC Laravel dengan membuat layer database, model, controller, dan view secara terpisah namun terintegrasi. Penggunaan migration dan seeder membantu manajemen data, sedangkan resource route dan controller resource mempermudah alur CRUD.
Implementasi pada entitas Product, Customer, dan Mahasiswa menunjukkan bahwa Laravel dapat memfasilitasi pengembangan aplikasi web terstruktur dengan Eloquent ORM dan Blade Template Engine.
Hasil Akhir
Aplikasi berhasil mengelola data produk, pelanggan, dan mahasiswa dengan CRUD lengkap serta tampilan responsif yang siap digunakan sebagai dasar portfolio proyek Laravel.
Dokumentasi Hasil
Placeholder screenshot untuk dokumentasi praktikum. Gambar dapat diganti setelah diambil dari aplikasi.
Screenshot halaman Product
Screenshot tambah Product
Screenshot edit Product
Screenshot detail Product
Screenshot halaman Customer
Screenshot tambah Customer
Screenshot edit Customer
Screenshot halaman Mahasiswa
Screenshot tambah Mahasiswa