Laporan Praktikum 9
Tujuan Praktikum
Praktikum ini bertujuan agar mahasiswa dapat memahami dan mengimplementasikan framework Laravel secara menyeluruh. Dimulai dari pembuatan project, konfigurasi database, penggunaan sistem Autentikasi bawaan (UI Bootstrap), integrasi template antarmuka SB Admin 2, hingga penerapan manajemen database menggunakan Seeder. Puncak dari praktikum ini adalah penguasaan penuh atas siklus manajemen data dinamis menggunakan operasi CRUD (Create, Read, Update, Delete) pada entitas pengguna (Users).
1. Persiapan Project & Konfigurasi Database
Tahap pertama adalah membuat *project* baru menggunakan Composer dengan nama laravel-sisfo. Setelah project berhasil dibuat, langkah selanjutnya adalah menyesuaikan koneksi *database* pada file .env dengan mencantumkan nama database laravel_sisfo, username root, dan password kosong agar terhubung dengan MySQL lokal.
2. Autentikasi & Migrasi Database
Selanjutnya, fitur autentikasi bawaan diaktifkan menggunakan package laravel/ui. Setelah itu, perintah npm run dev dijalankan di terminal untuk melakukan *compile asset* (CSS/JS) bawaan sistem. Kemudian, dilakukan eksekusi php artisan migrate untuk menerjemahkan skema tabel dari Laravel ke dalam database MySQL secara otomatis.
3. Uji Coba Autentikasi Bawaan & Seeding Data
Setelah tabel dibuat, halaman bawaan Laravel dapat diakses, yaitu halaman Register dan Login. Jika berhasil melakukan registrasi, sistem akan mengarahkan ke halaman *dashboard* dengan keterangan "You are logged in". Selain itu, dilakukan injeksi data awal (Database Seeding) untuk membuat akun "Admin Aplikasi". Saat perintah seeder dijalankan, akan muncul notifikasi "User Admin berhasil ditambahkan", dan akun tersebut bisa langsung digunakan untuk Login.
4. Integrasi Template SB Admin 2
Agar tampilan aplikasi lebih profesional, dilakukan *templating* menggunakan antarmuka SB Admin 2. Seluruh *asset* CSS dan JS dari template dimasukkan ke dalam folder public. Kemudian, dilakukan penyesuaian pada *layout global* (sidebar, topbar, dan *content*), sehingga tampilan halaman Login dan Dashboard sistem SISFO berubah menjadi lebih modern dan interaktif.
5. Fitur CRUD: Menampilkan Tabel User (Read)
Memasuki tahap pengelolaan data (CRUD), langkah pertama adalah menampilkan data yang ada di database. Dengan memodifikasi fungsi index pada UserController dan membuat view baru yang mengintegrasikan DataTables, daftar pengguna dapat ditampilkan dalam bentuk tabel yang rapi beserta fitur pencarian dan paginasi otomatis.
6. Fitur CRUD: Tambah User (Create)
Selanjutnya, tombol "Tambah User" ditambahkan untuk membuka halaman formulir create.blade.php. Formulir ini dilengkapi dengan inputan dinamis menggunakan library Select2 untuk pemilihan hak akses (Level). Data yang disubmit akan diproses oleh fungsi store di Controller dan langsung masuk ke database dengan notifikasi sukses.
7. Fitur CRUD: Ubah Data User (Update)
Untuk mengubah data, tombol "Edit" diaktifkan yang mengarah ke halaman edit.blade.php berisi form yang sudah terisi data lama pengguna. Selama proses ini, kendala *cache view* pada Laravel berhasil diatasi dengan pembuatan struktur folder pengguna yang bersih. Setelah data disesuaikan dan disimpan, fungsi update akan mengeksekusinya dan memunculkan notifikasi pembaruan.
8. Fitur CRUD: Hapus Data User (Delete)
Langkah terakhir adalah membuat fitur penghapusan data. Tombol "Hapus" berwarna merah diletakkan bersebelahan dengan tombol edit dan dibungkus dalam sebuah form ber-metode DELETE. Untuk keamanan, konfirmasi pop-up javascript ditambahkan agar data tidak terhapus secara tidak sengaja. Saat disetujui, fungsi destroy menghapus data tersebut dari database secara permanen.
Kesimpulan
Berdasarkan hasil praktikum yang telah dilakukan, dapat disimpulkan bahwa implementasi *framework* Laravel sangat efisien untuk membangun aplikasi web berbasis MVC. Melalui integrasi template eksternal (SB Admin 2) dan konfigurasi *routing*, antarmuka yang dihasilkan menjadi sangat profesional. Selain itu, praktik pembuatan sistem CRUD (Create, Read, Update, Delete) berjalan dengan baik dan lancar, memberikan pemahaman yang mendalam mengenai bagaimana aliran data dikirim dari *View*, diproses oleh *Controller*, dan disimpan dengan aman ke dalam sistem basis data menggunakan *Model*.