BAB 3
ANALISA DAN PERANCANGAN SISTEM
3.1 Perancangan Sistem Sidik Jari Dalam
prosesnya,
sistem
pengenal
sidik
jari
bekerja
hanya
dengan
memanfaatkan satu input dari user yang bersangkutan, yaitu sidik jari si user sendiri. Karena itu rancangan sistem yang dibangun pada sisi klien hanya akan menunjukkan perangkat input dan output yang terbatas penggunaannya kepada user. Perangkat input yang digunakan merupakan sebuah pemindai sidik jari dengan kedalaman pixel sebesar 500 Dpi dan perangkat outputnya berupa layar monitor 15 inchi. Sedangkan mekanisme sistem yang digunakan untuk bagian server merupakan perangkat keras yang digunakan untuk menyimpan data penting, berupa data sidik jari serta biodata pegawai dari sidik jari yang bersangkutan. Karenanya bagian server harus diletakkan ditempat yang tidak akan bisa diakses ataupun disentuh langsung oleh user maupun orang lain, hal ini berguna untuk menjaga keamanan agar tidak ada yang bisa melakukan pengrusakan pada database dan akhirnya mengacaukan kinerja sistem. Dengan menggunakan layar monitor 15 inchi untuk hasil output, user dapat melihat input yang telah dimasukkan olehnya melalui pemindai sidik jari dan melihat proses pencarian yang terjadi di layar, serta mengetahui hasil output yang ditampilkan oleh sistem.
Gambar 3.1 Skema perangkat keras untuk klien dan server
Dengan melakukan input melalui pemindai yang ada, maka sistem akan memproses data yang telah dimasukkan oleh user. Pemrosesan data pada sistem pengenal sidik jari ini terbagi menjadi dua skenario utama yang dapat dilakukan, dan masing-masing skenario itu dilakukan sesuai keadaan yang sudah ditentukan sebelumnya. Adapun skenario yang dapat terjadi pada sistem sidik jari ini ialah sebagai berikut:
Tabel 3.1 Tabel use-case Use-Case
Input data
Deskripsi
Proses
ini
Aktor yang berperan
menggambarkan - Karyawan Baru
keadaan saat seorang karyawan yang belum terdaftar mendaftarkan sidik jarinya serta memasukkan data-data
dirinya
ke
dalam
database. Identifikasi
Proses
ini
menggambarkan - Karyawan
keadaan saat seorang karyawan memasukkan sidik jarinya untuk melakukan identifikasi.
Skenario “input data” dilakukan jika seorang karyawan baru yang sidik jarinya tidak teridentifikasi saat dimasukkan, meminta agar sidik jarinya didaftarkan ke dalam sistem database. Permintaan ini akan membutuhkan pemindaian sidik jari karyawan yang meminta, di mana fitur-fitur yang ada pada sidik jarinya akan diekstraksi dan disimpan ke dalam database. Setelah fitur sidik jari didapatkan, maka untuk memberi nama pada sidik jari tersebut dibutuhkan input berupa kelengkapan informasi mengenai karyawan (seperti nama lengkap, nomor induk karyawan, posisi, dan hal-hal lainnya). Setelah profil karyawan yang bersangkutan telah dimasukkan berarti proses input data baru telah selesai dan data sidik jari karyawan tersebut sudah bisa diidentifikasi pada saat nanti ia melakukan pemindaian sidik jari.
Gambar 3.2 Diagram Input data
Saat ada seorang user yang merupakan seorang karyawan tercatat dalam sistem database menginput sidik jarinya, skenario yang dijalankan adalah melakukan proses ekstraksi fitur dan melakukan pencocokan data fitur sidik jari karyawan tersebut dengan data yang ada pada database. Setelah pencarian dilakukan dan ditemukan data yang dianggap sama, maka hasil output di monitor akan menyatakan bahwa proses identifikasi berhasil sekaligus menyatakan bahwa skenario “identifikasi” telah selesai dijalankan.
Gambar 3.3 Diagram Identifikasi
Dalam pengembangannya, sistem diharuskan untuk mengenali bermacam-macam sidik jari dari banyak orang yang masing-masing harus dikenali perbedaannya. Setiap data yang disimpan ke dalam data base terbagi menjadi beberapa bagian data, kemudian data yang ada dikumpulkan dan dibagi menjadi beberapa tabel. Tabel yang digunakan salah satunya adalah tabel minutiae, yang berisikan datadata tentang kode minutiae, arah, tipe, dan kode sidik jari. Kode minutiae merupakan primary key yang berisikan data berupa nomor dan huruf yang unik, yang berguna untuk menunjukkan arah dan tipe minutiae yang ditunjuk sesuai kode. Sedangkan arah menjelaskan tentang ke arah mana suatu titik minutiae menghadap, dapat
menghadap ke atas, ke bawah, ke kiri, ke kanan, ataupun secara diagonal bawah-kiri, bawah-kanan, atas-kiri, dan atas-kanan. Kemudian kolom tipe merupakan data yang berisikan tentang jenis titik minutiae yang didapat, baik itu jenis bercabang (bifurcation) ataupun ujung (ridge ending). Terakhir adalah kode sidik jari yang merupakan nomor kode yang membedakan identitas setiap sidik jari. Tabel 3.2 Tabel Minutiae Nama Field kode_minutiae
Type Varchar(255)
Key Primary key
Keterangan Menyimpan data titiktitik minutiae
arah
Varchar(255)
-
Menyimpan arah titikttitik minutiae
tipe
Varchar(255)
-
Menyimpan jenis titiktitik minutiae
kode_sidik_jari
Big integer
Foreign key
Menyimpan nomor sidik jari
kx
Integer
-
Menyimpan koordinat x minutiae
ky
Integer
-
Menyimpan koordinat y minutiae
Tabel lain yang digunakan adalah tabel data sidik jari, di mana di dalam tabel sidik jari tersebut berisikan data-data tentang kode sidik jari, jari, dan kode pegawai. Kode pegawai berguna untuk memberikan nomor kode bagi sidik jari yang akan
disimpan ke dalam data base yang berupa huruf dan angka unik, hal ini membantu dalam proses pencarian agar lebih mudah nantinya. Sedangkan untuk data jari, digunakan untuk membedakan jenis jari yang dipakai oleh pegawai untuk mengabsen pada mesin pemindai (misal: jari jempol kiri, jari telunjuk kiri, jari jempol kanan, jari telunjuk kanan, dll). Lalu kode sidik jari merupakan nomor kode yang membedakan identitas setiap sidik jari, sama dengan yang ada pada tabel minutiae tetapi berfungsi sebagai primary key pada tabel sidik jari. Tabel 3.3 Tabel sidik_jari Nama Field kode_sidik_jari
Type Big integer
Key Primary key
Keterangan Menyimpan nomor sidik jari
jari
Varchar(255)
-
Menyimpan jari yang digunakan pegawai
kode_pegawai
Big integer
Foreign key
Menyimpan nomor induk pegawai
tipe
Varchar(255)
-
Menyimpan tipe sidik jari
Tabel yang ke tiga adalah tabel pegawai, yang sesuai namanya berisikan informasi mengenai pegawai, yaitu; nama, alamat, dan kode pegawai. Kolom nama merupakan data yang berisi mengenai nama lengkap si pegawai. Sedangkan alamat merupakan informasi mengenai alamat pegawai yang bersangkutan, isinya dapat
berupa huruf dan juga angka. Kemudian kode pegawai merupakan data yang sama seperti ada di tabel sidik jari, tetapi pada tabel ini merupakan primary key. Tabel 3.4 Tabel pegawai Nama Field kode_pegawai
Type Big integer
Key Primary key
Keterangan Menyimpan nomor induk pegawai
nama
Varchar(255)
-
Menyimpan nama pegawai
alamat
Varchar(255)
-
Menyimpan alamat pegawai
Terakhir adalah tabel kehadiran yang mencatat data harian seperti jam masuk dan jam keluar, serta kode kehadiran dan kode pegawai. Yang bertindak sebagai primary key adalah kode kehadiran yang memiliki nilai auto increment dan diupdate otomatis secara berkala. Kode pegawai yang merupakan foreign key dari tabel pegawai, berguna untuk menentukan data siapa yang sedang dicatat dan disimpan ke dalam database. Jam masuk merupakan data berupa datetime yang menyimpan waktu kedatangan saat seseorang datang mendaftarkan sidik jarinya. Sebaliknya dengan jam masuk, jam keluar menyimpan waktu saat seseorang keluar dan memindai sidik jarinya lagi untuk kedua kali, maka akan tersimpan dalam bentuk datetime sebagai waktu pulangnya pegawai tersebut.
Tabel 3.5 Tabel Kehadiran Nama Field
Type
Key
Keterangan
kode_kehadiran
Big integer
Primary key
Menyimpan nomor urut
kode_pegawai
Big integer
Foreign key
Menyimpan nomor induk pegawai
jam_masuk
Time
-
Menyimpan waktu masuk pegawai
jam_keluar
Time
-
Menyimpan waktu keluar pegawai
Gambar 3.4 Relasi antar tabel
3.2 Identifikasi Sidik jari Secara umum, prosoes pengenalan sidik jari pada paper ini akan dibagi menjadi tiga tahapan utama: •
Pra-proses, yang merupakan tahap pengakuisisian data yang bersih dari noise dan dapat dilakukan dengan beberapa cara baik itu inked (menggunakan tinta) maupun inkless (tidak menggunakan tinta). Pengambilan data yang
menggunakan tinta bersifat offline karena citra sidik jari tidak bisa langsung diproses begitu saja oleh komputer, melainkan harus diubah menjadi citra dijital terlebih dahulu setelah sebelumnya merupakan citra analog dari jari yang diolesi tinta kemudian ditekankan pada permukaan kertas. Hasil pengambilan citra dengan metode ini biasanya tergantung jenis tinta yang dipakai. Sedangkan metode inkless merupakan pengakuisisian yang sifatnya online karena gambar sidik jari yang didapat langsung berupa citra dijital hasil dari mesin pemindai khusus sidik jari. Metode ini menghasilkan kualitas citra yang baik sesuai dengan kualitas mesin pemindai yang digunakan. •
Ekstraksi minutiae, citra yang telah didapat akan diproses untuk tahapan selanjutnya yaitu mengambil karakteristik yang terdapat pada sidik jari. Karakteristik yang akan diambil adalah karakterisasi tipe pada sidik jari dan ekstraksi titik-titik minutiae itu sendiri dengan menggunakan logika samar.
•
Pasca-proses, merupakan tahapan akhir yang melibatkan proses matching antara data yang telah didapat dengan data yang ada pada data base. Data yang dibandingkan merupakan data-data karakteristik yang didapat pada proses pengekstraksian minutiae, bukan mencari persamaan ataupun perbedaan antara keduanya menggunakan citra itu sendiri.
Setiap proses identifikasi secara global merupakan pengembangan dari tiga tahapan utama ini, di mana setiap prosesnya mempunyai modul tersendiri yang berguna dalam pengembangannya agar dapat dilakukan secara terpisah untuk setiap proses.
Gambar 3.5 Proses identifikasi sidik jari
3.2.1
Pra-proses Tahap pra-proses ini secara garis besar merupakan tahap pemrosesan citra yang dilakukan untuk menghilangkan noise-noise yang mungkin terjadi setelah pengambilan citra selesai dilakukan. Pertama-tama, dalam pengenalan sidik jari proses awal yang harus dilakukan adalah mendapatkan data sidik jari, yang
dalam hal ini dapat dilakukan dengan dua metode yaitu dengan menggunakan tinta atau dengan menggunakan scanner khusus sidik jari. Jika menggunakan tinta sebagai alat bantu untuk memperoleh sidik jari, setelah diberikan tinta maka jari harus ditekan kuat kepada secarik kertas, kemudian dilakukan digitalisasi dengan menggunakan scanner. Tetapi pemberian tinta benar-benar harus diperhatikan karena jika saat pengolesan tinta yang terlalu banyak dapat menyebabkan gangguan pada hasil citra, sehingga dapat menimbulkan kehilangan informasi. Sedangkan jika menggunakan scanner sidik jari maka tidak diperlukan proses digitalisasi karena hasil dari scanner tersebut adalah sebuah citra digital yang dapat langsung diproses untuk selanjutnya.
Gambar 3.6 Perbedaan hasil citra dari dua cara yang berbeda
Proses perbaikan citra seharusnya merupakan proses yang panjang melalui beberapa filter seperti low-pass filter, high-pass filter, dan juga rankfilter. Di mana masing masing filter ini mempunyai kegunaan tersendiri, tetapi tetap pada satu tujuan yaitu mengurangi noise pada gambar. Jika low-pass menjaga detail gambar yang memiliki perubahan spasial yang rendah dan memfilter gambar yang perubahan spasialnya tinggi atau noise, maka high-pass akan melakukan sebaliknya dengan kata lain akan memfilter citra yang perubahan spasialnya rendah atau blur. Sedangkan rank filter merupakan filter yang bekerja secara non-linier dan bekerja untuk menghilangkan noise seperti low-pass tetapi lebih kepada noise yang bersifat impulse atau titik. Tetapi dengan menggunakan metode pengambilan citra sidik jari dengan menggunakan scanner khusus, penggunaan filter tidak terlalu dibutuhkan. Karena hasil citra yang didapat dari pemindai memiliki kualitas yang sudah cukup baik, walaupun agar memiliki kualitas citra yang lebih baik lagi tetap harus dilakukan filterisasi citra. Penggunaan filter yang dimaksud adalah filter Gabor, yang dapat meningkatkan ketajaman dan menghilangkan gangguan yang mungkin terjadi pada citra, misalnya tangan yang berkeringat. Citra digital yang telah didapat kemudian akan dikonversi menjadi citra biner agar lebih mudah dikenali oleh komputer. Tetapi sebelum dilakukan konversi menjadi citra biner, akan dilakukan peningkatan gambar dengan menggunakan teknik filter Gabor. Untuk melakukan proses perbaikan citra dengan tehnik Gabor Filter kita memerlukan local rigde orientation yang berguna untuk menentukan arah orientasi dari suatu blok pada citra yang juga berguna dalam menentukan titik pusat dari suatu sidik jari.
Pertama-tama dilakukan pembagian citra menjadi blok-blok berukuran w x w, kemudian hitung gradient dari masing-masing blok, setelah itu hitung local ridge orientation dengan persamaan berikut ini:
............................[3.1]
.............[3.2]
.............[3.3]
Local ridge orientation field harus ditentukan pada citra yang sudah didapat. Untuk menghitung local ridge orientation field ini, pertama-tama citra harus dibagi menjadi beberapa blok yang tidak akan over-lap (ukuran 6 x 6 piksel dalam kasus ini). Lalu, local ridge orientation direpresentasikan dalam bentuk array yang setiap elemen-elemen didalamnya mewakili arah orientasi ridge dalam ukuran blok 6 x 6 dari citra asli. Field orientasi θ(i,j) dihitung dengan menggunakan rumus [3.2]. Vx(i,j) dan Vy(i,j) berguna untuk mendefinisikan lokasi vertikal dan horizontal pada field orientasi. V’x(i,j) dan V’y(i,j) mewakili nilai yang didapat setelah diperhalus oleh blok kernel 6 x 6 W(m,n). Gx(x,y) dan Gy(x,y) merupakan gradien horizontal dan vertical. Dan bisa dikalkulasikan menggunakan edge mask Sobel 3 x 3 atau cara lain yang cocok penggunaannya. Orientasi local
mempunyai ambiguitas tepat sebesar 180°, tetapi hal ini tidaklah berpengaruh. Kita dapat selalu menganggapnya sebagai jarak antara positif 90° dan negative 90° lalu menyetelnya sesuai kebutuhan. Akhirnya, varians sample dari ridge orientation field diperhitungkan dengan:
………………[3.4]
Di mana n dan m adalah dimensi dari field orientasi. Blok-blok yang sama sekali tidak mempunyai ridge tidak dimasukkan ke dalam perhitungan varians. Karena blok seperti itu mudah dideteksi karena gradient horizontal dan vertical keduanya tak mempunyai nilai. Filter Gabor merupakan metode yang paling efektif untuk meningkatkan kualitas sebuah citra, karena Gabor filter memiliki fitur frequency-selective dan orientation-selective yang akan membuat hasil resolusi sebuah citra menjadi lebih optimal. Tujuan peningkatan citra dengan filter Gabor ini adalah untuk mendapatkan hasil citra yang lebih tajam dan menambah kualitas citra yang berarti mengurangi noise yang mengganggu proses pengenalan pola sidik jari. Rumus simetrik dua dimensi Gabor filter adalah seperti ini:
Gθ , f (x , y) = exp { -½ [ (x’2/δx2) + (y’2/δy2) ]} cos (2π f x’), .....[3.5] x’ = x sin θ + y cos θ,
.................................[3.6]
y’ = x cos θ – y sin θ
.................................[3.7]
Untuk meningkatkan kualitas citra dengan Gabor filter ini, ke empat parameter (x, y; f, θ) harus ditentukan. Sigma (x) dan (y) merupakan titik orientasi koordinat sepanjang sumbu x dan sumbu y pada suatu citra. Sedangkan (f) merupakan tingkat frekuensi gelombang bidang sinusoid yang nilainya ditentukan berdasar local ridge frequency, di mana nilainya tergantung dari spasi atau jarak yang ada antar ridge pada citra sidik jari. Dari hasil pengukuran kembali, alat sensor sidik jari menghasilkan jarak ruang antar ridge rata-rata adalah sekitar 8 piksel, dengan begitu kita dapat menentukan nilai eksaknya adalah f = 1/8. Sudut (θ) merupakan nilai orientasi sudut terhadap sumbu x yang nilainya ditentukan oleh hasil local ridge orientation, di mana berkaitan dengan delapan arah orientasi dalam filter yaitu: 0º, 22,5 º, 45 º, 67,5 º, 90 º, 112,5 º, 135º, 157,5 º. Untuk menentukan nilai standar deviasi δx dan δy, pemilihan nilai yang besar lebih bertahan terhadap noise, tetapi tidak akan memberikan informasi ridge pada tingkatan yang lebih baik. Sebaliknya untuk nilai yang kecil akan rentan terhadap noise, tetapi dapat memberikan informasi ridge yang lebih baik. Berdasarkan data empiris yang ada, biasanya kedua nilai standar deviasi δx dan δy diset dengan nilai yang sama dengan 4.
3.2.2
Pencarian titik singular dan tipe sidik jari Titik singular merupakan sebuah titik yang dianggap sebagai titik tengah sebuah sidik jari, yang berguna untuk mempermudah dalam perhitungan
persamaan saat melakukan identifikasi. Selain itu titik singular biasanya merupakan tanda bahwa pola sidik jari dapat dicari di sekitar tempat titik singular berada. Logika samar berbasis aturan dapat diaplikasikan di sini, baik untuk mencari titik singular maupun tipe sidik jari. Basis aturan yang dipakai memiliki fungsi membership dasar seperti, mengenali garis horizontal, garis vertikal, garis diagonal kiri, dan garis diagonal kanan. Dengan menggunakan ke empat variabel seperti ini maka pencarian titik singular dapat dilakukan. Fungsi membershipnya adalah seperti ini
Gambar 3.7 Fungsi membership berdasar sudut
Sedangkan untuk mengaplikasikannya digunakan masking berbentuk kubus yang berukuran 3x3 piksel, yang setiap piksel akan diperiksa dengan cara
pemetaan pada setiap sudut dari ujung kiri atas menuju ujung kiri bawah. Bentuk kubusnya adalah seperti ini:
Gambar 3.8 Kubus pencari titik singular
Piksel satu, piksel tiga, piksel tujuh, dan piksel Sembilan akan digunakan sebagai acuan penggunaan aturan logika. Nilai nol (0) adalah saat dimana piksel tersebut tidak terdapat alur, sedangkan nilai satu (1) merupakan saat dimana piksel mendeteksi adanya alur sidik jari. Berdasarkan empat kombinasi letak alur berada dapat diketahui bentuk alurnya (misalnya garis horizontal, garis vertical, ataupun garis diagonal), contoh pendeteksian garisnya dapat dilihat pada gambar di bawah ini.
Gambar 3.9 Pendeteksian kubus mengenali tipe garis yang ada
Titik singular titik singular merupakan titik yang ditandai pada saat terbacanya perubahan gradien yang terbesar. Dengan kata lain, titik singular merupakan titik tempat suatu alur membuat lengkungan sudut yang paling kecil. Dapat dipastikan bahwa jika garis diagonal kanan bertemu dengan garis diagonal kiri, maka terjadilah perubahan gradient terbesar yang menandakan disanalah tempat titik singular berada. Sedangkan untuk mendeteksi tipe sidik jari cukup dengan menambahkan basis aturan setelah titik singular telah ditemukan. Bentuk tipe yang dapat
dideteksi ada empat tipe yaitu, putaran kiri (left loop), putaran kanan (right loop), lengkungan (arch), dan lingkaran (whorl).
Gambar 3.10 Pendeteksian kemungkinan tipe putaran kiri
Gambar 3.11 Pendeteksian kemungkinan tipe putaran kanan
Gambar 3.12 Pendeteksian kemungkinan tipe lengkungan
Gambar 3.13 Pendeteksian kemungkinan tipe lingkaran
3.2.3
Ekstraksi minutiae Setelah citra dengan kualitas gambar yang bersih telah didapat maka pengakuisisian data telah selesai. Lalu proses selanjutnya adalah mengekstraksi fitur yang ada pada sidik jari, yaitu titik minutiae. Beberapa fitur penting yang bisa diekstrak dan digunakan untuk melakukan pengenalan titik-titik minutiae adalah pengekstraksian titik-titik ujung (ridge ending) dan titik-titik cabang
(bifurcation) pada sidik jari dengan menggunakan cara masking atau pemetaan pada citra yang disertai dengan logika samar berbasis aturan. Logika samar yang akan diaplikasikan disini mampu mengenali dua tipe titik minutiae, titik ujung dan cabang. Kedua titik ini memiliki kriterianya masing-masing, sebagai contoh; titik ujung hanya melibatkan satu jalur pola yang terputus di ujungnya; titik cabang melibatkan tiga jalur pola yang bertemu menjadi satu di satu titik. Pembuatan logika samar terhadap dua titik minutiae ini lalu diorientasikan kepada delapan arah mata angin, hal ini membuat setiap kemungkinan arah minutiae dapat terdeteksi dengan baik. Dengan membuat aturan-aturan yang berguna untuk mengenali berbagai macam bentuk minutiae, logika samar akan diaplikasikan kepada sebuah masking window berbentuk kubus yang berukuran 6 x 6 piksel di mana masking ini berfungsi selayaknya pemetaan terhadap jalur-jalur yang terdapat pada jari.
Gambar 3.14 Kubus pemetaan titik minutiae
Kubus ini akan diberikan aturan agar dapat mengenali titik-titik minutiae yang ada pada sidik jari dan dapat mengenalinya dari berbagai arah. Sebagai
contoh (Gambar 3.15) kubus akan mengenali titik ujung yang berakhir di sebelah kanan alur, berakhir di sebelah kiri alur, ataupun titik ujung yang bergerak diagonal dan berakhir ke arah kanan atas, serta arah lainnya. Empat kubus yang berada pada inti akan digunakan untuk menunjukkan lokasi tepat koordinat titik minutiae pada alur yang bersangkutan.
Gambar 3.15 Contoh deteksi titik ujung Selain titik ujung, kubus ini juga akan dapat mengenali titik minutiae yang berupa bentuk cabang. Di mana bentuk cabang ini merupakan alur seperti
garis yang pada titik ujungnya terbagi menjadi dua alur. Pengenalan titik minutiae bentuk cabang ini juga ditranslasikan kepada delapan arah yang berbeda, untuk menanggung semua kemungkinan terjadinya arah percabangan alur yang ada.
Gambar 3.16 Titik-titik minutiae Dengan melihat gambar 3.17 kita dapat melihat pemutusan titik minutiae dari alur yang bercabang, penyatuan dua alur dari arah kiri, penyatuan dua alur dari arah atas, penyatuan dua alur dari arah diagonal, dan berbagai kemungkinan lain terjadinya percabangan.
Gambar 3.17 Contoh deteksi titik cabang
Setiap bentuk yang dikenali merupakan bentuk unik yang membentuk suatu formasi, yang diterjemahkan ke dalam bentuk bahasa samar (fuzzy linguistic) sehingga dapat menghasilkan pengetahuan berbasis aturan bagi sistem logika samar yang dapat menyatakan bentuk-bentuk minutiae yang diekstraksi. Membership function yang digunakan yaitu: •
Membership function Dot
•
Membership function Line
•
Membership function Branch
Bentuk membershipnya adalah seperti ini:
Gambar 3.18 Membership function Sedikit dan Banyak
Aturan-aturan logika yang dibuat sesuai dengan fitur yang ada pada kubus pencari, dimana kubus dibagi menjadi 9 node yang masing-masing
berukuran 2x2 piksel. Delapan node kubus berfungsi untuk mendeteksi alur disebut dengan node alur, satu node lagi berfungsi untuk menentukan titik minutiae yang disebut sebagai node utama.
Gambar 3.19 Node penentu titik minutiae
Dasar Aturan Titik Ujung: 1. IF node 1 is empty
AND
node 2 is empty
AND
node 3 is empty
AND
node 4 is line
AND
node 5 is dot
AND
node 6 is empty
AND
node 7 is empty
AND
node 8 is empty
AND
node 9 is empty THEN titik ujung kanan detected
2. IF node 1 is empty
AND
node 2 is empty
AND
node 3 is empty
AND
node 4 is empty
AND
node 5 is dot
AND
node 6 is line
AND
node 7 is empty
AND
node 8 is empty
AND
node 9 is empty THEN titik ujung kiri detected
3. IF node 1 is empty
AND
node 2 is line
AND
node 3 is empty
AND
node 4 is empty
AND
node 5 is dot
AND
node 6 is empty
AND
node 7 is empty
AND
node 8 is empty
AND
node 9 is empty THEN titik ujung bawah detected
4. IF node 1 is empty
AND
node 2 is empty
AND
node 3 is empty
AND
node 4 is empty
AND
node 5 is dot
AND
node 6 is empty
AND
node 7 is empty
AND
node 8 is line
AND
node 9 is empty THEN titik ujung atas detected 5. IF node 1 is empty
AND
node 2 is empty
AND
node 3 is empty
AND
node 4 is empty
AND
node 5 is dot
AND
node 6 is empty
AND
node 7 is line
AND
node 8 is empty
AND
node 9 is empty THEN titik ujung kanan atas detected
6. IF node 1 is empty
AND
node 2 is empty
AND
node 3 is empty
AND
node 4 is empty
AND
node 5 is dot
AND
node 6 is empty
AND
node 7 is empty
AND
node 8 is empty
AND
node 9 is line THEN titik ujung kiri atas detected
7. IF node 1 is line
AND
node 2 is empty
AND
node 3 is empty
AND
node 4 is empty
AND
node 5 is dot
AND
node 6 is empty
AND
node 7 is empty
AND
node 8 is empty
AND
node 9 is empty
THEN titik ujung kanan bawah detected
8. IF node 1 is empty
AND
node 2 is empty
AND
node 3 is line
AND
node 4 is empty
AND
node 5 is dot
AND
node 6 is empty
AND
node 7 is empty
AND
node 8 is empty
AND
node 9 is empty THEN titik ujung kiri bawah detected
Dasar Aturan Titik Cabang: 1. IF node 1 is dot
AND
node 2 is empty
AND
node 3 is line
AND
node 4 is dot
AND
node 5 is line
AND
node 6 is empty
AND
node 7 is empty
AND
node 8 is line
AND
node 9 is empty OR
IF node 1 is line
AND
node 2 is empty
AND
node 3 is dot
AND
node 4 is dot
AND
node 5 is line
AND
node 6 is empty
AND
node 7 is empty
AND
node 8 is line
AND
node 9 is empty THEN titik cabang atas detected
2. IF node 1 is empty
AND
node 2 is line
AND
node 3 is empty
AND
node 4 is dot
AND
node 5 is line
AND
node 6 is empty
AND
node 7 is dot
AND
node 8 is empty
AND
node 9 is line OR IF node 1 is empty
AND
node 2 is line
AND
node 3 is empty
AND
node 4 is empty
AND
node 5 is line
AND
node 6 is dot
AND
node 7 is line
AND
node 8 is empty
AND
node 9 is dot THEN titik cabang bawah detected
3. IF node 1 is empty
AND
node 2 is dot
AND
node 3 is dot
AND
node 4 is line
AND
node 5 is line
AND
node 6 is empty
AND
node 7 is empty
AND
node 8 is empty
AND
node 9 is line OR IF node 1 is empty
AND
node 2 is empty
AND
node 3 is line
AND
node 4 is line
AND
node 5 is line
AND
node 6 is empty
AND
node 7 is empty
AND
node 8 is dot
AND
node 9 is dot THEN titik cabang kanan detected
4. IF node 1 is line
AND
node 2 is empty
AND
node 3 is empty
AND
node 4 is empty
AND
node 5 is line
AND
node 6 is line
AND
node 7 is dot
AND
node 8 is dot
AND
node 9 is empty OR IF node 1 is dot
AND
node 2 is dot
AND
node 3 is empty
AND
node 4 is empty
AND
node 5 is line
AND
node 6 is line
AND
node 7 is line
AND
node 8 is empty
AND
node 9 is empty
THEN titik cabang kiri detected
5. IF node 1 is line
AND
node 2 is empty
AND
node 3 is empty
AND
node 4 is empty
AND
node 5 is branch
AND
node 6 is line
AND
node 7 is empty
AND
node 8 is line
AND
node 9 is empty THEN titik cabang kanan bawah detected
6. IF node 1 is empty
AND
node 2 is empty
AND
node 3 is line
AND
node 4 is line
AND
node 5 is branch
AND
node 6 is empty
AND
node 7 is empty
AND
node 8 is line
AND
node 9 is empty THEN titik cabang kiri bawah detected
7. IF node 1 is empty
AND
node 2 is line
AND
node 3 is empty
AND
node 4 is empty
AND
node 5 is branch
AND
node 6 is line
AND
node 7 is line
AND
node 8 is empty
AND
node 9 is empty THEN titik cabang kanan atas detected
8. IF node 1 is empty
AND
node 2 is line
AND
node 3 is empty
AND
node 4 is line
AND
node 5 is branch
AND
node 6 is empty
AND
node 7 is empty
AND
node 8 is empty
AND
node 9 is line THEN titik cabang kiri atas detected
Setelah titik-titik minutiae selesai diekstraksi, maka berbagai informasi yang didapat dari sidik jari akan disimpan ke dalam memori sementara untuk melakukan proses selanjutnya.
3.2.4
Pasca-proses Setelah data sidik jari didapatkan, maka proses selanjutnya adalah membandingkan data sementara dengan data yang ada pada database. Secara spesifik, konfigurasi global didefinisikan oleh struktur ridge yang digunakan untuk mengklasifikasikan suatu kelas dari sidik jari. Pada saat pendistribusian, titik-titik minutiae digunakan untuk membandingkan atau menyepadankan (match) jarak antara titik pusat sidik jari terhadap titik-titik minutiea dengan pola yang sejenis dan membentuk kesamaan ciri atau pola diantara dua sidik jari sampel. Sistem identifikasi otomatis untuk sidik jari, yang berfungsi membandingkan sidik jari sebagai input dengan sekumpulan data sidik jari dalam suatu database, menyandarkan pada pola-pola ridge didalam suatu citra query untuk membatasi atau menspesifikasi pencarian (searching) didalam suatu database yang merupakan fingerprint indexing dan pada titik-titik minutiae untuk memastikan perbandingan sidik jari yang relevan. Proses matching dilakukan setelah tahap feature extraction selesai. Pada tahap ini proses pengubahan koordinat relatif (0,0) dilakukan. Hal ini dikarenakan koordinat pada tahap ekstraksi Minutiae adalah koordinat Minutiae berdasarkan titik (0,0) yang berada pada ujung kiri atas. Koordinat (0,0) yang baru adalah koordinat yang didapat dari singular point citra sidik jari pada tahap
pendeteksian tipe sidik jari, dengan demikian posisi koordinat Minutiae tidak akan berubah walaupun terjadi translasi pada sidik jari. Adapun perubahan titik relatif dari Minutiae adalah sebagai berikut : Keterangan : Koordinat Minutiae adalah (Xm, Ym) Koordinat Singular Point adalah (Xs, Ys) Koordinat Minutiae yang baru adalah (Xms, Yms) : •
Xms = Xm – Xs
•
Yms = Ys – Ym Setelah pengubahan titik relatif tersebut maka citra sidik jari akan
diwakilkan dengan titik minutiae-nya yang berupa ridge ending dan bifurcation. Berdasarkan koordinat Minutiae yang baru tersebut maka proses matching bisa dilaksanakan dengan lebih mudah karena otomatis 2 set Minutiae dari sidik jari orang yang sama akan memiliki minutiae dengan jarak relatif ke titik pusat yang sama pula. Dengan memetakan koordinat minutiae terhadap titik pusat sidik jari, maka pergeseran penempatan sidik jari pada waktu scanning untuk orang yang sama pada waktu yang berbeda juga dapat diantisipasi karena citra sidik jari mengalami translasi, tetapi minutiae beserta titik pusatnya akan memiliki jarak relatif yang sama meskipun mengalami pergeseran. Pseudocode untuk proses matching adalah sebagai berikut: Keterangan : Count1
= jumlah Set Minutiae 1 dari sidik jari 1
M1(X1i, Y1j) = koordinat minutiae dari set minutiae1 Count2
= jumlah Set Minutiae 2 dari sidik jari 2
M2(X2i, Y2j) = koordinat minutiae dari set minutiae2 D
= jarak Euler antara dua titik
Match
= jumlah minutiae dari set 1 yang sama dengan minutiae dari set 2
MT1(i,j)
= Tipe minutiae dari set minutiae 1
MT2(i,j)
= Tipe minutiae dari set minutiae 2
Pseudocodenya adalah sebagai berikut : for j = 0 to count1 for i = 0 to count2 if (MT1(i,j) = MT2(i,j) and (MT2(i,j) belum disamakan) THEN D = √{(x1i – x2i)2 + (y1j – y2j)2} If D < 25 pixel THEN match = match + 1 endif endif end Pada tahap matching tiap set minutiae1 akan dicocokkan dengan set minutiae2, dan pada tahap tersebut tiap minutiae hanya boleh disamakan satu kali. Pada akhirnya kita bisa menentukan apakah dua set minutiae yang berasal dari sidik jari tersebut merupakan sedik jari dari orang yang sama dengan melihat jumlah minutiae yang sama. Sedangkan D adalah jarak antara 2 titik minutiae yang ingin disamakan. Nilai D digunakan untuk mengantisipasi penempatan titik pusat yang tidak mungkin 100% akurat pada titik yang sama sehingga jika
diantara 2 minutiae yang ingin disamakan berada pada radius 25 pixel, maka 2 minutiae tersebut dianggap sama. Setelah semua minutiae pada citra sidik jari telah disamakan, maka akan didapatkan jumlah minutiae yang sama pada kedua citra sidik jari tersebut. Parameter yang digunakan untuk mengetahui apakah kedua citra sidik jari berasal dari orang yang sama adalah jumlah minutiae yang sama dan perbandingan jumlah minutiae yang sama terhadap total jumlah minutiae yang ingin disamakan. Contoh pseudocode-nya adalah sebagai berikut : if (match > T) or (match / count > Tp) THEN fingerprint matched else rejected endif Keterangan : Match
= jumlah minutiae yang sama
T
= threshold jumlah minutiae
Tp
= threshold perbandingan jumlah minutiae (%)
Count
= jumlah minutiae pada sidik jari yang ingin disamakan
Kedua parameter ini berguna untuk mengantisipasi jika minutiae pada sidik jari yang ingin disamakan memiliki jumlah minutiae yang lebih sedikit dari jumlah threshold minutiae dikarenakan luas area citra sidik jari yang tidak lengkap, namun jika dibandingkan dengan jumlah minutiae yang diekstraknya maka akan memiliki persentase yang besar yang menandakan bahwa sebagian
besar minutiae pada citra sidik jari tersebut memiliki kesamaan yang besar dengan citra sidik jari yang tersimpan pada database. Keseluruhan sistem verifikasi sidik jari terbagi dalam mode identifikasi dan autentifikasi, dimana mode autentifikasi berarti melakukan proses matching terhadap satu sidik jari apakah sidik jari tersebut sama dengan sidik jari yang disimpan pada mode enrollment. Sedangkan pada mode identifikasi, proses matching dilakukan pada semua sidik jari yang tersimpan pada database untuk melihat mana sidik jari yang memiliki kemiripan tertinggi proses identifikasi didasarkan atas proses autentifikasi, hanya saja prosesnya dilakukan pada banyak sidik jari. Karakteristik yang diekstrak pada citra sidik jari nantinya akan memiliki ukuran sebesar kurang lebih 300 bytes. Dengan demikian sidik jari yang tersimpan didatabase akan memiliki ukuran yang kecil jika dibandingkan dengan apabila yang disimpan adalah citra sidik jari itu sendiri. Selain itu proses matching dapat dilakukan dengan lebih cepat karena ekstraksi sidik jari hanya perlu dilakukan pada citra sidik jari yang ingin disamakan.
Gambar 3.20 Flowchart Authentifikasi Sidik jari
Proses identifikasi melibatkan proses pencarian (searching) dan pencocokkan (matching) dari satu data yang diambil dibandingkan dengan seluruh data yang ada pada database. Identifikasi merupakan pencarian 1:N karena itu harus dibuat system agar pencarian data tidak terjadi pada keseluruhan database yang bias mengakibatkan pencarian lebih lama. Database yang disimpan menyimpan data tentang tipe sidik jari, jadi daripada mencari diseluruh tempat system akan mengolah data agar yang dicari hanyalah database yang memiliki tipe sidik jari yang sama dengan yang sedang diidentifikasi. Misalnya ada data yang ingin diidentifikasi berupa sidik jari bertipe lingkaran sedangkan dalam database tersimpan 100 data sidik jari yang tipenya putaran kiri, lalu ada 150 data yang tipe sidik jarinya putaran kiri, tipe sidik jari yang tipenya lengkungan ada 55 data, dan tipe sidik jari yang bertipe lingkaran ada 95 data. Bayangkan bila system mencarinya secara sekuensial, yang akan terjadi adalah proses pencarian akan semakin memakan waktu. Karena itu pengklasifikasian tipe sidik jari ini harus dilakukan agar pencarian lebih cepat dan mengurangi rasio error yang mungkin terjadi. Setelah membagi pencarian menjadi lebih sedikit, hal yang selanjutnya dibandingkan adalah mencari jumlah titik minutiae dari sidik jari yang sama dengan data yang sedang diproses. Jumlah minutiae yang disamakan adalah jumlah titik ujung dan titik cabang, tetapi bila tidak ditemukan yang sama system akan memberi nilai toleransi kelebihan titik sampai 2 titik minutiae. Setelah mencari jumlah yang sama maka akan didapatkan data yang sesuai dengan klasifikasi. Penghitungan minutiae yang berbeda sampai lebih dari 2 akan menghasilkan output “person not recognize”, sedangkan untuk perbedaan
titik yang kurang dari dua akan dimasukkan sebagai bahan pertimbangan dan dimasukkan ke daftar sidik jari dengan kemungkinan sama. Bila terjadi ada dua atau lebih data yang memenuhi kualifikasi tersebut maka akan dilakukan kembali pengecekan secara lebih mendalam. Perhitungan yang dilakukan adalah menghitung jarak yang ada antara titik singular dengan titik minutiae yang masing-masing jarak dibandingkan oleh dasar besar kemiringan sudut yang tercipta antara kedua titik. Contohnya jika data yang ingin dibandingkan mempunyai titik minutiae A yang besar sudutnya terhadap titik singular adalah 45°, maka system akan mencari dari database yang memiliki besar sudut yang sama baru kemudian membandingkan keduanya. Demikian seterusnya hingga didapatkan berapa besar presentase kemiripan antara data yang dicari dengan database, data yang memiliki presentase kesamaan yang lebih besar akan dikenali sebagai data sebenarnya dan ditampilkan kepada layar output. Dan jika tidak ada hasil yang memenuhi kriteria kemiripan lebih dari 70% maka data dianggap tidak tercatat dalam database.
Gambar 3.21 Bagan pencarian dan pencocokkan