Hal 76−81 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom

## Pemilahan Sampah Menggunakan Model Klasifikasi Support Vector Machine Gabungan dengan Convolutional Neural Network
Miftahuddin Fahmi 1,* , Anton Yudhana 2 , Sunardi 2
1 Master Informatika, Universitas Ahmad Dahlan, Yogyakarta, Indonesia
2 Program Studi Teknik Elektro, Universitas Ahmad Dahlan, Yogyakarta, Indonesia Email: 1,* 2108048015@webmail.uad.ac.id, 2 eyudhana@ee.uad.ac.id, 3 sunardi@mti.uad.ac.id Email Penulis Korespondensi: 2108048015@webmail.uad.ac.id Submitted 04-01-2023 ; Accepted 13-02-2023 ; Published 17-02-2023

## Abstrak
Pemilahan sampah merupakan proses vital dalam pengelolaan sampah. Permasalahan pada proses pemilahan sampah adalah manusia yang terlalu lama merasa tidak nyaman dengan bau sampah.  Masalah tersebut dapat diatasi dengan membuat sistem pembelajaran mesin untuk mengidentifikasi jenis limbah. Tujuan penelitian ini adalah memecahkan permasalahan pengelolaan sampah menggunakan machine learning menggunakan model klasifikasi yang paling akurat. Jenis sampah pada penelitian ini dibatasi hanya dua jenis, yaitu organik dan anorganik. Data dikumpulkan dan direvisi dari dataset Kaggle. Data diimpor ke sistem menggunakan Python. Data dilatih dan digunakan untuk mengklasifikasikan sampah berdasarkan sumber citra. Limbah citra ditentukan jenisnya menggunakan model Support  Vector  Machine  dengan  ekstraksi  ciri  menggunakan  convolution  layer.  Sistem  berhasil  melakukan  klasifikasi  sampah menggunakan model Support Vector Machine yang digabung dengan Convolutional Neural Network dengan akurasi 96,16% dan loss 7,25% pada keseluruhan kategori.
Kata Kunci: CNN; Feature Extraction; Machine Learning; SVM; Pengelolaan Sampah

## Abstract
Waste sorting is a vital process in waste management. The problem with the waste sorting process is that humans feel uncomfortable with the smell of garbage for too long. The problem can be solved by creating a machine learning system to identify the waste type. The purpose of this research is to solve waste management problems using machine learning using the most accurate classificat ion model. The types of wastein this research are limited to only two types: organic and inorganic. Data was collected and revised from the Kaggle dataset. Data were imported into the system using Python. Data was trained and used for classifying the waste based on the image source. Waste images will  be determined in their category using the Support Vector Machine model with feature extraction using the Convolution layer. The system successfully performs waste classification using the Support Vector Machine model combined with the Convolutional Neural Network with an accuracy of 96,16% and a loss of 7,25% on the overall category.
Keywords : CNN; Feature Extraction; Machine Learning; SVM; Waste Management

