Pengembangan Program Verifikasi Telapak Tangan Dengan Metode Menghitung Panjang dan Lebar Ruas Jari.

(1)

i Universitas Kristen Maranatha

PENGEMBANGAN PROGRAM VERIFIKASI TELAPAK

TANGAN DENGAN METODE MENGHITUNG PANJANG

DAN LEBAR RUAS JARI

Yudhi Sanjaya/0322106

Jurusan 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.