Tami Nur Herawati1, Susanti2, Hanifati Ajrina Rahim3, Chipta Dwi Ramadian 4, Anindya
Apriliyanti Pravitasari5.
Departemen Statistika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Padjadjaran 1,2,3,4,5
tami19001@mail.unpad.ac.id1, susanti18001@mail.unpad.ac.id2, hanifati19001@mail.unpad.ac.id3,
chipta20001@mail.unpad.ac.id4, anindya.apriliyanti@mail.unpad.ac.id5
ABSTRAK
Conlutional Neural Network ini sering sekali disebut Jaringan Saraf Tiruan. Pada penggunaan metode
CNN, algoritma akan digunakan untuk melakukan tugas klasifikasi langsung melalui gambar, video, teks,
ataupun suara. Convolutional Neural Network akan memfilter ke setiap gambar pelatihan yang diterapkan
pada resolusi yang berbeda-beda, dan output dari setiap gambar yang dikonvolusi akan digunakan sebagai
input ke lapisan berikutnya. Sehingga CNN dapat mengidentifikasi dan mengklasifikasi gambar, teks,
suara, dan video. Pada penelitian ini dilakukan penerapan CNN untuk membedakan jenis unggas yakni
ayam dan bebek dengan menggunakan packages Keras-Tensorflow (tf.keras) dengan bantuan software
Python pada Google Colaboratory. Pembagian data training dan testing dilakukan dengan perbandingan
90:10. Proses iterasi dilakukan sebanyak 30 kali didapatkan tingkat akurasi sebesar 89%.
I. PENDAHULUAN
Masalah utama dalam bidang Compouter Vision yang sejak dahulu dicari
pemecahannya adalah klasifikasi objek/gambar[3]. Bagi manusia pengklasifikasian
objek/gambar adalah tugas yang sangat cukup mudah, akan tetapi bagi komputer/mesin
pengklasifikasian objek/gambar adalah tugas yang sangat kompleks. Memeriksa dan
mengklasifikasikan objek/gambar secara manual akan sangat membosankan apalagi ketika
jumlahnya sangat banyak misalnya sampai ribuan gambar, oleh karena itu akan sangat
memudahkan apabila menggunakan Computer Vision untuk mengotomatiskan seluruh proses
ini.
Dengan berkembangnya dunia komputasi dan dengan semakin meningkatnya kapasitas
dan kecerdasan proses komputer saat ini muncul ilmu ilmu komputasi yang memungkinkan
komputer dapat mengambil informasi dari suatu citra untuk keperluan pengenalan objek
secara otomatis.
Metode yang paling banyak digunakan dalam pengolah citra adalah metode
Convolutional Neural Network (CNN)[5]. CNN merupakan pengembangan dari Multi-Layer
Perceptron (MLP) dan merupakan salah satu algoritma dari Deep Learning[3]. Walaupun proses
training yang tergolong lama, metode CNN saat ini mampu menghasilkan output yang paling
signifikan dalam mengenali citra, sistemnya yang berusaha meniru visual cortex pada
manusia saat mengenali citra membuatnya memiliki kemampuan mengolah informasi citra
yang sangat baik[2].
SVM adalah salah satu algoritma yang cukup terkenal sebelumnya akhirnya CNN
dikembangkan dengan masif. Pada SVM, vektor fitur yang digunakan adalah pixel dari citra
untuk langsung di-input- kan ke dalam algoritmanya[6]. Salah satu cara melatihnya adalah
dengan menentukan berapa banyak fitur yang akan digunakan dan ukuran pixel dari citranya.
Misal, SVM dilatih dengan fitur sebanyak 784, pada tiap fitur nilai pixelnya adalah 28x28.
CNN mengikuti model hierarkis yang berfungsi untuk membangun jaringan, seperti
corong, dan akhirnya memberikan lapisan yang sepenuhnya terhubung di mana semua
neuron terhubung satu sama lain dan output diproses. Konsep ini pertama kali disajikan oleh
Yann le cun untuk klasifikasi digit di mana ia menggunakan lapisan konvolusi tunggal. Hal
itu kemudian dipopulerkan oleh Alexnet pada tahun 2012 yang menggunakan beberapa
lapisan konvolusi pada imagenet sehingga menjadikan CNN suatu algoritma pilihan untuk
Jurnal Statistika Teori dan Aplikasi: Biomedics, Industry & Business And Social Statistics 1
Website: biastatistics.statistics.unpad.ac.id
Published by Departemen Statistika FMIPA Universitas Padjadjaran
tantangan klasifikasi gambar selanjutnya.
Penelitian sebelumnya telah dilakukan oleh [4] pada klasifikasi buah pir dengan CNN
mendapatkan nilai akurasi mencapai 98%. Selain itu, adapula penelitian yang dilakukan oleh
[3] menunjukan penggunaan CNN mampu menghasilkan akurasi antara 20-50% pada
berbagai kelompok objek. Pada proses kalsifikasi menggunakan CNN dan K-Fold Cross
Validation oleh [6] didapatkan akurasi sebesar 80,36% dengan K=5. Selain itu, tentunya
masih banyak proses klasifikasi objek lainnya yang telah dilakuakan oleh peneliti dengan
metode CNN menghasilkan nilai akurasi yang tinggi. Berdasarkan hal tersebut, pemilihan
CNN untuk klasifikasi unggas pada penelitian kali ini didasarkan.
2 Jurnal Statistika Teori dan Aplikasi: Biomedics, Industry & Business And Social Statistics
Website: biastatistics.statistics.unpad.ac.id
Published by Departemen Statistika FMIPA Universitas Padjadjaran
2.4 Training
Pada tahap training ini merupakan proses untuk melatih model CNN yang telah
dibuat sehingga dapat memahami juga membedakan jenis unggas yaitu ayam dan
bebek. Tahap ini juga merupakan proses dimana machine learning bekerja sehingga
algoritma yang sudah didefinisikan dapat mengingat pola dari masing – masing kelas
pada data yang di train[1].
2.5 Testing
Tahap terakhir merupakan tahap testing atau pengujian. Proses testing ini
merupakan proses klasifikasi bobot dan bias dari hasil proses training atau proses ini
dilakukan untuk mengetahui ketepatan klasifikasi dengan menilai indeks yang telah
dihasilkan oleh model CNN yang telah dibuat[1]. Hasil akhir dari proses ini
menghasilkan akurasi dari klasifikasi yang dilakukan, data yang gagal diklasifikasi,
nomor citra yang gagal diklasifikasi, dan bentuk network yang terbentuk dari proses
feedforward. Alur proses testing ditujukan pada gambar berikut.
Pada tahap ini google colab akan dihubungkan dengan google drive khususnya
pada bagian folder ‘ADI’. Dari output tersebut didapatkan bahwa folder ADI memuat 3
folder lainnya yakni Data, Latih dan Validasi Dari hasil output di atas didapatkan bahwa
jumlah data atau bahan citra pada gamabr folder ayam dan bebek sama-sama berjumlah
50.
Jurnal Statistika Teori dan Aplikasi: Biomedics, Industry & Business And Social Statistics 3
Website: biastatistics.statistics.unpad.ac.id
Published by Departemen Statistika FMIPA Universitas Padjadjaran
3.2 Preprocessing
3.2.1 Pembagian Data
Pada tahap ini dilakukan persiapan data mentah yang akan diolah oleh sistem.
Selanjutnya data tersebut akan dilakukan proses seleksi, yaitu membagikan data
berupa data training dan data validasi dari dataset yang telah kita siapkan.
Pembagian data dilakukan dengan perbandingan 90:10 (banyaknya data pada folder
training adalah 90%, sedangkan banyaknya data validasi adalah 10% dari total
keseluruhan bahan yang ada pada folder Data 10.
Dari data output diatas didapatkan bahwa data ayam keseluruhan ada 50 dan untuk
data train atau latih sebesar 90% dari keseluruhan data sebanyak 45, dan data
validasi sebesar 10% dari total data yakni sebanyak 5.
3.2.2 Membuat Flow Data
Pada tahapan ini, kita menggunakan flow from dir dimana fungsi tersebut
mengarahkan kita kepada folder set yang telah kita buat sebelumnya.
Hasil output ditemukan untuk data training terdapat 90 image dengan dua kelas dan
untuk datatasting terdapat 10 image dengan dua kelas.
model.summary()
"
\n",
" Layer (type) Output Shape Param # \n",
"=========================================================
=
=======\n",
" conv2d_6 (Conv2D) (None, 148, 148, 16) 448
\n", " \n",
" max_pooling2d_6 (MaxPooling (None, 74, 74, 16) 0
\n", " 2D) \n",
" \n",
" conv2d_7 (Conv2D) (None, 72, 72, 32) 4640
4 Jurnal Statistika Teori dan Aplikasi: Biomedics, Industry & Business And Social Statistics
Website: biastatistics.statistics.unpad.ac.id
Published by Departemen Statistika FMIPA Universitas Padjadjaran
\n", " \n",
" max_pooling2d_7 (MaxPooling (None, 36, 36, 32) 0
\n", " 2D) \n",
" \n",
" conv2d_8 (Conv2D) (None, 34, 34, 64) 18496
\n", " \n",
" max_pooling2d_8 (MaxPooling (None, 17, 17, 64) 0
\n", " 2D) \n",
" \n",
" flatten_2 (Flatten) (None, 18496) 0
\n", " \n",
" dense_6 (Dense) (None, 200) 3699400
\n", " \n",
" dropout_4 (Dropout) (None, 200) 0
\n", " \n",
" dense_7 (Dense) (None, 500) 100500
\n", " \n",
" dropout_5 (Dropout) (None, 500) 0
\n", " \n",
" dense_8 (Dense) (None, 2) 1002
\n", " \n",
"=========================================================
=
=======\n",
"Total params: 3,824,486\n",
"Trainable params:
3,824,486\n", "Non-trainable
params: 0\n",
model.summary()
"
\n",
" Layer (type) Output Shape Param # \n",
"========================================================
==
=======\n",
" conv2d_6 (Conv2D) (None, 148, 148, 16) 448 \n", " \n",
" max_pooling2d_6 (MaxPooling (None, 74, 74, 16) 0 \n", "
2D) \n",
" \n",
" conv2d_7 (Conv2D) (None, 72, 72, 32) 4640 \n", " \n",
" max_pooling2d_7 (MaxPooling (None, 36, 36, 32) 0 \n", "
2D) \n",
" \n",
" conv2d_8 (Conv2D) (None, 34, 34, 64) 18496 \n", " \n",
" max_pooling2d_8 (MaxPooling (None, 17, 17, 64) 0 \n", "
2D) \n",
" \n",
" flatten_2 (Flatten) (None, 18496) 0 \n", " \n",
" dense_6 (Dense) (None, 200) 3699400 \n", " \n",
" dropout_4 (Dropout) (None, 200) 0 \n", " \n",
Jurnal Statistika Teori dan Aplikasi: Biomedics, Industry & Business And Social Statistics 5
Website: biastatistics.statistics.unpad.ac.id
Published by Departemen Statistika FMIPA Universitas Padjadjaran
" dense_7 (Dense) (None, 500) 100500 \n", " \n",
" dropout_5 (Dropout) (None, 500) 0 \n", " \n",
" dense_8 (Dense) (None, 2) 1002 \n", " \n",
"========================================================
=
========\n",
"Total params: 3,824,486\n", "Trainable params:
3,824,486\n", "Non-trainable params: 0\n",
model.compile(loss = 'categorical_crossentropy',
optimizer = 'Adam',
metrics = ['accuracy']
Dari gambar grafik tersebut diperoleh informasi untuk garis warna biuru adalah
variladasi untuk akurasi sudah cukup bagus karena mencapai nilai satu, begitulula
dengan training akurasi yang terus mengalami peningkatan. Jika dilihat dari grafik,
terlihat bahwa kedua garis cenderung turun, maka dapat disimpulkan model yang cukup
6 Jurnal Statistika Teori dan Aplikasi: Biomedics, Industry & Business And Social Statistics
Website: biastatistics.statistics.unpad.ac.id
Published by Departemen Statistika FMIPA Universitas Padjadjaran
bagus karena menunjukan akurasi yangmeningkat dan loss yang menurun.
import numpy as np
from keras.preprocessing import image
from google.colab import files
uploaded = files.upload()
for fn in uploaded.keys():
#predicting images
path = fn
img = image.load_img(path, target_size = (150,150))
imgplot = plt.imshow(img)
x = image.img_to_array(img)
x = np.expand_dims(x, axis = 0)
images = np.vstack([x])
classes = model.predict(images, batch_size = 100)
print(fn)
class_list = os.listdir(train_dir)
for j in range(50):
if classes [0][j] -- 1. :
print('This image belongs to class', class_list[j-1])
break
Jurnal Statistika Teori dan Aplikasi: Biomedics, Industry & Business And Social Statistics 7
Website: biastatistics.statistics.unpad.ac.id
Published by Departemen Statistika FMIPA Universitas Padjadjaran
Gambar 8. Hasil testing
IV. KESIMPULAN
Kesimpulan yang didapat dari penelitian ini adalah:
1. Aplikasi program klasifikasi berbasis CNN dengan hasil pengujian pada sistem dan
aplikasi CNN digunakan untuk mengenali objek unggas, yaitu ayam dan bebek.
2. Penambahan dataset yang digunakan untuk training dengan resolusi gambar yang
bagus dapat membuat model yang dipakai lebih baik dan mengurangi overfitting.
3. Capaian akurasi dan presisi sistem klasifikasi terhadap penganalan unggas dengan 30
iterasi mencapai 89%.
DAFTAR PUSTAKA
[1] Afif, H. A, “Membuat klasifikasi gambar (images), menggunakan keras-tensorflow
(tf.keras) di Python,” Medium.com. https://medium.com/.
[2] A.Karpathy, ''CS231n Convolutional Neural Network for Visual Recognition,'' Stanford
University, [Online].Available: http://cs231m.github.io/.
[3] E. P, I. S., Wijaya, A. Y., & Soelaiman, R, “Klasifikasi Citra Menggunakan
Convolutional Neural Network (Cnn) pada Caltech 101,” JURNAL TEKNIK ITS, vol.5,
No.1, A65-A69, 2016.
[4] Juliansyah, S., & Laksito, A. D, “Klasifikasi Citra Buah Pir Menggunakan
Convolutional Neural Networks,” InComTech: Jurnal Telekomunikasi dan Komputer,
vol.11, No.1, 65-72, April 2021.
[5] K. Fukushima, "Neocognitron: A Self-Organizing Neural Network Model for a Mechanism
of Pattern Recognition Unaffected by Shift in Position," Biological Cybernetics,1980
[6] Peryanto, A., Yudhana, A., & Umar, R, “Klasifikasi Citra Menggunakan Convolutional
Neural Network dan K Fold Cross Validation,” Journal of Applied Informatics and
Computing (JAIC), vol.4, No.1, pp. 45-51, Juli 2020.
[7] Riyadi, A. S., Wardhani, I. P., & Widayati, S, “Klasifikasi citra anjing dan kucing
menggunakan metode convolutional neural network (CNN),” Teknologi Informasi dan
Komunikasi STI&K, pp. 85, 28 Agustus 2021.
[8] Wahyu, R, “https://medium.com/@rismitawahyu/deep-learning-object-detection
menggunakan-tensorflow-dan-metode-convolutional-neural-network-cnn-9c09267474e3,”
https://medium.com/.
8 Jurnal Statistika Teori dan Aplikasi: Biomedics, Industry & Business And Social Statistics
Website: biastatistics.statistics.unpad.ac.id
Published by Departemen Statistika FMIPA Universitas Padjadjaran