## 1. PENDAHULUAN
Penumpukan  sampah  yang  tidak  sesuai  dengan  kapasitas  adalah  permasalahan  yang  nyata  [1].  Salah  satu  penyebab penumpukan sampah adalah proses pengelolaan sampah yang tidak sebanding kecepatannya dengan jumlah sampah yang menumpuk per-harinya [2]. Salah satu proses pengelolaan sampah yang sering menjadi kendala adalah pemilahan sampah [3].  Dari  hasil  wawancara  dengan  pengelola  bank  sampah  Guwosari Training  Center ,  yang  menjadi  kendala  ketika melakukan  pengelolaan  sampah  adalah  pemilahan  sampah  terutama  dengan  sampah  organik  karena  faktor  bau. Permasalahan  ini  dapat  ditangani  dengan  mengimplementasikan  mesin  yang  dapat  memilah  sampah  dengan  otomatis. Mesin tidak akan menghiraukan bau sampah namun dapat dengan efektif memilah sampah. Mesin harus memiliki sistem yang  mampu  mengidentifikasi  jenis  sampah.  Jenis  sampah  pada  penelitian  hanya  dibatasi  untuk  sampah  organik  dan anorganik karena jenis sampah ini yang sering dijumpai di tempat pembuangan akhir [4]. Sampah organik dan anorganik dipisah oleh sistem yang diimplementasikan dalam mesin. Sistem terdiri dari kecerdasan buatan dengan model Support Machine Vector (SVM). SVM adalah model algoritma kecerdasan buatan yang dapat digunakan untuk mengklasifikasi kategori secara unsupervised maupun supervised [5][6]. Karena kategori sampah sudah terbentuk maka SVM dilakukan sebagai model supervised learning .
Banyak penelitian terdahulu  yang menggunakan SVM untuk  studi  kasus citra sampah seperti halnya penelitian yang  dilakukan  oleh  Leonardo  [7].  Pada  penelitian  tersebut  dijelaskan  bahwa SVM  memiliki  kinerja  yang  baik  untuk mengklasifikasikan  jenis  sampah  berdasarkan  citranya.  Penelitian  tersebut  menggunakan preprocessing Local  Binary Pattern (LBP).  Klasifikasi  yang  terjadi  dalam  penelitian  ini  tidak  dilakukan  dengan  dua  kategori  melainkan  empat kategori yang lebih spesifik, yaitu sampah kardus, gelas, metal, dan plastik. Hasilnya dilakukan per kategori menggunakan k-fold cross validation. Untuk keseluruhan sistem pada pengkategorian secara organik atau anorganik tidak dijelaskan. Penelitian  terdahulu  yang  serupa  berikutnya  dilakukan  oleh  Chu  [8].  Penelitian  tersebut  menggunakan Convolutional Neural Network (CNN) yang digabung dengan multilayer hybrid deep-learning system (MHS) pada studi kasus klasifikasi sampah berdasarkan citra sampah. Penggabungan model ini menghasilkan performa sekitar 87,7%.
Penelitian sebelumnya menunjukkan bahwa klasifikasi sampah sudah banyak dilakukan menggunakan machine learning dengan dataset berupa citra. Tujuan penelitian terdahulu maupun penelitian ini adalah untuk mengetahui model mana yang terbaik untuk mengklasifikasi sampah berdasarkan jenisnya agar pengelolaan sampah menjadi lebih efisien terhadap performa kecerdasan buatan.
Hal 76−81 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom

## 2. METODOLOGI PENELITIAN
Penelitian  dimulai  dengan  mengumpulkan  data  hingga  evaluasi  terhadap  performa  model  yang  diajukan.  Peneltian dilakukan secara sistematis dan runtut berdasarkan data dan hasil sesuai dengan yang ada pada lapangan. Gambar 1 adalah bagan alur dari penelitian secara keseluruhan.
Gambar 1 . Bagan alur penelitian
2.1 Dataset
Dataset diperoleh  dengan  mengunduh  dari website Kaggle  [9]. Dataset berisi  data training dan validation sebanyak 25.077 data [9]. Dataset terdiri dari data berlabel dengan dua kelas yang biasa disebut kelas biner, yaitu sampah organik dan  sampah  anorganik. Dataset dikumpulkan  oleh  Sashaank  Sekar  [9].  Rasio  data  pelatihan  dan  data  validasi  yang digunakan dalam penelitian ini adalah 85% dan 15%. Data kemudian dimasukkan kedalam sistem Python. Berikut adalah contoh data citra pada setiap kategori.
Gambar 2 . Salah satu citra pada dataset yang memiliki kategori organik
Gambar 3 . Salah satu citra pada dataset yang memiliki kategori anorganik

## 2.2 Preprocessing
Dataset dimasukkan kedalam array menggunakan NumPy yang tersedia di  Python. Label  yang ada pada citra diubah menjadi angka sehingga sistem dapat membaca dan mengklasifikasikannya berdasarkan label berupa angka [10].
Hal 76−81 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom
Citra menggunakan skala warna red, green, blue (RGB). Piksel citra di- resize sehingga menjadi seragam setiap citra dengan ukuran resize 64x64. Citra menggunakan skala warna RGB maka ukuran piksel tiga dimensi citra adalah 64x64x3.  Ukuran  ini  yang  nanti  akan  dimasukkan  kedalam  model  SVM  dengan input  shape 64x64x3.  Setelah  itu ditambahkan beberapa normalisasi data dan L2 Regularisasi.

## 2.3 Implementasi Model SVM
Model  SVM  memiliki  arsitektur  yang  sederhana  yaitu  terdapatnya hyperplane dengan  fungsi  sebagai  pembagi  antar kategori  [11]. Hyperplane ditentukan  dari  titik  tengah  antar  kategori  ditinjau  dari  titik-titik  kategori  berbeda  yang berdekatan [12]. Hyperplane ditentukan dengan perhitungan sebagai berikut.
𝑓(𝑥) = 𝑤. 𝑥 + 𝑏
(1)
atau
𝑓(𝑥) =   ∑ 𝑎 𝑖 𝑦 𝑖 𝑚 𝑖=1 𝐾(𝑥, 𝑥 𝑖 )𝑏 (2)
𝑓(𝑥) adalah parameter hyperplane yang dicari (garis tegak lurus antara  garis hyperplane dan titik support vector ). 𝑥 adalah titik data masukan SVM. 𝑎 𝑖 adalah nilai bobot setiap titik data. 𝑦 𝑖 adalah nilai kategori atau label. 𝐾(𝑥, 𝑥 𝑖 ) adalah fungsi  kernel. 𝑏 adalah  parameter hyperplane yang  dicari  (nilai  bias).  Kategori  dalam  penelitian  bersifat  biner  karena hanya ada dua kategori, yaitu sampah organik dan anorganik sehingga SVM yang digunakan bersifat linear [13].

## 2.4 Evaluasi Model SVM
Model SVM yang terbentuk akan diuji akurasi dan loss terhadap citra sampah. Evaluasi dibagi menjadi dua jenis, yaitu evaluasi ketika dilakukan training dan diuji dengan data test . Evaluasi ketika dilakukan training dapat dianalisis melalui hasil  grafik  akurasi  dan loss antara  data training dan  validasi.  Untuk  evaluasi  akurasi  data test dapat  dihitung  dengan perhitungan confusion matrix [14]. Berikut adalah rumus confusion matrix untuk evaluasi akurasi data test .
Accuracy = (TP+TN) / (TP+FP+FN+TN) (3)
Untuk menghitung akurasi, diperlukan variabel True Positive (TP) yang bernilaikan dari setiap data yang memiliki nilai asli positif dan mesin memprediksinya dengan benar. TP dijumlahkan dengan True Negative (TN), yaitu variabel yang  memiliki  nilai  asli  negatif  dan  mesin  memprediksinya  dengan  benar.  Hasil  penjumlahan  lalu  dibagi  dengan TP+FP+FN+TN  dimana False  Positive (FP)  adalah  variabel  yang  memiliki  nilai  asli  positif  namun  mesin  salah memprediksinya  sedangkan False  Negative (FN)  adalah  variabel  dengan  nilai  asli  negatif  namun  mesin  salah memprediksinya. TP+FP+FN+TN bisa disebut juga sebagai total data yang diuji.

## 3. HASIL DAN PEMBAHASAN
Dataset yang diperoleh dari website Kaggle di- import kedalam Python. Normalisasi dataset dilakukan sehingga tidak ada lagi data yang tidak sesuai dengan studi kasus ataupun tidak lengkap datanya [15]. Setelah itu data di- resize agar memiliki ukuran  yang  seragam.  Ukuran  input  data  mentah  seragam  menjadi  64x64x3.  Ukuran  input  data  yang  seragam  akan membuat mesin lebih cepat dan efisien dalam mengklasifikasi data [16]. Dataset telah berhasil diinputkan dalam sistem dengan rasio perbandingan antara data training dan test adalah 85:15. Pembentukan  SVM  dilakukan  di  Python  menggunakan library Sklearn.  Khusus  untuk feature  extraction menggunakan  library  Tensorflow  untuk  memanggil  model  CNN.  Sebelum  pembentukan  model  SVM,  dilakukan  data augmentasi untuk menghindari hasil data training yang overfitting terhadap data validasi [17]. Data  augmentasi  dilakukan  dengan  transformasi  citra  berupa shear,  zoom, dan horizontal  flip .  Data  dilakukan rescale 1/255. Perbandingan antara data training dengan validasi adalah 8:2.
Langkah selanjutnya adalah feature extraction menggunakan convolution layer . Penggunaan convolution sebagai feature extraction memiliki rumus sebagai berikut:
W2 = (W1-F + 2P) / S + 1 = H2 (4) D2 = K (5)
K adalah jumlah filter yang digunakan. F adalah ukuran spasial dari filter (lebar/tinggi). S adalah stride atau besar pergeseran filter dalam convolution . P adalah padding , jumlah penambahan nol pada gambar. W adalah piksel lebar dan H adalah piksel tinggi.
Convolution layer akan menghasilkan barisan angka dalam setiap piksel yang menentukan seberapa penting objek yang  ada  pada  piksel  tersebut  berdasarkan  nilai  angka  yang  tertera.  Angka-angka  itu  dimasukkan ke pool  layer . Pool layer yang  digunakan  memiliki  ukuran pool bernilai  2  dan stride bernilai  2  dengan  jenis max-pooling .  Hal  ini menunjukkan  bahwa  setiap deretan  angka yang dihasilkan oleh convolution  layer akan dicari  nilai  maksimalnya pada setiap  2x2  piksel,  kemudian pool  layer bergerak  ke  piksel  selanjutnya  sesuai  dengan  nilai stride 2.  Hasil pool  layer dijadikan dalam bentuk satu dimensi dengan fungsi flatten . Hasil dari normalisasi flatten akan dihubungkan secara utuh dalam layer yang padat dengan fungsi dense .
Hal 76−81 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom
Setelah feature  extraction terbentuk,  data  tersebut  diklasifikasi  menggunakan hyperplane berupa decision boundary dengan kategori biner yang telah disiapkan, yaitu organik dan anorganik. Hyperplane dapat dibentuk dengan menggunakan loss dengan value ‘hinge’.  Secara keseluruhan  proses  dapat  disimpulkan  seperti  pada  Tabel  1.  Tabel  1 merupakan ringkasan dari arsitektur model yang digunakan untuk mengklasifikasikan sampah.
Tabel 1. Skema SVM yang digabung dengan CNN
parameter value #Layer pertama Conv 2D filter Conv 2D kernel Input Shape Activation MaxPooling2D  kernel MaxPooling2D Strides 32 3x3 64, 64, 3 relu 2x2 2 #Layer Kedua Conv 2D filter Conv 2D kernel Input Shape Activation MaxPooling2D  kernel MaxPooling2D Strides 32 3x3 64, 64, 3 relu 2x2 2 #Layer normalisasi Flatten #Layer Full Connection Dense unit Activation 128 relu #Output Layer Dense unit Kernel Regularisasi Optimizer Loss Metrics 1 L2 Adam Hinge Accuracy
Gambar 4 dan Gambar 5 adalah grafik hasil dari data training dan validasi berdasarkan akurasi dan loss .
Gambar 4. Akurasi training dibandingkan dengan validasi
Hal 76−81 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom
Gambar  4  dan  Gambar  5  menunjukkan  bahwa  tidak  ada  permasalahan  yang  begitu  signifikan  jika  dilakukan perbandingan persentase akurasi dan loss antara data training dengan data validasi. Ini menunjukkan data training tidak mengalami overfitting. Jarak terbesar antara data training dan validasi terjadi pada perulangan ke-20 dengan perbedaan persentase sekitar 4,56%. Gambar 6 menjelaskan mengenai perulangan ke-20 secara detail.
Epoch 20/30 784/784 [==============================] - 28s 36ms/step - loss: 0.1759 - accuracy: 0.9236 - val_loss: 0.2072 - val_accuracy: 0.8780
Gambar 6. Hasil perulangan ke-20
Sampai saat  ini masih belum ada variabel  konstan yang menunjukkan  berapa selisih  atau perbedaan persentase antara data training dengan validasi menunjukkan suatu data training mengalami overfitting namun 4,56% secara umum adalah persentase yang kecil untuk dikategorikan sebagai data training yang mengalami overfitting. Hasil  akurasi  dan loss ketika  dilakukan  pengujian  menggunakan  data test adalah  persentase  akurasi  bernilai 96,16% dan loss 7,25%.
67/67 [==============================] - 1s 11ms/step - loss: 0.0725 - accuracy: 0.9616
Gambar 7 . Hasil pengujian menggunakan data pengujian
Seperti yang dijelaskan pada bab pendahuluan, banyak penelitian sebelumnya yang sudah membuat mesin untuk mengklasifikasikan citra sampah berdasarkan jenisnya. Ada beberapa perbedaan dengan penelitian terdahulu. Perbedaan pertama  adalah dataset memiliki  sumber  yang  berbeda. Dataset yang  dipakai  pada  penelitian ini  adalah dataset yang bersumberkan dari Kaggle [9].
Perbedaan  selanjutnya  adalah  penelitian  ini  menggunakan  model  SVM  untuk  mengklasifikasikan  data  citra sampah  namun  untuk feature  extraction -nya  menggunakan  layer  yang  biasa  digunakan  pada  model  CNN  yaitu convolution  layer. Model  yang  dipakai  juga  merupakan  model  gabungan  yaitu  SVM  dengan  CNN.  Secara  arsitektur model, hanya pada feature extraction saja menggunakan model CNN, namun dalam mengklasifikasi data menggunakan SVM  karena  menggunakan  fungsi  yang  membentuk hyperplane yang  berguna  sebagai decision  boundary dari  dua kategori yang telah ditentukan sebelumnya.
Dari segi hasil dapat disimpulkan model yang lebih baik. Jika dilakukan analisis hasil performa akurasi machine learning pada  keseluruhan  data  dapat  disimpulkan  bahwa  SVM  menggunakan  CNN  sebagai feature  extraction -nya memiliki hasil keseluruhan performa sebesar 96,16% untuk kategori biner berupa organik dan anorganik.

