Integrasi Fingeprint Sensor Dengan Aplikasi Berbasis Web

Fingerprint sensor adalah perangkat yang digunakan untuk menangkap gambar sidik jari. Fingerprint sensor umumnya digunakan untuk mencatat kehadiran karyawan, login tanpa password, validasi form, membuka pintu, dan berbagai keperluan lainnya.

Ada 2 tipe fingerprint sensor, yaitu standalone dan pc-based. Masing-masing memiliki kelebihan dan kegunaanya sendiri. Silakan pilih sesuai kebutuhan.

Standalone Fingerprint Sensor

Standalone fingerprint sensor adalah perangkat yang dapat berfungsi tanpa harus terhubung dengan komputer. Data user tersimpan di dalam perangkat itu sendiri sehingga tidak memerlukan komputer dalam pengoperasiannya.

Di Indonesia perangkat ini biasanya disebut sebagai mesin absensi atau mesin akses kontrol. Salah satu merek yang banyak tersedia di pasaran adalah ZKTeco. Di Indonesia merek ini di rebranding/dilisensikan oleh beberapa distributor lokal menjadi beberapa merek. Berikut ini adalah ciri dari standalone fingerprint sensor.

  1. Data user disimpan di perangkat, sehingga dapat beroperasi tanpa komputer.
  2. Proses verifikasi sidik jari sepenuhnya ditangani oleh perangkat, kita tidak punya kontrol atas hal ini. Yang bisa kita lakukan hanya tambah/hapus/download/upload data user, download/upload template sidik jari, dan download log (log user scan dan pengaturan perangkat).
  3. Kita bisa men-download data sidik jari untuk disimpan di komputer, kemudian diupload ke perangkat lain. Tetapi kita tidak bisa mengubah data sidik jari tersebut menjadi gambar, misal dalam format PNG atau JPG.
  4. Satu perangkat bisa memiliki fitur verifikasi lain disamping sidik jari, misal scan wajah, scan kartu RFID/Mifare, atau password.
  5. Kadang bisa digunakan untuk mengatur akses buka pintu.

Standalone fingerprint sensor cocok untuk aplikasi presensi karyawan atau akses buka pintu. Tetapi tidak cocok untuk fitur login dengan sidik jari, atau validasi form.

Fingerprint sensor berbasis ZKTeco memiliki 2 jenis SDK, yaitu:

  1. Pull SDK.

    Pull SDK berarti komputer/server kita yang punya inisiatif untuk mengirim perintah ke fingerprint sensor. Fingerprint sensor bersifat pasif menunggu perintah. Perintah dikirim melalui TCP dalam bentuk byte. Server dan fingerprint sensor harus dalam satu jaringan, jika tidak perangkat harus punya static public ip agar bisa diakses dari luar.

    Bagi saya integrasi Pull SDK cukup sulit. Saya rasa juga kurang cocok dengan aplikasi web, karena server dan perangkat pasti berada di jaringan yang berbeda. Jujur saya belum pernah menulis kode integrasi Pull SDK sendiri.

  2. Push SDK.

    Push SDK kadang juga disebut sebagai ADMS (Automatic Data Master Server) atau Push Protocol, berarti fingerprint sensor bersifat aktif mengirim request melalui HTTP, sedangkan komputer/server kita bersifat pasif dengan merespon request tersebut. Dengan Push SDK, ip dari komputer/server kita harus bisa diakses dari jaringan dimana fingerprint sensor tersebut terhubung. Sehingga jika kita menaruh aplikasi kita di cloud dan fingerprint sensor kita terhubung dengan internet, Push SDK bisa diterapkan.

    Menurut saya, integrasi Push SDK lebih mudah, kita cukup menginput alamat website/ip server kita kedalam pengaturan komunikasi fingerprint sensor. Kemudian membuat controller dengan url /iclock/<string:params> di server. Secara periodik atau ketika ada aktifitas tertentu, fingerprint sensor akan mengirim GET/POST request ke alamat website/ip server kita. Kita tinggal merespon request tersebut. Silakan gunakan keyword zkteco push protocol github di google untuk melihat beberapa contoh program yang menggunakan Push SDK. Beberapa repo bahkan menyertakan dokumentasinya dalam bentuk file PDF.

PC-Based Fingerprint Sensor

