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