Laporan resmi praktikum — Implementasi sistem autentikasi bawaan Laravel menggunakan package laravel/ui, integrasi template SB Admin 2, dan manajemen pengguna dengan operasi CRUD lengkap.
Melanjutkan praktikum sebelumnya, praktikum ini membahas integrasi fitur autentikasi ke dalam proyek Laravel menggunakan package laravel/ui. Package ini secara otomatis men-generate controller, model, view, dan route yang diperlukan untuk proses login, registrasi, dan pengelolaan sesi pengguna.
Selain autentikasi, praktikum ini juga mencakup penerapan template admin berbasis Bootstrap yaitu SB Admin 2 dari StartBootstrap, serta implementasi fitur manajemen pengguna dengan pola Resource Controller yang menyediakan operasi CRUD (Create, Read, Update, Delete) secara terstruktur.
Sebelum menjalankan autentikasi, database harus dikonfigurasi terlebih dahulu melalui file .env di root proyek Laravel. Buka file tersebut dan sesuaikan nilai berikut:
Package laravel/ui menyediakan scaffolding antarmuka pengguna untuk autentikasi. Instal melalui Composer, lalu jalankan perintah artisan untuk men-generate scaffold autentikasi berbasis Bootstrap:
Selanjutnya compile aset front-end menggunakan npm:
Setelah scaffolding berhasil, Laravel secara otomatis men-generate file-file berikut:
Jalankan migrasi untuk membuat tabel-tabel autentikasi secara otomatis. Jika database belum ada, Laravel akan memberikan konfirmasi pembuatannya:
| # | Name | Type |
|---|---|---|
| 1 | id | bigint(20) |
| 2 | name | varchar(255) |
| 3 | varchar(255) | |
| 4 | email_verified_at | timestamp |
| 5 | password | varchar(255) |
| 6 | remember_token | varchar(100) |
| 7 | created_at | timestamp |
| 8 | updated_at | timestamp |
Untuk kebutuhan aplikasi, perlu ditambahkan field username, level, dan status. Buat migration baru:
Buka file migrasi yang baru dibuat di database/migrations/ dan isi dengan kode berikut:
| # | Name | Type |
|---|---|---|
| 1–8 | ... (field bawaan) | — |
| 9 | username | varchar(255) UNIQUE |
| 10 | level | varchar(255) |
| 11 | status | enum('ACTIVE','INACTIVE') |
Buat seeder untuk mengisi data admin awal menggunakan Artisan:
Buka file database/seeders/AdminSeeder.php dan isi dengan kode berikut:
Unduh template SB Admin 2 dari startbootstrap.com/theme/sb-admin-2, kemudian extract. Salin seluruh isi folder asset ke dalam public/sbadmin/ pada proyek Laravel.
Ganti isi resources/views/layouts/app.blade.php dengan template login SB Admin 2. Perhatikan penggunaan helper asset() untuk memanggil file statis:
Buat file baru resources/views/layouts/main.blade.php sebagai layout utama aplikasi. Layout ini menggunakan @include untuk memanggil sidebar dan topbar, serta @yield untuk menyuntikkan konten dari view lain:
Buat dua file partial di resources/views/layouts/:
Untuk menggunakan layout main.blade.php pada view lain, gunakan sintaks @extends dan @section:
Buat Resource Controller untuk manajemen pengguna. Resource Controller menyediakan 7 method secara otomatis (index, create, store, show, edit, update, destroy):
Tambahkan route resource di routes/web.php:
| Method | URI | Action | Route Name |
|---|---|---|---|
| GET | /users | index | users.index |
| POST | /users | store | users.store |
| GET | /users/create | create | users.create |
| GET | /users/{user} | show | users.show |
| PUT/PATCH | /users/{user} | update | users.update |
| DELETE | /users/{user} | destroy | users.destroy |
| GET | /users/{user}/edit | edit | users.edit |
View form tambah user di resources/views/user/create.blade.php menggunakan layout main dan Select2 untuk pemilihan level:
View list menggunakan DataTables untuk pencarian dan paginasi otomatis:
Tombol hapus menggunakan konfirmasi JavaScript dan method spoofing DELETE:
Praktikum ini telah berhasil mendemonstrasikan beberapa konsep penting dalam pengembangan aplikasi web menggunakan Laravel: