Analisis Masalah Hasil Rancang Bangun Aplikasi

50 Tabel 4.2.1 - Tabel sample citra tanda tangan Citra digital tanda tangan Training Set Test Set Total Citra Tanda Tangan Asli Original Signature 5 x 10 5 x 10 100 Citra Tanda Tangan Pemalsuan Forgeries Signature - 10 x 10 100 TOTAL 200

4.2.2. Dasar Penggunaan Speeded Up Robust Fatures SURF

Berdasarkan analisis masalah pada bab sebelumnya, tanda tangan memiliki karakteristik yang konsistensi yang lemah. Tanda tangan cenderung berubah terkait dengan banyak hal. Oleh karena itu diperlukan metode ekstraksi citra digital yang baik dan cepat. Penggunaan SURF dalam penelitian ini dikarenakan hal berikut Bay, Ess, Tuytelaars, Gool, 2008 : 1. Dapat mendeteksi fitur lebih cepat diklaim lebih cepat dari SIFT. 2. Dapat mendeskripsikan fitur-fitur yang terdeteksi secara unik distinctive. 3. Memiliki ketahanan invariant terhadap transformasi citra seperti rotasi, penskalaan, pencahayaan, dan perubahan sudut pandang yang kecil. 4. Tahan terhadap gangguan noise dengan intensitas tertentu. 51

4.2.3. Dasar Penggunaan Fast Library for Approximate Nearest

Neighbors FLANN Fast Library for Approximate Nearest Neighbors FLANN merupakan metode matching features yang disarankan penggunaannya untuk metode SURF. Hal itu dikarenakan FLANN bersifat open source dan memiliki performa terbaik karena memiliki kecepatan dalam hal mengelompokan dataset keypoint yang terdeteksi dan kecepatan dalam melakukan kalkulasi. Marius Muja, 2012

4.3. Fase Desain Aplikasi

Pada fase ini dilakukan proses mendeskripsikan dari kebutuhan aplikasi yang sudah dikumpulkan dari proses sebelumnya menjadi informasi yang berupa diagram yang menjelaskan tentang aplikasi yang akan dibuat.

4.3.1. Desain Pengembangan

Desain pengembangan aplikasi ini menggunakan 2 jenis diagram, yaitu diagram usecase dan diagram alir flowchart. Diagram usecase dimaksudkan untuk mendeskripsikan kebutuhan user dalam aplikasi dan diagram alir untuk menjelaskan kejadian yang terjadi pada aplikasi. 52

4.3.1.1. Usecase Diagram

Deskripsi Aktor Deskripsi User Orang yang menggunakan aplikasi. Dapat mengakses keseluruhan fungsi aplikasi. Usecase Deskripsi Analisa tanda tangan User dapat membandingkan tanda tangan yang asli sudah terinput ke dalam database aplikasi dengan tanda tangan yang yang dianalisa keasliannya. Input tanda tangan User menginput tanda tangan yang sebelumnya akan di lakukan proses training oleh aplikasi. Selanjutnya data tanda tangan akan di simpan dalam database. Lihat data tanda tangan User dapat melihat data tanda tangan yang sudah terinput dalam database aplikasi. Bagan 4.3-1 - Usecase Diagram User analisa tanda tangan input tanda tangan lihat data tanda tangan ekstraksi image comparing image include include ekstraksi image Tabel 4.3.1 - tabel deskripsi aktor Tabel 4.3.2 - Tabel deskripsi usecase 53

4.3.1.2. Diagram Alir Aplikasi Flowchart

Dalam mendesain aplikasi ini terdapat 2 komponen proses utama yaitu proses input tanda tangan dan proses analisa tanda tangan. Secara detail proses tersebut tergambarkan dalam diagram alir berikut. Bagan 4.3-2 - Diagram Alir Proses Input Tanda Tangan start Input citra tanda tangan Proses ekstraksi dan matching Input citra tanda tangan latih Input citra lagi? Database latih citra ya Write data finish tidak Proses penarikan kesimpulan Keypoint, best keypoin matching, min distance, max distance Data kesimpulan latih tanda tangan min distance, max distance 54 start Data kesimpulan latih tanda tangan Proses ekstraksi citra Input citra tanda tangan uji Data keypoint Database latih citra Read data Pilih tanda tangan write data Proses matching Data hasil matching finish Bagan 4.3-3 - Diagram Alir Proses Analisa Tanda Tangan Secara detail tentang proses ekstraksi citra dan proses matching akan dijelaskan pada sub-bab berikutnya. 55

