Anda di halaman 1dari 97

PENERAPAN CONVOLUTIONAL NEURAL NETWORK DALAM

PENGKLASIFIKASIAN CITRA GAMBAR JAMUR BERACUN

Disusun Oleh:

Shidqi Akram Hauzan


11160930000114

PROGRAM STUDI SISTEM INFORMASI


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2023 M / 1444 H
HALAMAN JUDUL

PENERAPAN CONVOLUTIONAL NEURAL NETWORK DALAM


PENGKLASIFIKASIAN CITRA GAMBAR JAMUR BERACUN

Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Komputer


Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta

Disusun Oleh:

Shidqi Akram Hauzan


11160930000114

PROGRAM STUDI SISTEM INFORMASI


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2023 M / 1444 H

ii
LEMBAR PENGESAHAN
PENERAPAN CONVOLUTIONAL NEURAL NETWORK DALAM
PENGKLASIFIKASIAN CITRA GAMBAR JAMUR BERACUN

Disusun Oleh:

SHIDQI AKRAM HAUZAN

NIM. 11160930000114

Menyetujui,

Pembimbing I Pembimbing II

Zainul Arham, M.Si Nuryasin, M.Kom


NIP. 197407302007101002 NIP: 197607152011011005

Mengetahui,

Ketua Program Studi Sistem Informasi Fakultas Sains dan Teknologi

Universitas Islam Negeri Syarif Hidayatullah Jakarta

Dr. Qurrotul Aini, M.T.

NIP. 197303252009012001

iii
LEMBAR PENGESAHAN UJIAN

Skripsi dengan judul “Penerapan Convolutional Neural Network Dalam Pengklasifikasian


Citra Gambar Jamur Beracun” yang ditulis oleh Shidqi Akram Hauzan dengan NIM
11160930000114 telah diuji dan dinyatakan lulus dalam sidang Munaqasah Fakultas Sains dan
Teknologi, Universitas Islam Negeri Syarif Hidayatullah Jakarta pada Selasa, 02 Agustus 2022.
Skripsi ini diterima sebagai salah satu syarat memperoleh gelar sarjana Strata Satu (S1)
Program Studi Sistem Informasi.

Menyetujui,
Penguji I Penguji II

M. Nur Gunawan, M.BA Evy Nurmiati, S.Kom, M.MSI


NIDN. 2006127901 NIP. 197802152014112003

Pembimbing I Pembimbing II

Zainul Arham, M.Si Nuryasin, M.Kom


NIP. 197407302007101002 NIP. 197607152011011005

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

KARYA SAYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI SKRIPSI

ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU LEMBAGA MANAPUN.

Jakarta, Mei 2023

Shidqi Akram Hauzan


11160930000114

v
ABSTRAK

Shidqi Akram Hauzan – 11160930000114, Penerapan Convolutional Neural Network Dalam


Pengklasifikasian Citra Gambar Jamur Beracun, dibawah bimbingan Zainul Arham dan
Nuryasin.
Salah satu bahan pangan yang melimpah dan paling sering ditemukan di
Indonesia adalah jamur. Jamur merupakan bagian dari kingdom fungi, yaitu organisme
eukariotik, yaitu makhluk hidup yang memiliki membran inti sel serta tidak bisa menghasilkan
makanan sendiri yang disebut heterotrof. 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.
Machine learning adalah teknik dimana komputer dapat mempelajari dari data, tanpa harus
mengikuti instruksi program secara eksplisit atau aturan tertentu, salah satu cabang dari
machine learning adalah deep learning. Berdasarkan permasalahan tersebut maka tujuan dari
penelitian ini adalah mempermudah orang awam untuk membedakan antara jamur yang bisa
dimakan atapun tidak di alam liar dan mengetahui bagaimana metode deep learning
menggunakan CNN untuk pengklasifikasian gambar jamur beracun. Adapun metode
pengumpulan data yang digunakan menggunakan Studi Pustaka, Observasi dan Pengumpulan
data menggunakan web scrapping. Pada saat training model CNN digunakan input parameter
dengan panjang citra gambar 180 piksel dan lebar 180 piksel menghasilkan tingkat akurasi
training dan validation dalam melakukan klasifikasi jamur sebesar 78% untuk training, dan
78% untuk akurasi validation. Dan dapat disimpulkan bahwa penelitian ini memberikan
manfaat dan kontribusi bagi orang yang ingin terjun di dalam dunia machine learning dan
artificial intelligence.

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.

Jakarta, April 2023

Shidqi Akram Hauzan

viii
DAFTAR ISI
LEMBAR PENGESAHAN UJIAN .......................................................................................... iv

KATA PENGANTAR .............................................................................................................vii

DAFTAR ISI............................................................................................................................. ix

DAFTAR GAMBAR ...............................................................................................................xii

DAFTAR TABEL .................................................................................................................. xiii

BAB I PENDAHULUAN .......................................................................................................... 1

1.1 Latar Belakang ........................................................................................................... 1

1.2 Identifikasi Masalah ................................................................................................... 5

1.3 Rumusan Masalah ...................................................................................................... 5

1.4 Batasan Masalah ........................................................................................................ 5

1.5 Tujuan ........................................................................................................................ 6

1.6 Manfaat Penelitian ..................................................................................................... 6

1.6.1 Bagi Mahasiswa ................................................................................................. 6

1.6.2 Bagi Universitas ................................................................................................. 7

1.6.3 Bagi Pembaca..................................................................................................... 7

1.7 Metodologi ................................................................................................................. 7

1.7.1 Metode Pengumpulan Data ................................................................................ 7

1.7.2 Metode Implementasi......................................................................................... 7

1.8 Sistematika Penulisan ................................................................................................ 7

Bab II LANDASAN TEORI ...................................................................................................... 9

2.1 Jamur .......................................................................................................................... 9

2.2 Pengklasifikasian ..................................................................................................... 10

2.3 Citra Gambar............................................................................................................ 10

2.4 Artificial Intelligence ............................................................................................... 11

2.5 Machine Learning .................................................................................................... 13

2.6 Deep Learning ......................................................................................................... 15

ix
2.7 Artificial Neural Network ........................................................................................ 17

2.8 Backpropagation ...................................................................................................... 22

2.9 Multilayer Neural Network ...................................................................................... 22

2.10 Deep Neural Network .............................................................................................. 23

2.11 Convolutional Neural Network (Convnets) ............................................................. 24

2.11.1 Convolutional layer ......................................................................................... 26

2.11.2 Padding ............................................................................................................ 28

2.11.3 Subsampling Layer / Pooling Layer ................................................................ 30

2.11.4 Fully Connected Layer (FCNN) ...................................................................... 31

2.12 Data Preprocessing ................................................................................................. 32

2.12.1 Data Cleansing ................................................................................................ 32

2.12.2 Data Reduction ................................................................................................ 33

2.12.3 Data Editing ..................................................................................................... 33

2.12.4 Data Augmentation .......................................................................................... 34

2.13 Tools......................................................................................................................... 34

2.13.1 Python .............................................................................................................. 34

2.13.2 Tensorflow........................................................................................................ 35

2.13.3 Tensorflow Lite ................................................................................................ 35

2.13.4 Keras ................................................................................................................ 35

2.13.5 Jupyter Notebook ............................................................................................. 36

2.13.1 Android ............................................................................................................ 36

2.14 Penelitian Sejenis ..................................................................................................... 37

Bab III METODE PENELITIAN ............................................................................................ 46

3.1 Waktu dan Tempat Penelitian .................................................................................. 47

3.2 Data dan Waktu Penelitian....................................................................................... 47

3.3 Metode Penelitian .................................................................................................... 53

3.3.1 Metode Pengumpulan Data .................................................................................. 53

x
3.4 Kerangka Berpikir .................................................................................................... 53

3.5 Tahapan Penelitian ................................................................................................... 56

BAB IV HASIL DAN PEMBAHASAN ................................................................................. 58

4.1 Alur Pembuatan Model ............................................................................................ 58

4.2 Data Preprocessing................................................................................................... 59

4.2.1 Data Cleansing ................................................................................................. 59

4.2.2 Data Reduction................................................................................................. 60

4.2.3 Data Editing ..................................................................................................... 61

4.2.4 Data Augmentation .......................................................................................... 62

4.3 Pemodelan CNN ...................................................................................................... 63

4.3.1 Setup Jupyter Notebook ................................................................................... 63

4.3.2 Input model dan labeling ................................................................................. 63

4.3.3 Arsitektur Model .............................................................................................. 65

4.3.4 Compiling Model ............................................................................................. 65

4.3.5 Training Model ................................................................................................ 66

4.4 Optimasi Model ....................................................................................................... 68

4.5 Perancangan Aplikasi............................................................................................... 72

4.5.1 Perancangan User Interface ............................................................................. 72

4.6 Alur Proses Pengujian .............................................................................................. 73

4.7 Pengujian.................................................................................................................. 74

4.8 Interpretasi ............................................................................................................... 76

4.9 Implikasi Hasil ......................................................................................................... 76

BAB V KESIMPULAN DAN SARAN .................................................................................. 78

5.1 Kesimpulan .............................................................................................................. 78

5.2 Saran ........................................................................................................................ 78

DAFTAR PUSTAKA .............................................................................................................. 80

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.1 Latar Belakang


Salah satu bahan pangan yang melimpah dan paling sering ditemukan di
Indonesia adalah jamur. Jamur merupakan bagian dari kingdom fungi, yaitu
organisme eukariotik, yaitu makhluk hidup yang memiliki membran inti sel serta
tidak bisa menghasilkan makanan sendiri yang disebut heterotrof. Jamur memiliki
benang-benang sel tunggal panjang yang bernama hifa jika berkumpul hifa tersebut
dinamakan miselium, hifa berfungsi sebagai alat reproduksi jamur serta untuk
menyerap nutrient pada substrat jamur tersebut tumbuh.
Jamur memiliki banyak variasi ukuran mulai dari yang tidak terlihat dengan
kasat mata yang disebut jamur mikro serta jamur makro yang mulai dari ukuran 5
cm sampai 9.1 km persegi yang tumbuh di kota Oregon, Amerika. Semua jamur
yang sering kita temui merupakan jamur makro yang sebagian besar masuk filum
Basidiomycota dan Ascomycota (Hibbertt, el al.2007). Jamur dapat ditemukan di
berbagai belahan dunia dan sangat bermanfaat bagi kehidupan manusia dalam
bidang bahan pangan, obat-obatan, dan kerajinan tangan.
Terdapat lebih dari 1.500.000 spesies jamur di dunia dan hanya sekitar
74.000 diantaranya yang telah teridentifikasi. Beberapa jamur yang telah
teridentifikasi banyak bermanfaat dalam berbagai bidang dalam kehidupan
manusia, namun banyak dari berbagai spesies jamur tersebut yang beracun bahkan
ada yang spesies jamur jika dikonsumsi dapat menyebabkan kematian fatal
contohnya jamur spesies Amanita Phalloides (Jans, Daele, Blonk, Varin, Laar
2007). Di Eropa Utara, terdapat beberapa genus jamur yang banyak dan
berkembang dengan luas, diantaranya adalah Agaricus dan Amanita. Genus jamura
Agaricus dikenal sebagai jamur yang memiliki banyak spesies layak konsumsi
seperti Agaricus Bisporus (jamur kancing). Lain halnya dengan genus jamur
Amanita, spesies dari genus jamur tersebut dikenal sebagai jamur paling beracun di
dunia, salah satunya disebut sebagai deatch caps yang bernama latin Amanita

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.

Gambar 1.1 Amanita Phalloides (kanan) dan Amanita Rubescens (kiri)

Gambar diatas merupakan jamur Amanita Phalloides dan jamur Amanita


Rubescens, kedua jamur tersebut masuk bagian dari genus Amanita yang sebagian
besar jamur dalam keluarga itu adalah jamur beracun, kesamaan bentuk dan alam
hidup dari kedua spesies jamur tersebut yang dapat membingungkan dalam
membedakan satu antara lain. Jamur Amanita Rubescens sering dikonsumsi oleh
masyarakat Eropa dikarenakan rasanya yang enak sedangkan jamur Amanita
Phalloides merupakan salah satu jamur yang paling dihindari untuk
pengkonsumsian karena sangat beracun.

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

Machine learning adalah teknik dimana komputer dapat mempelajari dari


data, tanpa harus mengikuti instruksi program secara eksplisit atau aturan tertentu,
salah satu cabang dari machine learning adalah deep learning. Topik deep learning
menjadi menjadi salah satu topik yang paling diperbincangkan dalam bidang
machine learning karena sangat efektif dalam mempelajari berbagai data kompleks

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.

Kemajuan kekuatan komputasi komputer saat ini menjadikan trend deep


learning meningkat pesat terutama metode convolutional neural network yang
membutuhkan resource komputasi yang sangat besar. Berdasarkan (Zhang et al.,
2018) pada penelitian (Arrofiqoh & Harintaka, 2018) metode CNN merupakan
salah satu metode deep learning yang mampu melakukan proses pembelajaran
mandiri untuk pengenalan objek, ekstrasi objek dan klasifikasi serta dapat
diterapkan pada citra resolusi tinggi yang memiliki model distribusi nonparametrik.
Dalam penelitian Nurhikmat (2018) berujudul Implementasi Convolutional Neural
Network untuk Image Classification pada citra wayang golek memperoleh hasil
tingkat keakurasian training dan testing dalam pengklasifikasian gambar wayang
golek sebesar 95% training dan 90 % testing.

Dari permasalahan yang telah dijelaskan, maka untuk mengatasi masalah


tersebut dibutuhkan sebuah solusi yang dapat membantu masyarakat untuk
mengidentifikasikan jamur yang beracun atau tidak beracun di alam liar. Maka dari
itu, penulis tertarik untuk memilih judul “Penerapan Convolutional Neural
Network Dalam Pengklasifikasian Citra Gambar Jamur Beracun”.

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.

