1. Pendahuluan
Perkembangan teknologi saat ini membuat aplikasi web semakin banyak digunakan dalam berbagai bidang. Untuk membuat aplikasi web yang baik dan terstruktur, diperlukan framework yang dapat membantu proses pengembangan menjadi lebih mudah, efisien, dan rapi. Salah satu framework PHP yang banyak digunakan adalah Laravel. Laravel menyediakan banyak fitur untuk membantu pembuatan aplikasi web, mulai dari pengelolaan database, pengaturan tampilan, sampai pengelolaan alur program menggunakan konsep MVC atau Model View Controller.
Pada praktikum ini dipelajari beberapa materi dasar dalam penggunaan Laravel, yaitu migration, seeding, routing, model, controller, dan view. Migration digunakan untuk membuat dan mengatur struktur database menggunakan kode program, sedangkan seeding digunakan untuk mengisi data awal ke dalam database. Routing digunakan untuk mengatur URL aplikasi, model digunakan untuk berhubungan dengan database, controller digunakan untuk mengatur logika program, dan view digunakan untuk menampilkan halaman antarmuka kepada pengguna menggunakan Blade Template.
2. Tujuan Praktikum
Praktikum ini bertujuan untuk memberikan pemahaman dan keterampilan dasar kepada mahasiswa dalam membangun aplikasi web modern berbasis framework PHP dengan menerapkan konsep MVC. Mahasiswa diharapkan mampu memahami struktur dan alur kerja Laravel sebagai salah satu framework yang banyak digunakan dalam pengembangan aplikasi web.
Selain itu, praktikum ini bertujuan melatih kemampuan mahasiswa dalam mengelola database menggunakan migration dan seeding, membuat serta mengatur routing aplikasi, membangun model untuk interaksi data, membuat tampilan antarmuka menggunakan Blade Template, serta mengembangkan controller sebagai penghubung antara model dan view. Dengan mempelajari materi tersebut, mahasiswa diharapkan mampu memahami proses pengembangan aplikasi secara terstruktur, efisien, dan mudah dipelihara.
3. Alat dan Bahan
- Komputer atau laptop
- XAMPP
- Visual Studio Code
- Composer
- Git
- Node JS
- NPM
4. Langkah Praktikum
Langkah praktikum dimulai dari konfigurasi database, pembuatan migration, pengisian data awal menggunakan seeder, pengaturan routing, pembuatan model, pembuatan controller, hingga pembuatan tampilan menggunakan Blade. Setiap tahap saling berhubungan sehingga aplikasi Laravel dapat mengambil data dari database dan menampilkannya pada halaman web.
4.1 Konfigurasi Database
Langkah pertama adalah membuka file .env, kemudian menyesuaikan konfigurasi koneksi database. Database menggunakan MySQL dengan host 127.0.0.1, port 3306, username root, dan nama database praktikum_laravel. Setelah itu, database baru dibuat melalui phpMyAdmin agar Laravel memiliki tempat untuk menyimpan tabel dan data aplikasi.
4.2 Migration
Migration digunakan untuk membuat struktur tabel database melalui kode program. Pada praktikum ini dibuat migration untuk tabel products menggunakan perintah:
php artisan make:migration create_products_table
Setelah file migration berhasil dibuat, file tersebut dibuka pada folder database/migrations. Pada method up(), dibuat tabel products dengan beberapa kolom, yaitu id sebagai primary key, name untuk menyimpan nama produk, price untuk menyimpan harga, description untuk menyimpan deskripsi produk, serta timestamps() untuk membuat kolom created_at dan updated_at secara otomatis.
Pada method down(), terdapat perintah untuk menghapus tabel products apabila migration dibatalkan atau dilakukan rollback. Setelah struktur migration selesai dibuat, perintah php artisan migrate dijalankan agar tabel dibuat di database. Jika berhasil, tabel products akan muncul pada database bersama tabel bawaan Laravel lainnya.
4.3 Seeding
Seeding digunakan untuk memasukkan data awal ke dalam database secara otomatis. Pada praktikum ini dibuat file seeder bernama ProductSeeder menggunakan perintah:
php artisan make:seeder ProductSeeder
Di dalam method run(), data produk dimasukkan ke tabel products menggunakan perintah insert. Data awal yang digunakan adalah contoh produk seperti Laptop dan Mouse, lengkap dengan harga dan deskripsi. Kolom created_at dan updated_at diisi menggunakan fungsi now() agar waktu pembuatan dan pembaruan data tercatat otomatis.
Setelah file seeder dibuat, pemanggilan ProductSeeder ditambahkan pada file DatabaseSeeder.php. Selanjutnya perintah php artisan db:seed dijalankan di terminal agar data awal masuk ke database. Seeder berguna untuk membuat data awal atau data dummy sehingga proses pengujian aplikasi dapat dilakukan tanpa memasukkan data secara manual satu per satu.
4.4 Routing
Routing berfungsi untuk mengatur alamat URL yang dapat diakses oleh pengguna. Pada Laravel, routing umumnya ditulis pada file routes/web.php. Pada praktikum ini dipelajari beberapa jenis routing, yaitu routing dasar, routing parameter, named route, dan route group.
Routing dasar digunakan untuk menampilkan respon sederhana ketika URL tertentu diakses. Routing parameter digunakan untuk menerima nilai dari URL, misalnya ID produk. Named route digunakan untuk memberikan nama pada route agar lebih mudah dipanggil kembali. Sementara itu, route group digunakan untuk mengelompokkan beberapa route yang memiliki prefix atau awalan URL yang sama, seperti halaman admin.
4.5 Model
Model digunakan untuk berinteraksi dengan tabel pada database. Pada praktikum ini dibuat model Product yang berada pada direktori app/Models. Model tersebut mewakili tabel products dan memungkinkan aplikasi melakukan operasi database seperti mengambil, menambah, mengubah, dan menghapus data.
Pada class Product, digunakan trait HasFactory dan property $fillable. Property $fillable berisi daftar kolom yang boleh diisi secara massal, yaitu name, price, dan description. Dengan pengaturan ini, Laravel dapat menjaga keamanan data agar hanya field tertentu yang dapat diproses saat melakukan input data.
4.6 Controller
Controller digunakan untuk mengatur logika aplikasi dan menjadi penghubung antara model dengan view. Pada praktikum ini dibuat controller bernama ProductController menggunakan perintah:
php artisan make:controller ProductController
Di dalam controller dibuat method index(). Method ini mengambil seluruh data produk dari database menggunakan model Product, kemudian mengirimkan data tersebut ke halaman view bernama products. Dengan cara ini, controller berperan sebagai pusat pengatur alur data dari database menuju halaman web.
Route kemudian dihubungkan ke controller agar ketika URL tertentu diakses, method index() pada ProductController dijalankan. Selain route biasa, juga dipelajari penggunaan Route::resource yang dapat memetakan fungsi CRUD secara otomatis ke controller.
4.7 View dan Blade Layout
View digunakan untuk menampilkan data kepada pengguna. Laravel menggunakan Blade Template untuk membuat tampilan yang lebih rapi dan mudah digunakan kembali. Pada praktikum ini dibuat file layout utama pada resources/views/layouts/app.blade.php. Layout tersebut berisi struktur dasar HTML, bagian judul halaman, serta area konten yang dapat diisi oleh halaman lain.
Selanjutnya dibuat file view products.blade.php yang menggunakan layout utama tersebut. File ini mengatur judul halaman dengan directive @section('title'), kemudian menampilkan daftar produk menggunakan perulangan @foreach. Data produk yang dikirim dari controller ditampilkan dalam bentuk daftar sehingga pengguna dapat melihat nama, harga, dan deskripsi produk pada halaman web.
5. Tugas
Pada bagian tugas, dibuat aplikasi sederhana untuk mengelola data mahasiswa. Database baru dibuat dengan nama db_mahasiswa, kemudian konfigurasi database pada file .env disesuaikan agar Laravel terhubung ke database tersebut.
Setelah koneksi database diatur, dibuat model Mahasiswa pada direktori app/Models. Model ini memiliki property $fillable untuk mengizinkan penyimpanan data pada kolom nim, nama, dan jurusan. Selanjutnya dibuat migration untuk tabel mahasiswas dengan kolom id, nim, nama, jurusan, serta timestamps.
Setelah migration selesai disusun, perintah php artisan migrate dijalankan untuk membuat tabel pada database. Berikutnya dibuat MahasiswaSeeder untuk mengisi data awal mahasiswa, lalu seeder tersebut dipanggil melalui DatabaseSeeder.php dan dijalankan menggunakan perintah php artisan migrate --seed.
Untuk mengatur alur aplikasi, file web.php ditambahkan route resource yang mengarah ke MahasiswaController. Controller tersebut berisi method untuk menampilkan data, menyimpan data baru, mengubah data, dan menghapus data. Selanjutnya dibuat tampilan pada folder resources/views/mahasiswa, yaitu halaman index.blade.php untuk menampilkan daftar mahasiswa, create.blade.php untuk menambah data, dan edit.blade.php untuk mengubah data.
Hasil akhir dari tugas ini adalah halaman daftar mahasiswa yang menampilkan data dalam bentuk tabel. Pengguna dapat menambah data mahasiswa baru, mengedit data yang sudah ada, dan menghapus data dengan konfirmasi terlebih dahulu. Dengan tugas ini, konsep migration, seeding, routing, model, controller, dan view diterapkan secara lengkap dalam bentuk aplikasi CRUD sederhana.