LAMPIRAN LISTING PROGRAM Prototype.m
LAMPIRAN LISTING PROGRAM
Prototype.m function varargout = prototype(varargin)gui_Singleton = 1; gui_State = struct( 'gui_Name' , mfilename, ...
'gui_Singleton' , gui_Singleton, ... 'gui_OpeningFcn' , @prototype_OpeningFcn, ... 'gui_OutputFcn' , @prototype_OutputFcn, ... 'gui_LayoutFcn' , [] , ... 'gui_Callback' , []); if nargin && ischar(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 % --- Executes just before prototype is made visible. function prototype_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject; guidata(hObject, handles);
% --- Outputs from this function are returned to the command line.
function varargout = prototype_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
% -------------------------------------------------------------------
- function utama_Callback(hObject, eventdata, handles)
% -------------------------------------------------------------------
- function pelatihan_Callback(hObject, eventdata, handles)
% -------------------------------------------------------------------
- function pengujian_Callback(hObject, eventdata, handles)
% -------------------------------------------------------------------
- function bantuan_Callback(hObject, eventdata, handles)
menubantuan
% -------------------------------------------------------------------
- function keluar_Callback(hObject, eventdata, handles) choice= questdlg ( 'apakah Anda yakin ingin keluar?' , 'confirm' , ...
'Yes' , 'No' , 'No' ); switch choice case 'Yes'
close all ;
end
% -------------------------------------------------------------------
- function ujibackpropagation_Callback(hObject, eventdata, handles)
ujibackpropagation close prototype ;
% -------------------------------------------------------------------
- function ujiperceptron_Callback(hObject, eventdata, handles)
ujiperceptron close prototype ;
% -------------------------------------------------------------------
function metodebackpropagation_Callback(hObject, eventdata, handles)
metodebackpropagation close prototype ;
% -------------------------------------------------------------------
- function metodeperceptron_Callback(hObject, eventdata, handles)
metodeperceptron close prototype ;
metodebackpropagation.m function varargout = metodebackpropagation(varargin)
gui_Singleton = 1; gui_State = struct( 'gui_Name' , mfilename, ...
'gui_Singleton' , gui_Singleton, ... 'gui_OpeningFcn' , @metodebackpropagation_OpeningFcn, ... 'gui_OutputFcn' , @metodebackpropagation_OutputFcn, ... 'gui_LayoutFcn' , [] , ... 'gui_Callback' , []); if nargin && ischar(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 metodebackpropagation is made visible.
function metodebackpropagation_OpeningFcn(hObject, eventdata,
handles, varargin) handles.output = hObject; guidata(hObject, handles);
function varargout = metodebackpropagation_OutputFcn(hObject,
eventdata, handles, varargin) varargout{1} = handles.output;
% -------------------------------------------------------------------
- function utama_Callback(hObject, eventdata, handles)
metodebackpropagation
% -------------------------------------------------------------------
- \
function uji_jst_Callback(hObject, eventdata, handles)
ujibackpropagation close metodebackpropagation ;
% -------------------------------------------------------------------
- function bantuan_Callback(hObject, eventdata, handles)
bantuanpelatihan
% -------------------------------------------------------------------
- function keluar_Callback(hObject, eventdata, handles)
% -------------------------------------------------------------------
- function menuutama_Callback(hObject, eventdata, handles)
prototype close metodebackpropagation ;
function edit1_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end % --- Executes on button press in cari. function cari_Callback(hObject, eventdata, handles)
[nama_file,nama_path] = uigetfile({ '*.jpg' , 'File jpeg (*.jpg)' }, 'Buka
File Citra' ); if ~isequal(nama_file,0)
handles.citra=imread(fullfile(nama_path,nama_file)); guidata(hObject,handles); axes(handles.axes1); imshow(handles.citra); axes(handles.axes1); imshow(handles.citra);
else return ; end ;
% --- Executes on button press in cari2. function cari2_Callback(hObject, eventdata, handles)
[nama_file,nama_path] = uigetfile({ '*.jpg' , 'File jpeg (*.jpg)' }, 'Buka
File Citra' ); if ~isequal(nama_file,0)
handles.citra2=imread(fullfile(nama_path,nama_file)); guidata(hObject,handles); axes(handles.axes2); imshow(handles.citra); axes(handles.axes2); imshow(handles.citra);
else return ; end ; %---------------------------------------------------------- function edit3_Callback(hObject, eventdata, handles) function edit3_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end % --- Executes on slider movement. function varargout = sd_tres_Callback(hObject, eventdata, handles,
varargin) nilai_red = get(handles.sd_tres, 'value' ); handles.nilai_red = round(nilai_red); guidata(hObject,handles); set(handles.edit, 'string' ,handles.nilai_red); citra_gray=rgb2gray(handles.citra); citra_gray=double(citra_gray); [b k]=size(citra_gray);
for x=1:b for y=1:k if citra_gray(x,y)<nilai_red
citra_threshold(x,y)=0;
elseif citra_gray(x,y)>=nilai_red
citra_threshold(x,y)=1;
end end end
citra_threshold handles.citra_tres=citra_threshold; guidata(hObject,handles); axes(handles.axes1); imshow(citra_threshold); % --- Executes during object creation, after setting all properties.
function sd_tres_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' ,[.9 .9 .9]);
end function varargout = sd_tres2_Callback(hObject, eventdata, handles,
varargin) nilai_red2 = get(handles.sd_tres2, 'value' ); handles.nilai_red2 = round(nilai_red2); guidata(hObject,handles); set(handles.edit3, 'string' ,handles.nilai_red2); citra_gray2=rgb2gray(handles.citra2); citra_gray2=double(citra_gray2); [b k]=size(citra_gray2);
for x=1:b for y=1:k if citra_gray2(x,y)<nilai_red2
citra_threshold2(x,y)=0;
elseif citra_gray2(x,y)>=nilai_red2
citra_threshold2(x,y)=1;
end end end
citra_threshold2 handles.citra_tres2=citra_threshold2; guidata(hObject,handles); axes(handles.axes2); imshow(citra_threshold2);
function sd_tres2_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' ,[.9 .9 .9]);
end % --- Executes on button press in reduksidata. function reduksidata_Callback(hObject, eventdata, handles)
dataawal = xlsread( 'programbackpropagation.xlsx' , 'datapincode' ); prosesdata=mean(dataawal); [A,B]=size(dataawal); databaru= dataawal - repmat(prosesdata,A,1); [A,B]=size(databaru);
for x = 1:A for y = 1:B if databaru(x,y)<=0
databaru(x,y)=0;
end end end
olahdata = 1/B *(databaru*databaru'); [PC,V]= eig(olahdata); V=diag(V); [junk,rindices]= sort(-1*V); V=V(rindices); PC = PC (:,rindices); signal=dataawal'*PC; ext= dataawal*signal; minr=min(ext); minr=min(minr); maxr=max(ext); maxr=max(maxr); delta=maxr-minr; datautama=2*(ext-minr)/delta-1; xlswrite( 'programbackpropagation1.xlsx' ,signal, 'datapincode' , 'A1:T250
0' ); xlswrite( 'programbackpropagation1.xlsx' ,ext, 'datapincode' , 'A2502:T252
1' );
xlswrite( 'programbackpropagation1.xlsx' ,datautama, 'datapincode' , 'A252
3:T2542' ); % --- Executes on button press in simpanbackpropagation.
function simpanbackpropagation_Callback(hObject, eventdata, handles)
nopin = get(handles.edit1, 'string' ); a = double(handles.citra_tres); b = double(handles.citra_tres2); pin = [reshape(a,1,2500); reshape(b,1,2500)]; set(handles.edit1, 'string' , '' ); set(handles.edit, 'string' , '0' ); set(handles.edit3, 'string' , '0' ); axes(handles.axes1); imshow(1); axes(handles.axes2); imshow(1);
if (strcmp(nopin, '21A86CC1' ))
xlswrite( 'programbackpropagation.xlsx' ,pin, 'datapincode' , 'A1' );
elseif (strcmp(nopin, '21E52EDC' ))
xlswrite( 'programbackpropagation.xlsx' ,pin, 'datapincode' , 'A3' );
elseif (strcmp(nopin, '25D6096B' ))
xlswrite( 'programbackpropagation.xlsx' ,pin, 'datapincode' , 'A5' );
elseif (strcmp(nopin, '26B5E5C0' ))
xlswrite( 'programbackpropagation.xlsx' ,pin, 'datapincode' , 'A7' );
elseif (strcmp(nopin, '27C30B0B' ))
xlswrite( 'programbackpropagation.xlsx' ,pin, 'datapincode' , 'A9' );
elseif (strcmp(nopin, '27FBBA4A' ))
xlswrite( 'programbackpropagation.xlsx' ,pin, 'datapincode' , 'A11' );
elseif (strcmp(nopin, '29EA3A24' ))
xlswrite( 'programbackpropagation.xlsx' ,pin, 'datapincode' , 'A13' );
elseif (strcmp(nopin, '3114AA76' ))
xlswrite( 'programbackpropagation.xlsx' ,pin, 'datapincode' , 'A15' );
elseif (strcmp(nopin, '231708D0' ))
xlswrite( 'programbackpropagation.xlsx' ,pin, 'datapincode' , 'A17' );
elseif (strcmp(nopin, '2585926A' ))
xlswrite( 'programbackpropagation.xlsx' ,pin, 'datapincode' , 'A19' );
else
xlswrite( 'programbackpropagation.xlsx' ,pin, 'datapincode' , 'A21' );
end % --- Executes on button press in resetbackpropagation. function resetbackpropagation_Callback(hObject, eventdata, handles)
set(handles.edit1, 'String' , '' , 'Enable' , 'on' ); set(handles.edit, 'String' , '' , 'Enable' , 'on' ); axes(handles.axes1); imshow(1); axes(handles.axes2); imshow(2);
% --- Executes during object creation, after setting all properties. function edit_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function edit_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' ))
set(hObject, 'BackgroundColor' , 'white' );
end % --- Executes on button press in backpropagation. function backpropagation_Callback(hObject, eventdata, handles)
input = xlsread( 'programbackpropagation1.xlsx' , 'datapincode' , 'A2523:T2542' ); target = [1 0 0 0 0 0 0 0 0 0; 1 0 0 0 0 0 0 0 0 0; 0 1 0 0 0 0 0 0 0 0; 0 1 0 0 0 0 0 0 0 0; 0 0 1 0 0 0 0 0 0 0; 0 0 1 0 0 0 0 0 0 0; 0 0 0 1 0 0 0 0 0 0; 0 0 0 1 0 0 0 0 0 0; 0 0 0 0 1 0 0 0 0 0; 0 0 0 0 1 0 0 0 0 0; 0 0 0 0 0 1 0 0 0 0; 0 0 0 0 0 1 0 0 0 0; 0 0 0 0 0 0 1 0 0 0; 0 0 0 0 0 0 1 0 0 0; 0 0 0 0 0 0 0 1 0 0; 0 0 0 0 0 0 0 1 0 0; 0 0 0 0 0 0 0 0 1 0; 0 0 0 0 0 0 0 0 1 0; 0 0 0 0 0 0 0 0 0 1; 0 0 0 0 0 0 0 0 0 1]; target = target'; input=input'; net = newff(minmax(input),[20 20 10], { 'tansig' , 'tansig' , 'tansig' }, 'traingda' ); net.trainParam.show=100; net.trainParam.epochs=20000; net.trainParam.goal=0.0001; net.trainParam.lr = 0.1; net.trainParam.mc = 0.1; [net,tr] = train(net,input,target); xlswrite( 'programbackpropagation2.xlsx' ,net.IW{1,1}, 'bobot' , 'A' ); xlswrite( 'programbackpropagation3.xlsx' ,net.LW{2,1}, 'bobot' , 'A' ); xlswrite( 'programbackpropagation4.xlsx' ,net.LW{3,2}, 'bobot' , 'A' ); xlswrite( 'programbackpropagation5.xlsx' ,net.b{1}, 'bias' , 'A1:A20' ); xlswrite( 'programbackpropagation5.xlsx' ,net.b{2}, 'bias' , 'B1:B20' ); xlswrite( 'programbackpropagation5.xlsx' ,net.b{3}, 'bias' , 'C1:C10' ); output = sim(net,input)
metodeperceptron.m function varargout = metodeperceptron(varargin)
gui_Singleton = 1; gui_State = struct( 'gui_Name' , mfilename, ...
'gui_Singleton' , gui_Singleton, ... 'gui_OpeningFcn' , @metodeperceptron_OpeningFcn, ... 'gui_OutputFcn' , @metodeperceptron_OutputFcn, ... 'gui_LayoutFcn' , [] , ... 'gui_Callback' , []); if nargin && ischar(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 % --- Executes just before metodeperceptron is made visible. function metodeperceptron_OpeningFcn(hObject, eventdata, handles,
varargin) handles.output = hObject; guidata(hObject, handles); % --- Outputs from this function are returned to the command line.
function varargout = metodeperceptron_OutputFcn(hObject, eventdata,
handles) varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end
% -------------------------------------------------------------------
- function utama_Callback(hObject, eventdata, handles)
metodeperceptron
% -------------------------------------------------------------------
- function bantuan_Callback(hObject, eventdata, handles)
bantuanpelatihan
% -------------------------------------------------------------------
- function keluar_Callback(hObject, eventdata, handles)
close metodeperceptron ;
% -------------------------------------------------------------------
- function uji_jst_Callback(hObject, eventdata, handles)
ujiperceptron close metodeperceptron ;
% --- Executes on button press in cari. function cari_Callback(hObject, eventdata, handles)
[nama_file,nama_path] = uigetfile({ '*.jpg' , 'File jpeg (*.jpg)' }, 'Buka
File Citra' ); if ~isequal(nama_file,0)
handles.citra=imread(fullfile(nama_path,nama_file)); guidata(hObject,handles); axes(handles.axes1);
imshow(handles.citra); axes(handles.axes1); imshow(handles.citra);
else return ; end ; % --- Executes on button press in cari. function cari2_Callback(hObject, eventdata, handles)
[nama_file,nama_path] = uigetfile({ '*.jpg' , 'File jpeg (*.jpg)' }, 'Buka
File Citra' ); if ~isequal(nama_file,0)
handles.citra2=imread(fullfile(nama_path,nama_file)); guidata(hObject,handles); axes(handles.axes2); imshow(handles.citra2); axes(handles.axes2); imshow(handles.citra2);
else return ; end ; % --- Executes on slider movement. function varargout = sd_tres_Callback(hObject, eventdata, handles,
varargin) nilai_red = get(handles.sd_tres, 'value' ); handles.nilai_red = round(nilai_red); guidata(hObject,handles); set(handles.edit1, 'string' ,handles.nilai_red); citra_gray=rgb2gray(handles.citra); citra_gray=double(citra_gray); [b k]=size(citra_gray);
for x=1:b for y=1:k if citra_gray(x,y)<nilai_red
citra_threshold(x,y)=0;
elseif citra_gray(x,y)>=nilai_red
citra_threshold(x,y)=1;
end end end
citra_threshold handles.citra_tres=citra_threshold; guidata(hObject,handles); axes(handles.axes1); imshow(citra_threshold); % --- Executes on slider movement.
function sd_tres2_Callback(hObject, eventdata, handles)
nilai_red2 = get(handles.sd_tres2, 'value' ); handles.nilai_red2 = round(nilai_red2); guidata(hObject,handles); set(handles.edit2, 'string' ,handles.nilai_red2); citra_gray2=rgb2gray(handles.citra2); citra_gray2=double(citra_gray2); [b k]=size(citra_gray2);
for x=1:b for y=1:k if citra_gray2(x,y)<nilai_red2 citra_threshold2(x,y)=0;
elseif citra_gray2(x,y)>=nilai_red2
citra_threshold2(x,y)=1;
end end end
citra_threshold2 handles.citra_tres2=citra_threshold2; guidata(hObject,handles); axes(handles.axes2); imshow(citra_threshold2);
function sd_tres2_CreateFcn(hObject, eventdata, handles) function sd_tres_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' ,[.9 .9 .9]);
end if isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' ,[.9 .9 .9]);
end % --- Executes on button press in simpanperceptron function simpanperceptron_Callback(hObject, eventdata, handles)
nopin = get(handles.edit3, 'string' ); a = double(handles.citra_tres); b = double(handles.citra_tres2); pin = [reshape(a,1,2500); reshape(b,1,2500)]; set(handles.edit3, 'string' , '' ); set(handles.edit1, 'string' , '0' ); set(handles.edit2, 'string' , '0' ); axes(handles.axes1); imshow(1); axes(handles.axes2); imshow(1);
if (strcmp(nopin, '21A86CC1' ))
xlswrite( 'programperceptron.xlsx' ,pin, 'datapincode' , 'A1' );
elseif (strcmp(nopin, '21E52EDC' ))
xlswrite( 'programperceptron.xlsx' ,pin, 'datapincode' , 'A3' );
elseif (strcmp(nopin, '25D6096B' ))
xlswrite( 'programperceptron.xlsx' ,pin, 'datapincode' , 'A5' );
elseif (strcmp(nopin, '26B5E5C0' ))
xlswrite( 'programperceptron.xlsx' ,pin, 'datapincode' , 'A7' );
elseif (strcmp(nopin, '27C30B0B' ))
xlswrite( 'programperceptron.xlsx' ,pin, 'datapincode' , 'A9' );
elseif (strcmp(nopin, '27FBBA4A' ))
xlswrite( 'programperceptron.xlsx' ,pin, 'datapincode' , 'A11' );
elseif (strcmp(nopin, '29EA3A24' ))
xlswrite( 'programperceptron.xlsx' ,pin, 'datapincode' , 'A13' );
elseif (strcmp(nopin, '3114AA76' ))
xlswrite( 'programperceptron.xlsx' ,pin, 'datapincode' , 'A15' );
elseif (strcmp(nopin, '231708D0' ))
xlswrite( 'programperceptron.xlsx' ,pin, 'datapincode' , 'A17' );
elseif (strcmp(nopin, '2585926A' ))
xlswrite( 'programperceptron.xlsx' ,pin, 'datapincode' , 'A19' );
else xlswrite( 'programperceptron.xlsx' ,pin, 'datapincode' , 'A21' );
end % --- Executes on button press in reduksidata. function reduksidata_Callback(hObject, eventdata, handles)
dataawal = xlsread( 'programperceptron.xlsx' , 'datapincode' ); prosesdata=mean(dataawal); [A,B]=size(dataawal); databaru= dataawal - repmat(prosesdata,A,1); [A,B]=size(databaru);
for x = 1:A for y = 1:B if databaru(x,y)<=0
databaru(x,y)=0;
end end end
olahdata = 1/B *(databaru*databaru'); [PC,V]= eig(olahdata); V=diag(V); [junk,rindices]= sort(-1*V); V=V(rindices); PC = PC(:,rindices); signal=dataawal'*PC; ext= dataawal*signal; minr=min(ext); minr=min(minr); maxr=max(ext); maxr=max(maxr); delta=maxr-minr; datautama=2*(ext-minr)/delta-1; xlswrite( 'programperceptron1.xlsx' ,signal, 'datapincode' , 'A1:T2500' ); xlswrite( 'programperceptron1.xlsx' ,ext, 'datapincode' , 'A2502:T2521' ); xlswrite( 'programperceptron1.xlsx' ,datautama, 'datapincode' , 'A2523:T25
42' ); % --- Executes on button press in reset. function reset_Callback(hObject, eventdata, handles)
set(handles.edit1, 'String' , '' , 'Enable' , 'on' ); set(handles.edit2, 'String' , '' , 'Enable' , 'on' ); axes(handles.axes1); imshow(1); axes(handles.axes2); imshow(2);
% --- Executes on button press in latihjst. function latihjst_Callback(hObject, eventdata, handles)
input = xlsread( 'programperceptron1.xlsx' , 'datapincode' , 'A2523:T2542' ) target = [1 0 0 0 0 0 0 0 0 0; 1 0 0 0 0 0 0 0 0 0; 0 1 0 0 0 0 0 0 0 0; 0 1 0 0 0 0 0 0 0 0; 0 0 1 0 0 0 0 0 0 0; 0 0 1 0 0 0 0 0 0 0; 0 0 0 1 0 0 0 0 0 0; 0 0 0 1 0 0 0 0 0 0; 0 0 0 0 1 0 0 0 0 0; 0 0 0 0 1 0 0 0 0 0; 0 0 0 0 0 1 0 0 0 0;
0 0 0 0 0 1 0 0 0 0; 0 0 0 0 0 0 1 0 0 0; 0 0 0 0 0 0 1 0 0 0; 0 0 0 0 0 0 0 1 0 0; 0 0 0 0 0 0 0 1 0 0; 0 0 0 0 0 0 0 0 1 0; 0 0 0 0 0 0 0 0 1 0; 0 0 0 0 0 0 0 0 0 1; 0 0 0 0 0 0 0 0 0 1]; target = target'; input=input'; net = newp(minmax(input),10); net.trainParam.show=1000; net.trainParam.epochs=20000; net.trainParam.goal=0.0001;
%net.adaptParam.passes = 500;
[net,output]= adapt (net,input,target); [net,tr] = train (net,input,target); xlswrite( 'programperceptron2.xlsx' ,net.IW{1,1}, 'bobot' , 'A' ); xlswrite( 'programperceptron5.xlsx' ,net.b{1}, 'bias' , 'A1:A10' ); output = sim (net,input)
function edit2_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end
% -------------------------------------------------------------------
- function menuutama_Callback(hObject, eventdata, handles)
prototype close metodeperceptron ;
function edit3_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end ujibackpropagation.m function varargout = ujibackpropagation(varargin)
gui_Singleton = 1; gui_State = struct( 'gui_Name' , mfilename, ...
'gui_Singleton' , gui_Singleton, ... 'gui_OpeningFcn' , @ujibackpropagation_OpeningFcn, ... 'gui_OutputFcn' , @ujibackpropagation_OutputFcn, ... 'gui_LayoutFcn' , [] , ...
'gui_Callback' , []); if nargin && ischar(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 % --- Executes just before ujibackpropagation is made visible. function ujibackpropagation_OpeningFcn(hObject, eventdata, handles,
varargin) handles.output = hObject; guidata(hObject, handles); % --- Outputs from this function are returned to the command line.
function varargout = ujibackpropagation_OutputFcn(hObject, eventdata,
handles) varargout{1} = handles.output;
% -------------------------------------------------------------------
- function utama_Callback(hObject, eventdata, handles)
ujibackpropagation
% -------------------------------------------------------------------
- function bantuan_Callback(hObject, eventdata, handles)
bantuanpengujian
% -------------------------------------------------------------------
- function keluar_Callback(hObject, eventdata, handles)
% -------------------------------------------------------------------
- function menuutama_Callback(hObject, eventdata, handles)
prototype
% -------------------------------------------------------------------
- function edit1_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end % --- Executes on button press in cari. function cari_Callback(hObject, eventdata, handles)
[fileName, pathName] = uigetfile({ '*.jpg' , 'File jpeg (*.jpg)' }, 'Open
Bitmap File' ); if isequal(fileName, 0) return ; else
info = imfinfo([pathName, fileName]);
filename = info.Filename; handles.citra = imread(fullfile(pathName, fileName)); guidata(hObject, handles); axes(handles.axes1); imshow(handles.citra); set(handles.edit3, 'string' , fileName);
end ; function edit2_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end % --- Executes on slider movement. function slider1_Callback(hObject, eventdata, handles)
nilai_red = get(handles.slider1, 'value' ); handles.nilai_red = round(nilai_red); guidata(hObject,handles); set(handles.edit1, 'string' ,handles.nilai_red); citra_gray=rgb2gray(handles.citra); citra_gray=double(citra_gray); [b k]=size(citra_gray);
for x=1:b for y=1:k if citra_gray(x,y)<nilai_red
citra_threshold(x,y)=0;
elseif citra_gray(x,y)>=nilai_red
citra_threshold(x,y)=1;
end end end
citra_threshold handles.citra_tes=citra_threshold; guidata(hObject,handles) axes(handles.axes1); imshow(citra_threshold); % --- Executes during object creation, after setting all properties.
function slider1_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' ,[.9 .9 .9]);
end % --- Executes on button press in reset. function reset_Callback(hObject, eventdata, handles)
set(handles.edit1, 'String' , '' , 'Enable' , 'on' ); set(handles.edit2, 'String' , '' , 'Enable' , 'on' ); axes(handles.axes1); imshow(1);
% --- Executes on button press in ujipengenalan. function ujipengenalan_Callback(hObject, eventdata, handles)
tStart=tic; Signal = xlsread( 'programbackpropagation1.xlsx' , 'datapincode' , 'A1:T2500' ); ext = xlsread( 'programbackpropagation1.xlsx' , 'datapincode' , 'A2502:T2521' ); input = xlsread( 'programbackpropagation1.xlsx' , 'datapincode' , 'A2523:T2542' ); citrauji = double(handles.citra_tes); flatvec = [reshape(citrauji,1,2500)]; mat_uji = flatvec*Signal; minr=min(ext); minr=min(minr); maxr=max(ext); maxr=max(maxr); delta=maxr-minr; datapengujian = 2 *(mat_uji-minr)/delta-1; target =[ 1 0 0 0 0 0 0 0 0 0; 1 0 0 0 0 0 0 0 0 0; 0 1 0 0 0 0 0 0 0 0; 0 1 0 0 0 0 0 0 0 0; 0 0 1 0 0 0 0 0 0 0; 0 0 1 0 0 0 0 0 0 0; 0 0 0 1 0 0 0 0 0 0; 0 0 0 1 0 0 0 0 0 0; 0 0 0 0 1 0 0 0 0 0; 0 0 0 0 1 0 0 0 0 0; 0 0 0 0 0 1 0 0 0 0; 0 0 0 0 0 1 0 0 0 0; 0 0 0 0 0 0 1 0 0 0; 0 0 0 0 0 0 1 0 0 0; 0 0 0 0 0 0 0 1 0 0; 0 0 0 0 0 0 0 1 0 0; 0 0 0 0 0 0 0 0 1 0; 0 0 0 0 0 0 0 0 1 0; 0 0 0 0 0 0 0 0 0 1; 0 0 0 0 0 0 0 0 0 1]; target = target'; input = input'; net = newff(minmax(input),[20 20 10], { 'tansig' , 'tansig' , 'tansig' }, 'traingdx' ); net = init(net); net.IW{1,1}= xlsread( 'programbackpropagation2.xlsx' , 'bobot' ); net.LW{2,1}= xlsread( 'programbackpropagation3.xlsx' , 'bobot' ); net.LW{3,2}= xlsread( 'programbackpropagation4.xlsx' , 'bobot' ); net.b{1}= xlsread( 'programbackpropagation5.xlsx' , 'bias' , 'A1:A20' ); net.b{2}= xlsread( 'programbackpropagation5.xlsx' , 'bias' , 'B1:B20' ); net.b{3}= xlsread( 'programbackpropagation5.xlsx' , 'bias' , 'C1:C10' ); datapengujian=datapengujian' output = sim(net,datapengujian)
if (output(1,1)<0.9)
a(1,1)=0;
else
a(1,1)=1;
end if (output(2,1)<0.9)
a(2,1)=0; else
a(2,1)=1;
end if (output(3,1)<0.9)
a(3,1)=0;
else
a(3,1)=1;
end if (output(4,1)<0.9)
a(4,1)=0;
else
a(4,1)=1;
end if (output(5,1)<0.9)
a(5,1)=0;
else
a(5,1)=1;
end if (output(6,1)<0.9)
a(6,1)=0;
else
a(6,1)=1;
end if (output(7,1)<0.9)
a(7,1)=0;
else
a(7,1)=1;
end if (output(8,1)<0.9)
a(8,1)=0;
else
a(8,1)=1;
end if (output(9,1)<0.9)
a(9,1)=0;
else
a(9,1)=1;
end if (output(10,1)<0.9)
a(10,1)=0;
else
a(10,1)=1;
end
pin=[a(1,1);a(2,1);a(3,1);a(4,1);a(5,1);a(6,1);a(7,1);a(8,1);a(9,1);a (10,1)]; pin1 = [1; 0; 0; 0; 0; 0; 0; 0; 0; 0;]; pin2 = [0; 1; 0; 0; 0; 0; 0; 0; 0; 0;]; pin3 = [0; 0; 1; 0; 0; 0; 0; 0; 0; 0;]; pin4 = [0; 0; 0; 1; 0; 0; 0; 0; 0; 0;]; pin5 = [0; 0; 0; 0; 1; 0; 0; 0; 0; 0;]; pin6 = [0; 0; 0; 0; 0; 1; 0; 0; 0; 0;]; pin7 = [0; 0; 0; 0; 0; 0; 1; 0; 0; 0;]; pin8 = [0; 0; 0; 0; 0; 0; 0; 1; 0; 0;]; pin9 = [0; 0; 0; 0; 0; 0; 0; 0; 1; 0;]; pin10 = [0; 0; 0; 0; 0; 0; 0; 0; 0; 1;];
if isequal (a,pin1)
edit2= '21A86CC1' ;
elseif isequal (a,pin2)
edit2= '21E52EDC' ;
elseif isequal (a,pin3)
edit2= '25D6096B' ;
elseif isequal (a,pin4)
edit2= '26B5E5C0' ;
elseif isequal (a,pin5)
edit2= '27C30B0B' ;
elseif isequal (a,pin6)
edit2= '27FBBA4A' ;
elseif isequal (a,pin7)
edit2= '29EA3A24' ;
elseif isequal (a,pin8)
edit2= '3114AA76' ;
elseif isequal (a,pin9)
edit2= '231708D0' ;
elseif isequal (a,pin10)
edit2= '2585926A' ;
else
edit2= 'Tidak Dikenali' ;
end
set(handles.edit2, 'String' ,edit2); waktuuji = toc(tStart); set(handles.edit4, 'string' ,waktuuji);
function edit3_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end function edit4_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end ujiperceptron.m function varargout = ujiperceptron(varargin)
gui_Singleton = 1; gui_State = struct( 'gui_Name' , mfilename, ...
'gui_Singleton' , gui_Singleton, ...
'gui_OpeningFcn' , @ujiperceptron_OpeningFcn, ... 'gui_OutputFcn' , @ujiperceptron_OutputFcn, ... 'gui_LayoutFcn' , [] , ... 'gui_Callback' , []); if nargin && ischar(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 % --- Executes just before ujiperceptron is made visible. function ujiperceptron_OpeningFcn(hObject, eventdata, handles,
varargin) handles.output = hObject; guidata(hObject, handles); % --- Outputs from this function are returned to the command line.
function varargout = ujiperceptron_OutputFcn(hObject, eventdata,
handles) varargout{1} = handles.output;
% ------------------------------------------------------------------ function utama_Callback(hObject, eventdata, handles)
ujiperceptron
% -------------------------------------------------------------------
- function bantuan_Callback(hObject, eventdata, handles)
bantuanpengujian
% -------------------------------------------------------------------
- function keluar_Callback(hObject, eventdata, handles)
close ujiperceptron ;
% -------------------------------------------------------------------
- function menuutama_Callback(hObject, eventdata, handles)
prototype close ujiperceptron ;
% -------------------------------------------------------------------
function edit3_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end % --- Executes on button press in cari. function varargout = cari_Callback(hObject, eventdata, handles,
varargin) [fileName, pathName] = uigetfile({ '*.jpg' , 'File jpeg (*.jpg)' }, 'Open
Bitmap File' );
if isequal(fileName, 0) return ; else
info = imfinfo([pathName, fileName]); filename = info.Filename; handles.citra = imread(fullfile(pathName, fileName)); guidata(hObject, handles); axes(handles.axes1); imshow(handles.citra); set(handles.edit3, 'string' , fileName);
end ; % --- Executes on slider movement. function slider1_Callback(hObject, eventdata, handles)
nilai_red = get(handles.slider1, 'value' ); handles.nilai_red = round(nilai_red); guidata(hObject,handles); set(handles.edit1, 'string' ,handles.nilai_red); citra_gray=rgb2gray(handles.citra); citra_gray=double(citra_gray); [b k]=size(citra_gray);
for x=1:b for y=1:k if citra_gray(x,y)<nilai_red
citra_threshold(x,y)=0;
elseif citra_gray(x,y)>=nilai_red
citra_threshold(x,y)=1;
end end end
citra_threshold handles.citra_tes=citra_threshold; guidata(hObject,handles) axes(handles.axes1); imshow(citra_threshold); % --- Executes during object creation, after setting all properties.
function slider1_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' ,[.9 .9 .9]);
end % --- Executes on button press in reset. function reset_Callback(hObject, eventdata, handles)
set(handles.edit1, 'String' , '' , 'Enable' , 'on' ); set(handles.edit2, 'String' , '' , 'Enable' , 'on' ); axes(handles.axes1); imshow(1);
%------------------------------------------------------------------ function edit1_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end
%------------------------------------------------------------------ function edit2_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end % --- Executes on button press in ujipengenalan. function ujipengenalan_Callback(hObject, eventdata, handles)
tStart=tic; signal = xlsread( 'programperceptron1.xlsx' , 'datapincode' , 'A1:T2500' ); ext = xlsread( 'programperceptron1.xlsx' , 'datapincode' , 'A2502:T2521' ); input = xlsread( 'programperceptron1.xlsx' , 'datapincode' , 'A2523:T2542' ); datainput = double (handles.edit2); citrauji = double(handles.citra_tes); flatvec = [reshape(citrauji,1,2500)]; mat_uji = flatvec*signal; minr=min(ext); minr=min(minr); maxr=max(ext); maxr=max(maxr); delta=maxr-minr; datapengujian = 2 *(mat_uji-minr)/delta-1; target =[ 1 0 0 0 0 0 0 0 0 0; 1 0 0 0 0 0 0 0 0 0; 0 1 0 0 0 0 0 0 0 0; 0 1 0 0 0 0 0 0 0 0; 0 0 1 0 0 0 0 0 0 0; 0 0 1 0 0 0 0 0 0 0; 0 0 0 1 0 0 0 0 0 0; 0 0 0 1 0 0 0 0 0 0; 0 0 0 0 1 0 0 0 0 0; 0 0 0 0 1 0 0 0 0 0; 0 0 0 0 0 1 0 0 0 0; 0 0 0 0 0 1 0 0 0 0; 0 0 0 0 0 0 1 0 0 0; 0 0 0 0 0 0 1 0 0 0; 0 0 0 0 0 0 0 1 0 0; 0 0 0 0 0 0 0 1 0 0; 0 0 0 0 0 0 0 0 1 0; 0 0 0 0 0 0 0 0 1 0; 0 0 0 0 0 0 0 0 0 1; 0 0 0 0 0 0 0 0 0 1]; target = target'; input = input'; net = newp(minmax(input),10); net = init(net); net.adaptParam.passes = 500; [net,output]= adapt (net,input,target); net.IW{1,1}= xlsread( 'programperceptron2.xlsx' , 'bobot' ); net.b{1}= xlsread( 'programperceptron5.xlsx' , 'bias' , 'A1:A10' ); datapengujian=datapengujian' output = sim(net,datapengujian) if (output(1,1)<0.6)
a(1,1)=0;
else
a(1,1)=1;
end if (output(2,1)<0.6)
a(2,1)=0;
else
a(2,1)=1;
end if (output(3,1)<0.6)
a(3,1)=0;
else
a(3,1)=1;
end if (output(4,1)<0.6)
a(4,1)=0;
else
a(4,1)=1;
end if (output(5,1)<0.9)
a(5,1)=0;
else
a(5,1)=1;
end if (output(6,1)<0.9)
a(6,1)=0;
else
a(6,1)=1;
end if (output(7,1)<0.9)
a(7,1)=0;
else
a(7,1)=1;
end if (output(8,1)<0.9)
a(8,1)=0;
else
a(8,1)=1;
end if (output(9,1)<0.9)
a(9,1)=0;
else
a(9,1)=1;
end if (output(10,1)<0.9)
a(10,1)=0;
else
a(10,1)=1;
end pin=[a(1,1);a(2,1);a(3,1);a(4,1);a(5,1);a(6,1);a(7,1);a(8,1);a(9,1);a (10,1)]; pin1 = [1; 0; 0; 0; 0; 0; 0; 0; 0; 0;]; pin2 = [0; 1; 0; 0; 0; 0; 0; 0; 0; 0;]; pin3 = [0; 0; 1; 0; 0; 0; 0; 0; 0; 0;]; pin4 = [0; 0; 0; 1; 0; 0; 0; 0; 0; 0;]; pin5 = [0; 0; 0; 0; 1; 0; 0; 0; 0; 0;]; pin6 = [0; 0; 0; 0; 0; 1; 0; 0; 0; 0;]; pin7 = [0; 0; 0; 0; 0; 0; 1; 0; 0; 0;]; pin8 = [0; 0; 0; 0; 0; 0; 0; 1; 0; 0;]; pin9 = [0; 0; 0; 0; 0; 0; 0; 0; 1; 0;]; pin10 = [0; 0; 0; 0; 0; 0; 0; 0; 0; 1;];
if isequal (a,pin1)
edit2= '21A86CC1' ;
elseif isequal (a,pin2)
edit2= '21E52EDC' ;
elseif isequal (a,pin3)
edit2= '25D6096B' ;
elseif isequal (a,pin4)
edit2= '26B5E5C0' ;
elseif isequal (a,pin5)
edit2= '27C30B0B' ;
elseif isequal (a,pin6)
edit2= '27FBBA4A' ;
elseif isequal (a,pin7)
edit2= '29EA3A24' ;
elseif isequal (a,pin8)
edit2= '3114AA76' ;
elseif isequal (a,pin9)
edit2= '231708D0' ;
elseif isequal (a,pin10)
edit2= '2585926A' ;
else
edit2= 'Tidak Dikenali' ;
end
set(handles.edit2, 'String' ,edit2); waktuuji = toc(tStart); set(handles.edit4, 'string' ,waktuuji);
function edit4_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end menubantuan.m function varargout = menubantuan(varargin)
gui_Singleton = 1; gui_State = struct( 'gui_Name' , mfilename, ...
'gui_Singleton' , gui_Singleton, ...
'gui_OpeningFcn' , @menubantuan_OpeningFcn, ... 'gui_OutputFcn' , @menubantuan_OutputFcn, ... 'gui_LayoutFcn' , [] , ... 'gui_Callback' , []); if nargin && ischar(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 function menubantuan_OpeningFcn(hObject, eventdata, handles,
varargin) handles.output = hObject; guidata(hObject, handles);
function varargout = menubantuan_OutputFcn(hObject, eventdata,
handles) varargout{1} = handles.output;
function edit3_Callback(hObject, eventdata, handles) function edit3_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end
% -------------------------------------------------------------------
- function bantuan_Callback(hObject, eventdata, handles)
menubantuan
% -------------------------------------------------------------------
- function keluar_Callback(hObject, eventdata, handles)
close menubantuan ;
bantuanpelatihan.m function varargout = bantuanpelatihan(varargin)
gui_Singleton = 1; gui_State = struct( 'gui_Name' , mfilename, ...
'gui_Singleton' , gui_Singleton, ... 'gui_OpeningFcn' , @bantuanpelatihan_OpeningFcn, ... 'gui_OutputFcn' , @bantuanpelatihan_OutputFcn, ... 'gui_LayoutFcn' , [] , ... 'gui_Callback' , []); if nargin && ischar(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 function bantuanpelatihan_OpeningFcn(hObject, eventdata, handles,
varargin) handles.output = hObject; guidata(hObject, handles);
function varargout = bantuanpelatihan_OutputFcn(hObject, eventdata,
handles) varargout{1} = handles.output;
function edit3_Callback(hObject, eventdata, handles) function edit3_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );
end
% -------------------------------------------------------------------
- function bantuanpelatihan_Callback(hObject, eventdata, handles)
bantuanpelatihan
% -------------------------------------------------------------------
- function keluar_Callback(hObject, eventdata, handles)
close bantuanpelatihan
bantuanpengujian.m function varargout = bantuanpengujian(varargin)
gui_Singleton = 1; gui_State = struct( 'gui_Name' , mfilename, ...
'gui_Singleton' , gui_Singleton, ... 'gui_OpeningFcn' , @bantuanpengujian_OpeningFcn, ... 'gui_OutputFcn' , @bantuanpengujian_OutputFcn, ... 'gui_LayoutFcn' , [] , ... 'gui_Callback' , []); if nargin && ischar(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{:});