Identifikasi Tanda Tangan Menggunakan Global Feature Extraction, Momen Invarian dan Algoritma Forward-Only Counter Propagation.

(1)

IDENTIFIKASI TANDA TANGAN MENGGUNAKAN

GLOBAL FEATURE EXTRACTION, MOMEN INVARIAN DAN

ALGORITMA FORWARD-ONLY COUNTER PROPAGATION

ABSTRAK

Eka Putri Tambun (0722118)

Jurusan Teknik Elektro Universitas Kristen Maranatha

email : [email protected]

Semakin berkembangnya komputer, para peneliti membuat representasi

buatan dari otak manusia agar komputer tersebut dapat mengerjakan tugas yang

sederhana bagi manusia.

Neural network

yang merupakan implementasi model

matematika dari proses pembelajaran seperti pada otak manusia, disimulasikan

pada komputer sehingga mampu menyelesaikan permasalahan-permasalahan yang

diberikan.

Artificial neural network

atau dalam bahasa Indonesia disebut Jaringan

Saraf Tiruan (JST) banyak digunakan dalam berbagai bidang salah satunya adalah

pengenalan pola.

Pada Tugas Akhir ini dirancang dan direalisasikan perangkat lunak untuk

mengidentifikasi kepemilikan tanda tangan 10 orang koresponden dengan

melakukan ekstraksi ciri

global feature extraction

dan momen invarian sebelum

data-data tersebut dilatih menggunakan salah satu algoritma pelatihan yaitu

Forward-only counter propagation

. Perangkat lunak ini direalisasikan

menggunakan MATLAB R2007a.

Tugas Akhir ini, perangkat lunak pengidentifikasi tanda tangan berhasil

direalisasikan dan diperoleh keberhasilan sebesar 100% untuk 40 data dari 10

koresponden (4 tanda tangan dari setiap orang) yang telah dilatih kemudian

diujikan kembali dan 100% untuk 20 data dari koresponden yang sama (2 tanda

tangan dari setiap orang) tetapi tidak dilatih.

Kata kunci : Jaringan Saraf Tiruan, Forward-only Counter Propagation,

Global Feature Extraction, Momen Invarian, Identifikasi Tanda

Tangan.


(2)

FORWARD-ONLY COUNTER PROPAGATION ALGORITHM

ABSTRACT

Eka Putri Tambun (0722118)

Department of Electrical Engineering Maranatha Christian University

email : [email protected]

As modern computers become ever more powerful, scientists provide a

method of representing human brain continue to be challenged to use machines

effectively for tasks are relatively simple for humans. Neural network which are

the implement from mathematical models of information processing as human

brain does, simulated on the computer to solve the problems given. Artificial

neural networks are of interest to researchers in many areas such as pattern

recognition.

This final project worked through design and realization of software to

identify the ownership of the 10 signatures by doing global feature extraction and

moment invariants as feature extraction before the data are trained using a training

algorithm that is Forward-Only Counter Propagation. The software is realized

using MATLAB R2007a.

Of this final project, a signature identifier software successfully realized and

obtained success rate of 100% for 40 data from 10 correspondents (4 signature of

each person) who has been trained then tested again and 100% to 20 data from the

same correspondent (2 signature of each person), but not trained.

Keywords : Neural Network, Forward-only Counter Propagation, Global

Feature Extraction, Moment Invariants, Identification Signature.


(3)

LEMBAR PENGESAHAN

PERNYATAAN ORISINALITAS LAPORAN

PERNYATAAN PUBLIKASI LAPORAN TUGAS AKHIR

ABSTRAK

……….

...

ABSTRACT

………...

..

KATA PENGANTAR

………...

...

DAFTAR ISI

………...………...

..

DAFTAR GAMBAR

………...

..

DAFTAR TABEL

………..

..

i

ii

iii

v

vii

viii

I.

PENDAHULUAN

I.1

Latar Belakang……….

I.2

Identifikasi

Masalah………...…

..

I.3

Tujuan………..

I.4

Pembatasan Masalah………..

I.5

Sistematika Penulisan………..

II.

DASAR TEORI

II.1

Jaringan Saraf Tiruan………

II.1.1

Arsitektur Jaringan………

..

II.1.2

Algoritma Jaringan………

..

II.1.2.1

Algoritma Pelatihan………

...

II.1.2.2 Fungsi Aktivasi

………

II.1.2.3 Algoritma Pengujian

………

.

II.1.3 Sum Square Error dan Root Mean Square Error

……

..

II.1.4 Aplikasi Jaringan Saraf Tiruan

………

..

II.2

Algoritma

Forward-only Counter Propagation

………

...

II.2.1 Arsitektur

FOCP………

II.2.2 Algoritma

Pelatihan FOCP………

II.3

Citra Dijital dan Ekstraksi Ciri

………

.

1

2

2

2

3

4

7

8

8

9

12

12

14

14

15

15

19


(4)

II.3.3 Momen Invarian

………

II.4

Pengolahan Citra Dijital Menggunakan MATLAB

…………

..

III.

PERANCANGAN PERANGKAT LUNAK

III.1

Arsitektur Perancangan

………

.

III.2

Diagram Alir

………

.

III.3

Perancangan Antarmuka Pemakai

(User Interface)

…………

.

IV.

SIMULASI DAN ANALISA

IV.1

Proses Pelatihan

………

IV.2

Proses Pengujian

………...

IV.2.1 Pengujian I

……….

IV.2.2 Pengujian II

………

IV.3

Analisa

………..

V.

KESIMPULAN DAN SARAN

V.1 Kesimpulan

………...

V.2 Saran

……….

DAFTAR PUSTAKA

………..

LAMPIRAN A

……….

LAMPIRAN B

……….

20

22

26

27

36

37

35

36

43

52

53

53

54

A

B


(5)

Gambar 2.1 Struktur dasar jaringan syaraf tiruan

dan Struktur sederhana sebuah neuron

………..

Gambar 2.2 Struktur Neuron Jaringan Saraf

……….

Gambar 2.3 Jaringan syaraf dengan lapisan tunggal

……….

Gambar 2.4 Jaringan syaraf dengan banyak lapisan

……….

Gambar 2.5 Fungsi Aktivasi Pada Jaringan Saraf Sederhana

………

Gambar 2.6 Fungsi Tangga Biner

