## Sistem Pendeteksian Produk dan Perhitungan Harga Otomatis Menggunakan Metode YOLOv4 dan Algoritma Pengukuran Jarak Berbasis IoT
Rahmawati Hasanah # , Andry Haidar, Rifa Hanifatunnisa, Raffel Ravionaldo Jurusan Teknik Elektro, Politeknik Negeri Bandung Jl. Gegerkalong Hilir, Desa Ciwaruga, Kec. Parongpong, Kab. Bandung Barat, Jawa Barat 40559, Indonesia
# rahmawati@polban.ac.id

## Abstrak
Panjangnya  antrean  saat  proses check-out produk  membuat  masyarakat  kurang  nyaman  saat  berbelanja  di  toko swalayan.  Pada  penelitian ini,  dibuatlah  sistem  untuk  mendeteksi  produk  yang  diambil  oleh  pembeli  secara real-time dan mengirimkan data dari produk tersebut ke database , sehingga diharapkan dapat mempersingkat waktu saat  proses check-out produk di kasir . Sistem ini terdiri atas 3 sub-sistem, yaitu program pendeteksian jenis produk, pendeteksian pengambilan  ataupun  peletakan  produk  dan  pengiriman  informasi  produk ke  database.  Pada  bagian  pertama, program pendeteksian produk dibuat menggunakan arsitektur YOLOv4 yang terdiri dari tahap pelatihan dan pengujian. Pelatihan program dilakukan pada Google Colab hingga mencapai nilai akurasi  lebih dari 80%. File pelatihan kemudian diujikan menggunakan  laptop  untuk  mendeteksi  objek  via webcam .  Selanjutnya  yaitu  pembuatan  program  pendeteksian pengambilan  produk  menggunakan  program  Python  dengan  algoritma  pengukuran  jarak  benda  ke  kamera.  Pada algoritma ini dibutuhkan kalibrasi untuk mengetahui jarak produk pertama dengan jarak produk kedua sebagai penentu lebar  benda  menurut  sistem.  Terakhir,  informasi  megenai  nama,  harga  dan  jumlah  produk  akan  dikirim  ke  Firebase. Dari  hasil  pengujian,  didapat  hasil  sebagai  berikut;  pada  program  pelatihan  di  Google  Colab  didapat  akurasi  sebesar 81,42% dengan nilai iterasi 9000. Adapun pada pengujian menggunakan webcam didapat nilai akurasi sebesar 82,75% dengan kecepatan  pendeteksian  25 FPS. Sistem berhasil mendeteksi 13 macam objek pengujian dimana jarak kamera dengan benda 30-40 cm dengan waktu pengiriman data ke database rata-rata 2,04 detik.
Kata kunci: pendeteksian objek , YOLOv4, jarak, database , akurasi

## Abstract
The length of queues during the check-out process makes people uncomfortable when shopping at supermarkets. In this study, a system has been created to detect products taken by buyers in real-time and an application that can display shopping  receipts  on  the  buyer's  cellphone,  aiming  to  shorten  the  time  during  the  product  check-out  process  at  the cashier. This system consists of 3 sub-systems, namely the product type detection program, detection of picking up or placing products, and sending product information to the database and mobile application. In the first part, the product detection  program  is  created  using  the  YOLOv4  architecture,  which  includes  training  and  testing  stages.  Program training is carried out on Google Colab until it reaches an accuracy  over 80%. The training file is then tested using a laptop to detect objects via a webcam. The next step is creating a product capture detection program using a Python program with an algorithm for measuring the distance of objects to the camera. This algorithm requires calibration to determine the distance between the first product and the distance between the second product as a determinant of the width of the object according to the system. Finally, information regarding the name, price, and quantity of the product will  be  sent  to  Firebase  and  the  Android  application  to  then  display  the  shopping  receipt.  From  the  test  results,  the following findings were obtained: in the training program on Google Colab, the accuracy was 81.42% with an iteration value of 9000. Meanwhile, in testing using a webcam, the accuracy value was 82.75% with detection speed 25 FPS. The system succeeded in detecting 13 types of test objects where the distance between the camera and the object was 30-40 cm with an average data sending time to the database of 2.04 seconds.
Keywords: object detection, YOLOv4, range, database, accuracy

