## Rancang Bangun Sistem Presensi berbasis IoT

## S. I. Pella, Frans Likadja, Molina Odja, Wenefrina T. Ina
Jurusan Teknik Elektro, Universitas Nusa Cendana Jl Adisucipto Kupang, Indonesia
Email: s.i.pella@gmail.com Info Artikel ABSTRACT Histori Artikel: Diterima Sep 10, 2020 Direvisi Sep 12, 2020 Disetujui Sep 21, 2020 The  purpose  of  this  research  is  to  design  and  implement  an  internet  of things (IoT) attendance system. The proposed system integrated two type of attendance  systems,  face  recognition  based  attendance  system  (FRA)  and fingerprint  based  attendance  system  (FPA),  with  a  server.  The  FRA  was developed  in  a  Raspberry  Pi  mini-computer  using  Python  programming language  and  Openc  CV  library.  The  FPA,  on  the  other  hand  was  devel- oped using Node MCU ESP8266 and Fingeprint scanner AS608 with Ada- fruit Fingerprint library. Both FRA and FPA are connected to a webserver with a database engine through the internet connection and sensing attend- ance  data  using  HTTP_POST  method.  The  server  were  developed  using Apache Webserver, PHP programming language and MySQL database en- gine. The server serves two main purposes, which are to record the attend- ance data sent by the FPA and FRA, and generate attendanace report based on  user  query.  The  system  testing  was  done    local  network.  The  result showed that both the subsystems and the integrated system worked well Keywords:  Attendance  System,  Face  Recognation,  Fingerprint,  Raspberry Pi, Node MCU, Open CV.

## ABSTRAK
Tujuan  dari  penelitian  ini  adalah  merancang  dan  mengimplementasikan sistem  kehadiran  berbasis  internet  of  things  (IoT).  Sistem  yang  dirancang mengintegrasikan  dua  jenis  sistem  kehadiran,  sistem  kehadiran  berbasis pengenalan  wajah  (FRA)  dan  sistem  kehadiran  berbasis  sidik  jari  (FPA), dengan sebuah  server. FRA dikembangkan di komputer mini Raspberry Pi menggunakan  bahasa  pemrograman  Python  dan  pustaka  Openc  CV. Sedangkan  FPA  dikembangkan  menggunakan  Node  MCU  ESP8266  dan pemindai Fingeprint AS608 dengan library Adafruit Fingerprint. Baik FRA dan FPA terhubung ke server web dengan mesin database melalui koneksi internet  dan  mengirimkan  data  kehadiran  menggunakan  metode HTTP_POST.  Pengembangan  server  menggunakan  Apache  Webserver, bahasa  pemrograman  PHP  dan  mesin  database  MySQL.  Server  memiliki dua  tujuan  utama,  yaitu  untuk  mencatat  data  kehadiran  yang  dikirim  oleh FPA  dan  FRA,  serta  menghasilkan  laporan  kehadiran  berdasarkan permintaan  pengguna.  Pengujian  sistem  dilakukan  jaringan  lokal.  Hasil penelitian  menunjukkan  bahwa  subsistem  dan  sistem  terintegrasi  bekerja dengan baik.
Kata  Kunci:  System  Pencatan Kehadiran, Pengenalan  Wajah,  Pengenalan Sidik Jari, Raspberry Pi, Node MCU ESP8266, OpenCV.

