Laporan Praktikum 9

Studi Kasus Sistem Informasi Sekolah (SISFO)

Dibuat : 20 Juni 2026

Repository GitHub

Tujuan Praktikum

Memahami dan mampu membangun aplikasi web berbasis framework Laravel 9 dengan studi kasus Sistem Informasi Sekolah (SISFO).

  • Membuat project Laravel baru dan melakukan konfigurasi database.
  • Implementasi fitur User Authentication menggunakan package laravel/ui.
  • Melakukan kustomisasi tabel users dengan menambahkan kolom username, level, dan status.
  • Mengintegrasikan template SB Admin 2 sebagai layout utama aplikasi.
  • Membuat fitur Manajemen Users dengan operasi CRUD lengkap.
  • Menerapkan konsep layout inheritance Blade Template Engine (@extends, @section, @yield, @include).

Landasan Teori

Praktikum ini memanfaatkan berbagai fitur bawaan Laravel 9 dan package pendukung untuk membangun sistem informasi sekolah secara terstruktur.

Package laravel/ui menyediakan scaffolding autentikasi secara otomatis, meliputi controller, view (login, register, forgot password), dan route autentikasi. Perintah php artisan ui bootstrap --auth akan men-generate semua komponen tersebut beserta integrasi Bootstrap sebagai framework CSS-nya.

Laravel Authentication secara default menghasilkan tabel users dengan kolom standar (id, name, email, password, dll). Untuk kebutuhan aplikasi SISFO, tabel tersebut perlu dikustomisasi dengan menambahkan kolom username (unique), level (format JSON untuk multi-role), dan status (enum: ACTIVE/INACTIVE) melalui file migration tambahan.

Laravel menyediakan mekanisme layout inheritance melalui Blade. Layout utama (main.blade.php) mendefinisikan struktur halaman dengan @yield('slot') sebagai placeholder. View turunan menggunakan @extends('layouts.main') dan mengisi placeholder melalui @section('slot')...@endsection. Komponen partial seperti sidebar dan topbar di-include menggunakan @include('layouts.nama').

SB Admin 2 adalah template admin gratis berbasis Bootstrap 4 yang tersedia di startbootstrap.com/theme/sb-admin-2. Template ini menyediakan komponen seperti sidebar, topbar, DataTables, dan berbagai widget dashboard. Asset template ditempatkan di folder public/sbadmin dan dipanggil melalui helper asset() pada Blade.

Resource Controller yang dibuat dengan flag --resource secara otomatis menyediakan 7 method standar: index, create, store, show, edit, update, dan destroy. Dikombinasikan dengan Route::resource(), satu baris route sudah mendaftarkan semua endpoint CRUD sekaligus.

Alat dan Bahan

  • Laptop / Komputer
  • XAMPP (Apache + MySQL)
  • Visual Studio Code
  • Composer, Git, Node.js, NPM
  • Template SB Admin 2 (startbootstrap.com/theme/sb-admin-2)
  • Browser (Google Chrome / Firefox)

Langkah Pengerjaan

1. Membuat Project Laravel dengan Nama Laravel-sisfo

Pertama, buat folder baru bernama "Laravel" pada direktori sistem Anda. Navigasi ke folder tersebut menggunakan terminal dan jalankan perintah di bawah ini untuk membuat project Laravel baru:

composer create-project laravel/laravel=^12.0 laravel-sisfo --prefer-dist

Setelah project selesai dibuat, jalankan perintah berikut untuk memulai development server lokal:

php artisan serve

Buka browser dan akses http://127.0.0.1:8000 untuk memastikan project telah dibuat dengan sukses. Anda akan melihat halaman welcome default Laravel. Tampilan Welcome Laravel


2. Konfigurasi Database

Buat database baru di PHPMyAdmin dengan nama laravel_sisfo. Kemudian, buka file .env pada root project dan sesuaikan konfigurasi database berikut:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_sisfo
DB_USERNAME=root
DB_PASSWORD=

Pastikan pengaturan di atas sesuai dengan konfigurasi MySQL.


3. User Authentication

Mulai dengan menginstal package Laravel UI menggunakan Composer:

composer require laravel/ui

Setelah instalasi selesai, generate scaffolding autentikasi dengan Bootstrap:

php artisan ui bootstrap --auth

Install dan compile semua asset frontend yang diperlukan:

npm install && npm run dev

Jalankan migrasi database untuk membuat tabel-tabel yang diperlukan autentikasi:

php artisan migrate

Verifikasi instalasi dengan mengakses halaman login di http://127.0.0.1:8000/login dan halaman register di http://127.0.0.1:8000/register.


4. Kustomisasi Tabel Users

Tabel users bawaan Laravel perlu diperluas dengan kolom tambahan untuk kebutuhan SISFO. Buat file migration baru:

php artisan make:migration costum_table_users

Buka file yang telah dibuat di database/migrations/..._costum_table_users.php dan isikan kode berikut:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->string("username")->unique();
            $table->string("level");
            $table->enum("status", ["ACTIVE", "INACTIVE"]);
        });
    }

    public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->dropColumn("username");
            $table->dropColumn("level");
            $table->dropColumn("status");
        });
    }
};

Jalankan migrasi untuk menerapkan perubahan pada database:

php artisan migrate

Tabel users kini memiliki kolom baru yaitu username, level, dan status. Struktur Tabel Users Setelah Custom


5. Seeding User Admin

Buat seeder untuk inisialiasasi (data dummy) user admin pertama kali:

php artisan make:seeder AdminSeeder

Buka file database/seeders/AdminSeeder.php dan isikan kode berikut untuk membuat user admin:

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

class AdminSeeder extends Seeder
{
    public function run()
    {
        $admin = new \App\Models\User;
        $admin->username = "admin";
        $admin->name     = "Admin Aplikasi";
        $admin->email    = "admin@sisfo.com";
        $admin->level    = json_encode(["ADMIN"]);
        $admin->status   = "ACTIVE";
        $admin->password = \Hash::make("12345678");
        $admin->save();

        $this->command->info("User Admin berhasil ditambahkan");
    }
}

Jalankan seeder dengan perintah berikut:

php artisan db:seed --class=AdminSeeder

6. Integrasi Template SB Admin 2

Download template SB Admin 2 dari startbootstrap.com/theme/sb-admin-2, kemudian ekstrak dan salin seluruh file ke folder public/sbadmin pada project Laravel Anda.

Buka file resources/views/layouts/app.blade.php dan ganti seluruh isinya dengan kode berikut untuk mengubah tampilan halaman login dengan styling SB Admin 2:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Sisfo - Login</title>

    <link href="{{ asset('sbadmin/vendor/fontawesomefree/css/all.min.css') }}" rel="stylesheet" type="text/css">
    <link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">

    <link href="{{ asset('sbadmin/css/sb-admin-2.min.css') }}" rel="stylesheet">
</head>

    <body class="bg-gradient-primary">
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-xl-6 col-lg-6 col-md-9">
                <div class="card o-hidden border-0 shadow-lg my-5">
                    <div class="card-body p-0">
                        <div class="row">
                            <div class="col-lg-12 text-center">
                                <div class="p-5">
                                    <div class="text-center">
                                        <h1 class="h4 text-gray-900 mb-4">Halaman Login</h1>
                                    </div>

    <form class="user" method="POST" action="{{ route('login') }}">
                                        @csrf

    <div class="form-group">
                                            <input id="email" type="email" class="form-control form-control-user @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus />

    @error('email')
                                                <span class="invalid-feedback" role="alert">
                                                    <strong>{{ $message }}</strong>
                                                </span>
                                            @enderror
                                        </div>

    <div class="form-group">
                                            <input id="password" type="password" class="form-control form-control-user @error('password') is-invalid @enderror" name="password" value="{{ old('password') }}" required />

    @error('password')
                                                <span class="invalid-feedback" role="alert">
                                                    <strong>{{ $message }}</strong>
                                                </span>
                                            @enderror
                                        </div>

    <button type="submit" class="btn btn-primary btn-user btn-block">
                                            Login
                                        </button>
                                    </form>

    </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script src="{{ asset('sbadmin/vendor/jquery/jquery.min.js') }}"></script>
    <script src="{{ asset('sbadmin/vendor/bootstrap/js/bootstrap.bundle.min.js') }}"></script>

    <script src="{{ asset('sbadmin/vendor/jqueryeasing/jquery.easing.min.js') }}"></script>

    <script src="{{ asset('sbadmin/js/sb-admin-2.min.js') }}"></script>
</body>
</html>

Verifikasi perubahan dengan mengakses http://127.0.0.1:8000/login di browser. Halaman Login SB Admin 2


7. Membuat Layout Utama (main.blade.php)