## I. P ENDAHULUAN
Pada umumnya, masyarakat menyukai berbelanja  di supermarket karena tempatnya    yang nyaman  dan  bersih,  banyaknya  diskon  yang ditawarkan,  serta  banyaknya  pilihan  produk  yang berkualitas    [1].  Namun  selain  dari  beberapa keunggulan  tersebut,  pada  kenyataannya  terdapat beberapa  hal  yang  menjadi  kekurangan  berbelanja di  supermarket,  antara  lain  antrian  yang  panjang saat  pembayaran  dan  proses  pembayaran  yang lambat.    Dari  hasil  survey  yang  dilakukan  oleh Forrester  Research  and  Digimarc, disebutkan bahwa hanya  230  dari  1000  responden  yang menyatakan  puas  dengan  panjang  antrean  pada supermarket .  Sekarang  ini,  pembeli  menginginkan proses belanja yang cepat dan mudah. Tidak jarang pembeli  membeli  sedikit  barang  atau  bahkan meninggalkan toko dan tidak jadi berbelanja karena antrean pembayaran yang panjang [2].
Terdapat  beberapa  penelitian  yang  telah  dibuat untuk  mengatasi  permasalahan  tersebut  seperti pembuatan  sistem smart  shopping oleh  Martinus, dkk dengan memanfaatkan teknologi RFID dan IoT, dimana semua produk diberi tag RFID dan pembeli melakukan scan pada tag RFID tersebut menggunakan RFID  reader yang  telah  dipasang  di keranjang  belanja  [3].  Selain  itu  terdapat  juga pembuatan  sistem  kasir  cerdas  menggunakan  troli pintar oleh Ezhilazhagan, dkk yang dapat mendeteksi  barang  yang  dimasukkan  kedalam troli dengan  mendeteksi  barang  tersebut  menggunakan RFID  dengan  transmisi  data  menggunakan  Li-Fi [4].    Sistem  dengan  menggunakan  teknologi  RFID ini  terbukti  dapat  mengurangi  lama  antrian  pada saat check-out, namun  pemasangan  tag  RFID  pada semua  produk  di  toko  swalayan  dan  diperlukannya pembaca  RFID  pada  setiap  troli  dirasa  kurang efektif karena memakan banyak biaya.
Lalu terdapat juga penelitian yang menggunakan troli dilengkapi  pembaca  QR  Code  untuk mengurangi  waktu  antrian  oleh  Krishita  Sukhani dkk.  Pada  metode  ini,  troli  yang  sudah  dilengkapi pembaca  QR  Code  terhubung  ke  handphone pembeli  melalui  suatu  aplikasi  mobile  yang  telah terinstall  di  handphone  pembeli.  Ketika  pembeli memindai  produk  yang  dibeli,  data  produk  yang dibeli  akan  masuk  ke  aplikasi  tersebut.  Pada  troli juga  terpasang  sensor  berat  untuk  memeriksa kembali kesesuaian antara berat produk yang dibeli dan  produk  yang  telah  dipindai  [5].  Selain menggunakan  pembaca  QR  code  terdapat  pula penelitian  yang  menggunakan  pendeteksian  objek untuk  mendeteksi  prooduk  yang  dibeli  konsumen. Penelitian tersebut dilakukan oleh Jin-Seon OH dan In-Gook  Chun  dimana  pada troli  dipasang  sensor
ultrasonic,  sensor  berat  dan  kamera  untuk mendeteksi  barang  yang  dimasukkan  kedalam  troli menggunakan  metoda  YOLOv3  [6].  Kelemahan dari sistem yang menggunakan troli ini, sistem tidak dapat mendeteksi barang yang tidak dimasukkan ke dalam  troli  seperti  misalnya  barang  dimasukkan  ke tas.
Lebih  lanjut  lagi,  terdapat  penelitian  yang menggabungkan    teknologi computer  vision dan penggunaan sensor-sensor untuk mendeteksi pembeli  serta  produk  yang  diambil,      seperti  yang dikembangkan  oleh  Amazon  Go  pada  teknologinya yang  diberi  nama  “Just  Walk-Out”.  Dengan menggunakan  kamera  serta  data  dari  sensor  yang ditempatkan di rak, sistem pada  teknologi ini dapat mengenali  gambar    pelanggan  ketika  datang  ke depan  rak,  mendeteksi  barang  yang  diambil,  dan apakah  barang  yang  diambil  tetap  berada  di  tangan pelanggan  atau  disimpan  kembali  di  rak.  Beberapa sensor  yang  digunakan  pada  teknologi  ini  antara lain  sensor  tekanan,  pengukuran  berat,  tag    RFID, dan  sensor  pengukuran  jarak  &  dimensi  yang  akan melacak  barang  apa  dan  kapan  barang  diambil  atau disimpan kembali di rak [7].
Berdasarkan hal tersebut maka penulis melakukan  penelitian  untuk  membuat  sistem pendeteksian  pengambilan  produk  retail  untuk mengetahui  barang  yang  diambil  atau  diletakkan oleh  pengunjung  toko  swalayan  menggunakan kamera  yang  terhubung  dengan  mikroprosesor. Tujuan dari sistem ini ialah sistem dapat mendeteksi jenis produk yang diambil oleh pembeli menggunakan algoritma pendeteksian objek YOLOv4.  Kemudian  sistem  dapat  mendeteksi pengambilan  atau  peletakan  objek  menggunakan algoritma  pendeteksian  jarak  objek  ke  kamera. Terakhir,  sistem  dapat  mengirimkan  data  objek yang  diambil  ke  database.  Admin  toko  dapat melihat  barang  serta  jumlah  harga  yang  perlu dibayar  oleh  pembeli.    Dengan  diterapkannya metode  ini  diharapkan  sistem  dapat  mendeteksi barang  yang  dibeli  oleh  konsumen  serta  dapat mencegah  terjadinya  pencurian  produk  tanpa memerlukan  sensor  atau  tag  RFID  di  setiap  produk dan  perangkat  tambahan  di  setiap  troli,  sehingga dapat menghemat biaya.

## II. M ETODE P ENELITIAN
Pada  penelitian  ini,  terdapat  3  sub-sistem  yang dilakukan antara lain pendeteksian objek menggunakan  metode  YOLOv4,  pendeteksian pengambilan  atau  peletekan  objek  menggunakan algoritma  pendeteksian  jarak  objek  ke  kamera,  dan pengiriman  data  objek  ke database .  Adapun ilustrasi dari sistem ini sapat dilihat pada Gambar 1.

## Gambar 1. Ilustrasi sistem

## A. Algoritma Object Detection
Dalam  perancangan object  detection ini, dilakukan  pendeteksian  objek  berbasis  YOLOv4 untuk  mendeteksi  objek  yang  tertangkap  oleh kamera.  Metode  pendeteksian  objek  ini  terdiri  dari tahap  pelatihan  ( training )  dan  pengecekkan  akurasi pendeteksian.  Sebelum  tahap  training  dilakukan, terlebih  dahulu  dibuat  dataset  dan  pelabelan gambar  objek  yang  akan  dideteksi.      Dataset merupakan  kumpulan  gambar  yang  didalamnya terdiri  dari  objek  yang  akan  dideteksi  yang  telah dilakukan labelling menggunakan bounding  box . Proses  pembuatan  dataset  ini  cukup  penting dikarenakan  nilai  akurasi  dari object  detection YOLOv4  ini  bergantung  dari  jumlah  gambar  dan kondisi  dari  objek  yang  akan  dideteksi  (tampak depan,  samping  dan  belakang  objek).  Setelah dataset  telah  selesai  dibuat,  barulah  dilakukan  latih dataset  untuk mendapatkan file pelatihan berformat weight  yang  berisi  algoritma  YOLOv4.  Proses pelatihan  dilakukan  pada  Google  Colab.  Kinerja dari  proses  pelatihan  ini  terus  dievaluasi  hingga mencapai nilai akurasi > 80%.
File
hasil pelatihan kemudian
diimplementasikan pada PC/Laptop untuk pengujian  objek  via  webcam.  Untuk  mengukur seberapa baik sistem dapat melakukan pendeteksian digunakanlah  metoda Confusion  Matrix untuk mendapatkan  nilai True  Positive  (TP),  True Negative  (TN),  False  Positive  (FP) dan False Negative  (FN). Setelah  mendapatkan  keempat  nilai tersebut  langkah  selanjutnya  adalah  menghitung nilai  evaluasi  yang  terdiri  dari  akurasi,  presisi, sensitivitas  dan error  rate. Adapun rumus  untuk perhitungan  parameter-parameter  tersebut  menurut Allison Ragan adalah sebagai berikut [8]:
Gambar 2. Diagram alir pendeteksian objek
𝐴𝑘𝑢𝑟𝑎𝑠𝑖   = 𝑇𝑃 + 𝑇𝑁 𝑇𝑃 + 𝑇𝑁 + 𝐹𝑃 + 𝐹𝑁 (1)
𝑃𝑟𝑒𝑠𝑖𝑠𝑖   = 𝑇𝑃
𝑇𝑃 + 𝐹𝑃 (2)
𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑎𝑠   = 𝑇𝑃 𝑇𝑃+ 𝐹𝑁 (3)
𝐸𝑟𝑟𝑜𝑟 𝑟𝑎𝑡𝑒   =
𝐹𝑃 + 𝐹𝑁
𝑇𝑃 + 𝑇𝑁 + 𝐹𝑃 + 𝐹𝑁 (4)
Langkah-langkah  di  atas  ditampilkan  dalam flowchart yang ditampilkan pada Gambar 2.

