PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Penerapan Metode Eigenface Untuk Pencocokan Wajah Dengan Menggunakan Klasifikasi Naive Bayesian SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh :
Halaman Judul Ega Bima Putranto 115314059
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Application of Eigenface Method For Face Recognize Use Naïve Bayesian Classified A Thesis Presented as Partial Fulfillment of the Requirements to Obtain Sarjana Komputer Degree in Informatics Engineering Study Program
Written By:
Halaman Judul (English)
Ega Bima Putranto 115314059
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2015 ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PESETUJUAN SKRIPSI
Penerapan Metode Eigenface Untuk Pencocokan Wajah Dengan Menggunakan Klasifikasi Naive Bayesian
Disusun oleh: Ega Bima Putranto 115314059
Telah disetujui oleh:
Dosen Pembibing
Dr. Cyprianus Kuntoro Adi, SJ., M.A., M.Sc.
iii
Tanggal:
Juli 2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PENGESAHAN SKRIPSI
Penerapan Metode Eigenface Untuk Pencocokan Wajah Dengan Menggunakan Klasifikasi Naive Bayesian
Dipersiapkan dan disusun oleh: Nama :
Ega Bima Putranto
NIM :
115314059
Telah dipertahankan di depan panitia penguji pada tanggal 22 Juli 2015 dan dinyatakan memenuhi syarat
Susunan Panitia Penguji: Nama Lengkap
Tanda Tangan
Ketua
Dr. :Anastasia Rita Widiarti, M.Kom
___________
Sekretaris
Eko :Hari Parmadi, S.Si., M.Kom
___________
Anggota
Dr. Cyprianus : Kuntoro Adi, SJ., M.A., M.Sc.
___________
Yogyakarta,
Juli 2015
Fakultas Sains dan Teknologi Universitas Sanata Dharma Dekan,
(Paulina Heruningsih Prima Rosa, S.Si., M.Sc)
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSEMBAHAN
“One way to forget about pain is to do something you will be in completely…So Computer Games”-- Danil Ishutin (Dendi) “Real life just like dota 2 because no support no win”-- PTZ
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PERNYATAAN KEASLIAN KARYA Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.
Yogyakarta, 30 Juni 2015 Penulis
Ega Bima Putranto
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma: Nama
:
Ega Bima Putranto
NIM
:
115314059
Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Universitas Sanata Dharma karya ilmiah yang berjudul: PENERAPAN METODE EIGENFACE UNTUK PENCOCOKAN WAJAH DENGAN MENGGUNAKAN KLASIFIKASI NAIVE BAYESIAN Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikan di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis. Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta, 30 Juli 2015 Yang menyatakan,
Ega Bima Putranto
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PENERAPAN METODE EIGENFACE UNTUK PENCOCOKAN WAJAH DENGAN MENGGUNAKAN KLASIFIKASI NAIVE BAYESIAN
ABSTRAK Wajah adalah biometrik yang secara alamiah dipunyai dan menjadi ciri khas setiap manusia. Ciri khas wajah yang unik ini dapat dimanfaatkan untuk membantu komputer mengenali wajah seseorang. Di antara metode yang ada, supaya komputer dapat mengenali ciri wajah digunakan metode eigenface di tahap preprocessing dan metode naïve bayesian untuk proses klasifikasi. Kedua metode ini yang digunakan untuk pencocokan wajah dalam tulisan ini. Setiap hasil dari proses klasifikasi akan dihitung akurasinya dengan menggunakan confusion matrix. Dari hasil percobaan yang telah dilakukan, dengan menggunakan metode ini dapat dicapai akurasi 88% dari 200 citra wajah yang berasal dari 20 mahasiswa dimana setiap mahasiswa mempunyai 10 citra wajah. Berdasarkan hasil akurasi ini dapat disimpulkan bahwa untuk pengenalan wajah dengan menggunakan komputer dapat digunakan metode eigenface dan naïve bayesian.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
APPLICATION OF EIGENFACE METHOD FOR FACE RECOGNIZE USE NAÏVE BAYESIAN CLASSIFIED
ABSTRACT Face is a biometric that naturally belongs to human race and become one of human characteristic. This unique characteristic can be used to help computers recognize an image of person's face. In order to help computer recognize an image of person’s face, eigenface method can be used in the image preprocessing stage and naïve bayesian method for the classification process. Both of these methods are used for face recognize in this paper. Each result of the classification process will be calculated using confusion matrix to gain the accuracy of the classification. The results of the experiments that have been conducted, the accuracy reach up to 88% obtained from 200 face images by 20 students where each student have 10 face images. Based on this result, eigenface and naïve bayesian concluded as suitable method for recognize an image of person’s face.
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR Dengan kerendahan hati terucap puji dan syukur kepada Tuhan Yang Maha Esa karena dengan perlindungan dan kuasa-Nya penulis dapat menyelesaikan skripsi yang berjudul “Penerapan Metode Eigenface Untuk Pencocokan Wajah Dengan Menggunakan Klasifikasi Naïve Bayesian”. Pada proses penulisan tugas akhir ini, terucap banyak terimakasih kepada: 1. Kedua orang tua penulis, Bapak M. Alim Bimo Gunarto dan Ibu Siti Baroyani yang menyemangati penulis. 2. Kedua saudara penulis, Antonius Aryanto Nugroho dan Mita Kurnianti yang tanpa henti memberi semangat kepada penulis. 3. Romo Dr. Cyprianus Kuntoro Adi, SJ, MA, M.Sc. selaku dosen pembimbing, terima kasih atas bimbingan, kesabaran, inspirasi, dan motivasi yang telah diberikan sehingga penulis dapat menyelesaikan skripsi ini. 4. Bapak Eko Hari Parmadi, S.Si., M.Kom. dan Ibu Dr. Anastasia Rita Widiarti, M.Kom. selaku dosen penguji yang telah memberikan banyak masukan terhadap skripsi ini. 5. Romo Poldo Situmorang, Benedictus Reynusa Paradhipta dan Aluisius Bayu Saputra yang bersama-sama memberikan ide, inspirasi dan semangat dengan cara membantu ataupun menyusahkan. 6. Seluruh civitas akademika Teknik Informatika angkatan 2011, terutama anggota C++ yang telah berjuang bersama dan saling memberi semangat dan inspirasi. 7. Teman-teman Dota 2 Yogo, Niel, Pantrek, Angga, Nusa dan yang tidak bisa disebut satu persatu, yang telah menemani dan menghibur penulis. 8. Semua pihak baik langsung maupun tidak langsung, yang telah membantu dalam proses penyelesaian skripsi ini. Yogyakarta, 22 Juli 2015 Penulis,
Ega Bima Putranto
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Daftar Isi
Halaman Judul ....................................................................................... i Halaman Judul (English) ....................................................................... ii HALAMAN PESETUJUAN ............................................................... iii HALAMAN PENGESAHAN ............................................................. iv HALAMAN PERSEMBAHAN ........................................................... v PERNYATAAN KEASLIAN KARYA .............................................. vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI ............. vii ABSTRAK ......................................................................................... viii ABSTRACT ......................................................................................... ix KATA PENGANTAR .......................................................................... x Daftar Isi .............................................................................................. xi Daftar Gambar.................................................................................... xiii Daftar Tabel ....................................................................................... xiv BAB I PENDAHULUAN .................................................................... 1 1.1 Latar Belakang Masalah.............................................................. 1 1.2 Rumusan Masalah ....................................................................... 2 1.3 Tujuan ......................................................................................... 2 1.4 Batasan Masalah ......................................................................... 2 BAB II LANDASAN TEORI .............................................................. 3 2.1 Pengenalan Wajah ....................................................................... 3 2.1.1 Pengertian Pengenalan Wajah .............................................. 3 2.1.2 Tahapan Pengenalan Wajah ................................................. 4 2.1.3 Ekstrasi Ciri ......................................................................... 5 2.2 Metode Eigenface ....................................................................... 5 2.2.1 Principal Component Analysis (PCA) ................................. 7 2.2.2 Proses Principal Component Analysis (PCA) / Eigenface .. 7 2.2.3 Contoh PerhitunganEigenface ............................................. 8 2.3 Naive Bayesian ......................................................................... 16 2.3.1 Klasifikasi Naive Bayesian ................................................ 16 2.3.2 Contoh Perhitungan Naive Bayesian ................................. 18 2.4 Confusion Matrix ...................................................................... 20 xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III METODOLOGI ................................................................... 22 3.1 Metode Pengumpulan Data ....................................................... 22 3.2 Teknik Analisis Data ................................................................. 22 3.3 Desain User Interface ................................................................ 28 3.4 Spesifikasi Software dan Hardware.......................................... 30 BAB IV IMPLEMENTASI DAN ANALISIS HASIL ...................... 31 4.1 Implementasi ............................................................................. 31 4.1.1 Pengolahan Data ................................................................ 31 4.1.1.1 Preprocessing ............................................................. 32 4.1.1.2 Proses .......................................................................... 34 4.1.1.3 Output ......................................................................... 35 4.1.1.4 Akurasi ........................................................................ 35 4.1.2 User Interface ..................................................................... 36 4.2 Analisis ..................................................................................... 39 BAB V KESIMPULAN DAN SARAN ............................................ 43 5.1 Kesimpulan ............................................................................... 43 5.2 Saran ......................................................................................... 43 Daftar Pustaka ..................................................................................... 45 LAMPIRAN ........................................................................................ 46
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Daftar Gambar Gambar 2.1 PengenalanWajah (Zhao dan Chellapa, 2006) ........................ 4 Gambar 3.1 Diagram Block ...................................................................... 22 Gambar 3.2 User Interface ........................................................................ 29 Gambar 4.1 Data Awal I ........................................................................... 31 Gambar 4.2 Data Awal II .......................................................................... 32 Gambar 4.3 Cropping dan Resize ............................................................. 32 Gambar 4.4 Data I ..................................................................................... 33 Gambar 4.5 Data II ................................................................................... 33 Gambar 4.6 Tabel Hasil Confusion matrix ............................................... 35 Gambar 4.7 Hasil Matrix .......................................................................... 36 Gambar 4.8 User Interface ........................................................................ 37
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Daftar Tabel Tabel 2.1 Hasil eigen value dan eigen vektor ........................................... 13 Tabel 2.2 Tabel IPK .................................................................................. 18 Tabel 2.3 Hasil IPK ................................................................................... 19 Tabel 2.4 Hasil Uji IPK ............................................................................ 19 Tabel 2.5 Confusion Matrix ...................................................................... 20 Tabel 2.6 Contoh Confusion Matrix ......................................................... 21 Tabel 3.1 Pembagian Data ........................................................................ 27 Tabel 3.2 Contoh Hasil Confusion Matrix (akurasi 88%) ........................ 28 Tabel 4.1 Hasil Percobaan Akurasi ........................................................... 40
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 1
1 BAB I PENDAHULUAN
1.1 Latar Belakang Masalah Indonesia merupakan negara yang maju. Teknologi di Indonesia juga sudah bisa dikatakan maju karena penggunaan teknologi yang banyak. Bisa dibuktikan dengan salah satunya adalah biometrik. Biometrik adalah metode mengenali karakteristik biologis manusia dari ciri fisik biologisnya. Contoh penerapan biometrik di Indonesia beberapa diantaranya adalah sistem absensi yang menggunakan sidik jari, raut wajah, dan retina mata. Walaupun banyak yang menerapkan biometrik ini, sangat disayangkan di Indonesia belum banyak yang membuatnya sendiri. Banyak perkantoran atau instansi-instansi lainya yang masih membelinya dari luar negeri. Hal ini membuat Indonesia di mata dunia masih sebagai konsumen bukan sebagai pengembang perangkat lunak. Metode eigenface pernah digunakan untuk citra wajah beperapa karyawan Universitas Sanata Dharma Yogyakarta. Penelitian tersebut menggunakan metode ecludian distance sebagai pencocokan wajahnya. Tingkat keberhasilan dari metode ecludian distance adalah 97.143% yang didapat dari salah satu kombinasi data dari proses 3 fold cross validation. (Putri, 2012) Penelitian ini ingin membantu penerapkan metode eigenface untuk ekstrak ciri wajah dan naïve bayesian sebagai klasifikasinya. Diharapkan penelitian ini
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2
mampu membantu pengembang perangkat lunak untuk mendalami metode tersebut sehingga dapat mengurangi permasalahan yang sudah disebutkan diatas. 1.2 Rumusan Masalah Berdasarkan latar belakang yang telah disebutkan sebelumnya, maka dapat dirumuskan permasalahan, yaitu: 1. Bagaimana metode eigenface dapat mengekstrasi ciri citra wajah? 2. Berapa akurasi pengenalan wajah menggunakan klasifikasi naive bayesian dalam mengenali wajah? 1.3 Tujuan Adapun tujuan dari penelitian ini, antara lain : 1. Menerapkan metode eigenface untuk mengektraksi ciri citra wajah dengan baik. 2. Mengetahui akurasi pengenalan wajah menggunakan klasifikasi naive bayesian. 1.4 Batasan Masalah 1. Citra digital hanya dapat menggunakan tampilan background polos sehingga tidak ada obyek-obyek dibelakangnya. 2. Sistem hanya berbentuk prototype yang dibuat menggunakan MATLAB. 3. Data sebanyak 200 citra wajah dari 20 orang dimana setiap orang memiliki 10 citra wajah dengan berbagai ekspresi. 4. Data citra wajah berukuran 150x150 pixels. Proses resize dan cropping dilakukan diluar sistem.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3
2 BAB II Landasan Teori Landasan teori digunakan untuk menjelaskan teori yang akan digunakan pada penelitian ini, diantaranya pengertian wajah, eigenface, naive bayesian dan Principal Component Analysis (PCA). 2.1 Pengenalan Wajah Wajah atau muka adalah bagian depan dari kepala manusia
meliputi
wilayah dari dahi hingga dagu, termasuk rambut, alis, mata, hidung, pipi, mulut, bibir, gigi, kulit, dan dagu (Sugiono, 2008). Elemen-elemen itulah yang menjadi pembeda antara wajah satu dengan yang lain. Selain elemen fisik ada faktor-faktor lain yang mempengaruhi wajah yaitu: syaraf dan pembuluh darah, trauma fisik dan hasil pembedahan, ekspresi karena pembuluh, air mata dan keringat, kesakitan dan kelelahan, gender, ras, pertumbuhan dan usia. Oleh karena itu tidak ada satu wajahpun yang serupa mutlak, bahkan pada manusia kembar identik sekalipun karena wajah terutama digunakan untuk ekspresi wajah, penampilan serta identitas (Sitorus dkk, 2006). 2.1.1 Pengertian Pengenalan Wajah Pengenalan wajah adalah suatu teknologi yang disebut biometrik yang sudah lama digunakan. Teknologi biometrik pada wajah ini sudah banyak digunakan pada isntansi-instansi pemerintah maupun swasta seperti perkantoran swasta maupun negeri, kepolisian, kemiliteran, dan perumahan. Teknologi biometrik itu diaplikasikan pada sistem absesnsi, sistem pembuatan SIM (Surat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4
Izin Mengemudi), sistem keamanan rumah,dan sistem pengamanan komputer pribadi. Pada pengenalan wajah langkah yang dikerjakan adalah melakukan pengenalan wajah secara mandiri atau otomatis yang lalu akan disimpan pada suatau basis data tertententu. 2.1.2 Tahapan Pengenalan Wajah Dalam melakukan pengenalan wajah (face recognition), ada beberapa tahapan proses yang harus dilalui, seperti : Bersamaan
Citra Input
Deteksi Wajah
Ektrak Ciri
Pengenalan Wajah
Vertifikasi
Gambar 2.1 PengenalanWajah (Zhao dan Chellapa, 2006) Deteksi wajah (face detection) merupakan proses awal yang harus dilakukan pada citra input untuk mendeteksi adanya citra wajah di dalam citra masukan. Namun, berdasarkan Gambar 2.1 tahap-tahap proses pengenalan wajah dikelompokkan menjadi 2 bagian, yaitu proses ekstraksi ciri dan proses pengenalan wajah (Zhao dan Chellapa, 2006). Proses deteksi wajah akan dilakukan bersama dalam proses ekstraksi ciri. Hal ini dikarenakan dalam proses deteksi wajah diperlukan ekstraksi ciri di dalam citra masukan yang akan mendeteksi apakah citra masukan merupakan citra yang mengandung ciri wajah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 5
2.1.3 Ekstrasi Ciri Secara umum, (Zhao dan Chellapa 2006) menjelaskan ada dua macam ciri (feature) pada wajah, yaitu holistic features dan facial feature. Facial feature contoh cirinya adalah warna dan bentuk, besar dan letak hidung, mulut, mata, telinga, dan lain-lain. Sedangkan pada holistic features setiap cirinya adalah merupakan suatu karakteristik dari seluruh wajah. Wajah dianggap sebagai kesatuan yang utuh. Untuk melakukan ekstrak ciri pada wajah, (Zhao dan Chellapa, 2006) membedakan teknik pengenalan wajah menjadi tiga metode, sebagai berikut: a) Holistic methods Metode ini digunakan untuk menyelesaikan kasus holistic features yaitu mencari informasi secara keseluruhan pada wajah. b) Features-based Metode ini digunakan untuk menyelesaikan kasus facial features yaitu mencari informasi berdasarkan ciri yang ada pada wajah seperti hidung, mata, telinga, dan lain-lain. c) Hybrid methods Metode ini merupakan penggabungan dari metode holistic methods dan features-based. 2.2 Metode Eigenface Kata eigenface sebenarnya berasal dari bahasa jerman yaitu “eigenwert” dimana “eigen” artinya karakteristik dan “wert” artinya nilai. Eigenface adalah salah satu algoritma pengenalan pola wajah yang berdasarkan pada Principle
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 6
Component Analysis (PCA) yang dikembangkan di MIT. Banyak penulis lebih menyukai istilah eigen image. Teknik ini telah digunakan pada pengenalan tulisan tangan, pembacaan bibir, pengenalan suara dan pencitraan medis. Menurut layman (Al Fatta, 2009) Eigenface adalah sekumpulan unsur wajah yang telah dibuat standar yang diambil dari analisis statistik dari banyak gambar wajah. Algoritma eigenface secara keseluruhan cukup sederhana. Training image direpresentasikan dalam sebuah vector flat (gabungan vektor) dan digabung bersama-sama menjadi sebuah matriks tunggal. Eigenface dari masing-masing citra kemudian diekstraksi dan disimpan dalam file temporary atau database. Test image yang masuk didefinisikan juga nilai eigenfaces-nya dan dibandingkan dengan eigenfaces dari image database atau file temporary (Prasetyo dan Rahmatun, 2008). Cara perhitungannya dilakukan dengan cara: 1. Pencarian matriks A berukuran N x N dapat dihitung dengan : 𝐴. 𝑥 = 𝜆 . 𝑥
(2.1)
λ dinamakan eigenvalue dari matriks A, sedangkan x merupakan eigenvector yang sama dengan scalar (λ). 2. Pencarian determinan dari matriks A dengan rumus : |𝐴 − 1𝜆| = 0
(2.2)
3. Setelah nilai eigenvalue (𝜆) ditemukan langkah selanjutnya adalah mencari eigenvektor dengan menggunakan rumus : 𝐴 − 𝜆𝐼 . 𝑥 = 0
(2.3)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 7
2.2.1 Principal Component Analysis (PCA) Principal Component Analysis (PCA) adalah sebuah transformasi linier yang biasa digunakan untuk mereduksi data. Principal Component Analysis (PCA) adalah sebuah teknik statistika yang berguna pada bidang pengenalan, klasifikasi dan mereduksi data citra. PCA juga merupakan teknik yang umum digunakan. Karena Principal Component Analysis (PCA) sangat ampuh untuk mereduksi data baik seperti teks, citra, dan sinyal. 2.2.2 Proses Principal Component Analysis (PCA) / Eigenface Proses perhitungan PCA dapat dilakukan dengan langkah-langkah sebagai berikut (Fatta, 2009) 1. Mengambil satu set training citra wajah (M). Misalkan M berjumlah 10 buah citra wajah. 2. Inisialisasi 𝑟 untuk tiap citra wajah dari set training. r adalah sebuah vektor 𝑁 2 × 1 berdasarkan matriks dari citra wajah yang berukuran NxN. 3. Menghitung rata-rata vektor citra wajah 𝑌=
1 𝑀
∑𝑀 𝑖=1 𝑟𝑖
(2.4)
4. Melakukan normalisasi ukuran citra dengan melakukan pengurangan vektor citra wajah dengan nilai rata-rata tersebut. 𝑄 = 𝑟𝑖 − 𝑌
(2.5)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8
5. Menghitung matriks kovarian
1
𝑇 𝑇 2 2 𝐶 = 𝑀 ∑𝑀 𝑛=1 𝑄𝑛 𝑄𝑛 = 𝐴𝐴 (𝑚𝑎𝑡𝑟𝑖𝑘𝑠𝑁 𝑥𝑁 )
(2.6)
Dimana 𝐴 = [𝑄1 𝑄2 𝑄3 … . 𝑄𝑀 ](𝑚𝑎𝑡𝑟𝑖𝑘𝑠 𝑁 2 𝑥 𝑀)
(2.7)
6. Dikarenakan ukuran matriks terlalu besar, maka pencarian matriks kovarian menjadi : 𝐶 = 𝐴𝑇 𝐴
(2.8)
7. Menghitung eigenvalue (λ) dan eigenvector (x) dari matriks kovarian 𝐶 = 𝐴𝑡 𝐴
(2.9)
8. Menghitung eigenvector sebanyak M dari matriks kovarian 𝐶 = 𝐴𝐴𝑇
(2.10)
dengan persamaan : 𝑢𝑖 = 𝐴. 𝑥𝑖
(2.11)
9. Melakukan normalisasi terhadap u. 10. Mengumpulkan eigenvector sebanyak K. 2.2.3 Contoh Perhitungan Eigenface 1. Terdapat 3 buah image yang masing-masing mempunyai 2x2 matriks. 1 1 2 2 Image1 = [ ][ ] 3 4 3 4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9
3 3 6 6 Image1 = [ ][ ] 8 5 8 5 9 9 8 8 Image1 = [ ][ ] 4 5 4 5 2. Lalu ditransformasikan ke matriks 𝑁 2 × 𝑖𝑚𝑎𝑔𝑒 1 S = [2 3 4
3 6 8 5
9 8] 4 5
3. Mencari rata-rata vector 𝑌1
1 + 3 + 9 13 = = 4.333333333 3 3
𝑌2
2 + 6 + 8 16 = = 5.333333333 3 3
𝑌3
3 + 8 + 4 15 = = 5 3 3
𝑌4
4 + 5 + 5 14 = = 4.666666667 3 3 Sehingga didapatkan :
4.333333333 5.333333333 𝑌=| | 5 4.666666667 4. Mengurangi vector citra wajah dengan nilai Y 1 4.333333333 5.333333333 2 𝑄1 [ ] − | |= 5 3 4 4.666666667
−3.333333333 −3.333333333 [ ] −2 −0.666666667
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10
3 4.333333333 −1.333333333 6 5.333333333 0.666666667 𝑄2 [ ] − | |= [ ] 8 5 3 5 4.666666667 0.333333333 9 4.333333333 8 5.333333333 𝑄3 [ ] − | |= 4 5 5 4.666666667
4.666666667 2.666666667 [ ] −1 0.333333333
5. Selanjutnya, 𝑄1 , 𝑄2 , 𝑄3 digabungkan menjadi satu matriks A −3.333333333 𝐴 = [−3.333333333 −2 −0.666666667
−1.333333333 0.666666667 3 0.333333333
4.666666667 2.666666667] −1 0.333333333
6. Menghitung kovarian menggunakan rumus 𝐴𝑇 𝐴 −3.333333333 𝐶 = [−1.333333333 4.666666667
−3.333333333 0.666666667 2.666666667
−3.333333333 [−3.333333333 −2 −0.666666667 22.66666667 𝐶= [ −4 −22.66666667
−2 −0.666666667 3 0.333333333 ] × −1 0.333333333
−1.333333333 0.666666667 3 0.333333333
−4 11.33333333 −7.333333333
4.666666667 2.666666667] −1 0.333333333
−22.66666667 −7.333333333] 30
7. Menghitung eigenvalue dan eigenvector dari korvarian matriks 𝐶. (Untuk mempermudahkan perhitungan maka angka dirubah) 2 0 𝐶 = [−1 4 −1 2
1 −1] 0
0 (2 − 𝜆) 1 𝐷𝑒𝑡 [ −1 (4 − 𝜆) −1] = 0 −𝜆 2 −1 ((2 − 𝜆) ∗ {(4 − 𝜆)(−𝜆) − (2)(−1)}) − (0 ∗ {(−1)(−𝜆) − (−1)(−1)}) + (1 ∗ {(−1)(2) − (4 − 𝜆)(−1)}) = 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11
(2 − 𝜆){−4𝜆 + 𝜆2 + 2} − 0 + (−𝜆 + 2) = 0 (2 − 𝜆){(𝜆2 − 4𝜆 + 2} + 1 = 0 (2 − 𝜆){(𝜆2 − 4𝜆 + 3} = 0 (2 − 𝜆)(𝜆 − 1)(𝜆 − 3) 𝜆1 = 2𝜆2 = 1 𝜆3 = 3 8. Eigenvalue 𝜆1 , 𝜆2 , 𝜆3 yang didapat dari matriks 𝐶 digunakan untuk menghitung eigenvektor Untuk 𝜆1 = 2 (2 − 2) [ −1 −1
0 (4 − 2) 2
1 𝑥1 −1] [𝑥2 ] = 0 −2 𝑥3
0 0 1 𝑥1 [−1 2 −1] [𝑥2 ] = 0 −1 2 −2 𝑥3 Diperolehlah persamaan: −𝑥1 + 2𝑥2 = 0 −𝑥1 + 2𝑥2 = 0 −𝑥1 + 2𝑥2 = 0 Langkah selanjutnya dilakukan proses eliminasi sehingga diperoleh, 𝑥1 2𝑥2 [𝑥2 ] = [ 𝑥2 ] 𝑥3 0 Eigenvektornya adalah 2 𝑥2 [1] 0 Untuk 𝜆2 = 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12
(2 − 1) [ −1 −1
0 (4 − 1) 2
1 𝑥1 −1] [𝑥2 ] = 0 −1 𝑥3
1 0 1 𝑥1 [−1 3 −1] [𝑥2 ] = 0 −1 2 −1 𝑥3 Diperolehlah persamaan: 𝑥1 − 𝑥3 = 0 −𝑥1 + 3𝑥2 −𝑥3 = 0 −𝑥1 + 2𝑥2 −𝑥3 = 0 Langkah selanjutnya dilakukan proses eliminasi sehingga diperoleh, −𝑥3 𝑥1 [𝑥2 ] = [ 0 ] 𝑥3 𝑥3 Eigenvektornya adalah −1 𝑥3 [ 0 ] 1 Untuk 𝜆3 = 3 (2 − 3) [ −1 −1
0 (4 − 3) 2
1 𝑥1 −1] [𝑥2 ] = 0 −3 𝑥3
1 0 1 𝑥1 [−1 3 −1] [𝑥2 ] = 0 −1 2 −1 𝑥3 Diperolehlah persamaan: −𝑥1 = 𝑥3 −𝑥1 + 𝑥2 −𝑥1 = 0 −𝑥1 + 2𝑥2 −3𝑥1 = 0 Langkah selanjutnya dilakukan proses eliminasi sehingga diperoleh,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13
𝑥1 𝑥1 𝑥 [ 2] = [ 2 ] 𝑥3 𝑥1 Eigenvektornya adalah 1 𝑥1 [2] 1 9. Menghitung eigenvektor sebanyak M dari matriks𝐴. 𝑢𝑖 = 𝐴. 𝑥𝑖 −8 −6 [ ] −1 −1
−3.333333333 𝑢1 = [−3.333333333 −2 −0.666666667
−1.333333333 0.666666667 3 0.333333333
4.666666667 2 2.666666667] × [1] = −1 0 0.333333333
−3.333333333 𝑢2 = [−3.333333333 −2 −0.666666667
−1.333333333 0.666666667 3 0.333333333
4.666666667 −1 2.666666667] × [ 0 ] = −1 1 0.333333333
−3.333333333 𝑢3 = [−3.333333333 −2 −0.666666667
−1.333333333 0.666666667 3 0.333333333
10. Setelah itu eigenvalue
8 6 [ ] 1 1
−1.3333 4.666666667 1 2.666666667] × [2] = [ 0.6667 ] −1 3 1 0.333333333 0.3333
diurutkan dari yang paling kecil sampai yang
paling besar. Tabel 2.1 Hasil eigen value dan eigen vektor Eigenvalue
Eigenvektor
λ=3
-1.3333 0.6667 3 0.3333
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14
λ=2
-8 -6 -1 -1
λ=1
8 6 1 1
11. Memproyeksikan 𝑄𝑖 kedalam eigenspace
𝑤1 =
[−1.3333
[−1.3333
[−1.3333
−3.333333333 −3.333333333] = −4.0002 0.3333] × [ −2 −0.666666667
0.6667
3
0.6667
−1.333333333 0.666666667 ] = 11.3333 3 0.3333] × [ 3 0.333333333
0.6667
4.666666667 2.666666667] = −7.3331 3 0.3333] × [ −1 0.333333333 𝑤2 =
−3.333333333 [−8 −6 −1 −1] × [−3.333333333] = 49.3333 −2 −0.666666667
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
[−8 −6 −1
−1.333333333 0.666666667 ] = 3.3333 −1] × [ 3 0.333333333
4.666666667 [−8 −6 −1 −1] × [2.666666667] = −52.6667 −1 0.333333333
𝑤3 =
[8
−3.333333333 6 1 −1] × [−3.333333333] = −49.3333 −2 −0.666666667
[8 6
[8 6
−1.333333333 0.666666667 ] = −3.3333 1 −1] × [ 3 0.333333333 4.666666667 2.666666667] = 52.6667 1 −1] × [ −1 0.333333333
12. Memasukkan nilai 𝑊𝑖 kedalam sebuah vector −4.0002 𝛺 = [ 11.3333 −7.3331
49.3333 3.3333 −52.6667
−49.3333 −3.3333 ] 52.6667
13. Langkah selanjutnya dari matriks omega ini di cari mean (µ) dan standar deviasi (σ). −4.0002 14. 𝛺 = [ 11.3333 −7.3331
49.3333 3.3333 −52.6667
−49.3333 −3.3333 ] 52.6667
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16
2.3 Naive Bayesian Bayesian filter atau Naive Bayes Classifier merupakan metode terbaru untuk mengklasifikasikan dokumen. Algoritma ini adalah metode probabilitas dan dikemukakan oleh ilmuwan Inggris bernama Thomas Bayes, yaitu memprediksi probabilitas di masa depan berdasarkan pengalaman sebelumnya. Dasar dari teorema Naive Bayes digunakan dalam pemrograman adalah rumus Naive Bayes sebagai berikut ini: 𝑃 (𝐴│𝐵) = (𝑃 (𝐵│𝐴) ∗ 𝑃(𝐴))/𝑃(𝐵)
(2.12)
P (A|B) = Probabilitas yang dihitung (Posterior) dari peristiwa A karena adanya informasi yang dikandung dalam peristiwa B.
P (B|A) = Probabilitas yang dihitung (Posterior) dari peristiwa B karena adanya informasi yang dikandung dalam peristiwa A.
P (A) = Probabilitas tak bersyarat atau disebut probabilitas awal (Prior) dari peristiwa A.
P (B) = Probabilitas tak bersyarat atau disebut probabilitas awal (Prior) dari peristiwa B. 2.3.1 Klasifikasi Naive Bayesian Jika X adalah vektor masukkan yang berisi fitur dan Y adalah label kelas,
Naïve Bayes dituliskan dengan P (X|Y). Notasi tersebut berarti probabilitas label kelas Y didapatkan setelah fitur-fitur X diamati. Notasi ini disebut juga probabilitas akhir (posterior probability) untuk Y, sedangkan P (Y) disebut probabilitas awal (prior probability) Y.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17
Selama proses pelatihan harus dilakukan pembelajaran probabilitas akhir P (Y|X) pada model untuk setiap kombinasi X dan Y bedasarkan informasi yang didapat dari data latih. Dengan membangun model tersebut, suatu data uji X’ dapat diklasifikasikan dengan mencari nilai Y’ dengan memaksimalkan nilai P(X’|Y’). Yang lalu didapatkan rumus Naïve Bayes untuk klasifikasi sebagai berikut: 𝑞
𝑃(𝑌|𝑋) =
𝑃(𝑌) ∏𝑖=1 𝑃(𝑋𝑖 |𝑌)
(2.13)
𝑃(𝑋)
P(Y|X) adalah probabilitas data dengan vektor X pada kelas Y. P(Y) adalah probabilitas awal kelas Y. ∏𝑞𝑖=1 𝑃(𝑋𝑖 |𝑌)adalah probabilitas independen kelas Y dari semua fitur dalam vektor X. Nilai P(X) selalu tetap sehingga dalam perhitungan
prediksi
selanjutnya
tinggal
menghitung
bagian
𝑃(𝑌) ∏𝑞𝑖=1 𝑃(𝑋𝑖 |𝑌)dengan memilih yang terbesar sebagai kelas yagg dipilih sebagai hasil prediksi. Sementara probabilitas independen ∏𝑞𝑖=1 𝑃(𝑋𝑖 |𝑌)tersebut merupakan pengaruh semua fitur dari data terhadap setiap kelas Y.
Naive bayesian memiliki bentuk peluang kelas bersyarat untuk atribut kontinyu. Distribusi dikarakterisasi dengan dua parameter yaitu mean, , dan varian, 2 . Untuk tiap kelas y j , peluang kelas bersyarat untuk atribut X i adalah
P X i xi Y y j
1 2 ij
exp
xi ij 2 2 2ij
(2.14)
Parameter ij dapat diestimasi berdasarkan sampel mean X i x untuk seluruh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18
training record yang dimiliki kelas y j . Dengan cara sama, 2 ij dapat diestimasi
dari sampel varian s 2 training record tersebut.
2.3.2 Contoh Perhitungan Naive Bayesian Terdapat data sebagai berikut: Tabel 2.2 Tabel IPK IPK Tidak
Lulus
2
3.5
3
3.25
2
2.75
2.5
3.5
1.6
4
2.5
3.75
2.3
2.25
3.25
3.8
Jika terdapat IPK 3.5 nilai tersebut dikategorikan lulus atau tidak. Langkah pertama adalah menentukan rata-rata dan standar deviasi untuk masing-masing kelas.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19
Tabel 2.3 Hasil IPK IPK Tidak
Lulus
2
3.5
3
3.25
2
2.75
2.5
3.5
1.6
4
2.5
3.75
2.3
2.25
3.25
3.8
Mean
2.39375
3.35
Standar Deviasi
0.544083
0.586759
Kemudian nilai mean dan standar deviasi dimasukkan kedalam rumus naive bayesian bersarat pada rumus (2.14). Setelah itu dihasilkan nilai sebagai berikut: Tabel 2.4 Hasil Uji IPK g(IPK=3.25,m,σ|Tidak)
0.73342325
0.289865
0.212593567 g(IPK=3.25,m,σ|Lulus)
0.680081055 0.670275732
0.985582
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20
Dihasilkan nilai IPK 3,25 mirip dengan data training lulus jadi dapat disimpulkan bahwa jika IPK 3,25 kemungkinan besar lulus. 2.4 Confusion Matrix Fungsi confusion matrix adalah mebghitung seberapa tepat dan lengkap klasifikasi terhadap suatu kelas data. Isi dari confusion matrix adalah informasi hasil actual dan prediksi yang dihasilkan oleh pengklasifikasian. Tabel 2.5 Confusion Matrix
Asli
negatif positif
Prediksi negatif positif A B C D
A adalah jumlah nilai prediksi benar ketika contoh negatif.
B adalah jumlah nilai prediksi salah ketika contoh positif.
C adalah jumlah nilai prediksi salah ketika contoh negatif.
D adalah jumlah nilai prediksi benar ketika contoh positif. Akurasi adalah hasil dari penjumlahan nilai diagonal dibagi dengan jumlah
total keseluruhan data dan selajutnya dikalikan 100%. 𝐴𝑘𝑢𝑟𝑎𝑠𝑖 =
𝑎+𝑑 𝑎+𝑏+𝑐+𝑑
× 100%
Contoh perhitungan akurasi dapat dicontohkan sebagai berikut:
(2.14)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21
Tabel 2.6 Contoh Confusion Matrix 1 0 0 0 0 0
1 2 1 0 0 0
𝐴𝑘𝑢𝑟𝑎𝑠𝑖 =
1 2 1 0 0 0
1 0 2 6 0 0
22 × 100 = 61% 36
1 2 1 0 6 0
1 0 1 0 0 6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22
3 BAB III METODOLOGI Berdasarkan pada landasan teori yang telah disampaikan pada bab kedua di atas, pada bab ini dibahas metodologi yang akan digunakan pada penelitian ini. Bab ini berisi tentang blok diagram, data, tatap muka pengguna dan contoh perhitungan. 3.1 Metode Pengumpulan Data Mengambil 200 citra wajah mahasiswa Universitas Sanata Dharma Program Studi Teknik Informatika angkatan 2011 dikarenakan data sangat mudah untuk didapat dan data yang dihasilkan adalah data yang nyata. 3.2 Teknik Analisis Data Hasil yang diperoleh dari pengumpulan data selanjutnya dianalisa dengan tahap- tahap sebagai berikut :
Data
Preprocessing
Proses
Output
Akurasi
Cropping dan Resize
Naivebayesian
Data Model
Confusionmatrix
Greyscale
Eigenface
Gambar 3.1 Diagram Block
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23
1. Data Data yang diambil adalah citra wajah dari mahasiswa Universitas Sanata Dharma Fakultas Teknik Program Studi Teknik Informatika. Dengan jumlah mahasiswa 20 dan setiap mahasiswa mempunyai 10 citra wajah sehingga total data keseluruhan adalah 200 citra wajah. citra asli berukuran 3456 x 5184 pixel yang di ambil menggunakan kamera Digital Single Lens Reflex (DSLR). 2. Preprocessing Data citra asli pada awal preprocessing dipotong fokus pada bagian wajah menjadi 150 x 150 pixel karena data yang diperkecil terlebih dahulu untuk mempermudah proses perhitungan di dalam sistem. Proses memperkecil citra wajah menggunakan program Adobe Photoshop CS 5 Version 12.0 (64x bits). Data yang sudah didapat lalu diproses melalui grayscale, sehingga citra menjadi putih keabu-abuan. Matriks akan berbentuk seperti ini (contoh perhitungan menggunakan matriks berukuran 2x2 yang seharusnya 150x150).
1 𝑎=[ 2
3 5 ] 𝑏=[ 4 7 𝑔=[
7 6 ] 𝑐=[ 5 8
6 1 2 6 2 7 ] 𝑑=[ ] 𝑒=[ ] 𝑓=[ 7 1 5 6 4 3
1 2 6 2 1 ] ℎ=[ ] 𝑖=[ 1 6 7 5 8
2 ] 4
2 1 2 ] 𝑗=[ ] 4 1 2
Langkah berikutnya adalah tahap eigenface, merupakan langkah awal yang diterapkanpada setiap citra. Data dirubah ukurannya (reshape) menjadi bentuk N1 * N2 *1, kemudian disimpan ke matriks S.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24
Langkah selanjutnya mengurangi matriks S dengan rata-ratanya untuk setiap kolom menggunakan zero mean. Dan hasil disimpan pada matriks A.
Setelah didapatkan matriks A, penghitungan kovarian dilakukan. Perhitungan dilakukan dengan cara C=A*A’. Berikut adalah hasil dari perhitungan tersebut
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 25
Hasil C selanjutnya akan dinormalisasi menggunakan zscore. Berdasarkan nilai kovarian, matriks C menghasilkan eigenvalue dan eigenvektor.
Eigenvalue diurutkan (sorting) berdasarkan nilai yang paling tinggi ke paling rendah. Tahap ini adalah tahap akhir dari proses eigenface. Selanjutnya eigenvektor diurutkan berdasarkan indeks eigenvalue yang telah diurutkan sebelumnya. Langkah terakhir dari proses eigenface adalah pembentukan dataset yang baru dengan nama matriks u.
Agar bentuk akhir sama dengan matriks asli yang digunakan pada sistem maka matriks u ini di transpose terlebih dahulu maka hasil matriks u adalah seperti matriks
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26
Proses yang telah disebutkan di atas adalah perhitungan setiap orang, dimana masing-masing orang mempunyai 10 citra wajah maka ukuran matriks yang u=[
akan
1 ⋮ 22500
terbentuk ⋯ ⋱ ⋯
adalah
berukuran
22500x100
seperti
matriks
10 ] dimana setiap baris merupakan atribut (feature). ⋮ 225000
Matriks u selanjutnya di normalisasi menggunakan zscore data matriks u agar dapat dipotong sesuai keinginan, data yang digunakan mempunyai panjang feature 22500 jika feature ini dipotong maksimal yang dapat dipotong adalah 22499 dan minimal adalah satu. Proses pemotongan adalah memotong baris dari matriks u diatas. 3. Proses Hasil eigenface dari 10 citra wajah per orang dibagi menjadi fivefold. Fungsi fivefold adalah membuat lima buah bagian dari 10 citra wajah untuk diambil satu bagian (dua citra wajah) untuk testing dan empat bagian untuk training, sehingga data training terdapat delapan buah citra wajah dan data testing terdapat dua buah citra wajah. Langkah ini dilakukan berulang sebanyak iterasi jumlah orang. Hasil dari fivefold disimpan dan digabungkan. Langkah selanjutnya, data training diproses menggunakan NaiveBayes.fit dan data testing menggunakan predict. Proses NaiveBayes.fit menggunakan fungsi matlab, data training diolah menggunakan fungsi ini. Hasil proses ini menghasilkan data model yang disebut mean dan varian. Data testing diolah menggunakan fungsi matlab juga yaitu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
predict, hasil model dari pengolahan data training lalu di predict menggunakan data testing. 4. Output Proses output akan menghasilkan keluaran data model. Data model ini berisi mean dan varian yang dihasilkan dari proses NaiveBayes.fit. Proses predict menghasilkan prediksi klasifikasi dari data testing. 5. Akurasi Proses akurasi bertujuan untuk menguji keakuratan dan keberhasilan suatu sistem. Setiap proses menghasilkan confusion matrix, lalu proses ini diulang samapai semua bagian pernah menjadi data testing. Pembagian data dibagi seperti berikut : Tabel 3.1 Pembagian Data I 1 2 3 4 5 6 7 8 9 10
II 1 2 3 4 5 6 7 8 9 10
III 1 2 3 4 5 6 7 8 9 10
IV 1 2 3 4 5 6 7 8 9 10
V 1 2 3 4 5 6 7 8 9 10
Sehingga didapat hasil akhir yang berupa confusion matrix. Pembagian data ini terjadi ketika proses setelah eigenface.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28
Tabel 3.2 Contoh Hasil Confusion Matrix (akurasi 88%) 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
8
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
9
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
9
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
9
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
7
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
0
0
0
0
0
2
0
0
0
0
0
0
0
0
1
0
0
0
0
0
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
8
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
8
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
Confusion matrix mempresentasikan hasil dari pencocokan data training dan data testing. Setiap data yang memiliki nilai sama antara data training dan data testing dapat dikatakan bernilai benar. Setiap hasil pencocokan yang bernilai benar akan dihitung dengan dijumlahkan kemudian dibagi dengan jumlah data dan dikalikan dengan 100%, sehingga menghasilkan akurasi. Pencocokan data yang bernilai benar membentuk diagonal pada matriks, dengan kata lain penjumlahan dari diagonal confusion matrix merupakan akurasi dari sistem. 3.3 Desain User Interface Agar proses dapat mudah dilihat oleh pengguna maka dirancang interface secara keseluruhan. Rancangan user interface dapat digambarkan sebagai berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29
Gambar 3.2 User Interface
Pada data input diinputkan jumlah orang, jumlah foto, jumlah atribut, ekstensi foto dan grayscale. Pada interface juga terdapat citra asli dan citra eigenface agar pengguna juga dapat melihat perubahan citra. Lalu confusion matrix dan akurasi juga ditampilkan akan mempermudah pengguna untuk memantau sistem. Panel di bawahnya menunjukkan hasil analisis untuk beperapa kali percobaan yang disertai dengan informasi grafik sehingga pengguna akan dipermudah untuk menganalisa sistem.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 30
3.4 Spesifikasi Software dan Hardware Untuk proses membuat sistem dan data digunakan software dan hardware sebagai berikut : 1. Software a) Sistem operasi : Windows 8.1 Single Language 64-bit b) Bahasa pemprograman : Matlab version 8.0.0.783 (R2012b) c) Program pengolah citra : Adobe Photoshop CS5 v.12.0 64-bit 2. Hardware a) Processor : Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz b) Memory : 16 GB c) Hardisk : 2 TB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31
4 BAB IV IMPLEMENTASI DAN ANALISIS HASIL Metodologi yang dijelaskan pada bab-bab sebelumnya diimplementasikan pada bab ini yang meliputi implementasi, pengolahan data, preprocessing, proses, output, akurasi, user interface dan analisis. 4.1 Implementasi Landasan teori yang telah dipaparkan akan lebih berguna jika diimplementasikan. Imlementasi yang akan dipaparkan pada bab ini meliputi pengolahan data dan user interface. 4.1.1 Pengolahan Data Data mentah yang diambil menggunakan kamera Digital Single Lens Reflex (DSLR) sejumlah 200 citra wajah dengan rincian 20 orang yang setiap orangnya mempunyai 10 citra wajah.
Gambar 4.1 Data Awal I
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32
Gambar 4.2 Data Awal II Data mentah ini belum bisa diolah kedalam sistem karena ukuran dan tidak fokusnya citra terhadap wajah. Data mentah ini harus diproses dalam tahap preprocessing. 4.1.1.1 Preprocessing Tahap awal sebelum data masuk ke pengolahan data mining data masih bisa dikatakan sebagai data mentah yang harus melelaui proses preprocessing. Tahap preprocessing yang harus dilalui adalah: 1. Cropping dan Resize
Gambar 4.3 Cropping dan Resize
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33
Proses pemotongan dan pengecilan citra menggunakan Adobe Photoshop CS 5 Version 12.0 (64x bits). Proses ini bertujuan mefokuskan citra pada wajah dan memperkecil ukuran citra yang awalnya berukuran 3456 x 5184 pixel bisa dilihat pada gambar 4.3 menjadi 150x150 pixel pada gambar 4.4 dan gambar 4.5.
Gambar 4.4 Data I
Gambar 4.5 Data II
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 34
2. Grayscaling Proses awal preprocessing adalah grayscaling (keabu-abuan). Data citra yang berjumlah 200 citra wajah dirubah menjadi citra keabu-abuan dan disimpan kedalam matriks S. Setiap baris matriks tersimpan satu orang yang mempunyai citra wajah 10 citra. Proses ini berulang hingga 20 kali sesuai dengan jumlah orang, sehingga data citra wajah yang berjumlah 200 ini bisa masuk ke proses berikutnya yaitu eigenface. 3. Eigenface Data yang sudah menjadi grayscale memasuki proses kedua dari reprocessing yaitu eigenface. Pada proses ini citra wajah diubah menjadi citra eigenface. Hasil eigenface disimpan ke dalam matriks u yang di dalam setiap kolom tersimpan satu citra wajah yang sudah berbentuk citra eigenface, setiap proses eigenface menyimpan satu set data satu orang di dalam matriks u yang panjang kolomnya sepanjang 22500. Panjang kolom ini bisa dipotong sesuai dengan keinginan pengguna. Setelah dipotong hasil pemotongan data ini disimpan kedalam matriks hasileigface yang menampung 200 citra wajah eigenface yang telah dipotong. 4.1.1.2 Proses Pada proses ini adalah memproses data citra wajah menggunakan klasifikasi naïve bayes. Sebelum masuk inti proses naïve bayes data dipisah terlebih dahulu menjadi data training dan data testing. Hasil dari pemisahan ini disimpan kedalam 2 matriks yaitu trainingsmuaorang dan testingsemuaorang, trainingsmuaorang
untuk
menyimpan
data
citra
wajah
training
dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35
testingsemuaorang untuk menyimpan data citra wajah testing. Perhitungan naïve bayesian menggunakan fungsi matlab yaitu naivebayes.fit dan predict, trainingsemuaorang testingsemuaorang
diproses diproses
menggunakan menggunakan
naivebayes.fit
predict.
Fungsi
kemudian model
=
naivebayes.fit(trainingsemuaorang) adalah fungsi matlab yang digunakan untuk mengolah data training sedangkan fungsi
model.predict(testingsemuaorang)
untuk mengolah data testing. 4.1.1.3 Output Berdasarkan proses naïve bayesian, maka dihasilkan mean dan varian sebagai data model yang diperoleh dari data training, kemudian hasil prediksi kelas yang didapat dari data testing. Selanjutnya, langkah yang dilakukan adalah mencocokan data testing dengan kelas training proses ini akan digunakan untuk proses selanjutnya yaitu perhitungan akurasi. 4.1.1.4 Akurasi Proses menghitung akurasi terbentuk dari perhitungan jumlah hasil confusion matrix. Penjumlahan diagonal matriks ini akan memberikan nilai akurasi sistem. Hasil dari confusion matrix dapat dilihat gambar 4.6
Gambar 4.6 Tabel Hasil Confusion Matrix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36
Hasil confusion matrix diambil ketika dilakukan pemotongan feature sejumlah 19095. kemudian dari confusion matrix dapat dihitung akurasinya dengan cara jumlah diagonal dibagi dengan seluruh jumlah data jadi jumlah diagonal dari gambar 4.6 adalah 175 dan lalu dibagi dengan keseluruhan data 200 yang menghasilkan nilai 0,875 selanjutnya dikalikan dengan 100 agar hasil menjadi perseratus, akurasi yang didapat adalah 87.5%. Pemotongan feature minimal sehingga didapatkan akurasi 87.5% adalah 19095 dari total feature 22500.
Gambar 4.7 Hasil Matrix 4.1.2 User Interface Pembuatan User interface sistem pencocokan wajah menggunakan sarana yang diberikan oleh Matlab version 8.0.0.783 (R2012b), user interface ini berguna untuk mempermudahkan pengguna di dalam penginputan data yang dibutuhkan untuk sistem. User interface yang terbentuk tersimpan di file Input.m dan Input.fig bentuk dari user interface dapat dilihat pada gambar 4.8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37
Gambar 4.8 User Interface Gambar tersebut menjelaskan bahwa input dialog terdapat interaksi yang dibutuhkan oleh pengguna. Panel input dialog membutuhkan inputan berupa jumlah orang, jumlah foto, jumlah atribut, ekstensi foto, grayscale, tombol save dan proses.
Jumlah orang menjelaskan jumlah orang yang akan diproses di dalam sistem.
Jumlah foto menjelaskan jumlah foto setiap orang yang akan diproses di dalam sistem.
Jumlah atribut mendeskripsikan jumlah atribut atau feature yang sudah melalui proses eigenface menurut keiinginan pengguna.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 38
Ekstensi foto menjelaskan ekstensi citra yang akan digunakan meliputi *.jpg, *.bmp, *.jpeg.
Grayscale menjelaskan data citra sudah berbentuk citra grayscale atau tidak.
Tombol save digunakan untuk menyimpan model data.
Tombol proses digunakan utnuk menjalankan sistem. Selanjutnya bagian proses foto menampilkan citra wajah yang
berbentuk grayscale dan citra wajah yang berbentuk eigenface. Bagian confusion matrix menampilkan jumlah confusion matriks, dalam confusion matrix terdapat tombol biru yang berguna untuk memperbesar tabel dari confusion matrix. Terakhir dari user interface adalah bagian akurasi dalam akurasi akan menampilkan jumlah akurasi yang didapatkan dari perhitungan confusion matrix. Panel input foto tedapat check box graysclae, tombol input foto, foto testing, foto hasil, nama file testing, label dan keterangan benar atau salah kegunaanya adalah:
Check box graysclae berguna untuk jika inputan citra testing sudah berupa grayscale.
Tombol input foto adala tombol untuk memilih dan memproses inputan citra.
Foto testing dan foto hasil menampilkan citra yang diinputkan dan hasil citra setelah diolah.
Nama file testing adalah menampilkan nama file citra yang diinputkan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39
Label adalah menampilkan hasil label yang didapatkan setelah proses.
Keterangan benar dan salah adalah keterangan yang didapatkan saat data testing dan data hasil dicocokkan menghasilkan citra yang benar atau salah. Panel Uji Akurasi dan Hasil Uji Tertinggi terdapat min atribut, max
atribut, range, jumlah atribut, akurasi dan tombol proses uji kegunaan panel tersebut adalah:
Min Atribut adalah inputan pengguna yang memasukkan batas minimal atribut yang sudah melalui proses eigenface yang akan digunakan.
Max Atribut adalah inputan pengguna yang memasukkan batas maksimal atribut yang sudah melalui proses eigenface yang akan digunakan.
Range adalah inputan pengguna yang memasukkan jarak atribut yang sudah melalui proses eigenface sesuai keinginan.
Jumlah Atribut menunjukkan titik atribut yang sudah melalui proses eigenface tertinggi menunjukkan akurasi tertinggi.
Akurasi menunjukkan akurasi teringgi yang didapatkan.
Grafik Hasil Uji Akurasi menampilkan grafik dalam bentuk garis dari beperapa percobaan akurasi. 4.2 Analisis Implementasi yang telah ditulis diatas membantu analisis terhadap
penerapan pengenalan pola citra wajah metode eigenface menggunakan naïve bayesian. Percobaan untuk menguji sistem dengan akurasi sebagai berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40
Tabel 4.1 Hasil Percobaan Akurasi No 1 2 3 4 . . 5 6 7 8 9 10 11 . . 12 13 14 15 16 17 18 19 . . 20 21 22 23 24 25 26 27 28 29 30 .
Panjang Atribut 1 2 3 4
Akurasi(%)
No
8 8.5 9.5 10
62 63 64 65 66 67 68 69 70 71 72 73 74 . . 75 76 77 78 79 80 81 82 83 84 85 . . 85 86 87 88 89 90 91 92 .
. .
. .
100 101 102 103 104 105 106
37 37 36.5 38.5 37.5 37.5 36
. .
. .
113 114 115 116 117 118 119 120
36 36.5 36.5 37 37.5 38 38 37.5
. .
. .
1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010
51.5 51.5 51 51.5 51.5 51.5 51.5 51.5 51.5 51.5 51.5
.
.
Panjang Atribut 20949 20950 20951 20952 20953 20954 20955 20956 20957 20958 20959 20960 20961
Akurasi(%) 88 88 88 88 88 88 88 88 88 88 88 88 88
. .
. .
21066 21067 21068 21069 21070 21071 21072 21073 21074 21075 21076
88 88 88 88 88 88 88 88 88 88 87.5
. .
. .
22467 22468 22469 22470 22471 22472 22473 22474
87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5
.
.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41
. 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 . . 52 53 54 55 56 57 58 59 60 61
.
.
20000 20001 20002 20003 20004 20005 20006 20007 20008 20009 20010 20011 20012 20013 20014 20015 20016 20017 20018 20019 20020
87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5
. .
. .
20939 20940 20941 20942 20943 20944 20945 20946 20947 20948
87.5 88 88 88 88 88 88 88 88 88
. 93 94 95 96 97 98 99 100
.
.
22493 22494 22495 22496 22497 22498 22499 22500
87.5 87.5 87.5 87.5 87.5 87.5 87.5 87.5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42
Gambar 4.6 Hasil Atribut dan Akurasi
Berdasarkan tabel 4.1 dengan 22500 kali percobaan didapatkan hasil seperti yang tertera di dalam percobaan. Percobaan dilakukan dengan mengambil dari minimum feature dengan nilai nol sampai 22500, dengan jarak satu feature setiap percobaan.
Nilai akurasi tertingi adalah 88% pada panjang feature 20940.
Nilai akurasi terendah adalah 8% pada panjang feature 1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43
5 BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan Berdasarkan penelitian, penerapan metode eigenface untuk pencocokan wajah dengan menggunakan naïve bayesian dapat disimpulkan beperapa hal, yaitu: 1. Ekstraksi ciri menggunakan metode eigenface dan klasifikasi menggunakan metode naïve bayesian terbukti mampu mengenali wajah dengan baik, karena didapatkan akurasi yang tinggi sebesar 88%. 2. Hasil dari percobaan menggunakan semua feature sepanjang 22500 akurasi metode eigenface menggunakan naive bayesian membantu mengenali wajah sebesar 87.5%. Hasil akurasi terbesar yang didapatkan adalah sebesar 88% dari panjang feature 20940. 3. Berdasarkan penelitian dari panjang feature 0-20940 sampai 0-21075 didapatkan akurasi yang stabil sebesar 88%. 5.2 Saran Untuk penelitian lebih lanjut, ekstrak ciri menggunakan metode eigenface dan klasifikasi menggunakan metode naïve bayesian dapat digunakan untuk membuat sistem informasi seperti sistem absensi, sistem keamanan rumah, sistem identifikasi seseorang dan lain-lain.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44
Untuk memudahkan pengguna sistem, citra wajah bisa terdapat obyekobyek lain yang terdapat di dalam citra. Sehingga citra wajah yang diinputkan oleh pengguna dapat lebih sedikit mempunyai batasan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45
Daftar Pustaka Depdiknas. (2002). Kamus Besar Bahasa Indonesia (Edisi Ketiga). Jakarta: Balai Pustaka. Fatta, H. A. (2009). Rekayasa Sistem Pengenalan Wajah. Yogyakarta: Andi Offset. Prasetyo, E. (2012). Konsep dan Aplikasi menggunakan MATLAB. Yogyakarta: Andi Offset. Prasetyo, E. (2014). Mengolah Data Menjadi Informasi Menggunakan Matlab. Yogyakarta: Andi Offset. Prasetyo, E., & Rahmatun, I. (2008). Desain System Pengenalan Wajah Dengan Variasi Ekspresi dan Posisi Menggunakan Metode EIGENFACE. Jurnal Ilmiah Informatika dan Komputer, Vol.11, No.01, pp.33. Putri, Y. W. (2012). Penerapan Face Recognition Menggunakan Metode Eigenface Pada Sistem Presensi Karyawan Universitas Sanata Dharma. Skripsi. Yogyakarta: Fakultas Sains dan Teknologi, Universitas Sanata Dharma. Sitorus, S. d. (2006). Pengolahan Citra Digital. Medan: USU Press. Sugiono, D. (2008). Kamus Besar Bahasa Indonesia Pusat Bahasa Edisi Keempat. Jakarta: PT Gramedia Pustaka Utama. Zhao, W., & Chellapha, R. (2006). Face Processing Advanced Modeling and Methods. London: Elsevier Inc.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46
LAMPIRAN Source Code 1. Bayes.m function [ ConMatrix,model ] = Bayes( class_train,class_test,trainingSemua,testingSemua ) %UNTITLED5 Summary of this function goeBayess here % Detailed explanation goes here model = NaiveBayes.fit(trainingSemua,class_train); class_predict = model.predict(testingSemua); ConMatrix=hitungConfusionmat (class_test,class_predict); function confMat=hitungConfusionmat(class_test,class_predict) yu=unique(class_test); confMat=zeros(length(yu)); for i=1:length(yu) for j=1:length(yu) confMat(i,j)=sum(class_test==yu(i) & class_predict==yu(j)); end end ConMatrix=confMat; end % assignin('base','class_predict',class_predict); end
2. Eigface.m function [hasilEig,eigPic]=eigface(S,irow,icol) [jmlBaris,jmlKolom] = size(S); rerataData = mean(S,2); S=double(S); A=S; for i=1:jmlBaris for j=1:jmlKolom A(i,j)=S(i,j)-rerataData(i,1); end end ADbl=A; % ADbl=[]; % for i=1:jmlKolom % temp=double(A(:,i)); % ADbl=[ADbl temp]; % end % % Normlalisasi zscore
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47
% ADbl=zscore(ADbl); C=ADbl'*ADbl; C=zscore(C); % 3. Hitung eigenvector dan eigenvalue dari covariance matrix. [eigenvector,eigenvalue]=eig(C); % 4. Pilih component dan bentuk vector feature dan principal component dari % eigenvector yang memiliki eigenvalue paling besar diambil (decreasing order). eigenvalue=diag(eigenvalue); [~, indeks]=sort(eigenvalue,'descend'); featureVector=eigenvector(:,indeks); % 5. Menurunkan data set yang baru. u = ADbl*featureVector; % assignin('base','u',u); % % PCA denggan PCA dari Matlab % ADbl=double(S); % [~,u,~] = princomp(ADbl); % Normalisasi u= zscore(u); % % Potong PC % cutU=u(1:jmlPC,:); % Hasil akhir hasilEig=u; % Tampilan foto eigenface for i=1:size(u,2) img=reshape(u(:,i),icol,irow); img=img'; img=histeq(img,255); eigPic=img; end end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48
3. Input.fig
4. Input.m function varargout = Input(varargin) %INPUT M-file for Input.fig % INPUT, by itself, creates a new INPUT or raises the existing % singleton*. % % H = INPUT returns the handle to a new INPUT or the handle to % the existing singleton*. % % INPUT('Property','Value',...) creates a new INPUT using the % given property value pairs. Unrecognized properties are passed via % varargin to Input_OpeningFcn. This calling syntax produces a % warning when there is an existing singleton*. % % INPUT('CALLBACK') and INPUT('CALLBACK',hObject,...) call the % local function named CALLBACK in INPUT.M with the given input % arguments. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49
% instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Input % Last Modified by GUIDE v2.5 29-Jul-2015 20:43:54 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Input_OpeningFcn, ... 'gui_OutputFcn', @Input_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 Input is made visible. function Input_OpeningFcn(hObject, ~, 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 unrecognized PropertyName/PropertyValue pairs from the % command line (see VARARGIN) clc; % Choose default command line output for Input handles.output = hObject; axes(handles.Logo1) imshow('Icons\logo.png') axes(handles.axeGreyTraining) imshow('Icons\whos.jpg') axes(handles.axeEigenfaceTraining) imshow('Icons\whos.jpg') axes(handles.axFotoTesting) imshow('Icons\whos.jpg') axes(handles.axFotoHasil) imshow('Icons\whos.jpg') % Icon button zoom in confusion matriks set(handles.BtnFigureTable,'Visible','off');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50
icon=imread('Icons\figure.jpg'); set(handles.BtnFigureTable,'CData',icon); % Icon button zoom in set(handles.btnZoomIn,'Visible','off'); icon=imread('Icons\zoom_in.jpg'); set(handles.btnZoomIn,'CData',icon); % Icon button zoom out set(handles.btnZoomOut,'Visible','off'); icon=imread('Icons\zoom_out.jpg'); set(handles.btnZoomOut,'CData',icon); % Icon button hand set(handles.btnHand,'Visible','off'); icon=imread('Icons\hand.jpg'); set(handles.btnHand,'CData',icon); % Icon button figure axes grafik hasil uji set(handles.btnFigAxGrafikUji,'Visible','off'); icon=imread('Icons\figure.jpg'); set(handles.btnFigAxGrafikUji,'CData',icon); % Axes grafik hasil uji set(handles.axGrafikUji,'Visible','off'); % Update handles structure guidata(hObject, handles); % UIWAIT makes Input wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = Input_OutputFcn(~, ~, 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 during object creation, after setting all properties. function Logo1_CreateFcn(~, ~, ~) %#ok
% hObject handle to Logo1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
% Hint: place code in OpeningFcn to populate Logo1
% --- Executes on button press in btnDataTraining. function btnDataTraining_Callback(hObject, ~, handles) %#ok % hObject handle to btnDataTraining (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) clc; try set(handles.tblConMatrik,'Visible','off'); set(handles.txtAkurasi,'Visible','off'); set(handles.txtPersen,'Visible','off'); set(handles.BtnFigureTable,'Visible','off'); set(handles.btnSave,'Enable','inactive'); set(handles.BtnFigureTable,'Enable','inactive'); warning('off'); %#ok<WNOFF> handles.folder= uigetdir; if handles.folder ~= 0 jmlOrang=str2double(get(handles.etJumlahOrang, 'String')); jmlFoto=str2double(get(handles.etJumlahFoto, 'String')); jmlPC=str2double(get(handles.edJumlahPC, 'String')); handles.jmlOrang=jmlOrang; handles.jmlFoto=jmlFoto; if get(handles.popFormat,'Value') == 1 handles.format='.jpg'; elseif get(handles.popFormat,'Value') == 2 handles.format='.bmp'; else handles.format='.jpeg'; end % Mengambil nama file, menghilangkan angka dan ekstensi files = dir(fullfile(strcat(handles.folder,'\*',handles.format))); namaFile=cell(1,jmlOrang); namaSemua=cell(1,jmlOrang); for i=1:jmlFoto*jmlOrang nama=files(i).name; nama=regexprep(nama,strcat('[12345678910]+',handles.format),''); namaSemua{i}=nama; if mod(i,jmlFoto)==0 namaFile{i}=nama; end end namaFile=namaFile(~cellfun('isempty',namaFile));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
handles.nama=namaFile; % Pengambilan file dan memulai proses eigenface chkBox=get(handles.chkBoxGrey,'Value'); for i=1:jmlOrang S=[]; for j=1:jmlFoto str=strcat(handles.folder,'\',char(handles.nama(i)),int2str(j),han dles.format); gambar=imread(str); if chkBox==0 gambar=rgb2gray(gambar); % Berarti foto yang digunakan % adalah foto berwarna else % gambar=rgb2gray(gambar); end axes(handles.axeGreyTraining); %#ok imshow(gambar); % Gambar grey untuk axeGreyTraining % pause(0.1); [irow,icol]=size(gambar); a=gambar'; temp=reshape(a,irow*icol,1); S=[S temp]; %#ok set(handles.txtDimensiData,'String',['[m , n] = [',num2str(irow),' , ',num2str(icol),'] => Size: ', num2str(irow*icol)]); end handles.S=S;
% Proses eigenface [hasilEig,eigPic]=eigface(S,irow,icol); hasilSemuaEigFace{i}=hasilEig; %#ok % Menampung seluruh hasil eigenface % ke dalam cell % Foto eigenface untuk axeEigenfaceTraining axes(handles.axeEigenfaceTraining); %#ok imshow(eigPic); end % Potong PC [~,n]=size(hasilSemuaEigFace); hasilEigFace=[];
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53
hasilEigFaceMtx=[]; for i=1:n hasilEigFace{i}=hasilSemuaEigFace{i}(1:jmlPC,:); %#ok hasilEigFaceMtx=[hasilEigFaceMtx;hasilSemuaEigFace{i}(1:jmlPC,:)'] ; %#ok end handles.hasilSemuaEigFace=hasilSemuaEigFace; % Pembentukan class training dan testing jmlTesting=2;%str2double(get(handles.edJmlTesting,'String')); handles.jmlTesting=jmlTesting; class_semuaData=zeros(1,(jmlOrang*jmlFoto)); class_train=zeros(1,(jmlOrang*jmlFoto)-(jmlOrang*jmlTesting)); class_test=zeros(1,jmlOrang*jmlTesting); class=1; idxSemuaData=1; idxTrain=1; idxTest=1; for i=1:jmlOrang for j=1:jmlFoto class_semuaData(idxSemuaData)=class; idxSemuaData=idxSemuaData+1; end for j=1:jmlFoto-jmlTesting class_train(idxTrain)=class; idxTrain=idxTrain+1; end for k=1:jmlTesting class_test(idxTest)=class; idxTest=idxTest+1; end class=class+1; end handles.class_semuaData=class_semuaData'; class_train=class_train'; class_test=class_test'; handles.class_train=class_train; handles.class_test=class_test;
handles.hasilEigFaceMtx=hasilEigFaceMtx; model = NaiveBayes.fit(hasilEigFaceMtx,class_semuaData); handles.dataModelSemua=model.Params; % assignin('base','class_semuaData',class_semuaData); % assignin('base','hasilEigFaceMtx',hasilEigFaceMtx); % assignin('base','dataModelSemua',handles.dataModelSemua);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54
[testing,training,dataModel,ConMatrix,akurasi]=klafikasiAkurasi (hasilEigFace,jmlOrang,jmlFoto,class_train,class_test,jmlTesting); handles.testing=testing; handles.training=training; handles.conMax=ConMatrix; [~,n]=size(dataModel); dataModel{n+1}=handles.dataModelSemua; handles.model=dataModel; %
assignin('base','dataModel',dataModel);
% Menampilkan confius matriks set(handles.tblConMatrik,'Data',ConMatrix); set(handles.tblConMatrik,'ColumnWidth',{30}); set(handles.tblConMatrik,'Visible','on'); set(handles.BtnFigureTable,'Visible','on'); % Menampilkan hasil akurasi set(handles.txtAkurasi,'String',num2str (akurasi)); set(handles.txtAkurasi,'Visible','on'); % Menampilkan logo persen set(handles.txtPersen,'Visible','on'); % Mengaktifkan tombol Save dan figure tabel set(handles.btnSave,'Enable','on'); set(handles.BtnFigureTable,'Enable','on'); % Set max PC untuk percobaan uji akurasi set(handles.edPercobaanMax,'String',num2str(irow*icol)); end catch err uiwait(msgbox(strcat('ADA ERROR:',err.message),'Peringatan','modal')); end guidata(hObject, handles); %=========================================================END OF TRAINING % --- Executes on button press in BtnFigureTable. function BtnFigureTable_Callback(~, ~, handles) %#ok % hObject handle to BtnFigureTable (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of BtnFigureTable X=handles.conMax; % Konversi matrix dari nomor ke cell array string XX = reshape(strtrim(cellstr(num2str(X(:)))), size(X));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55
% Penentuan yang akan diberi warna dengan fotmat html [m,n]=size(X); for i=1:m for j=1:n if i==j XX(i,j) = strcat(... '<span style="color: #429808; font-weight: bold;font-size:18;">', ... XX(i,j), ... ' '); else if X(i,j)> 0 XX(i,j) = strcat(... '<span style="color: #FF0000; fontweight: bold;font-size:15;">', ... XX(i,j), ... ''); end end end end % Membuat tabel f = figure; h = uitable('Parent',f, 'Units','normalized', 'ColumnWidth',{30}, 'Position',[0.05 0.05 0.9 0.9]); % Menset data tabel set(h, 'Data',XX)
% --- Executes on button press in btnSave. function btnSave_Callback(~, ~, handles) %#ok