## 1. PENDAHULUAN
Salah satu tolok ukur produktivitas dalam sebuah organisasi  adalah tingkat  kehadiran   setiap  orang yang  berpartisipasi  di  dalamnya.  Pencatatan  ke- hadiran  dapat  dilakukan  secara  manual  atau menggunakan mesin pencatat kehadiran. Pencata- tan  dengan  mesin  pencatat  kehadiran  dapat  dil- akukan dengan memerlukan kehadiran fisik mau- pun tanpa kehadiran fisik.
Teknologi single  board  computer seperti  Rasp- berry  Pi  [1-3]dan  mikrokontroler  seperti  arduino [4]  dan  node  MCU  ESP8266[5]  mendorong perkembangan  otomatisasi  dengan  biaya  murah di  segala  bidang,  termasuk  untuk  pencatatan  ke- hadiran  (presensi).  Teknologi single  board  com- puter menawarkan  unjuk  kerja  mendekati  unjuk kerja  komputer  dengan  biaya  lebih  murah  serta penggunaan  daya  dan  dimensi  ukuran  yang  jauh lebih  kecil.  Teknologi  mikrokontroler,  walaupun secara  unjuk  kerja  tidak  berada  pada  kelas  yang sama  dengan  Raspberry  Pi,  menawarkan  kemu- dahan interfacing dengan  perangkat  lain.  Selain itu,  beberapa  tipe  mikrokontroler  seperti  Node MCU 8266   menyediakan fasilitas untuk terhub- ung  dengan  jaringan  internet  sehingga  men- dukung  pengembangan  aplikasi  berbasis  IoT, dengan biaya sangat murah (<US $10). Di  sisi  perangkat  lunak,  perkembangan library pemrograman  berbasis  kecerdasan  buatan  seperti OpenCV[6]  dan  Tensorflow[7],  menyebabkan berkembangya sistem otomatisasi berbasis pengenalan  pola.  Aplikasi  berbasis  pengenalan biometrik[8,  9]  seperti  presensi  dan  pencarian orang  dan  aplikasi  berbasis  pengenalan  objek [10]  dapat  dengan  mudah  diimplementasikan pa- da  perangkat  dengan  ukuran  prosesor  dan memory kecil.
Beberapa  penelitian  terdahulu  telah  merancang bangun  sistem  pencatatan  kehadiran  otomatis dengan    menggunakan  RFID[11],  sidik  jari[12], maupun pengenalan wajah[13].
Penelitian  ini  mengintegrasi  sistem  presensi dengan  pengenalan  wajah  menggunakan  Rasp- berry  Pi  dan  Open  CV,  sistem  presensi  dengan pengenalan  sidik  jari  menggunakan  ESP  8266 dan  Fingerprint  scanner  AS608  dengan  sebuah webserver.  Sistem  dirancang  berbasis  IoT  se- hingga pencatatan kehadiran dapat dilakukan me- lalui  lebih  dari  satu  mesin,  guna  memberikan fleksiblitas  kepada  karyawan  sebuah  organisai yang  mempunyai  lokasi  perantoran  dalam melakukan  perekaman  data  kehadiran.  Data  ke-
hadiran disimpan pada sebuah server terpusat dan dapat diakses melalui sebuah website.
Susunan    penulisan  artikel  ini  adalah  sebagai berikut.  Bagian  kedua  membahas  metode penelitian dan perancangan sistem. Bagian ketiga membahas  implementasi  sistem  dan  pengujian sistem.  Kesimpulan  terdapat  pada  bagian  ke  em- pat.