## B. Algoritma Pendeteksian Jarak
Setelah sistem berhasil  mendeteksi jenis produk pada  video  yang  ditangkap  oleh  kamera,  langkah selanjutnya  adalah  membuat  sistem  yang  dapat mengukur jarak benda ke kamera. Hal ini dilakukan untuk  mendeteksi  apakah  barang  tersebut  diambil, diletakkan  atau  tidak  oleh  pengunjung.  Proses pengukuran ini mengikuti konsep umum pengambilan gambar dengan lensa kamera [9]. Untuk  mendapatkan jarak benda ke  kamera ini, perlu diketahui terlebih dahulu lebar (w) dan tinggi (h) dari bounding box yang mengelilingi objek yang terdeteksi.  Nilai  lebar  dan  tinggi  ini  akan  berbeda- beda tergantung jarak objek dari kamera [10]. Nilai lebar  dan  tinggi  dimasukkan  ke  dalam  rumus berikut  ini  untuk  mendapatkan  jarak  benda  ke kamera dalam satuan inchi [11], [12]:
𝐽𝑎𝑟𝑎𝑘 = 2 ∗ 3.14 ∗ 180
(𝑡𝑖𝑛𝑔𝑔𝑖 + 𝑙𝑒𝑏𝑎𝑟 ∗ 360)∗1000+3 (5)
Pada  penelitian  ini  dicari  jarak  awal  dan  jarak akhir  objek  ke  kamera.  Jarak  awal  dihitung  ketika sistem baru dijalankan dan  ketika terdeteksi barang sudah  diambil,  sementara  jarak  akhir  dihitung setiap  waktu.  Objek  akan  terhitung  diambil  oleh user  ketika  jarak  akhir  dan  jarak  awal  objek  ke kamera berbeda dan dalam waktu 5 detik user baru bisa  kembali  mengambil  atau  mengembalikkan barang pada rak yang sama.
Apabila  jarak awal  benda  dikurangi  jarak  benda sekarang  lebih  dari  8cm  maka  benda  tersebut dianggap diambil  oleh user. Kemudian ketika jarak awal benda dikurangi jarak benda sekarang nilainya lebih  kecil  dari  -4  cm  maka  benda  tersebut dianggap  diletakkan  kembali  ke  dalam  rak.  Nilai  8 cm  dan  -4  cm  didapatkan  setelah  dilakukan kalibrasi  perhitungan  ketebalan  produk  untuk mengetahui  jarak  benda  pertama  dengan  benda dibelakangnya.  Nilai  ini  dapat  berubah  tergantung dari jenis barang yang terdeteksi oleh  kamera. Pada contoh ini,  digunakan  produk susu kemasan untuk mengetahui  nilai  jarak  setelah  barang  diambil  dan diletakkan.
Objek  yang  terdeteksi  telah  diambil,  akan dikirimkan   nama objek tersebut ke firebase untuk dicek  harga  dan  namanya,  selanjutnya  dilakukan proses  perhitungan  harga  total  barang  belanjaan yang perlu dibayar oleh pembeli. Langkah-langkah dalam  mendeteksi pengambilan  dan pengembalian barang ditampilkan dalam flowchart yang ditampilkan pada Gambar 3.
Gambar 3. Diagram alir penentuan barang diambil                  atau diletakkan

## C. Perancangan Database
Setelah  sistem  berhasil  mendeteksi  barang diambil atau diletakkan, hal selanjutnya yang perlu dilakukan adalah mendapatkan informasi nama dan harga    yang telah  ditulis pada database, pada proses penelitian  ini  database  yang  digunakan  adalah firebase.  Firebase  merupakan  salah  satu  database dengan  jenis NoSQL.   Jenis NoSQL secara umum terbagi  menjadi  empat  yaitu key-value,  columb- based,  document-oriented dan graph  based [13], namun  yang  penulis  gunakan  adalah  NoSQL  jenis Document  oriented ,  dimana  pada  jenis  ini  data
berisi  key  dan  value  yang  disimpan  dalam dokumen yang berformat JSON.
Pada  perancangan    database  ini,  database dirancang  memiliki  3  key  yang  berisi  informasi barang yaitu rak_makanan, rak_mie dan rak_minuman  dengan  spesifikasi  data  terbagi menjadi  4  bagian  untuk  rak_makanan,  yaitu makanan1  sampai  makanan4  yang  berisi  value berupa  nama  dan  harga  barang,  rak_mie  terbagi menjadi  7  bagian  dan  rak_minuman  terbagi menjadi  2  bagian,  seperti  yang  ditunjukkan  pada Gambar  4.  Sebelum  sistem  berjalan,  data  yang  ada pada  database  ini  adalah  nama  dan  harga  produk. Setelah  sistem  berhasil  mendeteksi  adanya  produk yang  diambil  atau  diletakkan,  maka  pada key  user akan  terdapat  sub-key  yaitu  barang1,  barang2 dan seterusnya  yang  berisi  data:  nama  dan  harga  dari barang  yang  diambil/diletakkan,  jumlah  barang tersebut  yang  diambil/diletakkan  dan  total  harga belanja dari user tersebut.

## III. H ASIL DAN P EMBAHASAN

## A. Implementasi dan Pengujian Object Detection
Pada penelitian  ini pengujian  dilakukan  dalam 2 tahapan,  yaitu  pelatihan  dataset  melalui  Google Colab  dan  pengujian  hasil  pelatihan  menggunakan webcam.  Proses  pelatihan  dilakukan  pada  Google Colab  menggunakan  GPU  Nvidia  Tesla  K80 dengan  algoritma  YOLOv4.  Sebelum  program pelatihan  dimulai,  perlu  disiapkan  terlebih  dahulu dataset  gambar  yang  akan  digunakan.  Pada penelitian ini, dataset  terdiri dari 13 macam produk dan  terdiri  dari  3  jenis  produk  yaitu  mie  instan, makanan  ringan  dan  susu  kemasan  dengan  jumlah gambar sebanyak 20124 gambar     untuk pelatihan dan 3912 gambar untuk pengujian.

