Disusun Oleh:
Disusun Oleh:
ii
LEMBAR PENGESAHAN
PENERAPAN CONVOLUTIONAL NEURAL NETWORK DALAM
PENGKLASIFIKASIAN CITRA GAMBAR JAMUR BERACUN
Disusun Oleh:
NIM. 11160930000114
Menyetujui,
Pembimbing I Pembimbing II
Mengetahui,
NIP. 197303252009012001
iii
LEMBAR PENGESAHAN UJIAN
Menyetujui,
Penguji I Penguji II
Pembimbing I Pembimbing II
Mengetahui,
Dekan Ketua
Fakultas Sains dan Teknologi Program Studi Sistem Informasi
Husni Teja Sukmana, S.T., M.Sc, Ph.D. Dr. Qurrotul Aini, M.T.
NIP. 197710302001121003 NIP. 197303252009012001
iv
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR – BENAR HASIL
v
ABSTRAK
Kata Kunci : Convolutional Neural Network (CNN), Jamur, Artificial Intelligence (AI), Deep
learning.
V Bab + 79 halaman + xiii halaman + 27 Gambar + 7 Tabel + 30 Daftar Pustaka (2011-2022)
+ Lampiran
vi
KATA PENGANTAR
Puji syukur kehadirat Allah SWT yang telah melimpahkan rahmat dan karunia-Nya sehingga
Penulis dapat menyelesaikan skripsi ini dengan baik dan tepat waktu. Tak lupa pula kami
kirimkan shalawat serta salam kepada junjungan Nabi Besar Muhammad SAW. Beserta
keluarganya, para sahabatnya, dan seluruh ummatnya yang senantiasa istiqomah hingga akhir
zaman.
Skripsi ini disusun sebagai salah satu Syarat untuk mendapatkan gelar Sarjana di
Program gelar sarjana komputer (S.Kom) pada jurusan Sistem Informasi, Skripsi ini disusun
berdasarkan keingintahuan peneliti dibidang Sistem Informasi dalam Convolutional Neural
Network Dalam Pengklasifikasian Citra Gambar Jamur Beracun.
Pada kesempatan ini penulis ingin mengucapkan banyak terima kasih kepada seluruh
pihak yang telah mendukung mulai dari awal penelitian hingga penulisan skripsi berhasil
diselesaikan. Adapun rasa terima kasih tersebut saya tujukan kepada :
1. Bapak Husni Teja Sukama, S.T, M.Sc, Ph.D selaku Dekan Fakultas Sains dan
Teknologi UIN Syarif Hidayatullah Jakarta.
2. Ibu Dr. Qurrotul Aini, M.T. selaku Kepala Program Studi Jurusan Sistem Informasi
Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta.
3. Bapak Ir. Eri Rustamaji, MBA selaku Sekretaris Program Studi Jurusan Sistem
Informasi Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta.
4. Bapak Zainul Arham, M.Si selaku dosen pembimbing pertama selaku dosen
pembimbing pertama dan Bapak Nuryasin, M.Kom selaku dosen pembimbing kedua.
Terima kasih atas segala waktu, tenaga, dan pikiran yang diberikan kepada penulis
selama proses penulisan skripsi.
5. Orang tua saya yang telah membimbing saya dari saya balita hingga dapat Menyusun
tugas akhir ini, terlebih kepada ibu saya yang berjuang tanpa henti untuk dapat
membimbing saya hingga menjadi saya sekarang ini.
6. Dosen – dosen Program Studi Sistem Informasi yang telah memberikan ilmu yang
bermanfaat selama perkuliahan.
7. Dan pihak – pihak terkait lainnya yang telah berjasa selama penelitian hingga
penyelesaian skripsi yang tidak bisa penulis sebutkan satu persatu, tanpa mengurangi
rasa hormat, penulis ucapkan terima kasih.
vii
8. Rekan-rekan Mahasiswa di Universitas Syarif Hidayatullah dan semua pihak yang turut
memberi dukungan yang tidak dapat disebutkan satupersatu.
9. Fadhillah Nursantoso, Galang Pratama dan Halim Aziz Marwan sebagai teman
berdiskusi dan bersendau gurau.
Penulis sadar bahwa skripsi ini masih belum sempurna dan dapat menjadi lebih baik
lagi. Dengan demikian, penulis sangat mengharapkan kritik dan saran dari para pembaca
sekalian untuk penulisan laporan yang lebih baik. Akhir kata, semoga skripsi ini bermanfaat
bagi para pembaca sekalian. Aamiin.
viii
DAFTAR ISI
LEMBAR PENGESAHAN UJIAN .......................................................................................... iv
DAFTAR ISI............................................................................................................................. ix
ix
2.7 Artificial Neural Network ........................................................................................ 17
2.13 Tools......................................................................................................................... 34
2.13.2 Tensorflow........................................................................................................ 35
x
3.4 Kerangka Berpikir .................................................................................................... 53
4.7 Pengujian.................................................................................................................. 74
xi
DAFTAR GAMBAR
Gambar 1.1 Amanita Phalloides (kanan) dan Amanita Rubescens (kiri)................................. 2
Gambar 1.2 Jumlah Korban Kasus Keracunan Jamur Liar di Indonesia pada 2010-2020 ...... 3
Gambar 2. 1 Contoh digital dan representasinya di dalam matriks (Tyagi, 2018a) ............... 11
Gambar 2. 2 Perbedaan Pemograman Gambar Tradisional dan Machine Learning (Sumber:
Francois, 2017) ........................................................................................................................ 14
Gambar 2. 3 Lingkup deep learning di dalam machine learning dan artificial intelligence. . 16
Gambar 2. 4 Arsitektur dasar Perceptron atau neuron ........................................................... 18
Gambar 2. 5 Perceptron dalam mengklasifikasi fungsi AND dan OR. .................................. 20
Gambar 2. 6 Multilayer perceptron ........................................................................................ 21
Gambar 2. 7 Multilayer perceptron dalam menyelesaikan permasalahan nonlinier .............. 21
Gambar 2. 8 Gambaran arsitektur deep neural network. ........................................................ 24
Gambar 2. 9 Gambaran arsitektur CNN (phrabu 2018). ........................................................ 25
Gambar 2. 10 Data input dan 3 × 3 kernel (Teye Brown & Zgallai, 2020). .......................... 27
Gambar 2. 11 Alur Proses Konvolusi ..................................................................................... 27
Gambar 2. 12 Hasil Output proses konvolusi......................................................................... 28
Gambar 2. 13 Contoh 8 × 8, Input Data. ............................................................................... 29
Gambar 2. 14 Input data 8 × 8, dengan padding = 1. .......................................................... 29
Gambar 2. 15 Contoh sebuah dua dimensi gambar ................................................................ 30
Gambar 2. 16 Proses max pooling.......................................................................................... 30
Gambar 2. 17 Hasil output max pooling. ............................................................................... 31
Gambar 2. 18 Proses Flatten................................................................................................... 31
Gambar 2. 19 Fully connected neural network. ..................................................................... 32
Gambar 3. 1 Kerangka Berfikir .............................................................................................. 55
Gambar 3. 2 Tahapan Penelitian ............................................................................................. 56
Gambar 4. 1 Flowchart Membuat Model ............................................................................... 59
Gambar 4. 2 Grafik Performa Model ..................................................................................... 68
Gambar 4. 3 Grafik Perbandingan Parameter Model ............................................................. 71
Gambar 4. 4 Desain Interface aplikasi ................................................................................... 72
Gambar 4. 5 Alur proses Implementasi dan Pengujian Aplikasi ........................................... 73
Gambar 4. 6 Hasil Akurasi Benar dalam Pengklasifikasian Gambar..................................... 71
Gambar 4. 7 Hasil Akurasi Salah dalam Pengklasifikasian Gambar ..................................... 72
xii
DAFTAR TABEL
Tabel 2. 1 Perbandingan Penelitian Sejenis Deep Learning ................................................... 39
Tabel 3. 1 Waktu dan Tempat Pelaksanaan ............................................................................. 47
Tabel 3. 2 Software dan Hardware yang digunakan ................................................................ 48
Tabel 3. 3 Pembagian Dataset ................................................................................................. 49
Tabel 3. 4 Dataset Citra Jamur ................................................................................................ 53
Tabel 4. 1 Tabel Perbandingan Evaluasi Parameter ................................................................ 69
Tabel 4. 2 Tabel Pengujian ...................................................................................................... 75
xiii
BAB I
PENDAHULUAN
1
Phalloides. Namun bentuk jamur-jamur tersebut dapat menyerupai jamur yang
dapat dikonsumsi. Hal tersebut dapat membahayakan apabila manusia salah
memilih jamur yang ditemui di alam bebas.
Jamur beracun sangat sulit dibedakan dengan jamur konsumsi oleh orang
awam dikarenakan banyaknya spesies jamur di alam liar, kurangnya pengetahuan
tentang jamur, dan kurangnya ahli dalam bidang jamur sehingga pengidentifikasian
jamur sulit dilakukan, namun jamur beracun dapat diidentifikasi berdasarkan
karakteristik ukuran, warna, bentuk tudung jamur serta batang dari jamur tersebut.
Oleh karena itu dibutuhkan suatu solusi untuk mempermudah dalam mengenali,
membandingkan, dan mempelajari secara otomatis sktruktur jamur menggunakan
data citra agar dapat ditemukan perbedaan antara jamur yang dapat dikonsumsi dan
beracun. Keracunan dikarenakan mengkonsumsi jamur menjadi masalah kesehatan.
Banyak di negara keracunan jamur mengakitbatkan kematian, meskipun secara
global kematian yang diakibatkan keracunan jamur tidak diketahui, namun
2
spekulasi dari para ahli setidaknya 100 kematian/tahun, dan ini berupa estimasi
rendah karena di Eropa saja terjadi kematian setidaknya 100 kematian/tahun (White
et al., 2019). Di Indonesia telah terjadi 76 kasus keracunan dalam kurun waktu 10
tahun (I. Putra, 2022) karena mengkonsumsi jamur liar, 1,64% korban dilaporkan
meninggal dunia dan sisanya selamat setelah mendapatkan perawatan khusus.
Gambar 2.2 Jumlah Korban Kasus Keracunan Jamur Liar di Indonesia pada
2010-2020
Pesatnya perkembangan kekuatan pengolahaan serta komputasi data
smartphone dan komputer menyediakan berbagai macam platfrom untuk manusia
dalam menyelesaikan pekerjaan dengan lebih cepat. Dengan pesatnya kekuatan
pengelolaan dan komputasi data perangkat seluler sangat memungkinkan untuk
terciptanya sebuah komputasi yang dapat mengelolah informasi dari suatu citra atau
gambar untuk pengenalan objek secara otomatis. Computer vision meliputi metode
untuk memperoleh, memproses, menganalisis dan memahami gambar digital, dan
ekstraksi data dimensi tinggi dari dunia nyata untuk menghasilkan informasi
numerik atau simbolik, misalnya dalam bentuk keputusan (Klette, 2014).
3
seperti gambar dan suara, Deep learning terinspirasi dari jaringan neuron yang
berada di otak manusia dan dinamakan perceptron. Salah satu metode deep
learning yang saat ini memiliki hasil paling signifikan dalam pengenalan citra
adalah Convolutional Neural Network (CNN) (Fukushima 1980). Convolutional
Neural Network atau CNN merupakan salah satu metode deep learning, dimana
metode tersebut telah banyak diaplikasikan contohnya pada self driving car,
pengenalan gambar, analisis gambar medis, dan lainnya. Convolutional Neural
Network atau CNN dibandingkan dengan tipe jaringan syaraf tiruan yang lain CNN
memiliki keunggulan dalam memproses gambar dikarenakan penggunaan
convolutional layer yaitu layer yang berfungsi untuk mempelajari suatu fitur
tertentu yang kompleks pada gambar contohnya bentuk telinga pada foto kucing,
atau bentuk sayap pada foto burung.
4
1.2 Identifikasi Masalah
Berdasarkan latar belakang permasalahan maka dapat disimpulkan rumusan
masalah yang diangkat dalam penelitian ini.
1. Belum banyak orang yang mengetahui jenis – jenis jamur beracun dan tidak
beracun sehingga banyaknya orang keracunan akibat memakan jamur yang
beracun.
2. Perkembangan pesat dalam kekuatan pengolahan dan komputasi data pada
perangkat seluler dan komputer memberikan peluang untuk
mengembangkan solusi teknologi yang dapat membantu dalam
mengidentifikasi dan mempelajari struktur jamur secara otomatis
menggunakan data citra.
5
1. Data yang digunakan merupakan hasil dari web scrapping dengan dua jenis
kategori jamur, yaitu dapat dimakan, dan beracun dengan total gambar
sebanyak 3000.
2. Bahasa pemograman yang digunakan adalah python versi 3.9.1 sedangkan
library yang digunakan adalah tensorflow dan menggunakan keras sebagai
high-level interface.
3. Hasil keakurasi dalam pengklasifikasian data yang sudah dilihat diatas 50%
dikatakan baik.
1.5 Tujuan
Tugas Akhir ini memiliki dua tujuan, antara lain sebagia berikut :
1.5.1 Tujuan Umum
1. Mengurangi risiko keracunan jamur dengan memberikan solusi teknologi yang
dapat membantu masyarakat awam dalam mengenali jamur beracun dengan
lebih akurat dan efisien.
2. Mendorong penggunaan teknologi komputasi, seperti computer vision dan deep
learning, dalam bidang pengenalan jamur dan penerapan solusi otomatis untuk
permasalahan terkait.
1.5.2 Tujuan Khusus
1. Menerapkan Convolutional Neural Network (CNN) untuk pengklasifikasian
jamur beracun.
2. Menganalisa performa model deep learning menggunakan CNN untuk
klafisikasi citra gambar jamur beracun.
1.6 Manfaat Penelitian
1.6.1 Bagi Mahasiswa
1. Dapat mempelajari lebih dalam mengenai perancangan dan pembuatan sistem
pengklasifikasi jamur beracun.
2. Dapat menerapkan ilmu-ilmu yang sudah didapat selama perkuliahan.
3. Membandingkan teori yang telah didapat saat kuliah dengan masalah yang
sebenarnya.
6
1.6.2 Bagi Universitas
1. Memberikan gambaran tentang penguasaan materi pelajaran yang diperoleh
selama masa perkuliahan.
2. Menambah referensi literatur kepustakaan Universitas Islam Negeri Syarif
Hidayatullah Jakarta.
3. Bahan referensi bagi mahasiswa Universitas Islam Negeri Syarif Hidayatullah
Jakarta dalam pengembangan penelitian lain terkait penulisan ini.
1.6.3 Bagi Pembaca
1. Memberikan pengetahuan terkait bagaimana cara pengaplikasian metode deep
learning dalam permasalahan sehari-hari.
2. Memberikan pengetahuan terkait perancangan dan pembuatan model CNN
untuk mengklasifikasi citra gambar.
1.7 Metodologi
1.7.1 Metode Pengumpulan Data
Metode pengumpulan data yang digunakan oleh penulis adalah studi literatur
dan pustaka. Penulis mengumpulkan data dari buku atau literatur sejenis yang
berkaitan dengan penelitian sebagai referensi penulis dalam menyelesaikan skripsi
ini. Selain data penelitian berupa literatur, penelitian ini membutuhkan dataset
gambar jamur yang penulis kumpulkan dari internet. Dengan menggunakan teknik
augmentasi penulis akan memperbanyak dan memperbesar ukuran dataset.
7
Bab I PENDAHULUAN
Bab Pendahuluan berisi latar belakang, rumusan masalah, batasan
masalah, tujuan pembuatan tugas akhir, manfaat tugas akhir,
metodologi yang digunakan, dan sistematika penulisan buku tugas
akhir.
8
BAB II
LANDASAN TEORI
2.1 Jamur
Jamur atau cendawan merupakan bagian berdaging dari fungi yang terdiri
dari rangkaian spora yang berbentuk seperti payung, biasanya tumbuh diatas tanah,
kayu lapuk, dan elemen organik lainnya.Jamur adalah fungi (Preechasuk et al.,
2019), namun orang sering menafsirkan semua fungi adalah jamur, hanya beberapa
fungi spesies dari filum basidiomycota yang dinamakan jamur.
Jamur merupakan organisme eukariotik atau organisme yang memiliki
membran inti sel, selain itu jamur memiliki daur ulang saat berkembang biak
dengan seksual dan aseksual dalam hidupnya, dinding jamur terdiri atas benang-
benang tunggal yang disebut hifa (Amin & Firyal, 2019). Jaringan hifa merupakan
dinding berbentuk silinder yang berisi satu atau lebih dari sel dengan bantuan
penyangga polimer kitin sangat berbeda dengan tumbuhan yang memiliki polimer
penyangga selulosa (Firdaushi & Basah, 2018). Daur hidup dari jamur dimulai dari
spora; jika jamur tersebut tumbuh di iklim yang tepat, spora tersebut menjadi hifa
dan benang jamur, hifa dan benang tersebut kemudian akan bergabung bersama
menjadi payung jamur. Jika payung jamur bertambah tua, payung itu akan
menghasilkan spora yang menjadi hifa dan menjadi jamur, masing-masing
(Preechasuk et al., 2019). Jamur memperoleh makan secara heterotrof dengan
mengambil makan dari bahan organik. Bahan-bahan organik yang ada di sekitar
tempat tumbuhnya diubah menjadi molekul-molekul sederhana dengan bantuan
enzim yang dihasilkan oleh hifa, untuk selanjutnya molekul-molekul sederhana
diserap langsung oleh hifa (Amin & Firyal, 2019).
Jamur digunakan secara luas dalam masakan (terutama makanan Cina,
Korea, Eropa, dan Jepang). Meskipun bukan daging atau sayuran, jamur diakui
sebagai ”daging” dari dunia sayuran (Alkronz et al., 2019). Banyak dari spesies
jamur yang dimakan sebagai sumber makanan utama yang sifnifikan terutama
jamur liar atau jamur ladang yang dipertimbangkan sebagai makanan khas di
beberapa negara atau kebudayaan. Namun, banyak dari jamur tersebut beracun jika
dimakan dan membedakan spesies jamur yang “dapat dimakan” dan “beracun”
9
seringkali sulit. Selain itu, beberapa spesies “dapat dimakan” namun dapat beracun
untuk beberapa orang dalam keadaan tertentu yang dimana tidak bisa diprediksi
(White et al., 2019). Melalui penelitian tersebut, dapat disimpulkan bahwa jamur
merupakan sumber makanan yang digunakan secara luas namun, untuk
membedakan spesies jamur “dapat dimakan” dengan “beracun” di alam liar itu
sulit.
2.2 Pengklasifikasian
Klasifikasi berasal dari kata Latin "classis" atau proses pengelompokan,
artinya mengumpulkan beda atau entitas yang sama serta memisahkan benda atau
entitas yang tidak sama (Basuki, 1991). Menurut Hamakonda (Hamakonda, 1978)
klasifikasi adalah pengelompokan yang sistematis dari objek, gagasan, buku atau
benda-benda lain ke dalam kelas atau golongan tertentu berdasarkan ciri-ciri yang
sama.
Klasifikasi dapat diartikan sebagai pengelompokan suatu benda, objek,
entitas, gagasan dan lain-lain ke dalam suatu kelas yang memiliki ciri-ciri khusus
yang sama.
10
merepresentasikan red (R), green (G), dan blue (B) kombinasi dari ketiga warna
tersebut menghasilkan gambar berwarna.
11
intelligence adalah sistem yang menampilkan perilaku cerdas dengan menganalisa
lingkungan mereka dan mengambil tindakan dengan beberapa tingkat otonomi
untuk mencapai tujuan tertentu. Artificial intelligence adalah teknik yang
digunakan untuk meniru kecerdasan yang dimiliki oleh makhluk hidup maupun
benda mati untuk menyelesaikan sebuah persoalan (Hania & Abu, 2017).
Artificial intelligence dapat diartikan menjadi teknik-teknik dalam bentuk
sistem untuk mempelajari dan menganalisa lingkungan sekitarnya atau dalam
menyelesaikan suatu permasalahan seperti khalayaknya makhluk hidup. Menurut
penelitian (Hania & Abu, 2017) dalam bidang artificial intelligence ada tiga metode
yang dikembangkan.
1. Fuzzy Logic (FL). Mesin dan komputer beroperasi menggunakan
sistem binari yaitu dengan 0 dan 1, dengan menimplementasikan
bagaimana makhluk hidup membuat keputusan yang tidak kaku ke
dalam keputusan binari. Sehingga muncul sistem logika fuzzy yang
tidak kaku. Penggunaan logika fuzzy dapat ditemukan dalam alat
sehari-hari contohnya pendingin ruangan, mesin cuci, penyedot
debu, etc.
2. Evolutionary Computing (EC). Teknik yang terinspirasi dari evolusi
biologi menggunakan set dari individu untuk menyelesaikan suatu
masalah setelah itu individu akan diseleksi dari populasi jika solusi
yang dihasilkan dari individu tersebut tidak kurang diinginkan, dan
menghasilkan perbedaan kecil yang acak di dalam pengertian
biologi, populasi yang menghasilkan solusi tersebut merupakan
subjek dari seleksi alam dan mutasi. Hasilnya, populasi tersebut
dapat berevolusi untuk meningkatkan kecocokan, dalam hal ini
kecocokan fungsi dari algoritma. Penggunaan dari metode ini
contohnya jaringan komunikasi, optimasi parameter, bioinformasi,
penjadwalan, dan logistik.
3. Machine Learning (ML) merupakan metode yang dimana mesin
yang mempelajari sesuatu dan meningkatkan kemampuannya secara
otomatis dengan menggunakan pengalaman dan penggunaan data.
12
Seperti khalayaknya manusia dan makhluk hidup tumbuh
mempelajari sesuatu, metode ini terinspirasi dari mahluk hidup
untuk meningkatkan kemampuannya dalam mempelajari dan
mengeneralisasi.
13
halnya dengan sistem machine learning, sistem ini harus mempelajari bagaimana
memahami sesuatu hanya berdasarkan data input dan output.
14
1. Supervised Learning, algoritma yang dinamakan “supervised”
berarti mereka dapat belajar dalam membuat prediksi dikarenakan
menggunakan contoh dari input data, dan model tersebut diawasi
lalu dikoreksi menggunakan algoritma untuk membuat prediksi
yang lebih baik. Berikut adalah contoh algoritma menggunakan
metode supervised learning yaitu k-Nearest Neighboors, linear
regression, logistic regression, support vector machine, decision
trees, random forest, neural networks.
2. Unsupervised Learning, di dalam unsupervised learning hanya ada
data input dan output untuk algoritma operasikan. Algoritma harus
belajar memahami data tanpa bantuan ataupun pengawas untuk
mengkoreksi model yang dihasilkan. Berikut adalah contoh
algoritma menggunakan metode unsupervised learning, yaitu k-
means, DBSCAN, hierarchical cluster analysis, one-class SVM,
isolation forest, locally-linear embedding, eclat.
3. Reinforcement learning, penggunaan reinforcement learning
mengharuskan algoritma menggunakan lingkungan dari pada
dataset yang sudah ditetapkan, melainkan tujuan atau serangkaian
tujuan yang harus dicapai oleh sistem learning algoritma yang
dinamakan agen, tindakan yang mungkin mereka lakukan, dan
umpan balik tentang kinerja agen tersebut dalam mencapai tujuan.
Berikut merupakan contoh algoritma menggunakan metode
reinforcement learning, yaitu monte carlo, Q-learning, SARSA,
DRN, DDPG, A3C, NAF, TRPO.
15
pembelajaran. Deep learning merupakan subset dari metode machine learning
berdasarkan konsep artificial neural network dengan penggunaan representation
learning.
16
neurobiology, tapi meskipun beberapa konsep utama dari deep learning
dikembangkan dengan menggunakan visualisasi dari pengertian kita tentang otak,
model deep learning bukanlah model dari otak. Tidak ada bukti bahwa otak itu
mengimplementasikan mekanisme pembelajaran yang digunakan oleh model deep
learning.
feature, dan 𝑦 𝜖 {−1, +1} berisikan observed value yang merupakan hasil yang
ingin kita prediksi. Penggunaan perceptron contohnya yaitu, dalam sistem
pendeteksi kecurangan pada penggunaan kartu kredit, untuk feature adalah semua
properti dapat diambil dari satu set transaksi seperti jumlah uang dan frekuensi
transaksi. Apakah transaksi tersebut curang atau tidak mungkin representasi yang
tepat untuk observed value.
17
Gambar 2. 4 Arsitektur dasar Perceptron atau neuron
node output. Untuk mencari y di node output terdapat fungsi linier yang dapat di
gambarkan dengan fungsi berikut.
𝑑
𝑦 = 𝑠𝑖𝑔𝑛{∑ 𝑤𝑗 𝑥𝑗 + 𝑏}
𝑗=1
18
mengalami penyesuaian melalui proses perhitungan matematika sampai tercapai
nilai parameter yang sesuai.
Weight yang dapat diartikan bobot merupakan suatu nilai yang dimiliki oleh
hubungan antar node, weight dapat merepresentasikan seberapa kuat koneksi antara
kedua neuron. Dalam kata lain, weight menentukan seberapa kuat pengaruh input
terhadap output.
Bias merupakan bilangan konstan, merupakan input tambahan ke layer
berikutnya yang selalu mempunyai nilai yang dapat berubah-ubah agar lebih sesuai
dengan data. Bias tidak dipengaruhi oleh layer sebelumnya tetapi bias memiliki
koneksi keluar dengan bobot mereka sendiri. Dengan adanya bias meskipun input
dari neuron nol masih akan ada aktivasi di neuron.
Sebagian besar algoritma deep learning menggunakan optimasi dari
beberapa jenis. Optimasi mengacu pada proses yang meminimalisasi atau
memaksimalkan suatu fungsi f(x) dengan mengubah x. Menurut Goodfellow et al.,
(Goodfellow et al., 2016) fungsi yang kita inginkan untuk meminimalkan atau
memaksimalkan dinamakan objective function atau criterion. Ketika kita
meminimalkan, kita juga bisa menyebutnya sebagai cost function, loss function,
atau error function. Selain itu digunakan juga optimasi yang bernama gradient
descent, menurut Wanto et al., (Wanto et al., 2020) gradient descent merupakan
sebuah cara pengoptimalan urutan iteratif pertama untuk menemukan fungsi
minimum, untuk menemukan lokal minimum dari gradient descent, harus
mengambil langkah-langkah yang seimbang dengan fungsi gradien negatif pada
titik saat ini.
Perceptron sangat baik dalam memecahkan masalah linier seperti
mengklasifikasi curang tidaknya suatu transaksi kartu kredit, pengklasifikasian
masalah tersebut dapat kita sebut fungsi boolean. Nilai output adalah 1 jika nilai
fungsi yang sesuai benar dan 0 sebaliknya fungsi tersebut dinamakan fungsi
boolean AND dan OR. Fungsi boolean dapat dengan mudah diklasifikasikan secara
linier menggunakan perceptron namun, untuk permasalahan fungsi boolean XOR
tidak dapat diselesaikan dengan perceptron (Alpaydin , 2020).
19
Gambar 2. 5 Perceptron dalam mengklasifikasi fungsi AND dan OR.
Perceptron hanya memiliki satu layer weigth yang hanya bisa
memperkirakan fungsi linier dari input dan tidak dapat menyelesaikan fungsi XOR,
yang dimana diskriminan yang diperkirakan tidak linier. Demikian pula, perceptron
tidak dapat digunakan untuk penyelesaian masalah regresi linier. Kelemahannya ini
yang menyebabkan perceptron tidak dapat digunakan pada permasalahan
klasifikasi yang kompleks namun, dengan penggunaan dua perceptron di susun
secara paralel lalu fungsi nonlinier pada output perceptron pertama kita dapat
membentuk jaringan yang disebut multilayer perceptron.
20
Gambar 2. 6 Multilayer perceptron
Multilayer perceptron merupakan fungsi matematika yang memetakan
beberapa kumpulan nilai input ke nilai output. Fungsi tersebut disusun dari banyak
fungsi yang sederhana (Goodfellow et al., 2016). Multilayer perceptron termasuk
dalam keluarga multilayer neural network dikarenakan mempunyai layer
intermediate atau hidden layer di antara layer input dan output.
21
2.8 Backpropagation
Menurut Siregar & Wanto (Siregar & Wanto, 2017) , backpropagation
merupakan algoritma yang digunakan untuk mengembangkan jaringan syaraf
tiruan. Algoritma backpropagation digunakan pada training, metode training
backpropagation melibatkan pemasukan dengan laju maju dari pola input training,
penghitungan dari error setelah itu algoritma menyesuaikan weigth yang ada di
dalam neural network.
Backward propagation of errors (Backpropagation), metode ini digunakan
secara luas dalam menghitung turunan yang berada di dalam deep feedforward
neural network. Backpropagation membentuk bagian yang penting di algoritma
supervised learning untuk melatih feedfordward neural network, seperti stochastic
gradient descent.
Menurut Aggarwal (Aggarwal, 2018) algoritma backpropagation
mempunyai dua fase, yaitu:
1. Fase maju: Pada fase ini, input dataset dimasukan kedalam neural network.
Ini menghasilkan alur komputasi maju menggunakan set weigth saat ini.
Hasil output yang diprediksi dapat dibandingkan dengan dataset dan hasil
dari loss function yang berhubungan dengan hasil output yang dihitung.
2. Fase mundur: Tujuan utama dari fase mundur adalah untuk mempelajari
gradien dari loss function sehubungan dengan weigth yang berbeda dengan
menggunakan rangkaian aturan dari turunan kalkulus. Gradien ini
digunakan untuk memperbaharui weigth. Sejak gradien ini mempelajarinya
dengan alur mundur, dimulai dari node output, pembelajaran ini disebut
sebagai fase mundur.
2.9 Multilayer Neural Network
Multilayer neural network merupakan artificial neural network yang
memiliki layer komputasi lebih dari satu (Aggarwal, 2018). Perceptron berisikan
dari layer input dan output. Layer input meneruskan data ke layer output, dan semua
perhitungannya dapat terlihat oleh pengguna. Multilayer neural network memiliki
beberapa layer komputasi; layer intermediate yang berada di antara layer input dan
output dapat juga disebut sebagai hidden layer dikarenakan perhitungan yang
22
berada di layer tersebut tidak dapat terlihat oleh pengguna. Arsitektur spesifik dari
multilayer neural network disebut sebagai feedforward networks atau jaringan
syaraf umpan maju, karena layer komputasi yang sukses melakukan perhitungan
akan diteruskan ke maju dari input ke output.
Meskipun multilayer neural network membuat abstraksi tingkat tinggi yang
lebih baik dibanding algoritma dan metode yang lain. Penggunaan multilayer
neural network dapat ditingkatkan dengan meningkatkan jumlah hidden layer agar
menjadi deep neural network yang mempunyai tingkat efektifitas yang lebih tinggi
dalam mengabstrak data mentah.
23
Gambar 2. 8 Gambaran arsitektur deep neural network.
Deep neural network dapat mengekstrak abstraksi tingkat tinggi dari data
mentah. Banyak dari sistem state-of-the-art dalam computer vision mendapatkan
kesuksesannya dari kemampuan deep neural network yang dapat mengekstrak
abstraksi tingkat tinggi (Mahmood et al., 2017).
Meskipun deep neural network memiliki berbagai macam kelebihan
dibanding algoritma yang lain namun, deep neural network memiliki kelemahan
terhadap memproses data visual seperti citra gambar atau video dikarenakan
jaringan kesulitan dalam memahami dimensional data. Oleh karena itu
dikembangkan Convolutional neural network (CNN) untuk memproses dan
memahami dimensi dari data mentah.
24
paling sedikit memiliki satu jaringan layer yang berupa layer convolutional. CNN
digunakan untuk data yang berupa grid seperti citra gambar, video, dan time series
data. Arsitektur CNN mengasumsikan data input berbentuk dua dimensi contohnya
seperti gambar, dan karena itu dioptimalkan untuk menangani data tersebut. Neural
network biasa tidak dapat diskalakan dengan baik untuk gambar penuh karena
jumlah parameter yang dapat dipelajari bisa sangat besar.
Convolution neural network merupakan neural network yang menggunakan
konvolusi untuk melakukan perkalian matriks paling sedikit satu di dalam layer
(Goodfellow et al., 2016). Nama “convolutional neural network” mengartikan
neural network tersebut menggunakan operasi matematika yang bernama
konvolusi. Konvolusi merupakan jenis operasi linier yang spesial.
Convolutional neural network terdiri dari layer convolutional dan layer
pooling secara bergantian lalu pada akhir jaringan terdapat deep neural network
untuk mengklasifikasikan data (Mahmood et al., 2017). Layer input dapat bersisi
data berdimensi tiga di dalam gambar dengan format three-channel (RGB). Layer
convolutional menggunakan filter dua dimensi yang membelit lebar dan tinggi dari
layer input menghasilkan dua dimensi dari respon filter pada setiap posisi spasial.
25
2. Subsampling layer, merupakan sebuah layer mereduksi ukuran sebuah
data citra. Dalam layer ini juga bertujuan untuk meningkatkan invariasi
posisi dari fitur.
3. Fully connected layer, layer yang bertujuan digunakan untuk
melakukan transformasi pada dimensi data agar data dapat
diklasifikasikan secara linier. Layer ini merupakan yang biasa
digunakan dalam penerapan multilayer perceptron.
2.11.1 Convolutional layer
Menurut Teye Brown & Zgallai (Teye Brown & Zgallai, 2020) convolution
layer didasari oleh operasi matematika yang bernama konvolusi. Konvolusi
merupakan tipe operasi linier yang beroperasi dari dua fungsi f, 𝑔, dimana kedua
fungsi mempunyai argumen real-value. Hasilnya merupakan fungsi baru, h, dimana
data memperlihatkan cakupan fungsi mana yang mempengaruhi bentuk dari yang
lain. Konvolusi dari 𝑓 dan 𝑔 dapat di ekspresikan dengan 𝑓 ∗ 𝑔, sedangkan
hasilnya adalah h, ini yang disebut sebagai konvolusi.
∞
ℎ(𝑡) = (𝑓(𝑡) ∗ 𝑔(𝑡)) = ∫ 𝑓(𝜏)𝑔(𝑡 − 𝜏)𝑑𝜏
−∞
26
Gambar 2. 10 Data input dan 3 × 3 kernel (Teye Brown & Zgallai, 2020).
27
enam baris dari value. Setelah itu kita geser kebawah filter tersebut dan
mengulangin perhitungan diatas.
2.11.2 Padding
Menurut Teye Brown & Zgallai (Teye Brown & Zgallai, 2020) padding
merupakan penyertaan suatu layer piksel tambahan biasanya data dua dimensi.
Layer tambahan ini terdiri dari piksel yang bernilai 0. Padding berguna untuk
menjaga dimensionalitas dari data. Misalkan terdapat grid terdiri dari 8 × 8 array
diilustrasikan pada gambar berikut.
28
Gambar 2. 13 Contoh 8 × 8, Input Data.
Satu layer padding ditambahkan, ukuran data akan bertambah menjadi
10 × 10 seperti pada ilustrasi 2.17. Hal ini sangat penting untuk CNN karena pada
saat melewati layer convolutional maka terjadi pengurangan dimensi gambar. Jika
kita memiliki tiga atau lebih layer convolutional didalam jaringan. Setelah beberapa
layer convolutional, ukuran array berkurang. Untuk convolutional neural network
yang besar, ukuran dari data input dapat berkurang sampai ukurannya terlalu kecil.
Selain itu ada efek lain dari pengurangan dimensi data input di dalam layer
convolutional yaitu, pengurangan informasi pada edge dari data. Pada dasarnya
hasil dari layer convolutional mengakibatkan potensi hilangnya informasi dari data
input. Dengan menambahkan layer padding, layer yang berada dibawah layer
padding dapat diperiksa, dan dapat di konvolusi. Penggunaan layer padding dapat
meningkatkan akurasi model CNN.
29
2.11.3 Subsampling Layer / Pooling Layer
Layer subsampling merupakan layer yang melakukan downsampling input
data, menyebabkan penurunan dimensi data. Tipe utama dari pooling yaitu, max
pooling dimana nilai maksimum di dalam localized grid dipilih lalu keseluruhan
nilai grid diubah menjadi nilai tersebut. Pada skema average pooling, nilai rata-rata
yang berada di localized grid dipilih lalu keseluruhan nilai grid diubah dengan nilai
tersebut.
Pertimbangkan berikut ini ada sebuah array berukuran 4×4
merepresentasikan sebuah gambar dua dimensi seperti pada ilustrasi 2.12.
30
Gambar 2. 17 Hasil output max pooling.
31
dari jaringan diintrepretasikan sebagai nilai probabilitas yang dapat diartikan
seberapa yakin jaringan dalam mengklasifikasi objek atau gambar tersebut.
32
lainnya, serta penanganan data yang tidak relevan atau tidak valid. Data cleaning
juga melibatkan pemahaman tentang karakteristik data, format data, metadata, dan
aturan bisnis yang berkaitan dengan data tersebut. Selama proses ini, data yang
tidak lengkap, tidak akurat, atau tidak relevan dapat diperbaiki, diimputasi, atau
dihapus, sehingga memastikan bahwa data yang digunakan dalam analisis atau
pengambilan keputusan adalah data yang berkualitas dan dapat dipercaya.
2.12.2 Data Reduction
Menurut William H. Inmon, data reduction (pengurangan data) mengacu
pada proses mengurangi volume atau jumlah rekaman dalam sebuah dataset sambil
mempertahankan integritas dan konten informasi keseluruhan. Tujuan dari data
reduction adalah untuk mengatasi kompleksitas dan skala data yang besar, sehingga
memudahkan analisis dan pemrosesan data lebih lanjut. Proses data reduction
melibatkan langkah-langkah seperti pemilihan fitur yang relevan, pengelompokan
atau penggabungan data berdasarkan kriteria tertentu, penggunaan teknik sampling
untuk mengambil subset data yang representatif, atau ekstraksi fitur untuk
mengurangi dimensi data. Dalam pengurangan data, data yang tidak relevan,
redundan, atau berlebihan dapat dihilangkan atau digabungkan menjadi satu,
sehingga menghasilkan dataset yang lebih ringkas namun masih mempertahankan
informasi penting yang diperlukan. Hal ini membantu meningkatkan efisiensi
komputasi, mengurangi waktu dan sumber daya yang dibutuhkan untuk analisis,
serta memudahkan interpretasi dan pemahaman terhadap data yang dianalisis. Data
reduction dapat menjadi solusi ketika data yang ada terlalu besar atau kompleks
untuk dianalisis secara langsung, dan memungkinkan fokus pada data yang paling
relevan dan signifikan untuk tujuan analisis atau pengambilan keputusan.
2.12.3 Data Editing
Data editing (pengeditan data) adalah proses mengidentifikasi dan
memperbaiki kesalahan, inkonsistensi, dan ketidakakuratan dalam data yang telah
dikumpulkan. Proses ini melibatkan penelusuran dan deteksi kesalahan seperti
kesalahan pengetikan, data yang tidak konsisten, atau informasi yang tidak akurat.
Setelah kesalahan-kesalahan tersebut diidentifikasi, langkah-langkah koreksi dan
penyesuaian dilakukan untuk memperbaiki data agar menjadi lebih valid, konsisten,
33
dan akurat. Data editing sangat penting untuk memastikan bahwa data yang
digunakan dalam analisis atau pengambilan keputusan memiliki kualitas yang baik
dan dapat diandalkan (Inmon & Linstedt, 2015).
2.12.4 Data Augmentation
Menurut Jason Brownlee, data augmentation adalah proses menciptakan
variasi data baru dengan melakukan transformasi pada data yang sudah ada.
Transformasi ini dapat berupa perubahan posisi, rotasi, pemotongan, pemutaran,
pemisahan, penerapan filter, atau manipulasi lainnya. Tujuan dari data
augmentation adalah untuk meningkatkan jumlah dan variasi data yang tersedia
untuk pelatihan model machine learning. Dengan memperluas dataset dengan data
baru yang dihasilkan melalui augmentasi, model dapat belajar dengan lebih baik
dan memiliki kemampuan generalisasi yang lebih baik dalam menghadapi data baru
yang belum pernah dilihat sebelumnya. Data augmentation dapat membantu
mengatasi masalah kurangnya data pelatihan dan meningkatkan kinerja model
dalam tugas pengenalan pola dan klasifikasi.
2.13 Tools
2.13.1 Python
Python merupaan bahasa pemograman dengan filosofi intepreted high-level
general-purpose yang dapat diartikan mudah ditafsirkan, bahasa yang mudah dibaca
manusia, dan dapat digunakan di berbagai platform. Didesain dengan
mengutamakan kemudahan dalam dipakai, penulisan kode yang dapat dibaca
dengan jelas dan mudah untuk di kembangkan untuk projek yang besar. Dalam
sejarahnya, bahasa pemograman python dirilis pertama kali oleh Guido Van
Rossum di Scitchting Mathematisch Centrum Belanda pada tahun 1991. Sebab
mula dia menggunakan nama Python dikarenakan ia penggemar grup komdei
Inggris bernama Monty Python (Wahyono, 2018).
34
2.13.2 Tensorflow
Tensorflow merupakan library open source untuk machine learning dan
artificial intelligence. Digunakan di berbagai rentang kebutuhan ML dan AI namun
digunakan khusus untuk training dari deep neural network. Tensorflow dapat
digunakan dengan berbagai macam bahasa pemograman seperti python, java,
javascript, dan C++.
Dikembangkan oleh Google Brain pada tahun 2011 dikembangkan dari
sistem DistBelief yang merupakan sistem internal Google Brain yang digunakan
untuk mempelajari deep neural network. Sistem kedua Google Brain dinamakan
tensorflow, versi 1.0 dirilis pada tahun 2017, dinamakan tensorflow diambil dari
kata tensor yang merupakan proses komputasi array multidimensi. Tensorflow
sangat fleksibel dapat digunakan di berbagai macam platform seperti desktop,
mobile, web-based, dan komputer edge.
Tensorflow 2.0 dirilis pada tahun 2019, didesain agar pengeksekusian yang
lebih sederhana, mudah digunakan, dan meningkatkan produktivitas developer.
Tensorflow 2.0 dikembangkan dengan pengintegrasian ketat dengan keras agar
dapat mengimplementasi eager execution dan pythonic function execution.
2.13.3 Tensorflow Lite
Tensorflow lite merupakan machine learning framework yang dioptimasi
untuk penggunaan di perangkat mobile, embedded, dan edge. Dengan
menggunakan model tensorflow kita dapat mengkonversi model tersebut menjadi
model tensorflow lite agar model tersebut optimal dalam penggunaan perangkat
daya rendah. Tensorflow lite menggunakan format flat buffer. Penggunaan flat
buffer memberikan kelebihan dibandingkan tensorflow yang menggunakan
protocol buffer yaitu kecilnya ukuran kode dan peningkatan kecepatan inference
(komputasi statistik) yang memungkinkan tensorflow lite untuk eksekusi yang lebih
efisien pada perangkat dengan proses komputasi dan memori yang terbatas.
2.13.4 Keras
Keras merupakan open source library yang menyediakan interface tingkat
tinggi untuk bahasa python dalam membuat artificial neural network. Keras
didesain untuk memudahkan dan mempercepat pembuatan atau eksperimen
35
artificial neural network, berfokus pada ramah penggunaan, modular, dan dapat di
ekstensi.
Keras berisi beberapa implementasi komponen dasar neural network yang
umum digunakan seperti layer, objectives, activation function, dan optimizers,
selain itu keras juga berisi tools untuk mengaugmentasi dan mengubah bentuk citra
gambar dalam memperbesar ukuran datasets.
2.13.5 Jupyter Notebook
Jupyter notebook merupakan aplikasi open source berbasis web yang dapat
digunakan oleh data scientist untuk membuat dan membagikan dokumen yang
mengintegrasikan live code, perhitungan, output komputasi, visualisasi, dan
multimedia lainnya. Jupyter notebook dapat digunakan untuk berbagai macam
pekerjaan data scientist seperti analisis data, visualisasi data, model statistik,
machine learning, deep learning, dan lainnya. Jupyter notebook memiliki dua
komponen utama yaitu kernel dan cell.
Kernel merupakan backend dari jupyter notebook yang mengeksekusi code
yang berada di dokumen notebook. Jupyter notebook terdiri dari beberapa cells.
Sebuah Cell merupakan input multibaris yang kontennya dapat di eksekusi dengan
menggunakan keyboard shorcut shitft + Enter, pengeksekusian cell sangat
bergantung pada tipe cell tersebut. Ada tiga tipe cell, yaitu:
1. Code cell, di dalam cell ini merupakan input untuk menulis sintaks
python yang ketika dieksekusi akan dikirim ke kernel lalu hasil
komputasi akan ditampilkan pada notebook cell output.
2. Markdown cell, untuk menulis penjelasan atau mendeskripsikan
suatu code cell.
3. Raw cell, raw cell merupakan tempat untuk menulis output secara
langsung.
2.13.1 Android
Android merupakan operasi sistem mobile yang berasal dari kernel linux
yang sudah dimodifikasi, yang didesain untuk perangkat layar sentuh seperti
36
smartphone dan tablet. Berikut merupakan pendapat dari para ahli mengenai
Android:
1. Menurut Herlinah & Musliadi (Herlinah & Musliadi, 2019),
Android merupakan sistem operasi yang banyak digunakan pada
perangkat bergerak yang dewasa ini sangat terkenal dan populer.
Android juga merupakan platform pemograman yang
dikembangkkan oleh Google untuk ponsel cerdas dan perangkat
seluler lainnya, misalnya tablet. Android bisa berjalan di berberapa
macam perangkat yang dikembangkan oleh banyak vendor ponsel
cerdas yang berbeda.
2. Android merupakan tumpukan perangkat lunak untuk perangkat
mobile yang berisikan dari sistem operasi, middleware, dan key
application. Berbagai macam komponen dari android disusun secara
tingkat, dengan aplikasi disusun di layer paling atas, sedangkan
kernel linux berada di susunan paling bawah. Android juga dibangun
menggunakan berbagai macam kumpulan library dari bahasa C++,
C, dan java yang dapat digunakan oleh pengembang untuk
membangun aplikasi android (Kharisma, 2011).
3. Android merupakan sistem operasi untuk telepon seluler yang
berbasis linux. Android terbuka bagi para platform untuk
menciptakan aplikasi mereka sendiri untuk digunakan oleh
bermacam peranti bergerak. Android umum digunakan di
smartphone dan juga table PC (H, 2012).
37
kelebihan dan kelemahan penelitian tersebut lalu dijadikan sebagai referensi penulis
dalam melakukan penelitiannya.
Penulis dapat menggunakan jurnal atau skripsi sebagai sumber studi
literatur yang berkatian dengan computer vision seperti object detection, object
classification atau object recognition yang menggunakan convolutional neural
network. Berikut merupakan kumpulan dari literatur sejenis.
38
Tabel 2. 1 Perbandingan Penelitian Sejenis Deep Learning
− Fungsi 69%
Aktifasi
ReLu
− memiliki 2
layer
konvolusi, 2
39
layer
pooling, dan
3 hidden
layer
2 (Rachar Deteksi CNN 17600 Gestur − Menggunaka − Didapatkan 2 − Penjelasan − Banyak
di, Gambar Gestur (16000 Kosakata n model model yang yang sangat ilustrasi dari
2020) Kosakata data Bahasa MobileNet berbeda yaitu mendetail penelitian
Bahasa Isyarat training Indonesia dan Single pengklasifikasia − Jumlah tidak terlihat
Indonesia dan Shot n 8 kelas dataset yang jelas
Dengan CNN 1600 Detection dengan akurasi sangat besar
data (SSD) sebesar 93% − Diimplement
testing) − Input dan model asikan pada
jaringan pengklasifikasia platform
berukuran n 24 kelas mobile
300x300x3 dengan akurasi
− Memiliki 23 68%
layer − Ditemukannya
konvolusi , 1 hubungan antara
jumlah kelas
40
layer dan sifat gestur
pooling, 1 dengan tingkat
layer FCNN, akurasi
dan 1 layer pengujian real
softmax time
3 (Salsabi Penerapan CNN 1200 Wayang − Input − Akurasi dari − Melakukan − Jaringan tidak
la, Deep Learning (1080 Citra jaringan prediksi percobaan diimplementas
2018) Menggunakan training Punakawan berukuran meningkat jika dengan ikan kedalam
CNN Untuk dan 120 46x46x3 data training mengubah suatu platform
Klasifikasi testing) − Memiliki 2 lebih besar rasio data agar mudah
Wayang Citra layer − Dengan training digunakan
Punakawan konvolusi, 2 menggunakan − Ilustrasi pada
layer 90% data penelitian
pooling, dan training dan sangan
2 layer 10% data beresolusi
FCNN testing, sistem rendah yang
menghasilkan menyebabkan
tingkat gambar sulit
keakurasian dilihat
41
paling baik
sebesar 91.6%
4 (Arrofi Implementasi CNN 500 Tanaman − Ukuran input − Meskipun pada − Ditamplikan − Tidak ada
qoh & Metode CNN (350 pisang, jaringan saat testing data ilustrasi penjelasan
Harinta Untuk data padi, adalah jaringan visualisasi tentang
ka, Klasifikasi training bawang 227x227x3 memiliki tingkat feature hardware
2018) Tanaman Pada dan 150 merah, − Memiliki 5 akurasi yang extraction yang
Citra Resolusi data cabe, dan layer besar yakni pada proses digunakan
Tinggi testing) kelapa konvolusi, 3 82% namun, konvolusi dalam
layer masih sering − Data yang penelitian
pooling, dan terjadi digunakan
3 layer kesalahan dalam cukup unik
FCNN pengenalan yaitu gambar
objek berkelas dari drone
pisang menjadi UAV
kelas kelapa
− Kondisi foto
dari UAV
sangat
42
berpengaruh
pada proses
pengenalan
objek
− Semakin besar
jumlah data
training maka
semakin besar
tingkat akurasi
jaringan
5 (Danuk Indonesia CNN 520 Candi − Ukuran input − Epoch − Konsep dasar − Jaringan tidak
usumo Ancient data jaringan berjumlah 50 jaringan diimplementas
et al., Temple training 150x150 merupakan nilai syaraf ikan ke dalam
2017) Classification 225 − Memiliki 6 yang paling dijabarkan suatu platform
Using CNN data layer optimal untuk dengan baik
testing konvolusi, 3 jaringan − Jaringan di
layer − Jaringan dapat train
pooling, dan mengklasifikasi
43
1 layer kan candi menggunaka
FCNN dengan tingkat n GPU
akurasi cukup
tinggi yaitu
80%
6 (Preech Image CNN 8556 Jamur − Input − Model dapat − Jaringan − Rasio data
asuk et Analysis of jaringan mengklasifikasi diimplement training dan
al., Mushroom berukuran kan jamur asikan ke data testing
2019) Types 96x96x3 tingkat akurasi dalam tidak ada
Classfication − Memiliki 3 yang baik yaitu aplikasi − Jaringan tidak
by CNN layer diatas 70% mobile di tes pada
convolusi, 3 − Penggunaan data yang
layer augmentasi belum pernah
pooling, dan citra yang dilihat
1 layer luas
FCNN
44
7 (Kausar Pure CNN: A CNN 55244 81 kelas − Input − Jaringan dapat − Membanding − Konsep Pure
et al., Framework for Buah- jaringan mengklasifikasi kan 3 model CNN yang
2018) Fruit buahan berukuran an 81 kelas jaringan dipelajari
Classification 100x100x3 buah-buahan CNN yang sangat baru
− Memiliki 7 dengan tingkat berbeda yaitu
layer akurasi yang Pure CNN,
konvolusi, 1 tinggi yaitu CNN +
layer pooling 98.8% FCNN, dan
tanpa layer CNN +
FCNN FCNN+
Dropout
− Dataset yang
sangat besar
45
Ketujuh penelitian yang disebutkan menunjukkan berbagai aplikasi
Convolutional Neural Network (CNN) dalam berbagai bidang. Penelitian tersebut
meliputi pengenalan wajah manusia, deteksi gestur kosakata dalam bahasa isyarat,
klasifikasi wayang Punakawan, klasifikasi tanaman pada citra resolusi tinggi,
klasifikasi bangunan candi kuno, analisis jenis jamur, dan klasifikasi buah-buahan.
Dalam setiap penelitian, CNN terbukti efektif dalam mengenali dan
mengklasifikasikan objek yang berbeda dengan tingkat akurasi yang tinggi.
Penelitian-penelitian ini memberikan kontribusi penting dalam pengembangan
teknologi pengenalan objek, pengolahan citra, dan analisis visual dalam konteks
yang beragam.
46
BAB III
METODOLOGI PENELITIAN
47
Tabel 3. 2 Software dan Hardware yang digunakan
Ram : 4 GB
Tensorflow lite
2. Pengumpulan Dataset
Tahap awal penelitian yaitu mencari gambar yang beredar di internet
dengan menggunakan web scrapping untuk mengumpulkan dataset yang berupa
gambar jamur di internet. Gambar-gambar tersebut terbagi menjadi 3 kelas
yaitu jamur dimakan, jamur tidak bisa dimakan, dan jamur beracun kemudian
dengan menggunakan teknik augmentasi gambar-gambar tersebut diperbanyak
agar jaringan dapat memahami dataset lebih baik. Dari hasil web scrapping
terkumpul sebanyak 3000 gambar jamur dari ketiga kelas jamur, setelah
48
augmentasi jumlah dataset menjadi 15206 gambar. Dengan split 80 : 20 maka
data training berjumlah 12165 dan data testing berjumlah 3041. Rincian dataset
dijelaskan dalam tabel berikut:
1 Agaricus Beracun - 0
2 Amanita Beracun – 0
49
3 Boletus Tidak Beracun - 1
4 Cortinarius Beracun - 0
50
5 Entoloma Beracun - 0
6 Exidia Beracun - 0
8 Inocybe Beracun - 0
51
9 Lactarius Tidak Beracun - 1
10 Pluteus Beracun - 0
52
3.3 Metode Penelitian
3.3.1 Metode Pengumpulan Data
Dalam melakukan penelitian, penulis menggunakan 2 metode untuk
mengumpulkan data yaitu:
A. Studi Puskata
Penulis menggunakan metode studi pustaka untuk mengumpulkan berbagai
informasi, fakta, teori, kasus, dan masalah yang berkaitan dengan metode
penelitian. Sumber yang penulis kumpulkan berupa data dan teori yang
didefinisikan di dalam jurnal atau buku yang terkait dengan penelitian yang
dilakukan penulis.
B. Observasi
Dengan menggunakan metode observasi, penulis dapat memperoleh data visual
yang kaya dan spesifik yang dapat digunakan sebagai dasar untuk
mengembangkan model pengklasifikasian berbasis Convolutional Neural
Network (CNN). Observasi memainkan peran penting dalam pengumpulan
data awal yang diperlukan untuk memahami karakteristik visual jamur beracun
dan membangun model yang efektif dalam pengklasifikasian.
53
tahapan perumusan masalah digunakan untuk mengidentifikasi masalah dari informasi
yang didapat dari tahap sebelumnya, lalu dirumuskan batasan dari permasalahan yang
ada untuk menjadi pedoman bagi penulis untuk mencapai tujuan dan solusi dari
penelitian yang dilakukan; (3) tahap studi pustaka berfungsi mendapatkan landasan
teori dari pembahasan yang dipermasalahkan, agar tergambar secara jelas oleh penulis
pengertian dari Artificial intelligence, Deep Learning, Convolutional Neural Network,
jamur, dan lain-lain; (4) tahap pemodelan berguna untuk membangun model deep
learning yang dimana kita melakukan proses training sehingga data dapat terklasifikasi
dan terdeteksi oleh mesin dengan metode CNN; (5) tahap pengujian berguna untuk
mengetahui hasil kinerja dari model klasifikasi yang dibuat pada tahap sebelumnya; (6)
tahap evaluasi digunakan untuk menggabungkan hasil dari analisis bermacam
pertanyaan, kriteria maupun standar tertentu yang berguna untuk mendapatkan
interpretasi perbandingan dari pemodelan. Pada Gambar 3.1 merupakan ilustrasi
kerangka berpikir yang penulis lakukan:
54
Gambar 3. 1 Kerangka Berfikir
55
3.5 Tahapan Penelitian
56
Berdasarkan langkah-langkah pada tahapan penelitian dijelaskan bahwa:
1. Langkah pertama diawali dengan studi pendahuluan yang didapatkan dari studi
literatur dan observasi.
2. Selanjutnya penulis mencari rumusan masalah dengan menggunakan beberapa
referensi dari permasalahan yang akan diteliti seperti deep learning, CNN, jamur,
dan deep shroms.
3. Tahapan ketiga penulis mengumpulkan data citra jamur yang menjadi objek
penelitiannya.
4. Pada tahapan data preprocessing penulis melakukan proses data cleaning, data
resizing, data augmentation, dan data labeling.
5. Tahap kelima, penulis melakukan konversi dataset citra gambar menjadi data yang
bisa dibaca oleh library tensorflow, setelah itu dilakukan proses training dimana
model mempelajari dataset tersebut yang memberikan output nilai evaluasi
training.
6. Penulis melakukan optimasi model dengan menggunakan nilai evaluasi model
penulis dapat menganalisa performa efektivitas dan efesiensi model kita setelah itu
penulis dapat mengkonfigurasi model agar mendapatkan model yang optimal.
Setelah mendapatkan model yang optimal kita konversi model tersebut menjadi
format tflite.
7. Lalu, penulis mengimplementasi model tflite ke aplikasi android
8. Kemudian, dengan menggunakan beberapa skenario penulis melakukan pengujian
dan mensimulasikan sehingga mendapatkan hasil yang diharapkan.
9. Terakhir, penulis mengambil kesimpulan dan saran dari penelitian yang telah
dilakukan.
57
BAB IV
Hasil Dan Pembahasan
58
Gambar 4. 1 Flowchart Membuat Model
4.2 Data Preprocessing
Dalam tahapan data preprocessing akan dilakukan berbagai macam teknik
untuk menganalisa dan memanipulasi input data, agar didapatkan input data yang
sesuai dengan bentuk input dari model jaringan syaraf tiruan yang dibuat, selain itu
pada tahapan ini berbagai data yang tidak memenuhi standar model seperti ukuran
gambar, kedalaman warna gambar, dan kecacatan gambar akan dibersihkan.
1. import os
2. from PIL import Image
3.
4. # Fungsi Mengecek Apakah File Tersebut Adalah File Gambar Atau Bukan
59
5. def is_image_file(filename):
6. return filename.lower().endswith(('.jpg', '.jpeg', '.png', '.gif',
'.bmp'))
7.
8. # Fungsi Untuk Mengecek File Gambar Tersebut Corrupted Atau Tidak
9. def is_image_corrupted(image_path):
10. print(image_path)
11. try:
12. im = Image.open(image_path)
13. im.verify()
14. im.close()
15. return False
16. except (IOError, OSError, Image.DecompressionBombError):
17. return True
18.
19. # Fungsi Untuk Menjalankan Loop Di Dalam Directory Dan Mengecek Apakah File
Tersebut Corrupt
20. def clean_image_dataset(dataset_dir):
21. # print(dataset_dir)
22. for root, dirs, files in os.walk(dataset_dir):
23. print(files)
24. for file in files:
25. # print(file)
26. if is_image_file(file):
27. image_path = os.path.join(root, file)
28. # print(image_path)
29. if is_image_corrupted(image_path):
30. os.remove(image_path)
31. print(f"Removed corrupted image: {image_path}")
32.
33.
34. clean_image_dataset(raw_edible_path)
35. clean_image_dataset(raw_poisonous_path)
36.
60
13. dirs = os.listdir(folder_path)
14. print(folder_path)
15. for item in dirs:
16. file_path = os.path.join(folder_path, item)
17. print(file_path)
18. if is_image_file(item):
19. new_file_path = '%s/resized_image_%s' % (output_dir, item)
20. print(new_file_path)
21. resize_photo(file_path, new_file_path)
22.
23. # Menghapus Data yg ada di folder output proses reduced
24. for f in os.listdir(reduced_poisonous_path):
25. os.remove(os.path.join(reduced_poisonous_path, f))
26. for f in os.listdir(reduced_edible_path):
27. os.remove(os.path.join(reduced_edible_path, f))
28.
29. # Fungsi gambar reducer dijalankan
30. photo_resizer(raw_poisonous_path, reduced_poisonous_path)
31. photo_resizer(raw_edible_path,reduced_edible_path)
1. import os
2. from PIL import Image
3. import imagehash
4.
5. def calculate_image_hash(image_path):
6. with Image.open(image_path) as img:
7. hash_value = imagehash.average_hash(img)
8. return str(hash_value)
9.
10. def detect_duplicate_images(directory):
11. image_hashes = {}
12. duplicate_images = []
13.
14. for root, dirs, files in os.walk(directory):
15. for file in files:
16. if is_image_file(file):
17. print(file)
18. image_path = os.path.join(root, file)
19. image_hash = calculate_image_hash(image_path)
20.
21. if image_hash in image_hashes:
22. duplicate_images.append((image_hashes[image_hash],
image_path))
23. else:
24. image_hashes[image_hash] = image_path
25.
26. # print(duplicate_images)
27. for image_path in duplicate_images:
28.
29. os.remove(image_path[1])
30. print(f"Deleted duplicate image: {image_path[1]}")
31.
32. # Menjalankan Fungsi Penghapusan Data Terduplikat
61
33. detect_duplicate_images(reduced_poisonous_path)
34. detect_duplicate_images(reduced_edible_path)
1. import tensorflow as tf
2. from tensorflow.keras.preprocessing.image import ImageDataGenerator
3. from PIL import Image
4. import os
5.
6. def augment_image(directory, output_dir):
7. # Set the path to your image dataset directory
8. dataset_dir = directory
9.
10.
11.
12. # Create an ImageDataGenerator object with augmentation configurations
13. datagen = ImageDataGenerator(
14. rotation_range=20, # Rotate images randomly within the range of -20
to +20 degrees
15. width_shift_range=0.2, # Shift images horizontally randomly by 20%
of the total width
16. height_shift_range=0.2, # Shift images vertically randomly by 20% of
the total height
17. shear_range=0.2, # Apply shear transformation randomly within the
range of -20 to +20 degrees
18. zoom_range=0.2, # Zoom images randomly within the range of 80% to
120%
19. horizontal_flip=True, # Flip images horizontally randomly
20. vertical_flip=True, # Flip images vertically randomly
21. fill_mode='nearest' # Fill any missing pixels with the nearest value
22. )
23.
24. # Get the list of image filenames in the dataset directory
25. image_files = [file for file in os.listdir(dataset_dir) if
is_image_file(file)]
26.
27. # Augment the images and save them to the output directory
28. for image_file in image_files:
29. image_path = os.path.join(dataset_dir, image_file)
30. print(image_path)
31. img = Image.open(image_path)
32. img = img.convert('RGB')
33. img_array = tf.keras.preprocessing.image.img_to_array(img)
34. img_array = img_array.reshape((1,) + img_array.shape)
35.
36. # Generate augmented images
37. i = 0
38. for batch in datagen.flow(img_array, batch_size=1,
save_to_dir=output_dir, save_prefix=image_file.split('.')[0], save_format='jpg'):
39. i += 1
62
40. if i >= 5: # Generate 5 augmented images for each original image
41. break
42.
43. # Menghapus Data yg ada di folder output augmentasi
44. for f in os.listdir(augmented_poisonous_path):
45. os.remove(os.path.join(augmented_poisonous_path, f))
46. for f in os.listdir(augmented_edible_path):
47. os.remove(os.path.join(augmented_edible_path, f))
48.
49. # Menjalankan Fungsi Augmentasi Gambar
50. augment_image(reduced_poisonous_path, augmented_poisonous_path)
51. augment_image(reduced_edible_path,augmented_edible_path)
52.
Setelah tahapan data preprocesing dataset yang memiliki total jumlah data ± 661
tiap kelas menjadi ± 3000 data.
1. import numpy as np
2. import matplotlib.pyplot as plt
3. import os
4. import cv2
5. import tensorflow as tf
6. import PIL
7. from tensorflow import keras
8. from tensorflow.keras import layers
63
berurutan dengan urutan folder tersebut. Berikut merupakan source code yang
penulis buat untuk melabelkan dataset.
1. DATADIR = r"C:\Users\Shidqi\GitHub\Skripsi\Skripsi\images"
2. CATEGORIES = ["edible", "poisonous"]
1. batch_size = 32
2.
3. train_ds = tf.keras.preprocessing.image_dataset_from_directory(
4. DATADIR,
5. validation_split=0.2,
6. subset='training',
7. seed=123,
8. image_size=(img_height,img_width),
9. batch_size=batch_size)
10.
11. val_ds = tf.keras.preprocessing.image_dataset_from_directory(
12. DATADIR,
13. validation_split=0.2,
14. subset='validation',
15. seed=123,
16. image_size=(img_height, img_width),
17. batch_size=batch_size)
18.
19.
20. // Hasil Output
21. // Found 15206 files belonging to 2 classes.
22. // Using 12165 files for training.
23. // Found 15206 files belonging to 2 classes.
24. // Using 3041 files for validation.
1. AUTOTUNE = tf.data.AUTOTUNE
2.
3. train_ds = train_ds.cache().shuffle(1000).prefetch(buffer_size=AUTOTUNE)
4. val_ds = val_ds.cache().shuffle(1000).prefetch(buffer_size=AUTOTUNE)
64
4.3.3 Arsitektur Model
Penulis membuat model neural network dengan arsitektur satu layer input,
tiga layer konvolusi, tiga layer pooling, dua fully-connected layer, dan satu layer
output yang mengeluarkan dua hasil klasifikasi yaitu, jamur beracun dan tidak
beracun namun, pada subbab berikutnya penulis akan bereksperimen dengan
berbagai parameter model agar mendapatkan model dengan performa klasifikasi
yang efektif.
1. num_of_output = 2
2.
3. model = tf.keras.models.Sequential([
4. layers.experimental.preprocessing.Rescaling(1./255,
input_shape=(img_height, img_width, 3)),
5. layers.Conv2D(16, 3, padding='same', activation='relu'),
6. layers.MaxPooling2D(),
7. layers.Conv2D(32, 3, padding='same', activation='relu'),
8. layers.MaxPooling2D(),
9. layers.Conv2D(64, 3, padding='same', activation='relu'),
10. layers.MaxPooling2D(),
11. layers.Flatten(),
12. layers.Dense(128, activation='relu'),
13. layers.Dense(128, activation='relu'),
14. layers.Dense(num_of_output)
15. ])
1. model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=1e-3),
2. loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
65
3. metrics=['accuracy'])
4. model.summary()
5. Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
rescaling_1 (Rescaling) (None, 180, 180, 3) 0
conv2d (Conv2D) (None, 180, 180, 16) 448
max_pooling2d (MaxPooling2D (None, 90, 90, 16) 0
)
conv2d_1 (Conv2D) (None, 90, 90, 32) 4640
max_pooling2d_1 (MaxPooling (None, 45, 45, 32) 0
2D)
conv2d_2 (Conv2D) (None, 45, 45, 64) 18496
max_pooling2d_2 (MaxPooling (None, 22, 22, 64) 0
2D)
flatten (Flatten) (None, 30976) 0
dense (Dense) (None, 128) 3965056
dense_1 (Dense) (None, 128) 16512
dense_2 (Dense) (None, 2) 258
=================================================================
Total params: 4,005,410
Trainable params: 4,005,410
Non-trainable params: 0
_________________________________________________________________
1. epochs = 10
2. history = model.fit(
train_ds,
validation_data=val_ds,
epochs=epochs)
66
tersebut dengan cara yang berbeda pada epoch selanjutnya namun, ketika model
tersebut berhasil maka akan menurunkan nilai loss. Epoch sendiri dapat
didefinisikan parameter yang menentukan berapa banyak algoritma pembelajaran
bekerja dalam keseluruhan dataset.
1. acc = history.history['accuracy']
2. val_acc = history.history['val_accuracy']
3. loss = history.history['loss']
4. val_loss = history.history['val_loss']
5. epochs_range = range(epochs)
6. plt.figure(figsize=(8, 8))
7. plt.subplot(1, 2, 1)
8. plt.plot(epochs_range, acc, label='Training Accuracy')
9. plt.plot(epochs_range, val_acc, label='Validation Accuracy')
10. plt.legend(loc='lower right')
11. plt.title('Training and Validation Accuracy')
12. plt.subplot(1, 2, 2)
13. plt.plot(epochs_range, loss, label='Training Loss')
14. plt.plot(epochs_range, val_loss, label='Validation Loss')
15. plt.legend(loc='upper right')
16. plt.title('Training and Validation Loss')
17. plt.show()
Output dari fungsi model.fit() dapat kita ambil nilai akurasi dan nilai loss
model sepanjang melakukan pembelajaran, dengan data tersebut kita dapat
membuat grafik untuk menampilkan performa model kita pada saat pembelajaran.
67
Gambar 4. 2 Grafik Performa Model
Jika dilihat dari grafik loss ketika sepanjang epoch bertambah nilai loss
training menurun namun nilai loss validation meningkat dan tidak adanya
generalisasi nilai loss training dengan validation maka dapat dikatakan model
tersebut mengalami overfitting.
68
dataset, untuk underfitting dapat dikarenakan oleh penggunaan arsitektur model
yang terlalu sederhana untuk memproses dataset.
69
10 0.001 32 0.78 0.43 0.76 0.52
70
Gambar 4. 3 Grafik Perbandingan Parameter Model
71
4.5 Perancangan Aplikasi
4.5.1 Perancangan User Interface
Berikut merupakan desain user interface aplikasi android.
72
4.6 Alur Proses Pengujian
Pada tahap ini dijelaskan alur proses perancangan dan pengembangan
aplikasi android, digunakan platform android dikarenakan kemudahan
mengembangkan aplikasi dan platform ini bersifat open source. Adapun proses
implementasi dan pengujuan dijelaskan pada Gambar 4.5.
73
2. Model yang sudah dikonversi dari format .tf menjadi .tflite di import
kedalam android studio lalu dilampirkan di folder yang bernama ml. Selain
itu kita import library tensorflow dan tensorflow-gpu agar dapat
meningkatkan performa aplikasi dalam mengklasifikasi objek.
4.7 Pengujian
Penulis menggunakan sistematika pengujian kemampuan model yang sudah
diimplementasikan pada mobile device digunakan oleh (Rachardi, 2020) dalam
penelitiannya. Pengujian dilakukan menggunakan 20 citra gambar untuk masing-
masing label, citra gambar tersebut tidak terdapat di dalam dataset akan tetapi citra
gambar tersebut harus memiliki spesies yang sama dengan yang terdapat di dalam
dataset. Dengan mengarahkan smartphone ke layar yang menampilkan citra gambar
yang kita uji.
74
Gambar 4. 6 Hasil Akurasi Benar dalam Pengklasifikasian Gambar
Beracun 20 14 6 70%
Dapat
20 9 11 45%
Dimakan
75
4.8 Interpretasi
Berdasarkan dari proses pengujian pengklasifikasian citra gambar jamur
beracun menggunakan metode Convolutional Neural Network pada 20 citra gambar
dari 2 kelas yang berbeda, penulis mendapatkan hasil sebesar 57% pada Tabel 4.2.
Hal ini dapat dibuktikan pada penelitian yang dilakukan penulis bahwa
hyperparameter sangat berpengaruh pada performa model saat melakukan
klasifikasi citra gambar, namun penulis tidak dapat membuktikan kedua poin yang
lain karena keterbatasan waktu dan sumber daya.
Metode
DCNN CNN CNN
76
berjalan di mobile device, meskipun tingkat keakurasian model lebih rendah
dibandingkan dengan model yang berjalan di desktop namun dikarenakan model
diimplementasikan di mobile device secara realtime menggunakan kamera
smartphone hal ini memudahkan orang awam dalam mengklasifikasikan jamur
yang berada di alam liar.
77
BAB V
Kesimpulan Dan Saran
5.1 Kesimpulan
Berdasarkan Pembahasan yang sudah diuraikan, maka dapat ditarik
kesimpulan sebagai berikut:
1. Pada saat training Model CNN digunakan input parameter dengan panjang citra
gambar 180 piksel dan lebar 180 piksel, dengan 3 spektrum warna R,G,B.
Dataset yang digunakan untuk proses training sejumlah 3000 citra gambar,
dataset tersebut telah diaugmentasi untuk meningkatkan performa model.
Model menghasilkan tingkat akurasi sebesar 57.5% yang artinya dapat
digunakan untuk mempermudah pengklasifikasian antara jamur beracun dan
tidak beracun.
2. Tingkat generalisasi model dipengaruhi oleh seberapa besar ukuran batch
dataset, jumlah epoch dan learning rate.
3. Pada metode yang digunakan berbasis mobile menghasilkan performa model
pengklasifikasian jamur beracun lebih tinggi dibandingkan dengan saat
mengklasifikasi jamur dapat dimakan.
5.2 Saran
Berdasarkan hasil dari penelitian yang telah dilakukan, penulis memiliki
beberapa saran yang perlu ditimbangkan baik untuk penelitian selanjutnya, yaitu
sebagai berikut:
78
2. Membandingkan model ini dengan state of the art pre-trained model, yaitu
model yang sudah di train oleh orang lain serta menggunakan dataset yang jauh
lebih besar, model tersebut merupakan model-model yang memiliki performa
tinggi contohnya seperti COCA, ResNet, EfficientNet, ImageNet-22k, dll.
3. Meskipun penelitian ini dalam implementasi model ke android sudah
menggunakan graphical processing unit untuk harware acceleration untuk
klasifikasi citra, kecepatan klasifikasi dapat ditingkatkan dengan menggunakan
AI accelerator seperti neural engine dan tensor processing unit yang didesain
spesifik untuk menyelesaikan tugas machine learning, AI accelerator tersebut
sekarang mudah ditemukan tertanam pada smartphone model-model terbaru.
79
DAFTAR PUSTAKA
Alkronz, E. S., Moghayer, K. A., Meimeh, M., Gazzaz, M., Abu-Nasser, B. S., &
Abu-Naser, S. S. (2019). Prediction of Whether Mushroom is Edible or
Poisonous Using Back-Propagation Neural Network. International Journal
of Academic and Applied Research (IJAAR), 3(2), 1–8.
Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
Hania, A., & Abu. (2017). Mengenal Artificial Intelligence, Machine Learning,
Neural Network, dan Deep Learning. Jurnal Teknologi Indonesia.
Helm, J. M., Swiergosz, A. M., Haeberle, H. S., Karnuta, J. M., Schaffer, J. L.,
Krebs, V. E., Spitzer, A. I., & Ramkumar, P. N. (2020). Machine Learning
and Artificial Intelligence: Definitions, Applications, and Future Directions.
Current Reviews in Musculoskeletal Medicine, 13(1), 69–76.
https://doi.org/10.1007/s12178-020-09600-8
Kausar, A., Sharif, M., Park, J., & Shin, D. R. (2018). Pure-CNN: A Framework
for Fruit Images Classification. 2018 International Conference on
Computational Science and Computational Intelligence (CSCI), 404–408.
https://doi.org/10.1109/CSCI46756.2018.00082
Ketwongsa, W., Boonlue, S., & Kokaew, U. (2022). A New Deep Learning
Model for the Classification of Poisonous and Edible Mushrooms Based on
Improved AlexNet Convolutional Neural Network. Applied Sciences, 12(7).
https://doi.org/10.3390/app12073409
Mahmood, A., Bennamoun, M., An, S., Sohel, F., Boussaid, F., Hovey, R.,
Kendrick, G., & Fisher, R. B. (2017). Chapter 21 - Deep Learning for Coral
Classification (P. Samui, S. Sekhar, & V. E. B. T.-H. of N. C. Balas, Eds.;
pp. 383–401). Academic Press. https://doi.org/https://doi.org/10.1016/B978-
0-12-811318-9.00021-1
Preechasuk, J., Chaowalit, O., Pensiri, F., & Visutsak, P. (2019). Image Analysis
of Mushroom Types Classification by Convolution Neural Networks.
https://doi.org/10.1145/3375959.3375982
Teye Brown, J., & Zgallai, W. (2020). Chapter 5 - Deep EEG: Deep learning in
biomedical signal processing with EEG applications. In W. B. T.-B. S. P. and
A. I. in H. Zgallai (Ed.), Developments in Biomedical Engineering and
Bioelectronics (pp. 113–151). Academic Press.
https://doi.org/https://doi.org/10.1016/B978-0-12-818946-7.00005-6
Wanto, A., Na`am, J., & Mesran, M. (2020). Analisis Penurunan Gradien dengan
Kombinasi Fungsi Aktivasi pada Algoritma JST untuk Pencarian Akurasi
Terbaik. Media Informatika Budidarma.
White, J., Weinstein, S. A., De Haro, L., Bédry, R., Schaper, A., Rumack, B. H.,
& Zilker, T. (2019). Mushroom poisoning: A proposed new clinical
classification. Toxicon, 157, 53–65.
https://doi.org/https://doi.org/10.1016/j.toxicon.2018.11.007
Witten, I. H., Frank, E., & Hall, M. A. (2011). Data Mining: Practical Machine
Learning Tools and Techniques (3rd ed.). Morgan Kaufmann Publishers Inc.