Implementasi Jaringan Syaraf Tiruan Bidirectional Associative Memory Untuk Pengidentifikasian Telapak Tangan Manusia (Studi Kasus: Mahasiswa S1 Ilmu Komputer Usu Stambuk 2010 Kom A)

(1)

LAMPIRAN LISTING PROGRAM 1. depan.m (Antarmuka Home)

function varargout = depan(varargin) gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @depan_OpeningFcn, ... 'gui_OutputFcn', @depan_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.

function depan_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

guidata(hObject, handles);

function varargout = depan_OutputFcn(hObject, eventdata, handles)

a=imread('fak.jpg');

axes(handles.axes3); imshow(a) varargout{1} = handles.output;

function Train_Callback(hObject, eventdata, handles) proses

delete(handles.figure1);

% ---

function Test_Callback(hObject, eventdata, handles) Test

delete(handles.figure1);

% ---

function help_Callback(hObject, eventdata, handles) help

delete(handles.figure1);


(2)

% ---

function about_Callback(hObject, eventdata, handles) about

delete(handles.figure1);

% ---

function Exit_Callback(hObject, eventdata, handles) respon=keluar('Title','Konfirmasi Keluar'); switch lower(respon) case 'tidak' case 'ya' close end

% --- Executes during object creation, after setting all properties.

function axes_CreateFcn(hObject, eventdata, handles)

2. proses.m (Antarmuka Train)

function varargout = proses(varargin) gui_Singleton = 1;

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

'gui_OpeningFcn', @proses_OpeningFcn, ... 'gui_OutputFcn', @proses_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:}); end

% --- Executes just before proses is made visible.

function proses_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject; guidata(hObject, handles);

% --- Outputs from this function are returned to the command line.

function varargout = proses_OutputFcn(hObject, eventdata, handles)


(3)

varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles) gb1=imread('yayang1.jpg'); gb2=imread('reni1.jpg'); gb3=imread('danny1.jpg'); gb4=imread('angga1.jpg'); gb5=imread('hayatun1.jpg'); gb6=imread('intan1.jpg'); gb7=imread('janwandi1.jpg'); gb8=imread('rasyid1.jpg'); gb9=imread('agus1.jpg'); gb10=imread('umri1.jpg'); gb11=imread('nurhennida1.jpg'); gb12=imread('rivai1.jpg'); gb13=imread('singgih1.jpg'); gb14=imread('teguh1.jpg'); gb15=imread('teti1.jpg'); gb16=imread('fajrul1.jpg'); gb17=imread('amalya1.jpg'); gb18=imread('vito1.jpg'); gb19=imread('sunfirst1.jpg'); gb20=imread('johanes1.jpg'); axes(handles.axes1); imshow(gb1) axes(handles.axes2); imshow(gb2) axes(handles.axes3); imshow(gb3) axes(handles.axes4); imshow(gb4) axes(handles.axes5); imshow(gb5) axes(handles.axes6); imshow(gb6) axes(handles.axes7); imshow(gb7) axes(handles.axes8); imshow(gb8) axes(handles.axes9); imshow(gb9) axes(handles.axes10); imshow(gb10) axes(handles.axes11); imshow(gb11) axes(handles.axes12); imshow(gb12) axes(handles.axes13); imshow(gb13) axes(handles.axes14); imshow(gb14) axes(handles.axes15); imshow(gb15) axes(handles.axes16); imshow(gb16) axes(handles.axes17); imshow(gb17) axes(handles.axes18); imshow(gb18) axes(handles.axes19); imshow(gb19) axes(handles.axes20); imshow(gb20)

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles) gb1 =getimage(handles.axes1);


(4)

gb2 =getimage(handles.axes2); gb3 =getimage(handles.axes3); gb4 =getimage(handles.axes4); gb5 =getimage(handles.axes5); gb6 =getimage(handles.axes6); gb7 =getimage(handles.axes7); gb8 =getimage(handles.axes8); gb9 =getimage(handles.axes9); gb10 =getimage(handles.axes10); gb11 =getimage(handles.axes11); gb12 =getimage(handles.axes12); gb13 =getimage(handles.axes13); gb14 =getimage(handles.axes14); gb15 =getimage(handles.axes15); gb16 =getimage(handles.axes16); gb17 =getimage(handles.axes17); gb18 =getimage(handles.axes18); gb19 =getimage(handles.axes19); gb20 =getimage(handles.axes20);

gb1= imresize(gb1,[200 300]); gb2= imresize(gb2,[200 300]); gb3= imresize(gb3,[200 300]); gb4= imresize(gb4,[200 300]); gb5= imresize(gb5,[200 300]); gb6= imresize(gb6,[200 300]); gb7= imresize(gb7,[200 300]); gb8= imresize(gb8,[200 300]); gb9= imresize(gb9,[200 300]); gb10= imresize(gb10,[200 300]); gb11= imresize(gb11,[200 300]); gb12= imresize(gb12,[200 300]); gb13= imresize(gb13,[200 300]); gb14= imresize(gb14,[200 300]); gb15= imresize(gb15,[200 300]); gb16= imresize(gb16,[200 300]); gb17= imresize(gb17,[200 300]); gb18= imresize(gb18,[200 300]); gb19= imresize(gb19,[200 300]); gb20= imresize(gb20,[200 300]); axes(handles.axes1); imshow(gb1) axes(handles.axes2); imshow(gb2) axes(handles.axes3); imshow(gb3) axes(handles.axes4); imshow(gb4) axes(handles.axes5); imshow(gb5) axes(handles.axes6); imshow(gb6) axes(handles.axes7); imshow(gb7) axes(handles.axes8); imshow(gb8) axes(handles.axes9); imshow(gb9)


(5)

axes(handles.axes10); imshow(gb10) axes(handles.axes11); imshow(gb11) axes(handles.axes12); imshow(gb12) axes(handles.axes13); imshow(gb13) axes(handles.axes14); imshow(gb14) axes(handles.axes15); imshow(gb15) axes(handles.axes16); imshow(gb16) axes(handles.axes17); imshow(gb17) axes(handles.axes18); imshow(gb18) axes(handles.axes19); imshow(gb19) axes(handles.axes20); imshow(gb20)

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles) gb1 =getimage(handles.axes1); gb2 =getimage(handles.axes2); gb3 =getimage(handles.axes3); gb4 =getimage(handles.axes4); gb5 =getimage(handles.axes5); gb6 =getimage(handles.axes6); gb7 =getimage(handles.axes7); gb8 =getimage(handles.axes8); gb9 =getimage(handles.axes9); gb10 =getimage(handles.axes10); gb11 =getimage(handles.axes11); gb12 =getimage(handles.axes12); gb13 =getimage(handles.axes13); gb14 =getimage(handles.axes14); gb15 =getimage(handles.axes15); gb16 =getimage(handles.axes16); gb17 =getimage(handles.axes17); gb18 =getimage(handles.axes18); gb19 =getimage(handles.axes19); gb20 =getimage(handles.axes20); citra_double1=double(gb1); citra_double2=double(gb2); citra_double3=double(gb3); citra_double4=double(gb4); citra_double5=double(gb5); citra_double6=double(gb6); citra_double7=double(gb7); citra_double8=double(gb8); citra_double9=double(gb9); citra_double10=double(gb10); citra_double11=double(gb11); citra_double12=double(gb12); citra_double13=double(gb13); citra_double14=double(gb14);


(6)

citra_double15=double(gb15); citra_double16=double(gb16); citra_double17=double(gb17); citra_double18=double(gb18); citra_double19=double(gb19); citra_double20=double(gb20);

[b k c]=size(citra_double1); for x=1:b for y=1:k semua_elemen1=citra_double1(x,y,1)+citra_double1(x,y,2)+ citra_double1(x,y,3); gray_mean1(x,y)=semua_elemen1/3; semua_elemen2=citra_double2(x,y,1)+citra_double2(x,y,2)+ citra_double2(x,y,3); gray_mean2(x,y)=semua_elemen2/3; semua_elemen3=citra_double3(x,y,1)+citra_double3(x,y,2)+ citra_double3(x,y,3); gray_mean3(x,y)=semua_elemen3/3; semua_elemen4=citra_double4(x,y,1)+citra_double4(x,y,2)+ citra_double4(x,y,3); gray_mean4(x,y)=semua_elemen4/3; semua_elemen5=citra_double5(x,y,1)+citra_double5(x,y,2)+ citra_double5(x,y,3); gray_mean5(x,y)=semua_elemen5/3; semua_elemen6=citra_double6(x,y,1)+citra_double6(x,y,2)+ citra_double6(x,y,3); gray_mean6(x,y)=semua_elemen6/3; semua_elemen7=citra_double7(x,y,1)+citra_double7(x,y,2)+ citra_double7(x,y,3); gray_mean7(x,y)=semua_elemen7/3; semua_elemen8=citra_double8(x,y,1)+citra_double8(x,y,2)+ citra_double8(x,y,3); gray_mean8(x,y)=semua_elemen8/3; semua_elemen9=citra_double9(x,y,1)+citra_double9(x,y,2)+ citra_double9(x,y,3); gray_mean9(x,y)=semua_elemen9/3; semua_elemen10=citra_double10(x,y,1)+citra_double10(x,y,2)+ citra_double10(x,y,3);


(7)

gray_mean10(x,y)=semua_elemen10/3; semua_elemen11=citra_double11(x,y,1)+citra_double11(x,y,2)+ citra_double11(x,y,3); gray_mean11(x,y)=semua_elemen11/3; semua_elemen12=citra_double12(x,y,1)+citra_double12(x,y,2)+ citra_double12(x,y,3); gray_mean12(x,y)=semua_elemen12/3; semua_elemen13=citra_double13(x,y,1)+citra_double13(x,y,2)+ citra_double13(x,y,3); gray_mean13(x,y)=semua_elemen13/3; semua_elemen14=citra_double14(x,y,1)+citra_double14(x,y,2)+ citra_double14(x,y,3); gray_mean14(x,y)=semua_elemen14/3; semua_elemen15=citra_double15(x,y,1)+citra_double15(x,y,2)+ citra_double15(x,y,3); gray_mean15(x,y)=semua_elemen15/3; semua_elemen16=citra_double16(x,y,1)+citra_double16(x,y,2)+ citra_double16(x,y,3); gray_mean16(x,y)=semua_elemen16/3; semua_elemen17=citra_double17(x,y,1)+citra_double17(x,y,2)+ citra_double17(x,y,3); gray_mean17(x,y)=semua_elemen17/3; semua_elemen18=citra_double18(x,y,1)+citra_double18(x,y,2)+ citra_double18(x,y,3); gray_mean18(x,y)=semua_elemen18/3; semua_elemen19=citra_double19(x,y,1)+citra_double19(x,y,2)+ citra_double19(x,y,3); gray_mean19(x,y)=semua_elemen19/3; semua_elemen20=citra_double20(x,y,1)+citra_double20(x,y,2)+ citra_double20(x,y,3); gray_mean20(x,y)=semua_elemen20/3; end end gb1=uint8(gray_mean1); gb2=uint8(gray_mean2); gb3=uint8(gray_mean3); gb4=uint8(gray_mean4); gb5=uint8(gray_mean5);


(8)

gb6=uint8(gray_mean6); gb7=uint8(gray_mean7); gb8=uint8(gray_mean8); gb9=uint8(gray_mean9); gb10=uint8(gray_mean10); gb11=uint8(gray_mean11); gb12=uint8(gray_mean12); gb13=uint8(gray_mean13); gb14=uint8(gray_mean14); gb15=uint8(gray_mean15); gb16=uint8(gray_mean16); gb17=uint8(gray_mean17); gb18=uint8(gray_mean18); gb19=uint8(gray_mean19); gb20=uint8(gray_mean20); axes(handles.axes1); imshow(gb1) axes(handles.axes2); imshow(gb2) axes(handles.axes3); imshow(gb3) axes(handles.axes4); imshow(gb4) axes(handles.axes5); imshow(gb5) axes(handles.axes6); imshow(gb6) axes(handles.axes7); imshow(gb7) axes(handles.axes8); imshow(gb8) axes(handles.axes9); imshow(gb9) axes(handles.axes10); imshow(gb10) axes(handles.axes11); imshow(gb11) axes(handles.axes12); imshow(gb12) axes(handles.axes13); imshow(gb13) axes(handles.axes14); imshow(gb14) axes(handles.axes15); imshow(gb15) axes(handles.axes16); imshow(gb16) axes(handles.axes17); imshow(gb17) axes(handles.axes18); imshow(gb18) axes(handles.axes19); imshow(gb19) axes(handles.axes20); imshow(gb20)

