Mendeteksi Penyakit Gigi Menggunakan Jaringan Saraf Tiruan Dengan Menggunakan Metode Backpropagation Dan Metode Hopfield

  A-1

LAMPIRAN LISTING PROGRAM Utama.m

  function varargout = TampilanAwal(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @TampilanAwal_OpeningFcn, ... 'gui_OutputFcn', @TampilanAwal_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 TampilanAwal is made visible. function TampilanAwal_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; handles.citra=imread('logo.jpg'); guidata(hObject, handles); axes(handles.axes1); imshow(handles.citra); % --- Outputs from this function are returned to the command line. function varargout = TampilanAwal_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function BantuanAwal_Callback(hObject, eventdata, handles) BantuanAwal delete(handles.utama) % ------------------------------------------------------------------- function keluar_Callback(hObject, eventdata, handles) close TampilanAwal % ------------------------------------------------------------------- function PengujianJST_Callback(hObject, eventdata, handles) PengujianJST delete(handles.utama) function PelatihanJST_Callback(hObject, eventdata, handles) PelatihanJST delete(handles.utama) % --- Executes during object creation, after setting all properties. function utama_CreateFcn(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function logoUSU_CreateFcn(hObject, eventdata, handles)

  citra_asli=imread('logo usu.jpg'); imshow(citra_asli); % Hint: place code in OpeningFcn to populate logoUSU function Untitled_1_Callback(hObject, eventdata, handles) function gambar_Callback(hObject, eventdata, handles) DaftarGambar delete(handles.utama)

Pelatihan.m

  function varargout = PelatihanJST(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @PelatihanJST_OpeningFcn, ... 'gui_OutputFcn', @PelatihanJST_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 PelatihanJST is made visible. function PelatihanJST_OpeningFcn(hObject, eventdata, handles, varargin) %hback = axes('units','normalized','position',[0 0 1 1]); %uistack(hback,'bottom'); %[back map]=imread('gambar\background biru.jpg'); %image(back) %colormap(map) %set(hback,'handlevisibility','off','visible','off') handles.output = hObject; % Update handles structure guidata(hObject, handles); % --- Outputs from this function are returned to the command line. function varargout = PelatihanJST_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; % --- Executes during object creation, after setting all properties. function slider1_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end function nilai_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function nilai_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');

  end % --- Executes on button press in open. function open_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.citra1); imshow(handles.citra); set(handles.Name,'String',nama_file); else return; end; % --- Executes on button press in reduksi. function reduksi_Callback(hObject, eventdata, handles) a = double(handles.citra_tres1); aa=a; pos=0; for i=1:50 for j=1:5 z(i,j)=0; for k=1:10 pos=pos+1; z(i,j)=z(i,j)+aa(i,pos); end end pos=0; end pos=0; for i=1:5 for j=1:5 zz(j,i)=0; for k=1:10 pos=pos+1; zz(j,i)=zz(j,i)+z(pos,i); end end pos=0; end zz for i=1:5 for j=1:5 if(zz(i,j)==100) zz(i,j)=0; else if(zz(i,j)>=1 && zz(i,j)<=99) zz(i,j)=1; end end end end zz zz1=reshape(zz,1,[]); zz1 id = get(handles.id,'string'); set(handles.id,'string',''); if (strcmp(id,'karies1')) xlswrite('datagigi.xlsx',zz1,'datagigi','A1'); elseif (strcmp(id,'karies2')) xlswrite('datagigi.xlsx',zz1,'datagigi','A2'); elseif (strcmp(id,'karies3')) xlswrite('datagigi.xlsx',zz1,'datagigi','A3'); elseif (strcmp(id,'pulpitis1')) xlswrite('datagigi.xlsx',zz1,'datagigi','A4'); elseif (strcmp(id,'pulpitis2')) xlswrite('datagigi.xlsx',zz1,'datagigi','A5'); elseif (strcmp(id,'pulpitis3')) xlswrite('datagigi.xlsx',zz1,'datagigi','A6'); elseif (strcmp(id,'gingivitis1')) xlswrite('datagigi.xlsx',zz1,'datagigi','A7'); elseif (strcmp(id,'gingivitis2')) xlswrite('datagigi.xlsx',zz1,'datagigi','A8'); elseif (strcmp(id,'gingivitis3')) xlswrite('datagigi.xlsx',zz1,'datagigi','A9'); elseif (strcmp(id,'absesgigi1')) xlswrite('datagigi.xlsx',zz1,'datagigi','A10'); elseif (strcmp(id,'absesgigi2')) xlswrite('datagigi.xlsx',zz1,'datagigi','A11'); elseif (strcmp(id,'absesgigi3')) xlswrite('datagigi.xlsx',zz1,'datagigi','A12'); else xlswrite('datagigi.xlsx',zz1,'datagigi','A13'); end msgbox('Data Sudah direduksi dan disimpan'); % --- Executes on button press in reset. function latihHP_Callback(hObject, eventdata, handles) tStart=tic; input = xlsread('datagigi.xlsx','datagigi','A1:Y12'); T=input; T=T'; net = newhop(T); xlswrite('bobothp.xlsx',net.LW{1,1},'bobot','A'); xlswrite('biashp.xlsx',net.b{1},'bias','A'); Ai=T; output = sim(net,12,[],Ai) xlswrite('outputHP.xlsx',output,'OutputHP','A'); msgbox('Pelatihan Hopfield Selesai'); waktuuji = toc(tStart); set(handles.timer,'string',waktuuji); function id_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function id_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in latihBP. function latihBP_Callback(hObject, eventdata, handles) tStart=tic;

input = xlsread('datagigi.xlsx','datagigi','A1:Y12'); target = [1 0 0 0 ; 1 0 0 0 ; 1 0 0 0 ; 0 1 0 0 ; 0 1 0 0 ; 0 1 0 0 ; 0 0 1 0 ; 0 0 1 0 ; 0 0 1 0 ; 0 0 0 1 ; 0 0 0 1 ; 0 0 0 1 ; ] target = target'; input=input'; net = newff(minmax(input),[12 12 4], {'tansig','tansig','tansig'},'traingdx'); net.trainParam.show=100; net.trainParam.epochs=50000; net.trainParam.goal=0.0001; net.trainParam.lr = 0.01; net.trainParam.mc = 0.01; [net,tr] = train(net,input,target); xlswrite('bobot1.xlsx',net.IW{1,1},'bobot','A'); xlswrite('bobot2.xlsx',net.LW{2,1},'bobot','A'); xlswrite('bobot3.xlsx',net.LW{3,2},'bobot','A'); xlswrite('bias.xlsx',net.b{1},'bias','A1:A12'); xlswrite('bias.xlsx',net.b{2},'bias','B1:B12'); xlswrite('bias.xlsx',net.b{3},'bias','C1:C4'); output = sim(net,input) xlswrite('outputBP6.xlsx',output,'OutputBP','A'); msgbox('Pelatihan Backpropagation Selesai'); waktuuji = toc(tStart); set(handles.timer,'string',waktuuji); % --- Executes on button press in Reset. function Reset_Callback(hObject, eventdata, handles) set(handles.id,'String','','Enable','on'); set(handles.slider1,'Enable','on'); set(handles.nilai,'String','','Enable','on'); set(handles.Name,'String','','Enable','on'); axes(handles.citra1); imshow(1); function Name_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function Name_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % ------------------------------------------------------------------- function TampilanAwal_Callback(hObject, eventdata, handles) TampilanAwal

  delete(handles.formpelatihan) % ------------------------------------------------------------------- function MenuPelatihan_Callback(hObject, eventdata, handles) % ------------------------------------------------------------------- function PengujianJST_Callback(hObject, eventdata, handles) PengujianJST delete(handles.formpelatihan) % ------------------------------------------------------------------- function BantuanPelatihanJST_Callback(hObject, eventdata, handles) BantuanPelatihanJST delete(handles.formpelatihan) % ------------------------------------------------------------------ function MenuKeluar_Callback(hObject, eventdata, handles) close PelatihanJST % ------------------------------------------------------------------- function gambar_Callback(hObject, eventdata, handles) KetGbr delete(handles.formpelatihan) function datagambar_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function datagambar_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function timer_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function timer_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in pushbutton9.

  % --- Executes on button press in pushbutton10. function pushbutton10_Callback(hObject, eventdata, handles) 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)<130 citra_threshold1(x,y)=0; elseif citra_gray(x,y)>=130 citra_threshold1(x,y)=1; end end end citra_threshold1 handles.citra_tres1=citra_threshold1; guidata(hObject,handles); axes(handles.citra1); imshow(citra_threshold1); % hObject handle to pushbutton10 (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 listbox1.

  function listbox1_Callback(hObject, eventdata, handles) citra_threshold1 % hObject handle to listbox1 (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 listbox1 contents as cell array % contents{get(hObject,'Value')} returns selected item from listbox1 % --- Executes during object creation, after setting all properties. function listbox1_CreateFcn(hObject, eventdata, handles) % hObject handle to listbox1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % 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 % --- Executes during object creation, after setting all properties. function text9_CreateFcn(hObject, eventdata, handles) citra_threshold1 % hObject handle to text9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

Pengujian.m

  function varargout = PengujianJST(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @PengujianJST_OpeningFcn, ... 'gui_OutputFcn', @PengujianJST_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 PengujianJST is made visible. function PengujianJST_OpeningFcn(hObject, eventdata, handles, varargin) % Create background axes and move them to the background handles.output = hObject; % Update handles structure guidata(hObject, handles);

  % --- Outputs from this function are returned to the command line. function varargout = PengujianJST_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; % --- Executes on button press in open. function open_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.image_uji); imshow(handles.citra); set(handles.name,'String',nama_file); else return; end; % --- Executes during object creation, after setting all properties. function slider_thres_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end function nilai_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function nilai_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in kenali_bp. function kenali_bp_Callback(hObject, eventdata, handles) tStart=tic; input = xlsread('datagigi.xlsx','datagigi','A1:Y4'); citrauji = double(handles.citra_tres); aa=citrauji; pos=0; for i=1:50 for j=1:5 z(i,j)=0; for k=1:10 pos=pos+1; z(i,j)=z(i,j)+aa(i,pos); end end pos=0; end pos=0; for i=1:5 for j=1:5 zz(j,i)=0; for k=1:10 pos=pos+1; zz(j,i)=zz(j,i)+z(pos,i); end end pos=0; end zz

  for i=1:5 for j=1:5 if(zz(i,j)==100) zz(i,j)=0; else if(zz(i,j)>=1 && zz(i,j)<=99) zz(i,j)=1; end end end end zz zz1=reshape(zz,1,25); datapengujian = zz1; target = [1 0 0 0 ; 1 0 0 0 ; 1 0 0 0 ; 0 1 0 0 ; 0 1 0 0 ; 0 1 0 0 ; 0 0 1 0 ; 0 0 1 0 ; 0 0 1 0 ; 0 0 0 1 ; 0 0 0 1 ; 0 0 0 1 ; ] target = target'; input = input'; net = newff(minmax(input),[12 12 4], {'tansig','tansig','tansig'},'traingdx'); net = init(net); net.IW{1,1}= xlsread('bobot1.xlsx','bobot'); net.LW{2,1}= xlsread('bobot2.xlsx','bobot'); net.LW{3,2}= xlsread('bobot3.xlsx','bobot'); net.b{1}= xlsread('bias.xlsx','bias','A1:A12'); net.b{2}= xlsread('bias.xlsx','bias','B1:B12'); net.b{3}= xlsread('bias.xlsx','bias','C1:C4'); datapengujian=datapengujian' output = sim(net,datapengujian) if (output(1,1)<0.86) b(1,1)=0; else b(1,1)=1; end if (output(2,1)<0.86) b(2,1)=0; else b(2,1)=1; end if (output(3,1)<0.86) b(3,1)=0; else b(3,1)=1; end if (output(4,1)<0.86) b(4,1)=0; else b(4,1)=1; end gigi=[b(1,1);b(2,1);b(3,1);b(4,1);] gigi1 = [1; 0; 0; 0; ]; gigi2 = [0; 1; 0; 0; ]; gigi3 = [0; 0; 1; 0; ]; gigi4 = [0; 0; 0; 1; ]; if isequal (b,gigi1) name='karies'; solusi='Bersihkan jaringan gigi yang terkena karies gigi dan lakukan penambalan gigi, penambalan gigi bisa bermacam-macam bahan yang umum digunakana adalah komposit, kompomer, glass ionomer, dan amalgam.'; elseif isequal (b,gigi2) name='pulpitis'; solusi='Penambalan sementara yang mengandung obat penenag saraf bisa menghilangkan rasa nyeri, tambalan ini dibiarkan 6 sampai 8 minggu dan kemudian diganti dengan penambalan permanen'; elseif isequal (b,gigi3) name='gingivitis'; solusi='Pengobatan utama pada gingivitis adalah dengan menghilangkan penyebabnya, yaitu dengan membersihkan karang gigi (scaling). Membersihkan karang gigi dapat dilakukan di praktik dokter gigi. Satu minggu pasca pembersihan karang gigi, dicek apakah kondisi sudah membaik atau belum'; elseif isequal (b,gigi4) name= 'abses gigi'; solusi='Pasien dianjurkan berkumur-kumur dengan air hangat, minum obat Paracetamol untuk mengurangi nyeri dan rasa sakit pada gigi yang mengalami Abses.Jika jelas terdapat infeksi, dapat diberikan terapi dengan Antibiotika Amoksisilin selama 5 hari'; else name='Tidak Dikenali'; solusi='Tidak Dikenali'; end set(handles.nama,'String',name); set(handles.solusi,'String',solusi); waktuuji = toc(tStart); set(handles.timer,'string',waktuuji); % --- Executes on button press in kenali_hp. function kenali_hp_Callback(hObject, eventdata, handles) tStart=tic; input = xlsread('datagigi.xlsx','datagigi','A1:Y4'); citrauji = double(handles.citra_tres); aa=citrauji; pos=0; for i=1:50 for j=1:5 z(i,j)=0; for k=1:10 pos=pos+1; z(i,j)=z(i,j)+aa(i,pos); end end pos=0; end pos=0; for i=1:5 for j=1:5

zz(j,i)=0; for k=1:10 pos=pos+1; zz(j,i)=zz(j,i)+z(pos,i); end end pos=0; end zz for i=1:5 for j=1:5 if(zz(i,j)==100) zz(i,j)=0; else if(zz(i,j)>=1 && zz(i,j)<=99) zz(i,j)=1; end end end end zz zz1=reshape(zz,1,25); datapengujian = zz1; target=input; target=target'; net = newff(minmax(input),[12 12 4], {'satlins','satlins','satlins'},'traingdx'); net = newhop(target); net = init(net); net.LW{1,1}= xlsread('bobothp.xlsx','bobot'); net.b{1}= xlsread('biashp.xlsx','bias'); datapengujian={[datapengujian']} output = sim(net,{1 10},{},datapengujian) output=[output{10}]%cell array 2 if (output(1,1)<0.6) a(1,1)=0; else a(1,1)=1; end if (output(2,1)<0.6) a(2,1)=0; else a(2,1)=1; end if (output(3,1)<0.6) a(3,1)=0; else a(3,1)=1; end if (output(4,1)<0.6) a(4,1)=0; else a(4,1)=1; end if (output(5,1)<0.6) a(5,1)=0; else a(5,1)=1; end if (output(6,1)<0.6)

a(6,1)=0; else a(6,1)=1; end if (output(7,1)<0.6) a(7,1)=0; else a(7,1)=1; end if (output(8,1)<0.6) a(8,1)=0; else a(8,1)=1; end if (output(9,1)<0.6) a(9,1)=0; else a(9,1)=1; end if (output(10,1)<0.6) a(10,1)=0; else a(10,1)=1; end if (output(11,1)<0.6) a(11,1)=0; else a(11,1)=1; end if (output(12,1)<0.6) a(12,1)=0; else a(12,1)=1; end if (output(13,1)<0.6) a(13,1)=0; else a(13,1)=1; end if (output(14,1)<0.6) a(14,1)=0; else a(14,1)=1; end if (output(15,1)<0.6) a(15,1)=0; else a(15,1)=1; end if (output(16,1)<0.6) a(16,1)=0; else a(16,1)=1; end if (output(17,1)<0.6) a(17,1)=0; else a(17,1)=1; end if (output(18,1)<0.6)

a(18,1)=0; else a(18,1)=1; end if (output(19,1)<0.6) a(19,1)=0; else a(19,1)=1; end if (output(20,1)<0.6) a(20,1)=0; else a(20,1)=1; end if (output(21,1)<0.6) a(21,1)=0; else a(21,1)=1; end if (output(22,1)<0.6) a(22,1)=0; else a(22,1)=1; end if (output(23,1)<0.6) a(23,1)=0; else a(23,1)=1; end if (output(24,1)<0.6) a(24,1)=0; else a(24,1)=1; end if (output(25,1)<0.6) a(25,1)=0; else a(25,1)=1; end gigi=[a(1,1);a(2,1);a(3,1);a(4,1);a(5,1);a(6,1);a(7,1);a(8,1);a(9,1); a(10,1);a(11,1);a(12,1);a(13,1);a(14,1);a(15,1);a(16,1);a(17,1);a(18, 1);a(19,1);a(20,1);a(21,1);a(22,1);a(23,1);a(24,1);a(25,1)]; gigi1=[0;0;0;1;1; 1;1;1;1;1; 1;1;0;1;1; 1;1;1;1;0; 1;0;0;0;0;]; gigi2=[1;1;0;1;1; 1;1;1;0;1; 1;1;1;1;0; 1;1;1;0;1; 1;1;1;1;1;]; gigi3=[1;0;0;0;1; 1;0;1;1;1; 1;0;1;1;1; 1;0;1;1;1; 1;0;0;0;1;]; gigi4=[1;1;1;1;1; 1;1;1;1;1; 1;1;1;1;1; 0;1;1;1;1; 1;1;1;1;1;]; gigi5=[1;1;1;1;1; 1;0;1;1;1; 1;0;1;1;0; 1;1;1;1;1; 1;1;1;1;1;]; gigi6=[0;1;1;0;1; 0;1;0;0;1; 1;0;1;1;1; 1;1;1;1;1; 1;1;1;0;0;]; gigi7=[1;1;1;1;1; 1;1;0;0;1; 1;1;1;0;1; 1;1;1;0;0; 1;1;1;0;1;]; gigi8=[1;1;1;1;1; 1;1;1;0;1; 1;1;1;1;1; 1;1;1;0;1; 1;1;1;1;1;]; gigi9=[1;0;1;1;1; 1;0;1;1;1; 1;1;1;1;1; 1;0;1;1;1; 1;0;1;1;1;]; gigi10=[1;1;1;1;0; 1;0;1;1;1; 1;0;1;1;1; 1;1;1;1;0; 1;1;1;1;1;]; gigi11=[1;0;1;1;1; 1;0;1;0;0; 1;1;0;1;1; 1;0;1;1;1; 1;1;1;1;1;]; gigi12=[1;1;1;1;1; 1;1;1;0;1; 1;1;0;1;1; 0;0;1;0;1; 1;1;1;0;1;]; if isequal (a,gigi1) name='karies'; solusi='Bersihkan jaringan gigi yang terkena karies gigi dan lakukan penambalan gigi, penambalan gigi bisa bermacam-macam bahan

yang umum digunakana adalah komposit, kompomer, glass ionomer, dan amalgam.'; elseif isequal (a,gigi2) name='karies'; solusi='Bersihkan jaringan gigi yang terkena karies gigi dan lakukan penambalan gigi, penambalan gigi bisa bermacam-macam bahan yang umum digunakana adalah komposit, kompomer, glass ionomer, dan amalgam.'; elseif isequal (a,gigi3) name='karies'; solusi='Bersihkan jaringan gigi yang terkena karies gigi dan lakukan penambalan gigi, penambalan gigi bisa bermacam-macam bahan yang umum digunakana adalah komposit, kompomer, glass ionomer, dan amalgam.'; elseif isequal (a,gigi4) name='pulpitis'; solusi='Penambalan sementara yang mengandung obat penenag saraf bisa menghilangkan rasa nyeri, tambalan ini dibiarkan 6 sampai 8 minggu dan kemudian diganti dengan penambalan permanen'; elseif isequal (a,gigi5) name='pulpitis'; solusi='Penambalan sementara yang mengandung obat penenag saraf bisa menghilangkan rasa nyeri, tambalan ini dibiarkan 6 sampai 8 minggu dan kemudian diganti dengan penambalan permanen'; elseif isequal (a,gigi6) name='pulpitis'; solusi='Penambalan sementara yang mengandung obat penenag saraf bisa menghilangkan rasa nyeri, tambalan ini dibiarkan 6 sampai 8 minggu dan kemudian diganti dengan penambalan permanen'; elseif isequal (a,gigi7) name='gingivitis'; solusi='Pengobatan utama pada gingivitis adalah dengan menghilangkan penyebabnya, yaitu dengan membersihkan karang gigi (scaling). Membersihkan karang gigi dapat dilakukan di praktik dokter gigi. Satu minggu pasca pembersihan karang gigi, dicek apakah kondisi sudah membaik atau belum'; elseif isequal (a,gigi8) name='gingivitis'; solusi='Pengobatan utama pada gingivitis adalah dengan menghilangkan penyebabnya, yaitu dengan membersihkan karang gigi (scaling). Membersihkan karang gigi dapat dilakukan di praktik dokter gigi. Satu minggu pasca pembersihan karang gigi, dicek apakah kondisi sudah membaik atau belum'; elseif isequal (a,gigi9) name='gingivitis'; solusi='Pengobatan utama pada gingivitis adalah dengan menghilangkan penyebabnya, yaitu dengan membersihkan karang gigi (scaling). Membersihkan karang gigi dapat dilakukan di praktik dokter gigi. Satu minggu pasca pembersihan karang gigi, dicek apakah kondisi sudah membaik atau belum'; elseif isequal (a,gigi10) name= 'abses gusi'; solusi='Pasien dianjurkan berkumur-kumur dengan air hangat, minum obat Paracetamol untuk mengurangi nyeri dan rasa sakit pada gigi yang mengalami Abses Jika jelas terdapat infeksi, dapat diberikan terapi dengan Antibiotika Amoksisilin selama 5 hari'; elseif isequal (a,gigi11) name= 'abses gusi'; solusi='Pasien dianjurkan berkumur-kumur dengan air hangat, minum obat Paracetamol untuk mengurangi nyeri dan rasa sakit pada gigi

  yang mengalami Abses Jika jelas terdapat infeksi, dapat diberikan terapi dengan Antibiotika Amoksisilin selama 5 hari'; elseif isequal (a,gigi12) name= 'abses gusi'; solusi='Pasien dianjurkan berkumur-kumur dengan air hangat, minum obat Paracetamol untuk mengurangi nyeri dan rasa sakit pada gigi yang mengalami Abses Jika jelas terdapat infeksi, dapat diberikan terapi dengan Antibiotika Amoksisilin selama 5 hari'; else name='Tidak Dikenali'; solusi='Tidak Dikenali'; end set(handles.nama,'String',name); set(handles.solusi,'String',solusi); waktuuji = toc(tStart); set(handles.timer,'string',waktuuji); function nama_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function nama_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function solusi_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function solusi_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function timer_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function timer_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in Reset. function name_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function name_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % ------------------------------------------------------------------ function Untitled_1_Callback(hObject, eventdata, handles) % ------------------------------------------------------------------- function TampilanAwal_Callback(hObject, eventdata, handles) TampilanAwal delete(handles.formpengujian) % ------------------------------------------------------------------- function PelatihanJST_Callback(hObject, eventdata, handles) PelatihanJST delete(handles.formpengujian)

  % ------------------------------------------------------------------- function BantuanPengujianJST_Callback(hObject, eventdata, handles) BantuanPengujianJST delete(handles.formpengujian) % ------------------------------------------------------------------- function MenuKeluar_Callback(hObject, eventdata, handles) close PengujianJST % ------------------------------------------------------------------- function Untitled_2_Callback(hObject, eventdata, handles) % ------------------------------------------------------------------- function gambar_Callback(hObject, eventdata, handles) KetGbr delete(handles.formpengujian) % --- Executes on button press in reset. function reset_Callback(hObject, eventdata, handles) set(handles.slider_thres,'Enable','on'); set(handles.nilai,'String','','Enable','on'); set(handles.name,'String','','Enable','on'); set(handles.nama,'String','','Enable','on'); set(handles.solusi,'String','','Enable','on'); set(handles.timer,'String','','Enable','on'); axes(handles.image_uji); imshow(1); % --- Executes on button press in pushbutton7. function pushbutton7_Callback(hObject, eventdata, handles) 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)<130 citra_threshold(x,y)=0; elseif citra_gray(x,y)>=130 citra_threshold(x,y)=1; end end end citra_threshold handles.citra_tres=citra_threshold; guidata(hObject,handles); axes(handles.image_uji); imshow(citra_threshold); % hObject handle to pushbutton7 (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 solusi_CreateFcn(hObject, eventdata, handles) % hObject handle to solusi (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

  bantuanUtama.m

  function varargout = BantuanAwal(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @BantuanAwal_OpeningFcn, ... 'gui_OutputFcn', @BantuanAwal_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 BantuanAwal is made visible. function BantuanAwal_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; % Update handles structure guidata(hObject, handles); % --- Outputs from this function are returned to the command line. function varargout = BantuanAwal_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; % --- Executes on selection change in listbox1. function listbox1_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function listbox1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on selection change in popupmenu1. function popupmenu1_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function popupmenu1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes during object creation, after setting all properties. function figure1_CreateFcn(hObject, eventdata, handles) % ------------------------------------------------------------------- function Untitled_1_Callback(hObject, eventdata, handles) % ------------------------------------------------------------------- function MUtama_Callback(hObject, eventdata, handles) Utama delete(handles.figure1) % ------------------------------------------------------------------- function MPelatihan_Callback(hObject, eventdata, handles) Pelatihan delete(handles.figure1)

  % ------------------------------------------------------------------- function MPengujian_Callback(hObject, eventdata, handles) Pengujian delete(handles.figure1) % ------------------------------------------------------------------- function MGambar_Callback(hObject, eventdata, handles) KetGbr delete(handles.figure1) % ------------------------------------------------------------------- function MKeluar_Callback(hObject, eventdata, handles) TampilanAwal delete(handles.figure1)

  bantuanPelatihan.m

  function varargout = BantuanPelatihanJST(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @BantuanPelatihanJST_OpeningFcn, ...

  'gui_OutputFcn', @BantuanPelatihanJST_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 BantuanPelatihanJST is made visible. function BantuanPelatihanJST_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; % Update handles structure guidata(hObject, handles); % --- Outputs from this function are returned to the command line. function varargout = BantuanPelatihanJST_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; % --- 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) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes during object creation, after setting all properties. function bantuanlatih_CreateFcn(hObject, eventdata, handles) % ------------------------------------------------------------------- function MenuKeluar_Callback(hObject, eventdata, handles) PelatihanJST

  delete(handles.bantuanlatih)

  bantuanPengujian.m

  function varargout = BantuanPengujianJST(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @BantuanPengujianJST_OpeningFcn, ...

  'gui_OutputFcn', @BantuanPengujianJST_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 BantuanPengujianJST is made visible. function BantuanPengujianJST_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; % Update handles structure guidata(hObject, handles); % --- Outputs from this function are returned to the command line. function varargout = BantuanPengujianJST_OutputFcn(hObject, eventdata, handles) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes during object creation, after setting all properties. function bantuanuji_CreateFcn(hObject, eventdata, handles) % --- Executes on selection change in listbox1. function listbox1_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function listbox1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function Untitled_1_Callback(hObject, eventdata, handles) function MenuUtama_Callback(hObject, eventdata, handles) Utama delete(handles.bantuanuji) function MenuPelatihan_Callback(hObject, eventdata, handles) Pelatihan delete(handles.bantuanuji) function MenuGambar_Callback(hObject, eventdata, handles) KetGbr delete(handles.bantuanuji) function MenuKeluar_Callback(hObject, eventdata, handles) PengujianJST delete(handles.bantuanuji)

  B-1

CURRICULUM VITAE

  Nama : Raja Rizky Ramadhan Hsb Alamat Sekarang : Jl. Bajak II H No. 5 Medan Alamat Orang tua : Jl. Bajak II H No. 5 Medan Telp/Hp : 085270100500 Email

Riwayat Pendidikan

  2009-2014 : S1 Ilmu Komputer Universitas Sumatera Utara, Medan 2006-2009 : SMA Negri 21 Medan 2003-2006 : SMP Negeri 6 Medan 1997-2003 : SD Negeri 060924 Medan

  Keahlian/Kursus yang diikuti

  Jaringan Komputer