## 4. KESIMPULAN
Model  klasifikasi  SVM  yang  digabung  dengan  CNN  telah  berhasil  mencapai  hasil  yang  diinginkan  yaitu  dapat mengklasifikasi  sampah  berdasarkan  jenis  yang  telah  ditentukan  sebelumnya.  Performa  model  SVM  yang  digabung dengan CNN mencapai hasil 96,16%. Jika dibandinginkan dengan penelitian terdahulu yang dijelaskan pada penelitian ini, SVM yang digabung dengan CNN lebih unggul pada tingkat keakuratan performa keseluruhan sistem daripada model klasifikasi lainnya. Saran untuk penelitian selanjutnya dapat melakukan penelitian menggunakan model, nilai parameter pada model, atau arsitektur model yang berbeda untuk mencari yang terbaik dan efektif untuk studi kasus citra sampah.

## REFERENCES
[1] A. M. T. dan M. Didiharyono, “Pemanfaatan Sampah Plastik Untuk Dijadikan Bantal Yang Berkualitas Dan Bernilai Ekonomis Di Desa Tolada Kecematan Malangke Kabupaten Luwuutara,” vol. 1, no. 1, pp. 8–13, 2018.
[2] A. Kahfi, “Tinjauan Terhadap Pengelolaan Sampah,” Jurisprud.  Jur. Ilmu Huk. Fak. Syariah dan Huk. , vol. 4, no. 1, p. 12, 2017, doi: 10.24252/jurisprudentie.v4i1.3661.
[3] R.  Setiadi,  M.  Nurhadi,  and  F.  Prihantoro,  “Idealisme  dan  Dualisme  Daur  Ulang  Sampah  di  Indonesia:  Studi  Kasus  Kota Semarang,” J. Ilmu Lingkung. , vol. 18, no. 1, pp. 48–57, 2020, doi: 10.14710/jil.18.1.48-57.
[4] M.  Tamyiz,  L.  N.  Hamidah,  A.  Widiyanti,  and  A.  Rahmayanti,  “Pelatihan  Pengelolaan  Sampah  Rumah  Tangga  Di  Desa Kedungsumur, Kecamatan Krembung, Kabupaten Sidoarjo,” J. Sci. Soc. Dev. , vol. 1, no. 1, pp. 16–23, 2018.
[5] B. Wang, J. Sui, B. Yu, C. Yuan, L. Guo, and A. M. A. El-aty, “ur na l P of,” Carbohydr. Polym. , p. 117314, 2020, [Online]. Available: https://doi.org/10.1016/j.carbpol.2020.117314.
[6] Y. Wang, D. Wang, and Y. Tang, “Clustered hybrid wind power prediction model based on ARMA, PSO-SVM, and clustering methods,” IEEE Access , vol. 8, pp. 17071–17079, 2020, doi: 10.1109/ACCESS.2020.2968390.
[7] L. Leonardo, Y. Yohannes, and E. Hartati, “Klasifikasi Sampah Daur Ulang Menggunakan Support Vector Machine Dengan Fitur Local Binary Pattern,” J. Algoritm. , vol. 1, no. 1, pp. 78–90, 2020, doi: 10.35957/algoritme.v1i1.440.
[8] Y. Chu, C. Huang, X. Xie, B. Tan, S. Kamal, and X. Xiong, “Multilayer hybrid deep-learning method for waste classification and recycling,” Comput. Intell. Neurosci. , vol. 2018, 2018, doi: 10.1155/2018/5060857.
[9] S. Sekar, “Waste Classification data,” 2019. https://www.kaggle.com/datasets/techsash/waste-classification-data (accessed Mar. 21, 2022).
[10]  W. R. U. Fadilah, W. A. Kusuma, A. E. Minarno, and Y. Munarko, “Classification of Human Activity Recognition Utilizing Smartphone Data of CNN-LSTM,” Kinet. Game Technol. Inf. Syst. Comput. Network, Comput. Electron. Control , vol. 4, no.
Hal 76−81 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom
2020, 2021, doi: 10.22219/kinetik.v6i2.1319.
[11]  A.  S.  Ritonga  and  E.  S.  Purwaningsih,  “Penerapan  Metode  Support  Vector  Machine  (  SVM  )  Dalam  Klasifikasi  Kualitas Pengelasan Smaw ( Shield Metal Arc Welding ),” Ilm. Edutic , vol. 5, no. 1, pp. 17–25, 2018.
[12]  A. Peryanto, A. Yudhana, and R. Umar, “Convolutional Neural Network and Support Vector Machine in Classification of Flower Images,” Khazanah Inform.  J. Ilmu Komput. dan Inform. , vol. 8, no. 1, pp. 1–7, 2022, doi: 10.23917/khif.v8i1.15531.
[13]  V. K. Chauhan, K. Dahiya, and A. Sharma, “Problem formulations and solvers in linear SVM: a review,” Artif. Intell. Rev. , vol. 52, no. 2, pp. 803–855, 2019, doi: 10.1007/s10462-018-9614-6.
[14]  R. I. Kurnia, “Classification of User Comment Using Word2vec and SVM Classifier,” Int. J. Adv. Trends Comput. Sci. Eng. , vol. 9, no. 1, pp. 643–648, 2020, doi: 10.30534/ijatcse/2020/90912020.
[15]  D. A. Nasution, H. H. Khotimah, and N. Chamidah, “Perbandingan Normalisasi Data untuk Klasifikasi Wine Menggunakan Algoritma K-NN,” Comput. Eng. Sci. Syst. J. , vol. 4, no. 1, p. 78, 2019, doi: 10.24114/cess.v4i1.11458.
[16]  C. F. Sabottke and B. M. Spieler, “The effect of image resolution on deep learning in radiography,” Radiol. Artif. Intell. , vol. 2, no. 1, 2020, doi: 10.1148/ryai.2019190015.
[17]  B.  Ghojogh  and  M.  Crowley,  “The  Theory  Behind  Overfitting,  Cross  Validation,  Regularization,  Bagging,  and  Boosting: Tutorial,” pp. 1–23, 2019, [Online]. Available: http://arxiv.org/abs/1905.12787.