Pengembangan Sistem Pengundian Berbasis Node.js dengan Penanganan Risiko Integritas Klien
Keywords:
Sistem Pengundian, Integritas Data, Node.js, SQLite, Client-Side ValidationAbstract
Integritas data dan keamanan sistem sangat penting dalam pelaksanaan pengundian elektronik. Penelitian ini mengecek cara kerja sistem pengundian Hudatama yang sebelumnya hanya bekerja sebagai aplikasi web sederhana yang memakai JavaScript di sisi klien, serta menawarkan perbaikan dalam struktur sistem untuk mengatasi masalah keamanan yang telah ditemukan. Dalam sistem lama, pembuatan pool peserta dilakukan dengan mengimpor data dari file Excel dan menerapkan pengecekan terhadap nomor peserta yang harus berupa angka
acak sebanyak 7 digit. Sistem ini memakai localStorage untuk mencegah pengambilan nomor yang sama, mencatat sejarah pemenang, serta membantu proses penyimpanan cadangan atau pemulihan data ketika hasil undian masih dalam kondisi pending (Valid/Tidak Valid). Meskipun sudah ada fitur admin dengan autentikasi PIN menggunakan hash sederhana dan kemampuan mengeluarkan data, hasil analisis menunjukkan adanya risiko integritas klien yang besar serta kemungkinan data dimanipulasi karena tidak adanya database terpusat di sisi server. Untuk mengurangi risiko tersebut, penelitian ini mengembangkan evolusi arsitektur dengan membangun bagian belakang sistem menggunakan Node.js, Express, dan SQLite. Pembaruan ini menekankan pada penggunaan state machine untuk proses pengundian, menggabungkan proses validasi secara sentral, serta meningkatkan keamanan, kemampuan audit, dan autentikasi, sehingga menciptakan sistem pengundian yang lebih jelas dan lebih terlindungi dari upaya manipulasi oleh pihak luar.