## 2. METODE PENELITIAN
Sistem  presensi  berbasis  internet  of  things  (IoT) merupakan  penggabungan  3  sistem,    yaitu  (1) sistem  presensi  dengan  pengenalan  wajah menggunakan  mini  computer  Raspberry  Pi,  (2) sistem  presensi  dengan  pengenalan  sidik  jari menggunakan  node  MCU  ESP  8266  dan  (3) website  dan  basis  data  untuk  pelaporan  dengan webserver  Apache,  Bahasa  pemrograman  PHP dan  mesin  basis  data  MySQL.  Setiap  mesin  pre- sensi  dilengkapi  dengan  koneksi  internet  untuk pengiriman  data  presensi  ke  server.    Blok  dia- gram sistem dapat dilihat pada Gambar 1.
Gambar 1 Blok Diagram Sistem Presensi berbasis IoT.
Perancangan  sistem  presensi  dengan  pengenalan wajah dimulai dengan fasa pelatihan menggunakan  citra  latih.  Pada  fasa ini  dilakukan ekstraksi  fitur  citra  latih  dan  menghasilkan  se- buah  model  yang  kemudian  digunakan  fasa pengenalan  wajah.  Pada  fasa  pengenalan  wajah, gambar  yang  ditangkap  kamera  kemudian melewati  proses  ekstraksi  fitur  yang  kemudian bandingkan dengan model yang dilatih menggunakan  cascade  clasifier.  Apabila  fasa pengenalan menghasilkan sebuah identifasi maka id  yang  terasosiasi  dengan  wajah  yang  berhasil diidentifikasi  akan  dikirim  ke  webserver  untuk
perekaman  presensi.  Pada  webserver  terdapat skrip  PHP  untuk  menangani  data  presensi  yang dikirim  oleh  mesin  presensi  dan  merekam  data pada  basis  data.  Diagram  kerja  sistem  presensi dengan  pengenalan  wajah  ditunjukan  pada  Gam- bar 2
Gambar 2 Diagram Kerja  Sistem Presensid dengan

## Pengenalan Wajah
Seperti  pada  sistem  presensi  dengan  pengenalan wajah,  perancangan  sistem  presensi  dengan pengenalan sidik jari juga meliputi tiga fasa, yai- tu fasa enrolement sidik jari menghasilkan model template,fasa  pengenalan  menghasilkan  id  yang terasosiasi  dengan  template  yang  dikenali  dan fase  perekaman  basis  data.  Pengenalan  sidik  jari menggunakan  library  Adafruit_Fingerprint  dan akses jaringan serta pengiriman data menggunakan library ESP8266Wifi dan ESP8266HTTPClient.  Diagram  kerja  sistem  pre- sensi  dengan  pengenalan  sidik  jari  ditunjukan pada Gambar 3.
Perancangan website difokuskan pada dua fungsi utama, yaitu penanganan rekam data presensi dari mesin  presensi  dan  laporan  data  frekuensi.  Dia- gram  kerja  website  sistem  presensi  ditunjukan pada Gambar 4.
Gambar 3 Diagram Kerja Sistem Presensi dengan Pengenalan Sidik Jari
Gambar 4 Diagram Kerja Website Sistem Presensi

## 3. HASIL DAN PEMBAHASAN

## 3.1. Implementasi Basis Data
Basis  data  yang  dibangun  ditujukan  untuk perekaman  data  presensi  dan  menunjang  website pelaporan.  Basis  data  terdiri  dari  6  tabel  dengan relasi seperti pada Gambar .

## Detail dan relasi setiap table dapat dilihat pada Tabel 1
Tabel 1 Detail Tabel Basis Dara Tabel Data Relasi Reference Key Foreign Key Lembaga Lembaga yang berada dalam satu usaha unit Unit Unit yang berada dalam suatu usaha dan lembaga tem- pat unit tersebut bernaung Lembaga Staf, Ma- chine Staf Pegawai yang bekerja pada suatu usaha dan unit tempat pegawai tersebut bekerja Unit Presensi Machine Mesin presensi pada suatu usaha dan unit lokasi mesin tersebut Unit Id Finger, Presensi Idfinger Pemetaan id  pada mesing sidik jari dan staf id Staf, Ma- chine Presensi Log data presensi Staf, Ma- chine

## Detail akses basis data dapat dilihat pada  Tabel 2

## Tabel 2 Detail Akses Basis Data
Detail Nilai Nama basis data Absen Alamat IP 192.168.1.4 Database engine MySql Username Stevie Password test123
Petikan script PHP untuk koneksi basis data di- tunjukan pada Gambar  5.

## Gambar 5 Skrip Koneksi PHP -MySQL