1.3 Rumusan Masalah


Berdasarkan identifikasi masalah, maka rumusan masalah yang dibahas
dalam penelitian ini adalah:

1. Sulitnya mengidentifikasi jamur beracun oleh orang awam dikarenakan


banyaknya spesies jamur di alam liar, kurangnya pengetahuan tentang
jamur, dan kurangnya ahli dalam bidang jamur.
2. Diperlukan pengembangan solusi teknologi yang dapat membantu dalam
mengidentifikasi dan mempelajari struktur jamur secara otomatis
menggunakan data citra, dengan memanfaatkan metode komputasi seperti
computer vision dan deep learning, khususnya Convolutional Neural
Network (CNN).
3. Bagaimana performa model berbasis mobile dalam mengklasifikasikan
jamur beracun atau tidak?

1.4 Batasan Masalah


Permasalahan yang akan dibahas pada tugas akhir ini memiliki beberapa
batasan masalah, antara lain sebagai berikut :

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.

1.7.2 Metode Implementasi


Penulis melakukan implementasi dalam pembuatan aplikasi pengklasifikasi
jamur ini dalam tiga tahap, Analisis permasalahan, perancangan model jaringan
syaraf tiruan dengan metode Convolutional Neural Network, Implementasi metode
CNN untuk aplikasi pengklasifikasian jamur di Android.

1.8 Sistematika Penulisan


Sistem penulisan buku tugas akhir secara garis besar antara lain sebagai
berikut.

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.

Bab II LANDASAN TEORI


Bab Tinjauan Pustaka berisi penjelasan mengenai dasar teori yang
mendukung pengerjaan tugas akhir. Materi dan teori tersebut berasal
dari beberapa literatur yang digunakan sebagai acuan referensi untuk
pembuatan tugas akhir.

Bab III METODOLOGI PENELITIAN


Pada bab ini akan dibahas mengenai metode penelitian yang akan
digunakan dalam merancang dan membangun model
Pengklasifikasian Jamur Beracun.

Bab IV HASIL DAN PEMBAHASAN


Bagian ini menjelaskan serta memaparkan bagaimana metodologi
yang di lakukan untuk mencakup topik analisis, perancangan,
implementasi, dan pengujian sesuai dengan metode yang dikakukan
pada sistem yang dibuat serta hasil dari pengujian.

Bab V KESIMPULAN DAN SARAN


Pada bab ini akan dibahas mengenai hasil dari analisis dan penelitian
pembuatan sistem pengklasifikasi jamur beracun menggunakan
metode Convolutional Neural Network.

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.

2.3 Citra Gambar


Menurut Tyagi (Tyagi, 2018b) gambar adalah representasi visual dari
sebuah objek, seseorang atau sebuah adegan. Gambar digital adalah fungsi dua
dimensi 𝑓(𝑥, 𝑦) yang merupakan proyeksi dari adegan tiga dimensi menjadi bidang
proyeksi dua dimensi, dimana 𝑥, 𝑦 merepresentasikan lokasi dari elemen gambar
atau piksel dan berisikan intensity value. Ketika nilai 𝑥, 𝑦 dan intensitasnya adalah
diskrit, maka gambar tersebut daat dinyatakan sebagai gambar digital. Secara
matematika, gambar matematika merupakan representasi matriks berbentuk dua
dimensi menggunakan menggunakan sejumlah elemen sel poin yang terbatas,
biasanya disebut sebagai picture elements (pixel). Setiap piksel direpresentasikan
dengan suatu nilai untuk gambar grayscale sebuah nilai merepresentasikan intestas
piksel dengan rentang [0, 255]. Untuk gambar bewarna digunakan tiga nilai untuk

10
merepresentasikan red (R), green (G), dan blue (B) kombinasi dari ketiga warna
tersebut menghasilkan gambar berwarna.

Gambar 2. 1 Contoh digital dan representasinya di dalam matriks (Tyagi, 2018a)

2.4 Artificial Intelligence


Menurut European Commision’s on Artificial Intellegence (Komisi
Komunikasi Eropa tentang Kecerdasan Buatan), mendefinisikan artificial

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.

Awalnya diciptakan pada tahun 1950, kata “artificial intellligence” awalnya


bermula dari teori yang sederhana dari kecerdasan manusia di implementasikan
kedalam mesin. Di era yang pesat ini dalam perkembangan teknologi dan
peningkatan eksponensial pada dataset yang besar, artificial intelligence beralih
dari teori belaka ke aplikasi yang nyata dalam skala yang belum pernah dilihat
sebelumnya (Helm et al., 2020).

2.5 Machine Learning


Di dalam buku Introduction to Machine Learning (Alpaydin , 2020),
machine learning adalah program komputer yang mengoptimalkan kriteria
performa menggunakan contoh data atau pengalaman lampau. Dimana kita punya
model yang didefinisikan dengan parameter, dan mempelajarinya adalah
pengeksekusian program tersebut untuk mengoptimasisasi parameter dari model
tersebut menggunakan training data atau pengalaman lampau. Model tersebut
mungkin profetik dalam melakukan prediksi, atau deskriptif dalam mendapatkan
pengetahuan dari data, atau keduanya. Machine learning adalah subset dari
artificial intelligence mengemban nama “learning” dapat diasosiasikan dengan
kecerdasan manusia, sementara juga memiliki kapasitas untuk mempelajari dan
meningkatkan tingkat analisisnya melalui penggunaan komputasi algoritma.
Algoritma ini menggunakan dataset yang besar input dan output data untuk
mengenali pola-pola dan dengan efektif mempelajarinya untuk melatih mesin untuk
membuat rekomendasi atau keputusan secara otomatis (Hania & Abu, 2017).
Sistem machine learning sangat berbeda dengan bagaimana program
konvesional bekerja. Dimana program tradisional, sang programmer memberikan
instruksi atau aturan-aturan bagaimana komputer tersebut mengerjakan sesuatu lain

13
halnya dengan sistem machine learning, sistem ini harus mempelajari bagaimana
memahami sesuatu hanya berdasarkan data input dan output.

Gambar 2. 2 Perbedaan Pemograman Gambar Tradisional dan Machine Learning


(Sumber: Francois, 2017)
Ada sangat banyak tipe sistem machine learning menurut Geron (Geron,
2019), machine learning dapat dikategorikan berdasarkan kriteria, yaitu:
1. Apakah sistem tersebut terlatih menggunakan pengawasan manusia
atau tidak (supervised, unsupervised, semisupervised, dan
reinforcement learning).
2. Apakah sistem tersebut dapat mempelajari secara bertahap atau
tidak (online versus batch learning).
3. Apakah sistem tersebut dapat bekerja hanya dengan
membandingkan titik data yang baru dengan titik data yang
diketahui, atau sebagai gantinya mendeteksi pola didalam training
data dan membangun model yang profetik, seperti yang dilakukan
ilmuan (instance based versus model-based learning).
Namun kriteria-kriteria diatas tidak mutlak; kita dapat
mengkombinasikannya dengan cara apapun yang kita inginkan. Contohnya, spam
filter state-of-the-art dapat mempelajari secara on-the-fly menggunakan model deep
neural network yang terlatih dari contoh email spam, ini membuatnya sistem
pembelajaran online, model-based, dan supervised.
Menurut Goodfellow (Goodfellow et al., 2016), sistem machine learning
dapat diklasifikasikan menurut dari jumlah dan tipe pengawasan yang diberikan
pada saat training sistem tersebut. Ada tiga kategori besar, yaitu:

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.