## .
Gambar 4. Isi Firebase yang berisi data produk dan barang yang diambil/diletakkan oleh pengunjung
Gambar-gambar pada dataset ini diberi labelling menggunakan bounding  box .  Proses  pembuatan dataset  ini  cukup  penting  dikarenakan  nilai  akurasi dari  object  detection  YOLOv4  ini  bergantung  dari jumlah  gambar  dan  kondisi  dari  objek  yang  akan dideteksi  (tampak  depan,  samping  dan  belakang objek). Pada proses pelabelan penulis menggunakan program yang telah dibuat oleh Tzutalin yang dapat diakses pada link: https://github.com/tzutalin/labelImg. Gambar 5
menunjukkan tampilan proses labelling menggunakan program dari Tzutalin. Ukuran piksel dari gambar latih dataset yaitu 608x608 piksel agar hasil  latih  lebih  baik  meskipun  kecepatan  proses deteksi  akan  lebih  lambat.  Adapun  konfigurasi lainnya yang diperlukan dalam proses pelatihan dan pengujian ini ditampilkan pada Tabel 1.
Parameter width dan height merupakan  ukuran gambar yang akan diproses. Parameter max batches merupakan  jumlah  iterasi  pelatihan.  Nilai  max batches didapat dari perhitungan 2000 dikali jumlah kelas/objek  yang  ada  di  dataset,  dengan  nilai minimal  6000.  Sehubungan  dengan  jumlah  kelas pada  dataset  yang  digunakan  sebesar  14  kelas, maka  max  batches  didapat  nilai  28000.  Nilai  steps didapat  dari  perhitungan  0.8  dikali  max_batches, dan  0.9  dikali  max_batches.  Jumlah  filters  yang digunakan  didapat  dari  (jumlah  object/class  di  data +5) * 3.
Gambar 5. Proses pelabelan produk
Tabel 1. Parameter Algoritma YOLOv4 Parameter Nilai Batch training 64 Subdivisions training 64 Width 608 Height 608 Channels 3 Learning rate 0,001 Burn in 1000 Max batches 28000 Steps 22400, 25200 Filters 57
Tabel 2. Hasil nilai confusion matrix program pelatihan pada Google Colab Iterasi TP FP FN TN 1000 5461 3356 1667 0 2000 5709 1946 1419 0 3000 6173 2328 955 0 4000 6296 1585 832 0 5000 6363 1333 765 0 6000 6476 1325 652 0 7000 6505 1896 623 0 8000 6462 2019 666 0 9000 6515 874 613 0 10000 6491 888 637 0
Dari  hasil  program  pelatihan  ini,  didapat  nilai Confusion  Matrix untuk  setiap  1000  iterasi  seperti yang  ditampilkan  pada  Tabel  2,  dengan  parameter True  Positive (TP), True    Negative (TN), False Positive (FP), dan False  Negative (FN) . Dari  Tabel 2  di  atas,  didapatkan  bahwa  nilai true  positive terbesar  adalah  di  iterasi  9000  yang  menandakan pada  iterasi  9000  YOLOv4  dapat mendeteksi  objek dengan  benar  sebanyak  6515,  paling  banyak diantara  iterasi  lainnya,  sehingga  bila  kita  hitung nilai  evaluasi  dari  iterasi  9000  didapatkan  data bahwa  nilai  akurasinya  adalah  81,42%,  presisi 87,97%, sensitivitas 91,06% dan error rate sebesar 19,02%.
Setelah  proses  pelatihan  program  selesai,  akan didapatkan  file  pelatihan  berformat weight yang berisi  algoritma  YOLOv4  untuk  mendeteksi  objek. File  pelatihan  ini  kemudian  diujikan  dalam  kondisi sebenarnya. Pengujian dilakukan dengan menggunakan  webcam  yang  terhubung  ke  laptop untuk  menangkap  gambar  secara real-time dan mendeteksi  jenis  gambar  tersebut.  Spesifikasi laptop  yang  digunakan  ialah  CPU  Intel  I7-9750H, GPU  Nvidia  GeForce  GTX  1650  dan  RAM  8GB. Adapun pengimplementasian menggunakan program Python .  Pada  program  ini  perlu  dilakukan proses  instalasi library OpenCV  yang  support terhadap  CUDA  dan  CUDNN  milik  Nvidia  [14], agar program dapat melakukan proses pendeteksian objek  menggunakan  GPU  karena  nilai  kecepatan pendeteksian  atau  FPS  pendeteksian  akan  lebih tinggi  dibanding  menggunakan  CPU.  Dengan menggunakan GPU, untuk ukuran gambar 608x608 pixel,  didapat kecepatan pendeteksian sebesar 14,7 FPS.  Sedangkan  untuk  ukuran  gambar  416x416 pixel,  memiliki  kecepatan  pendeteksian  sebesar 25 FPS ( Frame per Second).
Selama pengujian file  ini, sistem akan  memberi label  informasi  produk  pada  gambar.  Sistem  akan
mengkotakkan bounding  box pada  gambar,  lalu  di pojok  kiri  atas bounding  box tersebut  akan  muncul teks  berisi  informasi  yang  ada  di  dalam  folder tersebut [15]. Pada program ini juga terdapat library untuk  melakukan  perhitungan Confident  Value menggunakan  (6)  dengan threshold 0.3  untuk mengevaluasi hasil pendeteksian.
𝐶𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑡 𝑉𝑎𝑙𝑢𝑒= 𝑃 𝑟 (𝑂𝑏𝑗𝑒𝑐𝑡) 𝑥 𝐼𝑜𝑈              (6)

