Perbandingan Kecepatan dan Ketepatan Antara Learning Vector Quantization Dan Kohonen Pada Identifikasi Penyakit Leukemia

A-1

LAMPIRAN LISTING PROGRAM

HalDepan.m
function varargout = HalDepan(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @HalDepan_OpeningFcn, ...
'gui_OutputFcn', @HalDepan_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 HalDepan is made visible.
function HalDepan_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
handles.citra=imread('logousu.jpg');
guidata(hObject,handles);
axes(handles.axes1);
imshow(handles.citra);
% Choose default command line output for HalDepan
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes HalDepan wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = HalDepan_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;

A-2

% ------------------------------------------------------------------function menufile_Callback(hObject, eventdata, handles)
HalDepan
delete(handles.figure1)

% ------------------------------------------------------------------function menupelatihan_Callback(hObject, eventdata, handles)
% hObject
handle to menupelatihan (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles

structure with handles and user data (see GUIDATA)

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

% ------------------------------------------------------------------function menubantuan_Callback(hObject, eventdata, handles)
Bantuan
delete(handles.figure1)
% ------------------------------------------------------------------function menukeluar_Callback(hObject, eventdata, handles)
choice= questdlg ('Apakah Anda Ingin Keluar?','Konfirmasi',...
'Ya','Tidak','Tidak');
switch choice
case 'Ya'
close all;
end


% ------------------------------------------------------------------function ujilvq_Callback(hObject, eventdata, handles)
UjiLVQ
delete(handles.figure1)

% ------------------------------------------------------------------function ujikohonen_Callback(hObject, eventdata, handles)
HalUtamakohonen
delete(handles.figure1)

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

A-3

function latihlvq_Callback(hObject, eventdata, handles)
LatihLVQ
delete(handles.figure1)

% ------------------------------------------------------------------function latihkohonen_Callback(hObject, eventdata, handles)
HalLatihKohonen
delete(handles.figure1)


LatihLVQ.m
function varargout = LatihLVQ(varargin)
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @LatihLVQ_OpeningFcn, ...
'gui_OutputFcn', @LatihLVQ_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
global a;

% --- Executes just before LatihLVQ is made visible.
function LatihLVQ_OpeningFcn(hObject, eventdata, handles, varargin)
% Choose default command line output for LatihLVQ
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes LatihLVQ wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = LatihLVQ_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;

function namapenyakit_Callback(hObject, eventdata, handles)

A-4


% --- Executes during object creation, after setting all properties.
function namapenyakit_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

% --- Executes on button press in tombollatih.
function tombollatih_Callback(hObject, eventdata, handles)
tStart=tic;
entry = xlsread('data.xlsx', 'nilai', 'B3:U22');
target = [1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4];
entry = entry';
T = ind2vec(target);
kelas=size(full(T),1);
neuron = 20;
net=newlvq(minmax(entry),neuron,(1/kelas)*ones(1,kelas));
net.trainParam.epochs = 1000;
net.trainParam.goal = 0.0001;
net.trainParam.lr = 0.1;

net = train(net,entry,T);
net.IW{1,1}
xlswrite('datalvq1.xlsx', net.IW{1,1},'Bobot','A');
net.LW{2,1};
xlswrite('datalvq2.xlsx', net.LW{2,1},'Bobot','A');
output = sim(net,entry);
H = vec2ind(output)
waktupengujian = toc(tStart);
set(handles.waktu,'string',waktupengujian);

function waktu_Callback(hObject, eventdata, handles)
% hObject
handle to waktu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of waktu1 as text
%
str2double(get(hObject,'String')) returns contents of waktu1
as a double


% --- Executes during object creation, after setting all properties.
function waktu_CreateFcn(hObject, eventdata, handles)
% hObject
handle to waktu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.

A-5

%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in tombolreset.
function tombolreset_Callback(hObject, eventdata, handles)
xlswrite('data.xlsx', '0','nilai','B2:U2');
set(handles.namapenyakit,'String','','Enable','on');
set(handles.waktu,'String','','Enable','on');
set(handles.B,'Value',0);
set(handles.C,'Value',0);
set(handles.D,'Value',0);
set(handles.E,'Value',0);
set(handles.F,'Value',0);
set(handles.G,'Value',0);
set(handles.H,'Value',0);
set(handles.I,'Value',0);
set(handles.J,'Value',0);
set(handles.K,'Value',0);
set(handles.L,'Value',0);
set(handles.M,'Value',0);
set(handles.N,'Value',0);
set(handles.O,'Value',0);
set(handles.P,'Value',0);

set(handles.Q,'Value',0);
set(handles.R,'Value',0);
set(handles.S,'Value',0);
set(handles.T,'Value',0);
set(handles.U,'Value',0);
% --- Executes on button press in B.
function B_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.B,'value');%kenali nilai a sbg nilai yg didapat dari
checkbutton A
if (a==0)
xlswrite('data.xlsx', '0','nilai','B2') %masukkan nilai 1 pada
file excel, sheet2 kolom A
disp(0);
else
xlswrite('data.xlsx', '1','nilai','B2')%masukkan nilai 0 pada
file excel, sheet2 kolom A
disp(1);
end
% --- Executes on button press in C.
function C_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.C,'value');%kenali nilai a sbg nilai yg didapat dari
checkbutton A
if (a==0)
xlswrite('data.xlsx', '0','nilai','C2')%masukkan nilai 1 pada file
excel, sheet2 kolom A
else