% --- Executes on button press in pushbutton4.

function pushbutton4_Callback(hObject, eventdata, handles) gb1 =getimage(handles.axes1); gb2 =getimage(handles.axes2); gb3 =getimage(handles.axes3); gb4 =getimage(handles.axes4); gb5 =getimage(handles.axes5); gb6 =getimage(handles.axes6); gb7 =getimage(handles.axes7); gb8 =getimage(handles.axes8); gb9 =getimage(handles.axes9); gb10 =getimage(handles.axes10); gb11 =getimage(handles.axes11);


(9)

gb12 =getimage(handles.axes12); gb13 =getimage(handles.axes13); gb14 =getimage(handles.axes14); gb15 =getimage(handles.axes15); gb16 =getimage(handles.axes16); gb17 =getimage(handles.axes17); gb18 =getimage(handles.axes18); gb19 =getimage(handles.axes19); gb20 =getimage(handles.axes20); h=fspecial('unsharp'); h1=imfilter(gb1,h); h2=imfilter(gb2,h); h3=imfilter(gb3,h); h4=imfilter(gb4,h); h5=imfilter(gb5,h); h6=imfilter(gb6,h); h7=imfilter(gb7,h); h8=imfilter(gb8,h); h9=imfilter(gb9,h); h10=imfilter(gb10,h); h11=imfilter(gb11,h); h12=imfilter(gb12,h); h13=imfilter(gb13,h); h14=imfilter(gb14,h); h15=imfilter(gb15,h); h16=imfilter(gb16,h); h17=imfilter(gb17,h); h18=imfilter(gb18,h); h19=imfilter(gb19,h); h20=imfilter(gb20,h); axes(handles.axes1); imshow(h1) axes(handles.axes2); imshow(h2) axes(handles.axes3); imshow(h3) axes(handles.axes4); imshow(h4) axes(handles.axes5); imshow(h5) axes(handles.axes6); imshow(h6) axes(handles.axes7); imshow(h7) axes(handles.axes8); imshow(h8) axes(handles.axes9); imshow(h9) axes(handles.axes10); imshow(h10) axes(handles.axes11); imshow(h11) axes(handles.axes12); imshow(h12) axes(handles.axes13); imshow(h13) axes(handles.axes14); imshow(h14) axes(handles.axes15); imshow(h15) axes(handles.axes16); imshow(h16) axes(handles.axes17); imshow(h17) axes(handles.axes18); imshow(h18)


(10)

axes(handles.axes19); imshow(h19) axes(handles.axes20); imshow(h20)

% --- Executes on button press in pushbutton5.

function pushbutton5_Callback(hObject, eventdata, handles) gb1 =getimage(handles.axes1); gb2 =getimage(handles.axes2); gb3 =getimage(handles.axes3); gb4 =getimage(handles.axes4); gb5 =getimage(handles.axes5); gb6 =getimage(handles.axes6); gb7 =getimage(handles.axes7); gb8 =getimage(handles.axes8); gb9 =getimage(handles.axes9); gb10 =getimage(handles.axes10); gb11 =getimage(handles.axes11); gb12 =getimage(handles.axes12); gb13 =getimage(handles.axes13); gb14 =getimage(handles.axes14); gb15 =getimage(handles.axes15); gb16 =getimage(handles.axes16); gb17 =getimage(handles.axes17); gb18 =getimage(handles.axes18); gb19 =getimage(handles.axes19); gb20 =getimage(handles.axes20); gb1=(edge(gb1,'canny',0.17)); gb2=(edge(gb2,'canny',0.17)); gb3=(edge(gb3,'canny',0.17)); gb4=(edge(gb4,'canny',0.17)); gb5=(edge(gb5,'canny',0.17)); gb6=(edge(gb6,'canny',0.17)); gb7=(edge(gb7,'canny',0.17)); gb8=(edge(gb8,'canny',0.17)); gb9=(edge(gb9,'canny',0.17)); gb10=(edge(gb10,'canny',0.17)); gb11=(edge(gb11,'canny',0.17)); gb12=(edge(gb12,'canny',0.17)); gb13=(edge(gb13,'canny',0.17)); gb14=(edge(gb14,'canny',0.17)); gb15=(edge(gb15,'canny',0.17)); gb16=(edge(gb16,'canny',0.17)); gb17=(edge(gb17,'canny',0.17)); gb18=(edge(gb18,'canny',0.17)); gb19=(edge(gb19,'canny',0.17)); gb20=(edge(gb20,'canny',0.17)); [b k]=size(gb1); for x=1:b for y=1:k if gb1(x,y)==0


(11)

gb1(x,y)=1; elseif gb1(x,y)>0 gb1(x,y)=0; end end end [b k]=size(gb2); for x=1:b for y=1:k if gb2(x,y)==0 gb2(x,y)=1; elseif gb2(x,y)>0 gb2(x,y)=0; end end end [b k]=size(gb3); for x=1:b for y=1:k if gb3(x,y)==0 gb3(x,y)=1; elseif gb3(x,y)>0 gb3(x,y)=0; end end end [b k]=size(gb4); for x=1:b for y=1:k if gb4(x,y)==0 gb4(x,y)=1; elseif gb4(x,y)>0 gb4(x,y)=0; end end end [b k]=size(gb5); for x=1:b for y=1:k if gb5(x,y)==0 gb5(x,y)=1; elseif gb5(x,y)>0 gb5(x,y)=0; end end end


(12)

[b k]=size(gb6); for x=1:b for y=1:k if gb6(x,y)==0 gb6(x,y)=1; elseif gb6(x,y)>0 gb6(x,y)=0; end end end [b k]=size(gb7); for x=1:b for y=1:k if gb7(x,y)==0 gb7(x,y)=1; elseif gb7(x,y)>0 gb7(x,y)=0; end end end [b k]=size(gb8); for x=1:b for y=1:k if gb8(x,y)==0 gb8(x,y)=1; elseif gb8(x,y)>0 gb8(x,y)=0; end end end [b k]=size(gb9); for x=1:b for y=1:k if gb9(x,y)==0 gb9(x,y)=1; elseif gb9(x,y)>0 gb9(x,y)=0; end end end [b k]=size(gb10); for x=1:b for y=1:k if gb10(x,y)==0 gb10(x,y)=1; elseif gb10(x,y)>0


(13)

gb10(x,y)=0; end end end [b k]=size(gb11); for x=1:b for y=1:k if gb11(x,y)==0 gb11(x,y)=1; elseif gb11(x,y)>0 gb11(x,y)=0; end end end [b k]=size(gb12); for x=1:b for y=1:k if gb12(x,y)==0 gb12(x,y)=1; elseif gb12(x,y)>0 gb12(x,y)=0; end end end [b k]=size(gb13); for x=1:b for y=1:k if gb13(x,y)==0 gb13(x,y)=1; elseif gb13(x,y)>0 gb13(x,y)=0; end end end [b k]=size(gb14); for x=1:b for y=1:k if gb14(x,y)==0 gb14(x,y)=1; elseif gb14(x,y)>0 gb14(x,y)=0; end end end [b k]=size(gb15); for x=1:b


(14)

for y=1:k if gb15(x,y)==0 gb15(x,y)=1; elseif gb15(x,y)>0 gb15(x,y)=0; end end end [b k]=size(gb16); for x=1:b for y=1:k if gb16(x,y)==0 gb16(x,y)=1; elseif gb16(x,y)>0 gb16(x,y)=0; end end end [b k]=size(gb17); for x=1:b for y=1:k if gb17(x,y)==0 gb17(x,y)=1; elseif gb17(x,y)>0 gb17(x,y)=0; end end end [b k]=size(gb18); for x=1:b for y=1:k if gb18(x,y)==0 gb18(x,y)=1; elseif gb18(x,y)>0 gb18(x,y)=0; end end end [b k]=size(gb19); for x=1:b for y=1:k if gb19(x,y)==0 gb19(x,y)=1; elseif gb19(x,y)>0 gb19(x,y)=0; end


(15)

end end [b k]=size(gb20); for x=1:b for y=1:k if gb20(x,y)==0 gb20(x,y)=1; elseif gb20(x,y)>0 gb20(x,y)=0; end end end axes(handles.axes1);imshow(gb1) axes(handles.axes2);imshow(gb2) axes(handles.axes3);imshow(gb3) axes(handles.axes4);imshow(gb4) axes(handles.axes5);imshow(gb5) axes(handles.axes6);imshow(gb6) axes(handles.axes7);imshow(gb7) axes(handles.axes8);imshow(gb8) axes(handles.axes9);imshow(gb9) axes(handles.axes10);imshow(gb10) axes(handles.axes11);imshow(gb11) axes(handles.axes12);imshow(gb12) axes(handles.axes13);imshow(gb13) axes(handles.axes14);imshow(gb14) axes(handles.axes15);imshow(gb15) axes(handles.axes16);imshow(gb16) axes(handles.axes17);imshow(gb17) axes(handles.axes18);imshow(gb18) axes(handles.axes19);imshow(gb19) axes(handles.axes20);imshow(gb20)

% --- Executes on button press in pushbutton6.

function pushbutton6_Callback(hObject, eventdata, handles) gb1 =getimage(handles.axes1); gb2 =getimage(handles.axes2); gb3 =getimage(handles.axes3); gb4 =getimage(handles.axes4); gb5 =getimage(handles.axes5); gb6 =getimage(handles.axes6); gb7 =getimage(handles.axes7); gb8 =getimage(handles.axes8); gb9 =getimage(handles.axes9); gb10 =getimage(handles.axes10); gb11 =getimage(handles.axes11); gb12 =getimage(handles.axes12);


(16)

gb13 =getimage(handles.axes13); gb14 =getimage(handles.axes14); gb15 =getimage(handles.axes15); gb16 =getimage(handles.axes16); gb17 =getimage(handles.axes17); gb18 =getimage(handles.axes18); gb19 =getimage(handles.axes19); gb20 =getimage(handles.axes20); gb1=double(reshape(gb1,1,60000)); gb2=double(reshape(gb2,1,60000)); gb3=double(reshape(gb3,1,60000)); gb4=double(reshape(gb4,1,60000)); gb5=double(reshape(gb5,1,60000)); gb6=double(reshape(gb6,1,60000)); gb7=double(reshape(gb7,1,60000)); gb8=double(reshape(gb8,1,60000)); gb9=double(reshape(gb9,1,60000)); gb10=double(reshape(gb10,1,60000)); gb11=double(reshape(gb11,1,60000)); gb12=double(reshape(gb12,1,60000)); gb13=double(reshape(gb13,1,60000)); gb14=double(reshape(gb14,1,60000)); gb15=double(reshape(gb15,1,60000)); gb16=double(reshape(gb16,1,60000)); gb17=double(reshape(gb17,1,60000)); gb18=double(reshape(gb18,1,60000)); gb19=double(reshape(gb19,1,60000)); gb20=double(reshape(gb20,1,60000));

