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');
% 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);
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)
%
-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
% 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.
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
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)
% 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);
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
% 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)
%
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');
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
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
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)
% 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;
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');