………..

Gambar 2.7 Fungsi

Linear

……….

Gambar 2.8 Fungsi Sigmoid Biner

………

Gambar 2.9 Fungsi Sigmoid Bipolar

………..

Gambar 2.10 Arsitektur

Forward-only counter propagation

………..

Gambar 2.11 Citra tanda tangan setelah

grayscaling

………...

Gambar 2.12 Citra tanda tangan setelah dilakukan binerisasi

………..

Gambar 2.13 Citra tanda tangan setelah ditipiskan

……….

Gambar 3.1 Arsitektur Perancangan

Forward-only Counter Propagation

....

Gambar 3.2 Diagram Alir Utama

………...

Gambar 3.3 Diagram Alir

Pre-Processing

……….

Gambar 3.4 Diagram Alir Ekstraksi Ciri

………...

Gambar 3.5 Tampilan Program Pengujian Identifikasi Tanda Tangan

…….

..

Gambar 3.6 Tampilan Program Pelatihan Identifikasi Tanda Tangan

………

Gambar 4.1 Grafik Hasil Pelatihan

………...

..

Gambar 4.2

Tampilah Hasil Pengujian Tanda Tangan “Lukas”…………...

..

5

6

7

8

9

10

11

11

12

16

24

25

26

27

28

29

30

37

36

39

40


(6)

Tabel 3.1 Inisialisasi Target

………

Tabel 3.2 Penjelasan Rancangan Menu Pelatihan

………..

Tabel 3.3 Penjelasan Rancangan Menu Pengujian

……….

Tabel 4.1 Pelatihan 40 Tanda Tangan

……….

Tabel 4.2 Hasil Ekstraksi Ciri Menggunakan

Global Feature Extraction

dan Momen Invarian

………

Tabel 4.3 Hasil Pengujian I

……….

Tabel 4.4 Hasil Pengujian II

………...

34

36

37

39

43

43

49


(7)

A-1

LAMPIRAN A

PROGRAM MATLAB


(8)

A-2

Program Pelatihan FOCP

clc clear all

load databesarm databesarm; x=databesarm; input=x; %Inisialisasi Bobot %--- [baris kolom]=size(input); bnydata=baris; jmlinput=kolom; clusterlayer=10; outputlayer=10; vweight=(0.5-(rand(clusterlayer,jmlinput)*(0.5-0))); wweight=(0.5-(rand(clusterlayer,outputlayer)*(0.5-0))); target=eye(clusterlayer,outputlayer); alpha=0.8; a=0.4; epoch=0; con=1; dmin=0; jwin=0; while con for jmlbaris=1:bnydata for cluster=1:clusterlayer d(cluster)=(sum((vweight(cluster,:)-input(jmlbaris,:)).^2)); if cluster==1 dmin=d(cluster); jwin=cluster; end if (cluster>1)&&(dmin>d(cluster)) dmin=d(cluster); jwin=cluster; end end vweight(jwin,:)=vweight(jwin,:)+(alpha*(input(jmlbaris,:)-vweight(jwin,:))); end alpha=0.7*alpha; for jmlbaris=1:bnydata for cluster=1:clusterlayer d(cluster)=(sum((vweight(cluster,:)-input(jmlbaris,:)).^2)); if cluster==1 dmin=d(cluster); jwin=cluster; end if (cluster>1)&&(dmin>d(cluster)) dmin=d(cluster); jwin=cluster; end end vweight(jwin,:)=vweight(jwin,:)+(alpha*(input(jmlbaris,:)-vweight(jwin,:))); wweight(jwin,:)=wweight(jwin,:)+(a*(target(jwin,:)-wweight(jwin,:))); end wk=wweight; yk=wk;


(9)

A-3

e=sum(sum((target-yk).^2));

error=sqrt(e/(bnydata*outputlayer)); a=0.7*a;

if error<0.0001 con=0; end

epoch=epoch+1; if epoch==200 con=0; end

plot(epoch,error,'m.-'); hold on;

grid on;

title('Grafik Error Terhadap Epoch'); xlabel('Epoch');

ylabel('Error'); end

Program Pengujian FOCP

clc

clear all [c b]=size(x); clusterlayer=10; for i2=1:c

for cluster=1:clusterlayer

d(cluster)=sum((vsimpan1(cluster,:)-x(i2,:)).^2); if cluster==1

dmin=d(cluster); dwin=cluster; end

if (cluster>1)&&(dmin>d(cluster)) dmin=d(cluster);

dwin=cluster; end

end

yk=wsimpan1(dwin,:); y=round(yk);


(10)

A-4

Program GUI Untuk Pelatihan

function varargout = latih_focp(varargin) % LATIH_FOCP M-file for latih_focp.fig

% LATIH_FOCP, by itself, creates a new LATIH_FOCP or raises the existing % singleton*.

%

% H = LATIH_FOCP returns the handle to a new LATIH_FOCP or the handle to % the existing singleton*.

%

