Penerapan jaringan syaraf tiruan untuk pembuatan sistem pengenalan tanda tangan.

(1)

Tanda tangan merupakan salah satu cara yang digunakan sebagai sistem autentifikasi dalam sebuah instansi, atau perusahaan-perusahaan besar khususnya. Hal ini digunakan untuk dapat menjaga kerahasiaan data didalamnya. Dalam skripsi ini dibuat sebuah sistem yang dapat mengenali tanda tangan dengan menggunakan jaringan syaraf tiruan khususnya metode backpropagation.

Backpropagation yang digunakan dalam pembuatan sistem ini adalah backpropagation standar. Arsitektur jaringan yang digunakan terdiri dari sebuah layar input dengan 2500 neuron, sebuah layar tersembunyi yang terdiri dari 5 neuron dan sebuah layar output dengan 5 neuron (2500 – 5 – 5).

Data yang digunakan untuk training adalah data tanda tangan yang diambil dari 5 orang, dimana setiap orang membubuhkan 10 buah tanda tangan. Hasil yang dicapai dari sistem ini menunjukkan bahwa semakin banyak jumlah pola pelatihan, maka semakin besar pula kemungkinan pola akan dikenali. Pola dapat dikenali sebesar 83 % untuk pengujian pola dengan 25 data training (50 % data), 90% untuk pengujian pola dengan 30 data training (60 % data) dan 94 % untuk pengujian pola dengan 35 data training (70 % data).


(2)

Signature represent one of method that used for the aunthentification system in a institution, or big companys specially. This is used to be able keep of data secret in it. In this scripsi made a system able to recognize signature by using artificial neural network specially method of backpropagation.

Backpropagation which is used in making of this system is a standard backpropagation. Network architecture that used is consist of a input layer with 2500 neuron, a hidden layer which consist of 5 neuron and a output layer with 5 neuron ( 2500 - 5 - 5).

Data used for training is signature had taken from 5 people, where each and everyone give 10 signature. Result of this system indicate that more and more amount of training pattern, hence ever greater also possibility of pattern will recognize. Pattern can recognize equal to 83 % for the testing of pattern by 25 training set ( 50 % data), 90% for the testing of pattern by 30 training set (60 % data) and 94 % for the testing of pattern by 35 training set ( 70 % data).


(3)

SKRIPSI

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains

Program Studi Ilmu Komputer

Oleh:

Pristina Mayrita Naibaho NIM: 023124021

PROGRAM STUDI ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SANATA DHARMA

YOGYAKARTA 2007


(4)

(5)

(6)

Whene’er i come to Jesus, When troubled or distressed,

I always find a refuge When i with Him can rest....

In times of joy or sorrow, Whate’er my need may be I can always come to Jesus,

And Jesus comfort me....

” Sebab di dalam Dialah tersembunyi segala harta hikmat dan pengetahuan. In whom are hide all the treasures of wisdom and knowledge (Kol 2;3) “

Karya ini kupersembahkan untuk :

The Lord Almighty.

Thanks Jesus, You are so good to me....

You are my all in all.. Without You, i’m nothing at all..

Bapakku P. Naibaho, Spd & Mamaku D. Nadeak yang selalu setia

mendoakanku, mendukung dan memberiku kesempatan untuk memulai dari yang baru.

Abang-abangku :

Saut Maruli Naibaho, Am.T.

Andy Juliver Naibaho S.T. dan my Sister in law Netty

Nainggolan,Am,Keb. and my little nephew Rafael..

Jantri Musa Marolop Naibaho S.T. My little Sister Erita Marlina Naibaho ☺

 

Thanks Buat semua cinta yang diberikan buat aku,   Finally i can finish..  


(7)

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah

Yogyakarta, 28 Maret 2007 Penulis


(8)

Tanda tangan merupakan salah satu cara yang digunakan sebagai sistem autentifikasi dalam sebuah instansi, atau perusahaan-perusahaan besar khususnya. Hal ini digunakan untuk dapat menjaga kerahasiaan data didalamnya. Dalam skripsi ini dibuat sebuah sistem yang dapat mengenali tanda tangan dengan menggunakan jaringan syaraf tiruan khususnya metode backpropagation.

Backpropagation yang digunakan dalam pembuatan sistem ini adalah backpropagation standar. Arsitektur jaringan yang digunakan terdiri dari sebuah layar input dengan 2500 neuron, sebuah layar tersembunyi yang terdiri dari 5 neuron dan sebuah layar output dengan 5 neuron (2500 – 5 – 5).

Data yang digunakan untuk training adalah data tanda tangan yang diambil dari 5 orang, dimana setiap orang membubuhkan 10 buah tanda tangan. Hasil yang dicapai dari sistem ini menunjukkan bahwa semakin banyak jumlah pola pelatihan, maka semakin besar pula kemungkinan pola akan dikenali. Pola dapat dikenali sebesar 83 % untuk pengujian pola dengan 25 data training (50 % data), 90% untuk pengujian pola dengan 30 data training (60 % data) dan 94 % untuk pengujian pola dengan 35 data training (70 % data).


(9)

Signature represent one of method that used for the aunthentification system in a institution, or big companys specially. This is used to be able keep of data secret in it. In this scripsi made a system able to recognize signature by using artificial neural network specially method of backpropagation.

Backpropagation which is used in making of this system is a standard backpropagation. Network architecture that used is consist of a input layer with 2500 neuron, a hidden layer which consist of 5 neuron and a output layer with 5 neuron ( 2500 - 5 - 5).

Data used for training is signature had taken from 5 people, where each and everyone give 10 signature. Result of this system indicate that more and more amount of training pattern, hence ever greater also possibility of pattern will recognize. Pattern can recognize equal to 83 % for the testing of pattern by 25 training set ( 50 % data), 90% for the testing of pattern by 30 training set (60 % data) and 94 % for the testing of pattern by 35 training set ( 70 % data).


(10)

Puji syukur pada Tuhan Yesus Kristus yang telah melimpahkan rahmat dan kasih-Nya sehingga penulis bisa menyelesaikan skripsi ini.

Skripsi ini ditulis untuk memenuhi salah satu syarat memperoleh gelar sarjana sains Fakultas Matematika dan Ilmu Pengetahuan Alam, Program Studi Ilmu Komputer Universitas Sanata Dharma.

Dalam penulisan skripsi penulis menyadari banyak pihak yang telah memberikan sumbangan baik pikiran, waktu, tenaga, bimbingan dan dorongan pada penulis sehingga akhirnya skripsi ini dapat selesai. Oleh karena itu dengan segala kerendahan hati penulis menyampaikan ucapan terima kasih kepada :

1. Bapak Aris Dwi Atmoko selaku Dekan Fakultas MIPA.

2. Bapak Drs. J.J. Siang, M.Sc selaku dosen pembimbing untuk kesabaran, bantuan dan arahan selama penulis menyusun skripsi.

3. Ibu P.H. Prima Rosa selaku KaProDi Ilmu Komputer untuk bantuan dan dorongan yang diberikan selama kuliah.

4. Bapak St. Eko Hari Permadi, selaku dosen penguji. 5. Bapak Y. Joko Nugroho, selaku dosen penguji.

6. Seluruh Dosen Ilmu Komputer yang telah membimbing penulis selama belajar di Sanata Dharma.

7. Pak Tukijo, Ibu Warni, mbak Linda, serta mas Susilo dan mas Widodo atas bantuan teknis selama ini.


(11)

Tik” , Anell “Jeng Sri”, Kris “Bunda”..Ayo piknik..

9. Sister and Brother in PMK OIKUMENE: Tassa, Asih&Wahyu, Daniel, Agung, April&Ray, Elis, Vika, Ridwan, Citra&Frans, Priskila, Tias, Putri, Wahyu&Dian, dan semua teman2 PMK, thanks for doa&dukungannya.

10.Sahabat-sahabatku di KOST “ICHA”: Techa, Cicil, Ratih, Via, Ijup, Lusi, Mba Nia, Indri, dan Ana. Thanks buat kebersamaannya selama ini.. Kepolosan kalian mendewasakanku.. Love u all...

11.My old friends, Mba Ninuk, Mba Nina, Tika, Lina nova, and especially Bang Cipto, thanks buat kesetiaannya, tuk tetap menyemangati aku..

12.All Friends in solafide..I love U all, tetap setia melayani Tuhan.

13.Kakak-kakakku, Mas Budi, Mas Indra, Mas Dewa, Bang Egie, Bang Ajie, Mas Leo, Mas Prio, Mba Niken, dan semua ikom 03, 01, 00. Thankyu....

14.Semua pihak yang tidak dapat disebutkan satu persatu, terima kasih telah membantu dalam menyelesaikan tugas akhir ini

Penulis menyadari masih banyak kekurangan dalam penulisan skripsi ini, oleh karena itu dengan kerendahan hati penulis mengharapkan kritik dan saran guna penyempurnaan skripsi ini. Akhirnya penulis berharap semoga skripsi ini berguna bagi semua pihak.


(12)

HALAMAN JUDUL ... i

HALAMAN PERSETUJUAN PEMBIMBING ... ii

HALAMAN PENGESAHAN ... iii

HALAMAN PERSEMBAHAN ... iv

PERNYATAAN KEASLIAN KARYA ... v

ABSTRAK ... vi

ABSTRACT ... vii

KATA PENGANTAR... viii

DAFTAR ISI ... x

DAFTAR TABEL ... xiv

DAFTAR GAMBAR ... xv

BAB I. PENDAHULUAN ... 1

A. Latar Belakang ...………..…... 1

B. Rumusan Masalah ... 2

C. Batasan Masalah ... 2

D. Metodologi ... 3

E. Manfaat Penelitian ... 4

F. Sistematika Penulisan ... 4

BAB II. DASAR TEORI ... 6

A. Jaringan Syaraf Biologi ... 6

B. Backpropagation ... 6


(13)

4. Pemilihan Bobot dan Bias ... 10

5. Jumlah Unit Tersembunyi ... 11

6. Jumlah Pola Pelatihan ... 11

7. Jumlah Iterasi ... 12

C. Preprocessing (Pra pengolahan Citra) ... 12

BAB III. ANALISIS DAN PERANCANGAN ... 14

A. Analisa Sistem ... 14

B. Analisa Kebutuhan Hardware dan Software... 16

1. Analisa Kebutuhan Hardware ... 16

2. Analisa Kebutuhan Software ... 17

C. Perancangan User Interface ... 17

1. Perancangan Form Pembuka ... 19

