Minggu, 29 Juli 2012

Finger Print dengan VB.NET

Berawal dari permintaan seorang temannya teman yang meminta dibantu untuk dibuatkan program absensi karyawan dengan menggunakan FingerPrint. Awalnya saya sempat menolak dikarenakan memang Dead Line kantor juga mendesak, namun setelah dipikir-pikir ini sebenarnya salah satu obat dari penasaran saya semasa kuliah yang belum terobati, pada waktu itu sangat ingin tahu sekali  dan mengoprek si FingerPrint tersebut namun dikarenakan harus membeli alatnya dan waktu itu harganya pun masih selangit (buat ukuran Mahasiswa kala itu) hingga kini sampai lupa.
Sebenarnya di masa-masa awal kerjapun saya sudah sempat mengoprek si FingerPrint tersebut, namun hanya sekedar membaca data yang sudah ada yang kebetulan berbentuk .MDB. Dan sebenarnya inilah yang membuat enggan untuk mencari tahu lebih lanjut dikarenakan sudah banyak vendor yang menjual alat FingerPrint plus membuat aplikasi absensi lengkap dengan berbagai feature yang sangat membantu khususnya pada divisi SDM yang dijual cukup relatif murah, apalagi untuk ukuran sebuah perusahaan, ditambah lagi databasase yang digunakanpun sangat mudah dimengerti oleh orang awam sekalipun.

Atas dasar memenuhi rasa penasaran dan niat ingin membantu  mulai deh saya sms si mahasiswa semester akhir tersebut untuk segera datang ke rumah dan membawa FingerPrint beserta drivernya, dengan catatan saya mau bantu cuma sampai koneksi si FingerPrint tersebut hingga dapat dibaca dan disimpan ke dalam database, selanjutnya silahkan dikembangkan sendiri lebih lanjut. 

skip..skip.. dan...

Mulai install sudah menemukan masalah yaitu masalah kompatibilitas driver, sepertinya kalau dilihat-lihat bawaan CD Drivernya hanya untuk windows XP, sedangkan yang saya gunakan adalah WIndows 7 64 bit pula. Ok gak masalah saya ganti komputer yang masih windows 7 namun menggunakan 32 bit. Proses Instalasi driver dan SDK berjalan lancar, namun saya masih bingung kok Si FingerPrint tidak ada tanda-tanda kehidupan alias mati (biasanya setahu saya si FingerPrint akan menyala lampunya jika sudah berhasil konek).Ah tidak bisa juga akhirnya kembali ke komputer windows 7 64 bit namun harus download via internet yang memang kompatibel. Dan Berhasil..!

Perlu diketahui, untuk menggunakan dan berkomunikasi antara komputer dengan hardware saat ini dan sudah kebanyakan vendor juga memberikan berikut driver dan SDK siap pakai yang diberikan jika kita membeli sebuah hardware. SDK (Software Development Kit) adalah kumpulan beberapa perintah yang menunjang untuk komunikasi dengan hardware tersebut dan sudah menjadi class, .dll, library dan lain-lainnya yang siap pakai, namun masalahnya adalah mudah atau tidaknya dalam penggunaan serta banyak atau tidaknya literatur juga kelengkapan dari fungsi-fungsi dalam SDK tersebut.
FingerPrint ini merknya "Digital Persona", kalau menurut saya vendor ini lumayan taktis, mereka hanya memberikan literatur dasar yang bertele-tele dan dan tidak tepat sasaran, jika ingin lebih mudah dan fitur lebih lengkap harus bayar :p
Tapi tetap tidak putus asa, dengan sedikit basic programming dan browsing sana-sini akhirnya ditemukan solusi dengan tetap menggunakan dan memaksimalkan SDK yang ada.

Inti dari sebuah FingerPrint adalah teridentifikasinya sidik jari oleh sebuah komputer yang dapat diterima dalam bentuk gambar maupun byte array sehingga bisa tersimpan di DataBase.
Dalam oprekan di sini saya belajar beberapa hal baru yang sebelumnya jujur saya belum mengetahuinya. yaitu bahwa sebenarnya komputer benar-benar menterjemahkan bentuk dari sidik jari kita, karena tidak mungkin sidik jari kita yang tersimpan di database dalam bentuk binary harus sama persis dengan byte atau binary kita pada saat menempelkan jari untuk absen, karena bisa saja pada saat registrasi jari kita posisinya agak ke belakang, sedangkan pada saat absen agak ke depan dsb, salut buat yang membuat dan menemukan algoritma dasar dalam mencocokkan sidik jari tersebut :)

Sebelum menemukan hal tersebut di atas lah saya sempat berkutat dengan query "select [field sidik jari] from [tabel] where [field sidik jari]=[sidik jari pada saat absen], bingung kok gak ketemu-temu, jawabannya adalah "YA IYA LAAAAH", jadi mentertawakan diri sendiri ketika sudah membaca artikel di sini "http://drmgroup.wordpress.com/2010/07/23/cara-kerja-mesin-scanner-fingerprint/" :D

Saya memfokuskan pada proses Registrasi Sidik jari untuk disimpan di Database serta proses Identifikasi untuk membaca atau mencocokan Jari dengan data yang ada dalam Database.
Menurut saya kalau kedua itu sudah dapat terpenuhi siapapun yang punya dasar pemrograman dan terbiasa membuat program insert, dan update data pasti sudah bisa melanjutkan dan dikembangkan sedemikian rupa.

Ada 5 file dll yang kita gunakan pada references file yaitu


* Private Sub verifyControl_OnComplete(ByVal Control As Object, ByVal FeatureSet As DPFP.FeatureSet, ByRef EventHandlerStatus As DPFP.Gui.EventHandlerStatus) Handles verifyControl.OnComplete
 berfungsi untuk menangkap event ketika sidik jari ditempel dan berhasil dibaca oleh alat.

* Private Sub enrollControl_OnEnroll(ByVal Control As Object, ByVal FingerMask As Integer, ByVal Template As DPFP.Template, ByRef EventHandlerStatus As DPFP.Gui.EventHandlerStatus) Handles enrollControl.OnEnroll
untuk registrasi.

Kalau dijelasin semua pegel ah, silahkan download aja deh, selamat berkarya,...!

*Akan tetapi sudah sebegitu terang benderangnya, yang bikin saya sedih si mahasiswa tersebut bertanya "Terus kalau kita ingin menampilkan data yang sudah tersimpan agar menjadi laporan bagaimana..? dan bla2" (dalam hati hey,, kamu sudah semester akhir loh..!), jadi tahu ternyata dia bukan ingin belajar tetapi ingin dibuatkan dan terima beres. 
Sorry to say, prinsip saya sukarela membantu bagi orang yang punya niat kuat ingin belajar dan saya berikan gratis dengan senang hati, kalau ingin terima beres berarti anda sedang berbisnis dengan saya. Dan tarif saya mahal loh, mahasiswa gak mampu bayar dehh..!! hehe (kidding). :D :D