i Universitas Kristen Maranatha
IDENTIFIKASI TANDA TANGAN MENGGUNAKAN
ALGORITMA DOUBLE BACKPROPAGATION
Disusun oleh:
Togu Pangaribuan 0722087
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jl. Prof.Drg. Suria Sumantri, MPH No. 65, Bandung 40164
email: togu_pang@yahoo.com
ABSTRAK
Tulisan tanda tangan dapat digunakan untuk mengenali identitas seseorang. Pada kenyataannya, penulisan tanda tangan seseorang tidak konsisten atau tidak selalu tepat sama. Salah satu metode untuk mengidentifikasi tanda tangan adalah dengan menggunakan Jaringan Saraf Tiruan (JST). JST merupakan sistem pemrosesan informasi yang dirancang menirukan cara kerja saraf otak manusia dalam menyelesaikan suatu masalah dengan melakukan proses belajar.
Pada Tugas Akhir ini, dirancang dan direalisasikan sebuah perangkat lunak untuk mengidentifikasi tanda tangan dengan JST menggunakan algoritma Double Backpropagation. Citra tanda tangan diperoleh melalui scanner dan disimpan dalam file pada komputer, kemudian citra diolah pada tahap preprocessing image dan ekstraksi fitur. Preprocessing image terdiri dari 4 tahapan yaitu : grayscale, thresholding, resize dan thinning. Ekstraksi fitur yang digunakan adalah moment invariant. Nilai ekstraksi fitur yang didapat menjadi masukan JST. Pelatihan dilakukan untuk mendapatkan nilai bobot JST yang akan digunakan untuk pengujian citra.
Sistem pengenalan tanda tangan menggunakan algoritma Double Backpropagation mampu mengidentifikasi tanda tangan dengan persentase kesuksesan identifikasi 100% untuk citra uji sama dengan citra latih dan 80% untuk citra uji berbeda dengan citra latih, namun masih berasal dari kepemilikan yang sama dengan citra latih. Selain itu, berdasarkan hasil percobaan, diketahui bahwa sistem ini lebih baik diimplementasikan untuk sistem verifikasi tanda tangan.
ii Universitas Kristen Maranatha
SIGNATURE IDENTIFICATION USING
DOUBLE BACKPROPAGATION ALGORTHM
Composed by: Togu Pangaribuan
0722087
Electrical Engineering, Maranatha Christian University Jl. Prof.Drg. Suria Sumantri, MPH No. 65, Bandung 40164
email: togu_pang@yahoo.com
ABSTRACT
Signature is used to recognize identity. In fact, signature writing is inconsistent or not precisely the same with other signature writing. One of the methods to identify signature is used Artificial Neural Network. Artificial Neural Network is an informatioan processing system that is designed imitating the workings of the human brain in solving problems with a learning.
In this final project designing and realizing a softwere to identify signature with Artificial Neural Network using double backpropagation algorithm are presented. Image of signature were scanned through scanner and saved in computer, then processed on computer through stages preprocessing image and feature extraction. Preprocessing image consists of four stages, namely: grayscale, thresholding, resize, and thinning. Feature extraction which is used is moment invariants. Feature extraction values which are obtained become input for Artificial Neural Network. Training carried out to obtain weight values to be used for testing on tested image.
Signature recognition system using Double Backpropagation algorithm can identify signature with the percentage of success identification 100% for the test image is same with a training image and 80% for the test image is different with the training image, but still have same ownership of identity with the training image. In addition, based on the experimental result, it is known that, this system is better implemented for signature system based on verification system.
v Universitas Kristen Maranatha
DAFTAR ISI
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... iv
BAB I PENDAHULUAN I.1 Latar Belakang ... 1
I.2 Identifikasi Masalah ... 2
I.3 Tujuan ... 2
I.4 Pembatasan Masalah ... 2
I.5 Sistematika Penulisan ... 2
BAB II LANDASAN TEORI II.1 Pengertian Citra Digital ... 4
II.1.1 Resolusi Pixel ... 4
II.1.2 Preprocessing ... 5
a. Grayscale ... 5
b. Thresholding ... 6
c. Thinning ... 6
II.2 Momen ... 7
II.3 Jaringan Saraf Tiruan ... 8
II.3.1 Model Neuron ... 9
II.3.2 Fungsi Aktivasi ... 10
a. Fungsi Sigmoid Biner ... 12
b. Fungsi Sigmoid Bipolar ... 12
c. Fungsi Linear ... 13
vi Universitas Kristen Maranatha
a. Jaringan Singel Layer ... 14
b. Jaringan Multi Layer ... 14
II.3.4 Algoritma Pembelajaran ... 15
a. Supervised Learning ... 16
b. Unsupervised Learning ... 16
II.3.5 Sum Square Error dan Root Mean Square Error ... 16
II.3.6 Double Backpropagation ... 18
II.3.6.1 Arsitektur Double Backpropagation ... 18
II.3.6.2 Algoritma Double Backpropagation ... 19
BAB III PERANCANGAN SISTEM IDENTIFIKASI TANDA TANGAN MENGGUNAKAN ALGORITMA DOUBLE BACKPROPAGATION III.1 Sampel Citra ... 23
III.2 Preprocessing Image ... 23
III.3 Moment Invariant ... 24
III.4 Perancangan Jaringan Saraf Tiruan ... 24
III.5 Perancangan GUI (Graphic User Interface) ... 26
III.5.1 Perancangan GUI Pelatihan ... 26
III.5.2 Perancangan GUI Uji ... 26
BAB IV PENGUJIAN DAN ANALISA DATA IV.1 Proses Pelatihan ... 29
IV.2 Proses Pengujian ... 31
4.2.1 Pengujian 1 ... 32
4.2.1.1 Analisa Pengujian 1 ... 37
4.2.2 Pengujian 2 ... 37
4.2.2.1 Analisa Pengujian 2 ... 40
4.2.3 Pengujian 3 ... 40
vii Universitas Kristen Maranatha
BAB V KESIMPULAN DAN SARAN
5.1 Kesimpulan ... 44 5.2 Saran ... 44
DAFTAR PUSTAKA ... 45 LAMPIRAN A PROGRAM MATLAB
viii Universitas Kristen Maranatha
DAFTAR GAMBAR
Gambar 2.1 Grayscale ... 5
Gambar 2.2 Thresholding. ... 6
Gambar 2.3 Thinning. ... 6
Gambar 2.4 Stuktur Neuron Jaringan Saraf ... 10
Gambar 2.5 Fungsi Aktivasi pada Jaringan Saraf Sederhana... 11
Gambar 2.6 Fungsi Aktivasi Sigmoid Biner. ... 12
Gambar 2.7 Fungsi Aktivasi Sigmoid Bipolar. ... 13
Gambar 2.8 Fungsi Aktivasi Identitas. ... 13
Gambar 2.9 Jaringan dengan Single Layer. ... 14
Gambar 2.10 Jaringan dengan Multi Layer. ... 15
Gambar 2.11 Arsitektur Double Backpropagation ... 18
Gambar 3.1 (a) Diagram Pelatihan, (b) Diagram Alir Pengujian ... 22
Gambar 3.2 Diagram Alir Preprocessing Image. ... 24
Gambar 3.3 Arsitektur Perancangan Double Backpropagation yang Direalisasikan ... 25
Gambar 3.4 Rancangan GUI Program Pelatihan ... 26
Gambar 3.5 Rancangan GUI Program Uji ... 27
Gambar 4.1 Tampilan GUI Menu Utama ... 29
Gambar 4.2 Tampilan GUI Pelatihan ... 31
ix Universitas Kristen Maranatha
DAFTAR TABEL
Tabel 3.1 Target Untuk Masing-Masing Orang ... 26
Tabel 3.2 Penjelasan Rancangan GUI Program Pelatihan. ... 27
Tabel 3.3 Penjelasan Rancangan GUI Program Uji ... 28
Tabel 4.1 Hasil Ekstraksi Fitur Citra. ... 30
Tabel 4.2 Data Hasil Pengujian 1 ... 33
Tabel 4.3 Data Hasil Pengujian 2 ... 39
LAMPIRAN A
LAMPIRAN
A
A-1
Program GUI Pelatihan
function varargout = guiLatih(varargin)
% GUILATIH M-file for guiLatih.fig
% GUILATIH, by itself, creates a new GUILATIH or raises the
% GUILATIH('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in GUILATIH.M with the given input arguments.
%
% GUILATIH('Property','Value',...) creates a new GUILATIH or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before guiLatih_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help guiLatih
% Last Modified by GUIDE v2.5 07-Mar-2012 00:17:46
% Begin initialization code - DO NOT EDIT
gui_Singleton = 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
LAMPIRAN
A
A-2
% --- Executes just before guiLatih is made visible.
function guiLatih_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 guiLatih (see VARARGIN)
% Choose default command line output for guiLatih
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes guiLatih wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = guiLatih_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)
load datatd x;
% --- 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) % baca gambar
LAMPIRAN
A
% Feed Forward Hidden layer% ---
LAMPIRAN
A
% Feed Forward Hidden layerLAMPIRAN
A
% --- 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)
LAMPIRAN
A
A-7
Program GUI Pengujian
function varargout = guiUji(varargin)
% GUIUJI M-file for guiUji.fig
% GUIUJI, by itself, creates a new GUIUJI or raises the
% GUIUJI('CALLBACK',hObject,eventData,handles,...) calls the local
% applied to the GUI before guiUji_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help guiUji
% Last Modified by GUIDE v2.5 17-Apr-2012 12:43:54
% Begin initialization code - DO NOT EDIT
gui_Singleton = 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
LAMPIRAN
A
A-8
% --- Executes just before guiUji is made visible.
function guiUji_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 guiUji (see VARARGIN)
% Choose default command line output for guiUji
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes guiUji wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = guiUji_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.text13,'String',' ');
[nama_file1, nama_path1]=uigetfile('*.bmp','Load Data');
LAMPIRAN
A
A-9
set(handles.text7,'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)
% --- % Ekstraksi Fitur (moment invariant)
% ---
phi17 = invmoments(citra1); x1=[phi17];
save dataciri x1;
% --- 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) % Feed Forward Hidden layer
LAMPIRAN
A
% --- 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)
close
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)
LAMPIRAN
A
A-11 % 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)
% 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');
LAMPIRAN B
HASIL PENGUJIAN CITRA
LAMPIRAN B
B-1 Tabel B.1 Hasil Pengujian 1No Nama Keluaran Dikenali Identifikasi
LAMPIRAN B
B-2No Nama Keluaran Dikenali Identifikasi
Citra Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Sebagai
8
Ryan001 0 0.0001 0.9995 0.0056 0.0005 0.0009 0 0 0.0001 0 Ryan Benar Ryan002 0 0.0004 0.9982 0.0116 0.0103 0.0005 0 0 0.0001 0 Ryan Benar Ryan004 0.0144 0.0026 0.9767 0.0003 0.0082 0.0006 0 0 0 0.0003 Ryan Benar Ryan005 0.0154 0 0.9773 0.0004 0 0.0013 0.0039 0 0.0012 0 Ryan Benar
9
Torang001 0 0.9898 0 0 0.0021 0 0 0.001 0.0004 0.0089 Torang Benar Torang002 0 0.9952 0 0 0 0 0.0001 0.0031 0.0001 0.0036 Torang Benar Torang004 0 0.9942 0 0 0 0 0.0002 0.004 0 0.0048 Torang Benar Torang005 0.0026 0.988 0 0 0 0 0 0.0065 0.0054 0.0032 Torang Benar
10
LAMPIRAN B
B-3Tabel B.2 Hasil Pengujian 2
No Nama Keluaran Dikenali Identifikasi
Citra Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Sebagai
1 Ella003 0 0 0 0 0 0.0017 0.0019 0 0 0.9994 Ella Benar
Ella006 0.0003 0 0 0 0 0.0012 0 0 0 0.9893 Ella Benar
2 Febri003 0.0005 0.0001 0.0001 0 0 0.0003 0.0002 0 0.9106 0.0002 Febri Benar Febri006 0.0666 0.0097 0 0 0.0471 0 0 0.0095 1 0 Febri Benar
3 Febrian003 0 0.0245 0 0 0 0 0 0.9802 0 0 Febrian Benar
LAMPIRAN B
B-4Tabel B.3 Hasil Pengujian 3
No Nama Keluaran Dikenali Identifikasi
Citra Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Sebagai
1 Universitas Kristen Maranatha
BAB I
PENDAHULUAN
I.1 Latar Belakang
Identifikasi merupakan proses untuk mengenali dan membedakan sesuatu hal dengan yang lainnya. Tulisan tanda tangan (tanda tangan) dapat digunakan untuk mengenali dan memeriksa identitas seseorang. Proses identifikasi tanda tangan memerlukan ketelitian khusus untuk dapat mengenali ciri dari citra tanda tangan tersebut dengan yang lain. Namun permasalahan yang timbul, penulisan tanda tangan tidak selalu tepat sama. Untuk itu diperlukan juga kemampuan pembelajaran yang nantinya diharapkan mampu untuk dapat mengidentifikasi tanda tangan yang tidak tepat sama atau mengalami sedikit penggubahan dari kepemilikan tanda tangan yang sama. Jaringan saraf tiruan merupakan salah satu sistem pemrosesan informasi yang dirancang menirukan cara kerja otak manusia dalam menyelesaikan suatu masalah dengan melakukan proses belajar melalui perubahan bobot sambungan antar neuron sehingga membantu sistem dapat semakin “pintar”.
Backpropagation merupakan algoritma umum dari jaringan saraf tiruan.
Pada proses pembelajaran algoritma Backpropagation termasuk kategori metode supervised learning. Metoda pelatihan menggunakan algoritma ini dapat
menghasilkan keseimbangan antara kemampuaan jaringan untuk mengenali pola yang digunakan selama pelatihan serta kemampuan jaringan memberikan respon yang benar terhadap pola masukan serupa namun tidak sama dengan pola yang dipakai selama pelatihan [4].
Bab I Pendahuluan
2 Universitas Kristen Maranatha I.2 Identifikasi Masalah
Bagaimana merealisasikan Jaringan Saraf Tiruan untuk mengidentifikasi tanda tangan dengan menggunakan algoritma Double Backpropagation ?
I.3 Tujuan
Merancang dan merealisasikan perangkat lunak untuk mengidentifikasi kepemilikan tanda tangan seseorang menggunakan algoritma Double Backpropagation.
I.4 Pembatasan Masalah
1. Data yang digunakan adalah tanda tangan dari 10 orang. Setiap orang menuliskan 6 tanda tangan. Empat dari enam tanda tangan tersebut di gunakan sebagai data latih dan 2 tanda tangan sebagai data uji.
2. Gambar diperoleh dengan menuliskan tanda tangan pada kertas yang dibatasi kotak berukuran 4x5 cm.
3. Gambar discanning dengan resolusi 300 dpi dan komponen warna 24-bit format Red Green Blue (RGB) untuk memperoleh citra tanda tangan.
4. Citra tanda tangan yang akan digunakan adalah 100 x 100 pixel dengan ekstensi bitmap (file bmp).
5. Algoritma yang digunakan adalah Double Backpropagation. 6. Simulasi dilakukan menggunakan MATLAB 7.4
7. Ekstraksi Fitur yang digunakan adalah moment invariant (Modul diperoleh dari buku Digital Image Processing Using Matlab [1]).
I.5 Sistematika Penulisan
Bab I Pendahuluan
3 Universitas Kristen Maranatha
BAB I : PENDAHULUAN
Bab ini menjelaskan tentang latar belakang masalah, identifikasi masalah, tujuan, pembatasan masalah, dan sistematika penulisan.
BAB II : LANDASAN TEORI
Bab ini menjelaskan landasan teori mengenai pengolahan citra, jaringan saraf tiruan, dan algoritma Double Backpropagation.
BAB III : PERANCANGAN PERANGKAT LUNAK
Bab ini berisi penjelasan perancangan yang akan dilakukan untuk membuat perangkat lunak identifikasi tanda tangan dengan menggunakan algoritma Double Backpropagation.
BAB IV : PENGUJIAN DAN ANALISA DATA
Bab ini menampilkan dan menganalisa hasil yang diperoleh dari perancangan perangkat lunak identifikasi tanda tangan menggunakan algoritma Double Backpropagation.
BAB V : SIMPULAN DAN SARAN
44 Universitas Kristen Maranatha
BAB V
KESIMPULAN DAN SARAN
Bab ini berisikan kesimpulan dari hasil penelitian dan saran-saran mengenai hal yang bisa ditambahkan untuk penelitian selanjutnya agar mendapatkan hasil yang lebih baik.
5.1Kesimpulan.
Pembuatan perangkat lunak identifikasi tanda tangan dengan algoritma Double Backpropagation berhasil diimplementasikan dengan matlab 7.4.
1. Pengujian pada citra yang diuji sama dengan citra latih diperoleh persentase keberhasilan 100%.
2. Pengujian pada citra yang diuji merupakan citra yang belum pernah dilatih tetapi citra berasal dari kepemilikan yang sama dengan citra pada proses latih diperoleh persentase keberhasilan 80%.
3. Pengujian pada citra yang diuji belum pernah dilatih dan berasal dari kepemilikan yang berbeda dari citra pada proses latih diperoleh persentase keberhasilan 13.33%.
5.2 Saran.
1. Gunakan ekstraksi fitur yang lebih handal untuk mendapatkan ciri yang baik dari suatu citra.
45 Universitas Kristen Maranatha
DAFTAR PUSTAKA
[1] Gonzalez R.C., Woods R.E., Eddins L.S. 2004. Digital Image Processing Using Matlab. Addison Wesley.
[2] Hermawan, Arief. 2006. Jaringan Saraf Tiruan, Teori dan Aplikasi. Yogyakarta: Andi.
[3] J. Kamruzzaman and S. M. Aziz, A Neural Network Based Character Recognition System Using Double Backpropagation, Malaysia Journal of Computer Science, Vol. 11 No. 1, juni 1998.
[4] J. Kamruzzan, Y. Kumagai and S. M. Aziz, Character Recognition by Double Backpropagation Neural Network, in Proc. TENCON’97, Australia, 1997, pp. 411-414.
[5] Kusumadewi, Sri. 2004. Membangun Jaringan Syaraf Tituan Menggunakan Matlab & Excel Link. Yogyakarta:Graha Ilmu.
[6] Kusumadewi, Sri dan Hartati, Sri. 2010. Neuro-Fuzzy. Yogyakarta:Graha ilmu.
[7] Purnomo, Mauridhi Hery dan Muntasa, Arif. 2010. Konsep Pengolahan Citra Digital dan Ekstraksi Fitur. Yogyakarta: Graha Ilmu.
[8] Putra, Darma. 2008. Sistem Biometrika. Yogyakarta: Andi.
[9] Putra, Darma. 2009. Pengolahan Citra Digital. Yogyakarta: Andi.