Anda di halaman 1dari 8

BIAStatistics: Jurnal Statistika Teori dan Aplikasi: Biomedics, Industry & Business And Social Statistics

Edisi: Special Issue (2): Hal: 1–8


Website: biastatistics.unpad.ac.id
ISSN xxxx-xxxx (online) ISSN 1907-6274 (print)

Penerapan Convolutional Neural Network (CNN) terhadap


Klasifikasi Jenis Unggas

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%.

Kata kunci: Conlutional Neural Network, Keras-Tensorflow, Klasifikasi, Unggas

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.

II. METODE PENELITIAN


2.1 Dataset
Dataset dikumpulkan untuk digunakan sebagai bahan juga acuan dalam
penelitian. Data disini juga termasuk pengumpulan data mentah atau data set yang
digunakan untuk proses pengenalan citra. Pada penelitian ini menggunakan 50 gambar
ayam dan juga 50 gambar bebek yang berbeda.
2.2 Convolutional Neural Network (CNN)
Convolutional Neutral Network (CNN) termasuk kedalam salah satu metode di
dalam Deep Learning yang banyak digunakan untuk menyelesaikan berbagai
permasalahan yang berkaitan dengan object detection dan image classification. CNN
mengindikasikan bahwa jaringan tersebut menggunakan operasi matematika yang disebut
konvolusi yang merupakan sebuah operasi linear. Secara teknis, convolutional network
terdiri dari beberapa tahap. Input dan output dari masing – masing tahap adalah berupa
beberapa array yang disebut peta fitur. Masing – masing tahap terdiri dari tiga layer, yaitu
convolution layer, activation layer, dan pooling layer.
• Convolution layer: Merupakan layer yang pertama. Layer ini berfungsi untuk
menerima input dambar langsung pada arsitektur. Convolution layer melakukan operasi
konvolusi pada output yang merupakan proses utama yang mendasari di CNN.
Tujuannya adalah untuk mengekstraksi fitur dari citra input[6].
• Activation layer: Activation function adalah sebuah node yang ditambahan diakhir
output dari setiap jaringan neural yang digunakan untuk menentukan output neural
network. Fungsi aktivasi terletak sesudah proses perhitungan konvolusi untuk
menghasilkan suatu pola fitur. Terdapat beberapa macam activation function antara
lain fungsi sigmoid, tanh, Rectifird Liniear Unit, Leaky ReLU, dan Parametric
ReLU.
• Pooling layer: Pooling merupakan pengurangan ukuran matriks dengan menggunakan
operasi pooling sehingga proses pooling bertujuan untuk mengurang spasial dan
mengurangi banyak parameter[6]. Ada dua jenis pooling yaitu average pooling dan
max pooling. Pada average pooling, nilai yang digunakan adalah nilai rata – rata,
sedangkan pada max pooling nilai yang digunakan adalah nilai maksimal.
2.3 Preprocessing
Sebelum melakukan tahap training atau testing model, terlebih dahulu
dilakukan preprocessing. Pada tahap ini dilakukan persiapan data mentah yang akan
diolah. Kemudian pada tahap ini juga data akan dilakukan proses seleksi, yaitu
membagikan data berupa data training dan data validasi dari dataset yang telah disiapkan
lalu dilakukan juga proses resize, augmentasi, dan normalisasi[1][4]. Resize adalah
mengubah ukuran citra untuk menyesuaikan agar dapat dilakukantraining atau testing.

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.

2.6 Proses Perhitungan Akurasi


Selanjutnya, setelah mendapatkan hasil pada proses testing, dilakukan proses
perhitungan. Proses perhitungan akurasi ini bertujuan untuk mengukur keberhasilan
model dari CNN. Digunakan akurasi yang merupakan variabel untuk mempresentasikan
kinerja[1][4]. Berikut merupakan rumus yang digunakan untuk menghitung akurasi (1).
𝑇𝑜𝑡𝑎𝑙 𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑐𝑜𝑟𝑟𝑒𝑐𝑡 𝑐𝑙𝑎𝑠𝑠𝑖𝑓𝑖𝑐𝑎𝑡𝑖𝑜𝑛
𝑂𝑣𝑒𝑟𝑎𝑙𝑙 𝑎𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑇𝑜𝑡𝑎𝑙 𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑇𝑒𝑠𝑡𝑖𝑛𝑔 𝐸𝑛𝑡𝑟𝑖𝑒𝑠
(1)

III. HASIL DAN PEMBAHASAN


3.1 Pengumpulan Dataset
Pengumpulan data set dilakukan sebagai bahan untuk proses pengenalan jenis
unggas berdasarkan gambar. Pada penelitian ini digunakan 50 gambar ayam dan juga 50
gambar bebek yang berbeda, masing-masing sudah dalam bentuk format jpg dan
dimasukan ke dalam folder gdrive yang sudah disediakan.

Data Latih Validasi


jumlah data train tiap kelas
jumlah gambar Ayam: 50
jumlah gambar Bebek: 50
Gambar 2. Folder dataset

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.

Jumlah All ayam : 50


Jumlah Train ayam: 45
Jumlah Val ayam : 5
Gambar 3. Pembagian data

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.

Gambar 4. Flow data

3.2.3 Mentransformasikan data generator menjadi tf.data


Pada proses ini kita akan melakukan transformasi variabel train_generator dan lainnya
menjadi tf data karena tf.data merupakan tipe variabel generator yang cocok dengan
tf.keras sehingga sangat optimal dalam pembacaan data yang dilakukan dalam
proses training dibandingkan hanya menggunakan generator dari keras itu sendiri.

3.2.4 Model CNN


Bisa kita lihat bahwa top layer yang kita definisikan sudah masuk kedalam model
dan model bisa kita compile sehingga dapat digunakan untuk training.

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",

3.2.5 Compile Model


Pada proses ini kita menyusun model menjadi siap dilakukan proses training.

model.compile(loss = 'categorical_crossentropy',
optimizer = 'Adam',
metrics = ['accuracy']

3.3 Training Model

Gambar 5. Training Model

Pada proses training menggunakan 30 epoch memberikan hasil bahwa untuk


iterasi ke-30 mengahsilkan akurasi pada data training adalah 0.89 dan nilai lossnya adalah
0.32, Kemudian untuk data validasinya adalah 0.9 dan nilai lossnya adalah 0.438.

Gambar 6. Training & validiation 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.

Gambar 7. Training & validation accuracy

3.4 Hasil Proses Testing


Setelah model yang sudah dilatih telah berhasil dimuat. maka selanjutnya
adalah melakukan prediksi terhadap sebuah gambar.

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

Di mana, pada perintah di atas kita membuka image/citra. Kemudian, kita


melakukan preprocess imagenya menjadi sebuah numpy.array yang kemudian direshape
menjadi sebuah tensor. Setelah itu memprediksi termasuk unggas apakah gambar
tersebut.

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

Anda mungkin juga menyukai