1. Beranda.m (Antarmuka Beranda) - Implementasi Algoritma K-Nearest Neighbor untuk Mengklasifikasikan Motif Batik Besurek Bengkulu

  

LAMPIRAN LISTING PROGRAM

  1. Beranda.m (Antarmuka Beranda) function varargout = Beranda(varargin)

  gui_Singleton = 1; gui_State = struct( 'gui_Name' , mfilename, ...

  'gui_Singleton' , gui_Singleton, ... 'gui_OpeningFcn' , @Beranda_OpeningFcn, ... 'gui_OutputFcn' , @Beranda_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 Beranda is made visible. function Beranda_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 Beranda (see VARARGIN) % Choose default command line output for Beranda

  handles.output = hObject;

  % Update handles structure

  guidata(hObject, handles);

  % UIWAIT makes Beranda wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = Beranda_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;

  % ------------------------------------------------------------------ function Beranda_Callback(hObject, eventdata, handles) % hObject handle to Beranda (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% -------------------------------------------------------------------

  function Bantuan_Callback(hObject, eventdata, handles)

  Bantuan close Beranda

  % hObject handle to Bantuan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% -------------------------------------------------------------------

function Pelatihan_Callback(hObject, eventdata, handles)

  Pelatihan close Beranda

  % hObject handle to Pelatihan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% -------------------------------------------------------------------

function Pengujian_Callback(hObject, eventdata, handles)

  Pengujian close Beranda

  % hObject handle to Pengujian (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% -------------------------------------------------------------------

  • function Keluar_Callback(hObject, eventdata, handles)

  choice= questdlg ( 'Apakah Anda Ingin

  Keluar?' , 'Keluar' , 'Ya' , 'Tidak' , 'Tidak' ); switch choice case 'Ya'

  close all ;

  end % hObject handle to Keluar (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes during object creation, after setting all properties. function axes1_CreateFcn(hObject, eventdata, handles)

  clear; citra=imread( 'FASILKOMTI.jpg' ); citra=uint8(citra); imshow(citra);

  % hObject handle to axes1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: place code in OpeningFcn to populate axes1 % --- Executes during object creation, after setting all properties. function axes3_CreateFcn(hObject, eventdata, handles)

  clear; citra=imread( 'batik1.jpg' ); citra=uint8(citra); imshow(citra);

  % hObject handle to axes3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: place code in OpeningFcn to populate axes3 % --- Executes during object creation, after setting all properties. function axes4_CreateFcn(hObject, eventdata, handles)

  clear; citra=imread( 'batik2.jpg' ); citra=uint8(citra); imshow(citra);

  2. Pelatihan.m (Antarmuka Pelatihan) function varargout = Pelatihan(varargin)

  gui_Singleton = 1; gui_State = struct( 'gui_Name' , mfilename, ...

  'gui_Singleton' , gui_Singleton, ... 'gui_OpeningFcn' , @Pelatihan_OpeningFcn, ... 'gui_OutputFcn' , @Pelatihan_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 Pelatihan is made visible. function Pelatihan_OpeningFcn(hObject, eventdata, handles, varargin)

  set(handles.deteksi, 'Enable' , 'Off' );

  % Choose default command line output for Pelatihan

  handles.output = hObject;

  % Update handles structure

  guidata(hObject, handles);

  % UIWAIT makes Pelatihan wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line.

function varargout = Pelatihan_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;

  

% -------------------------------------------------------------------

  • function Untitled_1_Callback(hObject, eventdata, handles)

  Beranda close Pelatihan

  % hObject handle to Untitled_1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

  

% -------------------------------------------------------------------

  • function Bantuan_Callback(hObject, eventdata, handles)

  Bantuan close Pelatihan

  % hObject handle to Bantuan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% -------------------------------------------------------------------

  • function Pelatihan_Callback(hObject, eventdata, handles)

  % hObject handle to Pelatihan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% -------------------------------------------------------------------

  • function Pengujian_Callback(hObject, eventdata, handles)

  Pengujian close Pelatihan

  % hObject handle to Pengujian (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% -------------------------------------------------------------------

  • function Keluar_Callback(hObject, eventdata, handles)

  choice= questdlg ( 'Apakah Anda Ingin

  Keluar?' , 'Keluar' , 'Ya' , 'Tidak' , 'Tidak' ); switch choice case 'Ya'

  close all ;

  end % hObject handle to Keluar (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on selection change in motif. function motif_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function motif_CreateFcn(hObject, eventdata, handles) % hObject handle to motif (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 && isequal(get(hObject, 'BackgroundColor' ),

  get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );

  end % Hint: popupmenu 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 % --- Executes on button press in load. function load_Callback(hObject, eventdata, handles)

  value1 = get(handles.motif, 'value' )

  if value1 == 1

  value1 = 'Relung Paku' gb4=imread( 'RelungPaku1.jpg' ); gb5=imread( 'RelungPaku2.jpg' ); gb6=imread( 'RelungPaku3.jpg' ); axes(handles.axes1);imshow(gb4) axes(handles.axes2);imshow(gb5) axes(handles.axes3);imshow(gb6)

  elseif value1 == 2

  value1 = 'Bunga Rafflesia' gb7=imread( 'Rafflesia1.jpg' ); gb8=imread( 'Rafflesia2.jpg' ); gb9=imread( 'Rafflesia3.jpg' ); axes(handles.axes1);imshow(gb7) axes(handles.axes2);imshow(gb8) axes(handles.axes3);imshow(gb9)

  elseif value1 == 3

  value1 = 'Burung Kuau' gb10=imread( 'BurungKuau1.jpg' ); gb11=imread( 'BurungKuau2.jpg' ); gb12=imread( 'BurungKuau3.jpg' ); axes(handles.axes1);imshow(gb10) axes(handles.axes2);imshow(gb11) axes(handles.axes3);imshow(gb12)

  else

  value1 = 'Rembulan' gb13=imread( 'Rembulan1.jpg' ); gb14=imread( 'Rembulan2.jpg' ); gb15=imread( 'Rembulan3.jpg' ); axes(handles.axes1);imshow(gb13) axes(handles.axes2);imshow(gb14) axes(handles.axes3);imshow(gb15)

  end %guidata(hObject, handles); % hObject handle to load (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: edit 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 % --- Executes on button press in reset. function reset_Callback(hObject, eventdata, handles)

  axes(handles.axes1); imshow(1); axes(handles.axes2); imshow(1); axes(handles.axes3); imshow(1); set(handles.slider1, 'Value' ,0); set(handles.text4, 'string' ,0); axes(handles.axes6); imshow(1); set(handles.slider2, 'Value' ,0); set(handles.text5, 'string' ,0); axes(handles.axes7); imshow(1); set(handles.slider3, 'Value' ,0); set(handles.text6, 'string' ,0); axes(handles.axes8); imshow(1); guidata(hObject,handles); set(handles.deteksi, 'Enable' , 'Off' );

  % hObject handle to reset (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: edit 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 % --- Executes on slider movement. function slider1_Callback(hObject, eventdata, handles)

  thres = get(handles.slider1, 'value' ); handles.thres = round(thres); guidata(hObject, handles); set(handles.text4, 'string' ,handles.thres); citra = getimage(handles.axes1); citra= rgb2gray(citra); citra_gray=double(citra); [b k]= size(citra_gray);

  for x=1:b for y=1:k if citra_gray(x,y)<thres

  citra_threshold_batik(x,y)=1;

  elseif citra_gray(x,y)>=thres

  citra_threshold_batik(x,y)=0; end end end

  citra_threshold_batik; handles.citra_tres_batik1=citra_threshold_batik; guidata(hObject, handles); axes(handles.axes6); imshow(citra_threshold_batik); % --- Executes during object creation, after setting all properties.

  function slider1_CreateFcn(hObject, eventdata, handles) % hObject handle to slider1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background. if isequal(get(hObject, 'BackgroundColor' ),

  get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' ,[.9 .9 .9]);

  end % --- Executes on slider movement. function slider2_Callback(hObject, eventdata, handles)

  thres2 = get(handles.slider2, 'value' ); handles.thres = round(thres2); guidata(hObject, handles); set(handles.text5, 'string' ,handles.thres); citra2 = getimage(handles.axes2); citra2= rgb2gray(citra2); citra_gray=double(citra2); [b k]= size(citra_gray);

  for x=1:b for y=1:k if citra_gray(x,y)<thres2

  citra_threshold_batik(x,y)=1;

  elseif citra_gray(x,y)>=thres2

  citra_threshold_batik(x,y)=0;

  end end end

  citra_threshold_batik; handles.citra_tres_batik2=citra_threshold_batik; guidata(hObject, handles); axes(handles.axes7); imshow(citra_threshold_batik); % --- Executes during object creation, after setting all properties.

  function slider2_CreateFcn(hObject, eventdata, handles) % hObject handle to slider2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

  % Hint: slider controls usually have a light gray background. if isequal(get(hObject, 'BackgroundColor' ),

  get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' ,[.9 .9 .9]);

  end % --- Executes on slider movement. function slider3_Callback(hObject, eventdata, handles)

  thres3 = get(handles.slider3, 'value' ); handles.thres = round(thres3); guidata(hObject, handles); set(handles.text6, 'string' ,handles.thres); citra3 = getimage(handles.axes3); citra3= rgb2gray(citra3); citra_gray=double(citra3); [b k]= size(citra_gray);[b k]= size(citra_gray);

  for x=1:b for y=1:k if citra_gray(x,y)<thres3

  citra_threshold_batik(x,y)=1;

  elseif citra_gray(x,y)>=thres3

  citra_threshold_batik(x,y)=0;

  end end end

  citra_threshold_batik handles.citra_tres_batik3=citra_threshold_batik; guidata(hObject, handles); axes(handles.axes8); imshow(citra_threshold_batik); set(handles.deteksi, 'Enable' , 'on' );

  % hObject handle to slider3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes during object creation, after setting all properties. function slider3_CreateFcn(hObject, eventdata, handles) % hObject handle to slider3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background. if isequal(get(hObject, 'BackgroundColor' ),

  get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' ,[.9 .9 .9]);

  end % --- Executes on button press in deteksi. function deteksi_Callback(hObject, eventdata, handles)

  citra1=getimage(handles.axes6); citra2=getimage(handles.axes7); citra3=getimage(handles.axes8); citra1rb=edge(citra1, 'roberts' ,0.1);

  citra2rb=edge(citra2, 'roberts' ,0.1); citra3rb=edge(citra3, 'roberts' ,0.1); axes(handles.axes6);imshow(citra1rb); axes(handles.axes7);imshow(citra2rb); axes(handles.axes8);imshow(citra3rb); jenismotif=get(handles.motif, 'String' ); jenismotif=jenismotif{get(handles.motif, 'Value' )}; a = double(getimage(handles.axes6)); b = double(getimage(handles.axes7)); c = double(getimage(handles.axes8)); motif1 =[reshape(a, 1, 10000); reshape(b, 1, 10000); reshape(c, 1, 10000)];

  if (strcmp(jenismotif, 'Relung Paku' ))

  xlswrite( 'Data.xlsx' ,motif1, 'Motif' , 'C5' );

  elseif (strcmp(jenismotif, 'Bunga Rafflesia' ))

  xlswrite( 'Data.xlsx' ,motif1, 'Motif' , 'C8' );

  elseif (strcmp(jenismotif, 'Burung Kuau' ))

  xlswrite( 'Data.xlsx' ,motif1, 'Motif' , 'C11' );

  else

  xlswrite( 'Data.xlsx' ,motif1, 'Motif' , 'C14' );

  end

  h= msgbox( 'Data disimpan' , 'Berhasil' );

  3. Pengujian.m (Antarmuka Pengujian) function varargout = Pengujian(varargin)

  gui_Singleton = 1; gui_State = struct( 'gui_Name' , mfilename, ...

  'gui_Singleton' , gui_Singleton, ... 'gui_OpeningFcn' , @Pengujian_OpeningFcn, ... 'gui_OutputFcn' , @Pengujian_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 Pengujian is made visible. function Pengujian_OpeningFcn(hObject, eventdata, handles, varargin)

  set(handles.deteksitepi, 'Enable' , 'off' ); set(handles.kenali, 'Enable' , 'off' );

  % 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 Pengujian (see VARARGIN) % Choose default command line output for Pengujian

  handles.output = hObject;

  % Update handles structure

  guidata(hObject, handles);

  % UIWAIT makes Pengujian wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line.

function varargout = Pengujian_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;

  

% -------------------------------------------------------------------

  • function Beranda_Callback(hObject, eventdata, handles)

  Beranda close Pengujian

  % hObject handle to Beranda (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% -------------------------------------------------------------------

  • function Bantuan_Callback(hObject, eventdata, handles)

  Bantuan close Pengujian

  % hObject handle to Bantuan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% -------------------------------------------------------------------

  • function Pelatihan_Callback(hObject, eventdata, handles)

  Pelatihan close Pengujian

  % hObject handle to Pelatihan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% -------------------------------------------------------------------

  • function Pengujian_Callback(hObject, eventdata, handles)

  % hObject handle to Pengujian (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% -------------------------------------------------------------------

  • function Keluar_Callback(hObject, eventdata, handles)

  choice= questdlg ( 'Apakah Anda Ingin

  Keluar?' , 'Keluar' , 'Ya' , 'Tidak' , 'Tidak' ); switch choice case 'Ya'

  close all ;

  end % hObject handle to Keluar (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in buka. function buka_Callback(hObject, eventdata, handles)

  [nama_file,nama_path] = uigetfile({ '*.jpg' , 'File jpeg (*.jpg)' }, 'Buka

  File Motif Batik' ); 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 ; % hObject handle to buka (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in kenali. function kenali_Callback(hObject, eventdata, handles)

  tStart=tic;

  %B adalah matriks vektor untuk menampung citra uji

  B = xlsread( 'Data.xlsx' , 'Motif' , 'C25:NTR25' ); E = xlsread( 'Data.xlsx' , 'Motif' , 'C5:NTR5' ); panjang = length(E); jumlah = 0;

  for i = 1:panjang

  jumlah = (E(1,i) - B(1,i))^2 + jumlah;

  end

  xlswrite( 'Data.xlsx' ,jumlah, 'ED' , 'B5' ); F = xlsread( 'Data.xlsx' , 'Motif' , 'C6:NTR6' ); panjang = length(F); jumlah = 0;

  for i = 1:panjang

  jumlah = (F(1,i) - B(1,i))^2 + jumlah;

  end

  xlswrite( 'Data.xlsx' ,jumlah, 'ED' , 'B6' ); G = xlsread( 'Data.xlsx' , 'Motif' , 'C7:NTR7' ); panjang = length(G); jumlah = 0;

  for i = 1:panjang

  jumlah = (G(1,i) - B(1,i))^2 + jumlah;

  end

  xlswrite( 'Data.xlsx' ,jumlah, 'ED' , 'B7' ); H = xlsread( 'Data.xlsx' , 'Motif' , 'C8:NTR8' ); panjang = length(H); jumlah = 0;

  for i = 1:panjang

  jumlah = (H(1,i) - B(1,i))^2 + jumlah;

  end

  xlswrite( 'Data.xlsx' ,jumlah, 'ED' , 'B8' ); K = xlsread( 'Data.xlsx' , 'Motif' , 'C9:NTR9' ); panjang = length(K); jumlah = 0;

  for i = 1:panjang

  jumlah = (K(1,i) - B(1,i))^2 + jumlah;

  end

  xlswrite( 'Data.xlsx' ,jumlah, 'ED' , 'B9' ); L = xlsread( 'Data.xlsx' , 'Motif' , 'C10:NTR10' ); panjang = length(L); jumlah = 0;

  for i = 1:panjang

  jumlah = (L(1,i) - B(1,i))^2 + jumlah;

  end

  xlswrite( 'Data.xlsx' ,jumlah, 'ED' , 'B10' ); M = xlsread( 'Data.xlsx' , 'Motif' , 'C11:NTR11' ); panjang = length(M); jumlah = 0;

  for i = 1:panjang

  jumlah = (M(1,i) - B(1,i))^2 + jumlah;

  end

  xlswrite( 'Data.xlsx' ,jumlah, 'ED' , 'B11' ); N = xlsread( 'Data.xlsx' , 'Motif' , 'C12:NTR12' ); panjang = length(N); jumlah = 0;

  for i = 1:panjang

  jumlah = (N(1,i) - B(1,i))^2 + jumlah;

  end

  xlswrite( 'Data.xlsx' ,jumlah, 'ED' , 'B12' ); P = xlsread( 'Data.xlsx' , 'Motif' , 'C13:NTR13' ); panjang = length(P); jumlah = 0;

  for i = 1:panjang

  jumlah = (P(1,i) - B(1,i))^2 + jumlah;

  end

  xlswrite( 'Data.xlsx' ,jumlah, 'ED' , 'B13' ); Q = xlsread( 'Data.xlsx' , 'Motif' , 'C14:NTR14' ); panjang = length(Q); jumlah = 0;

  for i = 1:panjang

  jumlah = (Q(1,i) - B(1,i))^2 + jumlah;

  end

  xlswrite( 'Data.xlsx' ,jumlah, 'ED' , 'B14' ); R = xlsread( 'Data.xlsx' , 'Motif' , 'C15:NTR15' ); panjang = length(R); jumlah = 0;

  for i = 1:panjang

  jumlah = (R(1,i) - B(1,i))^2 + jumlah; end

  xlswrite( 'Data.xlsx' ,jumlah, 'ED' , 'B15' ); S = xlsread( 'Data.xlsx' , 'Motif' , 'C16:NTR16' ); panjang = length(S); jumlah = 0;

  for i = 1:panjang

  jumlah = (S(1,i) - B(1,i))^2 + jumlah;

  end

  xlswrite( 'Data.xlsx' ,jumlah, 'ED' , 'B16' );

  %untuk Ascending hasil Euclidean Distance dan kelas

  arrayA = xlsread( 'Data.xlsx' , 'ED' , 'B5:B16' ) [numB,txtB,rawB] = xlsread( 'Data.xlsx' , 'ED' , 'A5:A16' ) arrayTemp = zeros(12,1) [numD,txtD,rawD] = xlsread( 'Data.xlsx' , 'ED' , 'D5:D16' ) n = 12;

  for i = n : -1 : 1 for j = 1 : i -1 if arrayA(j)>arrayA(j+1)

  temp = arrayA(j); arrayA(j) = arrayA(j+1); arrayA(j+1) = temp;

  end end end

  arrayC = arrayTemp + arrayA disp(arrayC) xlswrite( 'Data.xlsx' ,arrayC, 'ED' , 'C5:C16' ) arrayA = xlsread( 'Data.xlsx' , 'ED' , 'B5:B16' )

  for i = 1:12 for j = 1:12 if arrayC(i) == arrayA(j)

  rawD(i) = rawB(j)

  end end end

  xlswrite( 'Data.xlsx' ,rawD, 'ED' , 'D5:D16' )

  %K-NN %ambil kolom, masukkan ke variabel rawD

  [txtD, rawD] = xlsread( 'Data.xlsx' , 'ED' , 'D5:D16' ); deretAngka = xlsread( 'Data.xlsx' , 'ED' , 'C5:C16' ); k = get(handles.nilaik, 'value' );

  if k == 1

  k = 1

  elseif k == 2

  k = 3

  elseif k == 3 k = 5

  else

  k = 7

  end % variabel penampung data unique dari rawD

  dataA = {};

  % variabel penampung jumlah dari setiap data unique di dataA

  dataIndA = [];

  % variabel penampung data angka uniqe di dataA

  dataAngkaA = [];

  for i = 1:k % mengecek apakah elemen sudah ada dalam dataA

  exist = false; panjangDataA = length(dataA);

  for j = 1:panjangDataA % jika elemen sudah ada if (strcmp(rawD(i), dataA(j)))

  % nyatakan bahwa elemen sudah ada

  exist = true;

  % jika elemen sudah eksis, maka naikkan jumlah elemen di dalam % array dataIndA

  dataIndA(j) = dataIndA(j) + 1; dataAngkaA(j) = dataAngkaA(j) + deretAngka(i);

  end end % jika elemen belum ada, masukkan elemen baru ke dataA if (~exist)

  dataA(end + 1) = rawD(i);

  % dan buat jumlah elemennya 1

  dataIndA(end + 1) = 1; dataAngkaA(end + 1) = deretAngka(i);

  %disp(deretAngka(i)); end end

  panjang = length(dataIndA); maks = 1; indeksTerbanyakElemen = 1;

  % variabel penampung data angka uniqe di dataA %mencari rata-rata for i = 1:panjang if (dataIndA(i) > 1)

  dataAngkaA(i) = dataAngkaA(i) / dataIndA(i);

  end end % mencari index yang berisi bilangan terbesar dalam dataIndA % yang berarti index tersebut memiliki elemen paling banyak for i = 1:panjang if (dataIndA(i) > maks)

  maks = dataIndA(i); indeksTerbanyakElemen = i;

  end end indeksNilaiTerkecil = indeksTerbanyakElemen;

  %jika ada lebih dari 1 indeks yang memiliki terbanyak for i = 1:panjang % jika yang dicek adalah indeks yang telah ditentukan, lanjutkan. if i == indeksTerbanyakElemen continue ; end %jika ada indeks yang memiliki jumlah elemen sama if (dataIndA(i) == dataIndA(indeksTerbanyakElemen))

  %maka indeks teratas adalah indeks dengan nilai rata-rata terkecil

if (dataAngkaA(i) < dataAngkaA(indeksTerbanyakElemen))

  indeksNilaiTerkecil = i;

  end end end

  hasil = rawD(indeksNilaiTerkecil); set(handles.klasifikasi, 'String' ,hasil); guidata(hObject, handles); waktupengujian = toc(tStart); set(handles.waktu, 'string' ,waktupengujian); set(handles.deteksitepi, 'Enable' , 'Off' );

  % Hint: edit 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 % Hint: edit 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 % --- Executes on selection change in nilaik. function nilaik_Callback(hObject, eventdata, handles)

  set(handles.kenali, 'Enable' , 'on' );

  % hObject handle to nilaik (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 nilaik contents as

cell array % contents{get(hObject,'Value')} returns selected item from nilaik % --- Executes during object creation, after setting all properties. function nilaik_CreateFcn(hObject, eventdata, handles) % hObject handle to nilaik (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 && isequal(get(hObject, 'BackgroundColor' ),

  get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' , 'white' );

  end % --- Executes on button press in ekstraksiciri. function ekstraksiciri_Callback(hObject, eventdata, handles) % hObject handle to ekstraksiciri (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in hapus. function hapus_Callback(hObject, eventdata, handles)

  axes(handles.axes1); imshow(1); set(handles.slider2, 'Value' ,0); set(handles.text9, 'string' ,0); set(handles.nilaik, 'Value' ,1); set(handles.klasifikasi, 'String' , '' , 'Enable' , 'on' ); set(handles.waktu, 'String' , '' , 'Enable' , 'on' ); set(handles.deteksitepi, 'Enable' , 'Off' ); set(handles.kenali, 'Enable' , 'Off' );

  % hObject handle to hapus (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on slider movement. function slider2_Callback(hObject, eventdata, handles)

  thres = get(handles.slider2, 'value' ); handles.thres = round(thres); guidata(hObject, handles); set(handles.text9, 'string' ,handles.thres); 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)<thres

  citra_threshold_batik(x,y)=1;

  elseif citra_gray(x,y)>=thres

  citra_threshold_batik(x,y)=0;

  end end end

  citra_threshold_batik; handles.citra_tres_batik1=citra_threshold_batik; guidata(hObject, handles); axes(handles.axes1); imshow(citra_threshold_batik); set(handles.deteksitepi, 'Enable' , 'on' ); % --- Executes during object creation, after setting all properties.

  function slider2_CreateFcn(hObject, eventdata, handles) % hObject handle to slider2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background. if isequal(get(hObject, 'BackgroundColor' ),

  get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' ,[.9 .9 .9]);

  end % --- Executes on button press in deteksitepi. function deteksitepi_Callback(hObject, eventdata, handles)

  citra1=getimage(handles.axes1); citra1rb=edge(citra1, 'roberts' ,0.1); axes(handles.axes1);imshow(citra1rb); uji = double(getimage(handles.axes1)); motif = reshape(uji, 1, 10000); xlswrite( 'Data.xlsx' ,motif, 'Motif' , 'C25' ); h= msgbox( 'Data disimpan' , 'Berhasil' );

  Nama : Westhyma Sibarani Alamat : Jl.Pambangunan No.122,Kampus USU, Medan Telp/Hp : 082364509288 Email : westhyma@gmail.com

Pendidikan

  1998-2004 : SD Sint Carolus, Bengkulu 2004=2007 : SMP Sint Carolus, Bengkulu 2007-2010 : SMAK Sint Carolus, Bengkulu 2010-2015 : Universitas Sumatera Utara (Ilmu Komputer-FasilkomTI)

Dokumen yang terkait

BAB II LANDASANTEORI - Perbandingan Kinerja Jaringanmetropolitan Area Network dengan internet Protocol Versi 4 Dan Versi 6

1 1 27

BAB II TINJAUAN PUSTAKA 2.1 Krim 2.1.1 Krim secara umum - Uji Mutu Krim Ketokonazol Yang Diproduksi Oleh Pt. Kimia Farma (Persero) Tbk. Plant Medan

0 1 15

BAB II TINJAUAN PUSTAKA 2.1 Pengertian Obat - Uji Disolusi Tablet Parasetamol Produksi Pt. Kimia Farma (Persero) Tbk. Plant Medan

0 1 20

UJI DISOLUSI TABLET PARASETAMOL PRODUKSI PT. KIMIA FARMA (PERSERO) TBK. PLANT MEDAN TUGAS AKHIR - Uji Disolusi Tablet Parasetamol Produksi Pt. Kimia Farma (Persero) Tbk. Plant Medan

0 0 13

BAB II TINJAUAN PUSTAKA 2.1 Air - Perbandingan Efektivitas Poly Alumunium Chloride (PAC) dan Tawas dalam Menurunkan Turbidity (Kekeruhan) dan Derajat Keasaman (pH) pada Turbidity 590 NTU

0 0 10

BAB II TINJAUAN PUSTAKA 2.1 Filariasis - Evaluasi Pengelolaan Obat Program Filariasis Di Instalasi Farmasi Dinas Kesehatan Provinsi Sumatera Utara

0 0 9

BAB II KAJIAN TEORITIS 2.1 Pengertian Arsip - Analisis Pengelolaan Arsip Nasabah Dinamis Aktif Pada PT. Bank XXX Medan

0 1 33

BAB I PENDAHULUAN 1.1 Latar Belakang - Pengaruh Kepemimpinan Terhadap Produktivitas Kerja Pegawai Pada Kantor Pertanahan Kabupaten Deli Serdang

0 0 22

BAB I PENDAHULUAN 1.1 Latar Belakang - Dampak Pelaksanaan Peraturan Pemerintah Nomor 46 Tahun 2013 Terhadap Wajib Pajak Usaha Mikro Kecil Menengah (Umkm) Dan Penerimaan Pajak Penghasilan (Pph) Pasal 4 Ayat 2pada Kantor Pelayanan Pajak Pratama Lubuk Pakam

0 0 57

BAB II TINJAUAN PUSTAKA - Pengomposan Tandan Kosong Kelapa Sawit Menggunakan Pupuk Organik Aktif Dari Limbah Cair Pabrik Kelapa Sawit : Pengaruh Lubang Asupan Udara

1 2 26