Web Systems

Sistem Presensi RFID SMP Muhammadiyah Danau Sijabut

Sistem presensi sekolah berbasis RFID untuk mengelola data siswa, guru, rombel, kehadiran, dan laporan secara terintegrasi, cepat, dan akurat.


About the Project

Sistem Presensi RFID SMP Muhammadiyah Danau Sijabut merupakan aplikasi web yang dibangun untuk mendigitalisasi proses pencatatan kehadiran siswa. Sistem ini menggantikan pencatatan manual dengan alur presensi berbasis kartu RFID, sekaligus menyediakan pengelolaan data siswa, guru, tahun ajaran, rombel, wali kelas, dan kartu RFID dalam satu platform terintegrasi. Aplikasi menyediakan Kiosk Presensi dengan antarmuka responsif, umpan balik visual, status hadir atau terlambat, serta informasi siswa secara langsung setelah kartu dipindai. Selain presensi RFID, petugas dapat mencatat dan mengoreksi kehadiran secara manual untuk status hadir, terlambat, izin, sakit, atau alpa. Dashboard administratif dilengkapi pengelolaan histori keanggotaan rombel, pembatasan akses berdasarkan peran, rekap harian dan bulanan, pencarian data, serta laporan yang dapat dicetak. Antarmuka dibangun menggunakan TailAdmin dan Tailwind CSS dengan dukungan mode terang, mode gelap, validasi formulir secara inline, dan tampilan yang optimal pada desktop maupun perangkat seluler.

Challenge

Tantangan utamanya adalah menjaga konsistensi data siswa ketika terjadi pergantian tahun ajaran, kenaikan kelas, atau perpindahan rombel. Sistem harus mempertahankan histori keanggotaan siswa agar laporan presensi lama tetap mengacu pada kelas yang benar, tanpa terganggu oleh perubahan data terbaru. Dari sisi teknis, sistem juga harus memproses pemindaian RFID dengan cepat, mencegah duplikasi presensi pada hari yang sama, menentukan status keterlambatan berdasarkan waktu WIB, dan tetap menyediakan mekanisme koreksi manual. Seluruh proses tersebut perlu dilengkapi validasi berlapis, kontrol akses pengguna, dan UI yang mudah digunakan oleh staf sekolah.

Solution

Sistem dirancang menggunakan Laravel dengan struktur data relasional antara siswa, rombel, histori keanggotaan, kartu RFID, dan presensi. Setiap catatan presensi menyimpan referensi rombel pada saat kehadiran dicatat, sehingga laporan historis tetap akurat meskipun siswa berpindah kelas. Kartu RFID dibatasi satu kartu per siswa, sementara proses scan dilindungi oleh validasi UID, pemeriksaan status siswa, dan pencegahan presensi ganda. Laravel Fortify digunakan untuk autentikasi, sedangkan middleware berbasis peran membatasi akses administrator, tata usaha, dan wali kelas. Blade dan Alpine.js dipilih untuk menghasilkan aplikasi server-rendered yang ringan, dengan interaktivitas yang cukup untuk Kiosk RFID, modal hasil scan, validasi formulir, dropdown, dan pengelolaan tema. MySQL digunakan sebagai penyimpanan utama, sementara Pest memastikan aturan bisnis penting tetap teruji.

Impact & Outcome

📈

Aplikasi ini menyederhanakan proses presensi dari pencatatan manual menjadi alur digital yang terpusat. Staf sekolah dapat memantau kehadiran, memperbarui data siswa, mengelola rombel, dan menghasilkan laporan tanpa rekap berulang. Sistem juga mengurangi risiko data terlewat, presensi ganda, dan ketidaksesuaian histori kelas, sekaligus memberikan pengalaman penggunaan yang lebih cepat dan profesional bagi petugas sekolah.

Tech Stack

Technologies and tools used in this project:

PHP 8Laravel 12Laravel FortifyMySQLBladeAlpine.jsTailwind CSS 4TailAdminJavaScriptViteDataTablesFlatpickrPest