## 3.2 Implementasi Presensi dengan Pengenalan Wajah
Implementasi  sistem  presensi  dengan  pengenalan wajah menggunakan mini-komputer Raspberry-Pi, kamera  HD1080P  yang  terhubung  melalui  port usb  dan  monitor  yang  tehubung  melalui  port HDMI,  seperti  yang  ditunjukan  pada  Gambar  6 Perangkat  lunak  yang  digunakan  untuk  proses pengenalan  wajah  adalah  Phyton  3,  library  Open CV  (Open Source  Computer  Vision), library  dlib, library face_recognation dan library imutils.

## Gambar 6 Konfigurasi Perangkat Keras Sistem Pre- sensi dengan Pengenalan Wajah
Impelementasi sistem presensi pengenalan wajah meliputi tiga bagian utama, yaitu fasa pelatihan fasa pengenalan dan pelaporan presensi.
A. Fasa Pelatihan Fasa pelatihan diawali dengan penyusunan dataset citra  latih, berisi citra wajah orang yang ingin dikenali. Tahap selanjutnya adalah implementasi program Python untuk mengkodekan fitur dari citra latih menjadi model yang akan digunakan dalam fasa pengenalan. Urutan proses pada tahap pengkodean terdiri dari:
• Perubahan  format  citra  ke  model  RGB OpenCV
• Deteksi koordinat wajah pada citra
• Pengkodean fitur wajah
Proses  diatas  dilakukan  untuk  setiap  citra  latih yang digunakan pada fasa pelatihan. Hasil pelati- han dapat dilihat pada Gambar 7.
Gambar 7 Hasil Enkoding Citra Latih
B. Fasa Pengenalan Tahapan pertama dalam fasa pengenalan wajah adalah pemanggilan model pengkodean (dengan ekstensi .pickle) dan file cascade opencv (dengan ekstensi .xml). Kedua file tersebut akan digunakan untuk membandingkan citra wajah yang ditangkap kamera dengan citra latih. Tahap berikut adalah pembandingan model encoding dengan citra wajah yang ditangkap kamera. Apabila ada wajah yang dikenali sistem, maka sistem akan menampilkan id wajah yang dikenal.
Gambar 8 menunjukan hasil pengenalan wajah dengan wajah tegak lurus terhadap kamera mau- pun wajah menyamping terhadap kamera. Hasil pengujian menunjukan sistem dapat mengenali wajah yang sudah dilatih dengan posisi tegak lurus maupun miring.
Gambar 8 Pengujian Pengenalan Wajah
C. Perekaman Data Presensi dengan Pengenalan Wajah Pelaporan ke server dilakukan dengan mengi- rimkan data presesensi menggunakan metode HTTP_GET. Fungsi ini didukung oleh library urllib pada Python3 . Pada server, sebuah file php berfungsi untuk menerima data presensi yang dikirimkan dan menyimpannya ke basis data. Hasil perekaman data presensi kemudian dikirimkan kembali pada mesin presensi sebagai informasi pengguna. Gambar 9 menunjukan in- formasi yang diterima pegguna setelah berhasil merekam data presensi