A-6

xlswrite('data.xlsx', '1','nilai','C2')%masukkan nilai 0 pada
file excel, sheet2 kolom A
end
% --- Executes on button press in D.
function D_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.D,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','D2');
else
xlswrite('data.xlsx', '1','nilai','D2');
end

% --- Executes on button press in E.
function E_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.E,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','E2');
else
xlswrite('data.xlsx', '1','nilai','E2');
end
% --- Executes on button press in F.
function F_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.F,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','F2');
else
xlswrite('data.xlsx', '1','nilai','F2');
end

% --- Executes on button press in G.
function G_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.G,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','G2');
else
xlswrite('data.xlsx', '1','nilai','G2');
end
% --- Executes on button press in H.
function H_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.H,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','H2');
else
xlswrite('data.xlsx', '1','nilai','H2');
end

A-7

% --- Executes on button press in I.
function I_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.I,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','I2');
else
xlswrite('data.xlsx', '1','nilai','I2');
end

% --- Executes on button press in J.
function J_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.J,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','J2');
else
xlswrite('data.xlsx', '1','nilai','J2');
end

% --- Executes on button press in K.
function K_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.K,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','K2');
else
xlswrite('data.xlsx', '1','nilai','K2');
end

% --- Executes on button press in L.
function L_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.L,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','L2');
else
xlswrite('data.xlsx', '1','nilai','L2');
end

% --- Executes on button press in M.
function M_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.M,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','M2');
else
xlswrite('data.xlsx', '1','nilai','M2');
end

A-8

% --- Executes on button press in N.
function N_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.N,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','N2');
else
xlswrite('data.xlsx', '1','nilai','N2');
end
% --- Executes on button press in O.
function O_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.O,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','O2');
else
xlswrite('data.xlsx', '1','nilai','O2');
end

% --- Executes on button press in P.
function P_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.P,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','P2');
else
xlswrite('data.xlsx', '1','nilai','P2');
end
% --- Executes on button press in Q.
function Q_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.Q,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','Q2');
else
xlswrite('data.xlsx', '1','nilai','Q2');
end

% --- Executes on button press in R.
function R_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.R,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','R2');
else
xlswrite('data.xlsx', '1','nilai','R2');
end

% --- Executes on button press in S.
function S_Callback(hObject, eventdata, handles)
guidata(hObject,handles);

A-9