PC-Based fingerprint sensor adalah fingerprint sensor yang tidak bisa berfungsi sendiri, perangkat ini harus terhubung dengan komputer agar bisa digunakan. Di Indonesia merek yang banyak beredar di pasaran adalah HID, dulu disebut juga sebagai Digital Persona atau Crossmatch. Berikut ini adalah ciri dari PC-Based fingerprint sensor:

  1. Tidak bisa berfungsi tanpa terhubung ke komputer.
  2. Perangkat tidak menyimpan data sidik jari. Data sidik jari user disimpan di komputer baik lokal/server tergantung aplikasi atau kebutuhan.
  3. Perangkat hanya berfungsi untuk menangkap gambar sidik jari user. Perangkat tidak bisa digunakan untuk memverifikasi/membandingkan data sidik jari. Proses verifikasi/membandingkan sidik jari harus dilakukan di komputer baik lokal/server tergantung aplikasi.
  4. Data sidik jari yang ditangkap oleh perangkat dapat disimpan dalam beberapa format. Tergantung format yang digunakan untuk menyimpan data sidik jari user, kita bisa menggunakan SDK bawaan perangkat, menggunakan SDK pihak ketiga, atau menulis kode sendiri untuk memverifikasi/membandingkan data sidik jari tersebut.

PC-Based fingerprint sensor cocok untuk aplikasi presensi karyawan, login dengan sidik jari, atau validasi form. Tetapi saya ragu apakah jenis sensor ini bisa digunakan untuk akses buka pintu atau tidak. ZKTeco memiliki beberapa jenis PC-Based fingerprint sensor, seperti ZK4500 dan ZK9500, tetapi sayangnya saya tidak pernah pakai, sehingga tidak bisa memastikan apakah PC-Based fingerprint sensor mereka bisa diintegrasikan dengan standalon fingerprint sensor mereka atau tidak.

Saat kita beli HID fingerprint sensor di marketplace Indonesia, umumnya kita sudah dapat driver dan SDK untuk sistem operasi Windows dalam paket pembeliannya. Sayangnya tidak dilengkapi dengan dokumentasi. Tapi jangan khawatir di internet khususnya Github, banyak yang upload file dokumentasi tersebut, silakan cari saja.

Lalu bagaimana proses integrasi aplikasi berbasis web dengan fingerprint sensor ini? Kan web browser tidak bisa akses hardware secara langsung? Tenang, kita bisa mengkases fitur dari fingerprint sensor ini dengan web socket. Bagi programmer web hal ini tentu tidaklah terlalu sulit. Silakan googling tutorial atau contoh kodenya.

Yang jadi masalah adalah saat kita ingin menggunakan fingerprint sensor ini di Linux. Sampai saat ini saya masih tidak menemukan SDK terbaru untuk Linux. Yang saya temukan adalah SDK lama yang masih belum suport web sockect. Namun saya pastikan SDK lama tersebut masih bisa digunakan untuk perangkat baru yang saya beli dari marketplace di Indonesia.

Problem lain dengan fingerprint sensor ini adalah, kadang web browser tiba-tiba tidak bisa berkomunikasi dengan perangkat. Kadang melepas perangkat dari port USB dan memasangnya kembali dapat menyelesaikan masalah. Tapi bukan solusi yang permanen, kadang kita harus merestart komputer agar perangkat dapat digunakan kembali.

Tantangan lainnya adalah: memilih format data sidik jari, bagaimana dan dimana kita akan menyimpan data sidik jari tersebut, bagaimana kita akan memverifikasi data sidik jari tersebut. Apakah menggunakan SDK bawaan, menggunakan SDK dari pihak ketiga, atau menulis kode kita sendiri. Karena SDK bawaan perangkat ini bisa menangkap data sidik jari dalam beberapa format, tetapi tidak menyediakan SDK untuk proses verifikasi semua format tersebut. Misal jika kita menyimpan data sidik jari dalam format PNG, SDK untuk membandingkan sidik jari dalam format tersebut tidak tersedia.

Dan yang tidak kalah pentingnya, jika kita memiliki ribuan karyawan dan data sidik jari di server bagaimana agar proses verifikasi bisa cepat dan efisien.

Menurut pengalaman saya integrasi PC-Based fingeprint sensor sedikit lebih kompleks dibandingkan dengan yang standalone.

Tulisan Serupa

Leave a Reply