## Gambar 9 Pelaporan Pembaruan Basis Data
3.3.  Implementasi  Sistem  Presensi  dengan Pengenalan Sidik Jari Implementasi sistem presence dengan pengenalan sidik  Jari  menggunakan  Node  MCU  ESP8266 yang  terhubung  dengan  Sensor  Fingerprint  AS- 608  melalui  pin  GPIO.  Konfigurasi  perangkat keras sistem dapat dilihat pada Gambar 10.
Gambar 10 Konfigurasi Perangkat Keras Sistem Pre- sensi dengan Pengenalan Sidik Jari
Pengkabelan sensor dan node MCU pada implementa- si sistem dapat dilihat pada Tabel 3
Tabel 3 Pengkabelan Sensor AS608 Konektor GPIO Pin Fungsi Hijau D7 Data Tx Putih D8 Data Rx Merah 3V Vcc Hitam G Ground
Perangkat lunak yang digunakan untuk pengenalan sidik jari adalah bahasa pemrograman C untuk arduino dengan Library Adafruit Finger- print.  Koneksi  antara  Node  MCU  dan  sensor menggunakan  library  SoftwareSerial.  Untuk  ter- hubung ke jaringan digunakan library ESP8266Wifi.
Implementasi  sistem  meliputi  3  fasa,  yaitu  fasa enrolement,  fasa  pengenalan  sidik  jari  dan  fasa perekaman data presensi.
Pada fasa enrolement, sistem melakukan perekaman  fitur sidik jari yang kemudian diaso- siasikan  dengan  sebuah  identifier  unik.  Pengam- bilan  fitur  dapat  dilakukan  beberapa  kali  untuk menjamin  ketepatan  pengenalan.  Dari  fitur  sidik jari  yang  diambil  dibentuk  sebuah  model  yang akan digunakan pada fasa pengenalan sidik jari. Seperti  pada  fasa  enrolement,  fasa  pengenalan sidik  jari  juga  diawali    dengan  mengambil  gam- bar  sidik  jari  yang  akan  dikenali  dan  kemudian melakukan  ekstraksi  fitur.  Hasil  ektraksi  fitur sidik  jari  kemudian  dicari  kecocokannya  dengan model  yang  dibangun  pada  fase  enrolement. Apabila  ditemukan  kecocokan  maka  id  yang  di- asosiasikan  dengan  model  sidik  jari  yang  cocok akan ditampilkan.
Hasil pencocokan sidik jari kemudian dikirimkan ke server untuk perekaman data presensi. Library yang  digunakan  untuk  koneksi  jaringan  dan pengiriman data adalah library arduino ESP8266WiFi.h dan ESP8266HTTPClient.h. Pada  server,  skrip  PHP  berfungsi  menangani pengiriman data presensi dan merekam data pada basis data. Skrip berfungsi memetakan id_ finger yang  dikirim  mesin  dan  id_staf  pada  basis  data sistem presensi.
Gambar  11  menunjukan  hasil  test  konektivitas node  MCU.  Hasil  pengujian  menunjukan  Node MCU  terhubung  dengan  sensor  fingerprint  dan berhasil membaca template model latih yang ada pada sensor. Hasil juga menunjukan bahwa Node
MCU  berhasil  terhubung  ke  jaringan  WIFI  dan mendapat IP address.
Gambar 11 Tes Konektivitas Node MCU dengan Sen- sor dan jaringan.
Pengujian  pengenalan  sidik  jari  dan  perekaman presensi dapat dilihat pada Gambar 12.

## Gambar  12  Pengujian  Pengenalan  Sidik  Jari  dan Perekaman Presensi
Hasil  pengujian  menunjukan,  sistem  berhasil mengenali  sidik  jari  yang  diuji  dan  berhasil melakukan perekaman presensi. Status perekaman  presensi  kemudian  ditampilkan  se- bagai informasi pengguna.

## 3.3. Implementasi Website Pelaporan
Website  pelaporan  berfungsi  menampilkan  data kehadiran  seorang  pegawai  pada  bulan  yang diminta  sebagai  fungsi  pengawasa.  Website dibangun  dengan  bahasa  pemrograman  PHP  un- tuk  membaca  dan memproses  data  dari  basis da- ta.
Pengujian  website  pelaporan  dapat  dilihat  pada Gambar 13.
Hasil  pengujian menunjukan  website  dapat  men- ampilkan  data  presensi  pegawai  pada  bulan  ter- tentu sesuai query pengguna.