4.3.2. Desain Antarmuka Aplikasi

Aplikasi pengenalan pola tanda tangan ini dibangun pada SBC Beaglebone Black dengan rencana menggunkan display berukuran 720 x 480 pixel . Ukuran display tersebut diambil dengan alasan karena hardware yang tersedia di pasaran untuk SBC Beaglebone Black tersedia dalam ukuran tersebut. Selain itu, Aplikasi ini dalam jangka panjang diharapkan dapat dikembangkan menjadi aplikasi mobile untuk verifikasi tanda tangan. Dalam aplikasi ini terdapat tiga menu utama yaitu menu uji tanda tangan, input tanda tangan dan lihat data tangan tangan.

4.3.2.1. Mockup Aplikasi

Aplikasi tersusun dari 3 halaman, yaitu halaman uji tanda tangan, halaman input tanda tangan dan halaman lihat tanda tangan. Berikut adalah mockup dari user interface yang akan dugunakan untuk aplikasi pengenalan pola tanda tangan ini.

1. Halaman Uji Tanda Tangan

Gambar 4.3.1 - mockup halamana uji tanda tangan 56

2. Halaman Input Tanda Tangan

3. Halaman Lihat Tanda Tangan

Gambar 4.3.2 - mockup halaman input tanda tangan Gambar 4.3.3 - mockup halaman lihat tanda tangan 57

4.4. Fase Konstruksi Coding

4.4.1. Persiapan Alat

4.4.1.1. Instalasi OS untuk Beaglebone Black

Beaglebone Black di dukung oleh banyak sistem operasi dari varian linux. Beagleboard.org di bawah naungan Texas Instrument dalam website resminya menuliskan setidaknya terdapat 4 dukungan sistem operasi untuk beaglebone black yaitu angstrom, ubuntu, debian, dan android. Pada penelitian ini, peneliti menggunakan Ubuntu 14.04 sebagai sistem operasi. Penggunaan Ubuntu 14.04 dikarenakan dukungan kompatibilitas perangkat lunak pendukung dan performa yang stabil. Terdapat 2 cara nstalasi sistem operasi beaglebone yaitu dengan flashing sistem operasi ke eMMC atau flashing sistem operasi ke mikrosd. Berikut penulis paparkan cara instalasi OS Beaglebone : Basic Operation  Siapkan file sistem operasi yang akan diinstal ke dalam beaglebone. File sistem operasi berekstensi image .img. 58  Siapkan mikrosd, write file sistem operasi ke dalam mikrosd dengan menggunakan software image writer. gunakan Win32 Disk Imager untuk windows

1. Flashing eMMC

Tahapan ini mengasumsikan bahwa mikrosd sudah terisikan oleh file image sistem operasi yang akan di instal.  Masukan mikrosd ke dalam mikrosd pada beaglebone black dengan kondisi mati.  Hidupkan beaglebone black dengan menghubungkan ke sumber listrik, bersamaan dengan menekan tombol “boot” sampai semua USER LEDs hidup beberapa detik.  Biarkan selama proses instalasi sistem operasi sedang berlangsung.  Selesainya proses instalasi ditandai dengan hidupnya seluruh USER LEDs pada beaglebone black.  Lepas sumber listrik dari beaglebone black dan keluarkan mikrosd. Kemudian hidupkan kembali beaglebone black.  Beaglebone black sudah terinstal sistem operasi.

2. Flashing mikrosd

Tahapan ini mengasumsikan bahwa mikrosd sudah terisikan oleh file image sistem operasi yang akan di instal. 59 Flashing sistem operasi ke mikrosd berarti beaglebone black akan melakukan booting dari mikrosd setiap saat dihidupkan.  Masukan mikrosd ke dalam mikrosd pada beaglebone black dengan kondisi mati.  Hidupkan beaglebone black dengan menghubungkan ke sumber listrik, bersamaan dengan menekan tombol “boot” sampai semua USER LEDs hidup beberapa detik.  Beaglebone black sudah menjalankan sistem operasi dari mikrosd.

4.4.1.2. Instalasi Qt