## Dengan
Confident value :  Tingkat  keyakinan  sistem memprediksi  objek  yang  terekam kamera Pr(Object) :  Probabilitas bounding box mengandung objek.
Nilainya  akan  0  jika bounding  box tidak  mengandung        objek  menurut sistem.  Nilainya  akan  1  jika bounding box mengandung objek menurut
sistem. IoU
:  Irisan bounding  box dataset  dengan bounding box pendeteksian [16]
Dari  86  kali  percobaan     didapatkan  nilai true positive berjumlah  84, true  negative berjumlah  12, false positive berjumlah 1, false negative berjumlah 19.    Dari  nilai  tersebut  dapat  dihitung  parameter evaluasinya,    dimana    didapatkan  bahwa  nilai akurasi  adalah  82.75%,  presisi  98.8%,  sensitivitas 96.55%  dan error  rate 17.25%.  Beberapa  hasil  dari pengujian ditampilkan pada Tabel 3.

## B. Implementasi & Pengujian Pendeteksian Jarak
Proses pengukuran pendeteksian jarak dilakukan menggunakan  webcam  yang  terhubung  dengan laptop,  dimana  untuk  mengukur  jarak  produk  ke kamera  merujuk  pada  (5)  dan  jarak  sesungguhnya dihitung  menggunakan  penggaris.  Pendeteksian jarak  ini  dilakukan  pada  jarak  30  cm  dan  40cm. Adapun  pada  jarak  asli  benda  ke  kamera  sejauh 10cm-20cm,  jarak  yang  terdeteksi  di  sistem  yaitu 24  cm.  Hal  ini  dikarenakan  besar  bounding  box benda  yang  terlihat  oleh  kamera  memiliki  ukuran yang  mirip  sehingga  didapatkan  jarak  yang  hampir sama.  Tabel  4  menunjukkan  data  hasil  pengujian pengukuran  pada    jarak  30  cm  dan  40  cm.  Dari hasil  pengujian  didapat  bahwa  nilai  yang  paling akurat adalah ketika jarak benda ke kamera sebesar 30cm.
Tabel 3. Hasil pengujian pendeteksian objek menggunakan webcam No. Nama Benda Hasil Deteksi Confusion Matrix ( confident value ) Bukti Ultramilk Fullcream Ultramilk Fullcream True Positive (94%) 1 2 2 Ultramilk Fullcream 2 Ultramilk Fullcream 2 True Positive (92% dan 87%). Sistem dapat mendeteksi 2 objek dengan benar ketika diberi jarak pemisah 0,3 cm 3 Ultramilk Fullcream dan Objek pengganggu Ultramilk Fullcream True Positive (70%) dan True Negative. Sistem dapat mendeteksi objek dengan benar dan objek yang tidak berada pada dataset tidak terdeteksi 4 Pop Mie Baso dan Pop Mie Ayam Pop Mie Baso dan Pop Mie Ayam True Positive pop mie baso (95%) dan True Positive pop mie ayam (97%) 6 Oreo Coklat Oreo Coklat
True Positive
(93%) 7 Oreo Coklat Oreo Coklat
True positive (65%)
Tabel 4. Hasil pengujian pengukuran jarak Jarak Sebenarnya (cm) Jarak Terukur oleh program (cm) Error (%) 30 29,4 2% 40 36,5 8,75% Tabel 5. Hasil pengujian pengambilan dan peletakkan barang Jarak (cm) Skema Hasil 20 Diambil Tidak Terdeteksi barang diambil 25 Diambil Tidak Terdeteksi barang diambil 30 Diambil Terdeteksi barang diambil 30 Diletakkan Terdeteksi barang diletakkan 35 Diambil Terdeteksi barang diambil 35 Diletakkan Terdeteksi barang diletakkan 40 Diambil Terdeteksi barang diambil 40 Diletakkan Terdeteksi barang diletakkan C. Pengujian Pengambilan dan Peletakkan Produk
Pada  proses  pengujian  ini,  barang  diletakkan didepan  kamera  dengan  jarak  yang  bervariasi, kemudian  barang  tersebut  diambil  dengan  cara mendekatkan  barang  tersebut  ke  kamera  dan meletakkan  kembali barang tersebut  untuk  menguji apakah  sistem  mampu  mendeteksi  barang  tersebut diambil dan diletakkan. Sebelum melakukan proses pengujian  ini,  dilakukan  terlebih  dahulu  kalibrasi untuk  mengetahui  lebar  produk  menurut  sistem, hal  ini  dilakukan  untuk  mengurangi  resiko  terkena error ketika  barang   diletakkan  kembali  ke  dalam rak.
Untuk proses pengujian dilakukan menggunakan satu  buah  produk,  yaitu  susu  kemasan  sehingga untuk  melakukan  pengujian  pada  produk  lain  perlu dilakukan  kalibrasi  terlebih  dahulu.    Data  hasil pengujian ditampilkan pada Tabel 5.  Dari  data  pada Tabel 5 didapatkan bahwa sistem dapat mendeteksi barang  diambil  dan  diletakkan  dengan  optimal ketika  kamera  diletakkan  didepan  objek  sejauh  30- 40cm. Sementara pada jarak 20-25 cm pengambilan dan peletakan barang yang diambil tidak terdeteksi. Hal ini disebabkan besar bounding box benda yang terlihat  oleh  kamera  pada  jarak  tersebut  memiliki ukuran  yang  mirip  yang  menyebabkan  hasil pengukuran  jarak  benda  ke  kamera  menggunakan persamaan  (5)  relatif  sama,  sehingga  sistem  tidak
mendeteksi  benda  tersebut  mendekat  atau  menjauh dari kamera.
D. Pengujian Pengiriman Data ke Database
Proses pengujian ini dilakukan untuk mengetahui  apakah  barang  yang  telah  terdeteksi diambil atau diletakkan, informasinya tersampaikan ke database. Ketika suatu barang terdeteksi diambil oleh  pembeli,  maka  kuantitas  barang  tersebut  akan bertambah  satu  di  dalam  database.  Selain  itu  jenis produk  yang  terdeteksi  beserta  informasi  harga produk  juga  masuk  ke  database.  Adapun  database yang  digunakan  ialah  salah  satu  database  yang dapat  diakses  melalui  internet  yaitu  Firebase. Proses  pengujian  dilakukan  menggunakan  2  buah produk  yaitu  ultramilk  coklat  dan  ultramilk fullcream.    Berberapa  data  hasil  pengujian ditampilkan pada Tabel 6. Dari data pengujian yang telah  dilakukan,  didapat  bahwa  waktu  rata-rata sistem untuk  mengirimkan  informasi  nama produk, harga,  kuantitas  dan  total  harga  ke  Firebase  adalah 2,04 detik.

