Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:
laravel/ui dengan Bootstrap@extends, @section, @yield, dan @includeLaravel adalah framework PHP yang menggunakan pola arsitektur MVC (Model-View-Controller). Package laravel/ui menyediakan scaffolding authentication siap pakai yang secara otomatis men-generate controller, model, view, dan route yang dibutuhkan untuk fitur login, register, dan forgot password.
Blade Templating Engine adalah sistem template bawaan Laravel yang memungkinkan pembuatan
layout global dengan direktif seperti @extends, @section, @yield,
dan @include. Hal ini memudahkan pengelolaan tampilan yang konsisten di seluruh halaman aplikasi.
Migration digunakan untuk membuat dan mengelola struktur database secara terversioning,
sedangkan Seeding digunakan untuk mengisi data awal ke database secara otomatis tanpa input manual.
Resource Controller adalah controller yang memiliki method CRUD lengkap yang di-generate otomatis
oleh Laravel, dikombinasikan dengan Route::resource untuk mendaftarkan semua route CRUD sekaligus.
Buka terminal Laragon, masuk ke folder C:\laragon\www, kemudian buat project Laravel 10 menggunakan perintah composer create-project laravel/laravel=^10.0 laravel-sisfo --prefer-dist. Setelah selesai, masuk ke folder project dengan perintah cd laravel-sisfo.
Buka file .env pada root project dan sesuaikan konfigurasi database dengan mengisi DB_DATABASE=laravel_sisfo, DB_USERNAME=root, dan DB_PASSWORD= (kosong).
Install package laravel/ui menggunakan perintah composer require laravel/ui. Setelah berhasil terinstall, generate scaffolding authentication dengan Bootstrap menggunakan perintah php artisan ui bootstrap --auth. Jika muncul pertanyaan "Do you want to replace it?" ketik yes untuk semua.
Perintah tersebut secara otomatis men-generate controller auth, view login/register, dan layout app.blade.php. Selanjutnya install dan compile asset menggunakan perintah npm install && npm run dev. Setelah selesai compile, tekan Ctrl+C lalu ketik Y untuk stop. Kemudian jalankan migration dengan perintah php artisan migrate.
Tabel users bawaan Laravel perlu ditambahkan beberapa field yaitu username, level, dan status. Buat migration baru menggunakan perintah php artisan make:migration costum_table_users.
Buka file migration yang baru dibuat di folder database/migrations/, kemudian isi method up() dengan menambahkan kolom username (string, unique), level (string), dan status (enum: ACTIVE, INACTIVE). Method down() diisi dengan perintah dropColumn untuk ketiga field tersebut.
Buat seeder untuk mengisi data user admin awal ke database menggunakan perintah php artisan make:seeder AdminSeeder. File seeder akan dibuat di folder database/seeders/AdminSeeder.php.
Buka file AdminSeeder.php dan isi method run() dengan membuat instance model User, kemudian mengisi field username, name, email, level (json_encode), status, dan password menggunakan bcrypt(). Setelah itu panggil $admin->save() untuk menyimpan ke database.
Jalankan seeder dengan perintah php artisan db:seed --class=AdminSeeder untuk mengisi data admin ke database.
Download template SB Admin 2 di startbootstrap.com/theme/sb-admin-2, ekstrak file zip yang didownload, kemudian buat folder public/sbadmin/ di dalam project Laravel dan copy semua isi folder template (css, js, vendor, img) ke dalamnya.
Buka file resources/views/layouts/app.blade.php dan ganti seluruh isinya dengan template HTML login SB Admin 2. File ini menggunakan asset dari folder public/sbadmin/ melalui helper asset(), dan form login diarahkan ke route login menggunakan method POST dengan token @csrf.
Buat file baru resources/views/layouts/main.blade.php sebagai layout utama aplikasi. Layout ini memanggil @include('layouts.sidebar') dan @include('layouts.topbar') sehingga kedua komponen tersebut tampil di semua halaman yang menggunakan layout ini. Konten halaman ditampilkan menggunakan @yield('konten') dan judul halaman menggunakan @yield('judul').
Buat file baru resources/views/layouts/sidebar.blade.php yang berisi navigasi sidebar aplikasi menggunakan class SB Admin 2. Sidebar menampilkan menu Dashboard dan Users dengan icon Font Awesome.
Buat file baru resources/views/layouts/topbar.blade.php yang berisi navbar atas dengan dropdown menu user. Nama user yang sedang login ditampilkan menggunakan Auth::user()->name. Menu logout menggunakan modal konfirmasi sebelum melakukan logout.
Edit file resources/views/home.blade.php agar menggunakan layout main dengan direktif @extends('layouts.main'), kemudian isi section judul dan konten menggunakan @section dan @endsection.
Pada langkah ini dibuat fitur manajemen users secara lengkap (Create, Read, Update, Delete) menggunakan Resource Controller. Setiap bagian dijelaskan beserta kode file dan tampilan hasilnya di browser.
Buat UserController dengan flag --resource menggunakan perintah berikut agar semua method CRUD (index, create, store, show, edit, update, destroy) otomatis tersedia.
Buka file app/Http/Controllers/UserController.php — file ini berisi skeleton method CRUD yang akan diisi secara bertahap.
Tambahkan route resource di routes/web.php dengan Route::resource('users', UserController::class) agar semua route CRUD terdaftar otomatis dalam satu baris.
Edit method create() di UserController agar mengembalikan view form tambah user, dan method store() untuk menyimpan data baru ke database. Data level disimpan dalam format JSON menggunakan json_encode().
Buat file resources/views/user/create.blade.php berisi form input dengan field nama, email, username, password, dan level. Field level menggunakan select2 multiple agar bisa memilih lebih dari satu level.
Edit method index() di UserController untuk mengambil semua data user menggunakan User::all() dan mengirimkannya ke view user/index.blade.php.
Buat file resources/views/user/index.blade.php yang menampilkan daftar user dalam tabel menggunakan plugin DataTables agar tabel memiliki fitur pencarian, pengurutan, dan paginasi otomatis.
Edit method edit() di UserController untuk mengambil data user berdasarkan id menggunakan findOrFail() dan mengirimkannya ke view. Method update() menerima data baru dari form dan menyimpan perubahan ke database.
Buat file resources/views/user/edit.blade.php yang berisi form edit dengan nilai default dari data user yang dipilih. Form menggunakan @method('PUT') untuk method spoofing karena HTML form tidak mendukung method PUT secara langsung. Field level menampilkan nilai terpilih sebelumnya menggunakan in_array() dan json_decode().
Tambahkan tombol hapus di view user/index.blade.php menggunakan form dengan @method('DELETE') dan atribut onsubmit="return confirm()" untuk menampilkan dialog konfirmasi sebelum data dihapus.
Edit method destroy() di UserController untuk menghapus data user berdasarkan id menggunakan findOrFail() dan delete(), kemudian redirect ke halaman index dengan flash message success.
Praktikum ini berhasil mengimplementasikan sistem informasi sekolah berbasis Laravel 10 dengan fitur authentication menggunakan laravel/ui dan Bootstrap, serta tampilan menggunakan template SB Admin 2. Fitur authentication otomatis men-generate halaman login, register, controller auth, dan route yang dibutuhkan sehingga mempercepat proses pengembangan.
Custom migration berhasil menambahkan field username, level, dan status
ke tabel users sesuai kebutuhan aplikasi. Seeding berhasil mengisi data admin awal ke database. Layout global
main.blade.php dengan Blade Templating berhasil diterapkan sehingga sidebar dan topbar tampil
konsisten di semua halaman. Fitur CRUD users berhasil diimplementasikan menggunakan Resource Controller dengan
DataTables dan Select2.
| Komponen | File | Fungsi |
|---|---|---|
| Authentication | app/Http/Controllers/Auth/ | Controller login, register, forgot password |
| Migration | database/migrations/xxxx_costum_table_users.php | Menambahkan field username, level, status ke tabel users |
| Seeder | database/seeders/AdminSeeder.php | Mengisi data user admin awal ke database |
| Layout Login | resources/views/layouts/app.blade.php | Template halaman login dengan SB Admin 2 |
| Layout Utama | resources/views/layouts/main.blade.php | Layout global dengan sidebar dan topbar |
| Sidebar | resources/views/layouts/sidebar.blade.php | Navigasi sidebar aplikasi |
| Topbar | resources/views/layouts/topbar.blade.php | Navbar atas dengan info user dan logout |
| UserController | app/Http/Controllers/UserController.php | CRUD manajemen users (index, create, store, edit, update, destroy) |
| View Create | resources/views/user/create.blade.php | Form tambah user baru dengan select2 multiple |
| View Index | resources/views/user/index.blade.php | Daftar users dengan DataTables dan tombol aksi |
| View Edit | resources/views/user/edit.blade.php | Form edit user dengan data lama sebagai nilai default |
Berdasarkan praktikum yang telah dilakukan, dapat disimpulkan bahwa:
@extends, @section, @yield, dan @include berhasil diterapkan untuk membuat layout global yang konsisten di seluruh halaman.Route::resource memudahkan pembuatan CRUD karena semua route CRUD otomatis terdaftar dalam satu baris perintah.