61
BAB 4 Sistem Yang Diusulkan
4.1 Kerangka Sistem
Pada bagian ini dijelaskan lebih lanjut mengenai kerangka sistem yang diusulkan serta urut-urutan sistem berjalan.
4.1.1 Pengambilan Data Pada proses ini diperoleh tanda tangan user dan diubah kedalam bentuk digital dengan menggunakan digitizer. User memasukkan data dengan cara membuat tanda tangan pada alat itu proses untuk memperoleh tanda tangan dan mengubahnya ke dalam bentuk digital. User juga memasukkan id sebagai target output untuk jaringan saraf tiruan Signature Area
Add
Gambar 4-1 Digitizer dan Area Tanda Tangan
Data tanda tangan disimpan dalam bentuk txt. Data tanda tangan asli memuat 6 macam data yang berbeda yaitu:
62 1. dataTitikX merupakan data yang berhubungan dengan koordinat titik x dari tanda tangan 2. dataTitikY merupakan data yang berhubungan dengan koordinat titik y dari tanda tangan 3. dataWaktu merupakan data yang mencatat perubahan waktu dari setiap titik tanda tangan 4. dataPress merupakan data yang mencatat posisi pen apakah sedang ditekan atau diangkat 5. dataTanda tangan merupakan data yang berisi nilai koordinat x,y,waktu setiap titik tanda tangan dan posisi pen apakah sedang ditekan atau tidak. 6. dataFeature Data tanda tangan yang diperoleh akan langsung diolah menjadi fitur ekstraksi pada saat user menekan tombol Add.
Gambar 4-2 Contoh Tanda Tangan
63
Gambar 4-3 Contoh Data Tanda Tangan
64
4.1.2 Preprocessing
Cropping
Translation
Cropping
Gambar 4-4 Alur Preprocessing
Data tanda tangan yang diperoleh dari input device mempunyai berbagai variasi baik dari sisi posisi, kemiringan pada saat pengambilan tanda tangan. Agar data – data yang dimasukkan ke dalam jaringan saraf tiruan dapat bersifat invariant terhadap translasi, rotasi dan scaling maka perlu ada preprocessing terlebih dahulu. Data hasil preprocessing inilah yang nantinya akan diolah dalam proses feature extraction. Proses
yang terjadi pada tahapan preprocessing adalah cropping dan translation. Proses pertama yang terjadi pada saat preprocessing adalah proses cropping, yaitu memberikan semacam bounding box terhadap image sesuai dengan batas maksimal dari nilai x dan y, sehingga hanya area yang mengandung image saja yang akan diproses selanjutnya. Proses ini untuk mendapatkan nilai maksimal dan minimal dari koodinat x dan y sehingga proses translasi bisa dilakukan. Setelah proses cropping dilakukan, setiap titik tanda tangan akan ditranslasi ke titik (0,0). Sistem ini memiliki toleransi rotasi yang relatif kecil, kurang dari 10 derajat. Sehingga jika user terbiasa menulis miring maka dapat menggeser atau memiringkan digitizer sesuai kehendak.
65
4.1.3 Feature Extraction Untuk dapat mengenali sebuah tanda-tangan dari masing-masing user, maka diperlukan karakteristik khusus dari setiap tanda tangan sehingga dapat menghasilkan pola tertentu. Pola karakteristik inilah yang akan digunakan untuk membedakan tanda tangan yang satu dengan tanda tangan yang lain. Jadi pola ini harus unik dan dapat merepresentasikan tanda tangan individu tertentu. Data yang telah diolah pada proses preprocessing akan diekstrak menjadi fitur yang akan digunakan sebagai input untuk jaringan saraf tiruan. Feature yang diekstrak dapat dibagi menjadi dua kategori: temporal dan spatial features. Temporal feature diambil dari tanda tangan berdasarkan dimensi waktu dan arah pergerakan tanda tangan, sedangkan spatial feature diambil dari tanda tangan berdasarkan bentuk geometrisnya. Proses feature extraction ini akan menghasilkan fitur – fitur yang merepresentasikan ciri – ciri atau karakteristik tanda tangan dalam angka – angka yang berkisar antara 0 dan 1. Fitur – fitur dalam sistem ini adalah 1. spatial feature
a. WHRatio b. Jumlah Segment c. Sudut Tanda Tangan d. Zoning 4 x 4 2. temporal feature a. Kelajuan rata – rata b. Kelajuan rata – rata terbesar dari setiap segment
66 c. Waktu terlama pen diangkat, waktu terlama pen ditekan, dan total waktu diangkat d. Jumlah perubahan arah e. Ratio ( Skala ) arah panjang kurva dan panjang lintasan
4.1.3.1 Spatial Feature ¾ Perbandingan panjang dan lebar tanda tangan (WHRatio)
Fitur ini menghitung nilai perbandingan antara lebar (width) dan panjang (height) dari sebuah tanda tangan. Tanda tangan akan dihitung panjang berdasarkan selisih titik x maksimum dan titik x minimum dan menghitung lebar berdasarkan selisih titik y maksimum dan titik y minimum. Nilai dari panjang dan lebar tersebut akan digunakan untuk menghitung WHRatio dengan menggunakan rumus persamaan : WHRatio =
width height
¾ Jumlah segment
Fitur ini akan menghasilkan nilai banyaknya segment dari sebuah tanda tangan. Jumlah segment akan bertambah jika seorang penanda tangan menekan pen-nya ke permukaan digitizer.
67
Sumbu x
(0,0)
Sumbu y
Gambar 4-5 Jumlah Segment
Tanda tangan yang telah jadi akan dihitung berapa banyak segment yang ada dalam bentuk tersebut. Garis yang dibuat antara dua titik pada ilustrasi diatas menggambarkan sebuah segment. Berdasarkan gambar terlihat bahwa tanda tangan tersebut mempunyai 4 segment.
¾ Sudut tanda tangan
Sudut tanda tangan dalam fitur ekstraksi ini diperoleh dari sudut antara garis dari titik 0(0,0) ke titik awal tanda tangan dengan garis dari titik 0(0,0) ke titik akhir tanda tangan.
(0,0)
Sumbu y
Sumbu x
α β
68 Gambar 4-6 Sudut Tanda Tangan
Dari gambar akan diperoleh perhitungan sudut tanda tangan:
θ =α − β θ adalah sudut tanda tangan α adalah sudut antara garis 0 ke titik awal terhadap sumbu x
β adalah sudut antara garis 0 ke titik akhir terhadap sumbu y Nilai fitur yang diambil untuk perhitungan adalah θ . ¾ Zoning 4x4
Fitur ini akan membagi area tanda tangan menjadi 16 area yang sama luasnya yang terdiri dari 4 baris dan 4 kolom. Dari fitur ini akan menghasilkan 16 nilai yang akan dimasukkan sebagai input ke dalam jaringan saraf tiruan. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Gambar 4-7 Daerah Zoning 4x4
Gambar 4-8 Daerah Zoning 4x4
69 Nilai fitur yang akan dimasukkan adalah nilai dari banyaknya pixel hitam dari suatu area dibagi dengan luas area tersebut.
1 v= M .N
M
n
x =1
y =1
∑ ∑ f ( x, y )
Di mana : v = nilai dari setiap area. M = jumlah pixel dalam satu baris N = jumlah pixel dalam satu kolom F(x,y) = nilai pixel pada posisi x,y
4.1.3.2 Temporal Feature ¾ Kelajuan Rata – Rata
Fitur ini akan menghasilkan nilai kelajuan rata – rata dari sebuah tanda tangan. Nilai kelajuan rata – rata didapatkan dari panjang garis yang dibuat selama tanda tangan dibagi dengan total waktu menggoreskan tanda tangan. kelajuan rata – rata = panjangTrack / total waktu pen ditekan v=
Δx Δt
∆t = t1 – to , total waktu adalah total waktu selama pen ditekan untuk menggoreskan tanda tangan. ∆x = x1 – xo , panjang Track adalah panjang garis dari sebuah tanda tangan. ¾ Kelajuan Rata – Rata Terbesar Dari Setiap Segment
Fitur ini akan menghitung besarnya kelajuan rata – rata dari setiap segment. Nilai ini didapat dari pembagian antara panjang tiap segment dan waktu dari tiap
70 segment itu. Nilai dari fitur ini yang akan dimasukkan sebagai input dalam jaringan
saraf tiruan adalah nilai kelajuan rata – rata yang terbesar dari antara segment – segment tanda tangan. ¾ Waktu terlama pen diangkat, waktu terlama pen ditekan, dan total waktu diangkat
Fitur akan membandingkan lamanya jeda waktu pen diangkat, dan lamanya waktu pen ditekan. Nilai yang akan diambil adalah nilai yang terbesar dan agar nilai ini tidak berpengaruh terhadap ukuran tanda tangan maka dibagi dengan total waktu tanda tangan. Nilai yang dimasukkan ke dalam jaringan saraf tiruan adalah ratio waktu terlama pena diangkat dibagi dengan total waktu dan ratio waktu terlama pen ditekan dibagi dengan total waktu. Total waktu pen diangkat didapat dari penjumlahan semua jeda waktu pen diangkat dan kemudian ditekan kembali. Fitur ini akan menghasilkan ratio total waktu pen diangkat dibagi dengan total waktu tanda tangan. Durasi waktu (t)
Sumbu x
Segment 1 Perpindahan y
Segment 2
Segment 3
Sumbu y
Gambar 4-9 Perbandingan Waktu Terhadap Tiap Segment
Gambar 4-9 menggambarkan kurva hubungan antara perpindahan pada sumbu y dan durasi waktu pada saat membuat segment tanda tangan. Tanda tangan ini terdiri dari 3 segment yaitu segment 1,2, dan 3. Waktu terlama pen di tekan terdapat pada segment 2, hal ini terlihat dari kurva segment ke-2 yang paling panjang diantara segment
71 lainnya. Sedangkan waktu terlama pen di lepas terdapat diantara segment 2 dan 3, karena jarak antara ke-2 segment tersebut paling lebar. ¾ Jumlah perubahan arah
Nilai perubahan arah sumbu x dipengaruhi oleh adanya perubahan state dari arah kanan ke aran kiri atau dari arah kiri ke arah kanan. Jika perubahan arah dari kanan ke kiri, maka nilai arah kiri yang bertambah dan sebaliknya jika perubahan arah dari kiri ke kanan, maka nilai arah kanan yang bertambah. Nilai perubahan arah sumbu y dipengaruhi oleh adanya perubahan state dari naik ke turun atau dari state turun ke naik. Jika perubahan arah dari naik ke turun, maka nilai arah ke bawah (turun) akan bertambah, dan sebaliknya jika perubahan arah dari turun ke naik, maka nilai arah ke atas (naik) yang bertambah. Nilai fitur yang dihasilkan adalah nilai ratio dari perubahan arah dibagi dengan total perubahan arah. Nilai yang akan dimasukkan sebagai input dalam jaringan saraf tiruan adalah nilai ratio perubahan arah ke atas dibagi dengan total perubahan arah dan nilai ratio perubahan arah ke kanan dibagi dengan total perubahan arah. Sumbu x
(0,0)
Sumbu y
Gambar 4-10 Perubahan Arah
Penjelasan gambar :
72 atas
:2
bawah
:1
kiri
:1
kanan
:3
Ratio perubahan arah ke atas
=2/7
Ratio perubahan arah ke kanan = 3 / 7 ¾ Ratio ( Skala ) arah panjang kurva dan panjang lintasan
Jika terdapat penambahan nilai y pada titik tanda tangan maka berarti terdapat perubahan arah tanda tangan ke bawah , dan sebaliknya jika terdapat pengurangan nilai y berarti terjadi perubahan arah ke atas. Perubahan arah tanda tangan ke bawah berarti panjang perubahan arah ke bawah semakin bertambah dan sebaliknya perubahan arah tanda tangan ke atas berarti panjang perubahan arah ke atas yang berubah. Jika terdapat penambahan nilai x maka berarti terdapat perubahan arah ke kanan, dan sebaliknya jika terdapat pengurangan nilai x berarti terjadi perubahan arah ke kiri. Perubahan arah tanda tangan ke kiri berarti panjang perubahan arah ke kiri semakin bertambah dan sebaliknya perubahan arah tanda tangan ke kanan berarti panjang perubahan arah ke kanan yang berubah. Semakin besar ukuran tanda tangan maka nilai dari masing masing panjang perubahan arah akan menjadi semakin besar. Oleh karena itu nilai yang diambil dari fitur ini adalah nilai ratio dari panjang perubahan arah tanda tangan dan total panjang tanda tangan sehingga fitur dapat menjadi invariant terhadap scaling.
73
Sumbu x
(0,0)
4 4
2 5
Sumbu y
2
4
Gambar 4-11Skala Perubahan Arah
Berdasarkan gambar 3-14 dapat diambil kesimpulan : total lintasan = 4 + 2 + 4 + 5 + 4 +2 = 21
Ratio skala perubahan arah ke atas
= 4/21
Ratio skala perubahan arah ke bawah
= 5/21
Ratio skala perubahan arah ke kanan
= 8/21
Ratio skala perubahan arah ke kiri
= 4/21
Nilai fitur yang dimasukkan ke dalam jaringan saraf tiruan adalah ratio dari panjang perubahan arah ke atas dibagi dengan total panjang tanda tangan dan ratio dari panjang perubahan arah ke kanan dibagi dengan total panjang tanda tangan.
4.1.4 Training Pada proses pelatihan akan mengambil hasil fitur ekstraksi sebanyak 28 fitur dari setiap tanda tangan dan setiap user diambil 5 buah tanda tangannya yang akan dimasukkan kedalam Gaussian ARTMAP sebagai pola input. Target output yang dimasukkan adalah pemilik tanda tangan tersebut. Jaringan saraf ini akan dilatih dengan menggunakan parameter pelatihan (alpha, beta, base
74 vigilance, vigilance art b,max epoch) yang berbeda – beda untuk mendapatkan
konfigurasi yang paling bagus. Proses training ini akan menghasilkan weight dari ARTa dan ARTb serta mapfield yang menghubungkan kedua ART tersebut.
4.2 Implementasi Sistem Agar sistem dapat berjalan, diperlukan perangkat keras dan piranti lunak serta sumber daya manusia yang menjalankan perangkat keras dan piranti lunak tersebut.
4.2.1 Spesifikasi Kebutuhan Perangkat Keras dan Piranti Lunak 4.2.1.1 Spesifikasi Kebutuhan Perangkat Keras Dalam implementasi sistem ini, spesifikasi komputer yang digunakan adalah sebagai berikut: a. Processor 1500 MHz ke atas b. Memory 512 MB c. Kapasitas Harddisk minimum 50 MB untuk aplikasi d. Monitor SVGA,minimal resolusi 800 X 600 pixel e. Keyboard f. Papan gambar elektronik (digitizer) dengan penangkapan 100 point / second
4.2.1.2 Spesifikasi Kebutuhan Piranti Lunak Piranti lunak yang digunakan untuk mendukung jalannya aplikasi adalah sebagai berikut: ¾ Windows : Microsoft Windows XP. ¾ Piranti lunak pendukung yakni berupa Java Virtual Machine.
75
4.2.2 Pengoperasian Aplikasi Verifikasi Tanda tangan Berikut akan dijelaskan pengoperasian dan jalannya program untuk setiap menunya. Secara garis besar program mencakup proses – proses berikut : a. Data Acquisition b. Preprocessing c. Feature Extraction d. Training e. Testing Langkah pertama yang harus dilakukan agar sistem dapat diimplementasikan adalah melakukan proses data acquisition, yaitu memasukkan input user id dan tanda tangan user asli ke dalam sistem. Setiap user akan diminta untuk memasukkan 8 buah tanda tangan, di mana 5 pertama akan digunakan sebagai data training, dan sisanya sebagai data testing. Hasil dari tanda tangan ini disimpan dalam folder dataTraining untuk tanda tangan pertama sampai dengan kelima, dan sisanya dalam folder dataTesting. Nilai yang akan disimpan adalah nilai koordinat x,y, waktu, dan status ispress. Untuk memasukkan tanda tangan palsu, user dapat memilih menu Add | Add Forgery, maka user akan diminta memasukkan NIM yang ingin dipalsukan. Tanda tangan palsu akan dimasukkan sebanyak 4 kali, di mana data – data ini akan disimpan dalam folder data Forgery, agar dapat digunakan untuk testing. Tanda tangan ini akan disimpan fiturnya, tetapi tidak dimasukkan dalam proses training.
76 Selanjutnya adalah menu Train, pilihan menu Train | Train All digunakan untuk men-train ulang semua data user yang telah disimpan. Jika ingin mengubah parameter, user dapat mengganti parameter pada pilihan menu Train | Set Parameter.
4.2.3 Verifikasi Tahapan ini adalah tahapan pengujian logikal/algoritma dan pengujian fungsional (input process-output) yang dilakukan terhadap pengembangan aplikasi ini. Dalam tahapan ini akan dilakukan pengujian terhadap logika yang dibangun berdasarkan sistem yang dirancang apakah sudah sesuai dan memenuhi kebutuhan, dilengkapi dengan pengujian terhadap fungsionalitas dari aplikasi yang dibangun dengan mencari kesalahan pemrograman, dengan memastikan masukan (input) memiliki keluaran (output) yang benar. Pengujian sistem secara fungional dilakukan dengan menguji data training dan data testing yang berbeda dengan data training. Dari data yang dimasukkan akan diproses untuk menghasilkan fitur ekstraksi dan ditest dengan menggunakan weight yang didapat pada proses training. Untuk proses pengujian, sebuah tanda tangan akan dimasukkan ke dalam sistem bersama dengan user id. Prosedur yang dijalani antaranya adalah signature capturing, preprocessing, feature extraction, dan kemudian data tersebut diolah oleh
jaringan saraf tiruan dan dibandingkan dengan yang asli.
Weight Image tanda tangan
Preprocessing
Feature Extraction
Testing
Hasil Pengujian
77 Gambar 4-12 Proses Verifikasi
4.2.4 Menentukan keakuratan sistem Pengujian terhadap tingkat akurasi sistem verifikasi tanda tangan ini meliputi 4 nilai pengujian yaitu a. Pengujian terhadap genuine signature Pengujian ini bertujuan untuk mengetahui berapa jumlah penolakan tanda tangan asli yang digunakan dalam proses training.
Genuine Signature = FRR
Numbers of rejected signatures x 100 % Numbers of genuine signatures x Numbers of user
Numbers of genuine signatures dalam pengujian ini adalah 5 buah untuk
setiap user nya. b. Pengujian terhadap testing signature Pengujian ini bertujuan untuk mengetahui berapa besar jumlah penolakkan terhadap tanda tangan asli yang tidak digunakan dalam proses training.
Testing Signature = FRR
Numbers of rejected signatures x 100 % Numbers of testing signatures x Numbers of user
Numbers of testing signatures dalam pengujian ini adalah 3 buah untuk
setiap user nya. c. Pengujian terhadap Skilled forgery Signature
78 Pengujian ini bertujuan untuk mengetahui besarnya jumlah penerimaan tanda tangan palsu yang didapatkan dari orang yang telah mempelajari tanda tangan yang asli. Rumus yang digunakan adalah Numbers of accepted signatures
Skilled Forgery = Signature FAR
x 100 % Numbers of skilled forgery signatures x Numbers of user
Dalam pengujian ini, dari tanda tangan setiap user akan dipalsukan sebanyak 4 kali, sehingga nilai dari d. Pengujian terhadap Zero Effort Signature Pengujian untuk mengetahui besarnya jumlah penerimaan tanda tangan yang palsu yang dimasukkan ke dalam sistem tanpa ada maksud untuk melakukan pemalsuan atau di saat user lain memasukkan tanda tangan mereka sendiri. Setiap tanda tangan orang lain yang terdapat dalam database adalah zero effort forgery bagi user sendiri.
Zero Effort Signature FAR
Numbers of accepted signatures =
x 100 % Numbers of zero effort signatures
x Numbers of user x ( Numbers of user – 1 )
Dalam hal ini, jumlah dari tanda tangan adalah 8 buah tanda tangan, di mana 5 diantaranya adalah data training dan sisanya data testing. Sehingga : Number of zero effort signature x Numbers of userx(Numbers of user–1)
79 =12 x 30 x 29 = 10440. Perhitungan FAR dan FRR pada sistem verifikasi tanda tangan adalah sebagai berikut :
False Rejection = ( 50% x Genuine Signature FRR ) + ( 50% x Testing Signature FRR ) Rate
False Acceptance Rate
= (50% x Zero Effort Signature FAR) + (50% x Skilled Forgery Signature FAR)
Error sistem pada sistem verifikasi tanda tangan dihitung sebagai berikut : Error Sistem =
( 25% x genuine signature FRR) + ( 25% x testing signature FRR ) + ( 25% x zero effort signature FRR) + ( 25% x skilled forgery signature FRR ) Perhitungan tingkat akurasi pada sistem verifikasi tanda tangan adalah sebagai berikut : Accuracy = 100% - Error Sistem