LAMPIRAN LISTING PROGRAM Awal.m
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.
function menuawal_Callback(hObject, eventdata, handles)
utama;
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); axes(handles.axes1);
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); % --- 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 handles.citra_gray=citra_gray; guidata(hObject,handles); axes(handles.axes1); imshow(edge(citra_gray, 'log' )); % --- 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. function deteksitepi2_Callback(hObject, eventdata, handles)
nilai_det = 240; 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_det
citra_gray2(x,y)=0;
elseif citra_gray2(x,y)>=nilai_det
citra_gray2(x,y)=1;
end end end
citra_gray2 handles.citra_gray2=citra_gray2; guidata(hObject,handles); 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.axes1); imshow(1); 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);
for a = 1:X for b = 1:Y if newsistem(a,b)<=0
newsistem(a,b)=0;
end end end
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; ext= sistemmula*signal; minr=min(ext); minr=min(minr); maxr=max(ext); maxr=max(maxr); delta=maxr-minr; inputbaru=2*(ext-minr)/delta-1; xlswrite( 'simpannilaideteksi1.xlsx' ,signal, 'sheet1' , 'A1:R2800' ); xlswrite( 'simpannilaideteksi1.xlsx' ,ext, 'sheet1' , 'A2802:R2819' ); 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. function reset_Callback(hObject, eventdata, handles)
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. function Kembali_Callback(hObject, eventdata, handles)
awal;
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); axes(handles.axes1);
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 handles.citra_gray=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); flatvec = [reshape(datauji,1,2800)]; mat_uji = flatvec*signal; minr=min(ext); minr=min(minr); maxr=max(ext); maxr=max(maxr); delta=maxr-minr; ujidata = 2 *(mat_uji-minr)/delta-1; 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 = init(net); net.adaptParam.passes = 500; [net,output]= adapt (net,input,target); net.IW{1,1} = xlsread( 'simpannilaideteksi2.xlsx' , 'sheet1' ); net.b{1} = xlsread( 'simpannilaideteksi3.xlsx' , 'sheet2' , 'A1:A6' ); ujidata=ujidata' output = sim(net,ujidata)
if (output(1,1)<0.8)
a(1,1)=0; else
a(1,1)=1;
end if (output(2,1)<0.8)
a(2,1)=0;
else
a(2,1)=1;
end if (output(3,1)<0.8)
a(3,1)=0;
else
a(3,1)=1;
end if (output(4,1)<0.8)
a(4,1)=0;
else
a(4,1)=1;
end if (output(5,1)<0.8)
a(5,1)=0;
else
a(5,1)=1;
end if (output(6,1)<0.8)
a(6,1)=0;
else
a(6,1)=1;
end
bangunruang=[a(1,1);a(2,1);a(3,1);a(4,1);a(5,1);a(6,1)]; bangunruang1 = [1; 0; 0; 0; 0; 0;]; bangunruang2 = [0; 1; 0; 0; 0; 0;]; bangunruang3 = [0; 0; 1; 0; 0; 0;]; bangunruang4 = [0; 0; 0; 1; 0; 0;]; bangunruang5 = [0; 0; 0; 0; 1; 0;]; bangunruang6 = [0; 0; 0; 0; 0; 1;];
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' ;
else
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_OpeningFcn' , @bantuanUtama_OpeningFcn, ... 'gui_OutputFcn' , @bantuanUtama_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 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 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{:});
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. function listbox2_Callback(hObject, eventdata, handles)
% --- 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
Nama : Dewa Made Surya Dharma Alamat Sekarang : Jl. Bakti Indah - VII No.117 Medan Alamat Orang tua : Jl. Bakti Indah - VII No.117 Medan Telp/Hp : 082368661111 Email
Riwayat Pendidikan
2009-2013 : S1 Ilmu Komputer Universitas Sumatera Utara, Medan 2006-2009 : SMA Kartia I-2 Medan 2003-2006 : SMP Kartika I-2 Medan 1997-2003 : SD Taman Asuhan Pematang Siantar Keahlian/Kursus yang diikuti Jaringan Komputer