DOKUMEN KELENGKAPAN PENGAJUAN HAKI
Nomor Permohonan: C00201304231
Tanggal 14 September 2013
MANUAL BOOK
(USER GUIDE
DOKUMENTASI PERANCANGAN,
PEMBUATAN, UJICOBA & ANALISA)
PROGRAM KOMPUTER
APLIKASI VERIFIKASI TANDATANGAN
DENGAN POLA MODEL KHUSUS
BERBASIS POLA BUSUR TERLOKALISASI
ANAK AGUNG KOMPIANG OKA SUDANA
JURUSAN TEKNOLOGI INFORMASI
DOKUMENTASI SISTEM
TAHAP PERANCANGAN DAN PEMBUATAN
SISTEM VERIFIKASI TANDA TANGAN
Dijelaskan tentang perancangan dan pembuatan perangkat lunak, yang
meliputi gambaran umum sistem, proses pembentukan dan pemilihan pola model
yang sesuai, serta perancangan dan pembuatan sistem verifikasi dengan
memasukkan pola model yang telah ditentukan sebelumnya.
3.1.
GAMBARAN UMUM SISTEM VERIFIKASI
Bentuk umum sistem verifikasi dapat dijelaskan melalui keterkaitan antara
masukan, proses, data dan keluaran yang mengacu pada diagram alir data sistem
(Gambar 2.7). Keterkaitan masing-masing komponen terlihat pada Gambar 3.1.
Pertama pada tahap persiapan, pengembang sistem membuat dan memilih
pola model yang akan dipakai untuk mengekstraksi ciri tandatangan sesuai dengan
batasan pada Metode Pola Busur Terlokalisasi. Pola model yang diperoleh
kemudian dimasukkan sebagai pola model tetap sistem, yang mana pola model ini
hanya dimasukkan sekali saja yaitu pada saat pertama sistem dibuat.
Masukan yang diterima adalah citra tandatangan pengguna baik yang telah
terdaftar maupun belum terdaftar. Apabila seorang pengguna sudah pernah
mendaftarkan tandatangannya ke dalam basisdata acuan maka status pengguna
adalah pengguna terdaftar. Sebaliknya bila pengguna belum mendaftarkan
Gambar 3.1
Bentuk rancangan sistem
Kata kunci untuk pengguna dalam pendaftaran ini adalah nomor identitas
(identity number). Pengguna yang belum terdaftar harus mendaftarkan diri melalui
proses pendaftaran terlebih dahulu. Proses ini bertugas membuat basisdata acuan
yang menyimpan cacah keseringan muncul masing-masing pola model dari
beberapa tandatangan sampel pengguna. Dalam basisdata acuan juga menyimpan
nilai kritis yang akan dipergunakan sebagai harga ambang pada saat proses
pembandingan nantinya. Setelah melewati proses pendaftaran maka status
pengguna menjadi pengguna terdaftar.
Pengguna tak terdaftar
Pengguna terdaftar
Laporan verifikasi
Keluaran verifikasi Proses
pendaftaran Masukan
tandatangan
acuan Masukan
tandatangan
Proses verifikasi Pengembang
sistem
Basisdata pola model
Basisdata acuan
Verifikasi tandatangan dilakukan oleh pengguna terdaftar dengan cara
terlebih dahulu mengaktifkan basisdata acuan pengguna bersangkutan dengan
memasukkan nomor identitas pengguna, lalu memanggil file citra tandatangan
siap uji (telah mengalami pemrosesan menjadi data biner), setelah itu baru
dilakukan proses pembandingan. Sistem akan melakukan pembandingan antara
tandatangan uji dengan tandatangan dari basisdata acuan yang telah diaktifkan.
Keluaran sistem adalah berupa penerimaan atau penolakan terhadap tandatangan
masukan, laporan mengenai nilai ketidaksamaan dan waktu pemrosesan.
3.2.
PERSIAPAN SISTEM
Pembuatan sistem verifikasi tandatangan dalam penelitian ini memakai
pola-pola model dari Metode Pola Busur Terlokalisasi untuk mengekstraksi ciri
tandatangan masukan. Di samping menggunakan 77 buah pola (dikelompokkan
menjadi 67 pola model) seperti yang terlihat pada Gambar 2.6, juga akan dipakai
pola model baru yang pembuatannya tetap mengacu kepada batasan yang ada
dalam Metode Pola Busur Terlokalisasi ini.
3.2.1. PEMBENTUKAN POLA MODEL
Pembentukan pola model baru yang didasarkan pada batasan-batasan
dalam Metode Pola Busur Terlokalisasi untuk tulisan Jepang dengan tujuan untuk
mengurangi banyaknya pola model yang digunakan, sehingga waktu proses sistem
bisa lebih singkat. Batasan utamanya yaitu lokalisasi permasalahan pada pola
model yang didefinisikan di dalam sebuah bujur sangkar kecil berukuran 5 x 5,
Batasan dalam bujur sangkar 5 x 5 juga menghasilkan kemungkinan pola
yang sangat banyak, sehingga diperlukan untuk menggunakan aturan-aturan
lainnya dari Metode Pola Busur Terlokalisasi tersebut. Berdasarkan aturan-aturan
tersebut maka pola-pola yang dibentuk oleh titik karakteristik dalam bujur sangkar
5 x 5 menghasilkan 125 buah kemungkinan pola awal dan bisa dikelompokkan
menjadi 103 pola model awal seperti terlihat pada Gambar 3.2(a) dan 3.2(b).
Adapun aturan-aturan dari Metode Pola Busur Terlokalisasi yang
digunakan sehingga menghasilkan pola-pola seperti terlihat pada Gambar 3.2(a)
dan 3.2(b) adalah sebagai berikut:
Titik-titik karakteristik yang digunakan adalah sebanyak 1, 2, 3, dan 5,yang mana titik-titik karakteristik ini diantaranya juga bisa berfungsi
sebagai titik akhir. Penempatan titik-titik karakteristik ini tetap
mengacu pada pola busur dalam bentuk asli, yaitu diletakkan di atas
salah satu busur yang menghubungkan titik akhir dan berjarak sama.
Titik-titik akhir tersebut diletakkan pada posisi koordinat ganjil.
Untuk menghindari redudansi pada dua atau lebih pola yang sama,maka dipilih satu pola yang mewakili pola-pola tersebut. Contohnya
pada pola nomor 1, mewakili 25 kemungkinan pola yang dihasilkan
jika menggunakan sebuah titik karakteristik.
Beberapa pola yang sejenis dalam hal ini banyaknya titik karakteristikpola-pola tersebut sama dan juga berada pada busur yang sama,
Gambar 3.2(a)
Kemungkinan pola-pola dari Pola Busur Terlokalisasi untuk tandatangan orang Indonesia (nomor urut 1 sampai 63)
Gambar 3.2(b)
Kemungkinan pola-pola dari Pola Busur Terlokalisasi untuk tandatangan orang Indonesia (nomor urut 64 sampai 125)
3.2.2. PEMILIHAN POLA MODEL
Guna mengurangi waktu proses, maka dari 125 pola di atas dipilih
pola-pola yang memang sering muncul pada Tandatangan Latin khususnya
Tandatangan Orang Indonesia. Pemilihan pola-pola itu dilakukan dengan
menggunakan bantuan program untuk menghitung keseringan muncul
masing-masing pola tersebut pada sejumlah citra biner tandatangan. Dalam penelitian ini
dipergunakan 380 buah tandatangan sampel dari orang yang berbeda-beda.
Adapun potongan program yang dipergunakan adalah sebagai berikut:
begin
for NM := 1 to 125 do WArrModelPattern[NM].Freq := 0;
for NSign := 1 to TotalSampelSign do begin
Image1.Picture.LoadFromFile(ListBox2.Items[NSign-1]); Gambar := BacaGambar;
for NM := 1 to 125 do begin
for x := (awalX_L-4) to (akhirX_L - 4) do for y := (awalY_L-4) to (akhirY_L - 4) do
begin
i := 0;
cocok := true; repeat
inc(i); j := 0; repeat
inc(j);
if ((i+x-1)<awalX_L) or ((j+y-1)<awalY_L) then
begin
if WArrModelPattern[NM].Pattern[i-1,j-1] <> 0 then cocok := false;
end else
if WArrModelPattern[NM].Pattern[i-1,j-1] <> Gambar[i+x-1,j+y-1]
then cocok := false;
until (cocok = false) or (j = 5); until (cocok = false) or (i = 5); if (cocok = true) and (i=5) and (j=5) then inc(WArrModelPattern[NM].Freq); end;
end; end;
Setelah dieksekusi dengan mempergunakan 380 buah sampel citra
tandatangan orang Indonesia, hasil dari potongan program di atas adalah berupa
cacah keseringan muncul masing-masing pola model yang tersimpan pada
variabel freq dalam variabel WArrModelPattern. Dalam bentuk tabel, cacah
keseringan muncul dari 125 pola tersebut seperti terlihat pada Tabel 3.1.
Tabel 3.1
Frekuensi kemunculan masing-masing pola pada 380 citra biner tandatangan
No Model Freq No Model Freq No Model Freq No Model Freq No Model Freq
1 1 24065 26 26 4 51 51 6 76 68 218 101 87 0
2 2 247 27 27 1 52 52 42 77 69 0 102 88 13
3 3 434 28 28 5 53 53 2 78 69 0 103 89 3
4 4 396 29 29 1 54 54 3 79 70 0 104 90 11
5 5 108 30 30 1 55 55 1144 80 71 0 105 91 1
6 6 94 31 31 8 56 56 0 81 71 0 106 92 308
7 7 37 32 32 3 57 57 2 82 72 0 107 92 153
8 8 171 33 33 14 58 58 8871 83 73 43 108 92 321
9 9 234 34 34 118 59 59 3 84 74 0 109 93 56
10 10 84 35 35 2 60 59 0 85 74 0 110 94 58
11 11 73 36 36 0 61 59 10 86 75 0 111 94 23
12 12 66 37 37 24 62 60 0 87 76 0 112 94 69
13 13 82 38 38 3 63 61 0 88 76 0 113 95 25
14 14 16 39 39 3 64 61 0 89 77 0 114 96 39
15 15 5 40 40 36 65 61 16 90 78 14 115 97 60
16 16 1 41 41 2 66 62 3 91 78 17 116 98 100
17 17 3 42 42 1 67 63 3634 92 79 14 117 98 95
18 18 0 43 43 103 68 64 3 93 80 15 118 98 58
19 19 13 44 44 3 69 64 0 94 81 117 119 99 20
20 20 3 45 45 0 70 64 20 95 81 610 120 100 32
21 21 1 46 46 3713 71 65 0 96 82 10 121 101 244
22 22 6 47 47 8 72 66 2 97 83 78 122 101 224
23 23 0 48 48 1 73 66 0 98 84 1 123 101 102
24 24 9 49 49 2929 74 66 12 99 85 10 124 102 49
Cacah keseringan muncul dari masing-masing pola seperti yang terlihat
pada Tabel 3.1 kemudian diurut berdasarkan keseringan muncul, tetapi
sebelumnya dilakukan penjumlahan frekuensi kemunculan pola-pola dengan
model yang sama, lalu dipergunakan sebagai bahan pertimbangan untuk memilih
pola model sistem yaitu dengan menentukan batas cacah terkecil keseringan
muncul tersebut. Banyak pola model yang biasanya digunakan untuk
mengekstraksi suatu citra berkisar antara 40 sampai dengan 80 pola model,
dengan banyaknya pola dari 40 sampai dengan 100 buah pola. Kisaran ini
didasarkan pada pertimbangan waktu proses dan besarnya konstanta pemotongan
nilai eigen. Guna mendapatkan waktu proses yang minimum maka dipilih batas
terbawah dari kisaran tersebut yaitu empatpuluhan pola model. Konstanta
pemotongan nilai eigen yang relatif stabil didasarkan pada nilai-nilai eigen yang
telah terurut, menunjukkan kenyataan bahwa nilai eigen pada urutan lebih dari 10
bernilai sangat kecil bahkan mendekati nol. Kenyataan ini juga mendukung
pemilihan batas terbawah dari kisaran banyaknya pola model.
Melihat Tabel 3.1 di atas dan pertimbangan banyaknya pola model yang
digunakan yaitu sekitar 40, maka dipilih batas terkecil cacah keseringan muncul
yang dipakai adalah 20 kali sehingga dihasilkan pola-pola sebanyak 52 pola. Dari
52 pola ini dikelompokkan menjadi 42 pola model terpilih seperti terlihat pada
Gambar 3.3 dan setelah penomorannya disesuaikan maka diperoleh pola model
seperti terlihat pada Gambar 3.4. Pola-pola inilah yang dipergunakan sistem untuk
Gambar 3.3
Pola-pola terpilih sebanyak 52 pola
Gambar 3.4
Pola-pola terpilih sebanyak 52 pola yang penomorannya telah disesuaikan
3.3.
PERANCANGAN SISTEM
Perancangan sistem merupakan tahap untuk mentransformasikan berbagai
kebutuhan ke dalam bentuk data dan arsitektur program yang akan
diimplementasikan pada tahap pembuatan sistem nantinya. Perancangan tersebut
meliputi pembuatan struktur program, penjelasan dalam bentuk bagan alir proses,
serta perancangan struktur data.
3.3.1. DIAGRAM JACKSON SISTEM VERIFIKASI
Rancagan sistem verifikasi yang berupa struktur program, ditampilkan
dalam Diagram Jackson yang direpresentasikan dalam bentuk struktur diagram
dan struktur teks. Adapun struktur diagram sistem verifikasi ini adalah seperti
yang terlihat pada Gambar 3.5. Pada struktur diagram sistem verifikasi tersebut
terlihat gambaran sistem secara lebih rinci, pendefinisian kebutuhan menu-menu
pokok dan modul-modul program yang nantinya diperlukan oleh sistem verifikasi,
baik modul-modul yang dijalankan secara iterasi ataupun yang bersifat pilihan.
Sistem verifikasi dibagi menjadi dua modul utama yaitu modul
PERSIAPAN LINGKUNGAN SISTEM dan modul SISTEM UTAMA. Hal
terpenting yang perlu diperhatikan adalah persiapan lingkungan sistem berupa
memasukkan pola model ke file dan setting konstanta mutlak harus ada pada saat
sistem untuk pertama kali dijalankan sebelum melakukan pemrosesan terhadap
yang lainnya, sedangkan untuk yang kedua kali atau seterusnya file pola model
Gambar 3.5
Struktur Diagram Jackson sistem verifikasi
Struktur Diagram Jackson sistem verifikasi pada Gambar 3.5 selanjutnya
ditulis dalam bentuk struktur teks sebagai berikut :
SISTEM_VERIFIKASI seq
PERSIAPAN_LINGKUNGAN_SISTEM
PERSIAPAN_LINGKUNGAN_SISTEM sel
(MASUKAN_POLA_MODEL_KE_FILE) MASUKAN_POLA_MODEL_KE_FILE;
PERSIAPAN_LINGKUNGAN_SISTEM alt (SETTING_KONSTANTA)
SETTING_KONSTANTA;
PERSIAPAN_LINGKUNGAN_SISTEM end;
SISTEM_UTAMA itr while (UBAH_LINGKUNGAN_SISTEM or PEMBUATAN_DATA_ACUAN or VERIFIKASI) SISTEM_UTAMA sel (UBAH_LINGKUNGAN_SISTEM)
UBAH_LINGKUNGAN_SISTEM UBAH_LINGKUNGAN_SISTEM sel
(MASUKAN_POLA_MODEL_KE_FILE) MASUKAN_POLA_MODEL_KE_FILE;
UBAH_LINGKUNGAN_SISTEM alt (SETTING_KONSTANTA) SETTING_KONSTANTA;
UBAH_LINGKUNGAN_SISTEM end;
SISTEM_UTAMA sel (PEMBUATAN_DATA_ACUAN)
PEMBUATAN_DATA_ACUAN c_pendaftar 1;
PROSES_PEMBUATAN_DATA_ACUAN itr while (c_pendaftar banyak_pendaftar)
MASUKAN_IDENTITAS_PENGGUNA; c_acuan 1;
CARI_FREKUENSI_ACUAN itr while (c_acuan banyak_acuan)
BACA_CITRA_TANDATANGAN;
EKSTRAKSI_CIRI;
c_banding 1;
CARI_NILAI_AMBANG itr while (c_banding banyak_banding)
BACA_CITRA_TANDATANGAN; EKSTRAKSI_CIRI;
PEMBANDINGAN; CARI_NILAI_AMBANG end:
CARI_MEDIAN_NILAI_AMBANG; TULIS_KE_FILE_ACUAN;
PROSES_PEMBUATAN_DATA_ACUAN end; PEMBUATAN_DATA_ACUAN end;
SISTEM_UTAMA alt (VERIFIKASI)
VERIFIKASI seq
AKTIFKAN_PENGGUNA;
PROSES_VERIFIKASI itr while (banyak_uji_coba)
BACA_CITRA_TANDATANGAN; EKSTRAKSI_CIRI;
PEMBANDINGAN;
PENGAMBILAN_KEPUTUSAN;
PROSES_VERIFIKASI end; BUAT_LAPORAN;
VERIFIKASI end; SISTEM_UTAMA end;
SISTEM_VERIFIKASI end.
Variabel pembantu dalam struktur teks di atas (c_pendaftar,c_acuan dan
c_banding) serta konstanta pembantu (banyak_pendaftar, banyak_acuan dan
banyak_banding) digunakan untuk menentukan berapa kali pengulangan proses
(iterasi) pada masing-masing modul, yang pada struktur diagram belum terlihat
secara jelas. Banyak_pendaftar adalah banyak partisipan yang akan didaftar,
banyak_acuan adalah banyak tandatangan acuan, banyak_banding adalah banyak
3.3.2. BAGAN ALIR PROSES
Diagram Jackson (berupa struktur diagram dan struktur teks) di atas yang
dibuat belum menjelaskan alur yang terjadi pada masing-masing modul proses
secara rinci. Untuk memperjelas proses-proses yang dilakukan, terutama pada
proses verifikasi dan tahap pendaftaran maka dibuat bagan alir (flowchart) dari
tahapan tersebut. Langkah-langkah yang dilakukan sehingga bisa menghasilkan
suatu keputusan yaitu berupa “ASLI” atau “PALSU”nya tandatangan uji, yang
mencakup tahap ekstraksi ciri, tahap pembandingan dan tahap pengambilan
keputusan terlihat pada Gambar 3.6 mengenai bagan alir proses verifikasi. Bagan
alir ini sebagai perincian dari langkah-langkah dan perhitungan yang terjadi pada
modul VERIFIKASI dalam Diagram Jackson. Sedangkan bagan alir yang
merupakan perincian dari langkah-langkah serta perhitungan pada modul
PEMBUATAN_DATA_ACUAN diperlihatkan dalam Gambar 3.7 mengenai
bagan alir tahap pendaftaran.
Proses pembandingan baik yang ada pada modul VERIFIKASI maupun
pada tahap pendaftaran (modul PEMBUATAN_DATA_ACUAN) adalah bagian
yang paling banyak memerlukan proses perhitungan (persamaannya ada pada Sub
Bab 2.2.4.5). Perhitungan-perhitungan yang dilakukan diantaranya perhitungan
untuk mendapatkan frekuensi kemunculan rata-rata (mean frequency), varians,
nilai eigen, vektor eigen dan perhitungan nilai ketidaksamaan, sehingga tahap
pembandingan dapat menghasilkan laporan tentang nilai ketidaksamaan yang
Gambar 3.6
Bagan alir proses verifikasi
Ya
Tidak Ya
Tidak
Ya
Start
Aktifkan data acuan Pid
Hitung varians (V )
Hitung nilai eigen (), vektor eigen (l) serta urutannya secaramenurun
Aktifkan citra tandatangan uji Q
Ekstraksi ciri citra tandatangan uji Q
Hitung ketidaksamaan D(Pid,Q)
Uji lagi ?
Stop
D(Pid,Q)
Ccid x Cd
Hasil uji Q
“PALSU”
Hasil uji Q
“ASLI”
Aktifkan data acuan dengan
Idbaru ? Laporan
- daftarhasil
- daftar D(Pid,Q) - waktu proses
Tidak
Tidak Ya
Masukkan Nomor Id
Id sudah terdaftar ?
Gambar 3.7
Bagan alir tahap pendaftaran
Tidak
nilaiambang (Ccid)
Tulis Pid
ke file basis data
3.3.3. STRUKTUR DATA
Melihat rancangan sistem yang ada maka selanjutnya disiapkan struktur
data dari rancangan sistem verifikasi yang nantinya akan dipergunakan pada saat
implementasi ke dalam bentuk program berbasis Borland Delphi. Adapun struktur
data utama dari program sistem verifikasi ini adalah sebagai berikut :
TModelPattern = record
Nomor : byte; //nomor pola Model : byte; //nomor model
Pattern : array[0..4,0..4] of byte; //pola model 5x5
end;
TArrModelPattern = array [1..DimVector] of TModelPattern;
Struktur “TModelPattern” dipakai sebagai struktur record dari file
pola model dan disimpan dalam struktur array “TArrModelPattern”.
Besarnya array yang dialokasikan untuk struktur “TArrModelPattern“
adalah sebanyak jumlah maksimum pola model yang ada, dalam hal ini
diwakili oleh konstanta “DimVector”.
TPersonSign = record
IdNumber : word; Name : string[35];
Freq :array[1.. DimVector,1..6] of word; RefFileName : string[70];
ADis : array[1..3] of real; Critical : real;
end;
Person : TPersonSign;
FileReference : file of TpersonSign;
Struktur “TPersonSign” dipakai sebagai struktur record dari variabel
“Person“ yang berisi data-data masing-masing partisipan, selanjutnya nanti
acuan. Struktur “TPersonSign” ini berisi nomor identitas, nama partisipan,
frekuensi kemunculan pola model dari 6 tandatangan acuan, nama file beserta
directory dari lokasi penyimpan file citra acuan, nilai ketidaksamaan yang
dihasilkan dari 3 tandatangan pembanding yang dipakai untuk mencari nilai
ambang, serta nilai ambang terpilih yang dicari dari median ketiga nilai
ketidaksamaan tandatangan partisipan tersebut.
TPosGambar = record
AwalX, AkhirX, AwalY, AkhirY : integer; end;
Struktur “TPosGambar” merupakan struktur variabel dari posisi koordinat
pojok masing-masing citra tandatangan.
Struktur data pendukung yang diperlukan dalam proses-proses perhitungan
maupun penyimpanan data adalah sebagai berikut:
TFrequency = array[1.. DimVector] of word;
Struktur “TFrequency” merupakan struktur variabel penyimpan frekuensi
kemunculan masing-masing pola model dari hasil ekstraksi ciri tandatangan.
TMeanFrequency = array[1.. DimVector] of real;
Struktur “TMeanFrequency” merupakan struktur variabel penyimpan nilai
rata-rata kemunculan setiap pola model dari ekstraksi ciri beberapa
tandatangan acuan.
TFreqMinMean = array[1.. DimVector,1..Number] of real;
Struktur “TFreqMinMean” merupakan struktur variabel penyimpan nilai
acuan yang telah dikurangi dengan frekuensi rata-rata yang bersesuaian, juga
merupakan struktur dari variabel yang menyimpan perhitungan nilai eigen.
TVariance = array[1.. DimVector,1.. DimVector] of real;
Struktur “TVariance” merupakan struktur dari variabel penyimpan hasil
perhitungan varians dan vektor eigen.
TGambar = array[1..SignHeigh,1..SignWidth] of byte;
Struktur “TGambar” merupakan struktur variabel penyimpan nilai pola biner
dari setiap piksel citra tandatangan, yang dalam hal ini bernilai 0 untuk piksel
berwarna putih dan bernilai 1 untuk piksel berwarna hitam. Konstanta
“SignHeigh” dan “SignWidth” adalah ukuran ruang pembatas penulisan
tandatangan, yang dalam hal ini nilai konstanta tersebut masing-masingnya
adalah 85 piksel dan 165 piksel.
TSort = array[1.. DimVector] of byte;
Struktur “TSort” merupakan struktur variabel penyimpan hasil pengurutan
dari frekuensi kemunculan pola model.
3.4.
PEMBUATAN SISTEM
Pembuatan sistem merupakan tahap pengembangan dan implementasi dari
rancangan sistem yang telah dibuat sebelumnya menjadi suatu sistem verifikasi
dalam bentuk program komputer. Tahapan ini meliputi penentuan kebutuhan
sistem dan pemrograman yang di dalamnya termasuk juga form-form tampilan
3.4.1. KEBUTUHAN SISTEM
Pembuatan sistem verifikasi yang intinya pengembangan rancangan sistem
sebelumnya melalui pemrograman komputer, memerlukan perangkat-perangkat
pendukung berupa perangkat keras (hardware) dan perangkat lunak (software)
yang dibutuhkan agar sistem dapat bekerja dengan baik. Kebutuhan-kebutuhan
tersebut dijelaskan sebagai berikut.
3.4.1.1. Kebutuhan Perangkat Keras
Perangkat keras yang digunakan sebagai peralatan masukan adalah
scanner HP ScanJet II cx. Scanner ini adalah scanner berwarna, akan tetapi pada
saat pengambilan gambar, konfigurasinya ditentukan agar mengambil gambar
hitam-putih kualitas photo, dan resolusinya 100 dpi. Sebelum dilakukan proses
masukan ini juga diperlukan peralatan pada saat pengumpulan sampel tandatangan
yaitu berupa formulir di atas kertas HVS warna putih yang telah digaris sesuai
dengan batasan ruang penulisan tandatangan yang diijinkan yakni 2 x 4 cm, serta
pena bertinta hitam 0,2 mm sebagai alat tulisnya. Spesifikasi komputer yang
digunakan untuk mengembangkan maupun pengujian sistem verifikasi ini adalah
prosesor Intel Celeron 2400 di atas motherboard ASUS P4VP, dengan memori
DDRAM 256 MB dan kapasitas harddisk 30 GB.
3.4.1.2. Kebutuhan Perangkat Lunak
Sistem verifikasi ini dikembangkan dalam lingkungan sistem operasi
Microsoft Windows Xp. Pemilihan sistem operasi tersebut didasarkan atas
diimplementasikan dalam modus grafik. Dan Microsoft Windows Xp merupakan
suatu sistem operasi berbasis grafik yang banyak menjadi pilihan saat ini. Dalam
lingkungan Windows, pembuatan antar muka grafis dapat dilakukan dengan lebih
mudah. Di samping itu Windows Xp juga merupakan persyaratan dari bahasa
pemrograman yang dipakai untuk mengimplementasikan rancangan dari sistem
verifikasi tandatangan ini, yaitu Borland Delphi 7.0.
Perangkat lunak lain yang diperlukan adalah program paket pengolahan
citra, dan dipergunakan pada tahapan prapemrosesan. Dalam pengerjaan
penelitian ini perangkat lunak paket pengolahan citra yang dipergunakan adalah
Paint Shop Pro 6.0.
3.4.2. PEMROGRAMAN
Aspek pemrograman yang dibuat dalam sistem verifikasi tandatangan ini
meliputi implementasi struktur program yang telah dirancang ke dalam kode-kode
bahasa pemrograman. Implementasi pemrogramannya menggunakan perangkat
lunak Borland Delphi 7.0, yaitu perangkat lunak pemrograman visual yang
dijalankan di bawah sistem operasi Windows, dengan bahasa pemrograman
berbasis Pascal.
3.4.2.1. Konstanta dan Variabel Global
Konstanta-konstanta beserta nilainya yang digunakan pada keseluruhan
program dari sistem verifikasi ini adalah sebagai berikut :
DimVector42 = 42;//banyak pola model dari ttn Indonesia
JumModel42 = 52;//banyak keseluruhan pola ttn Indonesia
JumModel67 = 77;//banyak keseluruhan pola ttn Jepang
Number = 6;//banyak tandatangan acuan
DefaultQi = 6;//default pemotongan nilai eigen
DefaultReferName = 'Rfr426.Dat';//nama file data acuan
PatternName67 = 'Model67.Dat';//nama file pola Jepang
PatternName42 = 'Model42.Dat';//nama file pola Indonesia
DefaultCd = 2.5;//default pengali nilai kritis
SignWidth = 165;//lebar citra tandatangan dalam piksel
SignHeigh = 85;//tinggi citra tandatangan dalam piksel
Variabel global merupakan variabel yang dideklarasikan di luar semua
fungsi dan prosedur yang ada, sehingga ia dapat diakses (dibaca, ditulisi atau
diubah) oleh fungsi dan prosedur apapun yang ada dalam program itu. Adapun
variabel-variabel global yang dipakai dalam sistem verifikasi ini adalah :
FileReference : file of TPersonSign;
Person : TPersonSign;
ArrModelPattern : TArrModelPattern;
Cd : real; //konstanta pengali nilai kritis
Qi : integer; //konstanta pemotongan nilai eigen
FReferName, FpatternName, DefDirectory : string;
FilePattern : file of TModelPattern;
CountPattern, CounterList, PrevCounterList, Error: byte;
PosGambar : array[1..9] of TPosGambar;
awalX,awalY,akhirX,akhirY : integer;
EnrollLoad, Berubah : boolean;
PrMeanFreq, PrEigenValue: TMeanFrequency;
PrVariance,PrEigenVector : TVariance;
PrSort : TSort;
JumPattern : byte; //banyaknya keseluruhan pola
3.4.2.2. Form Utama
Window Form adalah tempat di mana semua komponen visual dan
komponen non visual diletakkan untuk membentuk sebuah aplikasi. Bagian yang
tak terpisahkan dari form adalah unit yang berhubungan langsung dengan form tersebut. Dalam unit berisi deklarasi tipe data, fungsi dan prosedur. Rancangan
form utama dari sistem verifikasi ini diberi nama FUtama.frm adalah seperti
terlihat pada Gambar 3.8 dengan unit bernama Sign1.pas. Dalam form utama
ini berisi menu dalam bentuk tombol-tombol (push button menu) yang diperlukan
oleh pengguna dalam menjalankan sistem verifikasi serta memanggil form-form
lainnya, juga sebagai tempat berlangsungnya sebagian besar proses.
Gambar 3.8
Tampilan Form Utama sistem verifikasi
1a Grup 1
1b 1c
Grup 2 2a
2b
2c
4a
2e Grup 4 Grup 3
Grup 5
2d
3a
3b
3c
Selanjutnya diuraikan mengenai keterangan masing-masing nomor dan
tombol-tombol pada tampilan Gambar 3.8 beserta beberapa baris penting dari
fungsi atau prosedur pendukungnya.
Grup 1 Current Person
Grup 1 merupakan panel yang digunakan untuk tempat mengaktifkan data
seorang partisipan dari file basisdata acuan, juga untuk menampilkan citra
tandatangan serta menghapus data partisipan yang sedang aktif.
Nomor 1a adalah tempat menampilkan nomor identitas partisipan aktif.
Nomor 1b adalah tempat menampilkan nama partisipan aktif.
Nomor 1c adalah tempat menampilkan nilai ambang (Ccid x Cd) tandatangan
partisipan aktif.
Tombol Delete adalah untuk menghapus data partisipan yang sedang aktif
dari file basisdata acuan.
Tombol Load adalah untuk mengatifkan data seorang partisipan baru dari
file basis data acuan. Adapun program yang dijalankan adalah :
procedure TFUtama.SBLoadClick(Sender: TObject);
var
IDNumber : word;
InputString,S : string; Code : integer;
See, See1 : boolean; Sementara : TPersonSign;
begin
InputString := InputBox('Input', 'Input ID Number (Max 4 digits) !', '');
Val(InputString, IDNumber, Code); Sementara := Person;
if (Code <> 0) or (length(InputString) > 4) then
begin
ShowMessage('Wrong ID Number, try again!'); end else
begin
AssignFile(FileReference,FReferName); {$I-}
Reset(FileReference); {$I+}
if IOResult <> 0 then
begin
ShowMessage('Database Reference File Not Exist'); See1 := false; EigenSort(PrVariance, PrEigenVector, PrEigenValue,
PrSort);
Dalam program terlihat bahwa setelah partisipan dengan nomor identitas yang
dimasukkan ditemukan dalam file basis data acuan, maka nilai varians, nilai
eigen, vektor eigen dan frekuensi kemunculan rata-rata langsung dihitung, hal
ini bertujuan agar tidak terjadi pengulangan proses jika ingin melakukan
Tombol Show Image digunakan memanggil form FEnrollGroup.frm
yang merupakan tempat menampilkan citra tandatangan acuan dan
tandatangan pembanding partisipan aktif.
Grup 2
Grup 2 merupakan panel yang digunakan untuk melakukan proses
verifikasi sebuah tandatangan uji serta menampilkan hasilnya, juga menampilkan
citra tandatangan yang sedang aktif.
Nomor 2a adalah panel yang digunakan untuk menampilkan nama file citra tandatangan aktif.
Nomor 2b adalah tempat menampilkan citra tandatangan aktif.
Nomor 2c adalah tempat menampilkan hasil verifikasi, yaitu “GENUINE”
untuk hasil verifikasi tandatangan yang “diterima” sedangkan “FALSE”
untuk hasil verifikasi tandatangan yang “ditolak”
Nomor 2d adalah tempat untuk menampilkan nilai beda dari hasil verifikasi.
Nomor 2e adalah tempat menampilkan waktu proses.
Tombol Verify digunakan untuk menjalankan proses verifikasi terhadap
tandatangan aktif. Adapun program yang dijalankan adalah :
procedure TFUtama.SBVerifyClick(Sender: TObject);
var Beda : real; S : string;
begin
Beda := Verify; Str(Beda,S);
ST_Dissimilarity.Caption := S;
if Beda <= Cd * Person.Critical then ST_Status.Caption := 'GENUINE' else ST_Status.Caption := 'FALSE';
Grup 3
Grup 3 adalah panel untuk tempat memilih tandatangan yang akan
diverifikasi , baik nama file, filter, drive, maupun directory citra tandatangan.
Nomor 3a adalah filter combo box, yang digunakan untuk menyaring file-file yang ditampilkan yaitu file-file-file-file citra yang penamaannya disesuaikan
khusus untuk citra tandatangan pada penelitian ini, filter tersebut adalah :
All Image Signature, adalah filter dari semua nama file citra tandatangan.
Skilled Forger (pt*.bmp), adalah filter khusus untuk nama file citra tandatangan dari pemalsu terlatih.
Simple Forger (ps*.bmp), adalah filter khusus untuk nama file citra tandatangan dari pemalsu sederhana.
Genuine(uj*.bmp), adalah filter khusus untuk nama file citra tandatangan uji yang asli dari partisipan.
Reference(rf*.bmp), adalah filter khusus untuk nama file citra tandatangan referensi (acuan dan pembanding).
All Bitmap File (*.bmp), adalah filter untuk semua nama file citra bitmap.
Nomor 3b adalah file list box yang digunakan untuk tempat menampilkan nama-nama file citra yang telah disaring menurut filter yang telah dipilih,
dari nama-nama file ini dipilih tandatangan mana saja yang akan diverifikasi.
Nomor 3c adalah drive combo box yang digunakan untuk memilih drive.
Nomor 3d adalah directory list box yang digunakan sebagai tempat untuk memilih direktori.
Grup 4 List of Selected Files
Grup 4 adalah panel untuk tempat menampilkan daftar tandatangan yang
telah dipilih dan akan diverifikasi, beserta tombol-tombol untuk mengurangi
pilihan dan melihat hasil verifikasi.
Nomor 4a adalah obyek list box, yang digunakan untuk menampung
nama-nama file citra tandatangan terpilih yang akan diverifikasi.
Tombol Verify List digunakan untuk menjalankan proses verifikasi
terhadap file-file citra tandatangan yang ada dalam daftar dan selanjutnya
menampilkan hasilnya dalam form FRptGroup.frm. Adapun program yang
dijalankan adalah sebagai berikut :
procedure TFUtama.SBVerifyListClick(Sender: TObject);
var i,j : byte;
S, SJam : string; Beda : real;
WaktuMulai, WaktuSelesai : TDateTime;
JamMulai, JamSelesai, Menit, Detik, MDetik : word; MDetikMulai, MDetikSelesai, TotalWaktu : double;
begin
FGauge.Gauge1.Progress := 0; FGauge.Gauge2.Progress := 0;
FGauge.Label4.Caption := IntToStr(CounterList); FGauge.Show;
FGauge.Refresh;
for i := 0 to PrevCounterList-1 do
for j := 0 to 3 do
FRptGroup.StringGrid1.Cells[j,i] := '';
WaktuMulai := Time;
for i := 1 to CounterList do
begin
Image1.Picture.LoadFromFile(ListBox2.Items[i-1]); Beda := Verify;
FRptGroup.StringGrid1.Cells[0,i-1] := IntToStr(i);
FRptGroup.StringGrid1.Cells[1,i-1] := ListBox1.Items[i-1]; Str(Beda,S);
FRptGroup.StringGrid1.Cells[2,i-1] := S; if Beda <= Cd * Person.Critical then
WaktuSelesai := Time; FGauge.Close;
PrevCounterList := CounterList;
//Hitung waktu proses
DecodeTime(WaktuMulai,JamMulai,Menit,Detik,MDetik);
MDetikMulai := ((JamMulai*60+ Menit)*60+Detik)*1000 + MDetik; DecodeTime(WaktuSelesai,JamSelesai,Menit,Detik,MDetik);
if JamSelesai >= JamMulai then
MDetikSelesai := ((JamSelesai * 60 + Menit)*60 + Detik)*1000 + MDetik else //antisipasi melewati jam 12
MDetikSelesai :=(((JamSelesai+12)*60+Menit)*60 + Detik)*1000+MDetik;
TotalWaktu := MDetikSelesai - MDetikMulai;
FRptGroup.STVer.Caption := ' ' + IntToStr(CounterList); FRptGroup.STTime.Caption := ' ' + FloatToStr(TotalWaktu)
+ ' Milli Second'; SBResult.Enabled := True;
FRptGroup.Position := poScreenCenter; FRptGroup.ShowModal;
end;
Tombol New List digunakan untuk mengosongkan daftar nama file yang
ada pada obyek list boxnomor 4a.
Tombol Unselect digunakan untuk membuang nama file citra tandatangan
yang ditunjuk pada obyek list box nomor 4a.
Tombol Result digunakan untuk melihat kembali daftar hasil verifikasi
yang telah dilakukan sebelumnya dengan memanggil form FRptGroup.frm.
Grup 5
Grup 5 merupakan panel tempat tombol-tombol perintah umum yang
digunakan dalam sistem verifikasi ini. Adapun tombol-tombolnya adalah :
Tombol About digunakan untuk memanggil form FSignAbout.frm yang
berisi informasi tentang sistem verifikasi.
Tombol Setting digunakan untuk memanggil form FSetEnv.frm yang berisi
Tombol Enrollment digunakan untuk memanggil form FEnrollGroup.frm
yang merupakan tempat pendaftaran partisipan baru.
Tombol Browse digunakan untuk memanggil form FBrowse.frm yang
berisi nama-nama partisipan yang telah terdaftar pada basisdata acuan.
Tombol New Model digunakan untuk memasukkan pola model baru ke file
referensi melalui pemanggilan form FModel.frm.
Tombol Show Model digunakan untuk menampilkan pola model referensi
yang telah ada melalui pemanggilan form FModel.frm.
Tombol Exit digunakan untuk keluar dari sistem verifikasi.
Selain fungsi dan prosedur yang telah dipaparkan di atas, juga ada
beberapa fungsi dan prosedur penting lainnya dalam unit Sign1.pas ini. Fungsi
dan prosedur tersebut diantaranya :
Rutin untuk menghitung nilai eigen serta vektor eigen
procedure ROTATE(s, tau : real; var ATemp : TVariance; i,j,k,l : integer);
var g, h : real;
begin
g := ATemp[i,j]; h := ATemp[k,l];
ATemp[i,j] := g-s*(h+g*tau); ATemp[k,l] := h+s*(g-h*tau);
end;
procedure Jakobi(A :TVariance;var V : TVariance;
var D:TMeanFrequency);
var B,Z : array[1..DimVector67] of real; ip,iq, i, j : integer;
sm,tresh,theta,t,c,s,tau,g,h : double;
begin
for ip := 1 to DimVector do
begin
B[ip] := A[ip,ip];
ShowMessage('error : terlalu banyak iterasi');
procedure Eigensort(A : TVariance; var V : TVariance;
Prosedur untuk menghitung frekuensi kemunculan pola model procedure CountFrequency(var Freq:TFrequency;
Gambar : TGambar);
var i,j,x,y : integer; CountPattern : byte; cocok : boolean;
awalX_L, awalY_L,akhirX_L, akhirY_L : byte;
begin
for x := (awalX_L-4) to (akhirX_L - 4) do
FGauge.Gauge1.Progress := CountPattern; end;
end;
Rutin untuk menghitung matriks varians
function CountMeanFrequency(sampel: TPersonSign) : TmeanFrequency; CountMeanFrequency[i] := bantu / number; end;
end;
function CountFreqMinMean(Mean : TMeanFrequency; Pr : TPersonSign) : TFreqMinMean;
function CountVariance(Mean : TMeanFrequency;
Pr : TpersonSign): TVariance;
var Bantu : TVariance; i,j,k : integer; temp : real;
vector : TFreqMinMean;
begin
Vector := CountFreqMinMean(Mean,Pr); for i := 1 to DimVector do
CountVariance := Bantu;
end;
Rutin untuk menghitung nilai ketidaksamaan
function CountZ1(L : TVariance; k : integer; X : TFrequency; Urut : TSort) : real;
bantu := bantu + L[i,Urut[k]]*X[Urut[i]]; CountZ1 := bantu;
end;
function CountZ2(L : TVariance; k : integer;
X : TMeanFrequency; Urut : TSort) : real;
var bantu : real; i : integer;
begin
bantu := 0;
for i := 1 to DimVector do
bantu := bantu + L[i,Urut[k]]*X[Urut[i]]; CountZ2 := bantu;
end;
function CountDissimilarity (L : TVariance; Lamda, XMean : TMeanFrequency; X : TFrequency; Urut : TSort) : real;
else begin
if error <> 2 then Error := 1; exit;
end; end; dis2 := 0;
for k := qi+1 to DimVector do
dis2 := dis2 +
(SQR(CountZ1(L,k,X,Urut)-countZ2(L,k,XMean,Urut))/Lamda[Urut[qi]]); CountDissimilarity := dis1 + dis2;
end;
Rutin verifikasi
function BacaGambar (CodePanggil : boolean) : TGambar;
var i,j : byte;
Gambar : TGambar;
begin
for i := 1 to SignHeigh do
for j := 1 to SignWidth do
Gambar[i,j] := 0;
for i := 0 to SignHeigh-1 do
for j := 0 to SignWidth-1 do
begin
if FUtama.Image1.Canvas.Pixels[j,i] = clWhite then
Gambar[i+1,j+1] := 0 else Gambar[i+1,j+1] := 1; end;
BacaGambar := Gambar;
end;
function Verify : real;
var FreqCounterSign : TFrequency; Gambar : TGambar;
begin
Gambar := BacaGambar(True);
CountFrequency(FreqCounterSign,Gambar); Verify := CountDissimilarity(PrEigenVector,
PrEigenValue,PrMeanFreq,FreqCounterSign,PrSort);
end;
3.4.2.3. Form Pendaftaran
Form pendaftaran diberi nama FEnrollGroup.frm (terlihat pada
Gambar 3.9) dengan unit programnya bernama UEnrollGroup.pas. Form ini
dimasukkan ke dalam file basisdata acuan. Dalam sekali pemanggilannya bisa
digunakan untuk mendaftarkan lebih dari seorang partisipan baru. Selain itu form
ini juga digunakan untuk menampilkan citra tandatangan partisipan aktif jika
dipanggil dari tombol Show Image pada panel Grup 1 di form utama, akan
tetapi judulnya diganti menjadi “REFERENCE IMAGE OF CURRENT PERSON”
dan beberapa komponennya disembunyikan, seperti tombol proses dan tempat
untuk menampilkan waktu proses. Setelah form ini ditutup, maka
komponen-komponen yang disembunyikan tadi diperlihatkan kembali untuk difungsikan
nanti pada saat dipanggil lagi sebagai form pendaftaran.
Gambar 3.9
Tampilan Form Pendaftaran
1 2
3 4 5
Nomor 1 adalah tempat untuk menampilkan nomor identitas partisipan pada saat form difungsikan sebagai tampilan citra tandatangan partisipan aktif,
sedangkan saat sebagai form pendaftaran nomor 1 ini adalah tempat untuk
memasukkan nomor identitas partisipan baru yang akan didaftarkan.
Nomor 2 adalah tempat memasukkan atau menampilkan nama partisipan.
Nomor 3 adalah tempat untuk menampilkan waktu proses.
Nomor 4 merupakan obyek open dialog picture, yang dipakai pada saat
membuka file citra tandatangan acuan.
Nomor 5 adalah tempat menampilkan citra tandatangan acuan dari partisipan
baru. Dalam sebuah file bitmap ini berisi 9 buah tandatangan yaitu yang pada
posisi R1, R2, R3, R4, R5 dan R6 adalah tandatangan acuan, sedangkan pada
posisi C1, C2 dan C3 adalah tandatangan pembanding.
Nomor 6 adalah tempat menampilkan nilai beda antara tandatangan acuan
dengan tandatangan pembanding C1.
Nomor 7 adalah tempat menampilkan nilai beda antara tandatangan acuan
dengan tandatangan pembanding C2.
Nomor 8 adalah tempat menampilkan nilai beda antara tandatangan acuan
dengan tandatangan pembanding C3.
Tombol Open yang memanfaatkan fasilitas open picture dialog digunakan
untuk memilih file citra tandatangan acuan dari partisipan baru yang nomor
identitas dan namanya sudah dimasukkan sebelumnya. Setelah file citranya
dipilih, lalu ditampilkan pada lokasi yang telah tersedia (nomor 5).
Tombol Process digunakan untuk menjalankan program yang melakukan
proses pendaftaran partisipan baru. Nilai-nilai yang dihasilkan selain
ditampilkan di layar juga disimpan selengkapnya pada file basisdata acuan.
Adapun program yang dijalankan adalah sebagai berikut :
procedure TFEnrollGroup.BBProcessClick(Sender: TObject);
var Mi,Ms : byte;
i,j, Code : integer; TempPerson : TPersonSign; Freq : TFrequency;
EGMeanFreq, EGEigenValue: TMeanFrequency; TempFreq :array[1..DimVector67,1..3] of real; EGVariance,EGEigenVector : TVariance;
EGSort : TSort;
Temp : array[1..3] of real; S : string;
Dissimilarity, Selisih, selisih2, bantu : real; Gambar : TGambar;
WaktuMulai, WaktuSelesai : TDateTime;
IDNumber,JamMulai, JamSelesai, Menit, Detik, MDetik : word; MDetikMulai, MDetikSelesai, TotalWaktu : double;
begin
BBProcess.Enabled := False; Error := 0;
FGauge.Show;
FGauge.Label4.Caption := '9'; FGauge.Refresh;
FGauge.Gauge1.Progress := 0; FGauge.Gauge2.Progress := 0; WaktuMulai := Time;
Val(EdIDNumber.Text,IDNumber,Code); TempPerson.IDNumber := IDNumber; TempPerson.Name := EdName.Text;
CountFrequency(Freq, Gambar); for i := 1 to DimVector do
TempPerson.freq[i,Mi] := Freq[i]; FGauge.Gauge2.Progress := 10*Mi; end;
EGMeanFreq := CountMeanFrequency(TempPerson);
EGVariance := CountVariance(EGMeanFreq, TempPerson);
EigenSort(EGVariance, EGEigenVector, EGEigenValue, EGSort); FGauge.Gauge2.Progress := 70;
for Ms := 1 to 3 do
begin
AwalX := PosGambar[Ms+Number].AwalX; AkhirX := PosGambar[Ms+Number].AkhirX; AwalY := PosGambar[Ms+Number].AwalY; AkhirY := PosGambar[Ms+Number].AkhirY; for i := 1 to SignHeigh do
CountFrequency(Freq, Gambar);
Dissimilarity := CountDissimilarity(EGEigenVector, EGEigenValue,EGMeanFreq,Freq,EGSort);
if Error = 1 then
ShowMessage('Divided by zero, next or be smaller Qi !')
else begin
WaktuSelesai := Time; FGauge.Close;
//Hitung waktu proses
DecodeTime(WaktuMulai,JamMulai,Menit,Detik,MDetik);
MDetikMulai := ((JamMulai*60+Menit)*60+Detik)*1000 + MDetik; DecodeTime(WaktuSelesai,JamSelesai,Menit,Detik,MDetik); if JamSelesai >= JamMulai then MDetikSelesai :=
((JamSelesai*60 + Menit)*60 + Detik)*1000 + MDetik else //antisipasi melewati jam 12
MDetikSelesai := (((JamSelesai+12)*60 + Menit)*60 + Detik)*1000 + MDetik;
TotalWaktu := MDetikSelesai - MDetikMulai;
STTime.Caption := FloatToStr(TotalWaktu) + ' MSecond'; EdIDNumber.SetFocus;
end;
3.4.2.4. Form-Form Pendukung
Form-form pendukung sistem adalah form-form tambahan yang digunakan
oleh sistem verifikasi untuk menampilkan informasi atau mengerjakan
bagian-bagian yang tidak bisa dikerjakan pada form utama karena keterbatasan tempat.
Adapun form-form tersebut adalah sebagai berikut :
Gambar 3.10
Form Daftar Partisipan
Form daftar partisipan dinamakan FBrowse.frm seperti yang terlihat pada
Gambar 3.10 dengan unit UBrowse.pas digunakan sebagai tempat untuk
menampilkan data partisipan yang telah terdaftar pada file basisdata acuan.
Data-data tersebut diantaranya nomor identitas partisipan, nama partisipan dan nilai
ambang tandatangan pembanding partisipan tersebut.
Form Lingkungan Sistem
Form lingkungan sistem dinamakan FSetEnv.frm seperti yang terlihat
pada Gambar 3.11 dengan unit USetEnv.pas digunakan sebagai tempat untuk
mengubah variabel-variabel lingkungan sistem, seperti memilih pola model yang
digunakan (memakai obyek radio button) , nomor pemotongan nilai eigen (Q)
dan koefisien pengali nilai kritis (Cd). Setelah dilakukan perubahan nilai salah
satu variabel, maka sistem akan secara otomatis mengaktifkan file-file yang sesuai
dengan variabel itu, baik file basisdata acuan maupun file pola model.
Gambar 3.11
Form Pola Model
Form pola model dinamakan FModel.frm seperti yang terlihat pada
Gambar 3.12 dengan unit UModel.pas digunakan sebagai tempat untuk
menampilkan pola model yang sedang aktif dan memasukkan pola model baru
yang akan digunakan dalam sistem verifikasi. Form pola model akan
menampilkan sebuah pola dalam tabel berukuran 5 x5 kotak beserta nomor urut
dan nomor modelnya. Form ini juga menyediakan fasilitas untuk menyimpan
pola model (melalui tombol Save), untuk melihat pola nomor urut sebelumnya
(menggunakan tombol Back), serta pola nomor urut sesudahnya (menggunakan
tombol Next).
Form Indikator Proses
Form indikator proses dinamakan FGauge.frm seperti yang terlihat pada
Gambar 3.13 dengan unit UTtdGauge.pas digunakan sebagai tempat indikator
proses verifikasi sedang berlangsung, baik verifikasi untuk sebuah tandatangan
maupun verifikasi tandatangan secara berkelompok. Indikator ini memanfaatkan
fasilitas obyek gauge.
Form Informasi Sistem
Form informasi sistem dinamakan FSignAbout.frm seperti yang terlihat
pada Gambar 3.14 dengan unit USignAbout.pas digunakan sebagai tempat
untuk menampilkan informasi tentang sistem verifikasi. Informasi ini berupa judul
sistem, Lambang Universitas Udayana, nama pengembang sistem, serta nama
Gambar 3.12
Tampilan Form Pola Model
Gambar 3.13
Gambar 3.14
DOKUMENTASI SISTEM
TAHAP PENGUJIAN DAN ANALISIS HASIL
Pada bab pengujian dan analisis hasil ini akan dibahas mengenai pengujian
sistem dan analisis dari hasil pengujian tersebut. Sebelum itu terlebih dahulu
dijelaskan faktor-faktor yang berpengaruh terhadap proses pengujian. Kemudian
dibahas mengenai hasil pengujian beserta analisis hasilnya. Selain itu juga
dilengkapi dengan analisis terhadap kompleksitas waktu eksekusi dan ruang
penyimpanan yang diperlukan oleh sistem verifikasi.
4.1.
PENGUJIAN
Tujuan pengujian sistem adalah untuk mengetahui sejauh mana efektifitas
dan unjuk kerja sistem yang dibuat. Dengan melakukan pengujian ini nantinya
dapat disimpulkan sejauh mana efektifitas metode yang ditawarkan mampu
menyelesaikan permasalahan yang ada.
Pengujian suatu sistem bukanlah suatu proses yang mudah dilakukan,
karena banyak hal yang mempengaruhi proses pengujian tersebut. Hasil pengujian
sistem tidak hanya ditentukan oleh kebenaran metode dan kebenaran dalam proses
pembuatan program, tetapi juga menyangkut masalah non teknis. Pada umumnya
justru masalah non teknis inilah yang sulit untuk ditanggulangi, karena
kemunculan dan terjadinya relatif sulit diketahui. Adapun beberapa hal yang
i. Faktor psikologis partisipan/pengguna.
Penulisan tandatangan dilakukan oleh otot-otot yang berhubungan
dengan gerak, yang diaktifkan oleh jaringan saraf dan dikontrol oleh
saraf pusat (model ballistic, Gambar 2.3). Oleh karena penulisan
tandatangan ini berhubungan dengan saraf manusia, maka keadaan
psikologis akan sangat mempengaruhi penulisan tandatangan,
terutama konsistensi penulisan tandatangan satu dengan lainnya oleh
orang yang sama. Jika sampel tandatangan satu dengan yang lainnya
berbeda terlalu jauh maka nilai ambang yang dihasilkan akan tinggi,
sehingga rata-rata kesalahan penerimaan menjadi tinggi.
ii. Jumlah sampel.
Untuk mendapatkan hasil pengujian yang benar, jumlah sampel
harus cukup banyak. Jika jumlah sampel sedikit, maka kesalahan
kecil yang dilakukan sistem membawa pengaruh yang besar terhadap
rata-rata kesalahan. Akan tetapi dengan jumlah sampel yang banyak
atau cukup memadai, rata-rata kesalahan menjadi relatif lebih stabil.
iii. Komposisi sampel.
Pada Sub Bab 2.2.5.3 telah dijelaskan tentang tiga tipe pemalsu.
Ketiga tipe pemalsu itu mewakili kemungkinan pemalsuan yang
terjadi pada kondisi praktis. Tetapi berapa jumlah masing-masing
tipe pemalsu untuk mendapatkan komposisi terbaik yang digunakan
dalam pengujian, merupakan masalah tersendiri. Komposisi sampel
4.1.1. PENENTUAN KONSTANTA
Efektifitas dan unjuk kerja metode verifikasi yang digunakan dipengaruhi
oleh nilai-nilai konstanta yang ditetapkan. Konstanta ini sebelum dipergunakan
oleh sistem secara permanen, harus dilakukan pengujian terlebih dahulu dengan
beberapa variasi yang disesuaikan dengan anjuran dari pustaka. Konstanta yang
mempengaruhi sistem verifikasi tandatangan dengan menggunakan Metode Pola
Busur Terlokalisasiada dua yakni :
i. Konstanta nomor pemotongan nilai eigen (q).
Pada perhitungan nilai ketidaksamaan (Persamaan 2.44) terdapat sebuah
konstanta yang nilainya ditentukan menurut hasil pengujian. Konstanta
ini adalah konstanta nomor pemotongan nilai eigen (q), yang mana
q adalah bilangan integer positif yang kurang dari dimensi vektor
kolom (p). Pada saat pembuatan basisdata acuan, nilai q yang dicoba
adalah mulai dari 4 sampai nantinya dihentikan pada nilai q yang
memberikan pesan kesalahan bahwa telah terjadi proses pembagian
dengan bilangan nol. Hal ini mengingat nilai eigen yang dihasilkan
dengan urutan menurun pada nomor urut besar cenderung menghasilkan
bilangan yang sangat kecil atau bahkan nol. Hal ini tentunya akan
menyebabkan kesalahan sistem akan besar. Dari hasil pengujian
terhadap variasi nilai q akan dipilih satu nilai yang mengakibatkan
sistem mengalami kesalahan terkecil, dan seterusnya dipergunakan
sebagai konstanta nomor pemotongan nilai eigen yang permanen dalam
ii. Konstanta pengali nilai ambang (Cd).
Konstanta Cd merupakan koefisien pengali dari median nilai
ketidaksamaan yang didapat pada saat verifikasi tiga tandatangan
pembanding dengan tandatangan acuan yang didaftar (C), untuk
menghasilkan nilai ambang atau nilai kritis (Cc). Pengujian terhadap Cd
dilakukan pada nilai 1,5; 2,0; 2,5 dan 3,0. Nilai ini dipakai agar nilai
ambang yang dihasilkan tidak terlalu jauh menyimpang dari nilai C
yang didapatkan. Jika Cd kurang dari 1,5 maka batas penerimaan akan
sangat sempit sehingga prosentase kesalahan tidak diterimanya
tandatangan asli akan besar. Sebaliknya jika Cd lebih besar dari 3,0
maka batas penerimaan akan terlalu lebar sehingga menyebabkan
kesalahan penerimaan terhadap tandatangan palsu atau yang sangat
tidak konsisten akan besar. Dari hasil pengujian sistem, nilai Cd yang
memberikan prosentase kesalahan terkecil akan ditetapkan seterusnya
sebagai konstanta pengali nilai ambang sistem verifikasi.
4.1.2. TAHAP PENGUJIAN
Tahap-tahap pengujian sistem dilakukan sebagai berikut :
i. Pengumpulan tandatangan acuan.
Setiap partisipan diminta menulis 9 buah tandatangannya pada kertas
formulir berwarna putih dan telah diberi pembatas ruang penulisan.
Pena yang digunakan berwarna hitam berukuran 0.2 mm. Tandatangan
ini nantinya akan digunakan sebagai acuan sebanyak 6 buah serta
ii. Pengumpulan tandatangan uji.
Partisipan yang telah menuliskan 9 buah tandatangannya sebagai
acuan, beberapa hari kemudian yaitu 5 sampai dengan 10 hari sekali
diminta kembali untuk menandatangani formulir tandatangan uji
masing-masing sebanyak 2 buah, sampai partisipan tersebut memiliki
tandatangan uji sebanyak 12 buah. Akan tetapi pada penelitian ini ada
satu orang partisipan yang hanya menuliskan tandatangan ujinya
sebanyak 10 buah dan seorang lainnya menuliskan tandatangan ujinya
sebanyak 14 buah. Pada saat partisipan memberi tandatangan uji ini,
partisipan tersebut tidak diperbolehkan melihat tandatangannya
semula yang telah dijadikan acuan.
iii. Pengumpulan tandatangan palsu.
Seorang partisipan pemalsu akan diminta sebagai pemalsu sederhana
dan pemalsu terlatih. Sebagai pemalsu sederhana, partisipan ini akan
diminta langsung meniru tandatangan acuan yang ada pada form
tandatangan palsu sebanyak dua kali penulisan tanpa belajar. Setelah
itu pada saat partisipan pemalsu ini sebagai pemalsu terlatih, dia
diminta belajar menirukan tandatangan acuan terlebih dahulu sampai
benar-benar siap untuk memalsukannya, baru kemudian
menandatangani sebanyak dua kali pada form tandatangan pemalsu
terlatih (disatukan dengan form tandatangan acuan). Setiap partisipan
tandatangan acuan, dicarikan pemalsu tandatangannya sebanyak
iv. Ujicoba antarmuka sistem.
Sebelum dilakukan pengujian ke tahapan berikutnya, terlebih dahulu
dilakukan dulu uji coba terhadap keseluruhan antarmuka sistem yang
telah dibuat. Tujuannya adalah untuk mengetahui kesiapan
komponen-komponen antarmuka sistem tersebut untuk mendukung pengujian
sistem verifikasi selanjutnya.
v. Pendaftaran partisipan
Masing-masing partisipan yang tandatangannya telah dikumpulkan
sebagai tandatangan acuan selanjutnya didaftarkan sebagai pengguna
terdaftar melalui proses pendaftaran, yang pada intinya data masing-masing partisipan ini dimasukkan ke dalam file basisdata acuan.
Setiap nilai konstanta pemotongan nilai eigen (q) terhubung dengan
sebuah file basisdata acuan, baik yang menggunakan pola model
tandatangan Jepang maupun pola model tandatangan Indonesia.
vi. Verifikasi tandatangan uji asli dan tandatangan palsu.
Setelah keseluruhan file basisdata acuan selesai dibuat barulah
dilakukan verifikasi terhadap tandatangan yang telah terkumpul baik
tandatangan uji asli maupun tandatangan palsu.
4.1.3. HASIL PENGUJIAN
Adapun hasil pengujian yang dilakukan terhadap sistem verifikasi
tandatangan dalam penelitian ini, sesuai dengan tahap-tahap yang telah
4.1.3.1. Ujicoba Antarmuka Sistem
Gambar-gambar berikut ini adalah beberapa contoh tampilan antarmuka
sistem verifikasi tandatangan, yang mana kegunaan serta rancangannya sesuai
dengan apa yang telah dipaparkan sebelumnya pada Bab Perancangan dan
Pembuatan Sistem Verifikasi sub bab Pemrograman.
Gambar 4.1
Gambar 4.2
Contoh tampilan saat partisipan nomor Id 17 diaktifkan
Gambar 4.3
Gambar 4.4
Contoh tampilan form pendaftaran partisipan baru
4.1.3.2. Pendaftaran Partisipan
Pada tahap pendaftaran yang bertujuan untuk mendaftarkan
masing-masing partisipan pada file basisdata acuan, dari dua jenis pola model yang
digunakan yaitu pola model tandatangan Jepang dan pola model tandatangan
Indonesia, masing-masing memiliki file basisdata acuan sendiri-sendiri untuk
setiap konstanta pemotongan nilai eigen (q) yang dicobakan. Hasil pengujian
berupa waktu proses, nilai beda 3 buah tandatangan uji beserta nilai beda yang
Tabel 4.1.
Nilai beda acuan dengan q = 4, pola model Tandatangan Indonesia
No Id D(P,Q1) D(P,Q2) D(P,Q3) C t (mdt) 1 1 5,8947 25,1562 69,0059 C2 5940 2 2 14,2791 32,3332 50,9579 C2 6050 3 3 14,2921 18,0489 12,7983 C1 5940 4 4 16,2859 33,5378 13,3452 C1 6210 5 5 30,6293 30,2653 30,9957 C1 5870 6 6 77,2963 8,6777 12,4735 C3 5870 7 7 12,0280 19,1175 3,9893 C1 6040 8 8 29,6195 43,4567 23,4180 C1 6100 9 9 16,9302 26,0216 24,9570 C3 6160 10 10 5,6469 9,2838 41,3435 C2 6040 11 11 38,3495 9,0720 16,1905 C3 6320 12 12 10,5595 10,3307 20,4830 C1 6040 13 13 47,9656 19,7959 14,4084 C2 6210 14 14 21,2937 19,1556 74,1678 C1 5550 15 15 6,0463 18,4686 5,3738 C1 5930 16 16 45,9358 27,2632 22,3933 C2 5940 17 17 3,3126 15,8259 13,4896 C3 5930 18 18 12,0883 9,8631 14,8382 C1 5990 19 19 31,1373 14,8399 128,7306 C1 5970 20 20 24,5968 15,4393 24,9961 C1 6100 21 21 82,9895 7,7925 37,6547 C3 6100 22 22 53,3649 32,1475 41,2477 C3 6100 23 23 5,4377 15,3463 7,8842 C3 6150 24 24 26,4079 17,4135 17,3651 C2 6150 25 25 49,1463 74,1495 45,8162 C1 6100 26 26 34,2931 48,1401 11,3736 C1 6090
Tabel 4.2.
Nilai beda acuan dengan q = 5, pola model Tandatangan Indonesia
Tabel 4.3.
Nilai beda acuan dengan q = 6, pola model Tandatangan Indonesia
No Id D(P,Q1) x 1012
D(P,Q2) x 1012
D(P,Q3)
x 1012 C t (mdt)
1 1 2,7076 9,3635 27,5290 C2 5880
2 2 4,5485 9,6376 9,9203 C2 5990
3 3 2,2885 2,4635 2,2756 C1 5990
4 4 3,9955 7,5785 2,9416 C1 6100
5 5 22,5959 21,4934 22,8596 C1 6150 6 6 52,3734 8,8463 12,4516 C3 5820
7 7 3,2751 4,2263 1,1317 C1 5930
8 8 8,0155 10,5464 5,1707 C1 6040
9 9 3,8020 5,4758 5,7750 C2 6150
Tabel 4.4.
Nilai beda acuan dengan q = 7, pola model Tandatangan Indonesia
No Id D(P,Q1) x 1013
D(P,Q2) x 1013
D(P,Q3)
x 1013 C t (mdt)
1 1 1,1096 3,9097 11,4594 C2 5830
2 2 1,1546 2,4436 2,5020 C2 5990
3 3 1,3679 1,4661 1,3569 C1 5930
4 4 1,7801 3,2634 1,2672 C1 6090
5 5 4,2433 4,0494 4,3040 C1 6200
6 6 12,7317 2,1501 3,0199 C3 5820
7 7 1,2969 1,5765 0,4452 C1 5990
8 8 1,0262 1,3502 0,6619 C1 6100
9 9 2,1422 3,0899 3,3435 C2 6150
Tabel 4.5.
Nilai beda acuan dengan q = 8, pola model Tandatangan Indonesia
No Id D(P,Q1) x 1013
D(P,Q2) x 1013
D(P,Q3)
x 1013 C t (mdt) 1 1 5,2454 19,5602 57,3553 C2 6200
2 2 1,2962 2,7430 2,8076 C2 6050
3 3 2,7731 2,8058 2,6043 C1 5930
4 4 2,9086 5,2911 2,0221 C1 6100
5 5 4,6695 4,4515 4,7333 C1 6150
6 6 24,0408 4,1093 5,5024 C3 5820
7 7 3,2665 3,9500 1,0841 C1 5990
8 8 2,0422 2,6947 1,3205 C1 6100
9 9 2,5731 3,8151 4,1137 C2 6150
Tabel 4.6.
Nilai beda acuan dengan q = 9, pola model Tandatangan Indonesia
No Id D(P,Q1) x 1013
D(P,Q2) x 1013
D(P,Q3)
x 1013 C t (mdt) 1 1 9,8445 37,0672 108,4696 C2 5500 2 2 6,6286 13,8160 14,2973 C2 6040
3 3 6,6280 6,3173 5,7142 C2 5940
4 4 6,0751 10,8487 4,1459 C1 6090
5 5 11,0460 10,2942 11,1594 C1 6150 6 6 87,4780 15,7697 20,3823 C3 5820
7 7 4,6086 5,5321 1,5212 C1 5980
8 8 3,7773 4,8914 2,3833 C1 6100
9 9 3,5678 6,1306 6,5704 C2 6150
10 10 8,1266 13,2763 40,4788 C2 5930 11 11 11,0196 2,5168 4,9541 C3 6260 12 12 7,4022 6,7885 14,7742 C1 5930 13 13 20,1494 11,6765 8,5589 C2 6260 14 14 18,3008 28,9271 70,7473 C2 5550
15 15 ERROR
16 16 25,7823 12,8567 10,6016 C2 5930 17 17 6,5917 34,4685 28,3508 C3 5930 18 18 0,6558 0,7628 0,9772 C2 5990 19 19 3,5222 1,8610 11,1246 C1 6040 20 20 8,2760 3,9612 11,6612 C1 6100 21 21 35,1035 2,7689 10,9164 C3 6100 22 22 4,6821 3,9816 4,9950 C1 6100 23 23 2,2598 3,1461 3,3793 C2 6040 24 24 5,3230 4,7355 4,1993 C2 6100 25 25 8,2017 12,7531 7,0916 C1 6040 26 26 4,8982 4,8968 1,7906 C2 6040
Rata-rata waktu proses adalah 150110 / 25 = 6004,4 mili detik
Dalam Tabel 4.6 di atas terlihat sudah terjadi kesalahan proses pembagian
dengan bilangan nol pada partisipan dengan nomor identitas 15, sehingga
pendaftaran dengan konstanta pemotongan nilai eigen (q) yang lebih besar dari 9
Tabel 4.7.
Nilai beda acuan dengan q = 4, pola model tandatangan Jepang
Tabel 4.8.
Nilai beda acuan dengan q = 5, pola model Tandatangan Jepang