2.6 Deep Learning


Menurut Heryadi dan Irwansyah (Heryadi & Irwansyah, 2020), deep
learning merupakan metode pembelajaran terhadap data yang bertujuan untuk
membuat representasi (abstraksi) data secara bertingkat menggunakan sejumlah
layer pengelolahan data, dengan menekankan bahwa representasi data tersebut
tidak dibuat secara eksplisit oleh manusia tetapi dihasilkan oleh sebuah algoritma

15
pembelajaran. Deep learning merupakan subset dari metode machine learning
berdasarkan konsep artificial neural network dengan penggunaan representation
learning.

Gambar 2. 3 Lingkup deep learning di dalam machine learning dan artificial


intelligence.
Penggunaan kata “deep” menurut Chollet (Chollet, 2017) bukan
mereferensikan dalamnya pengertian yang dihasilkan dari pendekatan melainkan
mengartikan gagasan tentang layer representasi yang berurutan. Banyaknya layer
yang ada pada model disebut depth. Model deep learning modern biasanya
mempunyai puluhan atau hingga ratusan dari representasi layer dan semua layer
tersebut belajar secara otomatis dari training data. Sementara itu, pendekatan
machine learning yang lain cenderung fokus kedalam pembelajaran hanya
menggunakan satu atau dua representasi layer data contohnya penggunaan
klasifikasi dalam mencari relasi antara data user dengan data kategori yang user
tersebut beli pada website e-commerce, oleh sebab itu pendekatan itu disebul
shallow learning. Di dalam metode deep learning ada yang dinamakan pendekatan
menggunakan neural network atau jaringan syaraf tiruan, representasi layer ini
dipelajari melalui model yang disebut neural networks, berstuktur dari layer yang
ditumpuk di atas satu sama lain. Dinamakan “neural network” mengacu pada

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.

2.7 Artificial Neural Network


