Pengembangan Program Verifikasi Telapak Tangan Dengan Metode Menghitung Panjang dan Lebar Ruas Jari.
i Universitas Kristen Maranatha
PENGEMBANGAN PROGRAM VERIFIKASI TELAPAK
TANGAN DENGAN METODE MENGHITUNG PANJANG
DAN LEBAR RUAS JARI
Yudhi Sanjaya/0322106Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia
Email: yudhi_sanjaya21@yahoo.com
ABSTRAK
Geometri Tangan (Hand Geometry), merupakan biometrika yang relatif baru, yang memiliki karakteristik unik seperti panjang dan lebar telapak tangan,, panjang dan lebar ruas jari dan tebal jari. Ukuran geometri tangan yang cenderung berbeda dengan tangan milik orang lain. Keunikan tersebut merupakan ciri setiap tangan.
Sistem verifikasi merupakan proses pencocokan telapak tangan yang diuji dengan suatu telapak tangan yang diklaim. Hasilnya adalah suatu keputusan apakah telapak tangan yang diuji milik pengguna sah (genuine user) atau tidak sah (imposter user). Proses perhitungan ukuran panjang dan lebar ruas jari memegang peranan penting terhadap keberhasilan verifikasi. Pada tugas akhir tujuan utamanya adalah pengembangan program pengenalan telapak tangan dengan metode menghitung panjang dan lebar ruas jari. Panjang dan lebar ruas jari diperoleh dengan metode pencarian titik puncak dan titik – titik diruas jari, dimana terdapat 14 ruas jari yang terdiri dari 14 panjang ruas jari dan 14 lebar ruas jari . Sedangkan proses pencocokan menggunakan perbandingan ukuran panjang dan lebar ruas jari.
Sistem yang dibuat diuji menggunakan 20 citra telapak tangan, setiap orang memiliki 4 contoh telapak tangan. Hasil pengujian menunjukkan sistem ini mampu memberikan unjuk kerja tinggi yaitu di atas 95 %, atau memiliki error di bawah 5%
(2)
ii Universitas Kristen Maranatha
THE DEVELOPMENT OF PALM VERIFICATION
SOFTWARE USING CALCULATING SPACE BETWEEN
JOINTS FINGERS LENGTH AND WIDTH METHOD
Yudhi sanjaya/0322106
Departement Of Electrical Engineering Maranatha Christian University Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia
Email: yudhi_sanjaya21@yahoo.com
ABSTRACT
Hand Geometry is a newly biometrical, it has an unique characteristics such as hand length dan width, fingers length and width, knuckles length and width and fingers thick. Size of hand geometry which tend to different from other hand. This uniquesses represent the reliability of every palm.
Verification system represent the matching process between a tested palm with a claimed palm. The result is a decision which is the tested palmprint is belong to a genuine user or an imposter user. Process calculation space between joints fingers length and width was the most important things to make the verification success. In this final project developing of palm recognation software with method calculating space between joints fingers length and width is the main objective. Space between joints fingers is obtained with seeking method of pointof top and point – point of space between joints fingers, where there are 14 space between joints fingers consisted of 14 space between joints fingers length and 14 space between joints fingers widht. The verification process are used space between joints fingers length and width.
System is tested with 20 palmprint which everyone has 4 palmprint sample. The test shows that the system has a high accuration which is more than 95 % or an error below 5 %.
(3)
iii Universitas Kristen Maranatha DAFTAR ISI
ABSTRAK... i
ABSTRACT... ii
KATA PENGANTAR... iii
DAFTAR ISI... v
DAFTAR GAMBAR... vii
DAFTAR TABEL... ix
BAB I PENDAHULUAN... 1
I.1 Latar Belakang Masalah ... 1
I.2 Identifikasi Masalah... 2
I.3 Tujuan... 2
I.4 Pembatasan Masalah... 3
I.5 Sistematika Penulisan Laporan... 3
BAB II LANDASAN TEORI... 4
II.1 Biometrik... 4
II.1.1 Biometri Tangan... 5
II.1.1.1 Sistem Biometri Tangan... 5
II.2 Metode Online dan Offline... 6
II.3 Komputer grafis... 6
II.3.1 Format Citra .BMP... 7
II.3.2 Ukuran Citra... 8
II.3.3 Resolusi... 8
II.4 Pengolahan Citra dengan Visual Basic 6.0... 8
II.4.1 Mengolah Citra dengan PictureBox... 9
(4)
iv Universitas Kristen Maranatha
II.4.3 Penggunaan ListBox... 10
II.4.4 Struktur Pengulangan (Looping)... 10
II.4.5 Common Dialog... 11
II.5. Pengolahan Citra Digital... 11
II.5.1 Binerisasi... 11
II.6. Pengujian keandalan perangkat lunak dengan Metoda FAR (false acceptance rate) dan FFR (false rejection rate)... 12
BAB III CARA KERJA DAN PERANCANGAN PERANGKAT LUNAK 13 III.1 Input Citra... 17
III.2 Proses Hitung... 18
III.2.1 Binerisasi... 18
III.2.2 Cari Titik Tepi... 20
III.2.3 Cari Titik Puncak... 21
III.2.4 Menebalkan Garis... 24
III.2.5 Menghitung Semua Ruas... 25
III.3 Membandingkan input... 28
III.4 Proses Verifikasi... 29
BAB IV ANALISA DAN HASIL SIMULASI... 32
IV.1 Hasil pengujian dan analisa... 32
IV.1.1 Pengujian 1... 32
IV.1.2 Pengujian 2... 43
IV.2 Analisa nilai dari FAR dan FRR... 46
IV.3 Simulasi proses pencocokan... 47
BAB V KESIMPULAN DAN SARAN V.1 Kesimpulan... 49
(5)
v Universitas Kristen Maranatha V.2 Saran... 49
DAFTAR PUSTAKA ... 50 LAMPIRAN A : PERANGKAT LUNAK
(6)
vi Universitas Kristen Maranatha DAFTAR GAMBAR
Gambar II.1 Hand Geometry [9] ... 6
Gambar II.2 Tampilan Awal Visual Basic ... 9
Gambar II.3 PictureBox ... 9
Gambar III.1 Tampilan Utama dari Program ... 13
Gambar III.2 Tampilan Fungsi Program Utama... 15
Gambar III.3 Diagram Alir Utama Program ... 17
Gambar III.4 Diagram Alir Proses Hitung ... 18
Gambar III.5 Citra Hasil Binerisasi... 19
Gambar III.6 Gambar Ilustrasi Pencarian Titik Tepi... 20
Gambar III.7 Citra Pencarian Titik Tepi ... 21
Gambar III.8 Gambar Ilustrasi Pengelompokan... 22
Gambar III.9 Citra Pencarian Titik Puncak ... 24
Gambar III.10 Citra Penebalan Ruas Jari... 25
Gambar III.11 Gambar Ilustrasi Pencarian Titik Terdekat... 26
Gambar III.12 Citra pencarian Titik – Titik Ruas Jari ... 27
Gambar III.13 Diagram Alir Proses Membandingkan Input... 28
Gambar III.14 Diagram Alir Proses Verifikasi ... 31
Gambar IV.1 Grafik Selisih Panjang Ruas Jari Richard... 34
Gambar IV.2 Grafik Selisih Lebar Ruas Jari Richard ... 34
Gambar IV.3 Grafik Selisih Panjang Ruas Jari Lucky ... 36
Gambar IV.4 Grafik Selisih Lebar Ruas Jari Lucky... 36
Gambar IV.5 Grafik Selisih Panjang Ruas Jari Sella ... 38
(7)
vii Universitas Kristen Maranatha
Gambar IV.7 Grafik Selisih Panjang Ruas Jari Morris ... 40
Gambar IV.8 Grafik Selisih Lebar Ruas Jari Morris ... 40
Gambar IV.9 Grafik Selisih Panjang Ruas Jari Hany... 42
Gambar IV.10 Grafik Selisih Lebar Ruas Jari Hany ... 42
Gambar IV.11 Tampilan Bila Verifikasi Berhasil ... 47
(8)
viii Universitas Kristen Maranatha
DAFTAR TABEL
Tabel III.1 Tabel Tipe Data ... 21
Tabel IV.1 Data Pengujian Milik Richard ... 33
Tabel IV.1.1 Data Selisih Pengujian Milik Richard ... 33
Tabel IV.2 Data Pengujian Milik Lucky... 35
Tabel IV.2.1 Data Selisih Pengujian Milik Lucky... 35
Tabel IV.3 Data Pengujian Milik Sella... 37
Tabel IV.3.1 Data Selisih Pengujian Milik Sella ... 37
Tabel IV.4 Data Pengujian Milik Morris... 39
Tabel IV.4.1 Data Selisih Pengujian Milik Morris ... 39
Tabel IV.5 Data Pengujian Milik Hany ... 41
Tabel IV.5.1 Data Selisih Pengujian Milik Hany ... 41
Tabel IV.6 Batas Kesalahan Maksimal dan Minimal ... 43
Tabel IV.6.1 Batas Kesalahan Maksimal dan Minimal (Lanjutan 1) ... 44
Tabel IV.6.2 Batas Kesalahan Maksimal dan Minimal (Lanjutan 2) ... 44
Tabel IV.7 Batas Maksimal ... 45
Tabel IV.8 Pencarian Persen Kecocokan... 45
Tabel IV.9 Persen Kecocokan... 46
Tabel IV.10 Jumlah Kesalahan ... 46
(9)
(10)
Private Sub Form_Load() m = 0
Num = 1 End Sub
Private Sub cmdOpen_Click()
CommonDialog1.Filter = "bitmaps(*.bmp)|*.bmp" CommonDialog1.ShowOpen
Picture1.Picture = LoadPicture(CommonDialog1.FileName) Num = 1
SpotListX.Clear SpotListY.Clear ListBufferX.Clear ListBufferY.Clear SpotListXSorted.Clear SpotListYSorted.Clear List9.Clear
List10.Clear List11.Clear List12.Clear List16.Clear List17.Clear List18.Clear List19.Clear Picture1.Refresh End Sub
Private Sub cmdExit_Click()
If MsgBox("Apakah Anda Yakin?", _ vbYesNo + vbExclamation, _
"Exit Scheduling Wizard") = vbYes Then Unload Me End Sub
Private Sub CmdGetTheSpot_Click() 'Binerisation
Dim rat As Single
Dim xx(700, 700) As Integer thrs = 6
(11)
rat = 0: m = 0
For i = 1 To Picture1.Width Step 15 m = m + 1
n = 0
For j = 1 To Picture1.Height Step 15 warna = Picture1.Point(i, j) r = warna And RGB(255, 0, 0)
g = Int(warna And RGB(0, 255, 0) / 256)
b = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) n = n + 1
p = (r + b + g) / 3 rat = rat + p a = Int(256 / thrs) p = a * Int(p / a) xx(m, n) = p Next j
Next i
rat = rat / (m * n) For i = 1 To m For j = 1 To n
If xx(i, j) < rat Then p = 0 Else p = 255
Picture1.PSet (15 * (i - 1) + 1, 15 * (j - 1) + 1), RGB(p, p, p) Next j
Next i
'Get The Spot!
Dim first, second As Long
For j = 1 To Picture1.Height Step 15 For i = 1 To Picture1.Width Step 15 warna = Picture1.Point(i, j) r = warna And RGB(255, 0, 0)
g = Int(warna And RGB(0, 255, 0) / 256)
b = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) first = (r + g + b) / 3
If first < 128 Then first = 0 Else first = 255
warna = Picture1.Point(i + 15, j) r = warna And RGB(255, 0, 0)
g = Int(warna And RGB(0, 255, 0) / 256)
b = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) second = (r + g + b) / 3
If second < 128 Then second = 0 Else second = 255
(12)
If (first = 255 And second = 0) Or (first = 0 And second = 255) Then SpotListX.AddItem (i)
SpotListY.AddItem (j)
End If Next i Next j
Picture1.Refresh End Sub
Private Sub CmdSet_Click() Dim p, l As Integer
p = Picture1.Width l = Picture1.Height
'Count and set picture limitation
If (Trim(TxtXPercent.Text) <> "") And (Trim(TxtYPercent.Text) <> "") Then Dot(1).X = Round(p * (100 - Int(TxtXPercent.Text)) / 100)
Dot(1).Y = Round(l * (100 - Int(TxtYPercent.Text)) / 100) Dot(2).X = Round(p * (Int(TxtXPercent.Text)) / 100) Dot(2).Y = Dot(1).Y
Dot(3).X = Dot(1).X
Dot(3).Y = Round(l * (Int(TxtYPercent.Text)) / 100) Dot(4).X = Round(p * (Int(TxtXPercent.Text)) / 100) Dot(4).Y = Round(l * (Int(TxtYPercent.Text)) / 100) For i = 1 To 4
Picture1.PSet (Dot(i).X, Dot(i).Y), RGB(0, 255, 0) Next i
CmdDrawLines.Enabled = True
Else: MsgBox "Please Set Percentage", vbOKOnly, "Warning" End If
End Sub
(13)
Private Sub CmdDrawLines_Click() 'upper lines
For i = Dot(1).X To Dot(2).X Step 45
Picture1.PSet (i, Dot(1).Y), RGB(100, 255, 100) Next i
'bottom lines
For i = Dot(3).X To Dot(4).X Step 45
Picture1.PSet (i, Dot(3).Y), RGB(100, 255, 100) Next i
'left lines
For i = Dot(1).Y To Dot(3).Y Step 45
Picture1.PSet (Dot(1).X, i), RGB(100, 255, 100) Next i
'right lines
For i = Dot(2).Y To Dot(4).Y Step 45
Picture1.PSet (Dot(2).X, i), RGB(100, 255, 100) Next i
End Sub
Private Sub CmdMoveUp_Click() 'Move
If OpUp.Value = True Then
Dot(1).Y = Dot(1).Y + (Int(TxtMoveUp.Text) * 15) Dot(2).Y = Dot(1).Y
End If
If OpDown.Value = True Then
Dot(3).Y = Dot(3).Y - (Int(TxtMoveUp.Text) * 15) Dot(4).Y = Dot(3).Y
End If
If OpLeft.Value = True Then
Dot(1).X = Dot(1).X + (Int(TxtMoveUp.Text) * 15) Dot(3).X = Dot(1).X
End If
If OpRight.Value = True Then
Dot(2).X = Dot(2).X - (Int(TxtMoveUp.Text) * 15)
(14)
Dot(4).X = Dot(2).X End If
Picture1.Refresh 'upper lines
For i = Dot(1).X To Dot(2).X Step 45
Picture1.PSet (i, Dot(1).Y), RGB(100, 255, 100) Next i
'bottom lines
For i = Dot(3).X To Dot(4).X Step 45
Picture1.PSet (i, Dot(3).Y), RGB(100, 255, 100) Next i
'left lines
For i = Dot(1).Y To Dot(3).Y Step 45
Picture1.PSet (Dot(1).X, i), RGB(100, 255, 100) Next i
'right lines
For i = Dot(2).Y To Dot(4).Y Step 45
Picture1.PSet (Dot(2).X, i), RGB(100, 255, 100) Next i
End Sub
Private Sub CmdPicRefresh_Click() Picture1.Refresh
End Sub
Private Sub CmdOke_Click() 'remove blind spot X areas
For i = 0 To SpotListX.ListCount - 1
If (SpotListX.List(i) > Dot(1).X) And (SpotListX.List(i) < Dot(2).X) Then ListBufferX.AddItem (SpotListX.List(i))
ListBufferY.AddItem (SpotListY.List(i)) End If
Next i
(15)
'remove blind spot Y areas
For i = 0 To ListBufferX.ListCount - 1
If (ListBufferY.List(i) > Dot(1).Y) And (ListBufferY.List(i) < Dot(3).Y) Then SpotListXSorted.AddItem (ListBufferX.List(i))
SpotListYSorted.AddItem (ListBufferY.List(i)) End If
Next i ' Groupping
ReDim DSearch(0 To SpotListXSorted.ListCount - 1) Dim Count, Group As Integer
Count = 1 Group = 1
For z = 0 To SpotListXSorted.ListCount - 1 DSearch(z).X = SpotListXSorted.List(z) DSearch(z).Y = SpotListYSorted.List(z)
If z = 0 Then DSearch(z).i = 1 End If
If z > 0 Then
If SpotListYSorted.List(z) = SpotListYSorted.List(z - 1) Then Count = Count + 1
End If
If SpotListYSorted.List(z) <> SpotListYSorted.List(z - 1) Then Group = Count
Count = 1 End If
DSearch(z).i = Count
For a = z - Group To z - 1 DSearch(a).g = Group Next a
End If Next z
(16)
For z = 0 To SpotListXSorted.ListCount - 1 List9.AddItem (DSearch(z).i)
List10.AddItem (DSearch(z).g) Next z
'Filtering
Dim first, cek As Boolean Dim compare As Integer first = True
cek = True
For z = 0 To SpotListXSorted.ListCount - 1 If first = False Then
If compare <> DSearch(z).g Then first = True
End If End If
If first = True Then
compare = DSearch(z).g
If DSearch(z).g < 11 And cek = True Then
For a = 0 To compare - 1
List11.AddItem (DSearch(z + a).X) List12.AddItem (DSearch(z + a).Y) List16.AddItem (DSearch(z + a).i) List17.AddItem (DSearch(z + a).g) Next a
If DSearch(z).g = 10 Then cek = False
End If
first = False End If Next z
(17)
'select
Dim sp As Integer sp = 2
first = True
For a = 0 To List11.ListCount - 1
If sp = 2 And sp = Int(List17.List(a)) Then List18.AddItem (List11.List(a))
List19.AddItem (List12.List(a)) sp = sp + 2
End If
If sp = 4 And sp = Int(List17.List(a)) Then
If Abs(List11.List(a) - List18.List(0)) > 600 * (1 + Int(Text4.Text)) Then List18.AddItem (List11.List(a))
List19.AddItem (List12.List(a)) sp = sp + 2
End If End If
If sp = 6 And sp = Int(List17.List(a)) Then
If Abs(List11.List(a) - List18.List(0)) > 600 * (1 + Int(Text4.Text)) Then If Abs(List11.List(a) - List18.List(1)) > 600 * (1 + Int(Text4.Text)) Then List18.AddItem (List11.List(a))
List19.AddItem (List12.List(a)) sp = sp + 2
End If End If End If
If sp = 8 And sp = Int(List17.List(a)) Then
If Abs(List11.List(a) - List18.List(0)) > 600 * (1 + Int(Text4.Text)) Then If Abs(List11.List(a) - List18.List(1)) > 600 * (1 + Int(Text4.Text)) Then If Abs(List11.List(a) - List18.List(2)) > 600 * (1 + Int(Text4.Text)) Then List18.AddItem (List11.List(a))
List19.AddItem (List12.List(a)) sp = sp + 2
End If End If End If End If
(18)
If sp = 10 And sp = Int(List17.List(a)) Then
If Abs(List11.List(a) - List18.List(0)) > 600 * (1 + Int(Text4.Text)) Then If Abs(List11.List(a) - List18.List(1)) > 600 * (1 + Int(Text4.Text)) Then If Abs(List11.List(a) - List18.List(2)) > 600 * (1 + Int(Text4.Text)) Then If Abs(List11.List(a) - List18.List(3)) > 600 * (1 + Int(Text4.Text)) Then List18.AddItem (List11.List(a))
List19.AddItem (List12.List(a)) sp = sp + 2
End If End If End If End If End If Next a '5 peak
Dim StrIndex As String For a = 1 To 5
Peak(a).X = Int(List18.List(a - 1)) Peak(a).Y = Int(List19.List(a - 1)) Next a
'Sorted
For a = 1 To 5
For b = a + 1 To 5
If Peak(a).X > Peak(b).X Then
PeakBuff.X = Peak(a).X PeakBuff.Y = Peak(a).Y
Peak(a).X = Peak(b).X Peak(a).Y = Peak(b).Y
Peak(b).X = PeakBuff.X Peak(b).Y = PeakBuff.Y
End If Next b Next a
(19)
'Mark Peak For a = 1 To 5
Picture1.PSet (Peak(a).X, Peak(a).Y), RGB(255, 0, 0) Next a
End Sub
Private Sub Command11_Click() Num = Num + 1
Label1.Caption = Num End Sub
Private Sub cmdHitung_Click() Dim strp, strl As String
For a = 1 To 14
MidPoint(a).X = (Mark(a).SX + Mark(a).EX) / 2 MidPoint(a).Y = (Mark(a).SY + Mark(a).EY) / 2
Lebar(a) = ((Mark(a).SX - Mark(a).EX) ^ 2 + (Mark(a).SY - Mark(a).EY) ^ 2) ^ 0.5
Next a
Panjang(1) = ((Peak(1).X - MidPoint(1).X) ^ 2 + (Peak(1).Y - MidPoint(1).Y) ^ 2) ^ 0.5
Panjang(2) = ((MidPoint(1).X - MidPoint(2).X) ^ 2 + (MidPoint(1).Y - MidPoint(2).Y) ^ 2) ^ 0.5
Panjang(3) = ((Peak(2).X - MidPoint(3).X) ^ 2 + (Peak(2).Y - MidPoint(3).Y) ^ 2) ^ 0.5
Panjang(4) = ((MidPoint(3).X - MidPoint(4).X) ^ 2 + (MidPoint(3).Y - MidPoint(4).Y) ^ 2) ^ 0.5
Panjang(5) = ((MidPoint(4).X - MidPoint(5).X) ^ 2 + (MidPoint(4).Y - MidPoint(5).Y) ^ 2) ^ 0.5
Panjang(6) = ((Peak(3).X - MidPoint(6).X) ^ 2 + (Peak(3).Y - MidPoint(6).Y) ^ 2) ^ 0.5
Panjang(7) = ((MidPoint(6).X - MidPoint(7).X) ^ 2 + (MidPoint(6).Y - MidPoint(7).Y) ^ 2) ^ 0.5
Panjang(8) = ((MidPoint(7).X - MidPoint(8).X) ^ 2 + (MidPoint(7).Y - MidPoint(8).Y) ^ 2) ^ 0.5
Panjang(9) = ((Peak(4).X - MidPoint(9).X) ^ 2 + (Peak(4).Y - MidPoint(9).Y) ^ 2) ^ 0.5
Panjang(10) = ((MidPoint(9).X - MidPoint(10).X) ^ 2 + (MidPoint(9).Y - MidPoint(10).Y) ^ 2) ^ 0.5
(20)
Panjang(11) = ((MidPoint(10).X - MidPoint(11).X) ^ 2 + (MidPoint(10).Y - MidPoint(11).Y) ^ 2) ^ 0.5
Panjang(12) = ((Peak(5).X - MidPoint(12).X) ^ 2 + (Peak(5).Y - MidPoint(12).Y) ^ 2) ^ 0.5
Panjang(13) = ((MidPoint(12).X - MidPoint(13).X) ^ 2 + (MidPoint(12).Y - MidPoint(13).Y) ^ 2) ^ 0.5
Panjang(14) = ((MidPoint(13).X - MidPoint(14).X) ^ 2 + (MidPoint(13).Y - MidPoint(14).Y) ^ 2) ^ 0.5
End Sub
Private Sub cmdSave_Click() List8.Clear
List15.Clear
For a = 14 To 1 Step -1 List8.AddItem (Panjang(a)) List15.AddItem (Lebar(a)) Next a
strp = "" strl = ""
For a = 0 To 13
strp = strp + List8.List(a) + " " strl = strl + List15.List(a) + " " Next a
Text1.Text = strp Text2.Text = strl End Sub
Private Sub Command4_Click() List20.Clear
List21.Clear
For a = 14 To 1 Step -1
List20.AddItem (Panjang(a)) List21.AddItem (Lebar(a)) Next a
strp = ""
(21)
strl = ""
For a = 0 To 13
strp = strp + List20.List(a) + " " strl = strl + List21.List(a) + " " Next a
Text6.Text = strp Text7.Text = strl End Sub
Private Sub cmdVerify_Click() Dim z As Double
Dim p, l As Double Batasp(1) = 71.25 Batasp(2) = 63 Batasp(3) = 183.25 Batasp(4) = 115.25 Batasp(5) = 167 Batasp(6) = 105 Batasp(7) = 148 Batasp(8) = 81 Batasp(9) = 50.25 Batasp(10) = 119.75 Batasp(11) = 88 Batasp(12) = 71.25 Batasp(13) = 221 Batasp(14) = 108.25 Batasl(1) = 128.25 Batasl(2) = 30.75 Batasl(3) = 23.25 Batasl(4) = 58 Batasl(5) = 28.25 Batasl(6) = 17.5 Batasl(7) = 109.75 Batasl(8) = 25.25 Batasl(9) = 24.25 Batasl(10) = 155.25 Batasl(11) = 55.75 Batasl(12) = 28.25 Batasl(13) = 140.5
(22)
Batasl(14) = 42.75 p = 0
l = 0
For i = 1 To 14
If List8.List(i - 1) <= (List20.List(i - 1) + Batasp(i)) Then If List8.List(i - 1) >= (List20.List(i - 1) - Batasp(i)) Then p = p + 1
End If End If
If List15.List(i - 1) <= (List21.List(i - 1) + Batasl(i)) Then If List15.List(i - 1) >= (List21.List(i - 1) - Batasl(i)) Then l = l + 1
End If End If
Next i
z = (p + l) / 28 * 100 Text5.Text = z Label2.Caption = p Label3.Caption = l If z > 80 Then
MsgBox "Access Granted", vbOKOnly, "Warning" ElseIf z <= 80 Then
MsgBox "Access Denied", vbOKOnly, "Warning" End If
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call MouseDown Picture1.CurrentX = X Picture1.CurrentY = Y Start.X = X
Start.Y = Y End Sub
(23)
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim BuffX As Integer, BuffY As Integer If WriteLet = True Then
BuffX = X BuffY = Y
Picture1.Line -(BuffX, BuffY)
End If End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
WriteLet = False Ends.X = X Ends.Y = Y
'find dot
Dim ds, de As Long Dim dbuff As Long Dim first As Boolean first = True
For a = 0 To SpotListXSorted.ListCount - 1
If Abs(SpotListXSorted.List(a) - Start.X) < 300 And Abs(SpotListYSorted.List(a) - Start.Y) < 300 Then
ds = ((Start.X - SpotListXSorted.List(a)) ^ 2 + (Start.Y - SpotListYSorted.List(a)) ^ 2) ^ 0.5
If first = True Then dbuff = ds
Mark(Num).SX = SpotListXSorted.List(a) Mark(Num).SY = SpotListYSorted.List(a) first = False
(24)
End If
If ds < dbuff Then dbuff = ds
Mark(Num).SX = SpotListXSorted.List(a) Mark(Num).SY = SpotListYSorted.List(a) End If
End If
If Abs(SpotListXSorted.List(a) - Ends.X) < 300 And Abs(SpotListYSorted.List(a) - Ends.Y) < 300 Then
de = ((Ends.X - SpotListXSorted.List(a)) ^ 2 + (Ends.Y - SpotListYSorted.List(a)) ^ 2) ^ 0.5
If first = True Then dbuff = de
Mark(Num).EX = SpotListXSorted.List(a) Mark(Num).EY = SpotListYSorted.List(a) first = False
End If
If de < dbuff Then dbuff = de
Mark(Num).EX = SpotListXSorted.List(a) Mark(Num).EY = SpotListYSorted.List(a) End If
End If Next a
Picture1.PSet (Mark(Num).SX, Mark(Num).SY), RGB(255, 0, 0) Picture1.PSet (Mark(Num).EX, Mark(Num).EY), RGB(255, 0, 0)
End Sub Module
Public WriteLet As Boolean Public Type Node
X As Integer Y As Integer
(25)
End Type
Public Type Search X As Integer Y As Integer i As Integer g As Integer End Type
Public Type Line SX As Integer SY As Integer EX As Integer EY As Integer End Type
Public DSearch() As Search Public Start As Node Public Ends As Node Public Num As Integer
Public Mark(1 To 14) As Line Public MidPoint(1 To 14) As Node Public Panjang(1 To 14) As Integer Public Lebar(1 To 14) As Integer Public Batasp(1 To 14) As Double Public Batasl(1 To 14) As Double
Public Find As Node
Public Bottom(1 To 4) As Node Public Dot(4) As Node
Public Peak(1 To 5) As Node Public PeakBuff As Node Public Sub MouseDown() WriteLet = True
HoldX = X HoldY = Y End Sub
(26)
LAMPIRAN B
(27)
Nama File Citra yang Digunakan Hany01.bmp
Hany02.bmp
Hany03.bmp
Hany04.bmp
Nama File Citra yang Digunakan Morris 01.bmp
Morris 02.bmp
Morris 03.bmp
Morris 04.bmp
(28)
Nama File Citra yang Digunakan Richard01.bmp
Richard02.bmp
Richard03.bmp
Richard04.bmp
Nama File Citra yang Digunakan Sella01.bmp
Sella02.bmp
Sella03.bmp
Sella04.bmp
(29)
Nama File Citra yang Digunakan Lucky01.bmp
Lucky02.bmp
Lucky03.bmp
Lucky04.bmp
(30)
BAB I
PENDAHULUAN
I.1 Latar Belakang Masalah
Dalam perkembangan teknologi informasi, maka pengenalan seseorang menjadi salah satu alternatif pada sistem keamanan. Pada dasarnya pada sistem keamanan terbagi menjadi 2 proses yaitu proses identifikasi dan proses verifikasi. Proses identifikasi adalah proses untuk mengenali seseorang. Proses verifikasi adalah proses untuk membuktikan apakah seseorang mempunyai hak akses pada suatu sistem keamanan?
M enurut Reza Indra [7], pa da dasar nya pengenal an ter ba gi me nja di 3 yaitu: perta ma , pengenalan berdasarkan sesuatu yang dimiliki (possesions based), seperti kartu atau kunci. Kedua, pengenalan berdasarkan apa yang diketahui seseorang (knowledge based), seperti PIN(Personal Identification Number), kata kunci (password). Pengenalan berdasarkan apa yang dimiliki, memiliki kelemahan, seperti dapat hilang, dicuri, atau dapat digunakan oleh orang yang berbeda. Pengenalan berdasarkan apa yang diketahui, memiliki kelemahan, seperti mudah dilupakan, dapat ditebak, dan juga dapat digunakan orang lain. Ketiga, pengenalan berdasarkan sifat – sifat yang pada manusia (biometrics based).
Menurut Reza Indra [7], biometrika terbagi menjadi dua bagian besar yaitu biometrika yang berdasarkan sifat – sifat fisiologis (physiological based) contohnya: iris, sidik jari, tangan (termasuk geometri), buku jari (knuckle), garis – garis tangan (palmprint), pembuluh darah (vascular)), wajah, suara, retina, DNA. Yang kedua adalah biometrika yang berdasarkan tingkah laku (behavioral based) contohnya seperti tanda tangan (signature), gaya berjalan (gait), logat(voice).
Pengenalan berdasarkan biometrika memiliki sistem pengenalan yang lebih dapat dihandalkan. Keuntungan menggunakan biometrika adalah tidak mudah hilang, tidak dapat digunakan secara bersama-sama, dan sulit untuk diduplikasi. Keuntungan tersebut yang menyebabkan biometrika menjadi salah satu solusi dalam sistem keamanan.
(31)
BAB I PENDAHULUAN2
Namun dari beberapa biometrika di atas, beberapa diantaranya memiliki kelemahan seperti suara yang tidak dapat bertahan dalam periode yang lama dikarenakan kondisi fisik manusia yang dapat terserang penyakit seperti flu, radang tenggorokan. Pengenalan berdasarkan biometrika dengan menggunakan telapak tangan relatif baru dan penelitian – penelitian yang terpublikasi masih terbatas. Telapak tangan memiliki beberapa karakteristik yang unik, antara lain: ciri – ciri geometri, garis – garis telapak tangan.
Pada pengembangan sebelumnya yang dianalisa adalah panjang dan lebar jari yang dilakukan oleh Hendrick [5] , selain garis – garis telapak tangan, panjang dan lebar jari, ruas jari pun dapat menjadi pengenal atau identitas seseorang
I.2 Identifikasi Masalah
Bagaimana merealisasikan pengembangan program yang dapat melakukan pengenalan terhadap citra telapak tangan dengan metode menghitung panjang dan lebar ruas jari?
I.3 Tujuan
Merealisasikan pengembangan program yang dapat melakukan pengenalan terhadap citra telapak tangan dengan metode menghitung panjang dan lebar ruas jari.
I.4 Pembatasan Masalah
Adapun pembatasan masalah di dalam Tugas Akhir ini yaitu :
1. Dibatasi hanya pembuatan software saja (tidak membuat hardware). 2. Input berupa telapak tangan hasil scanning yang dibandingkan dengan
citra telapak tangan yang ada pada database di dalam Personal Computer (PC).
3. Pengambilan citra telapak tangan dilakukan secara offline dengan menggunakan scanner.
(32)
BAB I PENDAHULUAN3
4. Implementasi dilakukan dengan Visual Basic 6.0.
5. Citra adalah citra dengan resolusi 75 dpi (dot per inch), dengan ukuran 500 x 600 pixel dan posisi pengambilan citra telah ditentukan sebelumnya. 6. Telapak tangan yang digunakan adalah telapak tangan kiri.
7. Penggarisan ruas jari harus sedekat mungkin dengan garis ruas jari. 8. Posisi tangan santai.
9. Batas – batas ruas jari yang digunakan secara umum, bukan perorangan, dan yang digunakan telapak tangan orang dewasa.
I.5 Sistematika Penulisan
Penulisan laporan terdiri dari 5 Bab, dengan susunan sebagai berikut : • Bab I PENDAHULUAN
Bab ini membahas mengenai latar belakang, identifikasi masalah, tujuan, pembatasan masalah dan sistematika penulisan.
• Bab II LANDASAN TEORI
Bab ini membahas berbagai teori yang berkaitan dengan Tugas Akhir ini, yang akan membantu untuk memahami permasalahan yang akan dibahas.
• Bab III CARA KERJA DAN PERANCANGAN PERANGKAT LUNAK Bab ini memaparkan cara kerja perangkat lunak verifikasi ruas jari, mulai dari proses penyimpanan sampai proses pencocokan tandatangan.
• BabIV ANALISA DAN SIMULSI
Bab ini menampilkan analisa dan hasil pecobaan dan pengujian yang diperoleh dari bab III .
• Bab V KESIMPULAN DAN SARAN
Bab ini membahas kesimpulan hasil pengamatan dan saran-saran untuk pengembangan lebih lanjut.
(33)
BAB V
KESIMPULAN & SARAN
V.1 Kesimpulan
Berdasarkan hasil pengujian, pengembangan program verifikasi telapak tangan dengan metode menghitung panjang dan lebar ruas jari, ini terbukti cukup bisa diandalkan.
Berdasarkan dari hasil pengujian, program memiliki tingkat akurasi penerimaan 95% dan tingkat akurasi penolakan 100%. Nilai tersebut didapat dari nilai FAR dan FRR yang sangat kecil (5% dan 0%) yang menunjukkan bahwa sistem ini memiliki tingkat keberhasilan tinggi.
Metode baru ini bisa dikatakan lebih unggul dari metode menghitung panjang dan lebar telapak tangan, dan dengan menghitung garis tangan karena memiliki nilai FRR yang lebih kecil.
V.2 Saran
Untuk pengembangan selanjutnya, perangkat lunak akan lebih baik jika menggunakan parameter yang lebih banyak lagi seperti tebal jari, panjang dan lebar buku jari.
Sistem akan lebih baik lagi bila ditambahkan dengan komponen hardware-nya, terutama untuk proses scanning input.
Sistem verifikasi ini bisa dikembangkan ke arah sistem online dan diterapkan untuk bidang aplikasi tertentu, seperti aplikasi sistem absensi, aplikasi sistem keamanan, dan aplikasi lainnya.
(34)
DAFTAR PUSTAKA
1. Adi Kurniadi, ”Pemrograman Microsoft Visual Basic 6.0”, PT.Elexmedia Komputindo,Jakarta,2000.
2. Achmad Basuki, Paladi, F. Jozua & Fatchrrochman, “Pengolahan citra digital menggunakan visual basic”, Graha Ilmu,Yogyakarta, 2005.
3. Drs.Ario Suryo Kusumo, “Buku Latihan Microsoft Visual Basic 6.0”, PT.Elexmedia Komputindo,Jakarta,2000.
4. Eric A.Smith, “Visual Basic 6 Bible” , IDG Books Worldwide,United States of America,1998.
5. Kaswady, Hendrick: “Pengembangan Program Pengenalan Telapak Tangan Dengan Metode Menghitung Panjang dan Lebar Jari” ,Buku Tugas Akhir Jurusan Teknik Elektro,Universitas Kristen Maranatha,Bandung.
6. MADCOMS, “Mahir Dalam 7 hari Pemrograman Visual Basic 6.0”, Andi,Yogyakarta,2005.
7. Putra, Reza Indra (0222098), Sistem Verifikasi dengan Menggunakan Biometrika Telapak Tangan, Buku Laporan Tugas Akhir Jurusan Teknik Elektro, Universitas Kristen Maranatha, 2006
8. Ratnadewi, Hendrick Kaswady, ”The Palm Recognition Using Calculating Fingers Length And Width Method” , Proceeding he 3rt International Conference On Product Design And Development 2007 (13 sampai IV-19).
(35)
9. www.Biometrics.dod.mil, 21 Februari 2007.
10.www.Biometrics.gov, 10 Juli 2007.
(1)
BAB I
PENDAHULUAN
I.1 Latar Belakang Masalah
Dalam perkembangan teknologi informasi, maka pengenalan seseorang menjadi salah satu alternatif pada sistem keamanan. Pada dasarnya pada sistem keamanan terbagi menjadi 2 proses yaitu proses identifikasi dan proses verifikasi. Proses identifikasi adalah proses untuk mengenali seseorang. Proses verifikasi adalah proses untuk membuktikan apakah seseorang mempunyai hak akses pada suatu sistem keamanan?
M enurut Reza Indra [7], pa da dasar nya pengenal an ter ba gi me nja di 3 yaitu: perta ma , pengenalan berdasarkan sesuatu yang dimiliki (possesions based), seperti kartu atau kunci. Kedua, pengenalan berdasarkan apa yang diketahui seseorang (knowledge based), seperti PIN(Personal Identification Number), kata kunci (password). Pengenalan berdasarkan apa yang dimiliki, memiliki kelemahan, seperti dapat hilang, dicuri, atau dapat digunakan oleh orang yang berbeda. Pengenalan berdasarkan apa yang diketahui, memiliki kelemahan, seperti mudah dilupakan, dapat ditebak, dan juga dapat digunakan orang lain. Ketiga, pengenalan berdasarkan sifat – sifat yang pada manusia (biometrics based).
Menurut Reza Indra [7], biometrika terbagi menjadi dua bagian besar yaitu biometrika yang berdasarkan sifat – sifat fisiologis (physiological based) contohnya: iris, sidik jari, tangan (termasuk geometri), buku jari (knuckle), garis – garis tangan (palmprint), pembuluh darah (vascular)), wajah, suara, retina, DNA. Yang kedua adalah biometrika yang berdasarkan tingkah laku (behavioral based) contohnya seperti tanda tangan (signature), gaya berjalan (gait), logat(voice).
Pengenalan berdasarkan biometrika memiliki sistem pengenalan yang lebih dapat dihandalkan. Keuntungan menggunakan biometrika adalah tidak mudah hilang, tidak dapat digunakan secara bersama-sama, dan sulit untuk diduplikasi. Keuntungan tersebut yang menyebabkan biometrika menjadi salah satu solusi dalam sistem keamanan.
(2)
BAB I PENDAHULUAN2
Namun dari beberapa biometrika di atas, beberapa diantaranya memiliki kelemahan seperti suara yang tidak dapat bertahan dalam periode yang lama dikarenakan kondisi fisik manusia yang dapat terserang penyakit seperti flu, radang tenggorokan. Pengenalan berdasarkan biometrika dengan menggunakan telapak tangan relatif baru dan penelitian – penelitian yang terpublikasi masih terbatas. Telapak tangan memiliki beberapa karakteristik yang unik, antara lain: ciri – ciri geometri, garis – garis telapak tangan.
Pada pengembangan sebelumnya yang dianalisa adalah panjang dan lebar jari yang dilakukan oleh Hendrick [5] , selain garis – garis telapak tangan, panjang dan lebar jari, ruas jari pun dapat menjadi pengenal atau identitas seseorang
I.2 Identifikasi Masalah
Bagaimana merealisasikan pengembangan program yang dapat melakukan pengenalan terhadap citra telapak tangan dengan metode menghitung panjang dan lebar ruas jari?
I.3 Tujuan
Merealisasikan pengembangan program yang dapat melakukan pengenalan terhadap citra telapak tangan dengan metode menghitung panjang dan lebar ruas jari.
I.4 Pembatasan Masalah
Adapun pembatasan masalah di dalam Tugas Akhir ini yaitu :
1. Dibatasi hanya pembuatan software saja (tidak membuat hardware). 2. Input berupa telapak tangan hasil scanning yang dibandingkan dengan
citra telapak tangan yang ada pada database di dalam Personal Computer (PC).
3. Pengambilan citra telapak tangan dilakukan secara offline dengan menggunakan scanner.
(3)
BAB I PENDAHULUAN3
4. Implementasi dilakukan dengan Visual Basic 6.0.
5. Citra adalah citra dengan resolusi 75 dpi (dot per inch), dengan ukuran 500 x 600 pixel dan posisi pengambilan citra telah ditentukan sebelumnya. 6. Telapak tangan yang digunakan adalah telapak tangan kiri.
7. Penggarisan ruas jari harus sedekat mungkin dengan garis ruas jari. 8. Posisi tangan santai.
9. Batas – batas ruas jari yang digunakan secara umum, bukan perorangan, dan yang digunakan telapak tangan orang dewasa.
I.5 Sistematika Penulisan
Penulisan laporan terdiri dari 5 Bab, dengan susunan sebagai berikut : • Bab I PENDAHULUAN
Bab ini membahas mengenai latar belakang, identifikasi masalah, tujuan, pembatasan masalah dan sistematika penulisan.
• Bab II LANDASAN TEORI
Bab ini membahas berbagai teori yang berkaitan dengan Tugas Akhir ini, yang akan membantu untuk memahami permasalahan yang akan dibahas.
• Bab III CARA KERJA DAN PERANCANGAN PERANGKAT LUNAK Bab ini memaparkan cara kerja perangkat lunak verifikasi ruas jari, mulai dari proses penyimpanan sampai proses pencocokan tandatangan.
• BabIV ANALISA DAN SIMULSI
Bab ini menampilkan analisa dan hasil pecobaan dan pengujian yang diperoleh dari bab III .
• Bab V KESIMPULAN DAN SARAN
Bab ini membahas kesimpulan hasil pengamatan dan saran-saran untuk pengembangan lebih lanjut.
(4)
BAB V
KESIMPULAN & SARAN
V.1 Kesimpulan
Berdasarkan hasil pengujian, pengembangan program verifikasi telapak tangan dengan metode menghitung panjang dan lebar ruas jari, ini terbukti cukup bisa diandalkan.
Berdasarkan dari hasil pengujian, program memiliki tingkat akurasi penerimaan 95% dan tingkat akurasi penolakan 100%. Nilai tersebut didapat dari nilai FAR dan FRR yang sangat kecil (5% dan 0%) yang menunjukkan bahwa sistem ini memiliki tingkat keberhasilan tinggi.
Metode baru ini bisa dikatakan lebih unggul dari metode menghitung panjang dan lebar telapak tangan, dan dengan menghitung garis tangan karena memiliki nilai FRR yang lebih kecil.
V.2 Saran
Untuk pengembangan selanjutnya, perangkat lunak akan lebih baik jika menggunakan parameter yang lebih banyak lagi seperti tebal jari, panjang dan lebar buku jari.
Sistem akan lebih baik lagi bila ditambahkan dengan komponen hardware-nya, terutama untuk proses scanning input.
Sistem verifikasi ini bisa dikembangkan ke arah sistem online dan diterapkan untuk bidang aplikasi tertentu, seperti aplikasi sistem absensi, aplikasi sistem keamanan, dan aplikasi lainnya.
(5)
DAFTAR PUSTAKA
1. Adi Kurniadi, ”Pemrograman Microsoft Visual Basic 6.0”, PT.Elexmedia Komputindo,Jakarta,2000.
2. Achmad Basuki, Paladi, F. Jozua & Fatchrrochman, “Pengolahan citra digital menggunakan visual basic”, Graha Ilmu,Yogyakarta, 2005.
3. Drs.Ario Suryo Kusumo, “Buku Latihan Microsoft Visual Basic 6.0”, PT.Elexmedia Komputindo,Jakarta,2000.
4. Eric A.Smith, “Visual Basic 6 Bible” , IDG Books Worldwide,United States of America,1998.
5. Kaswady, Hendrick: “Pengembangan Program Pengenalan Telapak Tangan Dengan Metode Menghitung Panjang dan Lebar Jari” ,Buku Tugas Akhir Jurusan Teknik Elektro,Universitas Kristen Maranatha,Bandung.
6. MADCOMS, “Mahir Dalam 7 hari Pemrograman Visual Basic 6.0”, Andi,Yogyakarta,2005.
7. Putra, Reza Indra (0222098), Sistem Verifikasi dengan Menggunakan Biometrika Telapak Tangan, Buku Laporan Tugas Akhir Jurusan Teknik Elektro, Universitas Kristen Maranatha, 2006
8. Ratnadewi, Hendrick Kaswady, ”The Palm Recognition Using Calculating Fingers Length And Width Method” , Proceeding he 3rt International Conference On Product Design And Development 2007 (13 sampai IV-19).
(6)
9. www.Biometrics.dod.mil, 21 Februari 2007.
10. www.Biometrics.gov, 10 Juli 2007.