t1=[1 0 1 0 1 0 0 1 0 1 1]; t2=[0 0 0 1 0 1 0 0 0 0 0]; t3=[1 1 1 0 1 1 1 1 1 1 1]; t4=[0 1 0 1 0 0 1 0 1 0 1]; t5=[0 1 1 0 1 0 0 1 0 1 0]; t6=[0 1 0 1 0 1 0 0 0 0 0]; t7=[1 0 1 0 1 1 1 1 1 1 1]; t8=[0 0 0 1 0 0 1 0 1 0 0]; t9=[1 0 1 0 1 1 0 1 0 1 1]; t10=[0 0 0 1 0 0 0 0 0 0 1]; t11=[1 1 1 0 1 1 1 1 1 1 0]; t12=[0 1 0 1 0 0 1 0 1 0 0]; t13=[1 1 1 0 1 0 0 1 0 1 1]; t14=[1 1 0 1 0 1 0 0 0 0 1]; t15=[1 0 1 0 1 0 1 1 1 1 1]; t16=[0 0 0 1 0 1 1 0 1 0 0]; t17=[1 0 1 0 1 1 0 1 0 1 0]; t18=[0 0 0 1 0 0 0 0 0 0 0]; t19=[1 1 1 0 1 0 1 1 1 1 1]; t20=[0 1 0 1 0 1 1 0 1 0 0];


(17)

t=[t1;t2;t3;t4;t5;t6;t7;t8;t9;t10;t11;t12;t13;t14;t15;t16;t17; t18;t19;t20]; s =[gb1;gb2;gb3;gb4;gb5;gb6;gb7;gb8;gb9;gb10;gb11;gb12;gb13;gb14 ;gb15;gb16;gb17;gb18;gb19;gb20]; ya=2*t-1; xa=2*s-1; w=zeros(60000,11); xlswrite('pelatihan.xlsx',w,'bobot','A1:K60000'); nilai_y = xa*w;

[r k]=size(nilai_y); for i=1:r for j=1:k if nilai_y(i,j)<=0; nilai_y(i,j)=-1; else nilai_y(i,j)>0; nilai_y(i,j)=1; end end end disp(nilai_y)

h=msgbox('Train finish and weight is saved','Information');

function Home_Callback(hObject, eventdata, handles) depan

delete(handles.figure1);

% ---

function Train_Callback(hObject, eventdata, handles) proses

delete(handles.figure1);

% ---

function Test_Callback(hObject, eventdata, handles) Test

delete(handles.figure1);

% ---

function Help_Callback(hObject, eventdata, handles) help

delete(handles.figure1);

% ---


(18)

about

delete(handles.figure1);

% ---

function Exit_Callback(hObject, eventdata, handles) respon=keluar('Title','Konfirmasi Keluar'); switch lower(respon) case 'tidak' case 'ya' close end

3. test.m (Antarmuka Test)

function varargout = Test(varargin) gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Test_OpeningFcn, ... 'gui_OutputFcn', @Test_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

function Test_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject; guidata(hObject, handles);

% --- Outputs from this function are returned to the command line.