2. Perancangan Form Menu Utama Program ... 20

3. Perancangan Form Data Baru ... 21

4. Perancangan Form Training ... 22

a. Form Masukan Data ... 22

b. Form Pelatihan ... 23

c. Form Hasil Training ... 24

5. Perancangan Form Testing ... 25

6. Perancangan Form Keputusan ... 26


(14)

1. Proses Input data baru ... 29

2. Proses Preprocessing ... ... 30

3. Proses Training ... 31

4. Proses Testing ... 33

BAB IV. IMPLEMENTASI DAN PEMBAHASAN... 35

A. Implementasi ... 35

1. Proses Data Baru ... 35

2. Proses Pelatihan ... 36

a. Proses Pengambilan gambar ... 36

b. Proses Preprocessing... 37

c. Proses Pelatihan ... 38

3. Proses Testing ... 39

B. Antar Muka Pengguna (User Interface) ... 40

1. Tampilan Awal Program ... 40

2. Tampilan Menu ... 41

C. Pembahasan Program ... 47

1. Jumlah Epoch ... 47

2. Batas Toleransi ... 49

3. Fungsi Pelatihan ... 50

4. Hidden Layer ... 51

5. Pengujian Pola ... 52


(15)

d. Hasil Pengujian ... 59

BAB V. KESIMPULAN DAN SARAN... 60

A. Kesimpulan... 60

B. Saran... 61

DAFTAR PUSTAKA... 62


(16)

Tabel 4.1. Hubungan antara jumlah Epoch dengan error training... 48

Tabel 4.2. Hubungan antara batas toleransi dengan error training ... 49

Tabel 4.3. Hubungan antara fungsi pelatihan dengan jumlah epoch, waktu iterasi dan error training ... 50

Tabel 4.4. Hubungan antara jumlah unit hidden layer dengan error training ... 51

Tabel 4.5. Pembagian pola pelatihan dan pola pengujian ... 53

Tabel 4.6. Hasil pengujian terhadap 25 data training ... 54

Tabel 4.7. Hasil pengujian terhadap data testing ... 54

Tabel 4.8. Hasil pengujian terhadap data lain ... 55

Tabel 4.9. Pembagian pola pelatihan dan pola pengujian ... 56

Tabel 4.10. Pengujian pola terhadap data training ... 56

Tabel 4.11. Pengujian pola terhadap data testing ... 56

Tabel 4.12. Pengujian pola terhadap data lain ... 57

Tabel 4.13. Pola pelatihan dan pola pengujian ... 57

Tabel 4.14. Pengujian pola terhadap data training ... 58

Tabel 4.15. Pengujian pola terhadap data testing ... 58

Tabel 4.16. Pengujian pola terhadap data lain ... 59


(17)

Gambar 2.1. Susunan Syaraf Manusia ... 6

Gambar 2.2. Arsitektur Jaringan Backpropagation... 7

Gambar 3.1. Flowchart (Alur Kerja) Jaringan syaraf tiruan... 15

Gambar 3.2. Flowchart Sistem Secara Umum ... 18

Gambar 3.3. Perancangan Awal Program ... 19

Gambar 3.4. Perancangan Menu Utama Program ... 20

Gambar 3.5. Perancangan Form Data Baru ... 21

Gambar 3.6. Perancangan form masukan data training ... 22

Gambar 3.7. Perancangan Form Pelatihan... 23

Gambar 3.8. Perancangan form hasil training ... 24

Gambar 3.9. Perancangan Form Testing ... 25

Gambar 3.10. Perancangan form keputusan ... 26

Gambar 3.11. Arsitektur Jaringan ... 28

Gambar 3.12. Flowchart proses Input data baru ... 29

Gambar 3.13. Flowchart Proses Preprocessing ... 30

Gambar 3.14. Flowchart proses training ... 32

Gambar 3.15. Flowchart proses testing ... 34

Gambar 4.1. Tampilan awal Program ... 40

Gambar 4.2. Tampilan Menu ... 41

Gambar 4.3. Tampilan Konfirmasi keluar ... 41


(18)

Gambar 4.6. Pesan kesalahan jika masukan berupa string ... 43

Gambar 4.7. Pesan kesalahan jika masukan user lebih dari 30 ... 44

Gambar 4.8. Form training ... 44

Gambar 4.9. Form hasil training ... 45

Gambar 4.10. Form Testing ... 46

Gambar 4.11. Form keputusan ... 46

Gambar 4.12 . Form About Us ... 47

Gambar 4.13. Grafik hubungan antara jumlah epoch dan error training .. 48

Gambar 4.14. Grafik hubungan antara toleransi kesalahan dengan error training ... 49

Gambar 4.15 Grafik hubungan antara jumlah unit hidden layer dengan error training ... 52


(19)

BAB I PENDAHULUAN

A. Latar Belakang

Data merupakan kumpulan dari fakta-fakta yang sering digunakan dalam mengolah ataupun memproses segala sesuatu. Khususnya dalam sebuah instansi atau organisasi, ada banyak data yang terdapat didalamnya. Baik itu data administrasi, data perusahaan, ataupun data data penting lainnya. Dalam hal ini dibutuhkan sistem keamanan dan kerahasiaan data yang bagus untuk menjamin tersimpannya data dengan baik, mengingat banyaknya terjadi pembobolan data akhir-akhir ini oleh pihak yang tidak bertanggung jawab.

Terdapat macam-macam sistem yang digunakan untuk autentifikasi data, antara lain sistem keamanan sidik jari, pengenalan wajah, biometrik, sistem kemanan barcode, tanda tangan ataupun sistem keamanan lainnya. Yang akan dibahas dalam hal ini adalah sistem autentifikasi dengan menggunakan tanda tangan.

Tanda tangan merupakan salah satu cara yang digunakan sebagai sistem autentifikasi dalam sebuah instansi, atau perusahaan-perusahaan besar khususnya. Hal ini digunakan untuk dapat menjaga kerahasiaan data. Jadi setiap orang yang akan berhubungan dengan data khususnya data penting, mereka dapat mengakses data hanya jika tanda tangan mereka sesuai dengan tanda tangan yang terdapat dalam daftar. Misalnya seseorang ingin mengakses data penting, Untuk mengijinkan dia masuk, orang itu harus tanda tangan, kemudian tanda tangan itu


(20)

akan dikenali, apakah sesuai dengan pemilik tanda tangan aslinya. Jika sesuai, maka orang tersebut akan diijinkan masuk dan boleh mengakses data. Tapi jika tanda tangannya tidak sesuai atau tanda tangannya tidak dikenali, maka orang tersebut tidak diperbolehkan untuk masuk dan mengakses data. Jadi tanda tangan tersebut berguna sebagai tanda pengenal seseorang untuk dapat mengakses data penting.

Metode yang digunakan untuk mengenali tanda tangan seseorang yaitu dengan memakai jaringan syaraf tiruan dengan metode backpropagation. Metode back propagation merupakan metode yang tepat untuk mengenali sebuah pola tanda tangan karena metode ini menggunakan pelatihan berulang-ulang sehingga dapat menjamin keakuratan data. Langkah yang dilakukan sebelum pada tahap Jaringan Syaraf Tiruan adalah preprocessing. Dengan beberapa kali pelatihan pengenalan pola diharapkan metode ini dapat mengenali tanda tangan.

B. Rumusan Masalah

Yang menjadi bahasan penulisan tugas akhir ini adalah bagaimana membuat sebuah sistem yang dapat mengenali tanda tangan dengan menggunakan jaringan syaraf tiruan khususnya metode backpropagation.

C. Batasan Masalah

Agar penulisan tugas akhir tidak terlalu jauh dari tujuan maka akan dibatasi pada :


(21)

2. Model jaringan yang digunakan adalah jaringan Back Propagation 3. Input yang digunakan berupa file tanda tangan dengan format .jpg. 4. Implementasi sistem menggunakan Matlab 6.5 dari MathWork

D. Metodologi

Metode yang digunakan dalam penyelesaian tugas akhir ini akan dijelaskan dalam tahap-tahap berikut ini :

1. Pengambilan sampel

Pada tahap ini yang dilakukan adalah pengambilan sampel tanda tangan yang digunakan sebagai template dan input dalam proses pengenalan tanda tangan. Tanda tangan diambil dari 5 orang dimana setiap orang membubuhkan10 tanda tangan, sehingga semua tanda tangan berjumlah 50 buah.

2. Preprocessing

Yang dilakukan pada tahap ini adalah pengubahan gambar menjadi citra digital, pemotongan gambar (cropping image), binerisasi citra dan pengubahan ukuran gambar.

3. Pelatihan dan Pengujian

Pada tahap ini yang dilakukan adalah pelatihan dan pengujian tanda tangan. Metode pembelajaran yang digunakan dalam pelatihan dan pengujian jaringan ini adalah backpropagation atau dikenal dengan generalisasi delta rule.


(22)

4. Pengambilan Keputusan

Pada tahap ini akan diambil keputusan mengenai tanda tangan, misalnya keputusan apakah tanda tangan tersebut dikenali atau tidak. Keputusan diambil berdasarkan langkah-langkah sebelumnya.

5. Penulisan Program

Pada tahap ini mulai menulis program yang akan dipakai dalam pengenalan tanda tangan dengan merepresentasikan langkah-langkah diatas kedalam sebuah program. Program yang dipakai adalah Matlab 6.5. 6. Pengujian terhadap sistem

Tahap ini dilakukan untuk mengetahui apakah sistem sesuai dengan yang diinginkan, juga digunakan untuk mengetahui kesalahan yang masih mungkin terjadi.

E. Manfaat Penelitian

Dengan dibuatnya sistem ini diharapkan dapat membantu pihak/instansi dalam melakukan autentikasi data, yaitu mampu membantu mengenali pola tanda tangan seseorang demi terciptanya keamanan dalam mengakses data.

F. Sistematika Pembahasan


(23)

Bab I Pendahuluan

Berisi mengenai Latar belakang penulisan, rumusan masalah, batasan masalah, manfaat penulisan tugas akhir, metode penelitian dan sistematika penulisan

Bab II Landasan Teori

Berisi mengenai pengertian dari jaringan syaraf tiruan, pengenalan tanda tangan, algoritma back propagation, pre-processing.

Bab III Analisis dan Perancangan

Berisi tentang analisis sistem, perancangan atau desain program termasuk user interface, proses pre processing, proses pelatihan dan pengujian, pengambilan keputusan serta perancangan mesin inference.

Bab IV Implementasi dan pembahasan