Framework Qt yang digunakan dalam pembangunan aplikasi ini adalah Qt versi 5.2.1. Berikut cara instalasi Qt SDK dan Qt Creator. Instalasi Qt SDK  Instal semua dependensi untuk menginstal Qt SDK sudo apt-get install libx11-dev libxau-dev libxaw7-dev libxcb1- dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp- dev libxext-dev libxfixes-dev libxfont-dev libxft-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm- dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev 60 sudo apt-get install libglib2.0-dev libssl-dev libgtk2.0-dev libcups2-dev libgl1-mesa-dev libglu1-mesa-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev  Download SDK Qt yang akan di instal wget http:download.qt-project.orgofficial_releasesqt  Ekstrak paket yang di sudah download. tar -xzf qt-everywhere-opensource-src-5.2.1.tar.gz  Masuk ke direktori Qt SDK, dan run file configure untuk mengkonfigurasi Qt yang akan di instal. Proses ini memakan waktu yang cukup lama. cd qt-everywhere-opensource-src-5.2.1.tar.gz ..configure -prefix optqt-5.2.1 -confirm-license -opensource -release -system-sqlite -plugin-sql-sqlite -plugin-sql-psql - plugin-sql-mysql -nomake demos -nomake examples -nomake tools -nomake docs -nomake translations -optimized-qmake  Lakukan proses compile dengan perintah : make  Lakukan proses instalasi dengan perintah : make instal  Tambah direktori Qt yang sudah terinstal ke dalam PATH linux export QT_PLUGIN_PATH=QT_PLUGIN_PATH:optqt- 5.2.1plugins 61 Installasi Qt Creator  Download dan ekstrak Qt Creator.  Seting mode agar user dapat melukan instalasi. chmod +x nama_file.run  Jalankan dengan perintah : .nama_file.run

4.4.1.3. Instalasi Opencv

Pustaka Library pengolahan citra digital yang digunakan adalah opencv versi 2.4.9. Berikut tahapan instalasinya :  Instal semua dependensi untuk menginstal opencv. sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen3-dev yasm libfaac- dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora- dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4- opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale- dev default-jdk ant libvtk5-qt4-de  Download kode sumber opencv, lakukan ekstraksi dan buka direktori. cd ~ 62 wget http:sourceforge.netprojectsopencvlibraryfiles opencv -unix 2.4.9opencv-2.4.9.zip unzip opencv-2.4.9.zip cd opencv-2.4.9  Buat direktori untuk proses build opencv dengan perintah : mkdir build cd build  Lakukan proses compile dan instal opencv cmake -D WITH_TBB = ON -D BUILD_NEW_ PYTHON_ SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_ EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES = ON - D BUILD_EXAMPLES = ON -D WITH_QT = ON .. make make instal  Lakukan konfigurasi pada opencv, buat file opencv.conf dengan cara : sudo gedit etcld.so.conf.dopencv.conf  Isi file opencv.conf dengan usrlocaljib  Jalankan ldconfig untuk mengkonfigurasi library yang ada. sudo ldconfig  Tambahkan direktori oepncv yang sudah terinstal ke dalam PATH linux. sudo gedit etcbash.bashrc 63  Tambahkan kode berikut dalam file bash.bashrc PKG_CONFIG_PATH = PKG_CONFIG_PATH:usrlocallib pkgconfig export PKG_CONFIG_PATH  Opencv sudah terinstal.

4.4.2. Proses Akuisisi Data

Sebanyak 200 citra tanda tangan yang dikumpulkan dilakukan proses scanning untuk mendapatkan citra digital. Scanning dilakukan dengan scanner canon tipe lide 25 dengan resolusi sebesar 300 dpi. Selanjutkan citra digital dilakukan penyamaan ukuran sebesar 250 x 150 pixel. Dilakukan juga pra-processing pada citra tanda tangan berupa penghilangan warna latar belakang. Proses tersebut dilakukan agar proses pencarian fitur di proses selanjutnya menghasilkan fitur yang detail.

4.4.3. Proses Ekstraksi Fitur Feature Detection

4.4.3.1. Ruang Skala Scale Space

