LAMPIRAN LISTING PROGRAM
Awal.m
function varargout = awal(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @awal_OpeningFcn, ... 'gui_OutputFcn', @awal_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 awal is made visible.
function awal_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;
guidata(hObject, handles);
% --- Outputs from this function are returned to the command line.
function varargout = awal_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
handles.output = hObject ;
handles.citra=imread('logousu.jpg'); guidata(hObject, handles);
axes(handles.axes1); imshow(handles.citra); guidata(hObject, handles);
% --- Executes on button press in menuawal.
close awal;
Utama.m
function varargout = utama(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @utama_OpeningFcn, ... 'gui_OutputFcn', @utama_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 utama is made visible.
function utama_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;
guidata(hObject, handles);
% --- Outputs from this function are returned to the command line.
function varargout = utama_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
% --- Executes on button press in ambilcitra.
function ambilcitra_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);
imshow(handles.citra); else
return; end;
% --- Executes on button press in ambilcitra2.
function ambilcitra2_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); else
return; end;
% --- Executes on button press in ambilcitra3.
function ambilcitra3_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uigetfile({'*.jpg','File jpeg (*.jpg)'},'Buka File Citra');
if ~isequal(nama_file,0)
handles.citra3=imread(fullfile(nama_path,nama_file)); guidata(hObject,handles);
axes(handles.axes3); imshow(handles.citra3); else
return; end;
% --- Executes on button press in otsu.
function otsu_Callback(hObject, eventdata, handles) handles.otsu = graythresh(handles.citra);
guidata(hObject,handles);
%set(handles.edit1,'string',handles.otsu);
handles.citra_otsu = im2bw(rgb2gray(handles.citra), handles.otsu); axes(handles.axes1);
imshow(handles.citra_otsu);
function deteksitepi_Callback(hObject, eventdata, handles)
% --- Executes on button press in otsu2.
function otsu2_Callback(hObject, eventdata, handles) handles.otsu2 = graythresh(handles.citra2);
guidata(hObject,handles);
handles.citra_otsu2 = im2bw(rgb2gray(handles.citra2), handles.otsu2);
axes(handles.axes2);
imshow(handles.citra_otsu2);
% --- Executes on button press in deteksitepi2.
axes(handles.axes2);
imshow(edge(citra_gray2,'log'));
% --- Executes on button press in otsu3.
function otsu3_Callback(hObject, eventdata, handles) handles.otsu3 = graythresh(handles.citra3);
guidata(hObject,handles);
handles.citra_otsu3 = im2bw(rgb2gray(handles.citra3), handles.otsu3);
axes(handles.axes3);
imshow(handles.citra_otsu3);
% --- Executes on button press in deteksitepi3.
function deteksitepi3_Callback(hObject, eventdata, handles) nilai_det = 240;
citra_gray3 = rgb2gray(handles.citra3); citra_gray3 = double(citra_gray3); [b k]=size(citra_gray3);
for x=1:b for y=1:k
if citra_gray3(x,y)<nilai_det citra_gray3(x,y)=0;
elseif citra_gray3(x,y)>=nilai_det citra_gray3(x,y)=1;
end end end
citra_gray3
handles.citra_gray3=citra_gray3; guidata(hObject,handles);
axes(handles.axes3);
imshow(edge(citra_gray3,'log'));
% --- Executes on button press in simpan.
function simpan_Callback(hObject, eventdata, handles) namabangun = get (handles.edit1,'string');
bangun = double(handles.citra_gray); bangun2 = double(handles.citra_gray2); bangun3 = double(handles.citra_gray3); batas =
[reshape(bangun,1,2800);reshape(bangun2,1,2800);reshape(bangun3,1, 2800)];
axes(handles.axes2); imshow(1);
axes(handles.axes3); imshow(1);
if (strcmp(namabangun,'kubus'))
xlswrite('simpannilaideteksi.xlsx',batas,'sheet1','A1'); elseif (strcmp(namabangun,'balok'))
xlswrite('simpannilaideteksi.xlsx',batas,'sheet1','A4'); elseif (strcmp(namabangun,'limas'))
xlswrite('simpannilaideteksi.xlsx',batas,'sheet1','A7'); elseif (strcmp(namabangun,'kerucut'))
xlswrite('simpannilaideteksi.xlsx',batas,'sheet1','A10'); elseif (strcmp(namabangun,'tabung'))
xlswrite('simpannilaideteksi.xlsx',batas,'sheet1','A13'); elseif (strcmp(namabangun,'bola'))
xlswrite('simpannilaideteksi.xlsx',batas,'sheet1','A16'); end
% --- Executes on button press in reduksi.
function reduksi_Callback(hObject, eventdata, handles) sistemmula = xlsread('simpannilaideteksi.xlsx','sheet1'); sistemlanjut = mean (sistemmula);
[X,Y] = size(sistemmula);
newsistem = sistemmula - repmat(sistemlanjut,X,1); [X,Y] = size(newsistem);
pengolahan = 1/Y *(newsistem*newsistem'); [PC,V]= eig(pengolahan);
V=diag(V);
[junk,rindices]= sort(-1*V); V=V(rindices);
PC = PC (:,rindices); signal=sistemmula'*PC;
xlswrite('simpannilaideteksi1.xlsx',inputbaru,'sheet1','A2821:R283 8');
% --- Executes on button press in proses.
function proses_Callback(hObject, eventdata, handles) input =
xlsread('simpannilaideteksi1.xlsx','sheet1','A2821:R2838'); target = [1 0 0 0 0 0;
1 0 0 0 0 0; 1 0 0 0 0 0; 0 1 0 0 0 0; 0 1 0 0 0 0; 0 1 0 0 0 0; 0 0 1 0 0 0; 0 0 1 0 0 0; 0 0 1 0 0 0; 0 0 0 1 0 0; 0 0 0 1 0 0; 0 0 0 1 0 0; 0 0 0 0 1 0; 0 0 0 0 1 0; 0 0 0 0 1 0; 0 0 0 0 0 1; 0 0 0 0 0 1; 0 0 0 0 0 1;] target = target'; input = input';
net = newp(minmax(input),6); net.trainParam.show=1000; net.trainParam.epochs=20000; net.trainParam.goal=0.01;
[net,output]= adapt (net,input,target); [net,tr] = train (net,input,target);
xlswrite('simpannilaideteksi2.xlsx',net.IW{1,1},'sheet1','A'); xlswrite('simpannilaideteksi3.xlsx',net.b{1},'sheet2','A1:A6'); output = sim (net,input)
% --- Executes on button press in pengujian.
function pengujian_Callback(hObject, eventdata, handles) ujideteksi;
close utama;
% --- Executes on button press in reset.
set(handles.edit1,'String','','Enable','on'); axes(handles.axes1);
imshow(1);
axes(handles.axes2); imshow(2);
axes(handles.axes3); imshow(3);
% --- Executes on button press in keluar.
function keluar_Callback(hObject, eventdata, handles) pilihan = questdlg('Anda Ingin Keluar Dari Sistem ?', 'Confirm','Yes','No','No');
switch pilihan case 'Yes' close all; end
%---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 bantuan.
function bantuan_Callback(hObject, eventdata, handles) bantuanUtama;
close utama;
% --- Executes on button press in Kembali.
close utama;
ujideteksi.m
function varargout = ujideteksi(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @ujideteksi_OpeningFcn, ... 'gui_OutputFcn', @ujideteksi_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 ujideteksi is made visible.
function ujideteksi_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject; guidata(hObject, handles);
% --- Outputs from this function are returned to the command line.
function varargout = ujideteksi_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
% --- Executes on button press in ambilcitra.
function ambilcitra_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);
imshow(handles.citra); else
return; end;
%---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 thresholdotsu.
function thresholdotsu_Callback(hObject, eventdata, handles) handles.otsu = graythresh(handles.citra);
guidata(hObject,handles);
handles.citra_otsu = im2bw(rgb2gray(handles.citra), handles.otsu); axes(handles.axes1);
imshow(handles.citra_otsu);
% --- Executes on button press in deteksitepi.
function deteksitepi_Callback(hObject, eventdata, handles) nilai_det = 240;
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_det citra_gray(x,y)=0;
elseif citra_gray(x,y)>=nilai_det citra_gray(x,y)=1;
end end end
citra_gray
guidata(hObject,handles); axes(handles.axes1);
imshow(edge(citra_gray,'log'));
% --- Executes on button press in ujideteksi.
function ujideteksi_Callback(hObject, eventdata, handles)
signal = xlsread('simpannilaideteksi1.xlsx','sheet1','A1:R2800'); ext = xlsread('simpannilaideteksi1.xlsx','sheet1','A2802:R2819'); input =
xlsread('simpannilaideteksi1.xlsx','sheet1','A2821:R2838'); datauji = double(handles.citra_gray);
ujidata = 2 *(mat_uji-minr)/delta-1; target = [1 0 0 0 0 0;
net.IW{1,1} = xlsread('simpannilaideteksi2.xlsx','sheet1'); net.b{1} = xlsread('simpannilaideteksi3.xlsx','sheet2','A1:A6'); ujidata=ujidata'
else if isequal (a,bangunruang1)
edit1='KUBUS';
elseif isequal (a,bangunruang2) edit1='BALOK';
elseif isequal (a,bangunruang3) edit1= 'LIMAS';
elseif isequal (a,bangunruang4) edit1='KERUCUT';
elseif isequal (a,bangunruang5) edit1='TABUNG';
elseif isequal (a,bangunruang6) edit1='BOLA';
edit1='Tidak Terdeteksi'; end
set(handles.edit1,'String',edit1);
% --- Executes on button press in keluar.
function keluar_Callback(hObject, eventdata, handles)
pilihan = questdlg ('Anda Ingin Keluar Dari Sistem ?', 'Confirm', 'Yes', 'No', 'No');
switch pilihan case 'Yes' close all end
% --- Executes on button press in kembali.
function kembali_Callback(hObject, eventdata, handles) utama;
close ujideteksi;
% --- Executes on button press in reset.
function reset_Callback(hObject, eventdata, handles) set(handles.edit1,'String','','Enable','on');
axes(handles.axes1); imshow(1);
% --- Executes on button press in bantuan.
function bantuan_Callback(hObject, eventdata, handles) bantuanPengujian;
close ujideteksi;
bantuanUtama.m
function varargout = bantuanUtama(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'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 bantuanUtama is made visible.
function bantuanUtama_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject; guidata(hObject, handles);
% --- Outputs from this function are returned to the command line.
function varargout = bantuanUtama_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
% --- Executes on button press in kembaliUtama.
function kembaliUtama_Callback(hObject, eventdata, handles) utama;
close bantuanUtama;
bantuanPengujian.m
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{:}); end
% --- Executes just before bantuanPengujian is made visible.
function bantuanPengujian_OpeningFcn(hObject, eventdata, handles, varargin)
% Choose default command line output for bantuanPengujian handles.output = hObject;
% Update handles structure guidata(hObject, handles);
% --- Outputs from this function are returned to the command line. function varargout = bantuanPengujian_OutputFcn(hObject,
eventdata, handles)
% Get default command line output from handles structure varargout{1} = handles.output;
% --- Executes on button press in kembaliPengujian.
function kembaliPengujian_Callback(hObject, eventdata, handles) ujideteksi;
close bantuanPengujian;
% --- Executes on selection change in listbox2.
% --- Executes during object creation, after setting all properties.
function listbox2_CreateFcn(hObject, eventdata, handles) % Hint: listbox controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end