Berisi tentang hasil pembuatan program dan penjelasan atau analisis program, diagram alir, serta beberapa contoh keluaran dari data yang dimasukkan serta pembahasan program.

Bab V Kesimpulan dan Saran

Berisi beberapa kesimpulan dan saran berdasarkan hasil pembuatan program dan pembahasan program.


(24)

BAB II

LANDASAN TEORI

A. Jaringan Syaraf Biologi

Otak manusia memiliki struktur yang sangat kompleks dan memiliki kemampuan yang luar biasa. Otak manusia berisi jutaan sel syaraf yang bertugas untuk memproses informasi. Tiap-tiap sel bekerja seperti suatu processor sederhana. Masing-masing sel tersebut saling berinteraksi sehingga mendukung kemampuan kerja otak manusia. Otak terdiri dari neuron-neuron dan penghubung yang disebut sinapsis. Neuron bekerja berdasarkan inpuls/sinyal yang diberikan kepada neuron. Neuron meneruskannya pada neuron lain. Diperkirakan manusia memiliki 1012 neuron dan 6.1018 sinapsis.

Gambar 2.1. Susunan syaraf manusia

Nucleus Synapses

Axon Dendrite

B. Backpropagation

Backpropagation merupakan salah satu metode pembelajaran yang terawasi (supervised training). Backpropagation melatih jaringan untuk mendapatkan keseimbangan antara kemampuan jaringan untuk mengenali pola


(25)

yang digunakan selama pelatihan serta kemampuan jaringan untuk memberikan respon yang benar terhadap pola masukan yang serupa dengan pola yang dipakai pada saat pelatihan. Algoritma Backpropagation menggunakan error output untuk

mengubah nilai bobot-bobotnya dalam arah mundur (backward). Untuk

mendapatkan error ini, tahap perambatan maju (forward propagation) harus

dikerjakan terlebih dahulu. Pada saat perambatan maju, neuron – neuron diaktifkan dengan menggunakan fungsi aktivasi sigmoid yaitu :

x

e x

f

+ =

