TRANSFORMTIKA , Vol.19, No.1, July 2021, pp. 17 - 25 ISSN: 1693-3656, journals.usm.ac.id/index.php/transformatika
◼ page 17
Pattern Recognition of Human Face With Photos Using KNN Algorithm
Dedy Kurniadi 1 , Andre Sugiyono 2 , Linggar Alfithna Wardaya 3
1 Universitas Islam Sultan Agung Jl. Raya Kaligawe km.4, e-mail: ddy.kurniadi@unissula.ac.id
2 Universitas Islam Sultan Agung Jl. Raya Kaligawe km.4, e-mail: andre@unissula.ac.id
3 Universitas Islam Sultan Agung Jl. Raya Kaligawe km.4, e-mail: linggar@unissula.ac.id

## ARTICLE  INFO
Article history:
Received 23 June 2021
Received in revised form 20 July 2021 Accepted 26 July 2021
Available online 31 July 2021

## ABSTRACT
A  Facial  photos  in  today's  era  are  widely  used  as  a media  for  identity  recognition,  but  not  many computer applications provide identity recognition of face  photos  that  contain  the  names  of  the  photo owners,  to  make  an  a  prototype  the  sistems  use  a KNN algorithm, this algorithm work is by classifying the  closest  object  and  grouping  it  on  predetermined objects. In this paper, the object is a face photo where the KNN algorithm will be used to classify the facial patterns contained in the photo. The stages in pattern recognition,  starting  from  preprocessing,  feature extraction and then classification. In addition to using the  KNN  algorithm  for  data  classification,  photo  of faces will be detected and stored the T-Zone area and frontal  face.  In  this  paper  11  images  used  for  data testing  and  the  accuracy  will  be  calculated  using  a recognition algorithm. The results of this paper are a facial  recognition  program  using  python  that  can display faces with a validity level of 82%.
Keywords: pattern recognition, KNN Algorithm

## 1. Introduction
Foto adalah citra yang didapatkan dari kamera, baik itu kamera dslr, kamera smartphone ataupun  kamera  cctv  yang  mempunyai  fungsi  merekam  object  pada  waktu-waktu  dan  kejadian tertentu. Tentu saja gambar yang berada pada foto berbagai macam, mulai dari pemandangan alam hingga gambar wajah manusia [1], [2]. Objek pada foto tersebut akan dikenali oleh manusia apabila terdapat pola yang sudah umum manusia lihat. Pattern recognition atau sering disebut pengenalan pola adalah teknik dibidang pembelajaran mesin ( machine learning ), pada penelitian ini difokuskan pada proses klasifikasi objek ke dalam kelas – kelas tertentu untuk mengelompokkan data sesuai dengan kelasnya. Pattern recognition digunakan untuk mengetahui atau mengindentifikasi objek dari sebuah media yang pada penelitian ini menggunakan media foto [3]. Foto wajah bisa diambil polanya untuk dikenali dan digunakan sebagai pengenalan identitas.
Sebelum pola wajah dapat dikenali, foto akan terlebih dahulu melewati beberapa proses. Pertama preprocessing yaitu tahap pemrosesan data agar data yang dihasilkan dapat sesuai dengan
kebutuhan ekstraksi fitur. Pada tahap ini foto yang telah diambil akan diubah menjadi skala keabuan ( grayscalling ). Tahap selanjutnya yaitu ekstraksi fitur. Pada proses ekstraksi fitur foto yang telah diubah  menjadi  skala  keabuan  akan  diubah  lagi  menjadi  angka  –  angka  koordinat  yang kemudian akan dilanjutkan ke tahap selanjutnya yaitu pengklasifikasian [4].
Algoritma yang digunakan dalam penelitian ini adalah algoritma KNN (K- Nearest Neighbor ) dengan menggunakan jarak tetangga yang berdekatan. Pada penelitian ini foto wajah akan diproses kemudian  diambil  koordinatnya  menggunakan  T-Zone  area  dan  Frontal  face  kemudian  jarak koordinat dihitung dengan menggunakan algoritma KNN.

## 2. Research Method 2.1 Algoritma KNN
Algoritma KNN (K- Nearest Neighbor ) merupakan teknik atau metode untuk melakukan klasifikasi terhadap object melalui data training dengan menggunakan jarak yaitu jaraknya paling dekat  dengan  objek  tersebut  [5],  [6].  KNN  merupakan  metode  yang  bersifat supervised dimana hasil  dari query instance yang  baru  diklasifikasikan  berdasarkan mayoritas  kategori  pada  KNN. KNN digunakan pada fase klasifikasi dimana fitur  – fitur yang telah melalui tahap  sebelumnya. Kemudian fitur yang sama tersebut selanjutnya akan dihitung sebagai testing data. Dari perhitungan akan menghasilkan jarak, kemudian jarak dari vector yang baru ini akan dihitung terhadap seluruh vector sampel  yang  ada  kemudian akan  diambil  k  yang  terdekat  [7].  Dengan ini  titik yang  baru tersebut akan dapat diprediksi termasuk klasifikasi terbanyak dari titik – titik tersebut.
KNN  digunakan  pada  fase  klasifikasi  dimana  fitur  –  fitur  yang  telah  melalui  tahap sebelumnya. Fitur – fitur yang sama kemudian akan dihitung untuk testing data. Jarak dari vector yang  baru ini akan  dihitung  terhadap  seluruh  vector sampel yang ada  kemudian  akan  diambil  k yang terdekat [8]. Dengan ini titik yang baru tersebut akan dapat diprediksi termasuk klasifikasi terbanyak dari titik – titik tersebut .
Untuk  mengklasifikasikan  jarak  antara  data training dan  data testing dapat menggunakan rumus Euclidean Distance sebagai berikut.
= √(𝑞 1 − 𝑝 1 ) 2 + (𝑞 2 − 𝑝 2 ) 2 + . . . +(𝑞 𝑛 − 𝑝 𝑛 ) 2 (1)
=   √∑ (𝑞 𝑖 − 𝑝 𝑖 ) 2 𝑛 𝑖=1
Dimana :
N = Jumlah Dimensi
Q = Data Training
P = Data Testing

## 2.2 Teknik Pengelanan Pola

## 2.2.1 Preprocessing
Preprocessing yaitu  tahapan  setelah  citra  diubah  menjadi  citra  digital.  Pada  tahap preprocessing berperan penting dalam pengolahan data. Proses ini bertujuan untuk meningkatkan kualitas  citra  yang  akan  digunakan  sesuai  dengan  kebutuhan  penelitian.  Adapun  tahapan  dalam preprocessing [9].
Sebelum data diolah menjadi data yang dibutuhkan, data harus melewati berbagai proses terlebih  dahulu.  Mulai  dari  akuisisi  citra, preprocessing hingga  pada  tahap  akhir  yaitu  evaluasi. Akuisisi citra yaitu perubahan citra analog menjadi citra digital.

## 2.2.2 Ekstrasksi Fitur
Ekstraksi  fitur  merupakan  tahapan  slanjutnya  ketika  citra  yang  dihasilkan  pada tahap preprocessing sudah sesuai. Ekstraksi fitur merupakan bagian penting dalam analisis
citra.  Pada  tahap  ini  bertujuan  untuk  memperoleh  informasi  dari  masing  –  masing  citra yang kemudian akan diolah [10].
Ekstraksi  fitur  pada  citra  merupakan  tahapan  penting  dalam  pemrosesan  citra digital.  Karena  pada  ekstraksi  fitur  diharapkan  bisa  menghasilkan  fittur  yang  sempurna yang bisa menggambarkan konten pada citra. Ekstraksi fitur sendiri yaitu mengambil nilai – nilai unik serta informasi yang berguna dari setiap citra. Fitur – fitur pada citra juga sering disebut sebagai signature of image atau tandatangan dari sebuah citra. Ada beberapa fitur yang bisa diekstrak dari suatu citra, yaitu warna, tekstur dan bentuk. Ketiga fitur tersebut sering disebut sebagai low level features .
Pada ekstraksi fitur ini menggunakan library yang berada pada software python. Library yang digunakan yaitu library T-Zone yang bertujuan untuk ekstraksi fitur mata, hidung dan mulut pada  wajah, library  face  recognition yang  bertujuan  untuk  mendapatkan  fitur  garis  pada  wajah sehingga akan mendapatkan pola wajah pada citra dan library frontal face yang bertujuan untuk mendapatkan  keseluruhan  pengenalan  pola  wajah  mulai  dari  bagian  T- zone (mata,  hidung  dan mulut) dan bagian tepi wajah.

## 2.2.3 Klasifikasi
Pada tahap klasifikasi, data yang telah diolah pada tahap selanjutnya akan dikelompokkan dengan  memberi  label  pada  citra  yang  telah  diidentifikasi.  Klasifikasi  pada  penelitian  ini menggunakan  metode  K- Nearest  Neighbor .  Pada  tahap  sebelumnya  yaitu preprocessing didapatkan  hasil  berupa  titik  koordinat  pada  data  citra testing, kemudian  pada  tahap  klasifikasi koordinat tersebut akan dikelompokkan berdasarkan jarak terdekatnya dari data citra training [11] .

## 2.2.4 Akurasi
Setelah semua tahap dilewati, proses selanjutnya yaitu menghitung akurasi atau ketepatan pada sistem. Akurasi ini bertujuan untuk menilai seberapa tepatkah metode KNN yang diterapkan pada sistem. Akurasi ini menggunakan rumus.
Akurasi = 𝑗𝑢𝑚𝑙𝑎ℎ 𝑝𝑟𝑒𝑑𝑖𝑘𝑠𝑖 𝑏𝑒𝑛𝑎𝑟 𝑗𝑢𝑚𝑙𝑎ℎ 𝑡𝑜𝑡𝑎𝑙 𝑝𝑟𝑒𝑑𝑖𝑘𝑠𝑖 × 100% (2)
Jumlah prediksi benar adalah hasil dari data testing yang mempunyai kelas dan label sama dengan  data training yang  ada  pada  sistem  dan  jumlah  total  prediksi  merupakan  jumlah  dari keseluruhan data testing .

## 3. Results and Analysis

## 3.1. Pengumpulan Data
Proses pengumpulan data citra pada penelitian ini menggunakan citra wajah dosen pada  Fakultas  Teknologi  Industri  (FTI)  Universitas  Islam  Sultan  Agung  (Unissula) Semarang.  Data  pada  penelitian  yang  digunakan  adalah  9  citra  digunakan  sebagai  data training dan 5 citra dimana terdapat 11 wajah yang akan dikenali digunakan sebagai data testing .  Pada  tabel  3.1  merupakan  daftar  data  citra  wajah  yang  digunakan  sebagai  data training.

## Tabel 3.1 Data Training
No. Foto Nama No Foto Nama
1.
Andi 7 Bagus 2. Andi 8 Bagus
3
Andi 9 Bagus
4 Dedy
5 Dedy 6 Dedy
Dari tabel data training tersebut kemudian akan ditesting dengan algoritma KNN, Hasil dari tesing ditunjukkan pada tabel 3.2
Tabel 3.2 Proses cropping
Citra Asli
Citra Hasil Cropping
setelah  citra  diubah menjadi  persegi, citra  akan diubah menjadi citra  dengan  resolusi  256  x 256 piksel, sehingga semua citra data akan mempunyai resolusi yang sama.
Tabel 3.3 Proses resizing
Citra Asli
Citra Setelah Resize
Selanjutnya Proses merubah citra berwarna menjadi citra grayscale dilakukan dengan tujuan untuk  mengubah  nilai  ( Red,  Green,  Blue )  dalam  satu  piksel  citra  menjadi  hanya mempunyai satu nilai dalam satu piksel citra.
Tabel 3.4 Proses grayscalling
Citra Asli
Citra Setelah Grayscalling
Tabel 3.5 Hasil testing
No. Hasil Pengenalan Wajah Koordinat Keterangan [X] [Y] 1. Data Testing 1 - Andi 339 494 Wajah 1 2. Data Testing 2 - unknown 128 336 Wajah 2 - Andi 504 297 Wajah 3 - Dedy 335 260 Wajah 4 - Bagus 674 225 Wajah 5 3. Data Testing 3 - Dedy 199 104 Wajah 6
- Dedy 494 136 Wajah 7 4. Data Testing 4 - Bagus 648 202 Wajah 8 5. Data Testing 5 - Dedy 103 140 Wajah 9 - Dedy 552 204 Wajah 10 - Unknown 343 216 Wajah 11

## 3.2 Implementasi Algoritma KNN
Berikut  merupakan  analisis  sistem  pengenalan  pola  wajah  menggunakan  media  foto dengan  metode  KNN,  data  hasil  pengujian  menggunakan  metode  KNN  dengan  K  adalah  3. Setelah melalui tahap preprocessing dan ekstraksi fitur lalu data training dan data testing akan diklasifikasikan guna dapat diberi label pada data yang diujikan. Berikut merupakan tahapan dana pengelompokkan menggunakan algoritma KNN.
Gambar 3.1 Python run KNN classifier
Tabel 3.6 Hasil Uji Citra
Citra Uji Hasil Citra Uji Gambar  dapat  dikenali  dan  dari  keempat  wajah tersebut  terdapat  1  data  unknown  karena  wajah tersebut  tida  ada  dalam  database  maupun  data training.
Pada  gambar  semuanya  dikenali  namun  flag  pada namanya adalah dedy dan andre.
Data  dikenali  dan  flag  nama  menampilkan  sebagai bagus

## Data dikenali dengan flag nama andi

## Terdapat satu gambar tidak terdapat flag nama

## 3.3 Perhitungan KNN
Untuk mendapatkan jarak berdasarkan koordinat T-Zone Area maka jarak koordinat akan dihitung untuk mengetahui jarak terdekat dari data training dan data testing.
Tabel 3.6 Data T-Zone Citra Pixel 1 Pixel 2 Pixel 3 Pixel 256 Label 1 0,9659 0,033 0 0 Unknown 2 0,9785 0,0204 0 0 Andre 3 0,9552 0,0437 0 0 Santosa 4 0,9827 0,0162 0 0 Bagus 5 0,9573 0,0415 0 0 Dedy 6 0,9785 0,0204 0 0 Andre 7 0,9827 0,0162 0 0 Bagus 8 0.9463 0,0134 0 0 Andi a. Menghitung (1,6) = √(0,9659 − 0,9722) 2 +   (0,033 − 0,9712) 2 +   (0 − 0) 2 + (0 − 0) 2
= √0,00001849  +  0,88021924  +  0  +  0 = √0,88023773 = 0,9382098539239502 b. Menghitung (2,6)
= √(0,9785 − 0,9722 ) 2 + (0,0204 − 0,9712) 2 + (0 − 0) 2 + (0 − 0) 2
= √0,00006889 + 0,90402064 + 0 + 0 = √0,00013778 = 0,0117379725676967
c. Menghitung (3,6)
= √(0,9552 − 0,9722) 2 + (0,0437 − 0,9712) 2 + (0 − 0) 2 + (0 − 0) 2
= √0,000225 + 0,86025625 + 0 + 0
= √0,86048125 = 0,9276212858704785
d. Menghitung (4,6)
= √(0,09827 − 0,9722) 2 + (0,0162 − 0,9712) 2 + (0 − 0) 2 + (0 − 0) 2
= √0,7618322089 + 0,912025 + 0 + 0 = √1,6738572089
= 1,293776336504884
e. Menghitung (5,6)
= √(0,9573 − 0,9722) 2 + (0,0415 − 0,9712) 2 + (0 − 0) 2 + (0 − 0) 2
= √0,00016641 + 0,86434209 + 0 + 0 = √0,8645085 = 0,9297894923045754
Tabel 3.7 Citra Hasil Jarak Ranking 3 tetangga terdekat Label 1 0,9382098539239502 4 TIDAK Andre 2 0,0117379725676967 1 YA Bagus 3 0,9276212858704785 2 YA Dedy 4 1,293776336504884 5 TIDAK Dedy 5 0,9297894923045754 3 YA Andi

## 3.4 Akurasi Sistem
Hasil uji coba dengan menggunakan nilai k = 1 telah dilakukan dapat dilihat pada tabel 3.7 yang mencocokan antara data training dengan data testing.
Tabel 3.8 No. Citra Uji Data Aktual Data KNN Keterangan 1. Wajah 1 Unknown Unknown Benar 2. Wajah 2 Andre Andre Benar 3. Wajah 3 Bagus Bagus Benar 4. Wajah 4 Dedy Dedy Betul 5. Wajah 5 Andi Andi Benar 6. Wajah 6 Bagus No Flag Error ∑ 𝐶𝑜𝑟𝑟𝑒𝑐𝑡 ∑ 𝑆𝑎𝑚𝑝𝑙𝑒 𝑥100% (3) 9 11 × 100 %    = 82%
Akurasi sistem yang didapat dari 11 citra wajah dengan K=1 didapatkan presentase sebesar 82%

## 4. Conclusion
Algoritma KNN dapat diterapkan kedalam pemrograman python dengan baik dan berdasarkan dari  hasil  training  sampai  dengan  uji  citra  pada  penelitian  ini  bahwa  algoritma  KNN  mampu
mengenali objek wajah dengan menentukan tetangga terdekat berdasarkan data training yang ada didalam database, tingkat akurasi pengenalan wajah dengan algoritma KNN adalah sebesar 82%.

## References
[1] B. Warna, K. Dengan, and M. Template, “Penentuan Wilayah Wajah Manusia Pada Citra Berwarna Berdasarkan Warna Kulit Dengan Metode Template Matching,” Maj. Ilm. Teknol. Elektro , vol. 5, no. 2, pp. 1–8, 2012, doi: 10.24843/10.24843/MITE.
[2] M.  A.  Rahman,  I.  S.  Wasista,  M.  Kom,  and  L.  Belakang,  “Sistem  Pengenalan  Wajah Menggunakan Webcam Untuk Absensi Dengan Metode Template Matching,” Elektronika , pp. 1–6, 2015.
[3] C.  V.  Angkoso,  J.  T.  Informatika,  F.  Teknik,  U.  Trunojoyo,  E.  Fitur,  and  A.  Tekstur, “Pengenalan Jender Berbasis Tekstur Pada Citra Wajah Foto Digital,” Konf. Nas. “Inovasi dalam Desain dan Teknol. , pp. 119–125, 2011.
[4] I.  Santoso,  Y.  Christyono,  and  M.  Indriani,  “Kinerja  Pengenalan  Citra  Tekstur Menggunakan  Analisis  Tekstur  Metode  Run  Length,” Semin.  Nas.  Apl.  Teknol.  Inf. ,  vol. 2007, no. Snati, pp. 19–25, 2007.
[5] E. Budianita, J. Jasril, and L. Handayani, “Implementasi Pengolahan Citra dan Klasifikasi K-Nearest Neighbour Untuk Membangun Aplikasi Pembeda Daging Sapi dan Babi Berbasis Web,” J. Sains dan Teknol. Ind. , vol. 12, no. Vol 12, No 2 (2015): Juni 2015, pp. 242–247,
2015, [Online]. Available: http://ejournal.uin-
suska.ac.id/index.php/sitekin/article/view/1005.
[6] M.  A.  Naufal,  “Implementasi  Metode  Klasifikasi  K-Nearest  Neighbor  (K-NN)  untuk Pengenalan Pola Batik Motif Lampung,” J.  Chem.  Inf. Model. , vol.  53,  no.  9,  pp.  1689– 1699, 2017, [Online]. Available: http://digilib.unila.ac.id/28648/3/SKRIPSI TANPA BAB PEMBAHASAN.pdf.
[7] F.  Liantoni,  “Klasifikasi  Daun  Dengan  Perbaikan  Fitur  Citra  Menggunakan  Metode  K- Nearest Neighbor,” J. Ultim. , vol. 7, no. 2, pp. 98–104, 2016, doi: 10.31937/ti.v7i2.356.
[8] A.  Budi,  S.  Suma’inna,  and  H.  Maulana,  “Pengenalan  Citra  Wajah  Sebagai  Identifier Menggunakan Metode Principal Component Analysis (PCA),” J. Tek. Inform. , vol. 9, no. 2, pp. 166–175, 2018, doi: 10.15408/jti.v9i2.5608.
[9] D.  Sutaji  and  R.  Dijaya,  “Classification  of  Milk  Fish  Quality  using  Fuzzy  K-Nearest Neighbor Method Based on Form Descriptor and Co-Occurrence Matrix,” J. Phys. Conf. Ser. , vol. 1179, no. 1, 2019, doi: 10.1088/1742-6596/1179/1/012021.
[10] Johan  Wahyudi  and  Ihdahubbi  Maulida,  “Pengenalan  Pola  Citra  Kain  Tradisional Menggunakan Glcm Dan Knn,” J. Teknol. Inf. Univ. Lambung Mangkurat , vol. 4, no. 2, pp. 43–48, 2019, doi: 10.20527/jtiulm.v4i2.37.
[11] R. Armandhani, R. C. Wihandika, and M. A. Rahman, “Klasifikasi Gender berbasis Wajah menggunakan Metode Local Binary Pattern dan Random KNN,” J. Pengemb. Teknol. Inf. dan Ilmu Komput. , vol. 3, no. 8, pp. 7575–7582, 2019.