function varargout = Test_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uigetfile({'*.jpg','File jpeg


(19)

if ~isequal(nama_file,0) gbr=imread(fullfile(nama_path,nama_file)) axes(handles.axes1); imshow(gbr); else return; end;

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles) citra=getimage(handles.axes1);

citra=imresize(citra,[200 300]); citra_double=double(citra);

[b k c]=size(citra_double); for x=1:b for y=1:k semua_elemen1=citra_double(x,y,1)+citra_double(x,y,2)+ citra_double(x,y,3); gray_mean1(x,y)=semua_elemen1/3; end end gbr=uint8(gray_mean1); h=fspecial('unsharp'); m=imfilter(gbr,h); m1=imfilter(m,h); m2=imfilter(m1,h); %m3=imfilter(m2,h); %m4=imfilter(m3,h); gb1=(edge(m2,'canny',0.17)); [b k]=size(gb1); for x=1:b for y=1:k if gb1(x,y)==0 gb1(x,y)=1; elseif gb1(x,y)>0 gb1(x,y)=0; end end end gbr=double(reshape(gb1,1,60000)); palm=2*gbr-1;

t1=[1 0 1 0 1 0 0 1 0 1 1]; t2=[0 0 0 1 0 1 0 0 0 0 0]; t3=[1 1 1 0 1 1 1 1 1 1 1]; t4=[0 1 0 1 0 0 1 0 1 0 1]; t5=[0 1 1 0 1 0 0 1 0 1 0]; t6=[0 1 0 1 0 1 0 0 0 0 0]; t7=[1 0 1 0 1 1 1 1 1 1 1]; t8=[0 0 0 1 0 0 1 0 1 0 0]; t9=[1 0 1 0 1 1 0 1 0 1 1];


(20)

t10=[0 0 0 1 0 0 0 0 0 0 1]; t11=[1 1 1 0 1 1 1 1 1 1 0]; t12=[0 1 0 1 0 0 1 0 1 0 0]; t13=[1 1 1 0 1 0 0 1 0 1 1]; t14=[1 1 0 1 0 1 0 0 0 0 1]; t15=[1 0 1 0 1 0 1 1 1 1 1]; t16=[0 0 0 1 0 1 1 0 1 0 0]; t17=[1 0 1 0 1 1 0 1 0 1 0]; t18=[0 0 0 1 0 0 0 0 0 0 0]; t19=[1 1 1 0 1 0 1 1 1 1 1]; t20=[0 1 0 1 0 1 1 0 1 0 0];

t=[t1;t2;t3;t4;t5;t6;t7;t8;t9;t10;t11;t12;t13;t14;t15;t16;t17; t18;t19;t20;];

y=2*t-1;

w=xlsread('pelatihan.xlsx','bobot','A1:K60000'); nilai = palm*w;

[r k]=size(nilai); for i=1:r for j=1:k if nilai(i,j)<=0; nilai_y(i,j)=0; else nilai(i,j)>0; nilai_y(i,j)=1; end end end disp(nilai_y); hasil=''; hasil2=''; if nilai_y==t1;

hasil='Yayang Kurniati '; hasil2='101401057'; gb1=imread('fyayang.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t2; hasil='Reni Ramadhani'; hasil2='101401017'; gb1=imread('freni.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t3; hasil='Danny Rizky'; hasil2='101401037'; gb1=imread('fdanny.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t4; hasil='Angga Wiranda' hasil2='101401073'; gb1=imread('fangga.jpg');


(21)

axes(handles.axes2); imshow(gb1) elseif nilai_y==t5; hasil='Hayatun Nufus' hasil2='101401013'; gb1=imread('fhayatun.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t6

hasil='Intan PS Mat' hasil2='101401021'; gb1=imread('fintan.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t7; hasil='Janwandi Sinaga' hasil2='101401095'; gb1=imread('fjanwandi.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t8; hasil='Ahmad Rasyidi' hasil2='101401001'; gb1=imread('cantik.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t9; hasil='Agus Prabowo' hasil2='101401019'; gb1=imread('fagus.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t10; hasil='Umri Herdiansyah' hasil2='101401033'; gb1=imread('fumri.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t11; hasil='Nurhennida Sitepu'; hasil2='101401097'; gb1=imread('fnurhennida.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t12;

hasil='Rivai H Purba' hasil2='101401047'; gb1=imread('frivai.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t13; hasil='Singgih Trimukti' hasil2='101401075'; gb1=imread('fsinggih.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t14;

hasil='Teguh Arif F' hasil2='101401063';


(22)

axes(handles.axes2); imshow(gb1) elseif nilai_y==t15;

hasil='Tetti Sinaga ' hasil2='101401067'; gb1=imread('fteti.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t16; hasil='Fajrul Falah' hasil2='101401041'; gb1=imread('ffajrul.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t17;

hasil='Amalya Chairy ' hasil2='101401085'; gb1=imread('famalya.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t18; hasil='Vito Erpindo' hasil2='101401087'; gb1=imread('fvito.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t19;

hasil='Sunfirst Lady JeanFera Nababan' hasil2='101401083';

gb1=imread('fsunfirst.jpg'); axes(handles.axes2); imshow(gb1) elseif nilai_y==t20;

hasil='Johanes Prima saragih' hasil2='101401049'; gb1=imread('fjohanes.jpg'); axes(handles.axes2); imshow(gb1) else hasil='Tidak Dikenali'; hasil2='0'; gb1=imread('tidak.jpg'); axes(handles.axes2); imshow(gb1) end set(handles.edit1,'String',hasil); set(handles.edit2,'String',hasil2);

% --- Executes during object creation, after setting all properties.

function edit1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes on button press in reset.


(23)

guidata(hObject,handles); handles.reset=handles.axes2; set(handles.edit1,'string',''); set(handles.edit2,'string',''); handles.reset=handles.axes1; imshow(handles.reset); % ---

function Home_Callback(hObject, eventdata, handles) depan

delete(handles.figure1);

% ---

function Preprocessing_Callback(hObject, eventdata, handles) proses

delete(handles.figure1);

% ---

function Train_Callback(hObject, eventdata, handles) Train

delete(handles.figure1);

% ---

function Help_Callback(hObject, eventdata, handles) help

delete(handles.figure1);

% ---

function About_Callback(hObject, eventdata, handles) about

delete(handles.figure1);

% ---

function Exit_Callback(hObject, eventdata, handles) respon=keluar('Title','Konfirmasi Keluar'); switch lower(respon) case 'tidak' case 'ya' close end

% --- Executes during object creation, after setting all properties.

function edit2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes on button press in pushbutton4.


(24)

a = getimage(handles.axes1);

nilai=str2num(get(handles.edit3,'string')); b = imnoise(a,'gaussian',nilai*0.01);

axes(handles.axes1) imshow(b);

function edit3_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties.

function edit3_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end


(25)

CURRICULUM VITAE

Nama : LennoraMarbun

Alamat Sekarang  : Jl. Pintu Air IV Gg Inpres, Medan Alamat Orang Tua : Jl. Veteran No. 20 A, Doloksanggul Telp/ Hp ☎ : 0819-7305-3319

Email :

Pendidikan

1998 –2004 : SD Negeri173394 Doloksanggul 2004 – 2007 : SMP Negeri1Doloksanggul 2007 – 2010 : SMA Negeri1Doloksanggul

2010 – 2014 : Universitas Sumatera Utara (FasilkomTI –Ilmu Komputer) Keahlian

Database : MySQL

Bahasa : Indonesia, Inggris, Batak Toba.


(26)

Daftar Pustaka

[1] Ahmad, Usman. 2005. Pengolahan Citra Digital & Teknik Pemrogramannya. Graha Ilmu:

Yogyakarta.

[2] Arifin, Z. 2009. Jaringan syaraf tiruan Bidirectional Associative Memory (BAM)

sebagai

identifikasi pola sidik jari manusia. Jurnal Informatika Mulawarman 4(1): 21-26.

[3] Desiani, A & Arhami, M. 2006. Konsep Kecerdasan Buatan. Andi Offset: Yogyakarta. [4] Dulimarta, H. S. 1997. Diktat Kuliah Pengolahan Citra. Jurusan Teknik Informatika ITB.

[5] Ginting, E. D. 2012. Deteksi tepi menggunakan metode canny dengan Matlab untuk

membedakan uang asli dan uang Palsu. Skripsi. Universitas Gunadarma.

[6] Hastawan, A. F. 2013. Deteksi sudut menggunakan kode rantai untuk pengenalan

bangun

datar dua dimensi.Transmisi 15(1): 4.

[7] Haykin, S. 2009. Neural Network and Learning Machines. 3�ℎedition.Pearson

International

Edition: New Jersey.

[8] Hermawan, A. 2006. Jaringan Saraf Tiruan: Teori dan Aplikasinya. Andi: Yogyakarta. [9] Kurniadi, R. 2011. Pengembangan sistem identifikasi telapak tangan dengan

menggunakan

filter bank gabor. Skripsi. Institut Teknologi Sepuluh Nopember Surabaya.

[10] Kusumadewi, S. 2003. Artificial intelligence. Graha Ilmu: Yogyakarta. [11] Munir, R. 2004. Pengolahan Citra Digital.(online)

(25 September 2013).

[12] Pandjaitan, L. W. 2007. Dasar-dasar Komputasi Cerdas. Andi Offset: Yogyakarta.

[13] Putra, I. K. G. D. 2009. Sistem Biometrika Teori dan Aplikasi. Andi Offset: Yogyakarta, pp 121.

[14] Putra, I. K. G. D., Bhuana, W. & Erdiawan. 2011. Pembentukan Kode Telapak Tangan

(Palm Code) Berbasis Metode Gabor 2d. Makara Teknologi 15(2): 161 - 167.

[15] Putra, I. K. G. D. 2009. Sistem Verifikasi Biometrika Telapak Tangan Dengan Metode


(27)

[16] Sihotang, S. J. A. 2010. Implementasi jaringan saraf tiruan untuk pengenalan tanda

tangan. Skripsi. Universitas Sumatera Utara.

[17] Siregar, T. R. 2013. Implementasi jaringan syaraf metode bidirectional associative

memory untuk pengenalan wajah. Skripsi. Universitas Sumatera Utara.

[18] Soraya, F. 2009. Pengidentifikasian Sidik Telapak Kaki Bayi Menggunakan Jaringan


(28)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1Analisis Permasalahan

Pengenalan identitas seseorang masih banyak digunakan sistem tradisional, dimana mengenali dengan pin, password, kata sandi yang banyak menimbulkan permasalahan yaitu lupa dengan kata sandi, hilang, dicuri dan dibajak. Sehingga, solusi yang digunakan dengan menggunakan sistem biometrika. Dalam sistem biometrika, pola biometrik yang ada dalam tubuh manusia sendiri dapat digunakan untuk mengenali identitas seseorang dengan tingkat keamanan yang lebih baik dibandingkan dengan sistem tradisional.

Gambar 3.1 Diagram Ishikawa Analisis Permasalahan 3.2 Analisis Kebutuhan Sistem

Analisis kebutuhan sistem meliputi analisis kebutuhan fungsional dan analisis kebutuhan

non-fungsional sistem.

3.2.1 Analisis Kebutuhan Fungsional Sistem

Kebutuhan fungsional yang harus dimiliki oleh sistem Identifikasi telapak tangan manusia dengan Jaringan Syaraf Tiruan metode Bidirectional Associative Memory adalah:

1. Sistem dapat menerima inputan citra telapak tangan kanan dengan format JPEG. 2. Sistem dapat melakukan pemrosesan gambar sebelum dilatih.

3. Sistem dapat mengubah citra menjadi citra bipolar.

4. Sistem dapat mengenali identitas seseorang dengan citra telapak tangan kanan yang sudah dilatih .

5. Sistem dapat menyimpan pola dalam bentuk *.xls.

Pengidentifikasian seseorang kurang akurat People

Machine / tools

Methods

Materials kemampuan kurang

baik

Mengenali identitas Sistim tradisional

tidak ada tanda duplikasi

pin kartu kunci

password

Dapat diduplikasi


(29)

3.2.2 Analisis Kebutuhan Non-Fungsional Sistem

Kebutuhan non-fungsional yang harus dimiliki oleh sistem Identifikasi telapak tangan manusia dengan Jaringan Syaraf Tiruan metode Bidirectional Associative Memory adalah: 1. Tampilan antarmuka sistem yang menarik dan mudah dimengerti oleh pengguna

sistem.

2. Waktu pemrosesan dan pelatihan pola tangan yang lebih cepat. 3.3 Pemodelan Sistem

Pada penelitian ini digunakan UML(Unified Modelling Language) sebagai bahasa pemodelan untuk mendesain dan merancang sistem Implementasi Jaringan Syaraf Tiruan

Bidirectional Associative memory untuk pengidentifikasian telapak tangan manusia. Model

UML yang digunakan adalah use case diagram, activity diagram, dan sequence diagram. 3.3.1 Pemodelan dengan Menggunakan Use Case Diagram

Use Case adalah diagram yang menunjukkan fungsionalitas suatu sistem atau kelas dan

bagaimana sistem tersebut berinteraksi dengan dunia luar dan menjelaskan sistem secara fungsional yang terlihat user.

Dalam pemodelan ini terdapat aktor yaitu user dan programmer. Programmer dapat melakukan pelatihan dan pengujian jaringan syaraf tiruan dengan metode bidirectional

associative memory untuk mengidentifikasi pola telapak tangan, sedangkan user dapat


(30)

Sistem Implementasi Jaringan Syaraf Tiruan untuk pengidentifikasian telapak tangan manusia

Pelatihan BAM

Pengujian BAM

Programmer

Metode BAM

User

<< include >>

<< include >>

Gambar 3.2 Use Case Diagram Sistem Identifikasi Telapak Tangan 3.3.1.1 Use case Pelatihan Jaringan Syaraf Tiruan (JST)

Use case Pelatihan JST ini menjelaskan dokumentasi naratif dari pelatihan JST sistem yang akan dibangun seperti pada Tabel 3.1.

Tabel 3.1 Dokumentasi Naratif Use Case Pelatihan Jaringan Syaraf Tiruan Nama Use Case Pelatihan Jaringan Syaraf Tiruan

Aktor Programmer dan user

Deskripsi Use Case ini mendeskripsikan proses pelatihan Jaringan Syaraf Tiruan

Prakondisi Berada pada interface menu Train

Alur Dasar Kegiatan User Respon System

1. Tekan Button load 1. Menampilkan semua citra yang akan dilatih pada axes yang tersedia di interface 2. Tekan button Train 2. Melakukan proses Pelatihan

JST pada citra yang disimpan dimana, sebelumnya citra sudah diproses yaitu

mengubah ukuran citra pada tiap axes sebesar 200 x 300

pixel, diubah Grayscale,

diproses dengan Sharpening dan mendeteksi tepi citra dengan metode Canny


(31)

Alur Alternatif Tidak ada

Post-Kondisi Sistem telah menyimpan bobot hasil proses pelatihan Jaringan Syaraf Tiruan

3.3.1.2 Use case Pengujian Jaringan Syaraf Tiruan (JST)

Use case pengujian JST ini menjelaskan dokumentasi naratif dari pengujian JST

sistem yang akan dibangun seperti pada Tabel 3.2.

Tabel 3.2 Dokumentasi Naratif Use Case Pengujian Jaringan Syaraf Tiruan Nama UseCase Pengujian Jaringan Syaraf Tiruan

Aktor Programmer dan user

Deskripsi Use Case ini mendeskripsikan proses pengujian Jaringan Syaraf Tiruan

Prakondisi Berada pada interface menu Test

Alur Dasar Kegiatan User Respon System

1. Tekan tombol Buka File Gambar

1. Menampilkan antarmuka pemilihan citra telapak tangan yang akan dikenali

2. Pilih citra yang akan dikenali 2. Menampilkan citra telapak tangan yang akan dikenali pada axes 3. Tekan tombol Test 3. Proses Identifikasi Pengenalan

pola telapak tangan dan informasi pemilik pola telapak tangan

Alur Alternatif 1. Tekan tombol Reset 1. Sistem membersihkan axes dan

static text pada antarmuka Test

Post-Kondisi Sistem menampilkan hasil proses identifikasi telapak tangan, nama, dan nim si pemilik citra telapak tangan

3.3.2 Pemodelan dengan Menggunakan Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang

dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi dan bagaimana mereka berakhir.


(32)

Pelatihan

B A M

=latih !=latih

Pengujian

Simpan bobot hasil pelatihan

Browse Citra

Pilih Citra

Tekan tombol kenali

Informasi hasil identifikasi Load citra yang akan dilatih

Tekan tombol Latih

Gambar 3.3 Activity Diagram Proses Pelatihan dan Pengenalan JST BAM

3.3.3 Pemodelan dengan Menggunakan Sequence Diagram

Sequence Diagram (diagram urutan) adalah suatu diagram yang memperlihatkan atau

menampilkan interaksi-interaksi antar objek di dalam sistem yang disusun pada sebuah urutan atau rangkaian waktu. Interaksi antar objek tersebut termasuk pengguna, display, dan sebagainya berupa pesan/message.


(33)

3.3.3.1Sequence Diagram proses pelatihan Jaringan Syaraf Tiruan

Pada sistem, akan dilakukan proses pelatihan, dimana terjadi interaksi pada objek kontrol pelatihan citra. Citra telapak tangan akan dijadikan pola dan diproses sebelum dilatih. Ukuran citra telapak tangan yang merupakan jenis citra RGB akan diubah menjadi ukuran 200 x 300 pixel, diproses menjadi citra grayscale dan di-sharpening filter.

Selanjutnya dilakukan deteksi tepi dengan metode Canny untuk mendapatkan tepi citra sekaligus mengubahnya ke dalam bentuk citra biner. Citra biner kemudian akan diubah kedalam citra bipolar untuk mendapatkan elemen matriks citra bernilai 1 dan -1. Kemudian, pola akan dilatih dengan metode BAM untuk mendapatkan bobot dari pola yang sudah dilatih sebelumnya seperti pada gambar 3.4.

Kontrol Pelatihan

Resize

Imread(citra telapak tangan)

Grayscale Sharpen Filtering Deteksi Tepi Canny BAM

Resize(citra telapak)

Grayscale(Matriks)

Imfilter(Matriks)

Edge Detection(Matriks)

Pelatihan

Simpan(bobot)


(34)

3.3.3.2Diagram sequence proses Pengujian Jaringan Syaraf Tiruan

Pada sistem, akan dilakukan proses pengujian terhadap citra telapak tangan yang sudah dilatih dan citra telapak tangan baru yang belum dilatih seperti pada sequence

diagram pada gambar 3.5.

Kontrol Pengujian Metode BAM

Imread (citra telapak tangan)

pengujian

Set String (data identitas pemilik Telapak tangan)


(35)

3.4 Flowchart Gambaran umum Sistem

Flowchart merupakan gambaran- gambaran umum aliran sistem. Gambaran umum

sistem ini dapat dilihat pada flowchart gambar 3.12 .


(36)

Pengenalan pola telapak tangan diawali dengan memanggil citra pola telapak tangan kanan yang akan dilatih dengan menggunakan metode bidirectional associative memory yang merupakan citra RGB sebanyak 20 sampel citra. Citra RGB yang dipanggil akan diubah ukurannya. Agar setiap citra memiliki ukuran yang sama yaitu 200 x 300. Kemudian citra yang sudah di-resize yang masih merupakan citra RGB di ubah menjadi citra Grayscale dan untuk memperkuat garis tepi dari citra telapak tangan maka akan dilakukan sharpening filter agar informasi dari garis telapak tangan semakin jelas dan kemudian citra akan dideteksi tepinya dengan menggunakan deteksi tepi canny. Pendeteksian tepi ini dilakukan untuk mendapatkan garis-garis utama dari citra telapak tangan dan mengubah citra menjadi citra biner. Pola citra biner diubah menjadi citra bipolar. Selanjutnya, pola-pola akan dilakukan pelatihan dengan menggunakan metode BAM. Dengan melakukan proses encoding, bobot dari pola akan dihitung dan disimpan. Selanjutnya, pada proses pengujian citra akan yang diuji dipanggil kemudian diuji apakah mengenali atau tidak. Jika dikenali maka akan dihasilkan output identitas pemilik citra telapak tangan, jika tidak dikenali maka akan didapat informasi bahwasanya pemilik citra tidak dikenali.

3.5 Perancangan Arsitektur Jaringan

Pada penelitian ini, menggunakan arsitektur jaringan Bidirectional Associative

Memory yang memiliki dua lapisan yaitu lapisan input yang terdiri dari 20 neuron dan

lapisan output yang terdiri dari 20 neuron. Tiap neuron pada lapisan input merupakan pola citra telapak tangan kanan yang sudah di-prepocessing. Tiap neuron pada lapisan output ditentukan terdiri 11 bit seperti berikut:

Vector output target 1 = 1 -1 1 -1 1 -1 -1 1 -1 1 1 Vector output target 2 = -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 Vector output target 3 = 1 1 1 -1 1 1 1 1 1 1 1 Vector output target 4 = -1 1 -1 1 -1 -1 1 -1 1 -1 1 Vector output target 5 = -1 1 1 -1 1 -1 -1 1 -1 1 -1 Vector output target 6 = -1 1 -1 1 -1 1 -1 -1 -1 -1 -1 Vector output target 7 = 1 -1 1 -1 1 1 1 1 1 1 1 Vector output target 8 = -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 Vector output target 9 = 1 -1 1 -1 1 1 -1 1 -1 1 1 Vector output target 10 = -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 Vector output target 11 = 1 1 1 -1 1 1 1 1 1 1 -1 Vector output target 12 = -1 1 -1 1 -1 -1 1 -1 1 -1 -1


(37)

Vector output target 13 = 1 1 1 -1 1 -1 -1 1 -1 1 1 Vector output target 14 = 1 1 -1 1 -1 1 -1 -1 -1 -1 1 Vector output target 15 = 1 -1 1 -1 1 -1 1 1 1 1 1 Vector output target 16 = -1 -1 -1 1 -1 1 1 -1 1 -1 -1 Vector output target 17 = 1 -1 1 -1 1 1 -1 1 -1 1 -1 Vector output target 18 = -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 Vector output target 19 = 1 1 1 -1 1 -1 1 1 1 1 1 Vector output target 20 = -1 1 -1 1 -1 1 1 -1 1 -1 -1

Sehingga dapat digambarkan bahwasanya arsitektur jaringan dari sistim ini seperti pada gambar 3.13

Gambar 3.7 Arsitektur Jaringan Syaraf tiruan Metode BAM untuk pengenalan pola telapak tangan

3.6 Perancangan Antarmuka Sistem

Sistem yang akan dibangun menggunakan bahasa pemrograman Matlab R2007b untuk memberi kemudahan kepada user menggunakan sistem. Dalam rancangan antar muka sistem ini ada 6 menu yaitu menu home, train, test, help, about dan exit.

y1 y2 y3 y4 y20

x1 x2 x3 x4 x20

Lapisan output

Lapisan input …………


(38)

3.6.1 Antarmuka Form Home

Form home merupakan form tampilan awal dan sebagai cover pada saat aplikasi ini

dijalankan. Form home antarmuka dari aplikasi ini seperti pada gambar 3.6.

Gambar 3.8 Tampilan Rancangan Antarmuka Form Home Keterangan:

1. Menu Train

Menu untuk menghubungkan form home dengan form train 2. Menu Test

Menu untuk menghubungkan form home dengan form test 3. Menu Help

Menu untuk menghubungkan form home dengan form help 4. Menu About

Menu untuk menghubungkan form home dengan form about 5. Menu Exit

Menu untuk menghubungkan form home dengan form exit 3.6.2 Antarmuka Form Train


(39)

Form Train merupakan form tampilan untuk memproses citra yang akan dilatih, melatih

pola citra yang sudah diolah dan menyimpan bobot. Form Train antarmuka dari aplikasi ini seperti pada gambar 3.7.

Gambar 3.9 Tampilan Rancangan Antarmuka Form Train Keterangan:

1. Menu Home

Menu untuk menghubungkan form Train dengan form home 2. Menu Test

Menu untuk menghubungkan form Train dengan form test 3. Menu Help

Menu untuk menghubungkan form Train dengan form help 4. Menu About

Menu untuk menghubungkan form Train dengan form about 5. Menu Exit

Menu untuk menghubungkan form Train dengan form exit 6. Axes1 sampai axes 20

1 2 3 4 5

6

7


(40)

Tempat untuk menampilkan citra telapak tangan yang akan proses 7. Button Load

Untuk memanggil citra yang tersimpan dalam folder yang disimpan 8. Button Reshape

Untuk mengubah ukuran citra menjadi 200 x300 pixel pada axes 1sampai axes 20 9. Button Grayscale

Untuk mengubah citra RGB menjadi citra grayscale pada axes 1 sampai axes 20 10. Button Sharpening

Untuk melakukan sharpening filter pada citra grayscale dalam axes 1 sampai dengan

axes 20

11. Button Deteksi Tepi Canny

Untuk mendeteksi tepi citra yang sudah di-sharpening filter dengan metode Canny pada

axes 1 sampai dengan axes 20

12. Button Train

Untuk melatih citra yang sudah diolah dan menyimpan matriks bobot citra dalam format *.xls.


(41)

3.6.3 Antarmuka Form Test

Form Test merupakan form tampilan untuk melakukan pengujian sistem atau

pengenalan pola yang sudah dilatih sebelumnya. Form Test antarmuka dari aplikasi ini seperti pada gambar 3.9.

Gambar 3.10 Tampilan Rancangan Antarmuka Form Test Keterangan:

1. Menu Home

Menu untuk menghubungkan form test dengan form home 2. Menu Train

Menu untuk menghubungkan form test dengan form train 3. Menu Help

Menu untuk menghubungkan form test dengan form help 4. Menu About

Menu untuk menghubungkan form test dengan form about 5. Menu Exit

Menu untuk menghubungkan form test dengan form exit 6. Axes 1

Tempat untuk menampilkan citra telapak tangan yang akan diuji 7. Button Buka File Citra

Untuk membuka citra yang akan diuji 1 2 3 4 5

6

7

8

9

10

11


(42)

8. Button Test

Untuk melakukan pengenalan atau pengujian dengan metode BAM pada citra di axes1. 9. Axes 2

Tempat untuk menampilkan citra pemilik pola telapak tangan yang diuji. 10. Edit text1

Menampilkan informasi nama pemilik pola telapak tangan yang diuji dengan menggunakan metode BAM

11. Edit text2

Menampilkan informasi nim pemilik pola telapak tangan yang diuji dengan menggunakan metode BAM

12. Button Reset


(43)

3.6.4 Antarmuka Form Help

Form Help merupakan form tampilan untuk menjelaskan cara penggunaan aplikasi.

Form Help antarmuka dari aplikasi ini seperti pada gambar 3.9.

Gambar 3.11 Tampilan Rancangan Antarmuka Form Help Keterangan:

1. Menu Home

Menu untuk menghubungkan form Help dengan form home 2. Menu Train

Menu untuk menghubungkan form Help dengan form Train 3. Menu Test

Menu untuk menghubungkan form Help dengan form Test 4. Menu About

Menu untuk menghubungkan form Help dengan form About 5. Menu Exit

Menu untuk menghubungkan form Help dengan form exit 6. Static text

Sebagai tempat teks cara penggunaan aplikasi. 1 2 3 4 5


(44)

3.6.5 Antarmuka Form About

Form About merupakan form tampilan untuk melatih pola yang sudah diproses

sebelumnya. Form About antarmuka dari aplikasi ini seperti pada gambar 3.10

Gambar 3.12 Tampilan Rancangan Antarmuka Form About Keterangan:

1. Menu Home

Menu untuk menghubungkan form About dengan form Home 2. Menu Train

Menu untuk menghubungkan form About dengan form Train

3. Menu Test

Menu untuk menghubungkan form About dengan form Test 4. Menu Help

Menu untuk menghubungkan form About dengan form Help 5. Menu Exit

Menu untuk menghubungkan form About dengan form Exit 6. Axes 1

Tempat untuk menampilkan gambar programmer

7. Static text

Sebagai tempat teks profil pembuat aplikasi (nama, nim, alamat). 1 2 3 4 6

7


(45)

3.6.6 Antarmuka Form Exit

Form Exit merupakan form tampilan untuk meminta konfirmasi user apakah akan

menutup aplikasi atau tidak. Form Exit antarmuka dari aplikasi ini seperti pada gambar 3.11.

Gambar 3.13 Tampilan Rancangan Antarmuka Form Exit Keterangan:

1. Button “ya”

Memberi konfirmasi user kepada sistem untuk menutup aplikasi. 2. Button “tidak”

Memberi konfirmasi user kepada sistem untuk tidak menutup aplikasi.


(46)

BAB IV

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi Sistem

Implementasi sistem pengenalan identitas dengan pola telapak tangan menggunakan

Bidirectional Associative Memory (BAM) ini menggunakan bahasa pemrograman Matlab

R2007b. Penerapan sistem ini dilakukan dengan dengan perangkat keras yang memilki spesifikasi notebook dengan prosessor intel(R) Atom(TM), CPU N570, 1,67 GHz dan RAM 1GB.

4.1.1 Tampilan Antarmuka Sistem

Sistem pengidentifikasian telapak tangan manusia diimplementasikan dalam beberapa tampilan antarmuka untuk memberi kemudahan memahami proses identifikasi dengan 6 antarmuka yaitu antarmuka home, train, test, help, about, dan exit.

4.1.1.1Antarmuka Home

Antarmuka Home merupakan antarmuka yang ditampilkan pertama kali ketika aplikasi dijalankan. Dalam antarmuka home terdapat menu-menu yang dapat menghubungkan menu


(47)

Tampilan antarmuka home ditunjukkan pada Gambar 4.1.

Gambar 4.1 Tampilan Antarmuka Home

4.1.1.2Antarmuka Train

Antarmuka Train merupakan antarmuka dimana tempat pola-pola citra telapak tangan yang akan dilatih ditampilkan yaitu terdiri dari 20 sampel citra. Button Load diklik untuk menampilkan semua pola citra telapak tangan kanan yang akan diolah terlebih dahulu sebelum dilatih. Pada antarmuka train juga terdapat menu lain untuk dapat menghubungkan antarmuka train dengan antarmuka lain seperti menu home, menu test, menu help, menu


(48)

Gambar 4.2 Tampilan antarmuka Train

Tampilan antarmuka train pada saat button Load diklik ditunjukkan pada Gambar 4.3

Gambar 4.3 Tampilan antarmuka Train setelah button Load diklik

Pada antarmuka Train terdapat panel preprocessing yang berisi 4 button yaitu button


(49)

tersebut merupakan proses pre-processing untuk mengolah pola citra telapak tangan sebelum diolah. Keempat button digunakan secara berurutan dimulai dari button Reshape kemudian ke button Grayscale selanjutnya ke button Sharpening dan akhirnya ke button Deteksi Tepi Canny. Button Reshape berfungsi untuk mengubah ukuran seluruh pola citra telapak tangan pada 20 axes menjadi 200 x 300 piksel. Tampilan antarmuka setelah button

Reshape di klik ditunjukkan pada gambar 4.4.

Gambar 4.4 Tampilan antarmuka train setelah button Reshape diklik

Button Grayscale berfungsi untuk mengubah seluruh pola citra telapak tangan RGB pada 20 axes yang sudah di-Reshape menjadi grayscale. Tampilan antarmuka setelah button Graycale di klik ditunjukkan pada gambar 4.5.


(50)

Gambar 4.5 Tampilan antarmuka setelah button Graycale diklik

Selanjutnya, pola citra telapak tangan yang sudah di grayscale akan di sharpening dengang

button Shapening sebanyak 3 kali untuk menajamkan garis tepi pada pola citra telapak

tangan. Tampilan antarmuka train pada saat di-sharpening pertama kali ditunjukkan pada Gambar 4.6.


(51)

Tampilan antarmuka train pada saat di-sharpening kedua kali ditunjukkan pada Gambar 4.7.

Gambar 4.7 Tampilan antarmuka train pada saat di-sharpening kedua kali

Tampilan antarmuka train pada saat di-sharpening ketiga kali ditunjukkan pada Gambar 4.8.

Gambar 4.8 Tampilan antarmuka train pada saat di-sharpening ketiga kali

Pola citra telapak tangan yang sudah di-sharpening selanjutnya akan diproses dengan mengklik deteksi tepi Canny seperti yang ditunjukkan pada Gambar 4.9.


(52)

Gambar 4.9 Tampilan antarmuka train pada saat di deteksi tepi Canny

Pola yang sudah siap diolah akan di latih dengan mengklik button train, maka pola citra telapak tangan kanan akan diolah dan akan menghasilkan bobot yang disimpan dalam pelatihan.xls. Setelah siap disimpan bobot disimpan, maka diberi informasi seperti tampilan antarmuka Gambar 4.10.

Gambar 4.10 Tampilan Antarmuka setelah selesai dilatih

4.1.1.3Antarmuka Test

Antarmuka test merupakan tampilan antarmuka untuk melakukan pengujian terhadap pola citra telapak tangan yang sudah dilatih sebelumnya dan pola citra telapak tangan kanan yang baru. Dalam tampilan antarmuka test terdapat juga menu-menu yang dapat menghubungkan antarmuka test dengan tampilan antarmuka yang lain seperti menu home, train, help, about, dan exit. Tampilan antarmuka test ditunjukkan pada Gambar 4.11.


(53)

Gambar 4.11 Tampilan antarmuka Test

Untuk melakukan pengujian terhadap pola citra telapak tangan kanan, klik button Buka File Gambar, maka akan muncul tampilan buka file gambar seperti ditunjukkan pada Gambar 4.12.


(54)

Gambar 4.12 Tampilan Buka File Gambar

Setelah gambar dipilih maka citra pola telapak tangan kanan akan ditampilkan pada axes 1 seperti pada Gambar 4.13.

Gambar 4.13 Tampilan Antarmuka Test Pola yang Akan Diuji Ditampilkan Untuk menguji pola citra, klik button test, maka akan dilatih dan hasilnya akan ditampilkan. Jika pola citra telapak tangan kanan dikenali, maka akan ditampilkan gambar pemilik telapak tangan pada axes 2 dan informasi nama serta nim pemilik telapak tangan seperti yang ditunjukkan pada gambar 4.14.


(55)

(56)

Jika dalam pengujian tidak dikenali, maka akan diberi informasi bahwasanya pola citra telapak tangan kanan tidak dikenali seperti yang ditunjukkan pada gambar 4.15.


(57)

Jika dalam pengujian salah mengenali, maka akan diberi informasi bahwasanya pola citra telapak tangan kanan dengan data yang tidak sesuai dengan pemilik telapak tangan sebenarnya seperti yang ditunjukkan pada gambar 4.16

. Gambar 4.16 Tampilan Antarmuka Test Hasil Uji Salah Mengenali

4.1.1.4Antarmuka Help

Antarmuka help merupakan tampilan antarmuka memuat teks informasi bagaimana menggunakan aplikasi. Dalam antarmuka help juga terdapat menu-menu lain yang dapat menghubungkan antarmuka help dengan antarmuka lain seperti antarmuka

home, train, test, about, dan exit. Tampilan antarmuka help ditunjukkan pada Gambar


(58)

Gambar 4.17 Gambar Antarmuka Help

4.1.1.5Antarmuka About

Antarmuka About merupakan tampilan antarmuka yang memuat teks dan gambar tentang informasi pembuat aplikasi. Dalam antarmuka about juga terdapat menu-menu lain yang dapat menghubungkan antarmuka about dengan antarmuka lain seperti antarmuka home, train, test, help, dan exit. Tampilan antarmuka about ditunjukkan pada Gambar 4.18.


(59)

Gambar 4.18 Tampilan Antarmuka About

4.1.1.6Antarmuka Exit

Antarmuka Exit merupakan tampilan antarmuka untuk konfirmasi keluar dari aplikasi atau tidak. Jika ingin keluar dari aplikasi, maka klik button “ya”, jika tidak klik button “tidak”. Tampilan antarmuka exit ditunjukkan pada Gambar 4.17.

Gambar 4.18 Tampilan Antarmuka Exit

4.2 Pengujian Sistem

Pengujian dilakukan untuk membuktikan bahwa jaringan syaraf tiruan dengan metode

Bidirectional Associative Memory dapat digunakan untuk pengenalan pola telapak

tangan. Pengujian dibatasi pada pola citra telapak tangan kanan yang sudah tersedia pada sistem. Pada penelitian ini ada 2 pengujian yang dilakukan. Pertama pengujian


(60)

terhadap pola telapak tangan kanan yang sudah dilatih dan kedua pengujian terhadap pola telapak tangan kanan yang baru yang belum dilatih.

4.2.1 Pengujian terhadap Citra Telapak Tangan Kanan yang Sudah Dilatih

Pada pengujian ini, data masukan yang digunakan adalah citra telapak tangan kanan yang sudah dilatih sebelumnya, dimana terdiri dari 20 citra telapak tangan dengan format .jpg atau .jpeg berukuran 200 x 300 piksel. Setiap citra diambil dengan posisi telapak tangan terbuka dan melintang. Target dari pola telapak tangan tersebut yaitu,

y1 = (1 -1 1 1 -1 -1 -1 1 1 -1 1),

y2 = ( -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1)

y3 = ( 1 1 1 -1 1 1 1 1 1 1 1)

y4 = ( -1 1 -1 1 -1 -1 1 -1 1 -1 1)

y5 = ( -1 1 1 -1 1 -1 -1 1 -1 1 -1)

y6 = ( -1 1 -1 1 -1 1 -1 -1 -1 -1 -1)

y7 = ( 1 -1 1 -1 1 1 1 1 1 1 1)

y8 = ( -1 -1 -1 1 -1 -1 1 -1 1 -1 -1)

y9 = ( 1 -1 1 -1 1 1 -1 1 -1 1 1)

y10= ( -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1)

y11= ( 1 1 1 -1 1 1 1 1 1 1 -1)

y12= ( -1 1 -1 1 -1 -1 1 -1 1 -1 -1)

y13= ( 1 1 1 -1 1 -1 -1 1 -1 1 1)

y14= ( 1 1 -1 1 -1 1 -1 -1 -1 -1 1)

y15= ( 1 -1 1 -1 1 -1 1 1 1 1 1)

y16= ( -1 -1 -1 1 -1 1 1 -1 1 -1 -1)

y17= ( 1 -1 1 -1 1 1 -1 1 -1 1 -1)

y18= ( -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1)

y19= ( 1 1 1 -1 1 -1 1 1 1 1 1)

y20= ( -1 1 -1 1 -1 1 1 -1 1 -1 -1)

Hasil pengujian sistem ditunjukkan pada tabel 4.1. Setiap baris dalam tabel menunjukkan nomor urut pengujian, citra telapak tangan kanan yang diuji, nama pemilik citra telapak tangan, target terhadap telapak tangan yang dilatih dan hasil pengenalan.


(61)

Tabel 4.1 Pengujian citra telapak tangan kanan yang sudah dilatih

No Pola telapak tangan

Nama pemilik Telapak Tangan

Target Hasil

Pengenalan

1 Yayang ��=(1 -1 1 1 -1 -1 -1 1 1

-1 1)

Yayang

2 Reni �=( 1 1 1 1 1 1

-1 --1 --1 --1 --1)

Reni

3 Danny �=( 1 1 1 -1 1 1 1 1

1 1 1)

Danny

4 Angga �=( -1 1 -1 1 -1 -1 1

-1 1 -1 1)

Angga

5 Hayatun �=( -1 1 1 -1 1 -1 -1

1 -1 1 -1)

Hayatun

6 Intan �=( -1 1 -1 1 -1 1 -1

-1 -1 -1 -1)

Intan

7 Janwandi �=( 1 -1 1 -1 1 1 1 1

1 1 1)

Janwandi

8 Rasyid �=( -1 -1 -1 1 -1 -1

1 -1 1 -1 -1)


(62)

9 Agus �=( 1 -1 1 -1 1 1 -1 1 -1 1 1)

Agus

10 Umri ���=( -1 -1 -1 1 -1 -1

-1 -1 -1 -1 1)

Umri

11 Nurhennida ���=( 1 1 1 -1 1 1 1

1 1 1 -1)

Nurhennida

12 Rivai ���=( -1 1 -1 1 -1 -1

1 -1 1 -1 -1)

Rivai

13 Singgih ���=( 1 1 1 -1 1 -1 -1

1 -1 1 1)

Singgih

14 Teguh ���=( 1 1 -1 1 -1 1 -1

-1 -1 -1 1)

Teguh

15 Teti ���=( 1 -1 1 -1 1 -1 1

1 1 1 1)

Teti

16 Fajrul ���=( -1 -1 -1 1 -1 1

1 -1 1 -1 -1)

Fajrul

17 Amalya ���=( 1 -1 1 -1 1 1 -1

1 -1 1 -1)


(63)

18 Vito ���=( -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1)

Vito

19 Sunfirst ���=( 1 1 1 -1 1 -1 1

1 1 1 1)

Sunfirst

20 Johanes ���=( -1 1 -1 1 -1 1 1

-1 1 -1 -1)

Johanes

Dari pengujian yang dilakukan terhadap 20 citra pola telapak tangan kanan yang sudah dilatih, telapak tangan yang dikenali sesuai dengan target adalah 20 telapak tangan. Dari hasil tersebut menunjukkan bahwasanya keakuratan metode Bidirectional Associative

Memory dalam mengenali pola telapak tangan yang sudah dilatih sebesar 100%.

4.2.2 Pengujian terhadap Citra Telapak Tangan Kanan yang Belum Dilatih

Pengujian terhadap pola citra baru telapak tangan kanan yang belum dilatih dilakukan untuk membuktikan berapa besar tingkat keakuratan dan layak pakai dari aplikasi yang menggunakan metode Bidirectional Associative Memory untuk digunakan. Citra baru merupakan citra yang diambil kembali dari 20 objek yang sudah dilatih, dimana tiap objek terdiri dari 2 citra sehingga jumlah citranya adalah 40 citra. Dimana citra baru ini, akan diolah citranya seperti citra yang sudah dilatih, kemudian untuk melakukan pengujian, citra yang sudah diolah akan diubah ke bipolar dan dikalikan dengan bobot pola citra telapak tangan kanan yang sudah dilatih. Hasil pengujiannya ditunjukkan pada Tabel 4.2.


(64)

Tabel 4.2 Pengujian citra baru telapak tangan kanan yang belum dilatih

No Pola telapak tangan

Nama pemilik Telapak Tangan

Target Hasil

Pengenalan

1 Yayang1 ��=(1 -1 1 1 -1 -1 -1 1 1

-1 1)

Yayang

2 Yayang2 ��=(1 -1 1 1 -1 -1 -1 1 1

-1 1)

Tidak dikenali

3 Reni1 �=( 1 1 1 1 1 1

-1 --1 --1 --1 --1)

Reni

4 Reni2 �=( 1 1 1 1 1 1

-1 --1 --1 --1 --1)

Reni

5 Danny1 �=( 1 1 1 -1 1 1 1 1

1 1 1)

Danny

6 Danny2 �=( 1 1 1 -1 1 1 1 1

1 1 1)

Tidak dikenali

7 Angga1 �=( -1 1 -1 1 -1 -1 1

-1 1 -1 1)

Angga

8 Angga2 �=( -1 1 -1 1 -1 -1 1

-1 1 -1 1)


(65)

9 Hayatun1 �=( -1 1 1 -1 1 -1 -1 1 -1 1 -1)

Hayatun

10 Hayatun2 �=( -1 1 1 -1 1 -1 -1

1 -1 1 -1)

Hayatun

11 Intan1 �=( -1 1 -1 1 -1 1 -1

-1 -1 -1 -1)

Intan

12 Intan2 �=( -1 1 -1 1 -1 1 -1

-1 -1 -1 -1)

Tidak dikenali

13 Janwandi1 �=( 1 -1 1 -1 1 1 1 1

1 1 1)

Janwandi

14 Janwandi2 �=( 1 -1 1 -1 1 1 1 1

1 1 1)

Vito

15 Rasyid1 �=( -1 -1 -1 1 -1 -1

1 -1 1 -1 -1)

Rasyid

16 Rasyid2 �=( -1 -1 -1 1 -1 -1

1 -1 1 -1 -1)

Rasyid

17 Agus1 �=( 1 -1 1 -1 1 1 -1

1 -1 1 1)


(66)

18 Agus2 �=( 1 -1 1 -1 1 1 -1 1 -1 1 1)

Vito

19 Umri1 ���=( -1 -1 -1 1 -1 -1

-1 -1 -1 -1 1)

Vito

20 Umri2 ���=( -1 -1 -1 1 -1 -1

-1 -1 -1 -1 1)

Vito

21 Nurhennida1 ���=( 1 1 1 -1 1 1 1

1 1 1 -1)

Nurhennida

22 Nurhennida2 ���=( 1 1 1 -1 1 1 1

1 1 1 -1)

Tidak dikenali

23 Rivai1 ���=( -1 1 -1 1 -1 -1

1 -1 1 -1 -1)

Vito

24 Rivai2 ���=( -1 1 -1 1 -1 -1

1 -1 1 -1 -1)

Tidak dikenali

25 Singgih1 ���=( 1 1 1 -1 1 -1 -1

1 -1 1 1)

Tidak dikenali

26 Singgih2 ���=( 1 1 1 -1 1 -1 -1

1 -1 1 1)


(67)

27 Teguh1 ���=( 1 1 -1 1 -1 1 -1 -1 -1 -1 1)

Teguh

28 Teguh2 ���=( 1 1 -1 1 -1 1 -1

-1 -1 -1 1)

Rasyid

29 Teti1 ���=( 1 -1 1 -1 1 -1 1

1 1 1 1)

Vito

30 Teti2 ���=( 1 -1 1 -1 1 -1 1

1 1 1 1)

Vito

31 Fajrul1 ���=( -1 -1 -1 1 -1 1

1 -1 1 -1 -1)

Fajrul

32 Fajrul2 ���=( -1 -1 -1 1 -1 1

1 -1 1 -1 -1)

Vito

33 Amalya1 ���=( 1 -1 1 -1 1 1 -1

1 -1 1 -1)

Tidak dikenali

34 Amalya2 ���=( 1 -1 1 -1 1 1 -1

1 -1 1 -1)

Amalya

35 Vito1 ���=( -1 -1 -1 1 -1 -1

-1 -1 -1 -1 -1)


(68)

36 Vito2 ���=( -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1)

Vito

37 Sunfirst1 ���=( 1 1 1 -1 1 -1 1

1 1 1 1)

Tidak dikenali

38 Sunfirst2 ���=( 1 1 1 -1 1 -1 1

1 1 1 1)

Tidak dikenali

39 Johanes1 ���=( -1 1 -1 1 -1 1 1

-1 1 -1 -1)

Tidak dikenali

40 Johanes2 ���=( -1 1 -1 1 -1 1 1

-1 1 -1 -1)

Johanes

Hasil pengujian seperti Tabel 4.2 dilakukan terhadap 40 citra telapak tangan kanan yang diambil kembali citranya dengan menggunakan scanner dari printer dokumen. Citra telapak tangan yang baru ini tidak dilatih. Hasil pengenalannya adalah 21 pola dikenali, 10 pola tidak dikenali, dan 9 pola salah mengenali. Berdasarkan hasil tersebut, kemampuan metode bidirectional associative memory dalam mengenali pola citra telapak tangan kanan yang belum dilatih adalah sebesar 52,5 %.

Hasil pengujian yang dilakukan terhadap pola telapak tangan dengan menggunakan metode bidirectional associative memory dipengaruhi oleh tingkat keakurasian ciri dari citra pola telapak tangan. Ciri telapak tangan seperti dijelaskan dalam Bab 2 yaitu ciri geometri, minusi, garis utama, dan garis-garis kusut. Dalam penelitian ini, ciri yang digunakan adalah ciri geometri dan garis utama sehingga menyebabkan tingkat pengenalan dengan metode bidirectional associative memory tergolong sulit untuk


(69)

diidentifikasi dikarenakan ciri geometri dan garis-garis utama telapak tangan mempunyai gambaran yang relatif mirip antara pola telapak tangan yang satu dengan yang lain.

Disamping itu, tingkat pengenalan dengan metode bidirectional associative memory ini juga dipengaruhi oleh alat pengambilan citra pola. Dalam penelitian ini alat pengambilan citra masih sangat sederhana yaitu dengan menggunakan scanner dari printer dokumen sehingga menyebabkan resolusi citra yang rendah mempengaruhi tingkat keakurasian ciri pola telapak tangan.


(70)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil analisis, implementasi dan pengujian pada bab sebelumnya, maka diperoleh kesimpulan sebagai berikut:

1. Hasil pengenalan pola telapak tangan kanan dengan menggunakan ciri geometri dan garis-garis utama telapak tangan sebagai data uji yang sudah dilatih dalam metode

Bidirectional Associative Memory adalah sebesar 100 % dan pengenalan terhadap

pola yang belum dilatih adalah sebesar 52,5%. 2. Citra telapak tangan yang di-scan harus bersih.


(71)

5.2 Saran

Berikut ini adalah saran-saran untuk pengembangan dan perbaikan penelitian ini :

1. Untuk penelitian selanjutnya, sistem dapat dikembangkan dengan banyak pola telapak tangan.

2. Untuk penelitian selanjutnya, sistem ini dapat dikembangkan dengan program yang lebih dinamis agar memungkinkan untuk input data baru.

3. Untuk penelitian selanjutnya, sistem ini dapat dikembangkan dengan menggunakan ciri minusi dan garis-garis kusut telapak tangan sebagai pola citra yang akan diuji. 4. Untuk penelitian selanjutnya, sistem ini dapat dikembangkan dengan menggunakan

alat pengambilan citra dengan resolusi yang tinggi misalnya dengan menggunakan kamera digital atau scanner yang beresolusi lebih besar dari 5 MP dan menangkap citra telapak tangan tanpa perlu dipotong secara manual.

5. Perlu dilakukan penelitian untuk pengenalan pola telapak tangan dengan metode lain selain metode BAM , misalnya dengan metode linear discriminant analysis, metode JST self organizing map (SOM), algoritma genetika kemudian dibandingakan agar didapat metode terbaik dalam pengenalan pola telapak tangan.


(72)

BAB II

TINJAUAN PUSTAKA

2.1 Pola Telapak Tangan

Kode telapak tangan (palm code) adalah kode unik yang diperoleh melalui ekstraksi fitur telapak tangan seseorang. Kode ini dapat digunakan untuk mewakili pemilik telapak tangan bersangkutan dan dapat digunakan sebagai identitas pembeda dengan orang lain. Kode telapak tangan mirip dengan kode sidik jari (finger code) atau kode iris (iris code)[14].

Sistem biometrika menggunakan karakteristik fisiologi atau perilaku untuk melakukan otentifikasi secara otomatis terhadap identitas seseorang dengan membandingkannya dengan identitas yang terdaftar sebelumnya [13-15].

Sistem biometrika beroperasi pada dua model, yaitu: 1. Sistem verifikasi

a. Bertujuan untuk menerima atau menolak identitas yang diklaim oleh seseorang.

b. Menjawab pertanyaan “Apakah identitas saya sama dengan identitas yang saya sebutkan?”.

c. Lebih sederhana karena hanya mencocokkan satu masukan dengan satu acuan (one to one matching).

2. Sistem identifikasi

a. Bertujuan untuk memecahkan identitas seseorang. b. Menjawab pertanyaan “identitas siapakah ini?”.

c. Terjadi pencocokan satu masukan dengan banyak acuan (one to many

matching).

Berbeda dengan sidik jari, iris, wajah, geometri tangan, dan lain-lainnya yang merupakan biometrika yang sudah cukup lama dikenal, telapak tangan


(73)

(palmprint) merupakan biometrika fisiologi yang masih relatif baru[14].

Gambar 2.1 Pola Telapak Tangan

Pada Gambar 2.1 ciri-ciri yang dimiliki oleh telapak tangan: 1. Ciri geometri

2. Ciri garis-garis utama 3. Ciri garis-garis kusut 4. Ciri minusi

Telapak tangan kaya akan fitur-fitur unik, seperti fitur geometri (lebar, panjang dan luas area telapak tangan), fitur garis-garis utama (principle lines), fitur garis-garis lemah (wrinkle lines), fitur delta points dan fitur minusi (minutiae). Telapak tangan memiliki beberapa kelebihan dibandingkan dengan biometrika lainnya, yaitu dapat menggunakan citra resolusi rendah, biaya alat akuisisi relatif rendah, sulit untuk dipalsu dan bersifat unik dan stabil [14,15].

2.2Perbaikan kualitas citra

Perbaikan kualitas citra dilakukan untuk menghasilkan citra guna memperkuat informasi khusus pada citra hasil pengolahan sesuai dengan tujuan pengolahannya. Misalnya citra yang mempunyai variasi intensitas yang kurang seragam, lemah dalam hal kontras sehingga obyek sulit dipisahkan dari latar belakangnya melalui proses binerisasi karena terlalu banyak noise. Maka, diperlukan pengolahan citra untuk


(74)

meningkatkan kualitas citra dengan menggunakan teknik pengolahan antara lain dengan modifikasi histogram, penggunaan filter, analisis frekuensi dan lain-lain[1]. Proses-proses yang termasuk ke dalam perbaikan kualitas citra[11]:

1. Pengubahan kecerahan gambar (image brightness) 2. Peregangan kontras (contrast stretching)

3. Pengubahan histogram citra

4. Pelembutan citra (image smoothing) 5. Penajaman (sharpening) tepi (edge) 6. Pewarnaan semu (pseudocolouring) 7. Pengubahan geometrik

2.2.1 Sharpen Filtering

Citra sharpen digunakan untuk menegaskan garis tepi pada citra, sehingga kelihatan lebih tajam pada citra yang kabur (blur). Operasi penajaman dilakukan dengan melewatkan citra pada penapis tinggi (high-pass filter). Penapis lolos-tinggi akan meloloskan (memperkuat) komponen yang berfrekuensi lolos-tinggi (misalnya tepi atau pinggiran objek) dan akan menurunkan komponen berfrekuensi rendah. Akibatnya, pinggiran objek telihat lebih tajam dibandingkan sekitarnya. Karena penajaman citra lebih berpengaruh pada tepi (edge) objek, maka penajaman citra sering disebut juga penajaman tepi (edge sharpening) atau peningkatan kualitas tepi (edge enhancement) [11]. Efek sharpen diperoleh dengan mengalikan matriks bertetangga yang menjadi sampel dengan sebuah matriks filter tertentu[1].

Contoh matriks filter yang akan digunakan adalah sebagai berikut:

Selain untuk mempertajam gambar, penapis lolos-tinggi juga digunakan untuk mendeteksi keberadaan tepi (edge detection). Dalam hal ini, piksel-piksel tepi ditampilkan lebih terang (highlight) sedangkan piksel-piksel bukan tepi dibuat gelap (hitam)[11].


(75)

Gbr 2. 2(a) Citra Semula (b) Citra Gray Semula (c) Citra Setelah Penajaman

2.2.2 Deteksi tepi (edge detection)

Suatu citra dapat dapat diketahui apa yang menjadi obyeknya ketika perbedaan antara latar belakang citra dengan objek terlihat jelas. Objek yang berada dalam bidang citra dan tidak bersinggungan dengan batas bidang citra, berarti objek tersebut dikelilingi oleh daerah yang bukan objek yaitu latar belakang.

Pertemuan antara objek dengan latar belakang disebut dengan tepi objek. Tepi dapat mewakili informasi yang penting dari obyek. Tepi ditandai dengan adanya perubahan intensitas yang bersifat lokal di dalam citra dan dapat dilacak berdasarkan perubahan intensitas ini. Deteksi tepi banyak digunakan untuk pengembangan algoritma untuk analisis fitur-fitur citra, segmentasi citra dan analisis pergerakan[1].

Edge detection memiliki beberapa algoritma, diantaranya: metode Sobel,

Prewitt, Roberts, Laplacian of Gaussian, zero-cross dan Canny. 2.2.3 Deteksi tepi Canny

Metode Canny adalah salah satu algoritma deteksi tepi modern. Deteksi tepi Canny ditemukan oleh Marr dan Hildreth yang meneliti pemodelan persepsi visual manusia.

Ada beberapa kriteria pendeteksi tepian paling optimum yang dapat dipenuhi oleh algoritma Canny:

a. Mendeteksi dengan baik (kriteria deteksi)

Kemampuan untuk meletakkan dan menandai semua tepi yang ada sesuai dengan pemilihan parameter-parameter konvolusi yang dilakukan. Sekaligus juga


(76)

memberikan fleksibilitas yang sangat tinggi dalam hal menentukan tingkat deteksi ketebalan tepi sesuai yang diinginkan.

b. Melokalisasi dengan baik (kriteria lokalisasi)

Dengan Canny dimungkinkan dihasilkan jarak yang minimum antara tepi yang dideteksi dengan tepi yang asli.

c. Respon yang jelas (kriteria respon)

Hanya ada satu respon untuk tiap tepi. Sehingga mudah dideteksi dan tidak menimbulkan kerancuan pada pengolahan citra selanjutnya[5].

Dalam proses pendeteksian tepi terhadap citra yang dilakukan dengan menggunakan metode Canny dapat menggunakan function di Matlab, sehingga cukup menggunakan function edge dalam pengkodean[6]. Citra grayscale sesudah proses deteksi tepi dapat dilihat pada Gambar 3.

Gambar 2.3 (a) Citra Semula (b) Citra Gray sharpening (c) Citra setelah dektesi tepi canny

2.3 Pengenalan pola (pattern recognition)

Pengenalan pola merupakan suatu proses yang dilakukan untuk mengelompokkan atau mengklasifikasikan data numerik dan simbol. Banyak teknik statistik dan sintaksis yang telah dikembangkan untuk keperluan klasifikasi pola dan teknik-teknik ini dapat memainkan peran yang penting dalam sistem visual untuk pengenalan obyek yang biasanya memerlukan banyak teknik. Bentuk-bentuk obyek tertentu dalam dunia nyata yang sangat kompleks dapat dibandingkan dengan pola-pola dasar di dalam citra sehingga penggolongan obyek yang bersangkutan dapat dilakukan lebih mudah[1].


(77)

Gambar 2.4 Skema Pengenalan Pola[11]

2.4 Jaringan Syaraf Tiruan

Jaringan syaraf tiruan (artificial neural network) atau disingkat dengan JST merupakan suatu sistem komputasi dimana arsitektur dan operasi diilhami dari pengetahuan tentang sel syaraf biologis di dalam otak, yang merupakan salah satu presentasi buatan dari otak manusia yang selalu mencoba menstimulasi proses pembelajaran pada otak manusia tersebut. JST dapat digambarkan sebagai model matematis dan komputasi untuk simulasi dari koleksi model syaraf biologi [10].

Gambar 2.5 Sistem Syaraf Otak Manusia[2]

Model syaraf ditunjukkan dengan kemampuannya dalam emulasi, analis, prediksi dan asosiasi. Kemampuan yang dimiliki oleh JST dapat digunakan untuk


(1)

IMPLEMENTATION OF NEURAL NETWORK BIDIRECTIONAL ASSOCIATIVE MEMORY FOR PALM HUMAN PATTERN RECOGNITION

ABSTRACT

Identity recognition system can be implemented by biometric system. Biometric system has better security grade than traditional identity recognition system because biometric system cannot be duplicated, stolen, lost, and forgotten. Palm is one of biometric system which pattern can be used to recognize identity. This Pattern can be identified by Artificial Neural Network (ANN). ANN is a computational system where the architecture and operation inspired by knowledge about biological neural cells in the brain. One method in artificial neural networks is Bidirectional Associative Memory (BAM) which is a type of neural network with hetero-associative memory by using two layers, that is the input layer and output layer which has the ability to identify pattern after reaching a stable state. In this research, the pattern used as the input pattern is the image of the palm of the right hand with the characteristic geometry and principle lines taken by scanner to produce image of transverse right palm, then processed to obtain a regular image with the size 200 x 300 pixels and converted to obtain bipolar patterns with values 1 and -1. This pattern will be used for training to produce a weight matrix which serve as a benchmark for testing the right palm pattern. This research has two tests, first testing on the right palm image pattern that was used for training with the result of identification is 100% and second testing on the image of right palm pattern not previously scanned with the identification result of 52,5%. The conclusion of the research the Bidirectional Associative Memory method is able to identify pattern by utilizing characteristic geometry and principle lines of the palm.

Keywords: Artificial Neural Network, Bidirectional Associative Memory, Palms pattern, Weight matrix, Bipolar patterns.


(2)

DAFTAR ISI

Hal

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Gambar x

Daftar Tabel xi

Bab I Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 3

1.7 Sistematika Penulisan 4

Bab II Tinjauan Pustaka

2.1 Pola Telapak Tangan 6

2.2 Perbaikan Kualitas Citra 7

2.2.1 Sharpen Filtering 8

2.2.2 Deteksi tepi (edge detection) 9

2.2.3 Deteksi tepi Canny 10

2.3 Pengenalan pola (pattern recognition) 11

2.4 Jaringan Syaraf Tiruan 11

2.4.1 Karakteristik Jaringan Saraf Tiruan 12

2.4.1.1 Algoritma Pembelajaran 13

2.4.2 Bidirectional Associative Memory 15

2.4.2.1 BAM Diskret 16

2.4.2.2 BAM Kontinyu 18

2.4.2.3 BAM Connections matrice 19


(3)

Hal 3.3.2 Pemodelan dengan Menggunakan Activity Diagram 29 3.3.3 Pemodelan dengan Menggunakan Sequence Diagram 29 3.3.3.1 Sequence Diagram proses pelatihan Jaringan Syaraf Tiruan 30 3.3.3.2 Sequence Diagram proses Pengujian Jaringan Syaraf Tiruan 31

3.4 Flowchart Gambaran Umum Sistem 32

3.5 Perancangan Arsitektur Jaringan 33

3.6 Rancangan Antarmuka Sistem 34

3.6.1 Antarmuka Form Home 35

3.6.2 Antarmuka Form Train 36

3.6.3 Antarmuka Form Test 38

3.6.4 Antarmuka Form Help 40

3.6.5 Antarmuka Form About 41

3.6.6 Antarmuka Form Exit 42

Bab IV Implementasi dan Pengujian

4.1 Implementasi Sistem 43

4.1.1 Tampilan Antarmuka Sistem 43

4.1.1.1 Antarmuka Home 43

4.1.1.2 Antarmuka Train 44

4.1.1.3 Antarmuka Test 49

4.1.1.4 Antarmuka Help 54

4.1.1.5 Antarmuka About 55

4.1.1.6 Antarmuka Exit 56

4.2 Pengujian Sistem 56

4.2.1 Pengujian terhadap Citra Telapak Tangan Kanan yang Sudah Dilatih 57 4.2.2 Pengujian terhadap Citra Telapak Tangan Kanan yang belum Dilatih 60 Bab V Kesimpulan dan Saran

5.1 Kesimpulan 67

5.2 Saran 68

Daftar Pustaka 69

Lampiran Listing Program A-1


(4)

DAFTAR GAMBAR

Gambar 2.1 Pola Telapak Tangan 7

Gambar 2.2 (A) Citra Semula 9

(B) Citra Gray Semula 9

(C) Citra Setelah Penajaman 9

Gambar 2.3 (A) Citra Semula 10

(B) Citra Gray Sharpening 10

(C) Citra Setelah Dektesi Tepi Canny 10

Gambar 2.4 Skema Pengenalan Pola 11

Gambar 2.5 Sistem Syaraf Otak Manusia 12

Gambar 2.6 Struktur Neuron Jaringan Syaraf 13

Gambar 2.7 Proses Pembelajaran Suatu JST 14

Gambar 2.8 Arsitektur Jaringan Bidirectional Associative Memory 15

Gambar 3.1 Diagram Ishikawa Analisis Permasalahan 25

Gambar 3.2 Use Case Diagram Sistem Identifikasi Telapak Tangan 27 Gambar 3.3 Activity Diagram Proses Pelatihan dan Pengujian JST BAM 29

Gambar 3.4 Sequence Diagram Proses Pelatihan JST BAM 30

Gambar 3.5 Sequence Diagram Proses Pelatihan JST BAM 31

Gambar 3.6 Flowchart Gambaran Umum Aplikasi 32

Gambar 3.7 Arsitektur Jaringan Syaraf Tiruan Metode BAM Untuk

Pengenalan Pola Telapak Tangan 34

Gambar 3.8 Tampilan Rancangan Antarmuka Form Home 35

Gambar 3.9 Tampilan Rancangan Antarmuka Form Train 36

Gambar 3.10 Tampilan Rancangan Antarmuka Form Test 38

Gambar 3.11 Tampilan Rancangan Antarmuka Form Help 40

Gambar 3.12 Tampilan Rancangan Antarmuka Form About 41

Gambar 3.13 Tampilan Rancangan Antarmuka Form Exit 42

Gambar 4.1 Tampilan Antarmuka Home 44

Gambar 4.2 Tampilan Antarmuka Train 45

Gambar 4.3 Tampilan Antarmuka Train Setelah Button Load Diklik 45 Gambar 4.4 Tampilan Antarmuka Train Setelah Button Reshape Diklik 46 Gambar 4.5 Tampilan Antarmuka Setelah Button Graycale Diklik 47 Gambar 4.6 Tampilan Antarmuka Train Pada Saat di-Sharpening Pertama Kali 47 Gambar 4.7 Tampilan Antarmuka Train Pada Saat di-Sharpening Kedua Kali 48 Gambar 4.8 Tampilan Antarmuka Train Pada Saat di-Sharpening Ketiga Kali 48 Gambar 4.9 Tampilan Antarmuka Train Pada Saat Dideteksi Tepi Canny 49


(5)

DAFTAR TABEL

Hal Tabel 3.1 Dokumentasi Naratif Use Case Pelatihan Jaringan Syaraf Tiruan 27 Tabel 3.2 Dokumentasi Naratif Use Case Pengujian Jaringan Syaraf Tiruan 28

Tabel 4.1 Pengujian Citra Telapak Tangan Kanan yang Sudah Dilatih 58 Tabel 4.2 Pengujian Citra Baru Telapak Tangan Kanan yang Belum Dilatih 61


(6)

DAFTAR LAMPIRAN

Halaman

A. Listing Program A-1


Dokumen yang terkait

Implementasi Jaringan Syaraf Metode Bidirectional Associative Memory untuk Pengenalan Pola Wajah

3 100 120

Implementasi Jaringan Syaraf Metode Bidirectional Associative Memory Untuk Pengenalan Pola Wajah

5 41 120

Implementasi Jaringan Syaraf Metode Bidirectional Associative Memory Untuk Pengenalan Pola Wajah

0 0 6

Implementasi Jaringan Syaraf Metode Bidirectional Associative Memory Untuk Pengenalan Pola Wajah

0 0 2

Implementasi Jaringan Syaraf Tiruan Bidirectional Associative Memory Untuk Pengidentifikasian Telapak Tangan Manusia (Studi Kasus: Mahasiswa S1 Ilmu Komputer Usu Stambuk 2010 Kom A)

0 0 13

Implementasi Jaringan Syaraf Tiruan Bidirectional Associative Memory Untuk Pengidentifikasian Telapak Tangan Manusia (Studi Kasus: Mahasiswa S1 Ilmu Komputer Usu Stambuk 2010 Kom A)

0 0 1

Implementasi Jaringan Syaraf Tiruan Bidirectional Associative Memory Untuk Pengidentifikasian Telapak Tangan Manusia (Studi Kasus: Mahasiswa S1 Ilmu Komputer Usu Stambuk 2010 Kom A)

0 0 5

Implementasi Jaringan Syaraf Tiruan Bidirectional Associative Memory Untuk Pengidentifikasian Telapak Tangan Manusia (Studi Kasus: Mahasiswa S1 Ilmu Komputer Usu Stambuk 2010 Kom A)

0 2 18

Implementasi Jaringan Syaraf Tiruan Bidirectional Associative Memory Untuk Pengidentifikasian Telapak Tangan Manusia (Studi Kasus: Mahasiswa S1 Ilmu Komputer Usu Stambuk 2010 Kom A)

0 0 25

Jaringan Syaraf Tiruan Bidirectional Associative Memory (BAM) Sebagai Identifikasi Pola Sidik jari Manusia ZAINAL ARIFIN

0 0 6