Menurut Triyanto (Triyanto, 2016) artificial neural network atau jaringan
syaraf tiruan adalah sistem komputasi yang arsitekur dan operasinya meniru
pengetahuan tentang sel syaraf biologis pada otak. Artificial neural network adalah
model komputer terinspirasi dari struktur jaringan syaraf yang berada di otak, terdiri
dari kumpulan alat penghitungan dasar yang bernama neuron dengan jumlah yang
besar dimana neuron tersebut saling terhubung satu dengan yang lain sehingga
membetuk jaringan komunikasi yang kompleks (Shwartz et al., 2014).
Nama lain dari neuron adalah perceptron. Menurut Aggarwal (Aggarwal,
2018) perceptron merupakan jaringan syaraf tiruan yang hanya memiliki satu input
layer dan node output. Konsep dasar percepton yaitu kita dapat bayangkan suatu
̅ , 𝑦), dimana setiap 𝑋̅ = [𝑥1 , … … 𝑥𝑑 ] berisikan 𝑑 variabel
bentuk matematika (𝑋

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

Input Layer berisikan node-node d lalu meneruskannya dengan membawa


̅ = [𝑥1 , … … 𝑥𝑑 ] dengan weight 𝑊
d variabel feature 𝑋 ̅ = [𝑤1 , … … 𝑤𝑑 ] ke

node output. Untuk mencari y di node output terdapat fungsi linier yang dapat di
gambarkan dengan fungsi berikut.
𝑑

𝑦 = 𝑠𝑖𝑔𝑛{∑ 𝑤𝑗 𝑥𝑗 + 𝑏}
𝑗=1

Notasi sigma menyatakan sebagai akumulator, lalu akumulator tersebut


akan diteruskan ke Fungsi Aktivasi dinyatakan diatas sebagai sign, terdapat
berbagai macam Fungsi Aktivasi namun pada model matematika diatas digunakan
fungsi signon yang mengeluarkan output bilangan real antara +1 atau -1 yang
sangat cocok untuk klasifikasi binari.
Weight dan bias yang dinotasikan dengan w dan b merupakan parameter
pembelajaran dari perceptron dan model lainnya. Kedua parameter inilah yang akan

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.

Gambar 2. 7 Multilayer perceptron dalam menyelesaikan permasalahan nonlinier

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.

2.10 Deep Neural Network


Deep neural network (DNN) menurut Teye Brown & Zgallai (Teye Brown
& Zgallai, 2020) merupakan neural network yang memiliki layer dengan jumlah
yang besar. Tidak ada angka spesifik dari layer untuk dapat diklasifikasikan sebagai
deep neural network, namun umumnya jika neural network memiliki lebih dari tiga
hidden layer maka dapat dikatakan deep neural network. Dikarenakan besarnya
jaringan neural, DNN membutuhkan kekuatan komputasi yang besar. Dengan
tambahan, performanya umumnya bertambah dengan dataset yang lebih besar.
Kombinasi dari neural network dan dataset yang lebih besar terutama dataset
berlabel meningkatkan performa algoritma deep neural network tersebut dibanding
algoritma yang lain.

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.

2.11 Convolutional Neural Network (Convnets)


Menurut Teye Brown & Zgallai (Teye Brown & Zgallai, 2020)
convolutional neural network merupakan kelas spesial dari neural network yang

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.

Gambar 2. 9 Gambaran arsitektur CNN (phrabu 2018).


Menurut Putra et al (W. S. E. Putra et al., 2016) terdapat tiga layer utama
pada CNN yaitu:
1. Convolutional layer, layer ini melakukan operasi konvolusi pada output
dari layer sebelumnya. Layer ini adalah proses utama yang mendasari
sebuah CNN.

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.

ℎ(𝑡) = (𝑓(𝑡) ∗ 𝑔(𝑡)) = ∫ 𝑓(𝜏)𝑔(𝑡 − 𝜏)𝑑𝜏
−∞

Dari rumusan diatas, 𝑔(𝑡) dapat di dicerminkan lalu di geser. Dummy


variable 𝜏 mempunyai rentan semua bilangan real. Hal tersebut berarti kita geser 𝜏
dari −∞ ke ∞ lalu menghitung integral atau perkalian dimana kedua fungsi tersebut
berpotongan. Rentang dari dummy variable dibatasi oleh ukuran dari array dua
dimensi yang merepresentasikan dari data atau gambar. Setelah itu fungsi 𝑓dapat
kita anggap sebagai input data yang sesungguhnya, 𝑋, merupakan array dua
dimensi. Fungsi 𝑔 dapat kita sebut filter atau kernel.

26
Gambar 2. 10 Data input dan 3 × 3 kernel (Teye Brown & Zgallai, 2020).

Pada ilustrasi diatas 𝑋 merupakan input dan 𝑓 merupakan filter yang


melakukan perhitungan output dari konvolusi. Dengan menggeser filter diatas 3 ×
3 grid diatas 𝑋 seperti pada ilustrasi 2.10. Lalu akan dilakukan element-wise
product.

Gambar 2. 11 Alur Proses Konvolusi

Hasil dari Element-wise product adalah 2(−1) + 0(0) + 1(1) + 3(−1) +


5(0) + 6(1) + 2(−1) + 0(0) + 1(1) = 1. Lalu kita geser satu langkah lagi ke
kanan seperti pada ilustrasi di atas. Setelah itu kita ulangi sampai kita mendapatkan

27
enam baris dari value. Setelah itu kita geser kebawah filter tersebut dan
mengulangin perhitungan diatas.

Gambar 2. 12 Hasil Output proses konvolusi

Hasil output dari keseluruhan array multidimensi 𝑋 digambarkan seperti


ilustrasi yang ada dibawah. Jika ukuran data adalah 𝑛 × 𝑛, dengan ukuran filter
𝑓 × 𝑓, maka ukuran dari output konvolusi dapat dirumuskan.
𝑜𝑢𝑡𝑝𝑢𝑡 𝑠𝑖𝑧𝑒 = (𝑛 − 𝑓 + 1) × (𝑛 − 𝑓 + 1)

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.

Gambar 2. 14 Input data 8 × 8, dengan padding = 1.

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.

Gambar 2. 15 Contoh sebuah dua dimensi gambar

Lalu kita dapat menggunakan filter max pooling berukuran 2 × 2, geser


melintasi array dua dimensi yang menjadi representasi gambar dimulai dari pojok
kiri atas.

Gambar 2. 16 Proses max pooling.


Max pooling memilih nilai yang paling bersar yakni 102. Lalu max pooling
bergeser dua kolom kekanan setelah itu proses ini diulang-ulang sepanjang baris
dan kolom. Hasil akhir dari proses max pooling diilustrasikan pada gambar 2.14.

30
Gambar 2. 17 Hasil output max pooling.

2.11.4 Fully Connected Layer (FCNN)


Menurut (W. S. E. Putra et al., 2016) fully connected layer (FCNN)
merupakan layer yang biasa digunakan dalam penerapan MLP dan bertujuan untuk
melakukan transformasi pada dimensi data agar data dapat diklasifikasi secara
linier.
Di dalam layer FCNN terdapat proses flatten, menurut (Danukusumo et al.,
2017) flatten merupakan proses yang mengubah feature map hasil dari layer
pooling kedalam bentuk vektor.

Gambar 2. 18 Proses Flatten.


FCNN secara sederhana merupakan feed forward neural network atau
jaringan syaraf umpan maju. Lapisan ini mendapatkan input dari layer pooling
setelah itu dihitung menggunakan fungsi aktivasi, jaringan dapat
mengklasifikasikan gambar yang di input ke dalam jaringan. Nilai yang dihasilkan

31
dari jaringan diintrepretasikan sebagai nilai probabilitas yang dapat diartikan
seberapa yakin jaringan dalam mengklasifikasi objek atau gambar tersebut.

Gambar 2. 19 Fully connected neural network.

2.12 Data Preprocessing


Tahapan data preprocessing merupakan serangkaian langkah atau proses
yang dilakukan untuk membersihkan, mempersiapkan, dan mengubah data mentah
menjadi format yang lebih siap digunakan untuk analisis lebih lanjut (Witten et al.,
2011). Ada empat tahapan yang digunakan dalam penelitian ini:
2.12.1 Data Cleansing
Menurut William H. Inmon, data cleaning (pembersihan data) merujuk pada
proses mengidentifikasi, memperbaiki, dan menghapus kesalahan atau
ketidakakuratan dalam data yang dikumpulkan. Tujuan dari data cleaning adalah
untuk memastikan kebersihan, kekonsistenan, dan kualitas data yang akan
digunakan dalam analisis atau penggunaan selanjutnya. Proses data cleaning
melibatkan langkah-langkah seperti identifikasi dan penanganan missing values
(nilai yang hilang), deteksi dan penanganan outlier (data yang tidak biasa atau tidak
wajar), penghapusan duplikasi, koreksi kesalahan pengetikan atau kesalahan

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

2.14 Penelitian Sejenis


Penelitian sejenis merupakan tinjauan pustaka dimana penulis mencari
penelitian diambil dari jurnal terindeks scopus atau IEEE yang sejenis dengan
penelitian yang dilakukan oleh penulis setelah itu penulis membandingkan

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

Judul Jumah Arsitektur


No Penulis Metode Variabel Hasil Penelitian Kelebihan Kekurangan
Penelitian Dataset Jaringan
1 (Rena, Penerapan CNN 2405 Notasi − Input Menggunakan data − Memiliki − Keterangan
2019) Metode CNN Balok jaringan baru sebanyak 400 hasil prediksi dalam jumlah
Pada berukuran gambar dimana yang baik data training
Pendeteksi 32x32x3, perkelas terdapat − Dimplemetas dan validasi
Gambar Notasi dengan filter 10 gambar jaringan ikan kedalam tidak ada
Balok 3x3 dapat platform web
− Epoch 100 mengklasifikasikan
− Jumlah kelas dengan tingkat
40 akurasi sebesar

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

Secara keseluruhan, ketujuh penelitian tersebut menunjukkan bahwa


penggunaan Convolutional Neural Network (CNN) memiliki potensi besar dalam
pengenalan objek, analisis citra, dan klasifikasi dalam berbagai konteks. Masing-
masing penelitian mengungkapkan keunggulan CNN dalam mengenali pola yang
kompleks dan memberikan hasil pengklasifikasian dengan tingkat akurasi yang
tinggi. Penelitian penulis tentang pengklasifikasian citra gambar jamur beracun
melengkapi penelitian-penelitian lainnya dengan fokus khusus pada aplikasi dalam
keamanan pangan. Dengan demikian, penelitian penulis diharapkan memiliki nilai
kontribusi yang unik dalam pemahaman dan perlindungan terhadap kesehatan
manusia melalui identifikasi jamur beracun secara otomatis dan akurat.

46
BAB III
METODOLOGI PENELITIAN

3.1 Waktu dan Tempat Penelitian


Untuk melakukan penelitian penulis sudah menentukan waktu
dan tempat dimana penelitian dilakukan, berikut merupakan rinciannya:

Tabel 3. 1 Waktu dan Tempat Pelaksanaan

Tahapan Waktu Tempat / Tools

Pengumpulan Dataset 19 September Rumah Penulis,


2020 Selenium untuk
Webscraping

Preprocessing Dataset 20 September Rumah Penulis, Jupyter


2020 Notebook

Training 2 Desember Rumah Penulis, Local


2020 Machine with Jupyter
Notebook

3.2 Data dan Waktu Penelitian


1. Perangkat Penelitian

Penulis menggunakan Google Colaboratory untuk training jaringan


dibutuhkannya graphics processing unit (GPU) untuk mempercepat proses
training. Untuk pengimplementasian jaringan penulis menggunakan smartphone
LG V30 dan menggunakan kamera utamanya untuk pengklasifikasian jamur. Untuk
lebih detailnya berikut merupakan tabel hardware dan software yang digunakan
penulis:

47
Tabel 3. 2 Software dan Hardware yang digunakan

Hardware / Software Tipe Deskripsi

LG V30 Smartphone Android 8.0 Oreo

CPU : Snapdragon 835


Octa Core (4 x 2.45 Ghz & 4 x 1.9 Ghz)

Ram : 4 GB

Jupyter Notebook Integrated CPU : AMD Ryzen


Development Enviroment untuk– data
5600G 6 Cores
analis dan training dataset
Ram : 32GB

GPU : AMD Vega 8 – 7


Compute cores

Python 3.8 Tensorflow

Tensorflow lite

Android Studio IDE untuk membuat Kotlin


aplikasi android

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:

Tabel 3. 3 Pembagian Dataset

No Dataset Split Jumlah

1 Data training 80% 12165

2 Data testing 20% 3041

Total 100% 15206

Tabel 3. 4 Dataset Citra Jamur

NO Genus Citra Gambar Label – Binary Label

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

7 Hygrocybe Tidak Beracun - 1

8 Inocybe Beracun - 0

51
9 Lactarius Tidak Beracun - 1

10 Pluteus Beracun - 0

11 Russula Tidak Beracun - 1

12 Suillus Tidak Beracun - 1

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.

3.4 Kerangka Berpikir

Kerangka berpikir menjelaskan tahapan yang penulis lakukan untuk


menghasilkan tujuan yang dimaksud. Pada tahap ini menggunakan kerangka berpikir
dengan diagram alur.
Adapun dalam penelitian ini, penulis mengurutkan serta
menghubungkan beberapa faktor yaitu sebagai berikut: (1) Tahap studi pendahuluan,
berfungsi mengumpulkan data-data serta informasi dari permasalahan yang berkaitan
dengan CNN dan jamur dengan melakukan metode studi literatur dan observasi; (2)

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

Tahapan penelitian menjelaskan langkah yang akan dilakukan oleh penulis


dalam menjalankan penelitiannya, digambarkan melalui diagram agar
memudahkan penulis dalam melakukan penelitian secara terstruktur. Berikut
tahapan penelitian:

Gambar 3. 2 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

4.1 Alur Pembuatan Model


Peneliti membuat model convolutional neural network menggunakan
library tensorflow dengan bahasa pemograman python, pertama tahap data
preprocessing dilakukan agar menyesuaikan bentuk dataset dengan input model
CNN. Kedua dilakukan perancangan model dan dilakukannya training model
dalam mengklasifikasi gambar jamur beracun maupun tidak, setelah training model
tensorflow di save menjadi format saved_model. Format saved_model tersebut
tidak bisa langsung di implementasi ke android dikarenakan framework android
yang tidak bisa membaca format saved_model, namun menggunakan library
tensorflowlite format saved_model tersebut bisa dikonversi menjadi format .tflite
yang dapat langsung di implementasi di android. Berikut merupakan flowchart
pembuatan model.

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.

4.2.1 Data Cleansing


Data dibersihkan dengan cara menganalisa tiap gambar yang berada di
dalam dataset secara manual dikarenakan kurang efektifnya penggunaan program
atau tools untuk menganalisa tiap gambar yang memiliki kecacatan seperti gambar
yang terpotong atau tidak terlihat.

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.

4.2.2 Data Reduction


Dengan menurunkan resolusi gambar akan didapatkan ukuran gambar yang
lebih kecil dengan tujuan mempermudah model dalam proses training model selain
itu data reduction dapat mempercepat waktu pemrosesan pengklasifikasian gambar.
Penulis menurunkan gambar menjadi 259 x 194 piksel menggunakan dengan
bantuan library scikit-image pada environment python. Berikut merupakan script
code python yang penulis buat untuk reduce ukuran citra gambar.

1. 1. from skimage import io


2. from skimage.transform import resize
3. from PIL import Image
4.
5.
6. def resize_photo(input_path, output_path):
7. with Image.open(input_path) as img:
8. img.thumbnail((200, 200))
9. img.save(output_path)
10.
11. # Fungsi untuk menurunkan ukuran piksel gambar
12. def photo_resizer(folder_path, output_dir):

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)