% LATIH_FOCP('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in LATIH_FOCP.M with the given input arguments. %

% LATIH_FOCP('Property','Value',...) creates a new LATIH_FOCP or raises the

% existing singleton*. Starting from the left, property value pairs are % applied to the GUI before latih_focp_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to latih_focp_OpeningFcn via varargin. %

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help latih_focp

% Last Modified by GUIDE v2.5 23-Apr-2012 09:41:52

% Begin initialization code - DO NOT EDIT gui_Singleton = 1;

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

'gui_OpeningFcn', @latih_focp_OpeningFcn, ... 'gui_OutputFcn', @latih_focp_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 latih_focp is made visible.

function latih_focp_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to latih_focp (see VARARGIN) % Choose default command line output for latih_focp

handles.output = hObject;

% Update handles structure guidata(hObject, handles);


(11)

A-5

% UIWAIT makes latih_focp wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = latih_focp_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure

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

% Get default command line output from handles structure varargout{1} = handles.output;

% --- Executes on button press in Tombol_buka.

function Tombol_buka_Callback(hObject, eventdata, handles) % hObject handle to Tombol_buka (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.Tombol_buka,'Enable','off'); set(handles.pushbutton3,'Enable','on'); %Inisialisasi Bobot %--- input=x; [baris kolom]=size(input); bnydata=baris; jmlinput=kolom; clusterlayer=10; outputlayer=10; vweight=(0.5-(rand(clusterlayer,jmlinput)*(0.5-0))); wweight=(0.5-(rand(clusterlayer,outputlayer)*(0.5-0))); target=eye(clusterlayer,outputlayer); alpha=0.8; a=0.4; epoch=0; con=1; dmin=0; jwin=0;

% Forward-only Counter Propagation Algorithm

% --- while con for jmlbaris=1:bnydata for cluster=1:clusterlayer d(cluster)=(sum((vweight(cluster,:)-input(jmlbaris,:)).^2)); if cluster==1 dmin=d(cluster); jwin=cluster; end if (cluster>1)&&(dmin>d(cluster)) dmin=d(cluster); jwin=cluster; end end vweight(jwin,:)=vweight(jwin,:)+(alpha*(input(jmlbaris,:)-vweight(jwin,:))); end alpha=0.7*alpha; for jmlbaris=1:bnydata for cluster=1:clusterlayer d(cluster)=(sum((vweight(cluster,:)-input(jmlbaris,:)).^2)); if cluster==1 dmin=d(cluster);


(12)

A-6

jwin=cluster; end if (cluster>1)&&(dmin>d(cluster)) dmin=d(cluster); jwin=cluster; end end vweight(jwin,:)=vweight(jwin,:)+(alpha*(input(jmlbaris,:)-vweight(jwin,:))); wweight(jwin,:)=wweight(jwin,:)+(a*(target(jwin,:)-wweight(jwin,:))); end wk=wweight; yk=wk; e=sum(sum((target-yk).^2)); error=sqrt(e/(bnydata*outputlayer)); a=0.7*a; if error<0.0001 con=0; end epoch=epoch+1; if epoch==200 con=0; end plot(epoch,error,'m.-');

title('Grafik Error Terhadap Epoch'); xlabel('Epoch'); ylabel('Error'); hold on; grid on; axes(handles.axes1); end set(handles.text5,'String',error); set(handles.text6,'String',epoch); set(handles.Tombol_buka,'Enable','on'); set(handles.pushbutton4,'Enable','on');

function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO)

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

% Hints: get(hObject,'String') returns contents of edit1 as text

% str2double(get(hObject,'String')) returns contents of edit1 as a double

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

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

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

function edit2_Callback(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO)


(13)

A-7

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit2 as text

% str2double(get(hObject,'String')) returns contents of edit2 as a double

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

% hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

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

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO)

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

close

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

% hObject handle to figure1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes on button press in pushbutton4.

function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO)

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

fig2=openfig('uji_focp.fig'); handles=guihandles(fig2); guidata(fig2,handles);

Program GUI Untuk Pengujian


(14)

A-8

% UJI_FOCP M-file for uji_focp.fig

% UJI_FOCP, by itself, creates a new UJI_FOCP or raises the existing % singleton*.

%

% H = UJI_FOCP returns the handle to a new UJI_FOCP or the handle to % the existing singleton*.

%

% UJI_FOCP('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in UJI_FOCP.M with the given input arguments. %

% UJI_FOCP('Property','Value',...) creates a new UJI_FOCP or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before uji_focp_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to uji_focp_OpeningFcn via varargin. %

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text2 to modify the response to help uji_focp

% Last Modified by GUIDE v2.5 11-May-2012 14:58:31

% Begin initialization code - DO NOT EDIT gui_Singleton = 1;

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

'gui_OpeningFcn', @uji_focp_OpeningFcn, ... 'gui_OutputFcn', @uji_focp_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 uji_focp is made visible.

function uji_focp_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to uji_focp (see VARARGIN)

% Choose default command line output for uji_focp handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% UIWAIT makes uji_focp wait for user response (see UIRESUME) % uiwait(handles.figure1);


(15)

A-9

% --- Outputs from this function are returned to the command line. function varargout = uji_focp_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure

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

% Get default command line output from handles structure varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.pushbutton1,'Enable','off');

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

[nama_file1, nama_path1]=uigetfile({'*.bmp;*.jpg','File Citra(*.bmp,*.jpg)';'*.bmp','File Bitmap(*.bmp)';

'*.jpg','File jpeg(*.jpg)'; '*.*' , 'Semua File (*.*)'},'Buka File Citra Host/Asli');

if ~isequal(nama_file1,0) handles.data1=imread(fullfile(nama_path1,nama_file1)); guidata(hObject,handles); handles.current_data1=handles.data1; axes(handles.axes1); imshow(handles.current_data1); else return; end set(handles.text3,'String',nama_file1); set(handles.text4,'String',size(handles.data1,1)); set(handles.text8,'String',size(handles.data1,2));

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.pushbutton2,'Enable','off'); set(handles.pushbutton3,'Enable','on'); gambar1=handles.data1; %--- %Pre-Processing %--- gambar1=rgb2gray(gambar1); %ubah dr bentuk rgb ke gray

gambar1=im2bw(gambar1,graythresh(gambar1)); %ubah dr gray ke black&white citra1=discourser(~gambar1);

citra3=imresize(citra1,[100 100]); %resize ke bentuk 100x100

citra2=bwmorph(citra3,'thin',inf); %fungsi untuk mendapatkan skeleton [baris kolom]=size(citra2); axes(handles.axes2) set(handles.text11,'String',size(citra2,1)); set(handles.text13,'String',size(citra2,2)); imshow(~citra2); %--- %Global Feature Extraction

%--- %Luas Area


(16)

A-10

%Height-to-width ratio [height width]=size(citra1); ratio=height/width;

%Maximum vertikal histogram c=0;

for i=1:kolom for j=1:baris

if citra2 (j,i)==1 c=c+1;

if j==1 c=1; end

y(j,i)=[c]; else c=0; end end end

[baris1 kolom1]=size(y); maxver=0;

for k1=1:kolom1 for l1=1:baris1

if y(l1,k1)>maxver maxver=y(l1,k1); end

end end

%Maximum horizontal histogram c2=0;

for i2=1:baris for j2=1:kolom

if citra2 (i2,j2)==1 c2=c2+1;

if j2==1 c2=1; end

y(i2,j2)=[c2]; else c2=0;

end end end

[baris2 kolom2]=size(y); maxhor=0;

for k2=1:baris2 for l2=1:kolom2