Salah satu yang menjadi kekurangan pada tanda tangan adalah dalam hal uniqless, karena terkadang tanda anggan seseorang berbeda ukuran skala. Pembuatan ruang skala dimaksudkan agar citra tanda tangan invariant terhadap penskalaan. Pembuatan ruang skala pada citra tanda tangan dimulai dengan melakukan perbandingan terhadap skala citra tanda tangan. Proses 64 ini dinamakan image piramid. Citra tanda tangan diperhalus smoothing dengan fungsi gaussian dan secara beruntun dengan cara sub-sampling untuk mencapai puncak tertinggi piramida. Ruang skala dibagi ke dalam beberapa level, satu level mempresentasikan respons filter yang melakukan konvolusi citra masukan dengan filter yang ukurannya bertambah tinggi. Secara matematika ruang skala 1 didefinisikan sebagai fungsi � , , � yang dihasilkan dari konvolusi antaran variabel-scale Gaussian 2, , , � dengan gambar input , . � , , � = , , � ∗ , ........................................ 1 , , � = �� ∗ − + � .................................................. 2 65 Bagan 4.4-1 - Bagan Proces Scale Space 66

4.4.3.2. Penempatan Lokasi Keypoint

Metode SURF menggunakan metode Hessian-Affine region detector untuk menentukan lokasi keypoint. Tahapan selanjutnya adalah penentuan nilai ambang Hessian Hessian treshold untuk menentukan lokasi keypoint. Nilai ambang tentukan dengan pertimbangan dari besar kontras pada gambar, keypoint didapatkan apa bila nilai kontras gambar lebih besar dari nilai ambang yang ditentukan. Jadi semakin besar nilai ambang yang ditentukan semakin sedikit keypoint yang ditemukan. Pada aplikasi ini nilai ambang hessian yang dipakai adalah 400. Penggunaan nilai hesssian tersebut dikarenakan input gambar yang digunakan merupakan input citra tanda tangan dengan warna latar putih, hal ini membuat kontras dari citra sudah cukup baik untuk menentukan keypoint. Setelah menentukan nilai hessian maka selanjutnya adalah menentukan calon keypoint. Menentukan calon keypoint ini menggunakan proses non maxima suppression. Proses ini dilakukan Gambar 4.4.1 - Penerapan scale space pada citra tanda tangan 67 dengan membandingkan setiap pixel citra pada scale space dengan 26-Neighbors, yang terdiri atas 8 titik di scale asli dan 9 di setiap scale atas dan bawahnya total keseluruhan 9+8+9=26-Neighbors. Hasil dari non-maxima suppression adalah keypoint yang dihasilkan citra. Berikut diagram yang menjelaskan pencarian keypoint citra tanda tangan: Gambar 4.4.2 - Keypoint pada citra tanda tangan 68 start Hessian = 400 Vector Image FM,N Contras FMx,Nx Hessian no yes M x+1 , N x+1 finish Pencarian Contras Non maximum suppression yes Contras FMx,Nx Keypoitnt, Kx= fMx, Nx n++ For n=1 to jumlah calon keypoint recursive n++ no For x=1 to jumlah vector image FM,N Bagan 4.4-2 - Diagram alir pencarian keypoint 69

4.4.4. Proses Pencocokan Fitur Feature Matching

Metode yang digunakan untuk mencocokan fitur dari dua citra tanda tangan yang berbeda pada aplikasi ini menggunakan metode Fast Library for Approximate Nearest Neighbors FLANN. Algoritma ini sudah berupa fungsi dalam library OpenCV. Fungsi FLANN terdiri dari fungsi index yang membentuk kd-tree pencarian dari dataset berupa keypoint yang sudah didapatkan, fungsi kknSearch untuk melakukan pencarian nearest neighbors K-dimensi, dan fungsi radiusSearch untuk melakukan indeks pencarian. Dalam hal ini, fungsi yang digunakan adalah fungsi index dan kknSearch. Fungsi index membutuhkan inputan berupa matriks yang berisi fitur- fitur dari citra referensi dan parameter pembentuk kd-tree jumlah jumlah kd- tree yang ingin dibentuk. Sedangkan fungsi knnSearch membutuhkan inputan berupa fitur-fitur dari citra uji, jumlah titik nearest neighbors, dan parameter pencarian berupa jumlah maksimum leaf yang diperiksa dalam pencarian. Proses yang terjadi pada pencocokan fitur ini adalah pembentukan matriks yang berisi fitur dari citra referensi dan citra uji. Selanjutnya pembentukan kd-tree yang berasal dari fitur citra referensi dengan ketentuan beberapa kd-tree acak. Kemudian dimulai pencarian nearest neighbor terhadap fitur dari citra uji. 70 Pencocokan fitur Inisiasi matriks deskriptor Baca dan salin deskriptor Bentuk kd-tree Pencarian nearest neighbor finish Pencarian nearest neighbors For i=1 to jumlah fitur Baca jarak fitur i ke tetangga terdekat Perbandingan jarak 0.36 Simpan ke daftar fitur cocok finish yes recursive no i++ i++ Bagan 4.4-3 - Diagran alir pencocokan fitur Bentuk keluaran dari pencocokan fitur ini adalah indeks fitur yang merupakan tetangga terdekat dan jarak antar fitur. Fitur tersebut dikatakan cocok apabila perbandingan jarak euclidean sebesar 0.36. Gambar 4.4.3 - Hasil pencocokan fitur 71

