Pemrograman Web

Laporan Praktikum 4

Laravel UI, Bootstrap, & Templating

A

Pendahuluan

Praktikum ini membahas pengembangan aplikasi web berbasis Laravel dengan studi kasus Sistem Informasi Sekolah. Topik utama dalam praktikum ini meliputi penggunaan Laravel UI, integrasi Bootstrap sebagai framework CSS, serta penerapan Templating dan Layouting menggunakan Blade Template Engine.

B

Tujuan

Laravel UI & Authentication

Mampu menggunakan package laravel/ui untuk membuat sistem autentikasi seperti login, register, dan reset password tanpa perlu membuatnya dari nol.

Integrasi Bootstrap

Mampu mengintegrasikan template SB Admin 2 berbasis Bootstrap ke dalam project Laravel untuk menghasilkan tampilan dashboard yang terstruktur.

Blade Templating

Mampu membangun layout global menggunakan blade templating dengan direktif @yield, @extends, @section, dan @include untuk menjaga konssitensi tampilan antar halaman.

CRUD Manajemen User

Mampu membuat fitur Create, Read, Update, Delete (CRUD) untuk entitas pengguna menggunakan Resource Controller di Laravel.

C

Alat dan Tools yang Digunakan

Laptop
XAMPP
VS Code
Composer
GIT
Node JS
NPM
D

Langkah Kerja

1. Membuat Project Laravel

Buat project Laravel deengan mengetikkan perintah berikut pada terminal: composer create-project laravel/laravel laravel-sisfo.

laravel project
2. Konfigurasi Database

Buka file .env pada project, lalu sesuaikan konfigurasi database seperti berikut:

konfigurasi database
3. User Authentication

User authentication pada studi kasus ini menggunakan fitur authentication bawaan dari laravel melalui package laravel/ui.

1
Install Package laravel/ui

Buka terminal cmd kemudian ketikkan perintah berikut: composer require laravel/ui. Jika berhasil, maka akan muncul tampilan seperti gambar berikut.

install laravel/ui
2
Fitur Autentikasi

Jalankan perintah berikut untuk membuat fitur autentikasi secara otomatis menggunakan bootstrap: php artisan ui bootstrap --auth. Jika berhasil, maka akan muncul tampilan seperti berikut. authentication fitur

3
Install dan Compile

Ketikkan perintah npm install && npm run dev untuk menginstall dan compile file-file asset bawaan, sehingga file-file yang dibutuhkan untuk authentication akan di-generate secara otomatis seperti halaman login, register, dan forgot password. install dan compile

Selain controller, juga terdapat view untuk authentication seperti berikut.

degenerate view
4
Jalankan Migration

Ketikkan perintah php artisan migrate untuk membuat migration table authentication. Jika berhasil, maka aplikasi sisfo sudah memiliki fitur authentication bawaan dari Laravel. Lakukan percobaan registrasi dan login, jika berhasil maka akan tampil seperti gambar berikut.

login
4. Custom Table Users

Table users yang di-generate Laravel secara default hanya memiliki kolom id, name, email, password, dan beberapa kolom timestamp. Dari struktur tersebut, kita perlu menambahkan beberapa field yaitu username, level, dan status.

1
Buat Migration Baru

Buat migration untuk menambahkan field di atas dengan mengetikkan perintah berikut: php artisan make:migration costum_table_users. Selanjutnya, buka folder database/migration seperti gambar berikut.

migration
2
Isi File Migration

Buka file migration dengan nama custom_table_users.php lalu isikan dengan kode berikut.

custom table users
3
Jalankan Migration

Jalankan migration di file tersebut dengan mengetikkan perintah berikut: php artisan migrate. Setelah berhasil, maka struktur tabel users akan memiliki 11 kolom, termasuk penambahan username, level, dan status.

custom table users
5. Seeding User Admin

Setelah selesai mengatur tabel, kita perlu menambah user dengan menggunakan fitur seeding pada Laravel.

1
Buat Seeding Baru

Buat seeding untuk menambahkan user admin mengetikkan perintah berikut: php artisan make:seeder AdminSeeder. Selanjutnya, buka folder database/Seeder. Buka file AdminSeeder.php, lalu isi dengan kode program berikut.

seeder admin
2
Jalankan Seeding

Jalankan seeding dengan perintah berikut: php artisan db:seed --class=AdminSeeder. Jika berhasil, user dapat login ke aplikasi menggunakan akun tersebut.

login seeder
6. Templating dan Layouting

Tampilan aplikasi dikonfigurasi menggunakan template SB Admin 2 berbasis Bootstrap 4. Download template dari https://startbootstrap.com/theme/sb-admin-2 kemudian ekstrak. Selanjutnya, copy semua asset template ke dalam folder public/sbadmin.