4.2.3 Data Editing


Dalam tahap ini dataset akan di ditinjau secara otomatis untuk mencari data
yang terduplikasi. Dengan menggunakan library Open-cv dan Numpy kita dapat
mencari gambar yang terduplikat di satu folder. Berikut merupakan script python

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)

4.2.4 Data Augmentation


Augmentasi gambar dapat meningkatkan performa model jaringan syaraf
tiruan dengan memberikan variasi pada gambar, dengan merotasi, memutar axis
gambar, dan memberikan random noise pada gambar tersebut. Penulis
menggunakan library scikit-image untuk mengaugmentasi gambar yang berada di
dalam folder dataset.

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.

4.3 Pemodelan CNN


4.3.1 Setup Jupyter Notebook
Penulis menggunakan jupyter notebook yang berjalan secara lokal untuk
memudahkan dalam bereksperimen dengan parameter-parameter yang ada pada
pemodelan neural network selain itu, dengan berjalannya jupyter notebook secara
lokal kita tidak harus mengunggah dataset gambar yang besar ke servis cloud
google drive. Pertama kita harus mengimpor berbagai macam python library yang
digunakan dalam penelitian ini, berikut merupakan source code digunakan.

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

4.3.2 Input model dan labeling


Versi terbaru library python tensorflow memudahkan pengguna dalam
melakukan penelitian dalam memberi label pada dataset, dengan menyimpan
dataset dalam folder yang berbeda library tensorflow dapat membedakan dataset
tersebut lalu sebelum inisiasi model kita dapat melabelkan dataset secara
programmatically namun, kita harus memberikan nama kategori label sesuai

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

Setelah kita melabelkan dataset tersebut kita menetapkan presentase


dataset yang digunakan dalam proses training dan validating. Dataset training
digunakan oleh model neural network untuk. Berikut merupakan source codenya.

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.

Menurut dokumentasi libray tensorflow kita dapat meningkatkan performa


model dengan mengkonfigurasi parameter tf.data yaitu autotune, parameter
autotune bekerja dengan menjalankan algoritma yang mencari alokasi prosessor
yang optimal pada proses penginputan data, selain itu pada tahap ini kita dapat
mengacak urutan gambar yang berada di dalam dataset dengan tujuan agar
mengurangi kemunginan model mendapatkan kasus overfitting yang dimana model
mempelajari keseluruhan detail data termasuk noise.

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. ])

4.3.4 Compiling Model


