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 %
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
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
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..
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
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 %
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
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
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.
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
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
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
d. Hasil Pengujian ... 59
BAB V. KESIMPULAN DAN SARAN... 60
A. Kesimpulan... 60
B. Saran... 61
DAFTAR PUSTAKA... 62
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
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
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
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
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 :
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
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
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
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
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
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 :
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)
∑
iii. Hitung semua keluaran jaringan di unit yk (k=1,2,...,m)
∑
Fase II : Propagasi mundur
iv. Hitung faktor δ unit keluaran berdasarkan kesalahan di
setiap unit keluaran yk(k=1,2,...,m)
)
δ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
∑
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
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
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
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
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.
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
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
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
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
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
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
d. Menu Help
Terdiri dari sebuah sub menu yaitu sub menu about us
3. Perancangan Form Data Baru
Masukkan Nama :
Masukkan Alamat :
Masukkan Pekerjaan
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
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
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,
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
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
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
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
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
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
menampriks yang bertipe biner ini digunakan sebagai masukan pada layar
input.njjdcvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvdddddddddddddddee
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
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 efe
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]
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
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
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;
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);
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal
ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk
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]; % 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}
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
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.
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal
ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk
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.
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.
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
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
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
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,
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.
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.
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
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.0001 0.0011 0.0021 0.0031 0.0041 0.0051 0.0061 0.0071 0.0081 0.0091
toleransi kesalahan
Gambar 4.14. Grafik hubungan antara toleransi kesalahan dengan error training
Dari grafik dapat dilihat bahwa toleransi kesalahan sangat berpengaruh
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
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
Hubungan antara unit hidden layer dengan 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
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.
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 ???
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