## IV. K ESIMPULAN
Dari  ketiga  sub-sistem  yang  diujikan,  didapat bahwa sistem pendeteksian objek  yang telah dibuat dapat  mendeteksi  jenis  produk  yang  terekam  oleh kamera.  Pada  bagian  pelatihan  menggunakan Google  Colab  didapatkan  nilai  akurasi  sebesar 81.42%  dengan  nilai  iterasi  9000.  Pada  bagian pengujian  menggunakan webcam didapatkan  nilai akurasi sebesar 82.75% dengan kecepatan pendeteksian  sebesar  25  FPS.  Sistem  dapat mendeteksi  barang  ketika  diambil  atau  diletakkan dengan  baik  ketika  jarak  produk  dengan  kamera berkisar  30-40  cm.  Informasi  jenis  produk  yang terdeteksi  diambil  atau  diletakkan  oleh  pembeli kemudian  diolah  untuk  dikirimkan  ke  Firebase. Adapun  informasi  yang  dikirimkan  ke  database yaitu  nama  produk,  harga  produk,  kuantitas  dan total  harga  belanja  pembeli.  Sistem  berhasil mengirimkan informasi tersebut ke database dengan rata-rata waktu 2,04 detik.
Untuk  penelitian  selanjutnya,  sistem  dapat ditambahkan webcam server yang  terhubung dengan  Raspberry  Pi  4  agar  pendeteksian  dapat lebih  fleksibel.  Sistem  juga  dapat  digabungkan dengan  penggunaan  aplikasi  mobile  atau  QR  Code untuk membedakan pembeli yang satu dengan yang lain.  Selain  itu  pada  proses  training  jumlah  dataset dapat  ditambahkan  agar  nilai  akurasi  yang dihasilkan dapat lebih tinggi.

## U CAPAN T ERIMA K ASIH
Penulis  mengucapkan  terima  kasih  kepada  P3M Politeknik  Negeri  Bandung  yang  telah  mendanai penelitian  ini  melalui  Skema  Penelitian  Mandiri DIPA  POLBAN  tahun  2023,  Nomor:  B/98.10/PL1. R7/PG.00.03/2023.

