Laravel UI Bootstrap dan Templating
untuk Aplikasi
User Management
Dokumentasi Praktikum 9 menampilkan implementasi Laravel UI Bootstrap dan integrasi SB Admin 2 untuk membuat sistem autentikasi, user management, dan templating layout yang konsisten.
Ringkasan Praktikum 9
Praktikum ini memfokuskan pada penggunaan Laravel UI Bootstrap untuk autentikasi dan templating SB Admin 2, disertai user CRUD, DataTables, Select2, dan dokumentasi halaman aplikasi.
Laravel Authentication
Menggunakan Laravel UI untuk membuat login, register, dan reset password.
SB Admin 2
Integrasi layout admin profesional dengan sidebar, topbar, dan konten dashboard.
CRUD User
Implementasi resource controller, DataTables, dan form create/edit.
1. Membuat Project Laravel Sisfo
Langkah pertama adalah membuat project Laravel baru dengan Composer.
Perintah ini membuat struktur proyek lengkap dengan folder app,
routes, dan dependensi Laravel.
composer create-project laravel/laravel laravel-sisfo
Setelah proses selesai, aplikasi dijalankan dengan server bawaan Laravel untuk memastikan environment berfungsi.
php artisan serve
Hasil
Aplikasi Laravel berhasil dijalankan di
http://127.0.0.1:8000
dan siap untuk konfigurasi selanjutnya.
2. Konfigurasi Database
Konfigurasi database di file .env diperlukan agar
Laravel dapat terhubung ke MySQL untuk menyimpan data pengguna, sesi, dan tabel aplikasi.
Pengaturan ini menentukan driver, host, port, nama database, serta kredensial akses.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel-sisfo
DB_USERNAME=root
DB_PASSWORD=
Setelah konfigurasi berhasil, Laravel menggunakan informasi tersebut untuk membangun koneksi database saat menjalankan migration dan query Eloquent.
Tujuan
- Menghubungkan aplikasi Laravel ke MySQL
- Mengaktifkan migration dan seeding
- Menggunakan environment terpisah untuk development
3. Laravel Authentication
Laravel UI Bootstrap menawarkan autentikasi siap pakai dengan layout Bootstrap yang mudah dikembangkan.
Install Laravel UI
composer require laravel/ui
Package ini menambahkan generator frontend untuk Bootstrap, Vue, dan React pada Laravel.
Generate Bootstrap Authentication
php artisan ui bootstrap --auth
Perintah ini membuat route, controller, view, dan asset Bootstrap untuk halaman login, register, dan password reset.
Install Dependency Frontend
npm install
npm run dev
Build asset frontend Laravel menggunakan NPM dan Vite, sehingga tampilan Bootstrap dapat aktif di aplikasi.
Migration Authentication
php artisan migrate
Perintah ini membuat tabel users,
password_resets, personal_access_tokens, dan tabel pendukung
autentikasi.
Hasil Otomatis Laravel Authentication
- Login
- Register
- Forgot Password
- Authentication Route
- Authentication Controller
- Authentication View
Laravel membuat struktur autentikasi lengkap sehingga pengembang dapat langsung fokus pada integrasi UI dan fungsi aplikasi.
4. Pengujian Authentication
Setelah proses build selesai, halaman autentikasi diuji untuk memastikan login, register, dan dashboard berjalan sesuai harapan.
- Halaman Login: Form login Bootstrap dengan validasi bawaan Laravel.
- Halaman Register: Form pendaftaran pengguna baru dengan koneksi
ke tabel
users. - Dashboard Setelah Login: Halaman beranda yang hanya dapat diakses oleh pengguna terautentikasi.
Implementasi authentication bawaan Laravel memastikan sesi user aman,
redirect otomatis, dan middleware auth bekerja dengan benar.
Hasil
Halaman autentikasi berjalan dengan baik dan dashboard tampil setelah pengguna login.
5. Custom Table Users
Untuk kebutuhan aplikasi, tabel users dikembangkan
dengan field tambahan agar setiap akun memiliki informasi username, level, dan status.
php artisan make:migration costum_table_users
Di file migration, ditambahkan field baru berikut:
$table->string('username')->unique();
$table->string('level');
$table->enum('status',['ACTIVE','INACTIVE']);
Perubahan ini membuat struktur tabel users menjadi lebih
lengkap untuk kebutuhan manajemen user di dashboard admin.
Penjelasan
- username: Identitas login unik selain email.
- level: Role pengguna (ADMIN, GURU, STAFF).
- status: Status akun aktif atau nonaktif.
6. Seeder Admin
Akun admin default dibuat melalui seeder agar administrator dapat langsung masuk tanpa membuat pengguna manual.
php artisan make:seeder AdminSeeder
Seeder ini berisi data akun admin dengan email, username, password terenkripsi, level, dan status aktif.
php artisan db:seed --class=AdminSeeder
Setelah seeding dijalankan, akun admin default dapat digunakan untuk login melalui halaman autentikasi.
Hasil Seeder
Data admin tersimpan di tabel users dan dapat
digunakan sebagai akun utama aplikasi.
7. Integrasi Template SB Admin 2
Template SB Admin 2 dipakai untuk menghadirkan tampilan dashboard admin dengan sidebar, topbar, dan layout yang konsisten.
Langkah Integrasi
- Download template SB Admin 2
- Buat folder
public/sbadmin - Salin seluruh asset template (CSS, JS, dan vendor)
Konsep Templating
Laravel Blade digunakan untuk mengelola layout dengan directive:
@extends('layouts.main')
@include('layouts.sidebar')
@yield('content')
@section('title', 'Dashboard')
app.blade.php
Layout untuk halaman login.
main.blade.php
Layout utama aplikasi dashboard.
sidebar.blade.php
Navigasi dashboard untuk menu user management.
topbar.blade.php
Menampilkan user menu dan tombol logout.
home.blade.php
Halaman dashboard utama menggunakan
@extends('layouts.main')
dan menyajikan ringkasan informasi user serta navigasi CRUD.
8. User Management CRUD
User management dibangun dengan controller resource Laravel untuk menyediakan operasi create, read, update, dan delete.
Membuat Resource Controller
php artisan make:controller UserController --resource
Controller resource otomatis menyertakan method CRUD standar.
Routing Resource
Route::resource('users', UserController::class);
Route ini memetakan URL ke method index, create, store, edit, update, dan destroy.
Fungsi Method Controller
- index: Menampilkan daftar user.
- create: Menampilkan form tambah user.
- store: Menyimpan user baru ke database.
- edit: Menampilkan form edit data user.
- update: Memperbarui data user.
- destroy: Menghapus user.
9. Create User
Halaman create user menghadirkan form lengkap untuk nama, email, username, password, dan level pengguna.
Field pada create.blade.php mencakup:
- Nama
- Username
- Password
- Level
Select2 Multiple
Level pengguna menggunakan plugin Select2 untuk tampilan yang modern dan mudah digunakan.
$('.select2-multiple').select2({
placeholder: 'Pilih',
allowClear: true
});
Pilihan level meliputi ADMIN, GURU, dan STAFF.
10. Store User
Proses penyimpanan user menggunakan model User dengan hash password dan penyimpanan level dalam format JSON agar data multi-role dapat dikelola.
$user = new User;
$user->name = $request->get('nama');
$user->username = $request->get('username');
$user->email = $request->get('email');
$user->password = Hash::make($request->get('password'));
$user->level = json_encode($request->get('level'));
$user->save();
Penjelasan
Penyimpanan password menggunakan hashing meningkatkan
keamanan, sementara json_encode memungkinkan level multi-value jika
diperlukan.
11. Read / List User
Method index() mengambil seluruh data user dan
menampilkannya dalam tabel yang mudah dibaca.
public function index()
{
$users = User::all();
return view('users.index', compact('users'));
}
Pada index.blade.php, tabel menampilkan kolom nama,
username, email, dan action untuk edit atau hapus.
Kolom Tabel
- Name
- Username
- Action
12. DataTables
DataTables meningkatkan pengalaman manajemen data dengan pagination, pencarian, dan sorting otomatis di tabel user.
dataTables.bootstrap4.min.css
jquery.dataTables.min.js
dataTables.bootstrap4.min.js
Keuntungan
- Memudahkan pencarian data
- Mengatur pagination otomatis
- Mendukung sorting kolom
13. Edit User
Tombol edit pada tabel user mengarahkan ke halaman edit dengan data lama sudah terisi di form. Hal ini memudahkan administrator memperbarui akun.
route('users.edit', $user->id)
Pada method edit(), user dicari menggunakan ID dan
ditampilkan pada view edit.
$user = User::findOrFail($id);
edit.blade.php
Form menampilkan nilai lama sehingga administrator dapat mengubah data tanpa mengetik ulang semua field.
14. Update User
Metode update() digunakan untuk menyimpan perubahan
data user. Biasanya route update menggunakan method PUT agar sesuai konvensi RESTful.
Proses update memvalidasi input, kemudian memperbarui field pengguna di database.
Proses Update
- Ambil data user berdasarkan ID
- Validasi input
- Update atribut user
- Simpan perubahan ke database
15. Delete User
Tombol delete menghapus user dari tabel dan membersihkan akun yang tidak lagi diperlukan.
$user->delete();
Metode destroy() dipanggil oleh route delete
untuk menghapus record user secara permanen.
Penjelasan
Penghapusan user umumnya disertai konfirmasi agar tidak terjadi penghapusan tak sengaja.
16. Kesimpulan
Praktikum 9 memperkuat kemampuan Laravel dalam membuat autentikasi, migrasi custom user, seeder admin, integrasi template SB Admin 2, serta implementasi CRUD user yang responsif.
Dengan fitur DataTables dan Select2, halaman manajemen user menjadi lebih interaktif, sedangkan konsep Blade templating memudahkan pengelolaan layout dashboard.
Poin Utama
- Authentication Laravel UI
- Migration Custom User
- Seeder Admin
- SB Admin 2
- Blade Templating
- CRUD User
- DataTables & Select2
Dokumentasi Hasil
Berikut gambar placeholder dokumentasi untuk implementasi halaman autentikasi, dashboard, CRUD user, dan layout SB Admin 2.
Login Page
Register Page
Dashboard Page
Custom Users Table
Admin Seeder
SB Admin Login
Main Layout
Sidebar Layout
Topbar Layout
Users Index
Users Create
Users Edit