if y(k2,l2)> maxhor maxhor=y(k2,l2); end

end end


(17)

A-11

%Horizontal local maxima number

[m n]=size(citra1); for i=1:m

for j=1:1:n

if citra1(i,j)== 1 imax(i)=i; end end end for i=m:-1:1 for j=n:-1:1 if citra1(i,j)==1 imin(i)=j; end end end h=(imax-imin)+1; [baris3 kolom3]=size(h); horlocal=h(1,1); for k=2:kolom3 if h(1,k)>horlocal horlocal=h(1,k); else horlocal; end end

%Vertical local maxima number [m n]=size(citra1);

for i=1:n for j=1:1:m

if citra1(j,i)== 1 imax2(i)=j; end end end for i=n:-1:1 for j=m:-1:1 if citra1(j,i)==1 imin2(i)=j; end end end v=(imax2-imin2)+1; [baris4 kolom4]=size(v); verticalocal=v(1,1); for k2=2:kolom4 if v(1,k2)>verticalocal verticalocal=v(1,k2); else verticalocal; end end

% Centre of image F=citra2;


(18)

A-12

[x, y] = meshgrid(1:N, 1:M);

x = x(:); y = y(:); F = F(:); mm00 = sum(F); mm10 = sum(x .* F); mm01 = sum(y .* F); xbar = mm10 / mm00; ybar = mm01 / mm00;

gf=[a ratio maxver maxhor horlocal verticalocal xbar ybar]; gf=(gf)./100;

save dataciri gf;

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.pushbutton3,'Enable','off'); set(handles.pushbutton4,'Enable','on'); gambar1=handles.data1; %--- %Pre-Processing %--- gambar1=rgb2gray(gambar1); %ubah dr bentuk rgb ke gray

gambar1=im2bw(gambar1,graythresh(gambar1)); %ubah dr gray ke black&white citra1=discourser(~gambar1);

citra3=imresize(citra1,[100 100]); %resize ke bentuk 100x100

citra2=bwmorph(citra3,'thin',inf); %fungsi untuk mendapatkan skeleton %--- %Moment Invariant

%--- x=invmoments(citra2);

mi=[x];

save dataciri2 mi;

% --- Executes on button press in pushbutton4.

function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) load dataciri gf;

load dataciri2 mi; input=[mi gf]; [c b]=size(input); clusterlayer=10; for i=1:c for cluster=1:clusterlayer d(cluster)=sum((vfinal(cluster,:)-input(i,:)).^2); if cluster==1 dmin=d(cluster); dwin=cluster; end if (cluster>1)&&(dmin>d(cluster)) dmin=d(cluster); dwin=cluster; end end end


(19)

A-13

output=round(wfinal(dwin,:));

y=output;

if y== [1 0 0 0 0 0 0 0 0 0] y='TORANG';

elseif y== [0 1 0 0 0 0 0 0 0 0] y='YANIMI';

elseif y== [0 0 1 0 0 0 0 0 0 0] y='LUKAS';

elseif y== [0 0 0 1 0 0 0 0 0 0] y='HOTMA';

elseif y== [0 0 0 0 1 0 0 0 0 0] y='DWI';

elseif y== [0 0 0 0 0 1 0 0 0 0] y='BENNY';

elseif y== [0 0 0 0 0 0 1 0 0 0] y='TOGU';

elseif y== [0 0 0 0 0 0 0 1 0 0] y='FEBRU';

elseif y== [0 0 0 0 0 0 0 0 1 0] y='ELLA';

elseif y== [0 0 0 0 0 0 0 0 0 1] y='FEBRI'; else y='TIDAK DIKENALI'; end output=num2Str(output); set(handles.text15,'String',output); set(handles.text16,'String',y); set(handles.pushbutton1,'Enable','on'); set(handles.pushbutton2,'Enable','off'); set(handles.pushbutton3,'Enable','off');

function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO)

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

% Hints: get(hObject,'String') returns contents of edit1 as text2

% str2double(get(hObject,'String')) returns contents of edit1 as a double

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

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit2_Callback(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO)

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


(20)

A-14

% Hints: get(hObject,'String') returns contents of edit2 as text2

% str2double(get(hObject,'String')) returns contents of edit2 as a double

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

% hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

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

% --- Executes on button press in pushbutton5.

function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (see GCBO)

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


(21)

B-1

LAMPIRAN B


(22)

B-2

Tabel Hasil Pengujian I

NO

CITRA

OUTPUT

DIKENALI

SEBAGAI

IDENTIFIKASI

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

Y9

Y10

YA

TIDAK

1

torang001 0.9982 0.0007 0.0009 0.0006 0.0007 0.0009 0.0008 0.0001 0.0007

0.0001

TORANG

torang002 0.9982 0.0007 0.0009 0.0006 0.0007 0.0009 0.0008 0.0001 0.0007

0.0001

TORANG

torang003 0.9982 0.0007 0.0009 0.0006 0.0007 0.0009 0.0008 0.0001 0.0007

0.0001

TORANG

torang004 0.9982 0.0007 0.0009 0.0006 0.0007 0.0009 0.0008 0.0001 0.0007

0.0001

TORANG

2

yanimi001 0.0008 0.9985 0.0006 0.0008

0.001

0.0008 0.0007

0

0.0002

0.0008

YANIMI

yanimi002 0.0008 0.9985 0.0006 0.0008

0.001

0.0008 0.0007

0

0.0002

0.0008

YANIMI

yanimi003 0.0008 0.9985 0.0006 0.0008

0.001

0.0008 0.0007

0

0.0002

0.0008

YANIMI

yanimi004 0.0008 0.9985 0.0006 0.0008

0.001

0.0008 0.0007

0

0.0002

0.0008

YANIMI

3

lukas001

0.0007 0.0007 0.9983 0.0011 0.0008 0.0008 0.0009 0.0011 0.0005

0.0007

LUKAS

lukas002

0.0007 0.0007 0.9983 0.0011 0.0008 0.0008 0.0009 0.0011 0.0005

0.0007

LUKAS

lukas003

0.0007 0.0007 0.9983 0.0011 0.0008 0.0008 0.0009 0.0011 0.0005

0.0007

LUKAS

lukas004

0.0007 0.0007 0.9983 0.0011 0.0008 0.0008 0.0009 0.0011 0.0005