Proses selanjutnya merupakan compiling model, pada proses ini kita
diharuskan untuk memberikan parameter seperti optimizer function, loss function
dan nilai metrik yang digunakan untuk evaluasi model. Digunakan fungsi optimizer
dengan tipe adam dikarenakan performa algoritma adam yang baik untuk jaringan
dengan dataset dan parameter jaringan yang besar. Karena ada dua label yang
diklasifikasikan oleh jaringan maka digunakan fungsi loss
SparseCategoricalCrossentrophy. Nilai akurasi digunakan untuk parameter metrik,
parameter metrik inilah yang digunakan untuk menghitung performa model dalam
mengklasifikasi gambar.

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
_________________________________________________________________

4.3.5 Training Model


Proses terakhir adalah training model, pertama kita harus memberi input
fungsi model.fit() dengan tiga parameter yaitu, dataset training, dataset validation,
dan jumlah epoch.

1. epochs = 10

2. history = model.fit(
train_ds,
validation_data=val_ds,
epochs=epochs)

Ketika fungsi tersebut dijalankan ada algoritma pembelajaran yang berjalan


untuk mempelajari berbagai macam bentuk pola yang berada di dalam gambar lalu
ketika setiap epoch selesai maka akan digunakan dataset validation untuk
mengevaluasi apakah model pada epoch tersebut berhasil atau tidak dalam
memprediksi citra gambar tersebut jika model tersebut gagal dalam memprediksi
maka akan terjadi feedback loop, dimana model akan mempelajari training dataset

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.

4.4 Optimasi Model


Model yang dihasilkan masih mengalami kasus overfitting, dalam machine
learning ada dua kasus yang harus di hindari dalam membuat model yaitu
overfitting dan underfitting. Overfitting merupakan keadaan dimana model
mempelajari keseluruhan data yang ada di dalam dataset yang mengakibatkan
model tersebut tidak mengeneralisasi data sedangkan underfitting adalah keadaan
dimana model tidak dapat mempelajari hubungan antara variabel di dalam dataset.
Penyebab overfitting dapat dikarenakan oleh data yang berada di dalam dataset
kurang variatif atau model yang digunakan terlalu kompleks untuk memproses

68
dataset, untuk underfitting dapat dikarenakan oleh penggunaan arsitektur model
yang terlalu sederhana untuk memproses dataset.

Kita dapat menganalisa model untuk mencari apakah model underfitting


atau overfitting dengan menggunakan grafik membandingkan nilai loss model pada
saat training dan validating seiring berjalannya epoch, kita harus mencari nilai train
loss yang kurang lebih sama dengan nilai validation loss agar mendapatkan tingkat
generalisasi model yang optimal.

Ketika model underfitting atau overfitting kita dapat mengubah beberapa


parameter seperti bentuk arsitektur model, ukuran model, jumlah epochs, ukuran
batch, dan learning rate untuk mencari model optimal, parameter-parameter
tersebut dinamakan hyperparameter. Trial and error digunakan untuk
mengoptimasi hyperparameter tersebut, karena dibutuhkannya analisa sang
peneliti untuk menemukan adanya underfitting dan overfitting pada model.

Tabel 4. 1 Tabel Perbandingan Evaluasi Parameter


No Epoch learning batch Akurasi Loss Akurasi Validasi
rate size Training Training Validasi Loss

1 0.001 32 0.67 0.58 0.70 0.58

2 10 0.001 64 0.66 0.59 0.62 0.60

3 0.001 100 0.64 0.61 0.69 0.60

4 0.001 32 0.68 0.56 0.56 0.57

5 15 0.001 64 0.69 0.55 0.70 0.55

6 0.001 100 0.67 0.57 0.69 0.56

7 0.001 32 0.72 0.52 0.70 0.54

8 20 0.001 64 0.73 0.50 0.69 0.56

9 0.001 100 0.71 0.53 0.71 0.58

69
10 0.001 32 0.78 0.43 0.76 0.52

11 30 0.001 64 0.77 0.43 0.72 0.58

12 0.001 100 0.73 0.50 0.74 0.52

Menggunakan data table diatas, parameter dengan tingkat akurasi training


dan akurasi validasi tertinggi yaitu akurasi training 78% dan akurasi validasi
sebesar 76% dengan menggunakan parameter 30 epoch, 32 batch size dan learning
rate 0.001, penelitian ini dilanjutkan menggunakan parameter model tersebut.

Dalam percobaan ini, penulis melakukan pengklasifikasian citra gambar


jamur beracun menggunakan metode Convolutional Neural Network (CNN). Untuk
mencari hyperparameter yang optimal, penulis menggunakan pendekatan berbasis
grafik. Grafik yang berada di bawah mewakili hasil percobaan dengan berbagai
kombinasi hyperparameter yang berbeda untuk CNN. Pada sumbu x grafik, terdapat
tingkat akurasi yang dicapai oleh pengklasifikasi. Sementara itu, sumbu y mewakili
jumlah epoch yang dilakukan selama proses pelatihan CNN. Dengan setiap
kombinasi hyperparameter yang diuji, penulis mencatat tingkat akurasi yang
dicapai pada setiap jumlah epoch. Melalui analisis grafik, penulis dapat mengamati
tren dan pola terkait dengan tingkat akurasi seiring dengan peningkatan jumlah
epoch. Mungkin ada titik di mana tingkat akurasi mencapai tingkat yang optimal,
atau mungkin terjadi penurunan tingkat akurasi setelah jumlah epoch tertentu.
Penulis dapat menggunakan informasi ini untuk menentukan hyperparameter yang
tepat untuk model tersebut. Grafik tersebut membantu penulis dalam memahami
bagaimana tingkat akurasi berkembang seiring dengan jumlah epoch yang
dilakukan. Dengan demikian, percobaan ini memberikan wawasan berharga dalam
menentukan hyperparameter yang optimal untuk mencapai tingkat akurasi yang
paling sesuai dalam pengklasifikasian citra jamur beracun menggunakan CNN.

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.

Gambar 4. 4 Desain Interface aplikasi


Pada Gambar 4.4 viewport kamera merupakan layout dari kamera android
yang secara realtime mengelola objek serta menampilkan hasil prediksi kedua label
yang berada di bagian bawah layout, hasil prediksi yang ditampilkan berbentuk
persentase tingkat kepercayaan diri model tersebut dalam memprediksi objek.

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.

Gambar 4. 5 Alur proses Implementasi dan Pengujian Aplikasi


Berikut merupakan langkah-langkah dari implementasi dan pengujian yang
berdasarkan Gambar 4.25.

1. Desain user interface

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.

3. Menggunakan smartphone LG-V30 sebagai alat tes. Objek yang digunakan


adalah citra gambar jamur yang tidak terdapat di dalam dataset.

4. Penulis akan menganalisa setiap hasil deteksi untuk mengukur kinerja


model yang dibangun.

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

Gambar 4. 7 Hasil Akurasi Salah dalam Pengklasifikasian Gambar


Menggunakan formula perhitungan berikut untuk mendapatkan tingkat
keakurasan model.

𝑇𝑜𝑡𝑎𝑙 𝑃𝑟𝑒𝑑𝑖𝑘𝑠𝑖 𝐵𝑒𝑛𝑎𝑟


𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑥 100%
𝑇𝑜𝑡𝑎𝑙 𝑃𝑒𝑟𝑐𝑜𝑏𝑎𝑎𝑛
Tabel 4. 2 Tabel Pengujian

Label Jumlah Data Berhasil Gagal Presentase

Beracun 20 14 6 70%

Dapat
20 9 11 45%
Dimakan

Rata-Rata Presentase Berhasil 57.5%

Kemampuan model dalam mengklasifikasi citra gambar jamur


mendapatkan hasil sebesar 57%.

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.

Adapun pada penelitian lain, (Devika & Karegowda, 2021)


mengklasifikasikan citra gambar jamur dengan yang dapat dimakan dengan metode
CDNN yang menghasilkan nilai akurasi pengujian 93%. Kemudian (Ketwongsa et
al., 2022) melakukan klasifikasi citra gambar jamur beracun atau dapat dimakan
dengan tingkat akurasi yang tinggi yaitu sebesar 99.50% dibandingkan degan
pretrain model seperti AlexNet, ResNet-50 dan GoogLeNet.

Kedua penelitian diatas memiliki tingkat akurasi yang tinggi dikarenakan


model tersebut dibuat menggunakan dataset yang jauh lebih besar, implementasi
pada high performance computer dan eksperimentasi hyperparameter yang
menyeluruh.

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.

Tabel 4. 3 Tabel Perbandingan Metode

Metode
DCNN CNN CNN

(Devika & Karegowda, 2021) (Ketwongsa et al., 2022) Penulis

Akurasi 93% 99.50% 57%

4.9 Implikasi Hasil


Berdasarkan intepretasi diatas maka didapat implikasi hasil pengujian pada
Tabel 4.3 menghasilkan perbandingan akurasi dengan metode lain dimana CNN
ketika berjalan di desktop memiliki tingat keakurasian yang tinggi dibanding ketika

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.

Berdasarkan hasil kesimpulan tersebut, penulis menganggap penelitian ini


dapat memberikan manfaat dan kontribusi bagi orang yang ingin terjun di dalam
dunia machine learning dan artificial intelligence, menjadi referensi bagi
penelitian yang terkait agar mendorong pemanfaatan bidang ini.

5.2 Saran
Berdasarkan hasil dari penelitian yang telah dilakukan, penulis memiliki
beberapa saran yang perlu ditimbangkan baik untuk penelitian selanjutnya, yaitu
sebagai berikut:

1. Penelitian selanjutnya diharapkan dapat meningkatkan jumlah dataset, variasi


data, jumlah epoch, menambah resolusi citra gambar atau mengubah bentuk
arsitektur model.

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

Aggarwal, C. C. (2018). Neural Networks and Deep Learning. Springer.


https://doi.org/10.1007/978-3-319-94463-0

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.

Alpaydin , E. (2020). Introduction to machine learning.

Amin, E., & Firyal. (2019). JAMUR BASIDIOMYCOTA DI KAWASAN


WISATA ALAM PUCOK KRUENG RABA KABUPATEN ACEH
BESAR. Jurnal Ilmiah Biologi Teknologi Dan Kependidikan, 7(2), 155–162.

Arrofiqoh, E., & Harintaka, H. (2018). IMPLEMENTASI METODE


CONVOLUTIONAL NEURAL NETWORK UNTUK KLASIFIKASI
TANAMAN PADA CITRA RESOLUSI TINGGI. GEOMATIKA, 24, 61.
https://doi.org/10.24895/JIG.2018.24-2.810

Basuki, S. (1991). Pengantar Ilmu Perpustakaan.

Chollet, F. (2017). Deep Learning with Python. Manning.

Danukusumo, K. P., Pranowo, & Maslim, M. (2017). Indonesia ancient temple


classification using convolutional neural network. 2017 International
Conference on Control, Electronics, Renewable Energy and
Communications (ICCREC), 50–54.
https://doi.org/10.1109/ICCEREC.2017.8226709

Devika, G., & Karegowda, A. G. (2021). Identification of Edible and Non-Edible


Mushroom Through Convolution Neural Network. Proceedings of the 3rd
International Conference on Integrated Intelligent Computing
Communication & Security (ICIIC 2021), 312–321.
https://doi.org/10.2991/ahis.k.210913.039

Ferdian Rachardi. (2020). Deteksi gambar gestur kosakata bahasa isyarat


indonesia dengan convolutional neural network.

Firdaushi, N. F., & Basah, A. W. M. (2018). INVENTARISASI JAMUR


MAKROSKOPIS DI KAWASAN HUTAN MBEJI LERENG GUNUNG
ANJASMORO. Biosel: Biology Science and Education, 7(2), 142–146.

Geron, A. (2019). Hands-On Machine Learning with Scikit-Learn, Keras, and


TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems
(2nd ed.). O’Reilly Media, Inc.

Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.

H, N. S. (2012). Pemrograman Aplikasi Mobile Smartphone dan Tablet PC


Berbasis Android.

Hamakonda, T. P. (1978). Pengantar klasifikasi persepuluhan Dewey. Gunung


Mulia.

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

Herlinah, & Musliadi. (2019). Pemograman Aplikasi Android Dengan.

Heryadi, Y., & Irwansyah, E. (2020). Deep Learning: Aplikasinya di Bidang


Geospasial. AWI Technology Press.
Inmon, W. H., & Linstedt, D. (2015). Data Architecture: A Primer for the Data
Scientist – Big Data, Data Warehouse and Data Vault. Morgan Kaufmann.
http://www.sciencedirect.com/science/book/9780128020449

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

Kharisma, A. (2011). What is Android? Tailieuandroid.Googlecode.Com.

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

Putra, I. (2022). KASUS-KASUS KERACUNAN JAMUR LIAR DI


INDONESIA. JURNAL EKOLOGI KESEHATAN, 20(3).
https://doi.org/10.22435/jek.v20i3.4943

Putra, W. S. E., Wijaya, A. Y., & Soelaiman, R. (2016). KLASIFIKASI CITRA


MENGGUNAKAN CONVOLUTIONAL NEURAL NETWORK (CNN)
PADA CALTECH 101. Institut Teknologi Surabaya.
Shwartz, S., David, B., & Shai. (2014). Understanding Machine Learning: From
Theory to Algorithms. Cambridge University Press. https://doi.org/DOI:
10.1017/CBO9781107298019

Siregar, S. P., & Wanto, A. (2017). Analysis of Artificial Neural Network


Accuracy Using Backpropagation Algorithm In Predicting Process
(Forecasting). IJISTECH (International Journal of Information System &
Technology); Vol 1, No 1 (2017): November.
https://doi.org/10.30645/ijistech.v1i1.4

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

Triyanto, A. K. B. I. D. (2016). PREDIKSI WILAYAH RAWAN KEBAKARAN


HUTAN DENGAN METODE JARINGAN SYARAF TIRUAN PROPAGASI
BALIK (Study Kasus : Daerah Kabupaten Kuburaya).

Tyagi, V. (2018). Understanding Digital Image Processing.


https://doi.org/10.1201/9781315123905

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.

Anda mungkin juga menyukai