Aplikasi Verifikasi Tandatangan dengan Pola Model Khusus berbasis Pola Busur Terlokalisasi.
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
FAKULTAS TEKNIK UNIVERSITAS UDAYANA
BALI - 2013
1
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
tandatangannya maka status pengguna adalah pengguna tak terdaftar.
1
2
Pengembang
sistem
Proses
pembuatan
pola model
Pengguna
tak terdaftar
Masukan
tandatangan
acuan
Pengguna
terdaftar
Basisdata
pola model
Masukan
tandatangan
Proses
pendaftaran
Proses
verifikasi
Laporan
verifikasi
Basisdata
acuan
Keluaran
verifikasi
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.
2
3
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,
tetapi pemilihannya berbasis pada sampel Tandatangan Orang Indonesia.
3
4
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 karakteristik
pola-pola tersebut sama dan juga berada pada busur yang sama,
dikelompokkan ke dalam sebuah pola model.
4
5
No.1 Model 1
No.2 Model 2
No.3 Model 3
No.4 Model 4
No.5 Model 5
No.6 Model 6
No.7 Model 7
No.8 Model 8
No.9 Model 9
No.10 Model 10
No.11 Model 11
No.13 Model 13
No.14 Model 14
No.12 Model 12
No.18 Model 18
No.19 Model 19
No.20 Model 20
No.21 Model 21
No.15 Model 15
No.16 Model 16
No.17 Model 17
No.22 Model 22
No.23 Model 23
No.24 Model 24
No.25 Model 25
No.26 Model 26
No.27 Model 27
No.28 Model 28
No.29 Model 29
No.30 Model 30
No.31 Model 31
No.32 Model 32
No.33 Model 33
No.34 Model 34
No.35 Model 35
No.36 Model 36
No.37 Model 37
No.38 Model 38
No.39 Model 39
No.40 Model 40
No.41 Model 41
No.42 Model 42
No.46 Model 46
No.47 Model 47
No.48 Model 48
No.49 Model 49
No.43 Model 43
No.44 Model 44
No.45 Model 45
No.50 Model 50
No.51 Model 51
No.52 Model 52
No.53 Model 53
No.54 Model 54
No.57 Model 57
No.55 Model 55
No.56 Model 56
No.59 Model 59
No.60 Model 59
No.61 Model 59
No.62 Model 60
No.58 Model 58
Gambar 3.2(a)
Kemungkinan pola-pola dari Pola Busur Terlokalisasi untuk
tandatangan orang Indonesia (nomor urut 1 sampai 63)
5
No.63 Model 61
6
No.64 Model 61
No.65 Model 61
No.67 Model 63
No.68 Model 64
No.73 Model 66
No.74 Model 66
No.75 Model 67
No.66 Model 62
No.70 Model 64
No.71 Model 65
No.69 Model 64
No.72 Model 66
No.76 Model 68
No.77 Model 69
No.78 Model 69
No.79 Model 70
No.81 Model 71
No.82 Model 72
No.83 Model 73
No.84 Model 74
No.85 Model 74
No.86 Model 75
No.80 Model 71
No.87 Model 76
No.88 Model 76
No.89 Model 77
No.90 Model 78
No.91 Model 78
No.96 Model 82
No.97 Model 83
No.92 Model 79
No.93 Model 80
No.94 Model 81
No.95 Model 81
No.99 Model 85
No.100 Model 86
No.101 Model 87
No.102 Model 88
No.103 Model 89
No.104 Model 90
No.106 Model 92
No.107 Model 92
No.108 Model 92
No.109 Model 93
No.119 Model 99
No.123 Model 101
No.124 Model 102
No.122 Model 101
No.112 Model 94
No.118 Model 98
No.111 Model 94
No.121 Model 101
No.110 Model 94
No.117 Model 98
No.115 Model 97
No.120 Model 100
No.114 Model 96
No.116 Model 98
No.113 Model 95
No.105 Model 91
No.98 Model 84
No.125 Model 103
Gambar 3.2(b)
Kemungkinan pola-pola dari Pola Busur Terlokalisasi untuk
tandatangan orang Indonesia (nomor urut 64 sampai 125)
6
7
3.2.2. PEMILIHAN POLA MODEL
Guna mengurangi waktu proses, maka dari 125 pola di atas dipilih polapola yang memang sering muncul pada Tandatangan Latin khususnya
Tandatangan Orang Indonesia. Pemilihan pola-pola itu dilakukan dengan
menggunakan bantuan program untuk menghitung keseringan muncul masingmasing 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)3
Ya
Ekstraksi ciri
tandatangan ke-t+6
Cari median dari
D(Pid,Qt) sebagai
nilai ambang (Ccid)
Hitung nilai
ketidaksamaan D(Pid,Qt)
Tulis Pid
ke file
basis data
acuan
Ya
Mendaftarkan
partisipan baru
lagi ?
Tidak
Gambar 3.7
Bagan alir tahap pendaftaran
18
Stop
19
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
juga akan dipergunakan sebagai struktur record dari variabel file basisdata
19
20
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
frekuensi kemunculan masing-masing pola model dari setiap tandatangan
20
21
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
sistem beserta kegunaan masing-masing tombol yang dibuat.
21
22
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
pertimbangan bahwa sistem verifikasi tandatangan secara baik hanya dapat
22
23
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
DimVector67 = 67;//banyak pola model dari ttn Jepang
23
24
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
DimVector : byte; //banyaknya model
24
25
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.
Grup 1
2a
Grup 2
2b
1a
1b
1c
2c
2d
Grup 4
Grup 3
2e
3c
4a
3a
3b
3d
Gambar 3.8
Tampilan Form Utama sistem verifikasi
25
Grup 5
26
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
See1 := True;
26
27
AssignFile(FileReference,FReferName);
{$I-}
Reset(FileReference);
{$I+}
if IOResult 0 then
begin
ShowMessage('Database Reference File Not Exist');
See1 := false;
end
else begin
See := False;
while (EOF(FileReference)= false) and (see = false) do
begin
Read(FileReference, Person);
if Person.IDNumber = IDNumber then
begin
See := True;
Str(Person.IDNumber,S);
ST_IDNumber.Caption := ' ' + S;
ST_Name.Caption := ' ' + Person.Name;
Str((Person.Critical*Cd),S);
ST_Threshold.Caption := S;
SBShowReff.Enabled := True;
Panel3.Visible := True;
Panel8.Visible := True;
SBNewListClick(SBNewList);
SBDelete.Enabled := True;
{Cari Varians, EigenVektor, EigenValue dan MeanFrek}
PrMeanFreq := CountMeanFrequency(Person);
PrVariance := CountVariance(PrMeanFreq,Person);
EigenSort(PrVariance, PrEigenVector, PrEigenValue,
PrSort);
end;
end;
if See = False then
begin
Person := Sementara;
ShowMessage('Unregistered ID Number, Try Again!');
end;
end;
if See1 = True then CloseFile(FileReference);
end;
end;
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
pengujian lebih dari sekali, karena perhitungan dasar yang dilakukan sama.
27
28
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 4) and ((abs(d[ip])+g) = abs(d[ip]))
and ((abs(d[iq])+g) = abs(d[iq])))
then A[ip,iq] := 0
else if abs(A[ip,iq]) > tresh then
begin
h := d[iq]-d[ip];
if ((abs(h)+g) = abs(h)) then
t := A[ip,iq]/h
else begin
theta := 0.5*h/A[ip,iq];
t := 1/(abs(theta)+sqrt(1+theta*theta));
if theta < 0 then t := -t;
end;
c := 1/sqrt(1+t*t);
s := t*c;
tau := s/(1+c);
h := t*A[ip,iq];
Z[ip] := Z[ip] - h;
Z[iq] := Z[iq] + h;
D[ip] := D[ip] - h;
D[iq] := D[iq] + h;
A[ip,iq] := 0;
for j := 1 to ip-1 do ROTATE(s,tau,A,j,ip,j,iq);
for j := ip+1 to iq-1 do ROTATE(s,tau,A,ip,j,j,iq);
for j := iq+1 to DimVector do
ROTATE(s,tau,A,ip,j,iq,j);
for j := 1 to DimVector do ROTATE(s,tau,V,j,ip,j,iq);
end;
end;
end;
for ip := 1 to DimVector do
begin
b[ip] := b[ip] + z[ip];
d[ip] := b[ip];
z[ip] := 0;
end;
end;
ShowMessage('error : terlalu banyak iterasi');
end;
33
34
procedure Eigensort(A : TVariance; var V : TVariance;
var D : TMeanFrequency; var Urut : TSort);
var i,j,k,temp : integer;
pe : real;
TD : TMeanFrequency;
begin
for i:= 1 to DimVector do
begin
D[i] := 0;
Urut[i] := i;
end;
Jakobi(A,V,D);
TD := D;
for i := 1 to DimVector do
begin
pe := TD[i];
k := i;
for j := i+1 to DimVector do
if TD[j] >= pe then
begin
pe := TD[j];
k := j;
end;
if k i then
begin
TD[k] := TD[i];
TD[i] := pe;
temp := Urut[i];
Urut[i] := Urut[k];
Urut[k] := temp;
end;
end;
end;
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
awalX_L := 1;
akhirX_L := SignHeigh;
awalY_L := 1;
akhirY_L := SignWidth;
for i := 1 to DimVector do
freq[i] := 0;
for CountPattern := 1 to JumPattern do
begin
ModelPattern := ArrMOdelPattern[CountPattern];
34
35
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)
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
FAKULTAS TEKNIK UNIVERSITAS UDAYANA
BALI - 2013
1
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
tandatangannya maka status pengguna adalah pengguna tak terdaftar.
1
2
Pengembang
sistem
Proses
pembuatan
pola model
Pengguna
tak terdaftar
Masukan
tandatangan
acuan
Pengguna
terdaftar
Basisdata
pola model
Masukan
tandatangan
Proses
pendaftaran
Proses
verifikasi
Laporan
verifikasi
Basisdata
acuan
Keluaran
verifikasi
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.
2
3
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,
tetapi pemilihannya berbasis pada sampel Tandatangan Orang Indonesia.
3
4
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 karakteristik
pola-pola tersebut sama dan juga berada pada busur yang sama,
dikelompokkan ke dalam sebuah pola model.
4
5
No.1 Model 1
No.2 Model 2
No.3 Model 3
No.4 Model 4
No.5 Model 5
No.6 Model 6
No.7 Model 7
No.8 Model 8
No.9 Model 9
No.10 Model 10
No.11 Model 11
No.13 Model 13
No.14 Model 14
No.12 Model 12
No.18 Model 18
No.19 Model 19
No.20 Model 20
No.21 Model 21
No.15 Model 15
No.16 Model 16
No.17 Model 17
No.22 Model 22
No.23 Model 23
No.24 Model 24
No.25 Model 25
No.26 Model 26
No.27 Model 27
No.28 Model 28
No.29 Model 29
No.30 Model 30
No.31 Model 31
No.32 Model 32
No.33 Model 33
No.34 Model 34
No.35 Model 35
No.36 Model 36
No.37 Model 37
No.38 Model 38
No.39 Model 39
No.40 Model 40
No.41 Model 41
No.42 Model 42
No.46 Model 46
No.47 Model 47
No.48 Model 48
No.49 Model 49
No.43 Model 43
No.44 Model 44
No.45 Model 45
No.50 Model 50
No.51 Model 51
No.52 Model 52
No.53 Model 53
No.54 Model 54
No.57 Model 57
No.55 Model 55
No.56 Model 56
No.59 Model 59
No.60 Model 59
No.61 Model 59
No.62 Model 60
No.58 Model 58
Gambar 3.2(a)
Kemungkinan pola-pola dari Pola Busur Terlokalisasi untuk
tandatangan orang Indonesia (nomor urut 1 sampai 63)
5
No.63 Model 61
6
No.64 Model 61
No.65 Model 61
No.67 Model 63
No.68 Model 64
No.73 Model 66
No.74 Model 66
No.75 Model 67
No.66 Model 62
No.70 Model 64
No.71 Model 65
No.69 Model 64
No.72 Model 66
No.76 Model 68
No.77 Model 69
No.78 Model 69
No.79 Model 70
No.81 Model 71
No.82 Model 72
No.83 Model 73
No.84 Model 74
No.85 Model 74
No.86 Model 75
No.80 Model 71
No.87 Model 76
No.88 Model 76
No.89 Model 77
No.90 Model 78
No.91 Model 78
No.96 Model 82
No.97 Model 83
No.92 Model 79
No.93 Model 80
No.94 Model 81
No.95 Model 81
No.99 Model 85
No.100 Model 86
No.101 Model 87
No.102 Model 88
No.103 Model 89
No.104 Model 90
No.106 Model 92
No.107 Model 92
No.108 Model 92
No.109 Model 93
No.119 Model 99
No.123 Model 101
No.124 Model 102
No.122 Model 101
No.112 Model 94
No.118 Model 98
No.111 Model 94
No.121 Model 101
No.110 Model 94
No.117 Model 98
No.115 Model 97
No.120 Model 100
No.114 Model 96
No.116 Model 98
No.113 Model 95
No.105 Model 91
No.98 Model 84
No.125 Model 103
Gambar 3.2(b)
Kemungkinan pola-pola dari Pola Busur Terlokalisasi untuk
tandatangan orang Indonesia (nomor urut 64 sampai 125)
6
7
3.2.2. PEMILIHAN POLA MODEL
Guna mengurangi waktu proses, maka dari 125 pola di atas dipilih polapola yang memang sering muncul pada Tandatangan Latin khususnya
Tandatangan Orang Indonesia. Pemilihan pola-pola itu dilakukan dengan
menggunakan bantuan program untuk menghitung keseringan muncul masingmasing 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)3
Ya
Ekstraksi ciri
tandatangan ke-t+6
Cari median dari
D(Pid,Qt) sebagai
nilai ambang (Ccid)
Hitung nilai
ketidaksamaan D(Pid,Qt)
Tulis Pid
ke file
basis data
acuan
Ya
Mendaftarkan
partisipan baru
lagi ?
Tidak
Gambar 3.7
Bagan alir tahap pendaftaran
18
Stop
19
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
juga akan dipergunakan sebagai struktur record dari variabel file basisdata
19
20
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
frekuensi kemunculan masing-masing pola model dari setiap tandatangan
20
21
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
sistem beserta kegunaan masing-masing tombol yang dibuat.
21
22
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
pertimbangan bahwa sistem verifikasi tandatangan secara baik hanya dapat
22
23
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
DimVector67 = 67;//banyak pola model dari ttn Jepang
23
24
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
DimVector : byte; //banyaknya model
24
25
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.
Grup 1
2a
Grup 2
2b
1a
1b
1c
2c
2d
Grup 4
Grup 3
2e
3c
4a
3a
3b
3d
Gambar 3.8
Tampilan Form Utama sistem verifikasi
25
Grup 5
26
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
See1 := True;
26
27
AssignFile(FileReference,FReferName);
{$I-}
Reset(FileReference);
{$I+}
if IOResult 0 then
begin
ShowMessage('Database Reference File Not Exist');
See1 := false;
end
else begin
See := False;
while (EOF(FileReference)= false) and (see = false) do
begin
Read(FileReference, Person);
if Person.IDNumber = IDNumber then
begin
See := True;
Str(Person.IDNumber,S);
ST_IDNumber.Caption := ' ' + S;
ST_Name.Caption := ' ' + Person.Name;
Str((Person.Critical*Cd),S);
ST_Threshold.Caption := S;
SBShowReff.Enabled := True;
Panel3.Visible := True;
Panel8.Visible := True;
SBNewListClick(SBNewList);
SBDelete.Enabled := True;
{Cari Varians, EigenVektor, EigenValue dan MeanFrek}
PrMeanFreq := CountMeanFrequency(Person);
PrVariance := CountVariance(PrMeanFreq,Person);
EigenSort(PrVariance, PrEigenVector, PrEigenValue,
PrSort);
end;
end;
if See = False then
begin
Person := Sementara;
ShowMessage('Unregistered ID Number, Try Again!');
end;
end;
if See1 = True then CloseFile(FileReference);
end;
end;
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
pengujian lebih dari sekali, karena perhitungan dasar yang dilakukan sama.
27
28
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 4) and ((abs(d[ip])+g) = abs(d[ip]))
and ((abs(d[iq])+g) = abs(d[iq])))
then A[ip,iq] := 0
else if abs(A[ip,iq]) > tresh then
begin
h := d[iq]-d[ip];
if ((abs(h)+g) = abs(h)) then
t := A[ip,iq]/h
else begin
theta := 0.5*h/A[ip,iq];
t := 1/(abs(theta)+sqrt(1+theta*theta));
if theta < 0 then t := -t;
end;
c := 1/sqrt(1+t*t);
s := t*c;
tau := s/(1+c);
h := t*A[ip,iq];
Z[ip] := Z[ip] - h;
Z[iq] := Z[iq] + h;
D[ip] := D[ip] - h;
D[iq] := D[iq] + h;
A[ip,iq] := 0;
for j := 1 to ip-1 do ROTATE(s,tau,A,j,ip,j,iq);
for j := ip+1 to iq-1 do ROTATE(s,tau,A,ip,j,j,iq);
for j := iq+1 to DimVector do
ROTATE(s,tau,A,ip,j,iq,j);
for j := 1 to DimVector do ROTATE(s,tau,V,j,ip,j,iq);
end;
end;
end;
for ip := 1 to DimVector do
begin
b[ip] := b[ip] + z[ip];
d[ip] := b[ip];
z[ip] := 0;
end;
end;
ShowMessage('error : terlalu banyak iterasi');
end;
33
34
procedure Eigensort(A : TVariance; var V : TVariance;
var D : TMeanFrequency; var Urut : TSort);
var i,j,k,temp : integer;
pe : real;
TD : TMeanFrequency;
begin
for i:= 1 to DimVector do
begin
D[i] := 0;
Urut[i] := i;
end;
Jakobi(A,V,D);
TD := D;
for i := 1 to DimVector do
begin
pe := TD[i];
k := i;
for j := i+1 to DimVector do
if TD[j] >= pe then
begin
pe := TD[j];
k := j;
end;
if k i then
begin
TD[k] := TD[i];
TD[i] := pe;
temp := Urut[i];
Urut[i] := Urut[k];
Urut[k] := temp;
end;
end;
end;
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
awalX_L := 1;
akhirX_L := SignHeigh;
awalY_L := 1;
akhirY_L := SignWidth;
for i := 1 to DimVector do
freq[i] := 0;
for CountPattern := 1 to JumPattern do
begin
ModelPattern := ArrMOdelPattern[CountPattern];
34
35
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)