4.5. Hasil Rancang Bangun Aplikasi

Aplikasi pengenalan pola tanda tangan ini berhasil dibangun pada Single Board Computer Beaglebone Black dengan framework QT C++ dan pustaka pemprosesan citra digital opencv. Berikut screenshoot aplikasi pengenalan pola tanda tangan single board computer beaglebone black : Gambar 4.5.1 - Tampilan aplikasi : menu analisa tanda tangan 72 Gambar 4.5.2 - Tampilan aplikasi : menu input tanda tangan Gambar 4.5.3 - Tampilan aplikasi : menu lihat tanda tangan 73

4.6. Fase Pengujian Aplikasi

Aplikasi berjalan dengan baik pada SBC Beaglebone Black. Seluruh fungsi dapat bekerja dengan baik dan user interface menampilkan output yang sesuai. Berikut pengujian black box yang dilakukan oleh penulis : Tabel 4.6.1 - tabel pengujian blackbox No Rancangan Proses Fungsi Hasil 1 Halaman Analisa Tanda tangan  Load tanda tanda dalam database  Mencari file citra tanda tangan  Menampilkan citra tanda tangan  Proses analisa  Menampilkan citra berdasarkan kemiripan tanda tangan  Menampilkan hasil analisa ke dalam kolom hasil  Menampilkan persentase kemiripan citra tanda tangan dan kesimpulan analisa Ok 2 Halaman Input Tanda tangan  Mencari file citra tanda tangan  Menampilkan citra tanda tangan  Proses ekstrasi  Menampilkan citra berdasarkan kemiripan tanda tangan  Menampilkan hasil input ke dalam kolom hasil  Rekursif input citra tanda tangan  Menyimpan hasil analisa ke database  Membersihkan kolom tanda tangan Ok 3 Halaman Lihat Tanda tangan  Load tanda tangan dari database  Menampilkan citra tanda tangan  Menampilkan citra tanda tangan beserta keypoint yang terdeteksi  Menampilkan data citra tanda tangan dari database Ok 74

4.7. Pengujian Keakuratan Aplikasi

Pengujian dilakukan untuk mengetahui keakuratan dari aplikasi dalam mengenali pola citra tanda tangan. Pengujian dilakukan dengan 200 citra tanda tangan dari 10 orang, secara detail dijelaskan dalam tabel berikut : Tabel 4.7.1 - tabel sampel citra tanda tangan Citra digital tanda tangan Training Set Test Set Total Citra Tanda Tangan Asli Original Signature 5 x 10 5 x 10 100 Citra Tanda Tangan Pemalsuan Forgeries Signature - 10 x 10 100 TOTAL 200 Pengujian dilakukan untuk mendapatkan nilai False Rejection Rate FRR 1 dan False Acceptance Rate FAR 2. False Rejection Rate FRR dimaksudkan untuk mengetahui tingkat kegagalan aplikasi dalam mengenali citra tanda tangan asli, sedangkan False Acceptance Rate FAR untuk mengetahui tingkat kegagalan aplikasi dalam menolak tanda tangan palsu. �� = � ℎ � � � � � ℎ � � × ............................................... 1 �� = � ℎ � � � � ℎ � � × ............................................. 2 Hasil yang didapatkan pada proses ini digambarkan pada tabel berikut : 75 Tabel 4.7.2 - Tabel hasil pengujian