0.0007

LUKAS

4

hotma001 0.0002 0.0006 0.0007 0.9985 0.0004 0.0008 0.0003

0.001

0.001

0.0004

HOTMA

hotma002 0.0002 0.0006 0.0007 0.9985 0.0004 0.0008 0.0003

0.001

0.001

0.0004

HOTMA

hotma003 0.0002 0.0006 0.0007 0.9985 0.0004 0.0008 0.0003

0.001

0.001

0.0004

HOTMA

hotma004 0.0002 0.0006 0.0007 0.9985 0.0004 0.0008 0.0003

0.001

0.001

0.0004

HOTMA

5

dwi001

0.0008 0.0008 0.0004 0.0005 0.9983 0.0001 0.0007

0

0.0003

0.0003

DWI

dwi002

0.0008 0.0008 0.0004 0.0005 0.9983 0.0001 0.0007

0

0.0003

0.0003

DWI

dwi003

0.0008 0.0008 0.0004 0.0005 0.9983 0.0001 0.0007

0

0.0003

0.0003

DWI

dwi004

0.0008 0.0008 0.0004 0.0005 0.9983 0.0001 0.0007

0

0.0003

0.0003

DWI


(23)

B-3

NO

CITRA

OUTPUT

DIKENALI

SEBAGAI

IDENTIFIKASI

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

Y9

Y10

YA

TIDAK

6

benny 001

0.0001 0.0001 0.0001 0.0001 0.0001 0.9998

0

0.0001 0.0001 0.0001

BENNY

benny 002

0.0001 0.0001 0.0001 0.0001 0.0001 0.9998

0

0.0001 0.0001 0.0001

BENNY

benny 003

0.0001 0.0001 0.0001 0.0001 0.0001 0.9998

0

0.0001 0.0001 0.0001

BENNY

benny 004

0.0001 0.0001 0.0001 0.0001 0.0001 0.9998

0

0.0001 0.0001 0.0001

BENNY

7

togu001

0.0001 0.0002 0.0005 0.0009 0.0007 0.0005 0.9982 0.0004 0.0008 0.0009

TOGU

togu002

0.0001 0.0002 0.0005 0.0009 0.0007 0.0005 0.9982 0.0004 0.0008 0.0009

TOGU

togu003

0.0001 0.0002 0.0005 0.0009 0.0007 0.0005 0.9982 0.0004 0.0008 0.0009

TOGU

togu004

0.0001 0.0002 0.0005 0.0009 0.0007 0.0005 0.9982 0.0004 0.0008 0.0009

TOGU

8

febru001

0.0011 0.0005 0.0005 0.0004 0.0004 0.0006 0.0005 0.9983

0.001

0.0005

FEBRU

febru002

0.0011 0.0005 0.0005 0.0004 0.0004 0.0006 0.0005 0.9983

0.001

0.0005

FEBRU

febru003

0.0011 0.0005 0.0005 0.0004 0.0004 0.0006 0.0005 0.9983

0.001

0.0005

FEBRU

febru004

0.0011 0.0005 0.0005 0.0004 0.0004 0.0006 0.0005 0.9983

0.001

0.0005

FEBRU

9

ella001

0.0002 0.0004 0.0001 0.0001 0.0002

0.001

0.0005 0.0006 0.9985 0.0008

ELLA

ella002

0.0002 0.0004 0.0001 0.0001 0.0002

0.001

0.0005 0.0006 0.9985 0.0008

ELLA

ella003

0.0002 0.0004 0.0001 0.0001 0.0002

0.001

0.0005 0.0006 0.9985 0.0008

ELLA

ella004

0.0002 0.0004 0.0001 0.0001 0.0002

0.001

0.0005 0.0006 0.9985 0.0008

ELLA

10

febri001

0.0045 0.0027 0.0005 0.0014 0.0024 0.0048 0.0019 0.0039 0.0029 0.9879

FEBRI

febri002

0.0045 0.0027 0.0005 0.0014 0.0024 0.0048 0.0019 0.0039 0.0029 0.9879

FEBRI

febri003

0.0045 0.0027 0.0005 0.0014 0.0024 0.0048 0.0019 0.0039 0.0029 0.9879

FEBRI

febri004

0.0045 0.0027 0.0005 0.0014 0.0024 0.0048 0.0019 0.0039 0.0029 0.9879

FEBRI


(24)

B-4

Tabel Hasil Pengujian II

NO

CITRA

OUTPUT

DIKENALI

SEBAGAI

IDENTIFIKASI

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

Y9

Y10

YA

TIDAK

1

torang005 0.9982 0.0007 0.0009 0.0006 0.0007 0.0009 0.0008 0.0001 0.0007 0.0001

TORANG

torang006 0.9982 0.0007 0.0009 0.0006 0.0007 0.0009 0.0008 0.0001 0.0007 0.0001

TORANG

2

yanimi005 0.0008 0.9985 0.0006 0.0008

0.001

0.0008 0.0007

0

0.0002 0.0008

YANIMI

yanimi006 0.0008 0.9985 0.0006 0.0008

0.001

0.0008 0.0007

0

0.0002 0.0008

YANIMI

3

lukas005

0.0007 0.0007 0.9983 0.0011 0.0008 0.0008 0.0009 0.0011 0.0005 0.0007

LUKAS

lukas006

0.0007 0.0007 0.9983 0.0011 0.0008 0.0008 0.0009 0.0011 0.0005 0.0007

LUKAS

4

hotma005 0.0002 0.0006 0.0007 0.9985 0.0004 0.0008 0.0003

0.001

0.001

0.0004

HOTMA

hotma006 0.0002 0.0006 0.0007 0.9985 0.0004 0.0008 0.0003

0.001

0.001

0.0004

HOTMA

5

dwi005

0.0008 0.0008 0.0004 0.0005 0.9983 0.0001 0.0007

0

0.0003 0.0003

DWI

dwi005

0.0008 0.0008 0.0004 0.0005 0.9983 0.0001 0.0007

0

0.0003 0.0003

DWI

6

benny005 0.0001 0.0001 0.0001 0.0001 0.0001 0.9998

0

0.0001 0.0001 0.0001

BENNY

benny006 0.0001 0.0001 0.0001 0.0001 0.0001 0.9998

0

