PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 kasihNya 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 ....................
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
43
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.
Synapses
Dendrite Nucleus Axon
Gambar 2.1. Susunan syaraf manusia 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 : f ( x) =
1 1 + e−x
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
z _ net j = v jo + ∑ xi v ji i =1
z j = f ( z _ net j ) =
1 1+ e
− z _ net j
iii. Hitung semua keluaran jaringan di unit yk (k=1,2,...,m) p
y _ net k = wk 0 + ∑ z j wkj j =1
y k = f ( y _ net k ) =
1 1+ e
− y _ net k
Fase II : Propagasi mundur iv. Hitung faktor δ unit keluaran berdasarkan kesalahan di setiap unit keluaran yk(k=1,2,...,m)
δ k = (t k − y k ) f ' ( y _ net k ) = (t k − y k ) y k (1 − y k ) δ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 α. Δwkj = αδ k z j
; 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
δ _ net j = ∑ δ k wkj k =1
Faktor δ unit tersembunyi :
δ j = δ _ net j f ' ( z _ net j ) = δ _ net j z j (1 − z j ) 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
Menu Pilihan : 1. File 2. Input 3. Run 4. Help Masukkan pilihan(y)?
If y=1
ya
KELUAR
tidak
If y=2
ya
DATA BARU
tidak
If y=3
ya
Menu Pilihan: 1. Training 2. Testing masukkan pilihan (x) ?
If x=1
tidak
ya
TRAINING
tidak ya If x=2
If y=4
ya
TESTING
ABOUT US
end
Gambar 3.2. Flowchart sistem secara umum
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19
1. Perancangan Form Pembuka JUDUL Disusun Oleh : Dosen Pembimbing :
LOGO USD
ENTER
PRODI JURUSAN FAKULTAS UNIVERSITAS TAHUN
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
File
Input
Exit
New Data
Perancangan Form preprocessing
Run Training
Help 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
INPUT DATA
Ambil Gambar
Ambil Foto
Images
Images Text2
Masukkan Nama :
Edit Text
Masukkan Alamat :
Edit Text
Masukkan Pekerjaan
Edit Text
Text1
Masukkan No. Telp :
Edit Text
Menu Utama
Simpan
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 Menu Utama
OK
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 :
Gambar 1
Masukkan batas toleransi :
Gambar2
Masukkan Laju Pemahaman : Jumlah Hidden Layer
Gambar3
Masukkan jumlah unit hidden layer :
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
Listbox2
Listbox3
Listbox4
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
Pilih data
ambil gambar
Lihat bobot
Uji Jaringan
Images
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
Gambar TTD yang diuji
Image 2
Hasil Keputusan :
Kode :
Edit text1
Nama :
Edit Text2
Alamat :
Edit Text3
Pekerjaan :
Edit Text4
No. Telp :
Edit Text5
Image 1
Tutup
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
10000
2
Anel
Paingan
Mahasiswi
0813658954
anel.jpg
01000
:
:
:
:
:
:
:
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. 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. 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 global global global global
bobot1; bobot2; bobot3; bobot4; 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
Error training
0.3 0.25 0.2 0.15
error training
0.1 0.05 0 100
200
300
400
500
600
700
800
900 1000
Jumlah epoch
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
error training
Grafik hubungan antara toleransi kesalahan dengan error training
0.009595 0.009095 0.008595 0.008095 0.007595 0.007095 0.006595 0.006095 0.005595 0.005095 0.004595 0.004095 0.003595 0.003095 0.002595 0.002095 0.001595 0.001095 0.000595 0.000095 0.0001 0.0011
error training
0.0021 0.0031 0.0041
0.0051 0.0061 0.0071
0.0081 0.0091
toleransi kesalahan
Gambar 4.14. Grafik hubungan antara toleransi kesalahan dengan error training
Dari grafik dapat dilihat bahwa toleransi kesalahan sangat berpengaruh 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 berbedabeda, untuk 30 data dengan epoch 500, toleransi kesalahan 0.0001, laju pemahaman 0.02 dan jumlah unit hidden layer adalah 10. Waktu Iterasi
Fungsi Pelatihan
Error training
Jumlah epoch (det)
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.25
Error training
0.2 0.15 error training 0.1 0.05 0 4
5
6
7
8
9
10
Unit hidden layer
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 P-1 P-2 P-3 P-4 P-5
Ttd1 Ttd1 Ttd1 Ttd1 Ttd1
Tanda tangan Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Tabel 4.5. Pembagian pola pelatihan dan pola pengujian
Keterangan
Ttd10 Ttd10 Ttd10 Ttd10 Ttd10
:
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 P-1 P-2 P-3 P-4 P-5
Ttd1 Ttd1 Ttd1 Ttd1 Ttd1
Tanda tangan Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Tabel 4.9. Pembagian pola pelatihan dan pola pengujian
Ttd10 Ttd10 Ttd10 Ttd10 Ttd10
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 P-1 P-2 P-3 P-4 P-5
Ttd1 Ttd2 Ttd3 Ttd4 Ttd5 Ttd6 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 P-5 P-5 ??? P-4 P-4 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-1 P-1 P-3 P-2 P-2 P-2 P-4 ?? 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 P-1 P-2 P-3 P-4 P-5
Ttd1 Ttd1 Ttd1 Ttd1 Ttd1
Ttd2 Ttd2 Ttd2 Ttd2 Ttd2
Tanda tangan Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Ttd3 Ttd4 Ttd5 Ttd6 Ttd7 Ttd8 Ttd9 Tabel 4.13. Pola pelatihan dan pola pengujian
Ttd10 Ttd10 Ttd10 Ttd10 Ttd10
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 Jumlah data
Jumlah
Jumlah
Data
data
testing
lain
Hasil pengujian (% dikenali)
Jumlah training dan
Data training
Data testing
Data lain
Data training testing
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 nma=get(handles.edit1,'string'); % pengecekan data untuk nama if (isletter(nma)==0) errordlg('Nama harus berupa string','!! Perhatian !!') break; end;
double
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 % eventdata % handles
handle to edit2 (see GCBO) reserved - to be defined in a future version of MATLAB 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 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
double
% --- 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 hObject eventdata handles
cell array for returning output args (see VARARGOUT); handle to figure reserved - to be defined in a future version of MATLAB 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 % handles
reserved - to be defined in a future version of MATLAB 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, % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future % handles structure with handles and user data [fname,pname] =uigetfile('.jpg','Open Citra Tanda 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')
handles) version of MATLAB (see GUIDATA) tangan');