Sistem Peminjaman Barang (UKK)
Sistem manajemen logistik yang dibangun untuk ujian kompetensi kejuruan (UKK) guna melacak peminjaman aset dengan sistem role multi-tier.
Ikhtisar Proyek
Sistem logistik dan inventarisasi aset sekolah berbasis web dengan alur otorisasi berjenjang (Admin, Petugas, Peminjam) untuk menjamin akuntabilitas peralatan.
Dibuat untuk menyelesaikan masalah pelacakan selama ujian UKK saya, aplikasi berbasis Laravel ini mengelola proses persetujuan, peminjaman, dan pengembalian aset sekolah. Sistem ini dirancang dengan autentikasi multi-pengguna yang membagi hak akses ke dalam 3 role utama: Admin (manajemen master data), Petugas (manajemen transaksi), dan Peminjam (pengguna akhir).

Masalah yang Dihadapi
Sebelum sistem ini dibuat, peminjaman peralatan sekolah bergantung pada buku catatan fisik. Alat sering berpindah tangan tanpa persetujuan jelas, lembaran catatan gampang rusak, dan tidak ada pengawasan durasi pinjam.
Ketiadaan pencatatan terpusat menyebabkan alat inventaris sekolah sering hilang tanpa diketahui penanggung jawab terakhirnya.
Petugas lab harus memverifikasi ketersediaan barang secara manual dengan mengecek lemari satu per satu.
Peminjam tidak memiliki bukti peminjaman digital resmi, menyulitkan penyelesaian sengketa barang rusak.
Pengguna Sasaran
Siswa / Guru (Peminjam)
Mengetahui daftar alat yang tersedia dan mengajukan permohonan pinjam secara mandiri.
Harus mencari petugas secara fisik hanya untuk menanyakan apakah proyektor atau kabel tersedia.
Katalog aset digital dengan status ketersediaan 'Tersedia' / 'Dipinjam' dan form pengajuan online.
Petugas Lab / Logistik (Officer)
Daftar permohonan masuk dengan tombol persetujuan cepat dan verifikasi saat barang dikembalikan.
Sulit melacak siapa saja yang belum mengembalikan barang hingga batas waktu yang ditentukan.
Antarmuka approval berjenjang dengan indikator peringatan keterlambatan dan catatan kondisi alat.
Administrator Sekolah
Kontrol penuh atas master data inventaris, kategori barang, dan manajemen akun pengguna.
Ketiadaan rekap laporan otomatis untuk keperluan audit barang inventaris tahunan sekolah.
Panel master data lengkap dengan ekspor laporan dan audit trail mutasi aset.
Solusi & Prinsip Desain
Membangun sistem monolitik Laravel MVC dengan pemisahan hak akses berbasis role middleware, memastikan setiap siklus hidup barang (permohonan -> persetujuan -> peminjaman -> pengembalian) terekam secara permanen.
Otorisasi Ketat Multi-Role
Pemisahan hak akses yang tegas antara pengelola data (Admin), operator lapangan (Petugas), dan pengguna akhir (Peminjam).
Siklus Persetujuan Terkendali
Barang tidak bisa dipinjam tanpa otorisasi tertulis Petugas di dalam sistem untuk mencegah pengambilan sepihak.
Integritas Riwayat Permanen
Setiap aksi pengembalian mencatat kondisi fisik barang (baik/rusak) untuk akuntabilitas penuh.
Aplikasi Laravel monolitik yang menerapkan pola desain MVC. Blade templates menyajikan antarmuka yang responsif, sedangkan Laravel Eloquent menangani relasi database terpusat untuk user role dan riwayat transaksi peminjaman.
Fitur Utama & Dampak
Sistem Autentikasi & Middleware 3-Tier
Pemisahan dashboard dan rute akses otomatis sesuai role yang masuk (Admin, Petugas, Peminjam).
Alur Kerja Persetujuan (Approval Flow)
Antrean verifikasi status pinjaman: Menunggu -> Disetujui -> Sedang Dipinjam -> Dikembalikan.
Laporan & Pelacakan Riwayat Transaksi
Pencatatan tanggal pinjam, batas waktu kembali, nama peminjam, dan log kondisi fisik perangkat.
Alur Pengembangan
1. Analisis Kebutuhan Ujian UKK
Mempelajari spesifikasi teknis Ujian Kompetensi Kejuruan Rekayasa Perangkat Lunak untuk peminjaman barang.
2. Perancangan Skema Database MySQL
Menyusun skema relasional dengan foreign key terstruktur untuk tabel user, barang, kategori, dan transaksi.
3. Implementasi Middleware & Eloquent ORM
Menulis logic model relasi Eloquent dan middleware keamanan di Laravel untuk validasi role pengguna.
4. Perancangan UI Blade & Tailwind
Membangun template antarmuka responsif dengan badge status berwarna yang mudah dipahami pengguna sekolah.
5. Pengujian Alur & Verifikasi Ujian
Melakukan simulasi peminjaman dan pengembalian barang bersama penguji internal dan eksternal.
Tantangan & Pemecahan Masalah
Pemisahan Hak Akses Berbasis Role (Multi-Tier Authorization)
Memastikan setiap rute dan aksi dibatasi secara ketat sehingga pengguna dengan role Peminjam tidak dapat mengakses halaman Admin atau Petugas.
Menerapkan middleware kustom di level kernel Laravel yang memvalidasi enum role pada setiap request HTTP sebelum controller dijalankan.
Seluruh rute terlindungi dan lolos verifikasi otorisasi penguji saat demonstrasi ujian UKK.
Validasi Alur Persetujuan dan Ketersediaan Barang
Mencegah peminjaman barang yang stok fisiknya sedang tidak tersedia atau perubahan status transaksi di luar alur yang diizinkan.
Menerapkan validasi ketersediaan stok fisik dan status transaksi di controller sebelum peminjaman disetujui oleh Petugas.
Alur persetujuan berjalan tertib dan mencegah pencatatan peminjaman melebihi stok yang tersedia.
Dampak (Sebelum vs Sesudah)
- Catatan peminjaman ditulis tangan di buku folio yang rentan hilang atau rusak.
- Pencatatan peminjam sering tidak lengkap sehingga sulit melacak barang yang belum kembali.
- Pengecekan stok harus mendatangi gudang peralatan secara langsung.
- Data peminjaman tersimpan rapi dalam database dengan stempel waktu otomatis.
- Barang hanya bisa keluar setelah diverifikasi dan disetujui petugas resmi.
- Status ketersediaan barang dapat dicek secara online melalui sistem web.
Keputusan Teknologi
Menyediakan ekosistem terpadu dengan autentikasi bawaan, Blade templating, dan Eloquent ORM yang sesuai standar ujian UKK.
Menjamin integritas data referensial antar pengguna, barang, dan riwayat transaksi dengan foreign key constraints.
Memudahkan pembuatan antarmuka yang responsif, bersih, dan konsisten untuk kebutuhan pengguna sekolah.
Galeri & Bukti Visual

Dashboard Manajemen Peminjaman
Tampilan antarmuka utama sistem peminjaman barang UKK berbasis Laravel.
Pelajaran & Refleksi
Manajemen Role dan Permission (Hak Akses) adalah fondasi penting dalam aplikasi level instansi/perusahaan.
Rancangan database relasional yang kuat sangat memudahkan ketika kita perlu melakukan tracking atau audit data.
Membuat sistem lebih mudah digunakan oleh non-teknis (Petugas) memastikan aplikasi tersebut benar-benar dipakai di lapangan.