0.0001 0.0001 0.0001

BENNY

7

togu005

0.0001 0.0002 0.0005 0.0009 0.0007 0.0005 0.9982 0.0004 0.0008 0.0009

TOGU

togu006

0.0001 0.0002 0.0005 0.0009 0.0007 0.0005 0.9982 0.0004 0.0008 0.0009

TOGU

8

febru005

0.0011 0.0005 0.0005 0.0004 0.0004 0.0006 0.0005 0.9983

0.001

0.0005

FEBRU

febru005

0.0011 0.0005 0.0005 0.0004 0.0004 0.0006 0.0005 0.9983

0.001

0.0005

FEBRU

9

ella005

0.0002 0.0004 0.0001 0.0001 0.0002

0.001

0.0005 0.0006 0.9985 0.0008

ELLA

ella006

0.0002 0.0004 0.0001 0.0001 0.0002

0.001

0.0005 0.0006 0.9985 0.0008

ELLA

10

febri005

0.0045 0.0027 0.0005 0.0014 0.0024 0.0048 0.0019 0.0039 0.0029 0.9879

FEBRI

febri005

0.0045 0.0027 0.0005 0.0014 0.0024 0.0048 0.0019 0.0039 0.0029 0.9879

FEBRI


(25)

1

BAB I

PENDAHULUAN

I.1 Latar Belakang

Seiring dengan berkembangnya komputer modern, para peneliti mencoba

menantang komputer modern tersebut untuk mengerjakan tugas yang dianggap

sederhana bagi manusia. Contohnya seperti manusia dapat mengenali dengan

mudah huruf A atau membedakan antara kucing dan burung dari pengetahuan

yang diberikan oleh orang yang mengajarkannya. Dengan pembelajaran yang

berkelanjutan manusia dapat memperbaiki performansinya menjadi lebih baik

lagi. Bahkan tanpa adanya seorang guru pun ada kalanya tetap dapat

mengelompokkan pola-pola yang sama. Berangkat dari semua ini maka para

peneliti mencoba membuat representasi buatan dari otak manusia dan mencoba

untuk mensimulasikan proses pembelajaran otak manusia tersebut pada sebuah

komputer.

Neural

Network

merupakan implementasi model matematika dari

proses pembelajaran

[3]

. Istilah

artificial

atau buatan digunakan karena

neural

network

(jaringan saraf) ini diimplementasikan menggunakan program komputer

yang mampu menyelesaikan sejumlah proses perhitungan selama proses

pembelajaran tersebut.

[7]

Jaringan Saraf Tiruan (JST) banyak digunakan dalam berbagai bidang

salah satunya adalah pengenalan pola. Ada beberapa algoritma pelatihan yang

sering digunakan untuk mengidentifikasi suatu bentuk, diantaranya adalah

Backpropagation,

Jaringan Hebb,

Counter Propagation

dan yang lainnya.

Counter Propagation

adalah jaringan multilapis yang berdasarkan kombinasi dari

lapisan masukan, lapisan

cluster

, dan lapisan keluaran.

Pada Tugas Akhir ini

digunakan

Forward-Only Counter Propagation

(FOCP) sebagai algoritma

pembelajaran dan pengujian. Sedangkan pola yang akan diidentifikasi berupa

tanda tangan berbentuk data dijital dari hasil

scanning

. Sebelum memasukkan

nilai matriks dari citra dijital sebagai input JST, dilakukan proses ekstraksi ciri.

Ekstraksi ciri ini bertujuan mengambil nilai-nilai spesifik dari bentuk tanda

tangan. Dengan melakukan ekstraksi ciri tanda tangan sebelum dilatihkan ke

dalam JST maka masukan dari proses pelatihan tidak besar karena nilai yang


(26)

Teknik Elektro

Universitas Kristen Maranatha

2

diambil dan dipakai hanya nilai-nilai spesifiknya saja sehingga proses pelatihan

bisa berjalan lebih cepat. Proses ekstraksi ciri sebuah citra dijital dapat dilakukan

dengan berbagai cara, salah satunya adalah dengan

global feature extraction

dan

momen invarian.

I.2 Identifikasi Masalah

Bagaimana merealisasikan JST untuk mengidentifikasi tanda tangan

menggunakan ekstraksi ciri

global feature extraction,

momen invarian dan

algoritma

Forward-Only Counter Propagation

dengan MATLAB ?

I.3 Tujuan

Merealisasikan perangkat lunak yang dapat mengidentifikasi kepemilikan

tanda tangan menggunakan ekstraksi ciri

global feature extraction,

momen

invarian dan algoritma

Forward-Only Counter Propagation.

I.4 Pembatasan Masalah

Pada Tugas Akhir ini dilakukan pembatasan masalah sebagai berikut :

a.

Data tanda tangan yang akan digunakan diambil dari 10 orang yang

berbeda, masing-masing mempunyai 6 buah tanda tangan, 4 digunakan

sebagai data latih dan 2 sebagai data uji.

b.

Citra tanda tangan didapat dari hasil

scanning. S

etiap tanda tangan

dibubuhkan di atas kertas putih dengan bantuan kotak 4x5cm sebagai batas

pada setiap tanda tangan.

c.

Gambar di

scan

menggunakan alat

scan

Canon Pixma MP258 dengan

resolusi 300 dpi dan komponen warna 24-bit color RGB.

d.

Citra tanda tangan yang akan diekstrak cirinya berukuran 100x100 piksel.

e.

Algoritma pelatihan yang digunakan adalah

Forward-Only Counter

Propagation

.


(27)

Teknik Elektro

Universitas Kristen Maranatha

3

g.

Ekstraksi ciri yang digunakan adalah momen invariant. Nilai momen

tersebut didapat dari fungsi MATLAB

invmoments

yang diperoleh dari

buku referensi Gonzalez (2004).

I.5 Sistematika Penelitian

Laporan Tugas Akhir ini terbagi menjadi lima bab utama. Untuk

memudahkan dalam membaca laporan ini, akan diuraikan secara singkat

sistematika beserta uraian dari masing-masing bab, yaitu:

BAB I. PENDAHULUAN

Bab ini menjelaskan yang melatarbelakangi penulisan laporan Tugas Akhir,

mengidentifikasi masalah yang akan diselesaikan dalam Tugas Akhir,