1
Halaman Login Aplikasi

Buka file app.blade.php pada folder view/layouts lalu tambahkan kode berikut.

app.blade.php

Buka halaman login maka akan muncul tampilan seperti berikut.

halaman login
2
Layout Global

Buat file baru views/layouts/main.blade.php sebagai layout utama aplikasi. Isi file tersebut dengan kode berikut.

main.blade.php1 main.blade.php2
Penjelasan direktif Blade:
@include: menyertakan view lain ke dalam layout.
@yield('nama'): mendefinisikan slot yang akan diisi oleh halaman child.
@extends('layouts.main'): digunakan oleh halaman child untuk mewarisi layout main.
@section('nama')- @endsection: mengisi slot yang didefinisikan @yield.
3
Sidebar

Buat file views/layouts/sidebar.blade.php yang berisi navigasi sidebar dengan menu Dashboard dan Users. Isi file dengan kode berikut.

sidebar.blade.php
4
Topbar

Buat file views/layouts/topbar.blade.php yang memuat nama user yang sedang login dan tombol logout dengan modal konfirmasi. Isi file dengan kode berikut.

topbar.blade.php
5
Home

Buka file views/home.blade.php lalu isikan dengan kode program berikut.

home.blade.php
6
Dashboard

Jika konfigurasi berhasil, maka tampilan halaman dashboard akan muncul seperti berikut.

dashboard
7. Manajemen Users (CRUD)

Fitur manajemen pengguna dibuat menggunakan Resource Controller yang secara otomatis mengatur operasi CRUD ke dalam method yang sudah terstruktur di Laravel.

1
Buat Resource Controller

Jalankan perintah php artisan make:controller UserController --resource lalu tambahkan route resource pada routes/web.php seperti berikut.

route UserController

Selanjutnya, lihat pemetaan route php artisan route:list seperti berikut.

list route
2
CREATE

Isi action create() untuk menampilkan form, dan store() untuk menyimpan data seperti berikut.

tambah user baru
3
Blade Create

Buat folder user di dalam view, lalu tambahkian file create.blade.php. Isikan dengan kode berikut.

create.blade.php
4
Tampilan Form Input User

Buka halaman /users/create, jika konfigurasi berhasil maka akan muncul tampilan seperti berikut.

tampilan form input user
5
READ

Buka action index() pada UserController, lalu tambahkan kode berikut.

index()
5
Blade Index

Buat file dengan nama index.blade.php lalu isi dengan kode berikut.

index.blade.php
6
Tampilan Halaman List User

Buka halaman /users maka akan muncul tampilan list user seperti berikut.

list user
7
UPDATE

Buka action edit() dan update lalu isi dengan kode berikut.

edit()
8
Blade Edit

Buat file dengan nama edit.blade.php lalu isikan dengan kode berikut.

edit.blade.php
9
Tampilan Halaman Edit

Buka halaman users/(id)/edit, maka akan muncul tampilan seperti berikut.

halaman edit
10
DELETE

Buka action destroy() pada UserController lalu tambahkan kode program berikut.

destroy()
11
Halaman Tampilan Delete

Jika tombol hapus diklik, maka akan muncul pop-up dialog peringatan seperti berikut ini.

pop-up dialog

Jika tombol OK ditekan, maka data akan terhapus dan muncul pesan berhasil seperti berikut.

pesan sukses saat data dihapus
8. Sidebar Users

Pada sidebar.blade.php, tambahkan kode program berikut.

sidebar users

Maka, pada aplikasi akan muncul menu users seperti berikut.

tampilan sidebar
E

Kesimpulan

Dari praktikum yang telah dilakukan, telah dipelajari cara membangun aplikasi Laravel yang memiliki sistem autentikasi, tampilan konsisten, dan fitur manajemen data pengguna secara lengkap. Konsep utama dalam praktikum ini adalah sebagai berikut.

PerintahKeterangan
composer require laravel/ui Menginstall package autentikasi Laravel
php artisan ui bootstrap --auth Membuat controller, view, dan route autentikasi berbasis Bootstrap secara otomatis
@yield / @ssection / @extends Direktif Blade untuk membuat layout global yang dapat diturunkan ke halaman child
@include Menyertakan partial view (sidebar dan topbar) ke dalam layout utama
Route::resource Mendaftarkan 7 route CRUD untuk sebuah resource controller
Hash::make() Mengenkripsi password sebelum disimpan ke database
G

Repository Github

Kode project dapat diakses melalui repository Github berikut.

Buka Github