1 1 ) (

1. Arsitektur Backpropagation

Gambar 2.2. Arsitektur jaringan Backpropagation

Gambar diatas merupakan gambar arsitektur jaringan Backpropagation

dengan sebuah layar input dengan n unit masukan ditambah dengan sebuah bias.

Dalam gambar tersebut juga terdapat sebuah layar tersembunyi dengan p unit


(26)

Bias merupakan parameter neuron yang dijumlahkan dengan bobot input neuron dan diteruskan ke fungsi transfer neuron untuk meng-generate output neuron. Biasanya bias bernilai 1.

Layar tersembunyi merupakan layar dari jaringan dimana layar ini tidak

menerima input dari luar jaringan dan tidak mengirimkan output ke luar jaringan.

Disebut hidden layer karena layar ini hanya menerima input internal (input dari

processing lain) dan menghasilkan output internal (output ke unit processing lain).

2. Pelatihan standar Backpropagation

Pelatihan Backpropagation meliputi 3 fase. Fase pertama ialah fase maju (Forward Chaining) dimana pola masukan dihitung maju mulai dari layar masukan hingga layar keluaran dengan menggunakan fungsi aktivasi yang

ditentukan. Fase kedua adalah fase mundur (backward Chaining). Dalam fase ini

selisih antara keluaran jaringan dengan target yang diinginkan merupakan kesalahan yang terjadi. Kesalahan tersebut dipropagasikan mundur, dimulai dari garis yang berhubungan langsung dengan unit-unit dilayar keluaran. Fase ketiga adalah modifikasi bobot untuk menurunkan kesalahan yang terjadi.

3. Algoritma Pelatihan Backpropagation

1. Inisialisasi semua bobot-bobot dengan bilangan acak kecil.

2. Jika kondisi penghentian belum terpenuhi, lakukan langkah berikut :

a. Untuk setiap pasang data pelatihan, lakukan langkah berikut :


(27)

i. Tiap unit masukan menerima sinyal dan meneruskannya ke unit tersembunyi diatasnya.

ii. Hitung semua keluaran di unit tersembunyi zj (j=1,2,3,...,p)

= + = n i ji i jo

j v xv

net z 1 _ j net z j j e net z f z _ 1 1 ) _ ( + = =

iii. Hitung semua keluaran jaringan di unit yk (k=1,2,...,m)

= + = p j kj j k

k w z w

net y 1 0 _ k net y k k e net y f y _ 1 1 ) _ ( + = =

Fase II : Propagasi mundur

iv. Hitung faktor δ unit keluaran berdasarkan kesalahan di

setiap unit keluaran yk(k=1,2,...,m)

) 1 ( ) ( ) _ ( '

k =(tkyk)f y netk = tkyk ykyk

δ

δk merupakan unit kesalahan yang akan dipakai dalam

perubahan bobot layar dibawahnya (langkah v)

Hitung suku perubahan bobot wkj (yang akan dipakai nanti

untuk merubah bobot wkj) dengan laju percepatan α.

j k

kj z

w =αδ

Δ ; k=1, 2, ..., m ; j=0, 1, ..., p

v. Hitung faktor δ unit tersembunyi berdasarkan kesalahan di


(28)

= = m k kj k j w net 1 _ δ δ

Faktor δ unit tersembunyi :

) 1 ( _ ) _ ( '

_ j j j j j

jnet f z netnet zz

δ

Hitung suku perubahan bobot vji (yang akan dipakai nanti

untuk merubah bobot vji)

Δvji=αδj xi ; j=1, 2, ..., p ; i=0, 1, ..., n

Fase III : Perubahan bobot

vi. Hitung semua perubahan bobot

Perubahan bobot garis yang menuju ke unit keluaran :

wkj(baru)=wkj(lama)+ Δwkj (k=1, 2, ..., m ; j=0, 1, ..., p)

Perubahan bobot garis yang menuju ke unit tersembunyi :

vji(baru)=vji(lama)+ Δvji (j=1, 2, ..., p ; i=0, 1, ..., n)

Setelah proses pelatihan selesai dilakukan, jaringan dapat dipakai untuk mengenali pola. Dalam hal ini, hanya propagasi maju saja yang digunakan

untuk pengujian (testing) yang bertujuan untuk menentukan keluaran

jaringan. Selain itu proses pengujian ini juga bertujuan untuk mengetahui keakuratan jaringan syaraf tiruan yang sebelumnya dilatih.

4. Pemilihan Bobot dan Bias

Bobot awal akan mempengaruhi apakah jaringan mencapai titik minimum lokal atau global terhadap nilai error, dan cepat tidaknya proses pelatihan menuju kekonvergenan.


(29)

Apabila nilai bobot awal terlalu besar, maka input ke setiap lapisan tersembunyi atau lapisan output akan jatuh pada daerah dimana turunan sigmoidnya sangat kecil. Dan jika bobot awal terlalu kecil, maka proses pelatihan akan menjadi lambat. Oleh karena itu dalam standar backpropagation, bobot dan bias diisi dengan bilangan acak kecil. Prosedur umum untuk menginisialisasi bobot dan bias adalah nilai acak antara -0.5 dan 0.5. Cara lain untuk membuat inisialisasi bobot dan bias awal ke unit tersembunyi dapat dilakukan dengan menggunakan metode Nguyen-Widrow.

5. Jumlah Unit Tersembunyi

Pada dasarnya tidak ada aturan khusus untuk menetapkan jumlah layar tersembunyi yang akan digunakan. Jaringan dengan sebuah layar tesembunyi sudah cukup bagi backpropagation untuk mengenali sembarang perkawanan antara masukan dan target dengan tingkat ketelitian yang ditentukan. Tetapi penambahan jumlah layar tersembunyi dapat membuat pelatihan lebih mudah.

6. Jumlah Pola Pelatihan

Dalam Hal ini juga tidak ada kepastian tentang berapa banyak pola yang akan digunakan agar jaringan dapat dilatih dengan sempurna. Jumlah pola yang dibutuhkan dipengaruhi oleh banyaknya bobot dalam jaringan serta tingkat akurasi yang diharapkan.


(30)

7. Jumlah iterasi

Jumah iterasi digunakan sebagai kondisi penghentian dari pelatihan backpropagation. Jumlah iterasi ditentukan oleh user sendiri, karena tidak ada aturan untuk menentukan jumlah iterasi. Dalam pelatihan backpropagation, iterasi akan dihentikan jika jumlah iterasi yang dilakukan sudah melebihi jumlah maksimum iterasi yang ditetapkan, atau kesalahan yang terjadi sudah lebih kecil dari batas toleransi yang diijinkan.

C. Pengenalan Pola

Pola adalah suatu entitas yang dapat didefinisikan (mungkin secara samar) dan dapat diberi suatu identifikasi atau nama. Contoh: gelombang suara, sidik jari, raut wajah, penutup lahan dll. Pengenalan pola bertujuan menentukan kelompok atau kategori pola berdasarkan ciri-ciri yang dimiliki pola tersebut.

D. Preprocessing (Pra Pengolahan Citra)

Secara harafiah, citra (image) adalah sebuah gambar pada bidang

dwimatra (dua dimensi). Ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dwimatra. (Munir, 2004)

Preprocessing merupakan proses awal yang dilakukan untuk memperbaiki kualitas citra (edge enhancement) dengan menggunakan teknik-teknik pengolahan citra.


(31)

Pengolahan citra bertujuan memperbaiki kualitas citra agar mudah diinterpretasikan oleh manusia atau mesin komputer. Terdapat macam-macam operasi pengolahan citra, diantaranya :

a. Pengubahan ukuran gambar (resize)

Pengubahan ukuran gambar berarti mengubah citra dari ukuran semula ke ukuran yang diinginkan.

b. Pemotongan gambar (cropping)

Cropping atau pemotongan gambar merupakan salah satu operasi dari pengolahan citra dimana operasi ini bertujuan untuk mengubah gambar menjadi ukuran yang spesifik.

c. Konversi citra warna menjadi citra biner (binerisasi)

Citra biner merupakan citra yang hanya mempunyai dua nilai derajat keabuan yaitu hitam dan putih. Pixel-pixel objek bernilai 1 dan pixel-pixel latar belakang bernilai 0. Pada waktu menampilkan gambar, 0 adalah putih, dan 1 adalah hitam. Citra biner banyak diaplikasikan di berbagai operasi pemrosesan pengenalan objek, salah satunya untuk pengenalan objek tanda tangan.


(32)

BAB III

ANALISIS DAN PERANCANGAN A. Analisa Sistem

Sistem yang dibuat adalah sistem untuk pengenalan pola tanda tangan, bertujuan untuk membantu user dalam mengenali tanda tangan seseorang dengan menggunakan algoritma pembelajaran Jaringan Syaraf Tiruan.

Dalam sistem ini akan digunakan algoritma pembelajaran backpropagation standar, dimana dalam pembelajaran ini akan dicari penyelesaian yang paling optimal untuk pengenalan sebuah pola tanda tangan.

Dalam pengenalan tanda tangan ini, pola masukan tanda tangan akan dibandingkan dengan target yang ingin dicapai. Pola tanda tangan akan dibagi menjadi dua yaitu data pelatihan dan data pengujian. Data pelatihan akan digunakan untuk proses pelatihan dan data pengujian akan digunakan untuk proses pengujian. Hasil proses pelatihan akan digunakan untuk proses pengujian, dimana hasilnya berupa output tanda tangan hasil pengujian dan informasi apakah tanda tangan tersebut dapat dikenali atau tidak. Jika tanda tangan dikenali, maka sistem akan memberi informasi tentang identitas pemilik tanda tangan tersebut.


(33)

Alur Kerja dari Jaringan Syaraf tiruan untuk pengenalan tanda tangan

Gambar 3.1. Flowchart (Alur Kerja) Jaringan syaraf tiruan - Input

Merupakan masukan berupa tanda tangan dengan format .jpg, dan sudah diubah menjadi citra digital.

- Image Processing

Proses ini merupakan proses pengolahan citra, dimana citra yang diolah adalah gambar tanda tangan yang sudah di scan sebelumnya. Citra awal yang diambil oleh user merupakan citra RGB 3 dimensi.

Binerisasi citra dilakukan untuk mengubah citra menjadi citra grayscale yang bernilai 0 dan 1.

Pemotongan gambar (Cropping), yaitu memotong gambar sedemikian rupa sehingga citra tepat berada di tepi batas. Pemotongan dilakukan dengan menghilangkan informasi citra yang bernilai 1.


(34)

Pengubahan ukuran gambar (Resize) dilakukan agar citra lebih mudah untuk diolah dalam proses neural network. Ukuran citra diubah menjadi citra dengan ukuran 50 x 50.

- Neural Network

Proses ini digunakan pada saat pelatihan dan pengujian. Jaringan syaraf yang digunakan adalah jaringan syaraf backpropagation dengan sebuah input yang terdiri dari 2500 neuron, sebuah layar hidden dengan 5 unit, dan 5 buah target. Bobot awal yang digunakan merupakan bilangan random bukan 0.

- Output

Setelah melalui 3 proses diatas, maka program akan mengeluarkan output, yang berupa keterangan apakah tanda tangannya dikenali atau tidak. Jika dikenali, maka program akan menampilkan tanda tangannya beserta biodata dari pemilik tanda tangan tersebut. Jika tidak, program akan menampilkan tanda tangan dan pesan bahwa tanda tangan tidak dikenali.

B. Analisa Kebutuhan Hardware dan Software 1. Analisa kebutuhan hardware

Kebutuhan hardware merupakan kebutuhan akan perangkat keras komputer untuk mendukung sistem yang akan dibuat. Yang dibutuhkan untuk membangun sistem ini antara lain :

1. Main board : Asus P4S533X 2. Procesor : Intel P4 1.8 GHz


(35)

3. Memori : RAM 256 MB 4. Hard disk : HDD 40 Gbyte 5. VGA Card : AGP 64 Mb Geforce 6. Monitor : LG 15’

7. Disk Drive : LiteOn 52x

2. Analisis kebutuhan software

Analisis kebutuhan software untuk mendukung pengoperasian dan pengembangan sistem.

1. Sistem operasi : Sistem Operasi Windows XP 2. Source Code : Matlab 6.5

3. Browser : Internet Explorer dan Mozila Firefox 4. Data base : SQLyog

C. Perancangan User Interface

Program dirancang dengan menggunakan GUI (Graphical User Interface) dari Matlab 6.5. Program ini dirancang memiliki 4 buah menu yaitu menu File, Input, Run, dan Help.

- Menu File berisi sub menu exit, digunakan untuk keluar dari program. - Menu Input berisi sub menu New Data, digunakan jika user ingin

memasukkan data baru.

- Menu Run memiliki 2 sub menu yaitu sub menu training dan testing. - Menu Help mempunyai sub menu yaitu about us, yang berisi sekilas


(36)

Start

If y=1 Menu Pilihan : 1. File 2. Input 3. Run 4. Help

Masukkan pilihan(y)?

KELUAR

If y=2 DATA BARU

If y=3

Menu Pilihan: 1. Training 2. Testing

masukkan pilihan (x) ?

If x=1 TRAINING

If x=2 TESTING

If y=4 ABOUT US

ya

tidak

ya

tidak

ya

tidak

ya

tidak

ya

ya

end


(37)

1. Perancangan Form Pembuka

JUDUL

LOGO USD

PRODI JURUSAN FAKULTAS UNIVERSITAS

TAHUN

Disusun Oleh : Dosen Pembimbing :

ENTER EXIT

Gambar 3.3. Perancangan Awal Program Rancangan form pembuka ini terdiri dari

a. 3 buah static text

3 buah static text ini digunakan untuk menampilkan judul, nama penyusun dan dosen pembimbing, dan nama prodi, jurusan, fakultas, universitas serta tahun pembuatan.

b. 1 buah Axes

Axes atau grafik disini digunakan untuk menampilkan logo dari universitas.

Axes atau grafik disini digunakan untuk menampilkan logo dari universitas.Axes atau grafik disini digunakan untuk menampilkan logo dari universitas.


(38)

c. 2 buah push button

2 buah push button atau tombol yaitu tombol exit dan tombol enter. Tombol exit digunakan untuk keluar dari form pembuka, dan tombo enter digunakan untuk masuk kedalam form menu utama.

2. Perancangan Form Menu Utama Program

Perancangan Form preprocessing

File Input Run Help

Exit New Data Training About US Testing

Gambar 3.4. Perancangan Menu Utama Program

Form menu awal program terdiri dari: sebuah menu editor, dimana didalamnya terdapat 4 buah menu.

a. Menu File

Terdiri dari sebuah sub menu yaitu sub menu exit b. Menu Input

Terdiri dari sebuah sub menu yaitu sub menu new data c. Menu Run

Terdiri dari 2 buah sub menu yaitu sub menu training dan sub menu testing


(39)

d. Menu Help

Terdiri dari sebuah sub menu yaitu sub menu about us

3. Perancangan Form Data Baru

Masukkan Nama : Masukkan Alamat : Masukkan Pekerjaan Masukkan No. Telp :

INPUT DATA

Edit Text Edit Text

Edit Text Edit Text

Ambil Gambar

Images

Menu Utama Simpan Text1

Images

Ambil Foto

Text2

Gambar 3.5. Perancangan Form Data Baru Form data baru terdiri dari

a. 4 buah edit text

Masing-masing edit text digunakan untuk isian dari nama, alamat, pekerjaan, dan no. telp.

b. 7 buah static text

5 buah static text, digunakan untuk menampilkan kalimat input data baru, masukkan nama, masukkan alamat, masukkan pekerjaan, dan masukkan no. telp. Text 1 digunakan untuk menampilkan masukan nama file tanda tangan, dan text 2 digunakan untuk menampilkan nama file gambar foto.

masukan nama file tanda tangan, dan text 2 digunakan untuk menampilkan nama file gambar foto.


(40)

c. 2 buah Axes

Axes disini digunakan untuk menampilkan gambar tanda tangan dan gambar foto yang akan dimasukkan oleh user.

d. 4 buah push button

4 buah push button atau tombol yaitu tombol ambil gambar, ambil foto, tombol back dan tombol save. Tombol ambil gambar digunakan untuk mengambil gambar tanda tangan dari file, tombol ambil foto digunakan untuk mengambil foto, tombol back digunakan untuk kembali ke menu utama, dan tombol save digunakan untuk menyimpan data yang telah dimasukkan.

4. Perancangan Form Training a. Form Masukan data

Banyaknya data yang akan ditraining

3

OK

Menu Utama

Gambar 3.6. Perancangan form masukan data training

Dalam form ini hanya terdapat sebuah edit text dan sebuah tombol OK. Edit text berfungsi sebagai masukkan data dari user, yaitu banyaknya data yang akan di training. Tombol OK berfungsi untuk melangkah ke form berikutnya yaitu form training.


(41)

b. Form Pelatihan

PELATIHAN JARINGAN

Masukkan Jumlah Epoch : Masukkan batas toleransi : Masukkan Laju Pemahaman : Jumlah Hidden Layer

Masukkan jumlah unit hidden layer :

Gambar 1 Gambar2 Gambar3

Menu Utama Bobot Latih Jaringan

Gambar 3.7. Perancangan Form Pelatihan Form pelatihan jaringan terdiri dari :

a. 6 buah static text

6 buah Static text disini hanya digunakan untuk menampilkan kalimat.

b. edit text

Masing-masing edit text digunakan untuk nama file data yang akan ditraining.

c. Pop up

Pop up digunakan untuk pilihan masukan jumlah epoch, batas toleransi kesalahan, laju pemahaman, jumlah hidden layer dan jumlah unit hidden layer

d. Push button (Tombol)

Beberapa buah tombol yaitu tombol ambil gambar, tombol keluar, tombol train, dan tombol kembali. Tombol gambar digunakan


(42)

untuk mengambil citra yang ingin di latih dari file. Tombol ini akan disesuaikan dengan banyaknya masukan data dari user. Jika user memasukkan data 3, maka tombol gambar akan mucul sebanyak 3 buah. Tombol train digunakan untuk melatih jaringan. Setiap citra yang akan dilatih harus melewati proses ini, tombol keluar digunakan jika user ingin keluar dari form pelatihan dan tombol kembali digunakan untuk kembali ke menu utama.

c. Form Hasil Training

HASIL TRAINING

Listbox 1

Listbox3 Listbox4 Listbox2

close

Gambar 3.8. Perancangan form hasil training

Form hasil training, yang terdiri dari 4 buah listbox, dimana masing-masing listbox berisikan nilai modifikasi bobot untuk


(43)

setiap layar dan nilai bias untuk setiap layar. Sebuah tombol close, digunakan untuk menutup form.

5. Perancangan Form Testing

TESTING JARINGAN

Images Pilih data ambil gambar

Lihat bobot

Uji Jaringan

Menu Utama

Gambar 3.9. Perancangan Form Testing Form testing terdiri dari :

a. 2 buah static text, digunakan untuk menampilkan text (kalimat)

b. 4 buah push button(tombol), terdiri dari tombol ambil gambar, lihat bobot, uji jaringan dan tombol keluar.

c. 1 buah axes, yaitu grafik yang digunakan untuk menampilkan citra yang dipilih user untuk dikenakan testing dan citra yang ditampilkan sudah dikenakan proses preprocessing.

masukan nama file tanda tangan, dan text 2 digunakan untuk menampilkan nama file gambar foto. masukan nama file tanda tangan, dan text 2 digunakan untuk


(44)

6. Perancangan Form Keputusan

FORM KEPUTUSAN

Berdasarkan hasil pelatihan dan pengujian diperoleh keputusan

Kode : Nama : Alamat : Pekerjaan : No. Telp :

Edit text1 Edit Text2 Edit Text3 Edit Text4 Edit Text5

Image 1

Tutup

Image 2

Gambar TTD yang diuji Hasil Keputusan :

Gambar 3.10. Perancangan form keputusan

Gambar 3.10. merupakan rancangan dari form keputusan, dimana didalamnya terdapat :

a. 8 buah static text, digunakan untuk menampilkan kalimat form keputusan, gambar tanda tangan yang diuji, hasil keputusan, berdasarkan hasil pelatihan dan pengujian, kode, nama, alamat, pekerjaan, dan no. Telp.

b. 6 buah edit text, digunakan untuk menampilkan hasil keluaran dari kode, nama, alamat, pekerjaan, dan no. Telp.

c. 1 buah pushbutton yaitu tombol tutup, yang digunakan untuk menutup form


(45)

d. 2 buah axes, digunakan untuk menampilkan tanda tangan yang diujikan dan biodata hasil pelatihan dan pengujian.

D. Perancangan Arsitektur Jaringan

Arsitektur jaringan yang digunakan dalam pengenalan tanda tangan ini adalah arsitektur jaringan dengan banyak lapisan (multilayer net). Jaringan yang dibentuk terdiri dari sebuah layar masukan (input layer), sebuah layar tersembunyi (hidden layer) dan sebuah layar keluaran (output layer).

a. Layar Input

Layar input terdiri dari 2500 elemen x1, x2, ..., x2500 dan sebuah bias b. b. Layar tersembunyi

Layar tersembunyi yang digunakan pada sistem ini hanya 1 lapis yang terdiri dari 5 neuron (y1, y2, y3, y4, dan y5) dan sebuah bias. Jumlah hidden layer ini ditentukan sendiri karena belum ada ketentuan mengenai jumlah hidden layer dan jumlah neuron pada hidden layer.

c. Layar Output

Layar output terdiri dari 5 buah neuron yang merupakan keluaran dari jaringan.

Jaringan ini memiliki 50 buah pola masukan tanda tangan dimana setiap pola memiliki ukuran matriks 50 x 50. Bentuk pola masukan berupa matriks dimana baris menyatakan banyaknya variabel dan kolom menyatakan banyaknya


(46)

pola masukan, sehingga bentuk pola masukan adalah sebuah matriks dengan ukuran 2500 x 50.gggggggggggggggggggggggggggggggggggggggggggggggg

Gambar 3.11. Arsitektur Jaringan

E. Perancangan Struktur Data geeeeeeeeeeeeeeeeeeeeeeeesssssssssssssssssss

Data untuk input sistem yang dipakai dalam program ini berupa file gambar. Dari bentuk gambar dilakukan proses binerisasi, pemotongan gambar dan pengubahan ukuran gambar. Data dalam bentuk biner ini ditampung dalam sebuah matriks dengan ukuran 2501 yang berasal dari ukuran gambar 50 x 50 dan 1 untuk menampung bias. Matriks yang bertipe biner ini digunakan sebagai masukan pada layar input.


(47)

F. Perancangan Proses 1. Proses Input data baru

Cara kerja :

1. Masukkan nama, alamat, pekerjaan, no. telp, dan gambar tanda tangan dan gambar foto.

2. Cek kelengkapan data, jika terdapat kesalahan, sistem akan menampilkan pesan kesalahan.

3. Jika data yang diisikan lengkap, data baru akan disimpan ke dalam database.

Data baru akan disimpan ke dalam tabel tanda tangan yang terdapat di database .

Nama Alamat Pekerjaan No.telp Gambar_ttd Gambar_foto

Tabel 3.1. Tabel tanda tangan Tabel tanda tangan memiliki 6 field

Nama : varchar25 Alamat : varchar25 Pekerjaan : varchar20 No. telp : varchar15 Gambar_ttd : varchar50 Gambar_foto : varchar50

menampung bias. Matriks yang bertipe biner ini digunakan sebagai masukan pada layar input.cbvcvfgdffffffffffffffffffffffffffffffffffffffffdddddddddddddddddddzsss


(48)

menampriks yang bertipe biner ini digunakan sebagai masukan pada layar input.njjdcvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvdddddddddddddddee


(49)

2. Proses Preprocessing effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Proses preprocessing digunakan agar memudahkan sistem dalam mengolah citra. Cara kerja proses preprocessing :

- Ambil gambar yang akan diolah.

- Pemotongan citra (cropping), yaitu memotong citra sedemikian rupa sehingga citra berada tepat di tepi objek.

- binerisasi citra, yaitu pengubahan citra dari RGB menjadi citra hitam putih yang bernilai 1 dan 0. angka 1 menyatakan warna putih, dan 0 menyatakan warna hitam

- Pengubahan ukuran citra menjadi citra dengan ukuran 50 x 50.

menampung bias. Matriks yang bertipe biner ii digunakan sebagai masukan pada


(50)

3. Proses training efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Cara kerja proses training :

- Masukkan banyaknya data yang akan dilatih

- Ambil data yang akan dilatih sesuai dengan banyaknya masukan data. Data yang diambil oleh user akan dikeluarkan ke program berupa nama file data.

- Masukan jumlah epoch, batas toleransi, laju pemahaman, dan jumlah unit hidden layer

- Inisialisasi bobot awal. Bobot awal di inisialisasikan pada setiap nilai x dilayar input yang terhubung ke layar tersembunyi y, dan kepada setiap nilai y dilayar tersembunyi ke layar output z. Bobot awal juga di inisialisasikan untuk setiap bias, baik itu bias di layar input dan bias di layar tersembunyi.

- Cek kesamaan input, yaitu mengecek apakah terdapat kesamaan data masukan yang diambil oleh user. Jika terdapat data yang sama, sistem akan memberi konfirmasi kesamaan data.

- Data akan dilatih dengan sehingga menghasilkan bobot – bobot baru. - Bobot – bobot baru yang dihasilkan akan disimpan untuk digunakan pada

proses testing.

menampung bias. Matriks yang bertipe biner ini digunakan sebagai masukan pada layar input. menampung bias. Matriks yang bertipe biner ini digunakan sebagai masukan pada layar input. menampung bias. Matriks yang bertipe biner ini digunakan sebagai masukan pada layar input. menampung bias. Matriks yang


(51)

digunakan sebagai masukan pada layar input. menampung bias. Matriks yang efe


(52)

4. Proses Testing effffffsssssssssssssssssseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeqqqq

Dalam proses pengujian ini, akan ditentukan keluaran akhir dari jaringan. Dalam hal ini, hanya proses maju saja yang dipakai untuk menentukan keluaran jaringan. Bobot yang digunakan dalam proses ini adalah bobot-bobot yang diperoleh dari hasil pelatihan. Proses testing dilakukan terhadap 3 model data, yaitu testing terhadap 25 data training (50 %), 30 data training (60 %) dan 35 data training (70 %). Untuk setiap model data, pola diuji terhadap 3 bagian data, yaitu pengujian terhadap data training, data testing, dan data lain.

Cara kerja proses testing:

- Ambil data nilai bobot hasil training. Bobot yang diambil berupa bobot input ke hidden layer, bobot input dari hidden layer ke output layer, nilai bias di layar input dan nilai bias di layar output

- Ambil data yang akan diuji, yang berupa gambar tanda tangan - Lakukan proses perambatan maju

- Hasil testing yang diperoleh akan dibandingkan dengan target yang terdapat di tabel kelas dalam database untuk pengambilan keputusan.

- Target ditentukan berdasarkan pola yang digunakan. Dalam hal ini, tanda tangan terdiri dari 5 pola, sehingga targetnya juga ada 5.

Untuk pola I. T = [1 0 0 0 0] Untuk pola II. T = [0 1 0 0 0] Untuk pola III. T = [0 0 1 0 0] Untuk pola IV.T = [0 0 0 1 0] Untuk pola V. T = [0 0 0 0 1]


(53)

Jika nilai keluaran yang dihasilkan sama dengan pola I, maka tanda tangan termasuk dalam kelas I. Kemudian database akan mengeluarkan informasi pemilik dari kelas I ke dalam form keputusan.

Kelas Nama Alamat Pekerjaan No.telp Gambar_ttd Target

1 Andy Jakarta Wiraswasta 0817252862 andy.jpg 1 0 0 0 0

2 Anel Paingan Mahasiswi 0813658954 anel.jpg 0 1 0 0 0

: : : : : : :

termasuk dalam kelas I. Kemudian database akan mengeluarkan informasi termasuk dalam kelas I. Kemudian database akan mengeluarkan informasi fefefe


(54)

BAB IV

IMPLEMENTASI DAN PEMBAHASAN A. Implementasi

1. Proses data baru

Dalam proses ini, user dapat memasukkan data baru ke dalam sistem. Sebelum data baru disimpan ke dalam sistem, data yang dimasukkan oleh user akan melalui proses pengecekan data terlebih dahulu.

nma=get(handles.edit1,'string'); % pengecekan data untuk nama nma = strvcat(nma)

nm=isempty(nma); if (nm==1)

errordlg('Nama anda belum dimasukkan','!! Perhatian !!') break;

end;

almat=get(handles.edit2,'string'); % pengecekan data untuk alamat almat = strvcat(almat)

almt=isempty(almat); if (almt==1)

errordlg('Alamat anda belum dimasukkan','!! Perhatian !!') break;

end;

pkrjn=get(handles.edit3,'string'); % pengecekan data untuk pekerjaan pkrjn = strvcat(pkrjn)

pek=isempty(pkrjn); if (pek==1)

errordlg('Pekerjaan anda belum dimasukkan','!! Perhatian !!') break;

end;

notelp=get(handles.edit4,'string'); % pengecekan data untuk nomor telepon notelp = strvcat(notelp)

notel=isempty(notelp); if (notel==1)

errordlg('Nomor telepon anda belum dimasukkan','!Perhatian !') break;

end;

gambar = get(handles.text13,'String') % pengecekan data untuk gambar tanda tangan gambar = strvcat(gambar)

gbr = isempty(gambar); if(gbr == 1)

errordlg('gambar anda belum dimasukkan','!! Perhatian !!') break;

end


(55)

Setelah data dicek, dan tidak ada kesalahan, maka data akan disimpan kedalam database. Perintah untuk koneksi data base :

%untuk mengkoneksikan ke database myodbc conn = database('myodbc','root',''); ping(conn);

%untuk memilih tabel database

curs = exec(conn, 'select * from table_tanda_tangan') setdbprefs('DataReturnFormat','cellarray')

curs = fetch(curs,10) AA = curs.Data

%lihat_data=curs.data(:,1)

%untuk mengetahui jumlah data dari database yang disimpan panjangbaris = rows(curs)

Setelah database dikoneksikan, maka proses penyimpanan data baru pun dapat dilakukan.

data2 = { nma,almat,pkrjn,notelp,gambar } nama_data2 =

{'nama','alamat','pekerjaan','no_telp','gambar_pola'} insert(conn, 'table_tanda_tangan', nama_data2, data2); % untuk memasukkan data ke tabel database sidik jari h = waitbar(0,'Proses Penyimpanan data');

for i=1:1000, % computation here % waitbar(i/1000);

end

close(h);

msgbox('Data Telah Tersimpan','Pesan Program','warn'); close(curs)

close(conn);

2. Proses pelatihan

a. Proses pengambilan gambar

Dalam proses pelatihan, user akan diminta memilih file tanda tangan yang ingin dilatih. Nama file tanda tangan yang diambil oleh user akan ditampilkan di program. Source code untuk pengambilan gambar

[fname,pname] =uigetfile('data training\*.jpg','Open Citra Tanda tangan');

asli=fname;


(56)

b. Proses preprocessing

Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.

Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.

edit_a=get(handles.edit5,'string'); citra = imread(edit_a);

a=im2bw(citra); [m,n]=size(a); i=1;

while i~=m for i=1:m if a(i,:)==1 a(i,:)=[]; m=m-1; i=1; break; end

end;end; j=1;

while j~=n for j=1:n if a(:,j)==1 a(:,j)=[]; n=n-1; j=1;

break;end; end;end;

a1=imresize(a,[50 50]); end

a21=double(a1); pa=a21(1:2500);

Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.


(57)

c. Proses Pelatihan

Proses pelatihan ini bertujuan untuk melatih jaringan agar mampu mengenali pola yang telah dimasukkan oleh user. Dari proses pelatihan akan diperoleh nilai bobot jaringan. Nilai ini akan digunakan untuk proses testing.

p=[pa;pb;pc;pd;pe]; pt=p';

global net; global t % target

t=[t1 t2 t3 t4 t5] % pembentukan jaringan

net=newff(minmax(pt),[unit,5],{'logsig','logsig'},'traingdx'); net=init(net);

% untuk melihat nilai keluaran jaringan sebelum dilatih y=sim(net,pt)

net.trainparam.epochs=epoch; net.trainparam.goal=tole; net.trainparam.lr=laju; tic

% pelatihan jaringan [net,tr]=train(net,pt,t) toc

% bobot yang dihasilkan setelah di training bobot1=net.IW{1,1}

bobot2=net.LW{2,1} bobot3=net.b{1} bobot4=net.b{2} waktu=toc

eror=tr.perf(:,end) epoh=tr.epoch(:,end) bobot;

Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.

Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.jhghgh


(58)

3. Proses testing

Proses ini digunakan pada saat user ingin melakukan proses pengenalan tanda tangan. Pada proses testing ini tahapan yang dilakukan hanya tahap perambatan maju. global bobot1; global bobot2; global bobot3; global bobot4; global net; b1=bobot1; b2=bobot2; b3=bobot3; b4=bobot4; global ps; pe=(ps); y=double(sim(net,pe)) level=graythresh(y) y1=im2bw(y,level); y2=double(y1) global t; [m,n]=size(t) global x; for x=1:n

if t(:,x) == y2

fprintf('%d dikenali\n',x) hasil=1; cekt return; end end for w=1:n

if isequal(t(:,w),y2) == 0

fprintf('%d tidak dikenali\n',w) hasil1=0

keputusan_gakenal return;

end end

Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.


(59)

B. Antar muka pengguna (User Interface) 1. Tampilan awal Program

Gambar 4.1. Tampilan awal Program

Pada tampilan awal ini hanya menyajikan judul dan penulis program, kemudian didalamnya terdapat 2 buah tombol (pushbutton), yaitu tombol enter dan tombol exit. Tombol Enter berguna untuk memasuki tampilan berikutnya, dan tombol exit digunakan untuk keluar.

Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.

Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.

Setiap pola yang diambil oleh user akan melalui proses preprocessing. jkkk


(60)

2. Tampilan Menu

Gambar 4.2. Tampilan Menu Pada tampilan ini terdapat 4 menu yang dapat membantu user.

1. Menu File

Dalam menu ini terdapat sebuah sub menu keluar yang digunakan untuk keluar dari tampilan menu. Jika user memilih sub menu keluar, program akan meminta konfirmasi apakah user yakin ingin keluar dari program, jika ya, maka program akan menutup tampilan, dan jika tidak, tampilan menu tidak akan tertutup.

Gambar 4.3. Tampilan Konfirmasi keluar 2. Menu Input


(61)

Dalam menu Input terdapat sebuah sub menu yaitu sub menu data baru, dimana menu ini berguna jika user ingin memasukkan data baru tanda tangan. Data yang dimasukkan oleh user adalah data nama, alamat, pekerjaan, nomor telepon dan gambar tanda tangan. Gambar tanda tangan dapat diambil dari file.

Gambar 4.4. Tampilan input data baru

Dalam form ini terdapat 4 buah pushbutton (tombol), yaitu tombol ambil gambar, ambil foto, tombol menu utama, dan tombol simpan.

Tombol ambil gambar berguna untuk mengambil gambar dari file. Hal ini dilakukan user jika user ingin memasukkan data baru.

Tombol menu utama, digunakan jika user ingin kembali ke menu utama. Dalam form ini juga terdapat sebuah axes (grafik) yang berguna untuk menampilkan tanda tangan yang diambil user dari file. Jadi pada saat user mengambil tanda tangan dari file, tanda tangan tersebut akan muncul di grafik dibawahnya, kemudian nama file tanda tangan yang diambil tersebut akan muncul di kotak dibawah grafik.


(62)

Tombol simpan, digunakan jika user ingin menyimpan data baru yang telah diisikan oleh user. Pada saat menyimpan data, program akan mengecek kelengkapan data yang dimasukkan oleh user. Jika data yang tidak lengkap, maka program akan menampilkan pesan kesalahan.

3. Menu Run

Dalam menu Run, terdapat 2 buah sub menu yaitu sub menu training dan testing. Pada sub menu training, program akan melatih jaringan dengan menggunakan jaringan backpropagation standar. Pada proses pelatihan, user akan memasukkan berapa banyaknya data yang akan dilatih. Data yang akan dilatih dibatasi hingga 30 data.

Gambar 4.5. Form masukan banyaknya data yang akan ditraining Jika masukan data berupa string, program akan menampilkan pesan kesalahan

Gambar 4.6. Pesan kesalahan jika masukan berupa string

Jika angka yang dimasukkan oleh user lebih dari 30, maka program akan menampilkan pesan kesalahan bahwa data training tidak boleh melebihi 30


(63)

Gambar 4.7. Pesan kesalahan jika masukan user lebih dari 30

Kemudian user juga akan diminta untuk memilih banyaknya jumlah epoch, laju pemahaman, batas toleransi errornya, dan jumlah unit untuk satu hidden layer. Hal ini bertujuan agar user dapat melihat perubahan di setiap pelatihan. Setelah user memasukkan semua data, maka data sudah dapat dilatih. Jika data yang dimasukkan user tidak lengkap, maka user tidak akan dapat melakukan proses training, dan program akan menampilkan pesan kesalahan.

Gambar 4.8. Form training

Form training berfungsi untuk melatih jaringan dari data yang telah dimasukkan oleh user. Dari proses pelatihan akan diperoleh nilai bobot


(64)

jaringan. Nilai bobot jaringan yang telah dilatih akan ditampilkan ke dalam sebuah form. Gambar 4.9. merupakan form yang digunakan untuk menampilkan hasil modifikasi bobot dari setiap layarnya. Nilai ini akan digunakan nantinya dalam proses pengujian jaringan.

Gambar 4.9. Form hasil training

Pada sub menu Testing, data akan diuji dan dikenali, dengan menggunakan bobot yang diperoleh dari hasil training. Caranya user diminta untuk mengambil citra yang digunakan untuk pengujian. Citra yang ditampilkan di grafik merupakan citra yang sudah melewati proses preprocessing, kemudian citra akan di testing.


(65)

Gambar 4.10. Form Testing

Hasil pengujian akan ditampilkan di form baru, dimana hasil pengujian berupa keputusan apakah tanda tangan dikenali atau tidak. Jika dikenali, maka form akan menampilkan identitas dari pemilik program.


(66)

4. Menu Help

Pada menu ini terdapat sebuah sub menu yaitu about us, yang berisi informasi sekilas tentang program dan tentang pembuat program.

Gambar 4.12. Form About Us

C. Pembahasan Program 1. Jumlah epoch

Tabel 4.1. merupakan hasil training yang dilakukan untuk 30 buah data, dengan toleransi kesalahan 0.0001, learning rate 0.05 dan jumlah neuron hidden layer 5.

Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.


(67)

Jumlah Epoch Error training

100 0.150494 200 0.169112 300 0.253727 400 0.249435 500 0.0960561 1000 0.0470009

Tabel 4.1. hubungan antara jumlah epoch dan error training

Dari tabel diatas, dapat ditarik kesimpulan bahwa jumlah epoch mempengaruhi nilai error training. Semakin besar jumlah epoch, semakin kecil pula error training yang didapat. Sebaliknya, semakin besar jumlah epoch, semakin lama pula waktu yang dibutuhkan untuk sebuah proses.

Grafik hubungan antara jumlah epoch dengan error training

0 0.05 0.1 0.15 0.2 0.25 0.3

100 200 300 400 500 600 700 800 900 1000

Jumlah epoch

E

rr

or

t

ra

ining

error training


(68)

2. Batas Toleransi

Percobaan berulang ulang juga dilakukan terhadap batas toleransi. Tabel 4.2. menggambarkan hasil dari percobaan yang dilakukan terhadap 30 buah data, dengan laju pemahaman 0.02, jumlah epoch 500, dan jumlah unit hidden layer sebanyak 10.

Tol kesalahan Error training 0.01 0.00992619

0.001 0.00326833 0.0001 9.78E-05 0.0002 0.0017724 0.0005 0.00601012

Tabel 4.2. Hubungan antara batas toleransi dengan error training

Grafik hubungan antara toleransi kesalahan dengan error training

0.000095 0.000595 0.001095 0.001595 0.002095 0.002595 0.003095 0.003595 0.004095 0.004595 0.005095 0.005595 0.006095 0.006595 0.007095 0.007595 0.008095 0.008595 0.009095 0.009595

0.0001 0.0011 0.0021 0.0031 0.0041 0.0051 0.0061 0.0071 0.0081 0.0091

toleransi kesalahan err o r t rai n in g error training

Gambar 4.14. Grafik hubungan antara toleransi kesalahan dengan error training

Dari grafik dapat dilihat bahwa toleransi kesalahan sangat berpengaruh terhadap nilai error training. Semakin kecil toleransi kesalahan (semakin


(69)

mendekati nol), nilai error training yang diperoleh semakin kecil. Dalam hal ini, nilai optimal dicapai pada toleransi kesalahan 0.0001.

3. Fungsi Pelatihan

Tabel 4.3. merupakan hasil training dengan fungsi pelatihan yang berbeda-beda, untuk 30 data dengan epoch 500, toleransi kesalahan 0.0001, laju pemahaman 0.02 dan jumlah unit hidden layer adalah 10.

Fungsi Pelatihan Jumlah epoch

Waktu Iterasi (det)

Error training

Traingd Tidak selesai pada epoch ke 100 17.125 0.264628 Traingdm Tidak selesai pada epoch ke 100 17.438 0.0439853

Traingda Tidak selesai pada epoch ke 100 17.422 0.0161458 Traingdx Tidak selesai pada epoch ke 100 12.015 9.93E-05

Tabel 4.3. Hubungan antara fungsi pelatihan dengan jumlah epoch, waktu iterasi dan error training

Dari proses training dapat dilihat dalam tabel bahwa fungsi pelatihan

traingdx adalah fungsi pelatihan yang lebih cepat dibanding dengan fungsi

pelatihan lainnya. Selain itu juga nilai error yang dihasilkan lebih kecil dibanding dengan fungsi pelatihan lainnya.

Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.


(70)

4. Hidden Layer

Jumlah unit hidden layer juga dapat berpengaruh dalam proses pelatihan dan pengujian jaringan. Semakin banyak jumlah unit hidden layer, proses pelatihan pun akan semakin baik. Tabel 4.4. menunjukkan hasil training dengan jumlah unit hidden layer yang berbeda-beda dan nilai error training yang dihasilkan. Percobaan dilakukan terhadap 30 data, dengan epoch 500, toleransi kesalahan 0.0001, dan learning rate 0.02.

Jumlah unit hidden layer Error training

4 0.259261 5 0.0149425 6 0.0109165 7 0.00736939 8 0.0026789 10 0.00211877

Tabel 4.4. Hubungan antara jumlah unit hidden layer dengan error training

Hubungan antara jumlah unit hidden layer dengan error training dapat dilihat jelas dari grafik berikut:

Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.

Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk


(71)

Hubungan antara unit hidden layer dengan error training

0 0.05 0.1 0.15 0.2 0.25

4 5 6 7 8 9 10

Unit hidden layer

Er

ro

r t

ra

in

in

g

error training

Gambar 4.15. Grafik hubungan antara jumlah unit hidden layer dengan error training

Dari grafik dapat dilihat bahwa jumlah unit hidden layer juga berpengaruh terhadap nilai error training. Semakin banyak jumlah unit, semakin kecil pula nilai error training yang diperoleh.

5. Pengujian Pola

Pengujian pola dilakukan terhadap 3 model data, yaitu pengujian pola dengan 25 data training, pengujian pola dengan 30 data training, dan pengujian pola dengan 35 data training. Hal ini dilakukan untuk melihat bagaimana perubahan akurasi pengujian pola dengan jumlah data training yang berbeda-beda.

Pengujian pola dilakukan terhadap 3 buah bagian data, yaitu data training (data pelatihan), data testing (data pengujian), dan data lain (data tanda tangan yang berbeda). Jumlah tanda tangan yang digunakan sebanyak 50 buah tanda tangan, yang terdiri dari 5 pola, dimana setiap pola memiliki 10 buah tanda tangan. 50 buah tanda tangan dibagi menjadi data training dan data testing.


(72)

Pengujian pola juga menggunakan 12 buah tanda tangan dari orang lain. 12 tanda tangan terdiri dari 3 pola, dimana setiap pola memiliki 4 buah tanda tangan. Percobaan dilakukan dengan jumlah epoch 500, learning rate 0.02 dan toleransi kesalahan 0.0001 dan jumlah unit hidden layer sebanyak 5 buah.

a. Pengujian pola dengan 25 data

Pola tanda tangan dibagi menjadi 2 bagian, yaitu pola pelatihan dan pola pengujian. Dari 50 buah pola tanda tangan dibagi menjadi 25 buah untuk data pelatihan dan 25 buah untuk data pengujian.

Pola Tanda tangan

P-1 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10 P-2 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10 P-3 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10 P-4 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10 P-5 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10

Tabel 4.5. Pembagian pola pelatihan dan pola pengujian Keterangan :

P-1 : Pola ke 1, dst

Ttd1 : Tanda tangan ke 1, dst : Pola pelatihan

: Pola pengujian

Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.


(73)

Pengujian pola terhadap data training

Pola Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 P-1 P-1 P-1 P-1 P-1 P-1 P-2 P-2 P-2 P-2 P-2 P-2 P-3 P-3 P-3 P-3 P-3 P-3 P-4 P-4 P-4 P-4 P-4 P-4 P-5 ??? ??? ??? ??? ??? Tabel 4.6. hasil pengujian terhadap 25 data training Keterangan :

: Tanda tangan tidak dikenal

Tabel diatas merupakan tabel hasil pengujian pola yang dilakukan terhadap data yang sudah ditraining. Hal ini berarti data pengujian sama dengan data pelatihan. Dari hasil pengujian yang dilakukan terhadap 25 buah data training, pola tanda tangan dapat dikenali dengan benar sebesar 83 %

Pengujian pola terhadap data testing

Pola Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 P-1 P-1 ??? ??? P-1 ???

P-2 ??? P-4 P-2 P-2 ???

P-3 ??? P-4 ??? P-3 ???

P-4 P-4 P-4 P-4 P-4 ???

P-5 P-4 ??? ??? P-4 P-4 Tabel 4.7. Hasil pengujian terhadap data testing


(74)

Keterangan :

: Tanda tangan tidak dikenal

: Tanda tangan dikenali sebagai tanda tangan lain

Tabel diatas merupakan hasil pengujian pola yang dilakukan terhadap data testing. Dari tabel diatas dapat dilihat hasil pengujian yang dilakukan terhadap 25 pola, pola dapat dikenali dengan benar sebesar 40 %

Pengujian pola terhadap data lain

Pola Ttd1 Ttd2 Ttd3 Ttd4 P-A ??? P-4 ??? ???

P-B P-2 ??? P-3 ???

P-C P-2 ??? P-1 P-1

Tabel 4.8. hasil pengujian terhadap data lain Keterangan :

P-A : Pola ke A, dst

: Tanda tangan tidak dikenal

: Tanda tangan dikenali sebagai tanda tangan lain

Pengujian pola untuk data yang berbeda dilakukan terhadap 12 buah tanda tangan, yang diperoleh dari 3 orang, dimana setiap orang membubuhkan 4 buah tanda tangan.

Dari hasil pengujian pada tabel diatas dapat dilihat bahwa tanda tangan yang berbeda tidak dikenali dengan benar. Dalam hal ini pola dikenali dengan benar sebesar 50 %


(75)

b. Pengujian pola dengan 30 data

Dalam pengujian pola ini, dari 50 buah pola tanda tangan dibagi menjadi 30 buah untuk data pelatihan dan 20 buah untuk data pengujian.

Pola Tanda tangan

P-1 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10 P-2 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10 P-3 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10 P-4 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10 P-5 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10

Tabel 4.9. Pembagian pola pelatihan dan pola pengujian

Pengujian pola juga dilakukan terhadap 3 buah model data, yaitu data training (data pelatihan), data testing (data pengujian), dan data lain

Pengujian pola terhadap data training

Pola Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 P-1 P-1 P-1 P-1 P-1 P-1 P-1 P-2 P-2 P-2 P-2 P-2 P-2 P-2 P-3 P-3 P-3 P-3 P-3 P-3 P-3 P-4 P-4 P-4 P-4 P-4 P-4 P-4

P-5 ??? P-5 P-4 P-4 P-5 P-5

Tabel 4.10. Pengujian pola terhadap data training

Tabel diatas merupakan tabel hasil pengujian pola yang dilakukan terhadap data yang sudah ditraining. Dari hasil pengujian yang dilakukan terhadap 30 pola, pola tanda tangan dapat dikenali dengan benar sebesar 90 %

Pengujian pola terhadap data testing

Pola Ttd1 Ttd2 Ttd3 Ttd4

P-1 P-1 P-3 P-1 P-1

P-2 P-4 P-2 ?? P-2

P-3 P-3 P-3 P-3 P-3 P-4 P-4 P-4 P-4 P-4 P-5 ??? ??? ??? ??? Tabel 4.11. Pengujian pola terhadap data testing


(76)

Hasil pengujian pola diatas merupakan hasil pengujian yang dilakukan terhadap data testing. Dari tabel diatas dapat dilihat hasil pengujian yang dilakukan terhadap 20 pola, pola dapat dikenali dengan benar sebesar 65 %

Pengujian pola terhadap data lain

Pola Ttd1 Ttd2 Ttd3 Ttd4 P-A P-2 P-2 P-2 P-3 P-B ??? ??? ??? ???

P-C P-3 P-3 ??? ??? Tabel 4.12. Pengujian pola terhadap data yang berbeda

Dari hasil pengujian pada tabel diatas dapat dilihat bahwa tangan yang berbeda tidak dikenali dengan benar. Dalam hal ini pola dikenali dengan benar sebesar 50 %

c. Pengujian pola dengan 35 data

Dalam pengujian pola dengan 35 data ini, dari 50 buah pola tanda tangan dibagi menjadi 35 buah untuk data pelatihan dan 15 buah untuk data pengujian.

Pola Tanda tangan

P-1 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10 P-2 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10 P-3 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10 P-4 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10 P-5 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10

Tabel 4.13. Pola pelatihan dan pola pengujian

Pengujian pola juga dilakukan terhadap 3 buah model data, yaitu data training (data pelatihan), data testing (data pengujian), dan data lain (data tanda tangan yang berbeda).


(77)

Pengujian pola terhadap data training

Pola Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 P-1 P-1 P-1 P-1 P-1 P-1 P-1 P-1 P-2 P-2 P-2 P-2 P-2 P-2 P-2 P-2 P-3 P-3 P-3 P-3 P-3 P-3 P-3 ???

P-4 P-4 P-4 P-4 P-4 P-4 P-4 ???

P-5 P-5 P-5 P-5 P-5 P-5 P-5 P-5

Tabel 4.14. Pengujian pola terhadap data training

Dari hasil pengujian terhadap data training, dapat ditarik sebuah hasil yaitu pola dapat dikenali dengan benar sebesar 94 %. Dari 35 buah tanda tangan yang diuji, hanya 2 buah yang tidak dikenali.

Pengujian pola terhadap data testing

Pola Ttd3 Ttd4 Ttd5 P-1 P-1 P-1 P-1 P-2 P-2 P-2 P-2 P-3 P-3 P-3 P-3 P-4 P-2 P-4 P-2

P-5 ??? P-5 P-5

Tabel 4.15. Pengujian pola terhadap data testing

Tabel diatas merupakan hasil pengujian pola yang dilakukan terhadap data testing. Dari tabel diatas dapat dilihat hasil pengujian yang dilakukan terhadap 15 pola, pola dapat dikenali dengan benar sebesar 80 %


(78)

Pengujian pola terhadap data lain

Pola Ttd1 Ttd2 Ttd3 Ttd4 P-A P-4 P-2 P-2 ???

P-B P-2 ??? P-2 ???

P-C P-2 P-2 P-1 P-2 Tabel 4.16. Pengujian pola terhadap data lain

Dari hasil pengujian pada tabel diatas dapat dilihat bahwa tangan yang berbeda tidak dikenali dengan benar. Dari 12 buah tanda tangan yang di uji, pola dapat dikenali dengan benar sebesar 25%

d. Ringkasan Pengujian

Hasil pengujian (% dikenali) Jumlah data

training dan testing

Jumlah Data training

Jumlah Data testing

Jumlah data lain

Data training Data testing Data lain

50 25 (50 %) 25 12 83 % 40 % 50 %

50 30 (60 %) 20 12 90 % 65 % 50 %

50 35 (70 %) 15 12 94 % 80 % 25 %

Tabel 4.17. Hasil pengujian semua pola

Dari ketiga model pengujian pola, dapat diambil kesimpulan, bahwa hasil terbaik diperoleh dari pengujian 35 data. Hal ini berarti, semakin banyak data pelatihan, maka pola semakin mudah dikenali. Hal lain yang dapat dihasilkan dari percobaan ini adalah bahwa data lain tidak dapat dikenali dengan benar.


(79)

A.Kesimpulan

Dari hasil pelatihan dan pengujian jaringan terhadap pola tanda tangan, dapat ditarik beberapa kesimpulan antara lain :

1. Pola dapat dikenali dengan benar sebesar 83 % untuk pengujian pola dengan 25 data training (50 % data), 90% untuk pengujian pola dengan 30 data training (60 % data) dan 94 % untuk pengujian pola dengan 35 data training (70 % data).

2. Untuk hasil pengujian pola terhadap data training, Semakin banyak data yang digunakan untuk pelatihan, maka semakin besar pula kemungkinan pola akan dikenali.

3. Semakin besar jumlah epoch, semakin kecil pula error training yang dicapai, dalam hal ini untuk jumlah epoch 10000 menghasilkan error 0.0470009

4. Fungsi pelatihan traingdx lebih baik dibanding dengan fungsi pelatihan lainnya. Fungsi ini menghasilkan waktu tercepat yaitu 12.015 dan error terkecil yaitu 9.93E-05

5. Semakin banyak neuron hidden layer yang digunakan, maka error training yang dihasilkan akan semakin kecil.


(80)

B. Saran

1. Program bisa dikembangkan lagi dengan metode pembelajaran yang lain yang lebih baik lagi


(1)

% handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc

set(hObject,'BackgroundColor','white'); else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end

% --- Executes on selection change in popupmenu2.

function popupmenu2_Callback(hObject, eventdata, handles) % hObject handle to popupmenu2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu2 contents as cell array

% contents{get(hObject,'Value')} returns selected item from popupmenu2

global tol

val_tol = get(hObject,'Value'); string_list = get(hObject,'String'); tol = string_list{val_tol};

% --- Executes during object creation, after setting all properties. function popupmenu3_CreateFcn(hObject, eventdata, handles)

% hObject handle to popupmenu3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc

set(hObject,'BackgroundColor','white'); else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end

% --- Executes on selection change in popupmenu3.

function popupmenu3_Callback(hObject, eventdata, handles) % hObject handle to popupmenu3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu3 contents as cell array

% contents{get(hObject,'Value')} returns selected item from popupmenu3

global lp

val_lp = get(hObject,'Value');

string_list = get(hObject,'String'); lp = string_list{val_lp};

% --- Executes during object creation, after setting all properties. function popupmenu4_CreateFcn(hObject, eventdata, handles)


(2)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc

set(hObject,'BackgroundColor','white'); else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end

% --- Executes on selection change in popupmenu4.

function popupmenu4_Callback(hObject, eventdata, handles) % hObject handle to popupmenu4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu4 contents as cell array

% contents{get(hObject,'Value')} returns selected item from popupmenu4 global hd

val_hd = get(hObject,'Value');

string_list = get(hObject,'String'); hd = string_list{val_hd};

% --- Executes during object creation, after setting all properties. function popupmenu5_CreateFcn(hObject, eventdata, handles)

% hObject handle to popupmenu5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc

set(hObject,'BackgroundColor','white'); else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end

% --- Executes on selection change in popupmenu5.

function popupmenu5_Callback(hObject, eventdata, handles) % hObject handle to popupmenu5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu5 contents as cell array

% contents{get(hObject,'Value')} returns selected item from popupmenu5 global hd2

val_hd2 = get(hObject,'Value'); string_list = get(hObject,'String'); hd2 = string_list{val_hd2};

% --- Executes during object creation, after setting all properties. function popupmenu6_CreateFcn(hObject, eventdata, handles)

% hObject handle to popupmenu6 (see GCBO)


(3)

% handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc

set(hObject,'BackgroundColor','white'); else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end

% --- Executes on selection change in popupmenu6.

function popupmenu6_Callback(hObject, eventdata, handles) % hObject handle to popupmenu6 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu6 contents as cell array

% contents{get(hObject,'Value')} returns selected item from popupmenu6 global val_hidden

global hidden

val_hidden = get(hObject,'Value'); string_list = get(hObject,'String'); hidden = string_list{val_hidden}; if val_hidden==1

set(handles.popupmenu4,'visible','on') set(handles.popupmenu5,'visible','off') end

if val_hidden==2

set(handles.popupmenu4,'visible','on') set(handles.popupmenu5,'visible','on') end

Form Testing (Testing30.m)

function varargout = testing30(varargin) % TESTING30 M-file for testing30.fig

% TESTING30, by itself, creates a new TESTING30 or raises the existing % singleton*.

%

% H = TESTING30 returns the handle to a new TESTING30 or the handle to % the existing singleton*.

%

% TESTING30('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in TESTING30.M with the given input arguments.

%

% TESTING30('Property','Value',...) creates a new TESTING30 or raises the

% existing singleton*. Starting from the left, property value pairs are % applied to the GUI before testing30_OpeningFunction gets called. An %unrecognized property name or invalid value makes property application %stop. All inputs are passed to testing30_OpeningFcn via varargin. %

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".

%


(4)

% Edit the above text to modify the response to help testing30 % Last Modified by GUIDE v2.5 19-Feb-2007 20:50:34

% Begin initialization code - DO NOT EDIT gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @testing30_OpeningFcn, ... 'gui_OutputFcn', @testing30_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin & isstr(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

% End initialization code - DO NOT EDIT

% --- Executes just before testing30 is made visible.

function testing30_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to testing30 (see VARARGIN) % Choose default command line output for testing30

handles.output = hObject; % Update handles structure guidata(hObject, handles);

% UIWAIT makes testing30 wait for user response (see UIRESUME) % uiwait(handles.figure1);

str = datestr(now);

set(handles.text15,'string',str)

% --- Outputs from this function are returned to the command line. function varargout = testing30_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO)


(5)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global hidden

layar=str2num(hidden); if layar ==1

bobot; else

bobot2hd; end

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) clc

global bobot1; global bobot2; global bobot3; global bobot4; global net; b1=bobot1; b2=bobot2; b3=bobot3; b4=bobot4; global ps; pe=(ps);

y=double(sim(net,pe)) level=graythresh(y) y1=im2bw(y,level); y2=double(y1) global t; [m,n]=size(t) global x; for x=1:n

if t(:,x) == y2

fprintf('%d dikenali\n',x) hasil=1;

cekt return; end

end

for w=1:n

if isequal(t(:,w),y2) == 0

fprintf('%d tidak dikenali\n',w) hasil1=0

h = waitbar(0,'Proses Pengambilan Keputusan'); for i=1:1000, % computation here %

waitbar(i/1000); end

close(h);

keputusan_gakenal return;


(6)

end end

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close;

menu;

% --- Executes on button press in pushbutton4.

function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

[fname,pname] =uigetfile('.jpg','Open Citra Tanda tangan'); global asli

asli=fname

[v,w]=size(asli) citra = imread(asli); a=im2bw(citra);

[m,n]=size(a); i=1;

while i~=m for i=1:m if a(i,:)==1 a(i,:)=[]; m=m-1; i=1; break; end

end end j=1;

while j~=n for j=1:n if a(:,j)==1 a(:,j)=[]; n=n-1; j=1; break; end

end end

a2=imresize(a,[200 200]); axes(handles.axes1)

imshow(a2)

a3=imresize(a,[50 50]); pk=double(a3);

pd=pk(1:2500); global ps; ps=pd';