menjelaskan tujuan dari topik yang diangkat, memberikan batasan masalah

yang akan diteliti dan menguraikan sistematika penulisan laporan Tugas

Akhir.

BAB II. DASAR TEORI

Merupakan bab yang disusun untuk memberikan penjelasan mengenai

jaringan saraf tiruan, algoritma FOCP, dan sedikit mengenai citra dijital

beserta ekstraksi cirinya.

BAB III. PERANCANGAN SISTEM

Bab ini berisi penjelasan desain yang akan dilakukan untuk membuat software

pengidentifikasi pemilik tanda tangan dengan menggunakan algoritma FOCP

.

BAB IV. SIMULASI DAN ANALISA

Bab ini berisi hasil yang diperoleh dari penelitian dan analisa data yang

diperoleh melalui Tugas Akhir ini.


(28)

Teknik Elektro

Universitas Kristen Maranatha

4

BAB V. KESIMPULAN DAN SARAN

Bab ini menyimpulkan hasil perancangan dan memberikan saran-saran

mengenai hal-hal yang mungkin harus ditambah pada penelitian yang telah

dilakukan untuk mendapatkan hasil yang lebih baik.


(29)

Teknik Elektro

Universitas Kristen Maranatha

53

BAB V

KESIMPULAN DAN SARAN

Pada bab ini disimpulkan hasil pengamatan dan saran-saran untuk

perbaikan penelitian selanjutnya.

V.1 Kesimpulan

Identifikasi tanda tangan menggunakan algoritma

Forward-Only Counter

Propagation

dengan bantuan ekstraksi ciri

global feature

dan momen

invarian telah berhasil direalisasikan dengan eror yang didapat

0.000841676.

Hasil pengujian 2 buah tanda tangan dari 10 koresponden dengan

algoritma

Forward-Only Counter Propagation

adalah 100%. Dari

pengamatan diperoleh bahwa pelatihan JST dengan algoritma

Forward-Only Counter Propagation

memiliki kemampuan klasifikasi yang cepat

dibandingkan dengan algoritma

Backpropagation

terbukti dengan eror

pelatihan didapat 0.000841676 pada pelatihan ke 200.

V.2 Saran

Algoritma FOCP dapat dikembangkan dengan melakukan identifikasi tanda

tangan secara

online

juga untuk pengenalan pola selain tanda tangan, seperti


(30)

54

[1]. Away, Gunaidi Abdia. 2010.

The Shortcut Of MATLAB Programming

.

Bandung: Informatika.

[2].

Emre Özgündüz,Tül

in Şentürk and M. Elif Karslıgi.

Off-Line Signature

Verification And Recognition By Support Vector Machine

. Turkey

: Yıldız

.

[3].

Fausett, Laurene. 1994.

Fundamental Of Neural Networks (Architectures,

Algorithms, And Applications)

. New Jersey: Prentice Hall.

[4].

Gonzalez, Rafael C, Richard E. Woods and Steven L. 2004. Eddins.

Digital

Image Processing Using MATLAB.

New Jersey: Pearson Prentice-Hall.

[5].

Haykin, Simon. 2001.

Neural Networks, Second Edition

. India: Pearson

Education.

[6].

Hermawan, Arief, 2006,

Jaringan Saraf Tiruan, Teori dan Aplikasi

,

Yogyakarta: Andi.

[7].

Kusumadewi, Sri. 2004.

