PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI … filesistem ini menunjukkan bahwa semakin banyak jumlah...
Transcript of PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI … filesistem ini menunjukkan bahwa semakin banyak jumlah...
PENERAPAN JARINGAN SYARAF TIRUAN UNTUK
PEMBUATAN SISTEM PENGENALAN TANDA TANGAN
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
- PERSEMBAHAN -
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..
...Jesus is only a prayer away...
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PERNYATAAN KEASLIAN KARYA
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
Pristina Mayrita Naibaho
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAK
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).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT
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).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8. Teman – teman seperjuangan IKOM ’02, Agnes Nulat, Esti, Lidia n lainnya,
Especially for Team SC: Daru “Kakak Canggah”, Hendy “De’Dita”, Utix “Jeng
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.
Penulis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI
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
1. Arsitektur Backpropagation ......................................... 7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2. Pelatihan standar Backpropagation .............................. 8
3. Algoritma Pelatihan Backpropagation ......................... 8
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
D. Perancangan Arsitektur Jaringan ......................................... 27
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
E. Perancangan Proses ............................................................. 29
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
a. Pengujian pola dengan 25 data ........................... 53
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
b. Pengujian pola dengan 30 data .......................... 56
c. Pengujian pola dengan 35 data ........................... 57
d. Hasil Pengujian .................................................. 59
BAB V. KESIMPULAN DAN SARAN................................................... 60
A. Kesimpulan........................................................................... 60
B. Saran..................................................................................... 61
DAFTAR PUSTAKA............................................................................... 62
LAMPIRAN............................................................................................. 63
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL
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
Tabel 4.17. Hasil pengujian semua pola ................................................ 59
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR
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.4. Tampilan input data baru ................................................. 42
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.5. Form masukan banyaknya data yang akan ditraining ........ 43
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
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 :
1. Sampel yang digunakan sebanyak 50 tanda tangan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
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
Adapun sistematika penulisan tugas akhir adalah sebagai berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
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 :
xexf −+=
11)(
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
ditambah dengan sebuah bias, serta sebuah layar output dengan m unit keluaran.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
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 :
Fase I : Propagasi maju
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
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
ijiijoj vxvnetz
1_
jnetzjj enetzfz _1
1)_( −+==
iii. Hitung semua keluaran jaringan di unit yk (k=1,2,...,m)
∑=
+=p
jkjjkk wzwnety
10_
knetykk enetyfy _1
1)_( −+==
Fase II : Propagasi mundur
iv. Hitung faktor δ unit keluaran berdasarkan kesalahan di
setiap unit keluaran yk(k=1,2,...,m)
)1()()_('k kkkkkkk yyytnetyfyt −−=)−(=δ
δ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 α.
jkkj zw αδ=Δ ; k=1, 2, ..., m ; j=0, 1, ..., p
v. Hitung faktor δ unit tersembunyi berdasarkan kesalahan di
setiap unit tersembuyi zj (j=1,2,...,p)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
∑=
=m
kkjkj wnet
1_ δδ
Faktor δ unit tersembunyi :
)1(_)_('_ jjjjjj zznetnetzfnet −== δδδ
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
14
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
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
tentang program dan pembuat program
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Start
If y=1
Menu Pilihan :1. File2. Input3. Run4. HelpMasukkan pilihan(y)?
KELUAR
If y=2 DATA BARU
If y=3
Menu Pilihan:1. Training2. 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
Gambar 3.2. Flowchart sistem secara umum
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
menampriks yang bertipe biner ini digunakan sebagai masukan pada layar
input.njjdcvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvdddddddddddddddee
Gambar 3.12. Flowchart Proses Input Data Baru
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
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
Gambar 3.13. Flowchart Proses Preprocessing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
digunakan sebagai masukan pada layar input. menampung bias. Matriks yang efe
Gambar 3.14. Flowchart Proses training
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
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]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
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
Gambar 3.15. Flowchart Proses testing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
36
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
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; set(handles.edit5,'string',asli);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
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.
Gambar 4.11. Form keputusan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
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.
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
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
00.05
0.1
0.150.2
0.250.3
100 200 300 400 500 600 700 800 900 1000
Jumlah epoch
Erro
r tra
inin
g
error training
Gambar 4.13 . Grafik hubungan antara jumlah epoch dan error training
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
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.0000950.0005950.0010950.0015950.0020950.0025950.0030950.0035950.0040950.0045950.0050950.0055950.0060950.0065950.0070950.0075950.0080950.0085950.0090950.009595
0.0001 0.0011 0.0021 0.0031 0.0041 0.0051 0.0061 0.0071 0.0081 0.0091
toleransi kesalahan
erro
r tra
inin
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
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
Erro
r tra
inin
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
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 Ttd10P-2 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10P-3 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10P-4 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10P-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.
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
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 %
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
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 Ttd10P-2 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10P-3 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10P-4 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10P-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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
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 Ttd10P-2 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10P-3 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10P-4 Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd10P-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).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
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 %
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V
KESIMPULAN DAN SARAN
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.
61
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
B. Saran
1. Program bisa dikembangkan lagi dengan metode pembelajaran yang
lain yang lebih baik lagi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Daftar Pustaka
Andam Zainal, 2002, Aplikasi Neural Network pada Pengenalan Pola Tanda
Tangan, http://lecturer.eepis-its.edu/~huda/tandatangan.pdf
Fausett, L., 1994, Fundamentals of Neural Network, Architecture, Algorithms and
Applications, Prentice Hall.
Kristanto, Andi, 2004, Jaringan Syaraf Tiruan, Gava Media, Yogyakarta
KusumaDewi, Sri, Artificial Intelligence, Graha Ilmu, Yogyakarta
Munir, Rinaldi, Pengolahan citra digital dengan pendekatan algoritmik,
Informatika, Bandung
Siang, J.J., 2005, Jaringan Syaraf Tiruan dan Pemrogramannya dengan
MATLAB, Andi Offset, Yogyakarta.
63
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Form data Baru (data_baru.m) function varargout = data_baru(varargin) % DATA_BARU M-file for data_baru.fig % DATA_BARU, by itself, creates a new DATA_BARU or raises the existing % singleton*. % % H = DATA_BARU returns the handle to a new DATA_BARU or the handle to % the existing singleton*. % % DATA_BARU('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in DATA_BARU.M with the given input arguments. % % DATA_BARU('Property','Value',...) creates a new DATA_BARU or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before data_baru_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to data_baru_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help data_baru % Last Modified by GUIDE v2.5 24-Mar-2007 14:21:00 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @data_baru_OpeningFcn, ... 'gui_OutputFcn', @data_baru_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 data_baru is made visible. function data_baru_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 data_baru (see VARARGIN) % Choose default command line output for data_baru handles.output = hObject;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% Update handles structure guidata(hObject, handles); % UIWAIT makes data_baru wait for user response (see UIRESUME) % uiwait(handles.figure1); str = datestr(now); set(handles.text9,'string',str) % --- Outputs from this function are returned to the command line. function varargout = data_baru_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 during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit 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 function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double nma=get(handles.edit1,'string'); % pengecekan data untuk nama if (isletter(nma)==0) errordlg('Nama harus berupa string','!! Perhatian !!') break; end; nm=isempty(nma); try if (nm==1) errordlg('Nama anda belum dimasukkan','!! Perhatian !!') end; end % --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit 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 function edit2_Callback(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit2 as text % str2double(get(hObject,'String')) returns contents of edit2 as a double almat=get(handles.edit2,'string'); % pengecekan data untuk alamat if (isletter(almat)==0) errordlg('Alamat harus berupa string','!! Perhatian !!') break; end; almt=isempty(almat); try if (almt==1) errordlg('Alamat anda belum dimasukkan','!! Perhatian !!') end; end % --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit 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 function edit3_Callback(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double pkrjn=get(handles.edit3,'string'); % pengecekan data untuk pekerjaan if (isletter(pkrjn)==0) errordlg('Pekerjaan harus berupa string','!! Perhatian !!')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
break; end; pek=isempty(pkrjn); try if (pek==1) errordlg('Pekerjaan anda belum dimasukkan','!! Perhatian !!') end; end % --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles) % hObject handle to edit4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit 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 function edit4_Callback(hObject, eventdata, handles) % hObject handle to edit4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit4 as text % str2double(get(hObject,'String')) returns contents of edit4 as a double notelp=get(handles.edit4,'string'); % pengecekan data untuk nomor telepon if (isletter(notelp)==1) errordlg('Nomor telepon harus berupa angka','!! Perhatian !!') end; notel=isempty(notelp); try if (notel==1) errordlg('Nomor telepon anda belum dimasukkan','!! Perhatian !!') end; end % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) nma=get(handles.edit1,'string'); % pengecekan data untuk nama if (isletter(nma)==0) errordlg('Nama harus berupa string','!! Perhatian !!') break; end; nma = strvcat(nma)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
nm=isempty(nma); if (nm==1) errordlg('Nama anda belum dimasukkan','!! Perhatian !!') break; end; almat=get(handles.edit2,'string'); % pengecekan data untuk alamat if (isletter(almat)==0) errordlg('Alamat harus berupa string','!! Perhatian !!') break; end; 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 if (isletter(pkrjn)==0) errordlg('Pekerjaan harus berupa string','!! Perhatian !!') break; end; 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 if isletter(notelp)==1 errordlg('Nomor telepon harus berupa angka','!! Perhatian !!') break; end; 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 if gambar == 't001.jpg' | gambar == 't002.jpg'|gambar == 't003.jpg'|gambar == 't004.jpg'|gambar == 't005.jpg'|gambar == 't006.jpg' errordlg('tanda tangan sudah ada','!! Perhatian !!') break;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
end if gambar == 't007.jpg' | gambar == 't008.jpg'|gambar == 't009.jpg'|gambar == 't010.jpg'|gambar == 't011.jpg'|gambar == 't012.jpg' errordlg('tanda tangan sudah ada','!! Perhatian !!') break; end if gambar == 't013.jpg' | gambar == 't014.jpg'|gambar == 't015.jpg'|gambar == 't016.jpg'|gambar == 't017.jpg'|gambar == 't018.jpg' errordlg('tanda tangan sudah ada','!! Perhatian !!') break; end if gambar == 't019.jpg' | gambar == 't020.jpg'|gambar == 't021.jpg'|gambar == 't022.jpg'|gambar == 't023.jpg'|gambar == 't024.jpg' errordlg('tanda tangan sudah ada','!! Perhatian !!') break; end if gambar == 't025.jpg' | gambar == 't026.jpg'|gambar == 't027.jpg'|gambar == 't028.jpg'|gambar == 't029.jpg'|gambar == 't030.jpg' errordlg('tanda tangan sudah ada','!! Perhatian !!') break; end gambar_org = get(handles.text15,'String') % pengecekan data untuk gambar tanda tangan gambar2 = strvcat(gambar_org) gbr = isempty(gambar2); if(gbr == 1) errordlg('Foto anda belum dimasukkan','!! Perhatian !!') break; end % untuk menyimpan data %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) data2 = { nma,almat,pkrjn,notelp,gambar,gambar2 }
nama_data2 = {'nama','alamat','pekerjaan','no_telp','gambar_pola','gambar_foto'}
insert(conn, 'table_tanda_tangan', nama_data2, data2); 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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% --- 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) close; menu; % --- 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) [fname,pname] =uigetfile({'*.jpg'},'Open Citra Tanda tangan'); asli=fname; citra = imread(asli); position = get(hObject, 'Position'); axes(handles.axes1); imshow(citra); set(handles.text13,'string',asli); % --- Executes during object creation, after setting all properties. function edit5_CreateFcn(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit 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 function edit5_Callback(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit5 as text % str2double(get(hObject,'String')) returns contents of edit5 as a double % --- Executes on button press in pushbutton5. function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (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; citra = imread(asli); position = get(hObject, 'Position'); axes(handles.axes4); imshow(citra); set(handles.text15,'string',asli);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
form training (coba_training1.m) function varargout = coba_training1(varargin) clc; % COBA_TRAINING1 M-file for coba_training1.fig % COBA_TRAINING1, by itself, creates a new COBA_TRAINING1 or raises the existing % singleton*. % % H = COBA_TRAINING1 returns the handle to a new COBA_TRAINING1 or the handle to % the existing singleton*. % % COBA_TRAINING1('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in COBA_TRAINING1.M with the given input arguments. % % COBA_TRAINING1('Property','Value',...) creates a new COBA_TRAINING1 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before coba_training1_OpeningFunction gets called. An %unrecognized property name or invalid value makes property application % stop. All inputs are passed to coba_training1_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help coba_training1 % Last Modified by GUIDE v2.5 14-Mar-2007 13:06:27 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @coba_training1_OpeningFcn, ... 'gui_OutputFcn', @coba_training1_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 coba_training1 is made visible. function coba_training1_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 coba_training1 (see VARARGIN) % Choose default command line output for coba_training1 handles.output = hObject;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% Update handles structure guidata(hObject, handles); % UIWAIT makes coba_training1 wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = coba_training1_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) % 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 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) global hidden layar=str2num(hidden); if layar ==1 bobot; else bobot2hd; 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) % -----------------------training 2 data------------------------------- set(handles.pushbutton2,'enable','on') global ep global tol global lp global hd global edit_a global edit_b global unit2 global hd2 epoch=str2num(ep) tole=str2num(tol); laju=str2num(lp); unit=str2num(hd); unit2=str2num(hd2);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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); if edit_a == 't001.jpg' | edit_a == 't002.jpg'| edit_a == 't003.jpg' | edit_a == 't004.jpg'| edit_a == 't005.jpg'| edit_a == 't006.jpg' t1=[1;0;0;0;0;]; else if edit_a == 't007.jpg' | edit_a == 't008.jpg'| edit_a == 't009.jpg' | edit_a == 't010.jpg'| edit_a == 't011.jpg'| edit_a == 't012.jpg' t1=[0;1;0;0;0]; else if edit_a == 't013.jpg' | edit_a == 't014.jpg'| edit_a == 't015.jpg'| edit_a == 't016.jpg'| edit_a == 't017.jpg'| edit_a == 't018.jpg' t1=[0;0;1;0;0]; else if edit_a == 't019.jpg' | edit_a == 't020.jpg'| edit_a == 't021.jpg'| edit_a == 't022.jpg'| edit_a == 't023.jpg'| edit_a == 't024.jpg' t1=[0;0;0;1;0]; else if edit_a == 't025.jpg' | edit_a == 't026.jpg'| edit_a == 't027.jpg'| edit_a == 't028.jpg'| edit_a == 't029.jpg'| edit_a == 't030.jpg' t1=[0;0;0;0;1]; end end end end end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
edit_b=get(handles.edit6,'string'); citra = imread(edit_b); 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 b1=imresize(a,[50 50]); end b21=double(b1); pb=b21(1:2500); if edit_b == 't001.jpg' | edit_b == 't002.jpg'| edit_b == 't003.jpg'| edit_b == 't004.jpg'| edit_b == 't005.jpg'| edit_b == 't006.jpg' t2=[1;0;0;0;0;]; end if edit_b == 't007.jpg' | edit_b == 't008.jpg'| edit_b == 't009.jpg'| edit_b == 't010.jpg'| edit_b == 't011.jpg'| edit_b == 't012.jpg' t2=[0;1;0;0;0]; end if edit_b == 't013.jpg' | edit_b == 't014.jpg'| edit_b == 't015.jpg'| edit_b == 't016.jpg'| edit_b == 't017.jpg'| edit_b == 't018.jpg' t2=[0;0;1;0;0]; end if edit_b == 't019.jpg' | edit_b == 't020.jpg'| edit_b == 't021.jpg'| edit_b == 't022.jpg'| edit_b == 't023.jpg'| edit_b == 't024.jpg' t2=[0;0;0;1;0]; end if edit_b == 't025.jpg' | edit_b == 't026.jpg'| edit_b == 't027.jpg'| edit_b == 't028.jpg'| edit_b == 't029.jpg'| edit_b == 't030.jpg' t2=[0;0;0;0;1]; end % -------------------------------cek string---------------------------- if (isequal(a1,b1)==1) button = questdlg('Terdapat data yang sama.Apakah ingin diubah??',... 'Message Box','Ya','Tidak','Tidak'); if strcmp(button,'Ya') return;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
elseif strcmp(button,'Tidak') close; end end % -------------------------------cek string---------------------------- p=[pa;pb]; pt=p'; global net; global t; t=[t1 t2] global hidden layar=str2num(hidden) if (layar==1) net=newff(minmax(pt),[unit,5],{'logsig','logsig'},'traingdx'); net=init(net); y=sim(net,pt) net.trainparam.epochs=epoch; net.trainparam.goal=tole; net.trainparam.lr=laju; tic [net,tr]=train(net,pt,t) toc global bobot1; global bobot2; global bobot3; global bobot4; global waktu; global eror global epoh 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) e1=y-t rerata_e1=mean(abs(e1)) rerata_training=mean(abs(rerata_e1)) bobot; end if (layar==2) net=newff(minmax(pt),[unit,unit2,5],{'logsig','logsig','logsig'},'traingdx'); net=init(net) y=sim(net,pt) net.trainparam.epochs=epoch; net.trainparam.goal=tole; net.trainparam.lr=laju; tic [net,tr]=train(net,pt,t) toc global bobot1; global bobot2; global bobot3; global bobot4; global bobot5;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
global bobot6; global waktu; global eror; global epoh; bobot1=net.IW{1,1}; bobot2=net.LW{2,1}; bobot3=net.LW{3,2}; bobot4=net.b{1}; bobot5=net.b{2}; bobot6=net.b{3}; waktu=toc eror=tr.perf(:,end) epoh=tr.epoch(:,end) e1=y-t; rerata_e1=mean(abs(e1)); rerata_training=mean(abs(rerata_e1)) bobot2hd; end; % --- 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('data training\*.jpg','Open Citra Tanda tangan'); asli=fname set(handles.edit5,'string',asli); % --- Executes on button press in pushbutton5. function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (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('data training\*.jpg','Open Citra Tanda tangan'); asli=fname; set(handles.edit6,'string',asli); % --- Executes during object creation, after setting all properties. function edit5_CreateFcn(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit 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 function edit5_Callback(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit5 as text
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% str2double(get(hObject,'String')) returns contents of edit5 as a double % --- Executes during object creation, after setting all properties. function edit6_CreateFcn(hObject, eventdata, handles) % hObject handle to edit6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit 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 function edit6_Callback(hObject, eventdata, handles) % hObject handle to edit6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit6 as text % str2double(get(hObject,'String')) returns contents of edit6 as a double % --- Executes during object creation, after setting all properties. function popupmenu1_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (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 popupmenu1. function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (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 popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu1 global ep val_ep = get(hObject,'Value'); string_list = get(hObject,'String'); ep = string_list{val_ep}; % --- Executes during object creation, after setting all properties. function popupmenu2_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% 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) % hObject handle to popupmenu4 (see GCBO)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% 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) % eventdata reserved - to be defined in a future version of MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% 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)". % % See also: GUIDE, GUIDATA, GUIHANDLES
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% 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)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% 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;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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'; set(handles.pushbutton2,'enable','on')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI