## Journal of Applied Informatics and Computing (JAIC)
Vol.5, No.1, Juli 2021, pp. 21~27 e-ISSN: 2548-6861

## Absensi Pengenalan Wajah Menggunakan Menggunakan Algoritma Eigenface Berbasis Web
Satria Putra 1 *, Iskandar Fitri 2 *, Sari Ningsih 3 * * Program Studi Teknik Informatika, Universitas Nasional satriacening@gmail.com 1 , tektel2001@yahoo.com 2 , sariningsih.lectures@yahoo.com 3
Article Info ABSTRACT Article history: Received 2020-12-05 Revised 2021-02-04 Accepted 2021-02-07 During the Covid-19 virus pandemic as it is currently being experienced in Indonesia is very rapidly spreading, forcing the government to impose a PSBB (Pembatasan Sosial Bersekala Besar) system in several regions in Indonesia. With the government regulation on health protocols,  many companies  must take  action to  minimize the spread  of  the  Covid-19  virus.  In  this  situation  with  daily  activities  opens opportunities for the Covid-19 virus to spread very quickly, especially in the office sphere. The spread of the Covid-19 virus could be through an attendance system that still uses finger print tools used to collect employee attendance data. In this study, attendance  application  developed  using  facial  recognition  method  as  key  for employee data retrieval. This method of facial recognition is applied in real time with a certain distance and lighting. Eigenface algorithm is used as a training process for employees' faces that have been inputted before. The results of the training data will be saved to a database which is then used as a key to recognize the faces of employees who will perform attendance. In the results of the trial the attendance data application will enter when the level of facial recognition is above 70%.
Keyword:

## Eigenface,
Face recognition,
Attendance.
This is an open access article under the CC–BY-SA license.

## I. P ENDAHULUAN
Absensi  adalah  sebuah  aktivitas  pengambilan  data  yang bertujuan untuk  mengetahui jumlah  kehadiran pada anggota atau  karyawan.  Penggunaan  absensi  ini  sering  digunakan pada  sebuah  instansi  atau  perusahaan  yang  mempunyai banyak anggota. Fungsi utama dari absensi yaitu menghitung jumlah  kehadiran  anggota  untuk  mengetahui  berapa  upah yang harus di berikan pada anggota [1]. Dengan implementasi sistem aplikasi absensi yang baik diharapkan dapat membantu menyelesaikan  pekerjaan  input  data  karyawan  dengan  lebih mudah  dan  sesuai  dengan  apa  yang  diharapkan  [2]. Pemanfaatan  aplikasi  web  dan  mobile  bisa  menjadi  solusi yang  tepat  dan  praktis  dikarenakan  kemudahan  akses  data serta pengambilan informasi.
Seiring berjalannya waktu sistem absensi kian berkembang.  Berbagai  jenis  sistem  absensi  pula  telah berkembang  seperti  dengan  menggunakan  metode  barcode dan sidik jari [3]. Permasalahan pada sistem absensi barcode muncul ketika anggota karyawan tidak membawa kartu yang atau  alat  lainnya  yang  telah  diberi  barcode,  maka  karyawan tidak akan bisa  melakukan absensi. Dimasa pandemi covid-
19 penggunaan sistem absensi sidik jari tidak bisa gunakan. Kelemahan  alat  pemindai  sidik  jari  yaitu  satu  alat  yang digunakan  secara  bersamaan  oleh  semua  karyawan  yang memungkinkan  virus  covid-19  menyebar  melalui  alat tersebut.  Maka  dari  itu  metode  pengumpulan  data  absensi karyawan  harus  dirubah.  Dengan  aplikasi  absensi  online berbasis  web  absensi  menggunakan  metode  pengenalan wajah  karyawan  dapat  menggunakan  wajah  sebagai  sebagai id untuk melakukan absensi. Para karyawan bisa mengakses aplikasi tersebut melalui pc/laptop dan smart phone masing- masing sehingga terhindar dari kontak dengan karyawan yang lain.
Perkembangan  teknologi  inipun  sangat  berpengaruh dengan cara kerja sistem dalam pengambilan data karyawan sebagai  validasi  yang  bertujuan  untuk  menggantikan  cara kerja sistem yang sebelumnya digunakan. Contoh penerapan teknologi  fingerprint  dan  juga  barcode  [4].  Teknologi  ini dikembangkan  karena  peluang  kesalahan  input  data  sangat kecil dan terhindar dari kecurangan dalam input data.
Metode pengenalan wajah merupakan salah satu teknologi biometrik  yang  telah  banyak  digunakan  dalam  beberapa sistem  keamanan  selain  dari  pengenalan  retina  mata  dan
22
pengenalan  sidik  jari.  Kekurangan  dalam  metode  sidik  jari ketika sidak jari seseorang terluka atau kotor akan menggangu proses  scanning  pada  sensor.  Permasalahan  utama  pada penelitian  kali  ini  metode  sidik  jari  tidak  bisa  diterapkan selama masa pandemi. Device finger print sensor digunakan secara bersamaan yang berpotensi menjadi media penebaran virus covid-19, sehingga  metode pengenalan  wajah  menjadi solusi  terbaik.  Cara  kerja  pengenalan  wajah  menggunakan sebuah device kamera atau webcam yang bisa diakses secara realtime untuk menangkap sebuah citra wajah dan kemudian dibandingkan  dengan  id  wajah  yang  telah  ditraining sebelumnya [5].

## II. M ETODE P ENELITIAN
Metode  penelitian  yang  diadopsi  dalam  penelitian  adalah metode  penumpulan  data  kuantitatif.  Metode  kuantitatif merupakan  sebuah  metode  yang  berdasarkan  bukti  emprisis dengan  tujuan  untuk  mendapatkan  pola  atau  model matematis, pembuktian teoritis dan dan hipotesis. Berdasarkan pengalaman peneliti yang didapatkan kemudian dikembangkan kembali sehingga didapatkan pokok permasalahan beserta solusi dan pembaharuan.

## A Algoritma Eigenface
Kata  eigenface  adalah  penggabungan  antara  2  kata  yang berasal dari bahasa Jerman “eigenwert” kata “eigen” memiliki arti  karakteristik  sedangkan  “wert”  adalah  nilai.  Algoritma Eigenface merupakan salah satu algoritma image processing yang  mengadopsi  konsep  Principal  Component  Analysis (PCA)  yang  bertujuan  mengurangi  dimensionalitas  serta mencari  nilai  vektor  tertinggi  yang  kemudian  digunakan untuk  mendistribusikan  citra  wajah  [5-6].  Nilai  eigenvector diurutkan  dari  eigenvalue  tertinggi  menuju  kenilain  paling terendah  yang  kemudian  difilter  dari  banyaknya  nilai eigenvector  untuk  mendapatkan  bentuk  pricipal component. Perhitungan  Eigenface  menggunakan  Principan  Component Analysis (PCA) adalah sebagai berikut [7-10].
1) Menyiapkan  data.  Dalam  tahap  ini  citra  wajah  yang merupakan data training (Ti) harus dipersiapkan terlebih dahulu.
2) Mencari  selisih  rata-rata.  Rata-rata  matriks 𝚿 harus dihitung,  kemudian  dikurangi  dari  data  training  wajah ( T i ) dan hasilnya akan di simpan pada variabel ϕ i
ψ= 1 M ∑ n − 1 T n (1)
ϕ i = T i − ψ (2)
3) Menghitung  matriks  kovarian.  Langkah  selanjutnya adalah menghitung matriks kovarian C berdasarkan,
C= 1 M ∑ n − 1 ϕ n ϕalignc T n
(3)
4) Menghitung  eigenvector  dan  eigenvalues  dari  matriks kovarian.  Dalam  tahap  ini  eigenvectors  (eigenface) µ i
dihasilkan  dari  matrik  kovarian  C  yang  disesesuaikan berdasarkan eigenvalues λ i .
5) Memilih  komponen  utama.  Dari M eigenvector (eigenface) µ i , hanya M’ yang  dipilih  memiliki eigevaluees  terbesar. Semakin besar eigenvalues maka semakin  besar  karakteristik  fitur  dari  citra  wajah  yang telah digambarkan oleh eigenvectors.
Eigenface pada umumnya adalah himpunan eigenvectors. Eigenvector diturunkan dari nilai matriks kovarian dari ruang vektor yang berasal dari wajah-wajah manusia [12-13]. Demi mendapatkan  eigenface  sejumlah  himpunan  gambar  citra wajah  diambil  dalam  kondisi  pencahayaan  yang  sama kemudian dapat dilakukan normalisasi.

## Gambar 1. Diagram alur Training
Pada  gambar  1  menunjukan  alur  proses  dalam pengambilan  dan  training  wajah  oleh  user  admin.  Gambar wajah telah diambil maka kemudian akan disimpan didalam folder.  Ketika  user  menekan  tombol  trainig  maka  program akan  menjalankan  proses  training  dengan  menggunakan algortima eigenface dari gambar wajah yang telah disimpan. Jika training wajah berhasil maka data training akan disimpan kedalam  Training.xml  apa  bila  proses  training  gagal  perlu dilakukan pengambilan ulang gambar wajah.

## Gambar 2. Diagram alur absensi
Dalam  gambar  2  merupakan  diagram  alur  atau  tahapan proses  absensi.  Langkah  pertama  webcam  akan  akan mendeteksi  wajah  yang  kemudian  akan  dicocokan  kedalam database training yang sudah disiapkan sebelumnya. Jika citra wajah  telah  ditemukan  di  dalam  database  maka  absensi berhasil dan di simpan ke database Attendance MySQL.

## B Perancangan Aplikasi
Aplikasi Absensi ini dibangun menggunakan basis website dengan  bahasa  pemrograman  PHP  dan  HTML  yang  ada didalam website. Bahasa PHP digunakan untuk pemrograman koneksi  ke  database,  integrasi  antar  halaman  dan  membuat fungsi-fungsi  pada  aplikasi.  Bahasa  Pemrograman  HTML fungsi pada umumnya adalah untuk menyusun tata letak teks dan seperti headling, paragraf dan tombol pada aplikasi web. Aplikasi  absensi  yang  dibangun  dengan  2  level  user,  yaitu admin dan clien. Fungsi  utama user admin ialah input, edit, delete data karyawan dan fungsi admin pada umumnya. Pada level user inilah training data wajah dilakukan yang nantinya digunakan  sebagai  verifikasi  absensi  yang  dilakukan  pada level user client.

## Gambar 3. Struktur Aplikasi
Pada gambar 3 diperlihatkan struktur dari aplikasi yang di buat  pada  penelitian  ini.  Ketika  user  admin  login  untuk training  akan  mengambil  capture  dan  di  training  dengan algoritma  eigenface.  Hasil  training  akan  disimpan  ke  dalam file Training.xml  yang nantinya akan digunakan  ketika  user login sebagai client untuk melakukan absensi dengan metode pengenalan wajah. Ketika gambar wajah cocok dengan yang ada dalam database maka user berhasil absen dan disimpan ke dalam database attendance.

## C Requirement
Dalam  perancangan  aplikasi  absensi  pada  penelitian  ini dibutuhkan beberapa tools agar aplikasi selesai dan berjalan sesuai dengan yang diharapkan. Tools yang di gunakan dapat dilihat pada tabel 1.
TABEL I R EQUIREMENT No. Item Requirement Developer Requiremen t User 1 PC Yes Yes 2 Webcam Yes Yes 3 Operating System Yes Yes 4 Web Server Yes No 5 Web Browser Yes Yes 6 Code Editor Yes No

## III. H ASIL DAN P EMBAHASAN

## A Halaman Admin
Ketika user berhasil login sebagai Admin maka user akan di  direct  ke  halaman  admin.  Fungsi  utama  halaman  admin pada penelitian ini adalah pengambilan data wajah karyawan kemudian  mentrainingnya  dan  beberapa  fitur  lain  seperti tambah  dan  edit  data  karyawan.  Sub  menu  halaman  admin dapat di lihat dilihat pada gambar 4.

## Gambar 4. Sub menu halaman admin.
Halaman data karyawan merupakan salah satu sub halaman dari halaman utama admin. Fungsi halaman ini adalah melihat daftar karyawan yang telah terdaftar oleh admin dapat dilihat pada gambar 5.

## Gambar 5. Halaman Daftar Karyaawan
Tambah  data  karyawan  berfungsi  untuk  menambahkan data  karyawan  dan  data  wajah  baru.  Halaman  tambah  data karyawan bisa dilihat pada gambar 6.
Gambar 4. Halaman tambah data Karyawan .
Fitur  Tambah  foto  karyawan  merupakan  suatu  tahap pengambilan foto karyawan yang dilakukan oleh user admin.
Fitur ini terdapat pada 2 halaman yaitu halaman tambah data karyawan  ketika  admin  menginputkan  karyawan  baru  dan terdapat juga pada halaman edit data karyawan dengan data karyawan  yang  sudah  diinputkan  tetapi  belum  dilakukan pengambilan foto.
Koneksi  halaman  web  untuk  membuka  webcam  dikirim dengan menggunakan fungsi href pada HTML.
<a href="/detect">Tambah Foto Karyawan</a>
Setelah  dikirim  perintah  dikirim  melalui href kemudian akan  ditangkap  oleh urlpatterns yang  terdapat  pada  terdapa file urls.py. File urls.py merupakan file yang berfungsi untuk mengolah semua url yang ada pada web framework django.
urlpatterns = [ url(r'^detect$', app_views.detect) ]
Pada  kode  program  diatas  di  tunjukan  bahwa  destinasi selanjutnya  adalah  “app_views.detect”  yang  artinya memanggil  fungsi  detect  yang  terdapat  pada  file views.py pada  aplikasi.  Fungsi  yang  digunakan  untuk  membuka webcam sebagai berikut.
retV, frame = cam.read() frameAbu = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('Webcam', frame) cv2.imshow('Webcam Hitam Putih', frameAbu)
Ketika  tombol  tambah  foto  ditekan  dua  jendela  kamera akan  muncul.  Jendela  pertama  dengan  tampilan  berwarna yang  berfungsi  sebagai  preview  dan  jendela  kedua  dengan tampilan yang sudah dikonversi kedalam grayscale atau hitam putih  yang  berfungsi  untuk  mengurangi  kedalaman  warna [11].  Tombol  ambil  gambar  dengan  menekan  tombol c kemduidan file yang disimpan akan adalah hasil gambar yang berwarna. Proses konversi ke grayscale akan dilakukan oleh program  ketika  program  training  dijalankan.  Langkah pengambilan gambar wajah dapat di lihat pada gambar 7.

## Gambar 7. Poses pengambilan gambar wajah.
Langkah  selanjutnya  adalah  proses  training  data  wajah yang  telah  diambil  sebelumnya.  Berikut  kode  program pengambilan data wajah.
def getImageLabel(path): imagePaths = [os.path.join(path,f) for f in os.listdir(path)]
faceSamples = [] faceIDs = [] for imagePaths in imagePaths: PILImg = Image.open(imagePaths).convert('L') imgNum = np.array(PILImg,'uint8') faceID = int(os.path.split(imagePaths)[- 1].split(".")[1]) faces = faceDetector.detectMultiScale(imgNum) for (x, y, w, h) in faces: faceSamples.append(imgNum[y:y+h,x:x+w]) faceIDs.append(faceID) return faceSamples,faceIDs faceRecognizer = cv2.face.FaceRecognizer_create() faceDetector = cv2.CascadeClassifier('haarcascade_frontalface_d efault.xml') faces,IDs = getImageLabel(dirWajah) faceRecognizer.train(faces,np.array(IDs))
Pada  test  pertama  pegambilan  gambar  wajah  sebanyak sepuluh  kali  dengan  jarak  ±50cm  dari  kamera.  Gambar kemudian disimpan  sebagai persiapan proses training. Hasil pengambilan gambar dapat dilihat pada gambar 8.