Buat file resources/views/layouts/main.blade.php sebagai layout induk untuk semua halaman aplikasi. File ini akan mencakup struktur dasar dengan sidebar, topbar, dan area konten:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Sisfo - @yield('judul')</title>

    <link href="{{ asset('sbadmin/vendor/fontawesomefree/css/all.min.css') }}" rel="stylesheet" type="text/css">
    <link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">
    <link href="{{ asset('sbadmin/vendor/datatables/dataTables.bootstrap4.min.css') }}" rel="stylesheet">
    <link href="{{ asset('sbadmin/css/sb-admin-2.min.css') }}" rel="stylesheet">
</head>

    <body id="page-top">

    <div id="wrapper">

    @include('layouts.sidebar')
        <div id="content-wrapper" class="d-flex flex-column">

    <div id="content">

    @include('layouts.topbar')
                <div class="container-fluid">
                    <h1 class="h3 mb-4 text-gray-800">@yield('judul')</h1>

    @yield('konten')
                </div>
                </div>
            <footer class="sticky-footer bg-white">
                <div class="container my-auto">
                    <div class="copyright text-center my-auto">
                        <span>Copyright &copy; Sisfo</span>
                    </div>
                </div>
            </footer>
            </div>
        </div>
    <a class="scroll-to-top rounded" href="#page-top">
        <i class="fas fa-angle-up"></i>
    </a>

    <div class="modal fade" id="logoutModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">Yakin akan keluar aplikasi?</h5>
                    <button class="close" type="button" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">×</span>
                    </button>
                </div>
                <div class="modal-body">Silahkan klik tombol logout untuk keluar aplikasi.</div>
                <div class="modal-footer">
                    <button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button>
                    <form action="{{ route('logout') }}" method="POST">
                        @csrf
                        <button class="btn btn-primary" style="cursor:pointer">Logout</button>
                    </form>
                </div>
            </div>
        </div>
    </div>

    <script src="{{ asset('sbadmin/vendor/jquery/jquery.min.js') }}"></script>
    <script src="{{ asset('sbadmin/vendor/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
    <script src="{{ asset('sbadmin/vendor/jqueryeasing/jquery.easing.min.js') }}"></script>
    <script src="{{ asset('sbadmin/vendor/datatables/jquery.dataTables.min.js') }}"></script>
    <script src="{{ asset('sbadmin/vendor/datatables/dataTables.bootstrap4.min.js') }}"></script>
    <script src="{{ asset('sbadmin/js/demo/datatables-demo.js') }}"></script>
    <script src="{{ asset('sbadmin/js/sb-admin-2.min.js') }}"></script>

    </body>
</html>

Buat file resources/views/layouts/sidebar.blade.php untuk komponen sidebar:

<ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">

    <!-- Sidebar - Brand -->
    <a class="sidebar-brand d-flex align-items-center justify-content-center" href="#">
        <div class="sidebar-brand-icon rotate-n-15">
            <i class="fas fa-laugh-wink"></i>
        </div>
        <div class="sidebar-brand-text mx-3">Sisfo</div>
    </a>

    <!-- Divider -->
    <hr class="sidebar-divider my-0">

    <!-- Nav Item - Dashboard -->
    <li class="nav-item">
        <a class="nav-link" href="{{ route('home') }}">
            <i class="fas fa-fw fa-tachometer-alt"></i>
            <span>Dashboard</span>
        </a>
    </li>

    <!-- Nav Item - Users -->
    <li class="nav-item">
        <a class="nav-link" href="{{ route('users.index') }}">
            <i class="fas fa-fw fa-users"></i>
            <span>Users</span>
        </a>
    </li>

    <!-- Divider -->
    <hr class="sidebar-divider d-none d-md-block">

    <!-- Sidebar Toggler (Sidebar) -->
    <div class="text-center d-none d-md-inline">
        <button class="rounded-circle border-0" id="sidebarToggle"></button>
    </div>

    </ul>

Buat file resources/views/layouts/topbar.blade.php untuk komponen topbar:

<nav class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow">

    <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
        <i class="fa fa-bars"></i>
    </button>

    <ul class="navbar-nav ml-auto">

    <div class="topbar-divider d-none d-sm-block"></div>

    <li class="nav-item dropdown no-arrow">

    @if (\Auth::user())
                <a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                    <span class="mr-2 d-none d-lg-inline text-gray-600 small">{{ Auth::user()->name }}</span>
                    <img class="img-profile rounded-circle" src="{{ asset('sbadmin/img/undraw_profile.svg') }}">
                </a>
            @endif

    <div class="dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-labelledby="userDropdown">
                <a class="dropdown-item" href="#">
                    <i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i>
                    Profile
                </a>
                <a class="dropdown-item" href="#">
                    <i class="fas fa-cogs fa-sm fa-fw mr-2 text-gray-400"></i>
                    Settings
                </a>
                <div class="dropdown-divider"></div>
                <a class="dropdown-item" href="#" data-toggle="modal" data-target="#logoutModal">
                    <i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i>
                    Logout
                </a>
            </div>

    </li>
    </ul>

    </nav>

