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
99
Embed
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI … filesistem ini menunjukkan bahwa semakin banyak jumlah pola pelatihan, maka semakin besar pula kemungkinan pola akan dikenali. Pola dapat
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
PENERAPAN JARINGAN SYARAF TIRUAN UNTUK
PEMBUATAN SISTEM PENGENALAN TANDA TANGAN
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains Program Studi Ilmu Komputer
Oleh:
Pristina Mayrita Naibaho
NIM: 023124021
PROGRAM STUDI ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2007
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
- PERSEMBAHAN -
Whene’er i come to Jesus,
When troubled or distressed,
I always find a refuge
When i with Him can rest....
In times of joy or sorrow,
Whate’er my need may be
I can always come to Jesus,
And Jesus comfort me....
” Sebab di dalam Dialah tersembunyi segala harta hikmat dan pengetahuan. In whom are hide all the treasures of wisdom and knowledge (Kol 2;3) “
Karya ini kupersembahkan untuk :
The Lord Almighty.
Thanks Jesus, You are so good to me....
You are my all in all.. Without You, i’m nothing at all..
Bapakku P. Naibaho, Spd & Mamaku D. Nadeak yang selalu setia
mendoakanku, mendukung dan memberiku kesempatan untuk memulai dari
yang baru.
Abang-abangku :
Saut Maruli Naibaho, Am.T.
Andy Juliver Naibaho S.T. dan my Sister in law Netty
Nainggolan,Am,Keb. and my little nephew Rafael..
Jantri Musa Marolop Naibaho S.T.
My little Sister Erita Marlina Naibaho ☺
Thanks Buat semua cinta yang diberikan buat aku,
Finally i can finish..
...Jesus is only a prayer away...
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat
karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan
daftar pustaka, sebagaimana layaknya karya ilmiah
Yogyakarta, 28 Maret 2007
Penulis
Pristina Mayrita Naibaho
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAK
Tanda tangan merupakan salah satu cara yang digunakan sebagai sistem
autentifikasi dalam sebuah instansi, atau perusahaan-perusahaan besar khususnya. Hal ini
digunakan untuk dapat menjaga kerahasiaan data didalamnya. Dalam skripsi ini dibuat
sebuah sistem yang dapat mengenali tanda tangan dengan menggunakan jaringan syaraf
tiruan khususnya metode backpropagation.
Backpropagation yang digunakan dalam pembuatan sistem ini adalah
backpropagation standar. Arsitektur jaringan yang digunakan terdiri dari sebuah layar
input dengan 2500 neuron, sebuah layar tersembunyi yang terdiri dari 5 neuron dan
sebuah layar output dengan 5 neuron (2500 – 5 – 5).
Data yang digunakan untuk training adalah data tanda tangan yang diambil dari 5
orang, dimana setiap orang membubuhkan 10 buah tanda tangan. Hasil yang dicapai dari
sistem ini menunjukkan bahwa semakin banyak jumlah pola pelatihan, maka semakin
besar pula kemungkinan pola akan dikenali. Pola dapat dikenali sebesar 83 % untuk
pengujian pola dengan 25 data training (50 % data), 90% untuk pengujian pola dengan 30
data training (60 % data) dan 94 % untuk pengujian pola dengan 35 data training (70 %
data).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT
Signature represent one of method that used for the aunthentification system in a
institution, or big companys specially. This is used to be able keep of data secret in it. In
this scripsi made a system able to recognize signature by using artificial neural network
specially method of backpropagation.
Backpropagation which is used in making of this system is a standard
backpropagation. Network architecture that used is consist of a input layer with 2500
neuron, a hidden layer which consist of 5 neuron and a output layer with 5 neuron ( 2500
- 5 - 5).
Data used for training is signature had taken from 5 people, where each and
everyone give 10 signature. Result of this system indicate that more and more amount of
training pattern, hence ever greater also possibility of pattern will recognize. Pattern can
recognize equal to 83 % for the testing of pattern by 25 training set ( 50 % data), 90% for
the testing of pattern by 30 training set (60 % data) and 94 % for the testing of pattern by
35 training set ( 70 % data).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR
Puji syukur pada Tuhan Yesus Kristus yang telah melimpahkan rahmat dan kasih-
Nya sehingga penulis bisa menyelesaikan skripsi ini.
Skripsi ini ditulis untuk memenuhi salah satu syarat memperoleh gelar sarjana
sains Fakultas Matematika dan Ilmu Pengetahuan Alam, Program Studi Ilmu Komputer
Universitas Sanata Dharma.
Dalam penulisan skripsi penulis menyadari banyak pihak yang telah memberikan
sumbangan baik pikiran, waktu, tenaga, bimbingan dan dorongan pada penulis sehingga
akhirnya skripsi ini dapat selesai. Oleh karena itu dengan segala kerendahan hati penulis
menyampaikan ucapan terima kasih kepada :
1. Bapak Aris Dwi Atmoko selaku Dekan Fakultas MIPA.
2. Bapak Drs. J.J. Siang, M.Sc selaku dosen pembimbing untuk kesabaran, bantuan
dan arahan selama penulis menyusun skripsi.
3. Ibu P.H. Prima Rosa selaku KaProDi Ilmu Komputer untuk bantuan dan dorongan
yang diberikan selama kuliah.
4. Bapak St. Eko Hari Permadi, selaku dosen penguji.
5. Bapak Y. Joko Nugroho, selaku dosen penguji.
6. Seluruh Dosen Ilmu Komputer yang telah membimbing penulis selama belajar di
Sanata Dharma.
7. Pak Tukijo, Ibu Warni, mbak Linda, serta mas Susilo dan mas Widodo atas
bantuan teknis selama ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8. Teman – teman seperjuangan IKOM ’02, Agnes Nulat, Esti, Lidia n lainnya,
Especially for Team SC: Daru “Kakak Canggah”, Hendy “De’Dita”, Utix “Jeng
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
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal
ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk
memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal
ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk
memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.
edit_a=get(handles.edit5,'string'); citra = imread(edit_a); a=im2bw(citra); [m,n]=size(a); i=1; while i~=m for i=1:m if a(i,:)==1 a(i,:)=[]; m=m-1; i=1; break; end end;end; j=1; while j~=n for j=1:n if a(:,j)==1 a(:,j)=[]; n=n-1; j=1; break;end; end;end; a1=imresize(a,[50 50]); end a21=double(a1); pa=a21(1:2500);
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal
ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk
memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
c. Proses Pelatihan
Proses pelatihan ini bertujuan untuk melatih jaringan agar mampu
mengenali pola yang telah dimasukkan oleh user. Dari proses pelatihan akan
diperoleh nilai bobot jaringan. Nilai ini akan digunakan untuk proses testing.
p=[pa;pb;pc;pd;pe]; pt=p'; global net; global t % target t=[t1 t2 t3 t4 t5] % pembentukan jaringan net=newff(minmax(pt),[unit,5],{'logsig','logsig'},'traingdx'); net=init(net); % untuk melihat nilai keluaran jaringan sebelum dilatih y=sim(net,pt) net.trainparam.epochs=epoch; net.trainparam.goal=tole; net.trainparam.lr=laju; tic % pelatihan jaringan [net,tr]=train(net,pt,t) toc % bobot yang dihasilkan setelah di training bobot1=net.IW{1,1} bobot2=net.LW{2,1} bobot3=net.b{1} bobot4=net.b{2} waktu=toc eror=tr.perf(:,end) epoh=tr.epoch(:,end) bobot;
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal ini
dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk
memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal
ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk
memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.jhghgh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
3. Proses testing
Proses ini digunakan pada saat user ingin melakukan proses pengenalan
tanda tangan. Pada proses testing ini tahapan yang dilakukan hanya tahap
perambatan maju.
global bobot1; global bobot2; global bobot3; global bobot4; global net; b1=bobot1; b2=bobot2; b3=bobot3; b4=bobot4; global ps; pe=(ps); y=double(sim(net,pe)) level=graythresh(y) y1=im2bw(y,level); y2=double(y1) global t; [m,n]=size(t) global x; for x=1:n if t(:,x) == y2 fprintf('%d dikenali\n',x) hasil=1; cekt return; end end for w=1:n if isequal(t(:,w),y2) == 0 fprintf('%d tidak dikenali\n',w) hasil1=0 keputusan_gakenal return; end end
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal
ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk
memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
B. Antar muka pengguna (User Interface)
1. Tampilan awal Program
Gambar 4.1. Tampilan awal Program
Pada tampilan awal ini hanya menyajikan judul dan penulis program,
kemudian didalamnya terdapat 2 buah tombol (pushbutton), yaitu tombol enter
dan tombol exit. Tombol Enter berguna untuk memasuki tampilan berikutnya, dan
tombol exit digunakan untuk keluar.
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal
ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk
memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal
ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk
memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.
Setiap pola yang diambil oleh user akan melalui proses preprocessing.
jkkk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
2. Tampilan Menu
Gambar 4.2. Tampilan Menu
Pada tampilan ini terdapat 4 menu yang dapat membantu user.
1. Menu File
Dalam menu ini terdapat sebuah sub menu keluar yang digunakan untuk
keluar dari tampilan menu. Jika user memilih sub menu keluar, program
akan meminta konfirmasi apakah user yakin ingin keluar dari program,
jika ya, maka program akan menutup tampilan, dan jika tidak, tampilan
menu tidak akan tertutup.
Gambar 4.3. Tampilan Konfirmasi keluar
2. Menu Input
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Dalam menu Input terdapat sebuah sub menu yaitu sub menu data baru,
dimana menu ini berguna jika user ingin memasukkan data baru tanda
tangan. Data yang dimasukkan oleh user adalah data nama, alamat,
pekerjaan, nomor telepon dan gambar tanda tangan. Gambar tanda tangan
dapat diambil dari file.
Gambar 4.4. Tampilan input data baru
Dalam form ini terdapat 4 buah pushbutton (tombol), yaitu tombol ambil
gambar, ambil foto, tombol menu utama, dan tombol simpan.
Tombol ambil gambar berguna untuk mengambil gambar dari file. Hal ini
dilakukan user jika user ingin memasukkan data baru.
Tombol menu utama, digunakan jika user ingin kembali ke menu utama.
Dalam form ini juga terdapat sebuah axes (grafik) yang berguna untuk
menampilkan tanda tangan yang diambil user dari file. Jadi pada saat user
mengambil tanda tangan dari file, tanda tangan tersebut akan muncul di
grafik dibawahnya, kemudian nama file tanda tangan yang diambil
tersebut akan muncul di kotak dibawah grafik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
Tombol simpan, digunakan jika user ingin menyimpan data baru yang
telah diisikan oleh user. Pada saat menyimpan data, program akan
mengecek kelengkapan data yang dimasukkan oleh user. Jika data yang
tidak lengkap, maka program akan menampilkan pesan kesalahan.
3. Menu Run
Dalam menu Run, terdapat 2 buah sub menu yaitu sub menu training dan
testing. Pada sub menu training, program akan melatih jaringan dengan
menggunakan jaringan backpropagation standar. Pada proses pelatihan,
user akan memasukkan berapa banyaknya data yang akan dilatih. Data
yang akan dilatih dibatasi hingga 30 data.
Gambar 4.5. Form masukan banyaknya data yang akan ditraining
Jika masukan data berupa string, program akan menampilkan pesan
kesalahan
Gambar 4.6. Pesan kesalahan jika masukan berupa string
Jika angka yang dimasukkan oleh user lebih dari 30, maka program akan
menampilkan pesan kesalahan bahwa data training tidak boleh melebihi 30
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Gambar 4.7. Pesan kesalahan jika masukan user lebih dari 30
Kemudian user juga akan diminta untuk memilih banyaknya jumlah
epoch, laju pemahaman, batas toleransi errornya, dan jumlah unit untuk
satu hidden layer. Hal ini bertujuan agar user dapat melihat perubahan di
setiap pelatihan. Setelah user memasukkan semua data, maka data sudah
dapat dilatih. Jika data yang dimasukkan user tidak lengkap, maka user
tidak akan dapat melakukan proses training, dan program akan
menampilkan pesan kesalahan.
Gambar 4.8. Form training
Form training berfungsi untuk melatih jaringan dari data yang telah
dimasukkan oleh user. Dari proses pelatihan akan diperoleh nilai bobot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
jaringan. Nilai bobot jaringan yang telah dilatih akan ditampilkan ke dalam
sebuah form. Gambar 4.9. merupakan form yang digunakan untuk
menampilkan hasil modifikasi bobot dari setiap layarnya. Nilai ini akan
digunakan nantinya dalam proses pengujian jaringan.
Gambar 4.9. Form hasil training
Pada sub menu Testing, data akan diuji dan dikenali, dengan menggunakan
bobot yang diperoleh dari hasil training. Caranya user diminta untuk
mengambil citra yang digunakan untuk pengujian. Citra yang ditampilkan
di grafik merupakan citra yang sudah melewati proses preprocessing,
kemudian citra akan di testing.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
Gambar 4.10. Form Testing
Hasil pengujian akan ditampilkan di form baru, dimana hasil pengujian
berupa keputusan apakah tanda tangan dikenali atau tidak. Jika dikenali,
maka form akan menampilkan identitas dari pemilik program.
Gambar 4.11. Form keputusan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
4. Menu Help
Pada menu ini terdapat sebuah sub menu yaitu about us, yang berisi
informasi sekilas tentang program dan tentang pembuat program.
Gambar 4.12. Form About Us
C. Pembahasan Program
1. Jumlah epoch
Tabel 4.1. merupakan hasil training yang dilakukan untuk 30 buah data,
dengan toleransi kesalahan 0.0001, learning rate 0.05 dan jumlah neuron hidden
layer 5.
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal
ini dilakukan untuk memudahkan dalam perhitungan. Proses ini digunakan untuk
memanipulasi citra sedemikian rupa hingga menjadi citra yang siap diolah.
Setiap pola yang diambil oleh user akan melalui proses preprocessing. Hal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Jumlah Epoch Error training
100 0.150494
200 0.169112
300 0.253727
400 0.249435
500 0.0960561
1000 0.0470009
Tabel 4.1. hubungan antara jumlah epoch dan error training
Dari tabel diatas, dapat ditarik kesimpulan bahwa jumlah epoch
mempengaruhi nilai error training. Semakin besar jumlah epoch, semakin kecil
pula error training yang didapat. Sebaliknya, semakin besar jumlah epoch,
semakin lama pula waktu yang dibutuhkan untuk sebuah proses.
Grafik hubungan antara jumlah epoch dengan error training
00.05
0.1
0.150.2
0.250.3
100 200 300 400 500 600 700 800 900 1000
Jumlah epoch
Erro
r tra
inin
g
error training
Gambar 4.13 . Grafik hubungan antara jumlah epoch dan error training
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
2. Batas Toleransi
Percobaan berulang ulang juga dilakukan terhadap batas toleransi. Tabel
4.2. menggambarkan hasil dari percobaan yang dilakukan terhadap 30 buah data,
dengan laju pemahaman 0.02, jumlah epoch 500, dan jumlah unit hidden layer
sebanyak 10.
Tol kesalahan Error training 0.01 0.00992619 0.001 0.00326833 0.0001 9.78E-05 0.0002 0.0017724 0.0005 0.00601012
Tabel 4.2. Hubungan antara batas toleransi dengan error training
Grafik hubungan antara toleransi kesalahan dengan error training
Munir, Rinaldi, Pengolahan citra digital dengan pendekatan algoritmik,
Informatika, Bandung
Siang, J.J., 2005, Jaringan Syaraf Tiruan dan Pemrogramannya dengan
MATLAB, Andi Offset, Yogyakarta.
63
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Form data Baru (data_baru.m) function varargout = data_baru(varargin) % DATA_BARU M-file for data_baru.fig % DATA_BARU, by itself, creates a new DATA_BARU or raises the existing % singleton*. % % H = DATA_BARU returns the handle to a new DATA_BARU or the handle to % the existing singleton*. % % DATA_BARU('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in DATA_BARU.M with the given input arguments. % % DATA_BARU('Property','Value',...) creates a new DATA_BARU or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before data_baru_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to data_baru_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help data_baru % Last Modified by GUIDE v2.5 24-Mar-2007 14:21:00 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @data_baru_OpeningFcn, ... 'gui_OutputFcn', @data_baru_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin & isstr(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before data_baru is made visible. function data_baru_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to data_baru (see VARARGIN) % Choose default command line output for data_baru handles.output = hObject;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% Update handles structure guidata(hObject, handles); % UIWAIT makes data_baru wait for user response (see UIRESUME) % uiwait(handles.figure1); str = datestr(now); set(handles.text9,'string',str) % --- Outputs from this function are returned to the command line. function varargout = data_baru_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double nma=get(handles.edit1,'string'); % pengecekan data untuk nama if (isletter(nma)==0) errordlg('Nama harus berupa string','!! Perhatian !!') break; end; nm=isempty(nma); try if (nm==1) errordlg('Nama anda belum dimasukkan','!! Perhatian !!') end; end % --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function edit2_Callback(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit2 as text % str2double(get(hObject,'String')) returns contents of edit2 as a double almat=get(handles.edit2,'string'); % pengecekan data untuk alamat if (isletter(almat)==0) errordlg('Alamat harus berupa string','!! Perhatian !!') break; end; almt=isempty(almat); try if (almt==1) errordlg('Alamat anda belum dimasukkan','!! Perhatian !!') end; end % --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function edit3_Callback(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double pkrjn=get(handles.edit3,'string'); % pengecekan data untuk pekerjaan if (isletter(pkrjn)==0) errordlg('Pekerjaan harus berupa string','!! Perhatian !!')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
break; end; pek=isempty(pkrjn); try if (pek==1) errordlg('Pekerjaan anda belum dimasukkan','!! Perhatian !!') end; end % --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles) % hObject handle to edit4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function edit4_Callback(hObject, eventdata, handles) % hObject handle to edit4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit4 as text % str2double(get(hObject,'String')) returns contents of edit4 as a double notelp=get(handles.edit4,'string'); % pengecekan data untuk nomor telepon if (isletter(notelp)==1) errordlg('Nomor telepon harus berupa angka','!! Perhatian !!') end; notel=isempty(notelp); try if (notel==1) errordlg('Nomor telepon anda belum dimasukkan','!! Perhatian !!') end; end % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) nma=get(handles.edit1,'string'); % pengecekan data untuk nama if (isletter(nma)==0) errordlg('Nama harus berupa string','!! Perhatian !!') break; end; nma = strvcat(nma)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
nm=isempty(nma); if (nm==1) errordlg('Nama anda belum dimasukkan','!! Perhatian !!') break; end; almat=get(handles.edit2,'string'); % pengecekan data untuk alamat if (isletter(almat)==0) errordlg('Alamat harus berupa string','!! Perhatian !!') break; end; almat = strvcat(almat) almt=isempty(almat); if (almt==1) errordlg('Alamat anda belum dimasukkan','!! Perhatian !!') break; end; pkrjn=get(handles.edit3,'string'); % pengecekan data untuk pekerjaan if (isletter(pkrjn)==0) errordlg('Pekerjaan harus berupa string','!! Perhatian !!') break; end; pkrjn = strvcat(pkrjn) pek=isempty(pkrjn); if (pek==1) errordlg('Pekerjaan anda belum dimasukkan','!! Perhatian !!') break; end; notelp=get(handles.edit4,'string'); % pengecekan data untuk nomor telepon if isletter(notelp)==1 errordlg('Nomor telepon harus berupa angka','!! Perhatian !!') break; end; notelp = strvcat(notelp) notel=isempty(notelp); if (notel==1) errordlg('Nomor telepon anda belum dimasukkan','!! Perhatian !!') break; end; gambar = get(handles.text13,'String') % pengecekan data untuk gambar tanda tangan gambar = strvcat(gambar) gbr = isempty(gambar); if(gbr == 1) errordlg('gambar anda belum dimasukkan','!! Perhatian !!') break; end if gambar == 't001.jpg' | gambar == 't002.jpg'|gambar == 't003.jpg'|gambar == 't004.jpg'|gambar == 't005.jpg'|gambar == 't006.jpg' errordlg('tanda tangan sudah ada','!! Perhatian !!') break;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
end if gambar == 't007.jpg' | gambar == 't008.jpg'|gambar == 't009.jpg'|gambar == 't010.jpg'|gambar == 't011.jpg'|gambar == 't012.jpg' errordlg('tanda tangan sudah ada','!! Perhatian !!') break; end if gambar == 't013.jpg' | gambar == 't014.jpg'|gambar == 't015.jpg'|gambar == 't016.jpg'|gambar == 't017.jpg'|gambar == 't018.jpg' errordlg('tanda tangan sudah ada','!! Perhatian !!') break; end if gambar == 't019.jpg' | gambar == 't020.jpg'|gambar == 't021.jpg'|gambar == 't022.jpg'|gambar == 't023.jpg'|gambar == 't024.jpg' errordlg('tanda tangan sudah ada','!! Perhatian !!') break; end if gambar == 't025.jpg' | gambar == 't026.jpg'|gambar == 't027.jpg'|gambar == 't028.jpg'|gambar == 't029.jpg'|gambar == 't030.jpg' errordlg('tanda tangan sudah ada','!! Perhatian !!') break; end gambar_org = get(handles.text15,'String') % pengecekan data untuk gambar tanda tangan gambar2 = strvcat(gambar_org) gbr = isempty(gambar2); if(gbr == 1) errordlg('Foto anda belum dimasukkan','!! Perhatian !!') break; end % untuk menyimpan data %untuk mengkoneksikan ke database myodbc conn = database('myodbc','root',''); ping(conn); %untuk memilih tabel database curs = exec(conn, 'select * from table_tanda_tangan') setdbprefs('DataReturnFormat','cellarray') curs = fetch(curs,10) AA = curs.Data %lihat_data=curs.data(:,1) %untuk mengetahui jumlah data dari database yang disimpan panjangbaris = rows(curs) data2 = { nma,almat,pkrjn,notelp,gambar,gambar2 }
insert(conn, 'table_tanda_tangan', nama_data2, data2); h = waitbar(0,'Proses Penyimpanan data'); for i=1:1000, % computation here % waitbar(i/1000); end close(h); msgbox('Data Telah Tersimpan','Pesan Program','warn'); close(curs) close(conn);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close; menu; % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [fname,pname] =uigetfile({'*.jpg'},'Open Citra Tanda tangan'); asli=fname; citra = imread(asli); position = get(hObject, 'Position'); axes(handles.axes1); imshow(citra); set(handles.text13,'string',asli); % --- Executes during object creation, after setting all properties. function edit5_CreateFcn(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function edit5_Callback(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit5 as text % str2double(get(hObject,'String')) returns contents of edit5 as a double % --- Executes on button press in pushbutton5. function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [fname,pname] =uigetfile({'*.jpg'},'Open Citra Tanda tangan'); global asli asli=fname; citra = imread(asli); position = get(hObject, 'Position'); axes(handles.axes4); imshow(citra); set(handles.text15,'string',asli);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
form training (coba_training1.m) function varargout = coba_training1(varargin) clc; % COBA_TRAINING1 M-file for coba_training1.fig % COBA_TRAINING1, by itself, creates a new COBA_TRAINING1 or raises the existing % singleton*. % % H = COBA_TRAINING1 returns the handle to a new COBA_TRAINING1 or the handle to % the existing singleton*. % % COBA_TRAINING1('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in COBA_TRAINING1.M with the given input arguments. % % COBA_TRAINING1('Property','Value',...) creates a new COBA_TRAINING1 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before coba_training1_OpeningFunction gets called. An %unrecognized property name or invalid value makes property application % stop. All inputs are passed to coba_training1_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help coba_training1 % Last Modified by GUIDE v2.5 14-Mar-2007 13:06:27 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @coba_training1_OpeningFcn, ... 'gui_OutputFcn', @coba_training1_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin & isstr(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before coba_training1 is made visible. function coba_training1_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to coba_training1 (see VARARGIN) % Choose default command line output for coba_training1 handles.output = hObject;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% Update handles structure guidata(hObject, handles); % UIWAIT makes coba_training1 wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = coba_training1_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close; menu; % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global hidden layar=str2num(hidden); if layar ==1 bobot; else bobot2hd; end % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -----------------------training 2 data------------------------------- set(handles.pushbutton2,'enable','on') global ep global tol global lp global hd global edit_a global edit_b global unit2 global hd2 epoch=str2num(ep) tole=str2num(tol); laju=str2num(lp); unit=str2num(hd); unit2=str2num(hd2);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
edit_a=get(handles.edit5,'string') citra = imread(edit_a); a=im2bw(citra); [m,n]=size(a); i=1; while i~=m for i=1:m if a(i,:)==1 a(i,:)=[]; m=m-1; i=1; break; end end end j=1; while j~=n for j=1:n if a(:,j)==1 a(:,j)=[]; n=n-1; j=1; break; end end end a1=imresize(a,[50 50]); end a21=double(a1); pa=a21(1:2500); if edit_a == 't001.jpg' | edit_a == 't002.jpg'| edit_a == 't003.jpg' | edit_a == 't004.jpg'| edit_a == 't005.jpg'| edit_a == 't006.jpg' t1=[1;0;0;0;0;]; else if edit_a == 't007.jpg' | edit_a == 't008.jpg'| edit_a == 't009.jpg' | edit_a == 't010.jpg'| edit_a == 't011.jpg'| edit_a == 't012.jpg' t1=[0;1;0;0;0]; else if edit_a == 't013.jpg' | edit_a == 't014.jpg'| edit_a == 't015.jpg'| edit_a == 't016.jpg'| edit_a == 't017.jpg'| edit_a == 't018.jpg' t1=[0;0;1;0;0]; else if edit_a == 't019.jpg' | edit_a == 't020.jpg'| edit_a == 't021.jpg'| edit_a == 't022.jpg'| edit_a == 't023.jpg'| edit_a == 't024.jpg' t1=[0;0;0;1;0]; else if edit_a == 't025.jpg' | edit_a == 't026.jpg'| edit_a == 't027.jpg'| edit_a == 't028.jpg'| edit_a == 't029.jpg'| edit_a == 't030.jpg' t1=[0;0;0;0;1]; end end end end end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
edit_b=get(handles.edit6,'string'); citra = imread(edit_b); a=im2bw(citra); [m,n]=size(a); i=1; while i~=m for i=1:m if a(i,:)==1 a(i,:)=[]; m=m-1; i=1; break; end end end j=1; while j~=n for j=1:n if a(:,j)==1 a(:,j)=[]; n=n-1; j=1; break; end end end b1=imresize(a,[50 50]); end b21=double(b1); pb=b21(1:2500); if edit_b == 't001.jpg' | edit_b == 't002.jpg'| edit_b == 't003.jpg'| edit_b == 't004.jpg'| edit_b == 't005.jpg'| edit_b == 't006.jpg' t2=[1;0;0;0;0;]; end if edit_b == 't007.jpg' | edit_b == 't008.jpg'| edit_b == 't009.jpg'| edit_b == 't010.jpg'| edit_b == 't011.jpg'| edit_b == 't012.jpg' t2=[0;1;0;0;0]; end if edit_b == 't013.jpg' | edit_b == 't014.jpg'| edit_b == 't015.jpg'| edit_b == 't016.jpg'| edit_b == 't017.jpg'| edit_b == 't018.jpg' t2=[0;0;1;0;0]; end if edit_b == 't019.jpg' | edit_b == 't020.jpg'| edit_b == 't021.jpg'| edit_b == 't022.jpg'| edit_b == 't023.jpg'| edit_b == 't024.jpg' t2=[0;0;0;1;0]; end if edit_b == 't025.jpg' | edit_b == 't026.jpg'| edit_b == 't027.jpg'| edit_b == 't028.jpg'| edit_b == 't029.jpg'| edit_b == 't030.jpg' t2=[0;0;0;0;1]; end % -------------------------------cek string---------------------------- if (isequal(a1,b1)==1) button = questdlg('Terdapat data yang sama.Apakah ingin diubah??',... 'Message Box','Ya','Tidak','Tidak'); if strcmp(button,'Ya') return;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
elseif strcmp(button,'Tidak') close; end end % -------------------------------cek string---------------------------- p=[pa;pb]; pt=p'; global net; global t; t=[t1 t2] global hidden layar=str2num(hidden) if (layar==1) net=newff(minmax(pt),[unit,5],{'logsig','logsig'},'traingdx'); net=init(net); y=sim(net,pt) net.trainparam.epochs=epoch; net.trainparam.goal=tole; net.trainparam.lr=laju; tic [net,tr]=train(net,pt,t) toc global bobot1; global bobot2; global bobot3; global bobot4; global waktu; global eror global epoh bobot1=net.IW{1,1}; bobot2=net.LW{2,1}; bobot3=net.b{1}; bobot4=net.b{2}; waktu=toc eror=tr.perf(:,end) epoh=tr.epoch(:,end) e1=y-t rerata_e1=mean(abs(e1)) rerata_training=mean(abs(rerata_e1)) bobot; end if (layar==2) net=newff(minmax(pt),[unit,unit2,5],{'logsig','logsig','logsig'},'traingdx'); net=init(net) y=sim(net,pt) net.trainparam.epochs=epoch; net.trainparam.goal=tole; net.trainparam.lr=laju; tic [net,tr]=train(net,pt,t) toc global bobot1; global bobot2; global bobot3; global bobot4; global bobot5;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
global bobot6; global waktu; global eror; global epoh; bobot1=net.IW{1,1}; bobot2=net.LW{2,1}; bobot3=net.LW{3,2}; bobot4=net.b{1}; bobot5=net.b{2}; bobot6=net.b{3}; waktu=toc eror=tr.perf(:,end) epoh=tr.epoch(:,end) e1=y-t; rerata_e1=mean(abs(e1)); rerata_training=mean(abs(rerata_e1)) bobot2hd; end; % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [fname,pname] =uigetfile('data training\*.jpg','Open Citra Tanda tangan'); asli=fname set(handles.edit5,'string',asli); % --- Executes on button press in pushbutton5. function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [fname,pname] =uigetfile('data training\*.jpg','Open Citra Tanda tangan'); asli=fname; set(handles.edit6,'string',asli); % --- Executes during object creation, after setting all properties. function edit5_CreateFcn(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function edit5_Callback(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit5 as text
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% str2double(get(hObject,'String')) returns contents of edit5 as a double % --- Executes during object creation, after setting all properties. function edit6_CreateFcn(hObject, eventdata, handles) % hObject handle to edit6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function edit6_Callback(hObject, eventdata, handles) % hObject handle to edit6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit6 as text % str2double(get(hObject,'String')) returns contents of edit6 as a double % --- Executes during object creation, after setting all properties. function popupmenu1_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on selection change in popupmenu1. function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu1 global ep val_ep = get(hObject,'Value'); string_list = get(hObject,'String'); ep = string_list{val_ep}; % --- Executes during object creation, after setting all properties. function popupmenu2_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on selection change in popupmenu2. function popupmenu2_Callback(hObject, eventdata, handles) % hObject handle to popupmenu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns popupmenu2 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu2 global tol val_tol = get(hObject,'Value'); string_list = get(hObject,'String'); tol = string_list{val_tol}; % --- Executes during object creation, after setting all properties. function popupmenu3_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on selection change in popupmenu3. function popupmenu3_Callback(hObject, eventdata, handles) % hObject handle to popupmenu3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns popupmenu3 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu3 global lp val_lp = get(hObject,'Value'); string_list = get(hObject,'String'); lp = string_list{val_lp}; % --- Executes during object creation, after setting all properties. function popupmenu4_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu4 (see GCBO)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on selection change in popupmenu4. function popupmenu4_Callback(hObject, eventdata, handles) % hObject handle to popupmenu4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns popupmenu4 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu4 global hd val_hd = get(hObject,'Value'); string_list = get(hObject,'String'); hd = string_list{val_hd}; % --- Executes during object creation, after setting all properties. function popupmenu5_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on selection change in popupmenu5. function popupmenu5_Callback(hObject, eventdata, handles) % hObject handle to popupmenu5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns popupmenu5 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu5 global hd2 val_hd2 = get(hObject,'Value'); string_list = get(hObject,'String'); hd2 = string_list{val_hd2}; % --- Executes during object creation, after setting all properties. function popupmenu6_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on selection change in popupmenu6. function popupmenu6_Callback(hObject, eventdata, handles) % hObject handle to popupmenu6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns popupmenu6 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu6 global val_hidden global hidden val_hidden = get(hObject,'Value'); string_list = get(hObject,'String'); hidden = string_list{val_hidden}; if val_hidden==1 set(handles.popupmenu4,'visible','on') set(handles.popupmenu5,'visible','off') end if val_hidden==2 set(handles.popupmenu4,'visible','on') set(handles.popupmenu5,'visible','on') end Form Testing (Testing30.m) function varargout = testing30(varargin) % TESTING30 M-file for testing30.fig % TESTING30, by itself, creates a new TESTING30 or raises the existing % singleton*. % % H = TESTING30 returns the handle to a new TESTING30 or the handle to % the existing singleton*. % % TESTING30('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in TESTING30.M with the given input arguments. % % TESTING30('Property','Value',...) creates a new TESTING30 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before testing30_OpeningFunction gets called. An %unrecognized property name or invalid value makes property application %stop. All inputs are passed to testing30_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% Edit the above text to modify the response to help testing30 % Last Modified by GUIDE v2.5 19-Feb-2007 20:50:34 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @testing30_OpeningFcn, ... 'gui_OutputFcn', @testing30_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin & isstr(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before testing30 is made visible. function testing30_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to testing30 (see VARARGIN) % Choose default command line output for testing30 handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes testing30 wait for user response (see UIRESUME) % uiwait(handles.figure1); str = datestr(now); set(handles.text15,'string',str) % --- Outputs from this function are returned to the command line. function varargout = testing30_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global hidden layar=str2num(hidden); if layar ==1 bobot; else bobot2hd; end % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) clc global bobot1; global bobot2; global bobot3; global bobot4; global net; b1=bobot1; b2=bobot2; b3=bobot3; b4=bobot4; global ps; pe=(ps); y=double(sim(net,pe)) level=graythresh(y) y1=im2bw(y,level); y2=double(y1) global t; [m,n]=size(t) global x; for x=1:n if t(:,x) == y2 fprintf('%d dikenali\n',x) hasil=1; cekt return; end end for w=1:n if isequal(t(:,w),y2) == 0 fprintf('%d tidak dikenali\n',w) hasil1=0 h = waitbar(0,'Proses Pengambilan Keputusan'); for i=1:1000, % computation here % waitbar(i/1000); end close(h); keputusan_gakenal return;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
end end % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close; menu; % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [fname,pname] =uigetfile('.jpg','Open Citra Tanda tangan'); global asli asli=fname [v,w]=size(asli) citra = imread(asli); a=im2bw(citra); [m,n]=size(a); i=1; while i~=m for i=1:m if a(i,:)==1 a(i,:)=[]; m=m-1; i=1; break; end end end j=1; while j~=n for j=1:n if a(:,j)==1 a(:,j)=[]; n=n-1; j=1; break; end end end a2=imresize(a,[200 200]); axes(handles.axes1) imshow(a2) a3=imresize(a,[50 50]); pk=double(a3); pd=pk(1:2500); global ps; ps=pd'; set(handles.pushbutton2,'enable','on')