## Gambar 8. Pengambilan gambar untuk test peratama.
Berikut adalah kode program dari pengenlana wajah faceRecognizer.read(dirPengenalan+'/training.xml ') while True: retV, frame = cam.read() faces = faceDetector.detectMultiScale(frameAbu, 1.2, 5,minSize=(round(minWidth),round(minHeigth)),) for (x, y, w, h) in faces: frame = cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 3) id, confidence = faceRecognizer.predict(frameAbu[y:y+h,x:x+w]) if confidence<=50 : nameID = names[id] confidenceTxt = " {0}%".format(round(100 - confidence))
cv2.imshow('FaceRecognition', frame)
Hasil  yang  didapatkan  pada  training  pertama  didapatkan nilai akurasi pengenalan stabil pada angka 83% dapat dilihat pada gambar 9.
Gambar 9. Hasil test peratama.
Pada  test  kedua  dilakukan  pengambilan  gambar  wajah dengan  jarak  yang  kurang  lebih  sama  dengan  test  pertama kondisi  yang  baik.  Hasil  pengambilan  data  ke  dua  dapat dilihat pada gambar 10.
Gambar 10. Pengambilan gambar test ke dua.
Dalam test ke dua dalam jarak yang sama yaitu ±50cm di dapatkan  nilai  akurasi  pengenalan  wajah  stabil  pada  angka 65%. hasil test ke dua dapat di lihat pada gambar 11.

## Gambar 11. Hasil test ke dua.
Percobaan ke tiga mengambil gambar wajah dengan jarak ±50  dengan  pencahayaan  yang  sedang.  Hasil  pengmabilan gambar wajah dapat dilihat pada gambar 12.
Gambar 12. Pengambilan gambar untuk test ke tiga.
Hasil  akurasi  gambar  pada  test  ke  tiga  mendapat  nilai dengan nilai 65%. hasil test akurasi ke tiga dapa dilihat pada gambar 13.
Gambar 13. Hasil test ke tiga.
Dari hasil uji coba yang di lakukan beberapa kali test dapat dengan  jarak  dan  pencahayaanyang  berbeda  maka  di  dapat hasil  yang  berbeda.  Hasil  pengujian  dapat  dilihat  dalam bentuk tabel 1.
TABEL II P RESENTASE A KURASI No. Nama Jarak (cm) Cahaya Presentase akurasi (%) 1 Satria ±50 Sedang 77-87 2 Sopian ±50 Bagus 60-68 3 Arwan ±50 Sedang 60-70
Fitur  selanjutnya  adalah  Pengumuman  yaitu  fitur  admin yang  dapat  memberikan  sebuah  pengumuman  baru  atau menghapus  pengumuman  lama  yang  kemudian  akan ditampilkan  kedalam  halaman  utama  client.  Halaman pengumuman dapat dilihat pada gambar 14.
Gambar 14. Halaman pengumuman.
Data Absensi merupakan sebuah halaman yang menampikan daftar karyawan yang telah melakukan absensi. Tampilan halaman dapat dilihat pada gambar 15.
Gambar 15. Halaman data absensi.

## B Halaman Client
Halaman  utama  client  memiliki  tiga  fitur  utama diantaranya,  absensi  masuk/keluar,  lihat  daftar  hadir  dan menampilkan  pengumuman  yang  dikirimkan  oleh  admin. Halaman utama client dapat dilihat pada gambar 16.

## Gambar 5. Halaman utama client.
User  client  ketika  tombol  absen  masuk/keluar  ditekan maka  akan  muncul  jendela  webcam  sebagai  autentikasi absensi.  Jika  nama  yang  user  client  yang  sedang  dalam keadaan  login  sama  dengan  wajah  yang  terdeteksi  dengan minimal nilai akurasi sebesar 60% maka absensi masuk atau keluar  berhasi  dilakukan.  Proses  absensi  dapat  dilihat  pada gambar 17.

## Gambar 17. Proses absensi user client.
Ketika  user  client  sudah  berhasil  melakukan  absensi dengan  metode pengenalan  wajah maka data akan disimpan ke  dalam  database  berupa  data  tanggal  dan  jam  pada  saat melakukan  absensi.  Hasil  dari  absensi  dapat  dilihat  pada gambar 18.
Gambar 18. Daftar hadir setelah melakukan absensi.

## IV. K ESIMPULAN
Pada penelitian perancangan aplikasi absensi menggunakan  metode  eigenface  yang  terdapat  didalam library OpenCV  yang  merupakan  library opensource. Dapat ditarik  kesimpulan  bahwa  tingkat  pencahayaan  dan  jarak antara  kamera  dengan  obejek  pada  pengambilan  gambar wajah  dapat  mempengaruhi  kualitas  gambar  dan  hasil training. Pada uji coba yang dilakukan dengan dua jarak yang berbeda.  Jarak  terdekat  memberikan  hasil  yang  lebih  akurat dibandingkan  jarak  yang  lebih  jauh.  Ketika  jarak  wajah dengan  kamera  semakin  dekat  maka  struktur  dari  bentuk wajah akan semakin jelas dan memberikan ciri karakteristik dari  wajah  orang  tertentu.  Peran  pencahayaan  juga memperjelas  bentuk  atau  struktur  dari  wajah  seseorang. Penggabungan antara jarak dan pencahayaan yang ideal akan memberikan hasil yang lebih akurat.