Verifikasi perubahan dengan mengakses http://127.0.0.1:8000/home. Tampilan Layout Utama SB Admin


8. Manajemen Users — Resource Controller

Buat Resource Controller untuk mengelola operasi CRUD pengguna:

php artisan make:controller UserController --resource

Tambahkan route pada file routes/web.php:

use App\Http\Controllers\UserController;

Route::middleware(['auth'])->group(function () {
    Route::resource('users', UserController::class);
});

8.1. Read — Menampilkan Daftar Users

Edit method index di UserController.php:

public function index()
{
    $users = \App\Models\User::all();
    return view('users.index', compact('users'));
}

Buat folder resources/views/users dan file index.blade.php:

@extends('layouts.main')
@section("judul") Users @endsection
@section('konten')
@if(session('status'))
    <div class="alert alert-success">{{ session('status') }}</div>
@endif
<p>
    <a href="{{ route('users.create') }}" class="btn btn-primary btn-sm">Tambah User</a>
</p>
<div class="card shadow mb-4">
    <div class="card-body">
        <div class="table-responsive">
            <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
                <thead>
                    <tr>
                        <th><b>Name</b></th>
                        <th><b>Username</b></th>
                        <th><b>Email</b></th>
                        <th><b>Action</b></th>
                    </tr>
                </thead>
                <tbody>
                @foreach($users as $user)
                    <tr>
                        <td>{{ $user->name }}</td>
                        <td>{{ $user->username }}</td>
                        <td>{{ $user->email }}</td>
                        <td>
                            <a href="{{ route('users.edit', $user->id) }}" class="btn btn-sm btn-success">Edit</a>
                            <form onsubmit="return confirm('Hapus data user ?')" class="d-inline"
                                  action="{{ route('users.destroy', [$user->id]) }}" method="POST">
                                @csrf
                                @method('DELETE')
                                <input type="submit" value="Hapus" class="btn btn-danger btn-sm">
                            </form>
                        </td>
                    </tr>
                @endforeach
                </tbody>
            </table>
        </div>
    </div>
</div>
@endsection

Tampilan List Users


8.2. Create — Menambah User Baru

Edit method create dan store di UserController.php:

public function create()
{
    return view('users.create');
}

public function store(Request $request)
{
    $user = new \App\Models\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->status   = "ACTIVE";
    $user->save();

    return redirect()->route('users.index')->with('status', 'User baru berhasil ditambahkan');
}

Buat file resources/views/users/create.blade.php:

@extends('layouts.main')
@section("judul") Create User @endsection
@section('konten')
<div class="card shadow mb-4">
    <div class="card-header py-3"></div>
    <div class="card-body">
        <div class="row">
            <div class="col-lg-9">
                <form method="POST" action="{{ route('users.store') }}">
                    @csrf
                    <div class="form-group row">
                        <label class="col-sm-3 col-form-label text-center">Nama</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control" id="nama" name="nama">
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-sm-3 col-form-label text-center">Email</label>
                        <div class="col-sm-9">
                            <input type="email" class="form-control" id="email" name="email">
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-sm-3 col-form-label text-center">Username</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control" id="username" name="username">
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-sm-3 col-form-label text-center">Password</label>
                        <div class="col-sm-4">
                            <input type="password" class="form-control" id="password" name="password">
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-sm-3 col-form-label text-center">Level</label>
                        <div class="col-sm-4 mr-2">
                            <select class="form-control select2-multiple" name="level[]" multiple="multiple">
                                <option value="ADMIN">ADMIN</option>
                                <option value="GURU">GURU</option>
                                <option value="STAFF">STAFF</option>
                            </select>
                        </div>
                    </div>
                    <div class="form-group row">
                        <div class="col-sm-10 text-center">
                            <button type="reset" class="btn btn-warning btn-sm">Batal</button>
                            <button type="submit" class="btn btn-primary btn-sm">Simpan</button>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>
@endsection

Form Create User


8.3. Update — Mengubah Data User

Edit method edit dan update di UserController.php:

public function edit($id)
{
    $user = \App\Models\User::findOrFail($id);
    return view('users.edit', ['user' => $user]);
}

public function update(Request $request, $id)
{
    $user = \App\Models\User::findOrFail($id);
    $user->name  = $request->get('nama');
    $user->email = $request->get('email');
    $user->level = json_encode($request->get('level'));
    $user->save();

    return redirect()->route('users.index', [$id])->with('status', 'User berhasil diubah');
}

Buat file resources/views/users/edit.blade.php:

@extends('layouts.main')
@section("judul") Edit User @endsection
@section('konten')
<div class="card shadow mb-4">
    <div class="card-header py-3"></div>
    <div class="card-body">
        <div class="row">
            <div class="col-lg-9">
                <form method="POST" action="{{ route('users.update', [$user->id]) }}">
                    @method('PUT')
                    @csrf
                    <div class="form-group row">
                        <label class="col-sm-3 col-form-label text-center">Nama</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control" id="nama" name="nama"
                                   value="{{ $user->name }}">
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-sm-3 col-form-label text-center">Email</label>
                        <div class="col-sm-9">
                            <input type="email" class="form-control" id="email" name="email"
                                   value="{{ $user->email }}">
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-sm-3 col-form-label text-center">Username</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control" id="username" name="username"
                                   value="{{ $user->username }}" readonly>
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-sm-3 col-form-label text-center">Level</label>
                        <div class="col-sm-4 mr-2">
                            <select class="form-control select2-multiple" name="level[]" multiple="multiple">
                                <option value="ADMIN" {{in_array("ADMIN", json_decode($user->level)) ? "selected" : ""}}>ADMIN</option>
                                <option value="GURU"  {{in_array("GURU",  json_decode($user->level)) ? "selected" : ""}}>GURU</option>
                                <option value="STAFF" {{in_array("STAFF", json_decode($user->level)) ? "selected" : ""}}>STAFF</option>
                            </select>
                        </div>
                    </div>
                    <div class="form-group row">
                        <div class="col-sm-10 text-center">
                            <a href="{{ route('users.index') }}" class="btn btn-warning btn-sm">Batal</a>
                            <button type="submit" class="btn btn-primary btn-sm">Simpan</button>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>
@endsection

Form Edit User


8.4. Delete — Menghapus User

Edit method destroy di UserController.php:

public function destroy($id)
{
    $user = \App\Models\User::findOrFail($id);
    $user->delete();

    return redirect()->route('users.index')->with('status', 'User berhasil dihapus');
}

Fitur penghapusan sudah terintegrasi pada halaman index melalui tombol hapus di kolom action. Sistem akan meminta konfirmasi sebelum data benar-benar dihapus dari database.

Konfirmasi Hapus User


9. Menjalankan dan Menguji Aplikasi

Jalankan server development Laravel dengan perintah:

php artisan serve

Buka browser dan akses http://127.0.0.1:8000. Anda akan diarahkan ke halaman login. Masuk menggunakan kredensial admin yang telah dibuat sebelumnya (admin@sisfo.com dengan password 12345678). Setelah login, navigasi ke menu Users dan lakukan pengujian terhadap semua fitur CRUD yang telah diimplementasikan.

Tampilan Akhir Aplikasi SISFO

Kesimpulan

Melalui praktikum ini, kita telah berhasil membangun sebuah aplikasi Sistem Informasi Sekolah (SISFO) berbasis Laravel 9 dengan mengintegrasikan berbagai konsep fundamental dalam pengembangan web modern.

  • Scaffolding otomatis melalui package Laravel UI memungkinkan implementasi autentikasi dengan cepat, menghasilkan controller, view, dan route secara otomatis tanpa perlu coding dari nol.
  • Sistem migrasi dan seeding memberikan cara yang terstruktur untuk mengelola perubahan skema database serta pengisian data awal secara terprogram dengan aman.
  • Layout inheritance dengan Blade menghasilkan kode yang lebih modular dan mudah dipelihara, dengan struktur halaman yang konsisten di seluruh aplikasi.
  • Template SB Admin 2 menghadirkan antarmuka profesional dengan komponen-komponen siap pakai yang dapat disesuaikan dengan kebutuhan aplikasi.
  • Resource Controller menyederhanakan implementasi operasi CRUD dengan pemetaan otomatis antara HTTP method dan method controller melalui routing yang elegan.
  • DataTables menghadirkan fitur pencarian dan paginasi yang meningkatkan user experience ketika menampilkan daftar data yang besar.

Fondasi aplikasi yang telah dibangun pada praktikum ini memberikan basis yang solid untuk pengembangan fitur tambahan seperti manajemen data siswa, guru, mata pelajaran, dan jadwal kelas di tahap-tahap berikutnya.