digilib@itb.ac.id +62 812 2508 8800

Abstrak - MUHAMMAD EIROS DANTE
Terbatas  Irwan Sofiyan
» Gedung UPT Perpustakaan

Sistem presensi perkuliahan di Institut Teknologi Bandung (ITB) saat ini mengandalkan pengisian manual melalui portal akademik Sistem Informasi Akademik (SIX). Proses ini memakan waktu yang signifikan, terutama pada kelas dengan jumlah mahasiswa yang besar, serta rentan terhadap kesalahan input dan tidak memiliki mekanisme validasi otomatis terhadap kehadiran fisik mahasiswa. Di sisi lain, pengembangan perangkat presensi sidik jari telah memungkinkan pencatatan kehadiran secara biometrik yang lebih andal. Namun, data sidik jari yang dikumpulkan oleh perangkat tersebut belum terintegrasi dengan sistem akademik resmi, sehingga dosen masih harus melakukan input ulang data presensi secara manual ke portal SIX. Tugas akhir ini membahas perancangan, implementasi, dan pengujian subsistem integrasi yang menjembatani perangkat presensi sidik jari dengan portal akademik SIX ITB melalui arsitektur berbasis cloud dan ekstensi browser. Subsistem yang dikembangkan terdiri atas tiga komponen utama. Komponen pertama adalah backend API berbasis Next.js yang di-deploy pada platform Vercel. Backend ini menyediakan serangkaian endpoint RESTful untuk verifikasi identitas dosen, sinkronisasi data kelas dan jadwal, penerimaan data pemindaian sidik jari dari perangkat, serta pencocokan data presensi mentah dengan jadwal perkuliahan yang terdaftar. Secara fungsional, backend berperan sebagai pengolah data sentral yang menerima masukan dari dua sumber berbeda, perangkat sidik jari dan ekstensi browser, kemudian mengolah dan menyimpan data presensi final yang siap digunakan untuk pengisian otomatis. Komponen kedua adalah basis data PostgreSQL yang dikelola melalui layanan cloud Neon dan diakses menggunakan Prisma sebagai Object-Relational Mapping (ORM). Basis data ini menyimpan dua belas tabel yang mencakup data dosen, mahasiswa, biometrik, mata kuliah, kelas, jadwal, anggota kelas, presensi mentah, dan presensi final. Desain skema memisahkan tabel presensi mentah yang merekam setiap pemindaian sidik jari secara idempoten dari tabel presensi final yang menyimpan status kehadiran setelah proses pencocokan jadwal. Pemisahan ini memastikan bahwa data pemindaian tidak hilang meskipun jadwal perkuliahan belum tersinkronisasi pada saat pemindaian dilakukan, sehingga pencocokan dapat dilakukan secara retroaktif. Komponen ketiga adalah ekstensi browser Chrome berbasis Manifest V3 yang berfungsi sebagai antarmuka utama bagi dosen. Ekstensi ini bekerja langsung pada halaman presensi portal SIX tanpa memerlukan modifikasi terhadap sistem SIX itu sendiri. Secara fungsional, ekstensi melakukan empat tugas utama: pertama, parsing Document Object Model (DOM) halaman SIX untuk mengekstraksi metadata kelas, jadwal, daftar dosen, dan daftar mahasiswa menggunakan strategi parser berlapis; kedua, verifikasi dan penghubungan identitas dosen SIX dengan Nomor Induk Pegawai (NIP) yang terdaftar di backend; ketiga, sinkronisasi data kelas dan jadwal dari portal SIX ke basis data cloud; serta keempat, pengambilan data presensi sidik jari dari backend dan pengisian otomatis status kehadiran pada radio button halaman SIX. Alur kerja ekstensi dirancang dalam tiga langkah berurutan, pemindaian halaman, pengecekan dan sinkronisasi data, serta eksekusi pengisian otomatis, dengan validasi pada setiap tahap transisi. Ekstensi menerapkan pendekatan human-in-the-loop: status kehadiran diisi secara otomatis berdasarkan data sidik jari, namun penyimpanan akhir tetap memerlukan peninjauan dan konfirmasi manual dari dosen sebagai penanggung jawab. Pengujian sistem dilakukan melalui beberapa metode. Pengujian black-box pada spesifikasi pengisian data kehadiran memvalidasi bahwa ekstensi mampu mengubah status radio button pada halaman isi-daftar-hadir SIX sesuai dengan data presensi sidik jari, termasuk penanganan mahasiswa tetap dan mahasiswa sit-in melalui pengisian textarea secara otomatis. Pengujian penyimpanan data menunjukkan bahwa mekanisme auto-save dan auto-sync berfungsi dengan baik, di mana data presensi lokal tidak hilang saat perangkat dimatikan dan tersinkronisasi otomatis ke basis data cloud saat koneksi internet tersedia. Pengujian kapasitas basis data cloud pada Neon Free Tier (500 MB) menunjukkan bahwa sistem mampu menampung data dasar sebesar 21,125 MB serta mendukung hingga sekitar 12.884 sesi presensi sebelum mencapai batas kapasitas. Aspek keamanan data divalidasi melalui inspeksi yang memastikan bahwa data sensitif seperti password dan PIN disimpan menggunakan hash bcrypt dengan cost factor 10, sementara seluruh komunikasi data menggunakan protokol HTTPS dengan negosiasi SSL/TLS. Pengujian end-to-end pada lingkungan SIX sesungguhnya menggunakan akun dosen pembimbing mengonfirmasi bahwa seluruh alur kerja,,dari pemindaian halaman, sinkronisasi kelas, hingga pengisian otomatis status kehadiran, berjalan sesuai fungsionalitas yang diharapkan. Secara keseluruhan, subsistem integrasi yang dikembangkan berhasil mengurangi beban kerja manual dosen dalam proses input presensi ke portal SIX secara signifikan, sekaligus meningkatkan keandalan data kehadiran melalui pemanfaatan data biometrik sidik jari sebagai sumber kebenaran.