## 4. KESIMPULAN
Berdasarkan hasil penelitian dapat ditarik kesimpulan:
1. Sistem  presensi  berbasis  IoT  terdiri  dari  3 bagian  besar,  yaitu  sistem  presensi  dengan pengenalan  wajah,  sistem  presensi  dengan pengenalan  sidik  jari  dan  sistem  pelaporan berbasis website.
2. Rancang  bangun  sistem  presensi  dengan pengenalan  wajah  menggunakan  Raspberry Pi  mini  computer  dan  camera  untuk perangkat  kerasnya,  dan  bahasa  pem- rograman  Python3  berserta  library  opencv, dlib,  face_recognation.  Perkaman  data  ke- hadiran online menggunakan protokol HTTP.
3. Rancang  bangun  sistem  presensi  dengan pengenalan  sidik  jari  menggunakan  Node MCU  ESP  8266  dan  sensor  finger  print AS656 untuk perangkat kerasnya, dan bahasa pemrograman  C  dengan  library  Adafruit  fin- gerprint    .  Perkaman  data  kehadiran  online menggunakan protokol HTTP.
4. Rancang bangun website pelaporan menggunakan webserver Apache, bahasa
5.
6. pemrograman  PHP  dan  database  engne MySQL.
7. Pengujian  dilakukan  pada  jaringan  local. Hasil  pengujian  menunjukan  semua  kompo- nen sistem dapat bekerja dengan baik

## DAFTAR PUSTAKA
[1] M. Richardson and S. Wallace, Getting started with raspberry PI : " O'Reilly Media,
Inc.", 2012.
[2] E. Upton and G. Halfacree, Raspberry Pi user guide : John Wiley & Sons, 2014.
[3] R. Pi, "Raspberry pi 3 model b," online].( https://www . raspberrypi. org, 2015.
[4] S. A. Arduino, "Arduino," Arduino LLC,
2015.
[5] M. Schwartz, Internet of Things with
ESP8266 : Packt Publishing Ltd, 2016.
[6] A. Kaehler and G. Bradski, Learning OpenCV 3: computer vision in C++ with the OpenCV library : " O'Reilly Media, Inc.", 2016.
[7] J. V. Dillon, I. Langmore, D. Tran, E. Brevdo, S. Vasudevan, D. Moore , et al. ,
"Tensorflow distributions," arXiv preprint arXiv:1711.10604, 2017.
[8] H. F. Lami, S. Tena, B. H. Manafe, J. F. Bowakh, N. Nursalim, and S. Sudirman,
"Rancang Bangun Sistem Pengenalan Wajah
Daftar Pencarian Orang (Dpo) Berbasis Jaringan Saraf Tiruan," Media Elektro, pp.
129-133, 2019.
[9] H. F. Lami and S. I. Pella, "Implementasi Deteksi dan Pengenalan Wajah pada Sistem
Ujian Online Menggunakan Metode Deep
Learning Berbasis Raspberry Pi," Media
Elektro, pp. 89-92, 2019.
[10] R. A. Doga, H. F. Lami, and S. I. Pella, "SISTEM IDENTIFIKASI NOMINAL UANG LOGAM MENGGUNAKAN
TENSORFLOW DAN CONVOLUTIONAL
NEURAL NETWORK BERBASIS
RASPBERRY PI," SAINSTEK, vol. 4, pp. 503-511, 2019.
[11] I. W. Muttaqin and A. Rahman, "Sistem Presensi Berbasis RFID Menggunakan
Raspberry Pi 3," Buletin Ilmiah Sarjana Teknik Elektro, vol. 1, pp. 27-34, 2019.
[12] M. B. Setyawan, A. F. Cobantoro, and A.
Prasetyo, "PROTOYPE MONITORING PRESENSI SISWA MENGGUNAKAN FINGER PRINT DENGAN KENDALI RASPBERRY PI," JURNAL TEKNIK INFORMATIKA, vol. 13, pp. 21-30, 2020.
[13] R. Prathivi and Y. Kurniawati, "SISTEM
PRESENSI KELAS MENGGUNAKAN
PENGENALAN WAJAH DENGAN METODE HAAR CASCADE CLASSIFIER," Simetris: Jurnal Teknik Mesin, Elektro dan Ilmu Komputer, vol. 11, pp. 135-142, 2020.