a=get(handles.S,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','S2');
else
xlswrite('data.xlsx', '1','nilai','S2');
end

% --- Executes on button press in T.
function T_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.T,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','T2');
else
xlswrite('data.xlsx', '1','nilai','T2');
end
% --- Executes on button press in U.
function U_Callback(hObject, eventdata, handles)
guidata(hObject,handles);
a=get(handles.U,'value');
if (a==0)
xlswrite('data.xlsx', '0','nilai','U2');
else
xlswrite('data.xlsx', '1','nilai','U2');
end

% --- Executes on button press in tombolsimpan.
function tombolsimpan_Callback(hObject, eventdata, handles)
nm = get(handles.namapenyakit,'string');
[num,txt,raw] =xlsread('data.xlsx','nilai','B2:U2');
%-- [num1,txt1,raw1] =xlsread('data.xlsx','nilai1','B1:U1');
%-- disp(nm);
disp(num);
set(handles.namapenyakit,'string','');
if(strcmp(nm,'Leukemia limfosit akut 1'))
xlswrite('data.xlsx',num,'nilai','B3:U3');
elseif(strcmp(nm,'Leukemia limfosit akut 2'))
xlswrite('data.xlsx',num,'nilai','B4:U4');
elseif(strcmp(nm,'Leukemia limfosit akut 3'))
xlswrite('data.xlsx',num,'nilai','B5:U5');
elseif(strcmp(nm,'Leukemia limfosit akut 4'))
xlswrite('data.xlsx',num,'nilai','B6:U6');
elseif(strcmp(nm,'Leukemia limfosit akut 5'))
xlswrite('data.xlsx',num,'nilai','B7:U7');
elseif (strcmp(nm,'Leukemia mieloid akut 1'))

A-10

xlswrite('data.xlsx',num,'nilai','B8:U8');
elseif (strcmp(nm,'Leukemia mieloid akut 2'))
xlswrite('data.xlsx',num,'nilai','B9:U9');
elseif (strcmp(nm,'Leukemia mieloid akut 3'))
xlswrite('data.xlsx',num,'nilai','B10:U10');
elseif (strcmp(nm,'Leukemia mieloid akut 4'))
xlswrite('data.xlsx',num,'nilai','B11:U11');
elseif (strcmp(nm,'Leukemia mieloid akut 5'))
xlswrite('data.xlsx',num,'nilai','B12:U12');
elseif (strcmp(nm,'Leukemia limfosit kronis 1'))
xlswrite('data.xlsx',num,'nilai','B13:U13');
elseif (strcmp(nm,'Leukemia limfosit kronis 2'))
xlswrite('data.xlsx',num,'nilai','B14:U14');
elseif (strcmp(nm,'Leukemia limfosit kronis 3'))
xlswrite('data.xlsx',num,'nilai','B15:U15');
elseif (strcmp(nm,'Leukemia limfosit kronis 4'))
xlswrite('data.xlsx',num,'nilai','B16:U16');
elseif (strcmp(nm,'Leukemia limfosit kronis 5'))
xlswrite('data.xlsx',num,'nilai','B17:U17');
elseif (strcmp(nm,'Leukemia mieloid kronis 1'))
xlswrite('data.xlsx',num,'nilai','B18:U18');
elseif (strcmp(nm,'Leukemia mieloid kronis 2'))
xlswrite('data.xlsx',num,'nilai','B19:U19');
elseif (strcmp(nm,'Leukemia mieloid kronis 3'))
xlswrite('data.xlsx',num,'nilai','B20:U20');
elseif (strcmp(nm,'Leukemia mieloid kronis 4'))
xlswrite('data.xlsx',num,'nilai','B21:U21');
else (strcmp(nm,'Leukemia mieloid kronis 5'))
xlswrite('data.xlsx',num,'nilai','B22:U22');
end
h = msgbox('Data telah disimpan', 'Berhasil');

% ------------------------------------------------------------------function menufile_Callback(hObject, eventdata, handles)
HalDepan
delete(handles.figure1)

A-11

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

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

% ------------------------------------------------------------------function menubantuan_Callback(hObject, eventdata, handles)
Bantuan
delete(handles.figure1)
% ------------------------------------------------------------------function menukeluar_Callback(hObject, eventdata, handles)
choice= questdlg ('Apakah Anda Ingin Keluar?','Konfirmasi',...
'Ya','Tidak','Tidak');
switch choice
case 'Ya'
close all;
end

% ------------------------------------------------------------------function ujilvq_Callback(hObject, eventdata, handles)
UjiLVQ
delete(handles.figure1)

% ------------------------------------------------------------------function ujikohonen_Callback(hObject, eventdata, handles)
HalUtamakohonen
delete(handles.figure1)

% ------------------------------------------------------------------function latihlvq_Callback(hObject, eventdata, handles)
LatihLVQ
delete(handles.figure1)

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

A-12

function latihkohonen_Callback(hObject, eventdata, handles)
HalLatihKohonen
delete(handles.figure1)

UjiLVQ.m
function varargout = UjiLVQ(varargin)
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @UjiLVQ_OpeningFcn, ...
'gui_OutputFcn', @UjiLVQ_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 UjiLVQ is made visible.
function UjiLVQ_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 UjiLVQ (see VARARGIN)
% Choose default command line output for UjiLVQ
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes UjiLVQ wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = UjiLVQ_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;

A-13

function penanganan_Callback(hObject, eventdata, handles)
% hObject
handle to penanganan (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of penanganan as text
%
str2double(get(hObject,'String')) returns contents of
penanganan as a double

% --- Executes during object creation, after setting all properties.
function penanganan_CreateFcn(hObject, eventdata, handles)
% hObject
handle to penanganan (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called
% 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

function namapenyakit_Callback(hObject, eventdata, handles)
% hObject
handle to namapenyakit (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of namapenyakit as
text
%
str2double(get(hObject,'String')) returns contents of
namapenyakit as a double

% --- Executes during object creation, after setting all properties.
function namapenyakit_CreateFcn(hObject, eventdata, handles)
% hObject
handle to namapenyakit (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called
% 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 tombolreset.
function tombolreset_Callback(hObject, eventdata, handles)
xlswrite('data.xlsx', '0','nilai','B2:U2');
set(handles.namapenyakit,'String','','Enable','on');

A-14

set(handles.penanganan,'String','','Enable','on');
set(handles.waktu,'String','','Enable','on');
set(handles.B,'Value',0);
set(handles.C,'Value',0);
set(handles.D,'Value',0);
set(handles.E,'Value',0);
set(handles.F,'Value',0);
set(handles.G,'Value',0);
set(handles.H,'Value',0);
set(handles.I,'Value',0);
set(handles.J,'Value',0);
set(handles.K,'Value',0);
set(handles.L,'Value',0);
set(handles.M,'Value',0);
set(handles.N,'Value',0);
set(handles.O,'Value',0);
set(handles.P,'Value',0);
set(handles.Q,'Value',0);
set(handles.R,'Value',0);
set(handles.S,'Value',0);
set(handles.T,'Value',0);
set(handles.U,'Value',0);
% --- Executes on button press in tombolhasil.
function tombolhasil_Callback(hObject, eventdata, handles)
tStart=tic;
%num = get(handles.namapenyakit,'string');
%num1 = get(handles.penanganan,'string');
txt =xlsread('data.xlsx','nilai','B2:U2');
%disp(num);
%disp(num1);
entry = xlsread('data.xlsx', 'nilai', 'B3:U22');
target = [1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4];
T = ind2vec(target);
kelas=size(full(T),1);
neuron = 20;
net=newlvq(minmax(entry),neuron,(1/kelas)*ones(1,kelas));
net = init(net);
net.IW{1,1}= xlsread('datalvq1.xlsx','Bobot','A1:T20');
net.LW{2,1}= xlsread('datalvq2.xlsx','Bobot','A1:T4');
txt = txt';
output = sim(net,txt)
H = vec2ind(output)
if (output(1,1)