## D AFTAR P USTAKA
[1] M.  R.  Muliawan,  B.  Irawan,  and  Y.  Brianorman,  “Implementasi Pengenalan Wajah DenganMetode Eigenface Pada Sistem Absensi,” Jurnal  Coding,  Sistem  Komputer  Untan,  vol.  03,  no.  1,  pp.  41–50, 2015.
[2] I.  Abdussalam, A. Rizal, and S. Aulia, “Desain dan realisasi sistem pendeteksi wajah untuk absensi karyawan dengan metode 2d-dct dan pca menggunakan webcam,” 2012.
[3] M. W. Septyanto, H. Sofyan, H. Jayadianti, O. S. Simanjuntak, and D. B.  Prasetyo,  “Aplikasi  Presensi  Pengenalan  Wajah  Dengan Menggunakan  Algoritma  Haar  Cascade  Classifier,”  Telematika: Jurnal Informatika dan Teknologi Informasi, vol. 16, no. 2, pp. 87–96, 2020.
[4] M. Arsal, B. Agus Wardijono, and D. Anggraini, “Face Recognition Untuk  Akses  Pegawai  Bank  Menggunakan  Deep  Learning  Dengan Metode CNN,” J. Teknol. dan Sist. Inf., vol. 6, no. 1, pp. 55–63, 2020.
[5] M. W. Septyanto, H. Sofyan, H. Jayadianti, O. S. Simanjuntak, and D. B.  Prasetyo,  “Aplikasi  Presensi  Pengenalan  Wajah  Dengan Menggunakan  Algoritma  Haar  Cascade  Classifier,”  Telematika: Jurnal Informatika dan Teknologi Informasi, vol. 16, no. 2, pp. 87–96, 2020.
[6] D.  E.  Kurniawan,  K.  Adi,  and  A.  F.  Rohim,  “Sistem  Identifikasi Biometrika  Wajah  Menggunakan  Metode  Gabor  KPCA  dan Mahalanobis Distance,” J. SIST. INF. BISNIS, vol. 2, no. 1, 2014.
[7] D.  I.  Bramantio,  “Perancangan  Dan  Implementasi  Keamanan  Pintu Berbasis Pengenalan Wajah Dengan Metode Eigenface,” tektrika, vol. 1, no. 2, 2019.
[8] N. W. Marti, “Pemanfaatan gui dalam pengembangan perangkat lunak Pengenalan citra wajah manusia menggunakan metode Eigenfaces,” 2010.
[9] S.  Salamun  and  F.  Wazir,  “Rancang  Bangun  Sistem  Pengenalan Wajah Dengan Metode Principal Component Analysis,” rabit, vol. 1, no. 2, pp. 59–75, 2016.
[10] S.  Subiantoro  and  S.  Sardiarinto,  “Perancangan  Sistem  Absensi Pegawai Berbasis Web Studi Kasus: Kantor Kecamatan Purwodadi,” Swabumi, vol. 6, no. 2, 2018.
[11] D. Suprianto and R. N. Hasanah, “Sistem Pengenalan Wajah Secara Real-Time  dengan  Adaboost,  Eigenface  PCA  &  MySQL,”  Jurnal Eeccis, vol. 7, no. 2, pp. 179–184, 2014.
[12] S.  R.  Wurdianarto,  S.  Novianto,  and  U.  Rosyidah,  “Perbandingan euclidean  distance  dengan  canberra  distance pada  face  recognition,” Techno. Com, vol. 13, no. 1, pp. 31–37, 2014.
[13] D.  E.  Kurniawan, and  A.  Dzikri,  "Pengenalan  Personal  Berdasarkan Pengukuran Jarak Citra Wajah Menggunakan Pendekatan Linear dan Nonlinear," SNTIK 2015