• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
30
0
0

Teks penuh

(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 : prinzessiny@gmail.com

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.

(2)

FORWARD-ONLY COUNTER PROPAGATION ALGORITHM

ABSTRACT

Eka Putri Tambun (0722118)

Department of Electrical Engineering Maranatha Christian University

email : prinzessiny@gmail.com

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.

(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

(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

(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

(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

(7)

A-1

LAMPIRAN A

(8)

A-2

Program Pelatihan FOCP

clc clear all

(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

(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;

(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

(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

(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;

(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)

(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

(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

(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

(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

(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

(28)

Teknik Elektro

Universitas Kristen Maranatha

4

BAB V. KESIMPULAN DAN SARAN

(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.

Gambar

Tabel Hasil Pengujian I
Tabel Hasil Pengujian II

Referensi

Dokumen terkait

Hasil penelitian kadar air produk dengan ANAVA (α=5%) menunjukkan bahwa perbedaan konsentrasi garam tidak memberikan perbedaan nyata terhadap kadar air putih

mempunyai gas buang yang mengandung kadar-kadar polutan yang

Harga Pokok Produk untuk Sekolah Menengah Kejuruan Bidang Keahlian Bisnis dan Manajemen; Kompetensi Keahlian

pinjaman nasabah, maka pendapatan yang diperoleh Bank Akuntansi Rakyat semakin

While actual interactions with programs is becoming possible in real time when the user is connected over the Internet – television becoming almost indistinguishable from games,

Bahan untuk pengujian sifat fisis dan mekanis harus dipilih dengan mempertimbangkan tujuan penggunaan (penentuan kualitas tegakan, pohon model, banyaknya kayu gergajian,

Brand ambassador yang dipilih untuk menyampaikan pesan mengenai produk kepada konsumen harus mempunyai keahlian, pengalaman, dan pengetahuan tentang merek atau produk

MENINGKATKAN KEMAMPUAN MENGENAL KONSEP BILANGAN DENGAN MENGGUNAKAN MEDIA BARANG BEKAS PADA ANAK USIA DINI.. Universitas Pendidikan Indonesia | repository.upi.edu |