Membangun Jaringan Syaraf Tiruan (Menggunakan

MATLAB & Excel Link

. Yogyakarta: Graha Mulia.

[8].

Kusumaningtyas, Entin Martiana,S.Kom. 2010. Diktat Kuliah,

Bab 8

Jaringan Syaraf Tiruan.

Surabaya.

[9].

Purnomo, Mauridhi Hery and Arif Muntasa. 2010.

Konsep Pengolahan Citra

Digital dan Ekstraksi Fitur

. Yogyakarta: Graha Mulia.


(1)

1

BAB I

PENDAHULUAN

I.1 Latar Belakang

Seiring dengan berkembangnya komputer modern, para peneliti mencoba menantang komputer modern tersebut untuk mengerjakan tugas yang dianggap sederhana bagi manusia. Contohnya seperti manusia dapat mengenali dengan mudah huruf A atau membedakan antara kucing dan burung dari pengetahuan yang diberikan oleh orang yang mengajarkannya. Dengan pembelajaran yang berkelanjutan manusia dapat memperbaiki performansinya menjadi lebih baik lagi. Bahkan tanpa adanya seorang guru pun ada kalanya tetap dapat mengelompokkan pola-pola yang sama. Berangkat dari semua ini maka para peneliti mencoba membuat representasi buatan dari otak manusia dan mencoba untuk mensimulasikan proses pembelajaran otak manusia tersebut pada sebuah komputer. Neural Network merupakan implementasi model matematika dari proses pembelajaran[3]. Istilah artificial atau buatan digunakan karena neural network (jaringan saraf) ini diimplementasikan menggunakan program komputer

yang mampu menyelesaikan sejumlah proses perhitungan selama proses pembelajaran tersebut. [7]

Jaringan Saraf Tiruan (JST) banyak digunakan dalam berbagai bidang salah satunya adalah pengenalan pola. Ada beberapa algoritma pelatihan yang sering digunakan untuk mengidentifikasi suatu bentuk, diantaranya adalah

Backpropagation, Jaringan Hebb, Counter Propagation dan yang lainnya. Counter Propagation adalah jaringan multilapis yang berdasarkan kombinasi dari

lapisan masukan, lapisan cluster, dan lapisan keluaran. Pada Tugas Akhir ini

digunakan Forward-Only Counter Propagation (FOCP) sebagai algoritma

pembelajaran dan pengujian. Sedangkan pola yang akan diidentifikasi berupa tanda tangan berbentuk data dijital dari hasil scanning. Sebelum memasukkan

nilai matriks dari citra dijital sebagai input JST, dilakukan proses ekstraksi ciri. Ekstraksi ciri ini bertujuan mengambil nilai-nilai spesifik dari bentuk tanda tangan. Dengan melakukan ekstraksi ciri tanda tangan sebelum dilatihkan ke dalam JST maka masukan dari proses pelatihan tidak besar karena nilai yang


(2)

BAB I Pendahuluan

Teknik Elektro

Universitas Kristen Maranatha 2

diambil dan dipakai hanya nilai-nilai spesifiknya saja sehingga proses pelatihan bisa berjalan lebih cepat. Proses ekstraksi ciri sebuah citra dijital dapat dilakukan dengan berbagai cara, salah satunya adalah dengan global feature extraction dan

momen invarian.

I.2 Identifikasi Masalah

Bagaimana merealisasikan JST untuk mengidentifikasi tanda tangan menggunakan ekstraksi ciri global feature extraction, momen invarian dan

algoritma Forward-Only Counter Propagation dengan MATLAB ?

I.3 Tujuan

Merealisasikan perangkat lunak yang dapat mengidentifikasi kepemilikan tanda tangan menggunakan ekstraksi ciri global feature extraction, momen invarian dan algoritma Forward-Only Counter Propagation.

I.4 Pembatasan Masalah

Pada Tugas Akhir ini dilakukan pembatasan masalah sebagai berikut : a. Data tanda tangan yang akan digunakan diambil dari 10 orang yang

berbeda, masing-masing mempunyai 6 buah tanda tangan, 4 digunakan sebagai data latih dan 2 sebagai data uji.

b. Citra tanda tangan didapat dari hasil scanning. Setiap tanda tangan

dibubuhkan di atas kertas putih dengan bantuan kotak 4x5cm sebagai batas pada setiap tanda tangan.

c. Gambar di scan menggunakan alat scan Canon Pixma MP258 dengan resolusi 300 dpi dan komponen warna 24-bit color RGB.

d. Citra tanda tangan yang akan diekstrak cirinya berukuran 100x100 piksel. e. Algoritma pelatihan yang digunakan adalah Forward-Only Counter

Propagation.


(3)

Teknik Elektro

Universitas Kristen Maranatha 3

g. Ekstraksi ciri yang digunakan adalah momen invariant. Nilai momen tersebut didapat dari fungsi MATLAB invmoments yang diperoleh dari buku referensi Gonzalez (2004).

I.5 Sistematika Penelitian

Laporan Tugas Akhir ini terbagi menjadi lima bab utama. Untuk memudahkan dalam membaca laporan ini, akan diuraikan secara singkat sistematika beserta uraian dari masing-masing bab, yaitu:

BAB I. PENDAHULUAN

Bab ini menjelaskan yang melatarbelakangi penulisan laporan Tugas Akhir, mengidentifikasi masalah yang akan diselesaikan dalam Tugas Akhir, menjelaskan tujuan dari topik yang diangkat, memberikan batasan masalah yang akan diteliti dan menguraikan sistematika penulisan laporan Tugas Akhir.

BAB II. DASAR TEORI

Merupakan bab yang disusun untuk memberikan penjelasan mengenai jaringan saraf tiruan, algoritma FOCP, dan sedikit mengenai citra dijital beserta ekstraksi cirinya.

BAB III. PERANCANGAN SISTEM

Bab ini berisi penjelasan desain yang akan dilakukan untuk membuat software pengidentifikasi pemilik tanda tangan dengan menggunakan algoritma FOCP.

BAB IV. SIMULASI DAN ANALISA

Bab ini berisi hasil yang diperoleh dari penelitian dan analisa data yang diperoleh melalui Tugas Akhir ini.


(4)

BAB I Pendahuluan

Teknik Elektro

Universitas Kristen Maranatha 4

BAB V. KESIMPULAN DAN SARAN

Bab ini menyimpulkan hasil perancangan dan memberikan saran-saran mengenai hal-hal yang mungkin harus ditambah pada penelitian yang telah dilakukan untuk mendapatkan hasil yang lebih baik.


(5)

Teknik Elektro

Universitas Kristen Maranatha 53

BAB V

KESIMPULAN DAN SARAN

Pada bab ini disimpulkan hasil pengamatan dan saran-saran untuk perbaikan penelitian selanjutnya.

V.1 Kesimpulan

 Identifikasi tanda tangan menggunakan algoritma Forward-Only Counter Propagation dengan bantuan ekstraksi ciri global feature dan momen invarian telah berhasil direalisasikan dengan eror yang didapat 0.000841676.

 Hasil pengujian 2 buah tanda tangan dari 10 koresponden dengan algoritma Forward-Only Counter Propagation adalah 100%. Dari

pengamatan diperoleh bahwa pelatihan JST dengan algoritma Forward-Only Counter Propagation memiliki kemampuan klasifikasi yang cepat

dibandingkan dengan algoritma Backpropagation terbukti dengan eror

pelatihan didapat 0.000841676 pada pelatihan ke 200. V.2 Saran

Algoritma FOCP dapat dikembangkan dengan melakukan identifikasi tanda tangan secara online juga untuk pengenalan pola selain tanda tangan, seperti


(6)

54

DAFTAR PUSTAKA

[1]. Away, Gunaidi Abdia. 2010. The Shortcut Of MATLAB Programming.

Bandung: Informatika.

[2]. Emre Özgündüz,Tülin Şentürk and M. Elif Karslıgi.Off-Line Signature Verification And Recognition By Support Vector Machine. Turkey: Yıldız.

[3]. Fausett, Laurene. 1994. Fundamental Of Neural Networks (Architectures, Algorithms, And Applications). New Jersey: Prentice Hall.

[4]. Gonzalez, Rafael C, Richard E. Woods and Steven L. 2004. Eddins. Digital Image Processing Using MATLAB. New Jersey: Pearson Prentice-Hall.

[5]. Haykin, Simon. 2001. Neural Networks, Second Edition. India: Pearson Education.

[6]. Hermawan, Arief, 2006, Jaringan Saraf Tiruan, Teori dan Aplikasi, Yogyakarta: Andi.

[7]. Kusumadewi, Sri. 2004. Membangun Jaringan Syaraf Tiruan (Menggunakan MATLAB & Excel Link. Yogyakarta: Graha Mulia.

[8]. Kusumaningtyas, Entin Martiana,S.Kom. 2010. Diktat Kuliah, Bab 8 Jaringan Syaraf Tiruan. Surabaya.

[9]. Purnomo, Mauridhi Hery and Arif Muntasa. 2010. Konsep Pengolahan Citra Digital dan Ekstraksi Fitur. Yogyakarta: Graha Mulia.