## R EFERENSI
[1]   Aishatigerlady, “Keunggulan  dan  Kekurangan Berbelanja di Supermarket”, Steemit, 2018. [Online]. Available:
https://steemit.com/indonesia/@aishatigerlady/keung gulan-dan-kekurangan-berbelanja-di-minimarket . Diakses pada: Desember 2, 2023.
[2]     Michael Browne, “For customers, the waiting is the hardest part”, Supermarket News, Agustus 23, 2018. [Online]. Available: https://www.supermarketnews.com/retail- financial/customers-waiting-hardest-part. Diakses pada: Desember 3, 2023.
[3]    M.  Martinus,  S.W.  Metta,  and  H.  H.  Yudi,  “Data Transmission  Using  RFID  System  on  Smart Shopping  Carts  for  Checkout  Process  Efficiency  in Supermarket  at  Indonesia”,  in 5th  International Conference on
Computer Science and Computational Intelligence , 2020, pp. 902-912.
[4]   C. Ezhilazhagan, R. Adithya, Y. L. Burhanuddin and F.  Charles,  “Automatic  product  detection  and  smart billing  for  shopping  using  Li-Fi,” 2016  IEEE International  Conference  on  Recent  Trends  in Electronics, Information & Communication Technology  (RTEICT) ,  Bangalore,  India,  2016,  pp. 1723-1726.
[5]    K.  Sukhani,  N.  Q.  Nunung,  and  A.  P.  Ardimas, “CleverCart:  An  Eco-Friendly  Shopping  Self- Checkout  System  with  IoT  sensor,”  in 5th International  Conference  on  Eco  Engineering Development,  IOP  Conference  Series:  Earth  and Environmental Science , 2022, 998 012041.
[6]    J.  S.  Oh  and  I.  G.  Chun,  “Implementation  of  Smart Shopping Cart using Object Detection Method based on  Deep  Learning,” The  Korea  Academia-Industrial cooperation Society 21 , 2020, pp. 262-269.
[7]    K.  Wankhede,  B.  Wukkadada,  and  V.  Nadar,  “Just Walk-Out Technology and its Challenges: A case of Amazon Go,” International Conference on Inventive Research  in  Computing  Applications  (ICIRCA) , 2018, pp. 254-257.
[8]    A.  Ragan,  “Taking  the  Confusion  Out  of  Confusion Matrices”,  Medium-  Towardsdatascience,  Oktober
11, 2018. [Online]. Available:
https://towardsdatascience.com/taking-the- confusion-out-of-confusion-matrices-c1ce054b3d3e. Diakses pada: Juli 5, 2021.
[9]   F. Friendly, Harizahayu,  W. S. Rahmat, and B. Sari, “Measurement  Of  Image  Distance  Using  Only Camera  On  Object  Detection  Opencv,” Jurnal
No. Aksi Database sebelum aksi Database setelah aksi Waktu pengiriman data 1. Mengambil Ultramilk Coklat 1,9 Detik
2. Meletakkan Ultramilk fullcream 1,8 detik
INFOKUM ,  vol.  10,  no.  1,  pp.  56-63,  Desember 2021.
[10]  P. Paul,  “Object  Detection  and  Distance Measurement,” Github. [Online]. Available: https://github.com/paul-pias/Object-Detection-and- Distance-Measurement. Diakses pada: Juli 24, 2021.
[11]  L.  Xiaoming,  Q.  Tian,  C.  Wanchun,  and  Y. Xingliang, “Real-time distance measurement using a modified  camera,”  in Proc.  IEEE  Sensors  Appl. Symp. , Limerick, Ireland, 2010, pp. 54–58.
[12]  M. A. Khan, P. Paul, M. Rashid, M. Hossain, and M. A.  R.  Ahad,  “An  AI-Based  Visual  Aid  With Integrated  Reading  Assistant  for  the  Completely Blind,”  in IEEE  Transactions  on  Human-Machine
Systems , vol. 50, no. 6, Dec. 2020, pp. 507-517.
[13]  M.  M.  Haekal,  “Apa itu  NoSQL?  Simak  Penjelasan Lengkapnya!”,  Niagahoster,  Februari  12,  2021. [Online]. Available:
https://www.niagahoster.co.id/blog/nosql-adalah/.
Diakses pada: Juli 27, 2021. [14]  A.  James,  “Faster  YOLOv4  Performance  with CUDA enabled OpenCV”, Medium -
Towardsdatascience.  Februari  25,  2021.  [Online]. Available:    https://towardsdatascience.com/yolov4- with-cuda-powered-opencv-dnn-2fef48ea3984.
Diakses pada: Juli 29, 2021.
[15]  J.  Hui,  “Real-Time  Object  Detection  with  YOLO, YOLOv2 and YOLOv3”, Medium, Maret 18, 2018.
[Online]. Available: https://jonathan- hui.medium.com/real-time-object-detection-with- yolo-yolov2-28b1b93e2088.  Diakses  pada:  Juni  12, 2021.
[16]  H.  Liu,  Y.  Li,  and  D.  Liu,  “Object  Detection  and Recognition  System  Based  on  Computer  Vision Analysis,” Journal  of  Physics:  Conference  Series, IOP Publishing , 2021, pp.  1976-012024.