KLASIFIKASI SPESIES IKAN AIR TAWAR MENGGUNAKAN CONVOLUTIONAL NEURAL NETWORK
SKRIPSI
NISFA FITRI PRATIWI 151402049
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN
2020
KLASIFIKASI SPESIES IKAN AIR TAWAR MENGGUNAKAN CONVOLUTIONAL NEURAL NETWORK
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
NISFA FITRI PRATIWI 151402049
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN
2020
PERNYATAAN
KLASIFIKASI SPESIES IKAN AIR TAWAR MENGGUNAKAN CONVOLUTIONAL NEURAL NETWORK
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, Agustus 2020
Nisfa Fitri Pratiwi 151402049
UCAPAN TERIMA KASIH
Segala puji dan syukur penulis sampaikan kehadirat Allah SWT yang telah memberikan rahmat dan izin-Nya sehinga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar sarjana Komputer pada Program Studi S1 Teknologi Informasi Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Penulis ingin mengucapan terima kasih sedalam-dalamnya dan penghargaan kepada seluruh pihak yang turut serta terlibat dalam masa perkuliahan dan masa pengerjaan skripsi ini hingga selesai:
1. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc selaku Dekan Fasilkom-TI Universitas Sumatera Utara.
2. Bapak Romi Fadillah Rahmat, B.Comp.Sc., M.Sc selaku Ketua Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Ivan Jaya, S.Si., M.Kom selaku Dosen Pembimbing I yang telah memberikan bimbingan dan arahan kepada penulis sehingga skripsi ini dapat terselesaikan.
4. Ibu Ulfi Andayani, S.Kom., M.Kom. selaku Dosen Pembimbing II yang telah memberikan bimbingan, petunjuk, dorongan, dan semangat dalam proses penyelesaian skripsi ini.
5. Ibu Sarah Purnamawati, ST., M.Sc selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
6. Bapak Niskarto Zendrato, S.Kom., M. Kom yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
7. Ayah penulis, Wardi, S.Pdi dan Ibu penulis, Rubiyanti (Alm) yang telah membesarkan, mendidik, mendukung dan mendoakan penulis dalam segala hal.
Kakak dan adik penulis, Wira Setiawan, Anggi Satria Gunarsa, S.P, dan Septi Wardanti yang tak pernah lelah memberi semangat dan mendukung penulis.
8. Sahabat penulis M. Rian Saputra yang telah membantu penulis dalam meyelesaikan skripsi.
9. Teman-teman penulis Marissa Dinda Audia S.Kom, Reskinah Rambe, Karina br Tanggang, Nurmala Sari Ruslan dan Maria Simamora yang telah membantu penulis dalam menyelesaikan skripsi.
Semoga Allah SWT melimpahkan berkah, rahmat, dan hidayahnya kepada semua yang telah memberikan bantuan, perhatian dan dukungan pada penulis dalam menyelesaikan skripsi ini.
Medan, Agustus 2020
Penulis
ABSTRAK
Begitu banyaknya spesies ikan yang mirip menyebabkan kesulitan dalam mengenali spesies ikan secara langsung. Saat ini, proses klasifikasi spesies ikan masih dilakukan menggunakan pengamatan mata secara langsung. Oleh karena itu, diperlukan sebuah system dalam mengklasifikasi spesies ikan melalui pendekatan pengolahan citra dan neural network dengan tujuan agar klasifikasi dapat dilakukan secara efektif dan efisien. Pada penelitian ini, terdapat tiga spesies ikan yang diklasifikasi, yaitu ikan nila, ikan mujair, dan ikan gurame. Metode yang digunakan pada penelitian ini adalah Convolutional Neural Network dan Local Binary Pattern digunakan untuk mengekstraksi fitur tekstur yang ada pada citra. Penelitian ini menggunakan 300 data secara keseluruhan, 210 citra digunakan sebagai data training dan 90 citra digunakan sebagai data testing. Setelah dilakukan pengujian pada penelitian ini, dapat disimpulkan bahwa hasil penelitian ini dinilai sudah cukup baik dalam mengklasifikasikan tiga jenis spesies ikan air tawar serta sudah dapat diterapkan di perangkat bergerak dan menunjukkan bahwa metode yang diajukan mampu melakukan klasifikasi spesies ikan air tawar dengan akurasi sebesar 87,77%.
Kata kunci: klasifikasi spesies ikan, pengolahan citra, Convolutional Neural Network, Local Binary pattern
CLASSIFICATION OF FRESHWATER FISH SPECIES USING A CONVOLUTIONAL NEURAL NETWORK
ABSTRACT
So many similar fish species causes difficulty in fish species directly. This time, the process of classifying fish species is identifying carried out using direct eye observation. Therefore we need a system in classifying fish species through image processing and neural network approaches with the aim that classification can be done effectively and efficiently. In this study, there are 3 species of fish classified, namely tilapia, tilapia fish and carp. The method used in this research is Convolutinal Neural Network and Local Binary Pattern is used to extract texture features that exist in the image. This study used 300 data in total, 210 images are used as data training and 90 images are used as data testing. After testimg in this study, the results of this study were considered to be good enough in classifying three types of freshwater fish species and can be applied in mobile devices and show that the proposed method is able to classify freshwater fish species with an accuracy of 87,77%.
Keyword : fish species classification, image processing, Convolutional Neural Network, Local Binaty Pattern
DAFTAR ISI
Hlm.
PERSETUJUAN ii
PERNYATAAN iii
UCAPAN TERIMA KASIH iv
ABSTRAK vi
ABSTRACT vii
DAFTAR ISI viii
DAFTAR GAMBAR x
DAFTAR TABEL xii
1.1. Latar Belakang 2
1.2. Rumusan Masalah 3
1.3. Batasan Masalah 3
1.4. Tujuan Penelitian 3
1.5. Manfaat Penelitian 3
1.6. Metodologi Penelitian 4
1.7. Sistematika Penulisan 5
BAB 2 LANDASAN TEORI 6
2.1. Ikan Air Tawar 6
2.1.1. Ikan Nila 6
2.1.2. Ikan Mujair 7
2.1.3. Ikan Gurami 8
2.2. Citra Digital 9
2.3. Pengolahan Citra Digital 11
2.4. Scalling 11
2.5. Grayscale 11
2.6. Local Binary Pattern 12
2.7. Convolutional Neural Network 14
2.8. Penelitian Terdahulu 17
BAB 3 ANALISIS DAN PERANCANGAN SISTEM 21
3.1. Data yang Digunakan 21
3.2. Arsitektur Umum 22
3.3. Preprocessing 23
3.3.1. Cropping 23
3.3.2. Resize 23
3.3.3. Grayscale 24
3.4. Feature Extraction (Local Binary Pattern) 25
3.5. Klasifikasi 27
3.6. Perancangan Sistem 30
3.6.1. Rancangan tampilan proses klasifikasi citra dari kamera 30 3.6.2. Rancangan tampilan proses klasifikasi citra dari galeri 31
3.6.3. Rancangan tampilan hasil klasifikasi 33
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM 35
4.1. Implementasi Sistem 35
4.1.1. Spesifikasi Perangkat Keras dan Perangkat Lunak 35
4.1.2. Implementasi Perancangan Antarmuka 36
4.2. Pelatihan Sistem 43
4.3. Pengujian Sistem 43
BAB 5 KESIMPULAN DAN SARAN 50
5.1. Kesimpulan 50
5.2 Saran 50
DAFTAR PUSTAKA 52
LAMPIRAN 54
DAFTAR GAMBAR
Hlm.
Gambar 2.1. Ikan Nila 7 7
Gambar 2.2. Ikan Mujair 8
Gambar 2.3. Ikan Gurame 9
Gambar 2.4. Ilustrasi Citra Digital 10
Gambar 2.5. Citra RGB dan Grayscale Image 12
Gambar 2.6. Circular Neighbourhood 12
Gambar 2.7. Proses Perhitungan Sederhana LBP 13
Gambar 2.8. Arsitektur Convolutional Neural Network 14
Gambar 2.9. Alur pada Convolution Layer 15
Gambar 2.10. Contoh gambar operasi Max Pooling 16
Gambar 2.11. Contoh Fully Connected Layer 17
Gambar 3.1. Asitektur Umum 22
Gambar 3.2. Citra hasil Grayscale 23 23
Gambar 3.3. Citra hasil Local Binary Pattern 24
Gambar 3.4. Nilai input (a), Feature Detector (b) dan Feature Map (c) 26
Gambar 3.5. Pergeseran Matriks 27
Gambar 3.6. Hasil Perhitungan Convolutional 28
Gambar 3.7. Hasil Proses Max Pooling 28
Gambar 3.8. Proses Flattering 29
Gambar 3.9. Rancangan tampilan pengambilan citra dari kamera 30 Gambar 3.10. Rancangan tampilan import citra dari galeri 31 Gambar 3.11. Rancangan tampilan klasifikasi citra dari galeri 32
Gambar 3.12. Rancangan tampilan hasil klasifikasi 33
Gambar 4.1. Tampilan permohonan akses kamera 35
Gambar 4.2. Tampilan media penyimpanan 36
Gambar 4.3. Tampilan awal 37
Gambar 4.4. Tampilan akses galeri 38
Gambar 4.5. Tampilan import citra dari galeri 39
Gambar 4.6. Tampilan klasifikasi citra dari galeri 40
Gambar 4.7. Tampilan hasil klasifikasi 41
Gambar 4.8. Hasil proses pelatihan sistem 42
DAFTAR TABEL
Hlm.
Tabel 2.1. Klasifikasi ilmiah ikan nila 7
Tabel 2.2. Klasifikasi ilmiah ikan mujair 8
Tabel 2.3. Klasifikasi ilmiah ikan gurame 9
Tabel 2.4. Penelitian terdahulu 19
Tabel 3.1. Data Latih dan Data Uji 21
Tabel 3.2. Matriks citra warna ukuran 3 3 piksel 24 Tabel 3.3. Hasil konversi citra warna menjadi citra keabuan 25 Tabel 3.4. Penentuan pusat piksel Local Binary Pattern 26 Tabel 3.5. Nilai perbandingan Local Binary Pattern 26
Tabel 3.6. Perhitungan nilai Local Binary Pattern 26
Tabel 3.7. Nilai Local Binary Pattern 27
Tabel 4.1. Hasil pengujian model 43
Tabel 4.2. Nilai TP, FP dan FN 43
Tabel 4.3. Hasil pengujian sistem 45
BAB 1
PENDAHULUAN
1.1. Latar Belakang
Indonesia merupakan negara kepulauan dengan tingkat biodiversitas tertinggi setelah Brazil. Secara geografis wilayah Indonesia berada di antara dua samudera, yaitu Samudera Hindia dan Pasifik sehingga membuat keanekaragaman hayati melimpah.
Keanekaragaman ikan di Indonesia sangat banyak. Di Asia Tenggara terdapat 2917 jenis ikan air tawar yang teridentifikasi. Jumlah jenis ikan air tawar Indonesia berdasarkan koleksi yang ada di Museum Zoologi Bogor sekitar 1300 jenis, hampir 44% ikan di Asia Tenggara berada di Indonesia. Jumlah setiap jenis ikan pada pulau- pulau besar di Indonesia berbeda. Jenis ikan di Kalimantan berjumlah sekitar 394 jenis dengan 149 jenis endemik (38%), di Sumatera ada 272 jenis dengan 30 jenis endemik (11%), di Jawa berjumlah 132 jenis dengan 52 jenis endemik (9%) dan di Sulawesi berjumlah 68 jenis dengan 52 jenis endemik (76%) (Kottelat et al., 1993).
Subsektor yang berperan penting dalam menunjang sektor pertanian di Indonesia adalah sektor perikanan, baik sektor perikanan darat pantai maupun laut.
Hal ini dikarenakan wilayah Indonesia yang berupa daratan yang dikelilingi lautan, banyaknya daerah aliran sungai, waduk, rawa dan danau berperan penting sebagai sumber penghidupan bagi penduduk Indonesia. Wilayah ini akan menjadi tumpuan bagi pembangunan bangsa sehingga potensinya menjadi penting bagi Negara (Saputra, 2013).
Begitu banyaknya spesies ikan menyebabkan sulitnya untuk membedakan jenis ikan secara langsung, seperti membedakan ikan air tawar dengan jenis ikan nila, ikan mujair dan ikan gurame. Saat ini, proses klasifikasi spesies ikan masih dilakukan dengan menggunakan pengamatan mata dan asumsi masing-masing individu, sehingga proses klasifikasi membutuhkan waktu yang lama dan kemungkinan menyebabkan tingkat kesalahan yang tinggi.
Beberapa penelitian yang berhubungan dengan klasifikasi ikan baik ikan air tawar maupun ikan air laut yang telah dilakukan dengan beragam metode, baik dari segi ekstraksi fitur maupun sistem klasifikasi. Khotimah et al., (2015) melakukan penelitian klasifikasi pada ikan tuna menggunakan ekstraksi fitur tekstur Gray Level Co-occurrence Matrix (GLCM) dan ekstraksi fitur bentuk Sobel filter dengan menggunakan metode decision tree. Sebelumnya, citra ikan tuna disegmentasi dengan mengenali tepi objek ikan menggunakan Sobel filter. Setelah itu, ekstraksi fitur tekstur Gray Level Co-occurrence Matrix (GLCM). Tingkat akurasi yang didapat yaitu sebesar 88%.
Alsmadi et al., (2010) melakukan penelitian dengan melakukan ekstraksi fitur warna RGB (Red Green Blue) menggunakan histogram warna yang kemudian dilanjutkan dengan ekstraksi fitur tekstur berdasarkan Gray Level Co-occurrence Matrix (GLCM). Dengan melakukan segmentasi citra dengan memfokuskan bagian perut ikan, peneliti berhasil melakukan klasifikasi ikan berdasarkan famili, khususnya untuk membedakan ikan beracun dan tidak beracun. Beberapa spesies ikan yang memiliki kemiripan warna menyebabkan kesulitan klasifikasi. Ekstraksi fitur tekstur menggunakan Gray Level Co-occurrence Matrix (GLCM) membantu untuk identifikasi ciri-ciri spesifik pada spesies yang memiliki kemiripan tersebut. Dari sejumlah 610 citra dataset, tingkat akurasi yang didapatkan menggunakan klasifikasi Backpropagation mencapai 84%.
Terdapat banyak metode yang dapat digunakan dalam melakukan pengolahan citra, salah satu metode yang digunakan adalah metode Convolutional Neural Network (CNN). Convolutional Neural Network (CNN) merupakan salah satu metode Deep Learning (DL) yang dapat digunakan untuk mendeteksi dan mengenali sebuah objek pada sebuah citra digital. Deep Learning merupakan salah satu bidang dari Machine Learning. Convolutional Neural Network (CNN) merupakan jaringan yang dibuat dengan masukan berupa citra (gambar). Jaringan ini memiliki lapisan khusus yang dinamakan dengan lapisan konvolusi dimana pada lapisan ini sebuah citra yang dimasukkan akan menghasilkan sebuah pola dari beberapa bagian citra yang nantinya akan lebih mudah untuk diklasifikasikan. Teknik ini dapat membuat fungsi pembelajaran citra menjadi lebih efisien untuk diimplementasikan. Penelitian selanjutnya dengan menggunakan Convolutional Neural Network (CNN) yaitu penerapan Convolutional Neural Network untuk Content-Based Image Retrieval atau
pencarian inforrmasi dalam bentuk citra dengan akurasi sebesar 89% (Hidayat et al., 2018). Oleh karena itu, peneliti akan memanfaatkan Convolutional Neural Network (CNN) untuk mengklasifikasikan jenis-jenis ikan air tawar yaitu ikan nila, ikan mujair dan ikan gurami sehingga masyarakat dapat membedakan bentuk dari ikan tersebut.
Berdasarkan latar belakang di atas, maka penulis mengajukan proposal penelitian dengan judul “Klasifikasi Ikan Air Tawar Menggunakan Convolutional Neural Network”.
1.2. Rumusan Masalah
Begitu banyaknya varietas spesies ikan yang memiliki ciri yang mirip menyebabkan kesulitan pengenalan jenis ikan secara visual. Saat ini, proses klasifikasi ikan dilakukan dengan menggunakan pengamatan mata secara langsung dan asumsi personal. Oleh karena itu, diperlukan sebuah sistem untuk melakukan klasifikasi spesies ikan khususnya ikan air tawar sehingga pengenalan dapat dilakukan secara efektif dan efisien.
1.3. Batasan Masalah
Dalam penelitian ini, adapun batasan dari penjabaran permasalahan adalah sebagai berikut:
1. Terdapat tiga jenis ikan yang diklasifikasi, yaitu ikan Nila, ikan Mujair dan ikan Gurami.
2. Citra spesies ikan yang diambil adalah sisi samping ikan.
3. Citra spesies ikan dalam format JPG.
4. Jarak pengambilan citra spesies ikan tidak lebih dari satu meter.
1.4. Tujuan Penelitian
Tujuan dari penelitian ini adalah mengklasifikasikan spesies ikan air tawar berdasarkan fitur tekstur dengan menggunakan Convolutional Neural Network.
1.5. Manfaat Penelitian
Adapun manfaat dari penelitian ini adalah sebagai berikut:
1. Membantu proses klasifikasi spesies ikan air tawar yang dilakukan oleh pembudidaya ikan air tawar.
2. Menjadi referensi dalam penelitian akademik, khususnya penelitian implementasi Convolutional neural network.
1.6. Metodologi Penelitian
Tahapan-tahapan yang akan dilakukan dalam penelitian ini adalah sebagai berikut:
1.6.1 Studi Literatur
Studi literatur dilakukan untuk mengumpulkan berbagai bahan referensi mengenai image processing, metode Convolutional Neural Network, klasifikasi ikan dari berbagai jurnal, artikel, buku dan beberapa sumber referensi lainnya.
1.6.2 Analisis Permasalahan
Analisis permasalahan merupakan tahap menganalisis seluruh referensi yang dikumpulkan pada tahapan sebelumnya.
1.6.3 Perancangan Sistem
Perancangan sistem merupakan tahapan merancang arsitektur, pengumpulan data, penentuan training dataset dan testing dataset, serta perancangan antarmuka berdasarkan hasil analisis permasalahan studi literatur.
1.6.4 Implementasi Sistem
Implementasi sistem merupakan tahapan mengimplementasikan perancangan sistem yang dihasilkan pada tahapan sebelumnya menjadi kode-kode tersusun sehingga tercipta sistem yang sesuai dengan tujuan penelitian berdasarkan studi literatur dan analisis permasalahan.
1.6.5 Pengujian Sistem
Pengujian sistem merupakan tahapan melakukan pengujian terhadap sistem yang sudah dibangun pada tahapan sebelumnya. Tahapan ini berguna untuk memastikan bahwa sistem yang telah dibangun dapat digunakan untuk melakukan klasifikasi spesies ikan sesuai dengan tujuan penelitian.
1.6.6 Dokumentasi Sistem dan Penyusunan Laporan
Dokumentasi sistem dan penyusunan laporan merupakan tahapan melakukan dokumentasi dan menyusun laporan hasil analisis dan perancangan sistem serta implementasi dan pengujian sistem klasifikasi spesies ikan menggunakan Convolutional Neural Network.
1.7. Sistematika Penulisan
Sistematika penulisan penelitian ini terdiri dari lima bagian, yaitu:
Bab 1: Pendahuluan
Bab ini berisi penjelasan tentang latar belakang masalah, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian, serta sistematika penulisan.
Bab 2: Landasan Teori
Bab ini berisi dasar teori-teori yang digunakan dalam analisis dan perancangan sistem serta implementasi dan pengujian sistem yang digunakan pada penelitian ini. Teori- teori yang berhubungan antara lain 3 jenis ikan air tawar yaitu ikan nila, ikan mujair, dan ikan gurami. pengolahan citra, Grayscale, Local Binary Pattern, serta Convolutional Neural Network.
Bab 3: Analisis dan Perancangan
Bab ini berisi analisis terhadap fokus permasalahan penelitian dan perancangan sistem, dari langkah analisis data, preprocessing, ekstraksi fitur, hingga implementasi sistem.
Bab 4: Implementasi dan Pengujian
Bab ini berisi implementasi dan pengujian dari analisis dan perancangan pada bab sebelumnya.
Bab 5: Kesimpulan dan Saran
Bab ini berisi kesimpulan dari seluruh pembahasan pada bab sebelumnya dan saran yang diajukan penulis guna perbaikan dan pengembangan penelitian selanjutnya.
BAB 2
LANDASAN TEORI
2.1. Ikan Air Tawar
Ikan air tawar merupakan ikan yang hidupnya berada di air tawar seperti sungai dan danau. Lingkungan air tawar sangat berbeda dengan lingkungan perairan laut, yang paling membedakan ialah tingkat salinitasnya. Untuk dapat bertahan di air tawar, ikan membutuhkan adaptasi fisiologis yang bertujuan untuk menjaga keseimbangan konsentrasi ion dalam tubuh.
Ikan jenis air tawar sangat mudah untuk dipelihara dan dikembangbiakkan.
Ikan air tawar dikembangbiakkan bagi para petani ikan untuk memenuhi kebutuhan hidup atau sebagian orang mengembangbiakkannya untuk konsumsi sendiri.
2.1.1. Ikan Nila
Habitat ikan nila adalah air tawar, seperti sungai, waduk, danau, dan rawa-rawa tetapi karena toleransi ikan nila tersebut sangat luas terhadap salinitas sehingga dapat pula hidup denngan baik di air payau. Pertumbuhan dan perkembangbiakan ikan nila yang terbilang cepat membuat ikan nila banyak dibudidaya. Dalam pertumbuhannya, ikan nila memiliki bobot sekitar 250g pada stadium dewasa dengan usia 4-5 minggu.
Parameter lingkungan ikan nila juga mempengaruhi kehidupannya secara langsung yang membuat perbedaan secara morfologi. Ikan nila yang hidup di air tawar tubuhnya akan berwarna abu cerah dan ada yang merah sesuai dengan jenis dari ikan nila tersebut. Ikan nila yang hidup di air payau memiliki sisik yang berwarna kehitaman dan lebih pucat. Bentuk tubuh bulat pipih dan terlihat lebih lebar. Ikan nila memiliki sirip atas yang tajam dan terlihat tulang siripnya memanjang. Ikan nila juga memiliki banyak jenisnya seperti ikan nila merah, ikan nila hitam, dan masih banyak lagi (Mujalifah et al., 2018). Gambar 2.1 menunjukkan ikan nila.
Gambar 2.1 Ikan Nila (www.pustakapertanian.com) Klasifikasi ikan nila dapat dilihat pada Tabel 2.1.
Tabel 2.1 Klasifikasi ilmiah ikan nila
2.1.2. Ikan Mujair
Ikan Mujair merupakan jenis ikan air tawar, bentuk badan pipih dengan warna abu-abu, coklat atau hitam. Mujair memiliki bentuk badan yang pipih dan memanjang, bersisik kecil-kecil bertipe stenoid, tubuh memiliki garis vertikal, sirip ekor memiliki garis berwarna merah. Warna ikan ini tergantung pada lingkungan atau habitat yang di huni.
Mulutnya agak besar dan mempunyai gigi-gigi yang halus. Letak mulut terminal atau di ujung tubuh. Posisi sirip perut terhadap sirip dada adalah thoracic.
Linea lateralis tidak sempurna atau terputus menjadi dua bagian. Jumlah sisik pada garis rusuk bagian atas 18 -21 buah dan pada garis rusuk bagian bawah ada 10 -15 buah. Sirip dada dan sirip perut berwarna hitam kemerahan, sedangkan sirip punggung dan sirip ekor berwarna kemerah-merahan pada ujung-ujungnya (Cahyono, 2000).
Ikan mujair dibedakan menjadi beberapa jenis, antara lain mujair biasa, mujair merah dan mujair albino. Berdasarkan warna sisik, ikan ini dapat dibedakan ke dalam empat varitas, yaitu mujair dengan warna sisik abu-abu, abu-
Tingkat takson Deskripsi ikan nila
Kingdom Animalia
Filum Chordata
Kelas Osteichyes
Ordo Percomorphi
Famili Cichlidae
Genus Oreochromis
Spesies Oreochromis niloticus
abu bercak putih, putih hitam dan merah (Sugiarti, 1988). Gambar 2.2 menunjukkan ikan mujair.
Gambar 2.2 Ikan Mujair (www.urbanina.com) Klasifikasi ilmiah ikan mujair dapat dilihat pada Tabel 2.2.
Tabel 2.2 Klasifikasi ilmiah ikan mujair Tingkat takson Deskripsi ikan mujair
Kingdom Animalia
Filum Chordata
Kelas Actinopterygii
Ordo Perciformes
Famili Cichlidae
Genus Oreochromis
Spesies Oreochromis mossambicus
2.1.3. Ikan Gurami
Ikan ini dapat dikenali dengan ciri-ciri morfologi seperti bentuk tubuh pipih, terdapat sirip dada yang memanjang sampai dengan pertengahan sirip anal pada ikan dewasa dan melewati ujung sirip anal pada ikan muda, sisik stenoid, garis lateral lengkap, bentuk mulut kecil. Postur tubuh tinggi (tinggi tubuh satu per 1,8- 2,1 bagian dari panjang bahu). Pada individu muda terdapat tujuh buah garis vertical yang akan tetap ada seumur hidup. Bentuk tubuh ikan muda dan dewasa berbeda, pada ikan muda memiliki bentuk kepala yang lancip, sedangkan ikan dewasa memiliki tubuh yang lebih kokoh dengan bentuk dahi kepala yang agak cembung. Ikan dewasa jantan bewarna kekuningan agak mencolok.
Ikan gurami memiliki bentuk sirip atas yang lebih runcing, sirip bawah yang lebar dan memiliki sepasang benang di bagian bawah sebagai alat peraba. Dari segi warnanya ikan gurami memiliki 3 jenis yaitu gurami hitam, gurami putih dan gurami belang (Rachmatika., 2010). Gambar 2.3 menunjukkan ikan gurame.
Gambar 2.3 Ikan Gurami (www.ilmubudaya.com) Klasifikasi ilmiah ikan gurami dapat dilihat pada Tabel 2.3.
Tabel 2.3 Klasifikasi ilmiah ikan gurame Tingkat takson Deskripsi ikan gurame
Kingdom Animalia
Filum Chordata
Kelas Actinopterygii
Ordo Perciformes
Famili Osphronemidae
Genus Osphronemus
Spesies Osphronemus goramy
2.2. Citra Digital
Secara umum, pengolahan citra digital menunjuk pada pemrosesan gambar 2 dimensi menggunakan komputer. Dalam konteks yang lebih luas, pengolahan citra digital mengacu pada pemrosesan setiap data 2 dimensi. Citra digital merupakan sebuah larik (array) yang berisi nilai-nilai real maupun komplek yang direpresentasikan dengan deretan bit tertentu.
Suatu citra dapat didefenisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinal spasial, dan amplitudo f di titik koordinat (x,y) dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila nilai x, y, dan nilai amplitudo f secara keseluruhan berhingga dan bernilai diskrit maka dapat dikatakan bahwa citra tersebut adalah citra digital. Perpotongan antara kolom dan baris merupakan elemen matriks yang disebut dengan piksel (Putra, 2010).
Representasi dari matriks dua dimensi adalah sebagai berikut:
f(x,y) = [
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )
] (2.1)
Secara matematis, batasan-batasan matriks dua dimensi f(x,y) didefinisikan sebagai berikut:
0 ≤ x ≤ (N - 1)
0 ≤ y ≤ (M - 1) (2.2) 0 ≤ f(x,y) ≤ (G - 1)
Dengan keterangan sebagai berikut:
x = baris piksel pada citra y = kolom piksel pada citra
f(x,y) = nilai skala derajat keabuan piksel (x,y) pada citra M = jumlah kolom pada matriks dua dimensi
N = jumlah baris pada matriks dua dimensi G = nilai skala derajat keabuan
Pengolahan gambar citra atau digital image processing adalah ilmu yang mempelajari tentang manipulasi dan modifikasi citra, seperti perbaikan kualitas citra, pemilihan ciri citra (feature images) yang bertujuan untuk analisis dan transformasi citra (rotasi, skala, translasi) dengan menggunakan komputer untuk mendapatkan hasil yang lebih baik. Tujuan dari proses pengolahan citra ini agar citra asli yang kurang sempurna lebih mudah untuk diolah dengan cara memodifikasi citra menjadi citra lain.
Ilustrasi citra digital dengan M = 16 dan N = 16 ditunjukkan pada Gambar 2.4.
Pada gambar tersebut, nilai yang ditunjuk oleh tanda panah f(x,y) menunjukkan koordinat x = 10 dan y = 3 dengan skala derajat keabuan 110. Secara matematis, dapat ditulis dengan persamaan f(10,3) = 110.
Gambar 2.4 Ilustrasi citra digital (Putra, 2010)
2.3. Pengolahan Citra Digital
Pengolahan citra digital adalah sebuah disiplin ilmu yang mempelajari tentang teknik- teknik mengolah citra. Citra yang dimaksud disini adalah gambar diam (foto) maupun gambar bergerak. Sedangkan digital disini mempunyai maksud adalah pengolahan citra/gambar dilakukan secara digital menggunakan komputer (Kusumanto &
Tompunu, 2011). Pengolahan citra merupakan salah satu cara untuk mendapatkan data atau informasi yang didapatkan pada suatu citra. Proses analisis data sering digunakan dalam pengambilan data pada suatu citra.
2.4. Scalling
Scaling bertujuan untuk mengubah ukuran piksel suatu citra. Hal ini dilakukan karena setiap citra belum tentu memiliki ukuran yang sama. Scaling juga digunakan untuk memperkecil citra digital agar jumlah piksel yang akan diolah tidak terlalu banyak.
Besarnya jumlah piksel mempengaruhi waktu komputasi. Semakin banyak piksel maka semakin besar juga waktu yang dilakukan untuk komputasi.
nilai skala { ) Rumus:
X`=Sh x
Y`=Sv y (2.3)
Keterangan:
Sh = faktor skala horizontal Sv = faktor skala vertical 2.5. Grayscale
Grayscale adalah suatu citra yang hanya memiliki warna tingkat keabuan. Grayscale image hanya membutuhkan nilai intensitas tunggal dibandingkan dengan RGB image yang membutuhkan tiga intensitas untuk tiap pikselnya. Pada umumnya citra grayscale memiliki penyimpanan 8 bit sehingga dapat menampung 256 tingkatan skala abu-abu dimana tiap piksel memiliki intensitas 0 hingga 255 dengan 0 menjadi hitam dan 255 menjadi putih. Contoh dari grayscale image dapat dilihat pada gambar 2.5 dan proses konversi bisa dilihat dalam persamaan 2.4.
(2.4)
Dimana:
I = nilai intensitas keabuan sebuah piksel citra hasil grayscaling R = nilai komponen merah pada sebuah piksel
G = nilai komponen hijau sebuah piksel B = nilai komponen biru sebuah piksel
Gambar 2.5 Citra RGB (kanan) dan Grayscale image (kiri) (https://www.tutorialspoint.com)
2.6. Local Binary Pattern
Local Binary Pattern (LBP) merupakan metode yang dapat menghasilkan dan mendeskripsikan tekstur dari sebuah citra grayscale. LBP bekerja dengan memanfaatkan nilai pixel ketetanggan yang tersebar melingkar (circular neighborhood) dengan berbagai jenis ukuran yang direpresentasikan dalam bentuk matrix.
Gambar 2.6. Circular neighbourhood
Operator LBP bekerja dengan delapan konektivitas piksel dengan menggunakan nilai piksel pusat sebagai nilai ambang batas. Jika nilai piksel memiliki warna abu-abu yang lebih tinggi dari nilai piksel pusat (atau nilai abu-abu yang sama) maka piksel tersebut akan bernilai 1 namun jika tidak hasilnya adalah 0. Nilai LBP piksel pusat kemudian didapat dari hasil penjumlahan kedelapan konektivitas.
Gambar 2.7. Proses Perhitungan Sederhana LBP
Terdapat fitur yang bernama histogram, yang mana fitur tersebut berguna sebagai data statistik yang akan digunakan untuk mengolah data dari nilai piksel ketetanggaan. Setiap piksel yang memiliki nilai ketetanggaan ke-n dapat disebut sebagai threshold, yang mana menggunakan nilai keabuan (grayscale) dari persamaan 2.5 dan fungsi threshold s(x) pada persamaan 2.6.
LBPP,R (xc,yc) = ∑ (gp – gc)2P (2.5) s(x){
(2.6)
Keterangan:
P : Jumlah piksel tetangga R : Nilai radius
gc : Nilai piksel x, y gp : Nilai piksel tetangga xc,yc : koordinat pusat
Hasil LBP berupa kode Local Binary Pattern yang kemudian direpresentasikan melalui histogram. Histogram LBP menunjukkan frekuensi kemunculan nilai LBP. Nilai Histogram LBP dari sebuah citra berukuran N × M direpresentasikan dengan persamaan 2.7 dan 2.8.
H(k) = ∑
∑ ( ( ) ) [ ] (2.7) ( ) {
(2.8)
2.7. Convolutional Neural Network
Convolutional Neural Network (CNN) adalah salah satu dari jenis neural network yang biasa digunakan pada data image. CNN juga dapat digunakan untuk mendeteksi dan mengenali objek pada sebuah image. Secara garis besar Convolutional Neural Network (CNN) tidak jauh beda dengan neural network biasanya. CNN terdiri dari neuron yang memiliki weight, bias dan activation function. Convolutional memiliki layer-layer yang terdiri dari neuron yang tersusun sedemikian rupa sehingga membentuk sebuah filter dengan panjang dan tinggi (piksel).
CNN dapat memiliki puluhan atau ratusan lapisan yang masing-masing lapisannya belajar untuk mendeteksi fitur-fitur yang berbeda dari suatu citra.
Convolutional Neural Network akan memfilter ke setiap citra latihan yang diterapkan pada resolusi yang berbeda-beda dan output dari setiap gambar yang dikonvolusi akan digunakan sebagai input ke lapisan berikutnya.
Pada CNN, setiap neuron direpresentasikan dalam bentuk dua dimensi. CNN hampir sama dengan neural network pada umumnya yang memiliki neuron yang memiliki bobot dan bias. CNN memiliki 1 tahap training. Arsitektur Convolutional Neural Network dapat dilihat pada gambar 2.8.
Gambar 2.8. Arsitektur Convolutional Neural Network (http://www.bagustris.blogspot.com)
Convolutional Neural Network memiliki 4 layer utama, yaitu : 1. Convolutional Layer
Convolutional Layer adalah sebuah inti utama dari CNN, dimana layer ini memiliki sebuah kumpulan filter yang dapat digunakan untuk mempelajari citra masukan. Pada layer ini, akan dilakukan operasi konvolusi terhadap input ataupun output dari layer sebelumnya. Konvolusi adalah suatu istilah
matematis yang berarti mengaplikasikan sebuah fungsi pada output fungsi lain secara berulang. Tujuan dilakukannya konvolusi pada data citra adalah untuk mengekstraksi fitur dari citra input. Konvolusi akan menghasilkan transformasi linear dari data input sesuai informasi spasial pada data. Bobot pada layer tersebut menspesifisikasikan kernel konvolusi yang digunakan, sehingga kernel konvolusi dapat dilatih berdasarkan input pada CNN (Suartika et al, 2016). Berikut Persamaan yang digunakan untuk menghitung pergeseran matriks :
h(i,j) = A*P1 + B*P2 +C*P3 + D*P4 + E*P5 + F*P6 + G*P7 + H*P8 + I*P9 (2.9)
Keterangan :
h(i,j) = hasil dari perkalian matriks kernel A dengan input
P A-I = nilai matriks input yang dikalikan dengan matriks kernel P1-9 = nilai matriks kernel yang dikalikan dengan matriks input image P Contoh Convolution Layer dapat dilihat pada gambar 2.9.
Gambar 2.9. Contoh Convolution Layer (http://sofyantandungan.com) 2. Max Pooling
Max Pooling adalah proses mereduksi ukuran sebuah data citra. Dalam pengolahan citra, max pooling juga bertujuan untuk meningkatkan invariansi pada fitur. Umumnya, metode subsampling yang digunakan adalah max pooling. Max pooling membagi output dari convolution layer menjadi beberapa grid kecil lalu mengambil nilai maksimal dari setiap grid untuk menyusun matriks image yang telah direduksi. Fungsi dari max pooling adalah
agar dimensi dari ukuran matriks berkurang sehingga saat masuk ke Fully Connected matriks yang ada tidak terlalu banyak. Contoh gambar operasi Max Pooling dapat dilihat pada gambar 2.10.
Gambar 2.10. Contoh gambar operasi Max Pooling (http://www.mc.ai.com)
3. Relu Layer
ReLu Layer adalah layer yang akan mengubah nilai minus (lebih kecil 0) dengan nilai sama dengan 0. Layer ini mengaplikasikan fungsi aktivasi tak jenuh pada node ( ) = + = 𝑚𝑎 (0,). Layer ini meningkatkan sifat non-linier dari fungsi pengambil keputusan dan semua jaringan tanpa mempengaruhi bidang reseptif dari Convolutional Layer.
4. Fully Connected Layer
Fully Connected Layer yaitu layer yang berisi Deep Neural Network. Batasan Deep Neural Network semuanya berhubungan karena masing-masing node antar layer saling berhubungan dengan garis-garis. Garis tersebut terdiri dari 3 yaitu input layer, hidden layer dan output layer. Input layer harus sesuai antara jumlah node dengan atribut dari data. Hidden layer jumlah node dan jumlah layer ditentukan sesuai dengan observasi. Output layer meliputi jumlah kelas, misalnya dalam penelitian ini ada 3 class yaitu ikan nila, ikan mujair dan ikan gurame. Neuron pada Fully Connected Layer memiliki hubungan yang lengkap pada semua aktivasi dalam layer sebelumnya. Aktivasi tersebut kemudian di komputasi dengan sebuah perkalian matriks diikuti oleh bias offset. Contoh Fully Connected Layerdapat dilihat pada gambar 2.11.
Gambar 2.11. Contoh Fully Connected Layer (http://sofyantandungan.com)
2.8. Penelitian Terdahulu
Beberapa penelitian yang berhubungan dengan klasifikasi ikan sebelumnya telah dilakukan dengan beragam metode, baik dari segi ekstraksi fitur maupun sistem klasifikasi. Iscimen et al., (2017) melakukan penelitian dengan melakukan klasifikasi 6 spesies keluarga Serranidae (Epinephelus aeneus, Epinephelus caninus, Epinephelus costae, Epinephelus marginatus, Hyporthodus haifensis, Mycteroperca rubra). Dalam setiap gambar, seekor ikan terletak di lantai latar belakang putih dengan posisi yang sama dan gambar diambil dari jarak yang berbeda. Kombinasi proses manual dan algoritma otomatis diterapkan pada gambar sampai mendapatkan gambar sampel ikan. Kemudian mengimplementasikan ekstraksi fitur berdasarkan ruang warna HSV (Hue Saturation Value) dan digunakan karena mengekstraksi informasi spesifik spesies dari sampel ikan.Setelah selesai dari fitur yang diekstraksi, hasilnya diproses dalam algoritma Nearest Neighbor. Data yang digunakan dalam penelitian ini sebanyak 112 sampel ikan dari 6 spesies diklasifikasikan dengan pencapaian akurasi keseluruhan 86%.
Ogunlana et al., (2015) melakukan penelitian dengan mengklasifikasikan ikan dengan menggunakan metode Support Vector Machine (SVM). Peneliti menggunakan 76 ikan sebagai perangkat pelatihan sementara yang kedua terdiri dari 74 ikan sebagai perangkat uji. Penelitian ini menggunakan jenis ikan Ethmalosa Fimbriata dan Tritor Scomberomorow untuk diklasifikasikan. Dalam penelitian ini, klasifikasi ikan berdasarkan bentuk panjang badan dan lima sirip (anal, causal, dorsal, panggul dan
dada). Sistem menggunakan SVM untuk analisis dan kemudian mengklasifikasikan spesies ikan dengan fitur atau karakteristik menggunakan hyper-plane untuk memisahkan spesies ikan kedalam kategori. Hasil berdasarkan metode ini menunjukkan akurasi klasifikasi 78,59%.
Alsmadi et al. (2010) melakukan penelitian dengan melakukan ekstraksi fitur warna RGB (Red Green Blue) menggunakan histogram warna yang kemudian dilanjutkan dengan ekstraksi fitur tekstur berdasarkan GLCM (Gray Level Cooccurrence Matrix). Dengan melakukan segmentasi citra dengan memfokuskan bagian perut ikan, peneliti berhasil melakukan klasifikasi ikan berdasarkan famili, khususnya untuk membedakan ikan beracun dan tidak beracun. Beberapa spesies ikan yang memiliki kemiripan warna menyebabkan kesulitan klasifikasi. Ekstraksi fitur tekstur menggunakan GLCM membantu untuk identifikasi ciri-ciri spesifik pada spesies yang memiliki kemiripan tersebut. Dari sejumlah 610 citra dataset, tingkat akurasi yang didapatkan menggunakan klasifikasi backpropagation mencapai 84%.
Ramadhani et al., (2018) melakukan penelitian dengan mengklasifikasikan menggunakan metode ORB dan KNN. Penelitian ini tidak melewati tahap pre- processing karena data yang digunakan juga untuk diuji dengan background yang beda untuk fitur yang dihasilkan. Pengaplikasian dari metode ORB diterapkan untuk ekstraksi fitur dari gambar yang diambil dengan menambah komponen dan membuat rotasi pada citra. Kemudian hasil tersebut akan diklasifikasi menggunakan KNN untuk menentukan label kelas yang tepat dari input data ikan. Dataset ikan yang digunakan terdiri dari 165 citra yang dikumpulkan yakni 40 untuk testing dan 125 untuk training dari 15 jenis ikan. Hasil uji coba menunjukkan bahwa metode yang diusulkan pada penelitian ini mencapai akurasi klasifikasi sebesar 97,5%.
Wijaya, Alex (2018) melakukan penelitian dengan mengklasifikasikan spesies ikan menggunakan Probabilistic Neural Network. Penelitian ini menggunakan 141 data dimana 112 sebagai data training dan 29 sebagai data testing. Penelitian ini menggunakan jenis ikan air tawar famili scombridae yaitu jenis ikan tuna, ikan cakalang, dan ikan tongkol dengan kondisi di daratan (out of water). Pendekatan yang diajukan memanfaatkan ROI (region of interest) berupa bagian perut ikan. Kombinasi ekstraksi fitur ciri GIM (Geometric Invariant Moment), ekstraksi fitur tekstur GLCM (Gray Level Co-occurrence Matrix), dan ekstraksi fitur warna HSV (Hue Saturation Value) digunakan untuk mengekstraksi fitur yang ada pada citra. Untuk proses
penentuan jenis spesies ikan, metode yang digunakan adalah Probabilistic Neural Network. Berdasarkan hasil penelitian terhadap 112 citra data training dan 29 citra data testing, diperoleh tingkat akurasi sebesar 89,65%.
Tabel 2.4 Penelitian Terdahulu
No. Peneliti (Tahun) Judul Keterangan
1. Iscimen, B., Kutlu, Y. & Turan, C.
(2017)
Classification of Serranide Species Using Color Based Statistical Features
Ekstraksi fitur warna HSV
Klasifikasi Using Color Based Statistical Features
2. Ogunlana, S.O., Olabode, O., Oluwadare, S.A.A.
& Iwasokun, G. B.
(2015)
Fish Classification Using Support Vector Machine
Klasifikasi Support Vector Machine
3. Alsmadi, M.K., Omar, K.B., Noah, S.A.M. &
Almarashdeh, I.
(2010)
Fish classification based on robust features extraction from color signature using back-propagation classifier
Ekstraksi fitur warna RGB dan fitur tekstur GLCM
Klasifikasi backpropagation 4. Ramadhani, M. &
Murti, D.H. (2018)
Klasifikasi Ikan
menggunakan Oriented Fast and Rotated Brief (ORB) dan K-neast Neighbor (KNN)
Ekstraksi fitur Oriented Fast and Rotated Brief (ORB)
Klasifikasi K-neast Neighbor (KNN) 5. Wijaya, Alex
(2018)
Klasifikasi Spesies Ikan Menggunakan Probabilistic Neural Network
ekstraksi fitur ciri GIM (Geometric Invariant Moment), ekstraksi fitur tekstur GLCM (Gray Level Co- occurrence Matrix),
dan ekstraksi fitur warna HSV (Hue Saturation Value)
Klasifikasi menggunakan
Probabilistic Neural Network
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Bab ini membahas tentang implementasi data dan teknik yang digunakan untuk melakukan klasifikasi spesies ikan. Adapun dua tahap yang dibahas, yaitu tahap analisis dan tahap perancangan sistem. Pada tahap analisis dilakukan analisis terhadap data yang digunakan untuk proses dan analisis terhadap teknik yang digunakan pada setiap langkah pemrosesan data. Pada tahap perancangan sistem dibahas mengenai perancangan tampilan antarmuka sistem.
3.1. Data yang Digunakan
Data yang digunakan dalam penelitian ini yaitu citra yang diperoleh melalui observasi langsung. Observasi dilakukan di pasar Kota Pematangsiantar, pasar di Kota Medan, pasar di desa Sait Buttu Saribu, Provinsi Sumatera Utara. Citra diambil menggunakan kamera ponsel pintar berbasis sistem operasi Android dengan pengaturan orientasi portrait maupun landscape dan ukuran dimensi yang berbeda-beda.
Data citra yang diperoleh kondisinya pencahayaan luar ruangan (outdoor) yang bersumber dari sinar matahari dan dalam ruangan (indoor) yang bersumber dari cahaya lampu.
Keseluruhan data yang diperoleh berjumlah 300 citra kemudian digabungkan menjadi dataset citra spesies ikan. Data citra ikan nila berjumlah 110 citra, ikan mujair berjumlah 70 citra dan ikan gurame berjumlah 120 citra. Dalam pengujian klasifikasi, seluruh data dibagi secara acak menjadi dua dataset berbeda yang dilabeli sebagai dataset pelatihan dan dataset pengujian dengan perbandingan 70 : 30. Teknik ini disebut teknik validasi hold-out. Sehingga, sejumlah 210 citra digunakan sebagai data training dan sejumlah 90 citra digunakan sebagai data testing. Pembagian testing dataset dan training dataset untuk klasifikasi ikan air tawar dapat dilihat pada Tabel 3.1.
Tabel 3.1 Data Latih dan Data Uji
Data Set Data Pelatihan Data Pengujian Jumlah Data
Ikan Nila 77 33 110
Ikan Mujair 49 21 70
Ikan Gurame 84 36 120
3.2. Arsitektur Umum
Pada penelitian ini, metode yang diajukan untuk melakukan klasifikasi ikan air tawar yang terdiri dari beberapa tahapan. Tahapan – tahapan tersebut dimulai dari pengumpulan data citra yang terdiri dari citra ikan nila, ikan mujair dan ikan gurame yang akan digunakan untuk citra latih dan citra uji,. Citra tersebut kemudian dilakukan tahap preprocessing yaitu cropping, scalling, dan grayscalling. Selanjutnya, ekstraksi fitur. Pada penelitian ini proses ekstraksi fitur menggunakan Local Binnary Pattern.
Setelah itu masuk ke tahapan klasifikasi spesies ikan dilakukan dengan menggunakan Convolutional Neural Network. Setelah langkah-langkah tersebut dilakukan, hasil yang didapatkan berupa nama spesies ikan beserta informasi tambahan terkait dengan spesies ikan tersebut. Informasi tersebut akan ditampilkan pada ponsel pintar.
Adapun arsitektur umum yang menggambarkan metode pada penelitian ini ditunjukkan pada Gambar 3.1.
Gambar 3.1 Arsitektur Umum 3.3. Preprocessing
Pada tahap preprocessing, citra yang sudah ada diproses kembali agar menghasilkan citra yang lebih baik dan selaras untuk diproses pada tahap selanjutnya. Tahapan preprocessing ini adalah cropping, scaling dan grayscale.
3.3.1. Cropping
Tahapan pertama pada tahap Preprocessing adalah proses cropping. Dimana proses seleksi sub piksel dari citra menjadi citra baru. Proses ini bertujuan untuk mengambil objek pada citra dan membuang bagian yang tidak diperlukan sehingga proses ekstraksi fitur lebih minim. Pada penelitian ini proses cropping dilakukan secara manual.
3.3.2. Resize
Tahapan yang kedua pada tahap Preprocessing adalah Resize. Tahapan ini ditujukan untuk menyelaraskan ukuran piksel pada citra. Penetuan piksel juga berpengaruh pada waktu untuk proses pengolahan citra. Penulis menggunakan size 200 x 200 piksel.
3.3.3. Grayscale
Tahapan berikutnya yaitu grayscale. Dimana pada tahapan ini bertujuan untuk penyeragaman warna keabuan pada citra yang akan diproses karena pada citra asli warna keabuan tidak merata, sehingga mempercepat proses perhitungan. Citra hasil grayscale dapat dilihat pada gambar 3.2.
Gambar 3.2 Citra hasil grayscale
Pada tahapan ini, nilai RGB ( Red, Green, Blue) pada setiap piksel diambil dan dijumlahkan lalu hasilnya dibagi tiga. Sebagai contoh, terdapat sebuah matrix citra warna berukuran 3 3 piksel yang memiliki nilai RGB seperti ditunjukkan pada tabel 3.2.
Tabel 3.2 Matriks citra warna ukuran 3 3 piksel
Perhitungan konversi nilai matriks (0,0) citra berwarna menjadi citra grayscale menggunakan persamaan sebagai berikut :
(i,j) 0 1 2
0 181 124 55
174 120 46
178 126 43 1 189
140 84
188 140 79
188 143 75 2 109
78 50
109 78 47
125 96 56
I =
=
= 120
Dengan cara melakukan perhitungan yang sama pada semua piksel berwarna maka didapatkan hasil seperti pada tabel 3.3.
Tabel 3.3 Hasil konversi citra berwarna menjadi keabuan
3.4. Feature Extraction (Local Binary Pattern)
Tahapan berikutnya yaitu Local Binary Pattern (LBP). Dimana metode ini bertujuan untuk menghasilkan dan mendeskripsikan tekstur dari sebuah citra grayscale. Citra hasil local binary pattern dapat dilihat pada gambar 3.3.
Gambar 3.3. Citra hasil local binary pattern
Setelah dikonversi ke grayscale, langkah selanjutnya adalah menghitung nilai binernya dengan pusat piksel akan digunakan sebagai acuan dengan piksel tetangganya seperti pada tabel 3.4.
Tabel 3.4 Penentuan pusat piksel Local Binary Pattern
(i,j) 0 1 2
0 120 133 116
1 137 135 135
2 79 78 92
Selanjutnya adalah memberi nilai perbandingan. Jika nilai piksel lebih kecil dari pusat piksel maka nilai perbandingannya adalah 0, sebaliknya jika nilainya lebih besar atau sama dengan pusat piksel maka nilai perbandingannya adalah 1 sebagai contoh dapat dilihat pada tabel 3.5.
Tabel 3.5 Nilai perbandingan Local Binary Pattern
Setelah mendapatkan nilai perbandingannya, nilai itu dapat disusun dengan ketentuan searah jarum jam atau kebalikan arah jarum jam, sehingga mendapatkan nilai biner = 00100010. Selanjutnya bilangan biner tersebut digunakan untuk menghitung nilai LBP di setiap templatenya. Untuk menghitung nilai LBP adalah dengan mengalikan nilai biner dengan bilangan eksponensial dari 2 sebagai contoh dapat dilihat pada tabel 3.6.
Tabel 3.6 Perhitungan nilai LBP
Dari perhitungan pada tabel 3.5 hasil nilai LBP adalah 136 dan nilai LBP ini di set pada pusat piksel seperti pada tabel 3.7.
(i,j) 0 1 2
0 120 133 116
1 137 135 135
2 79 78 92
(i,j) 0 1 2
0 0 0 0
1 1 1
2 0 0 0
(i,j) 0 1 2
0 0 1 0 2 0 4
1 1 128 1 8
2 0 64 0 32 0 16
Tabel 3.7 Nilai LBP
3.5. Klasifikasi
Dalam penelitian ini, metode yang digunakan untuk proses klasifikasi yaitu Convolutinal Neural Network.
Pada convolutional layer, konvolusi akan menghasilkan transformasi linear dari data sesuai dengan informasi spasial pada data. Weight yang merupakan koneksi antar neuron (layer) akan melakukan spesifikasi matriks konvolusi yang digunakan sehingga matriks konvolusi dapat dilatih berdasarkan input pada CNN. Proses konvolusi dapat dilihat pada Gambar 3.4.
(a) (b) (c)
Gambar 3.4. Nilai input (a), Feature Detector (b) dan Feature Map (c) Pada proses convolution layer nilai input dengan gambar 5 5 pixel akan di filter menjadi 3 3 pixel. Matriks 3 3 bergerak dari sudut kiri atas dari input image dan bergerser ke kanan sebanyak 1 piksel hingga semua piksel dari baris pertama input dilalui. Perhitungan dimulai dari kiri menuju ke kanan seperti yang dilakukan di baris pertama. Begitu juga dengan baris-baris selanjutnya hingga semua piksel yang dimiliki input image dilalui yang kemudian disimpan dalam matriks yang baru.
Pergeseran matriks tersebut dapat dilihat dalam Gambar 3.5.
(i,j) 0 1 2
0
1 136
2
136 133 127 125 121 136 134 121 126 125 129 131 127 124 118 119 125 127 117 128 112 122 124 122 130
136 133 127 125 121 136 134 121 126 125 129 131 127 124 118 119 125 127 117 128 112 122 124 122 130
136 133 127 125 121 136 134 121 126 125 129 131 127 124 118 119 125 127 117 128 112 122 124 122 130
136 133 127 125 121 136 134 121 126 125 129 131 127 124 118 119 125 127 117 128 112 122 124 122 130
136 133 127 125 121 136 134 121 126 125 129 131 127 124 118 119 125 127 117 128 112 122 124 122 130
Gambar 3.5 Pergeseran Matriks
Untuk setiap posisi, jumlah elemen dihitung dengan perkalian antara matriks feature detector dan matriks pada input image. Hasil dari jumlah perkalian matriks
136 133 127 125 121 136 134 121 126 125 129 131 127 124 118 119 125 127 117 128 112 122 124 122 130
136 133 127 125 121 136 134 121 126 125 129 131 127 124 118 119 125 127 117 128 112 122 124 122 130
136 133 127 125 121 136 134 121 126 125 129 131 127 124 118 119 125 127 117 128 112 122 124 122 130
136 133 127 125 121 136 134 121 126 125 129 131 127 124 118 119 125 127 117 128 112 122 124 122 130
tersebut akan menghasilkan feature map. Berdasarkan Persamaan (2.6) perhitungan convolutional sebagai berikut :
C1,1 = (1*136) + (0*133) + (1*127) + (0*136) + (1*134) + (0*121) + (1*129) + (0*131) + (1*127)
= 136 + 127 + 134 + 129 + 127
= 653
Dengan cara melakukan perhitungan yang sama pada semua piksel maka didapatkan hasil seperti pada gambar 3.6.
653 634 619
634 629 625
617 626 616
Gambar 3.6 Hasil perhitungan Convolutional
Tahapan selanjutnya adalah max pooling yang membagi output dari convolutional layer menjadi beberapa grid kecil dan mengambil nilai maksimal dari setiap grid untuk menyusun matriks citra yang telah direduksi. Hasil dari konvolusi selanjutnya masuk ke proses max pooling. Max pooling akan menghasilkan output yang lebih kecil dari convolution dengan cara mengambil nilai maksimal dari matriks tersebut. Proses ini ditunjukkan pada Gambar 3.7.
653 634 619
634 629 625
617 626 616
Gambar 3.7 Hasil Proses Max Pooling
Gambar tersebut menjelaskan tentang proses Max polling layer. Pada gambar diatas menggunakan ukuran pooling 2 × 2 pixel dan mencari nilai maksimum yang
653 634 634 629
ada pada matriks tersebut. Matriks 2 × 2 bergerak dari sudut kiri atas pada feature map dan bergeser ke matriks 2 × 2 sampai melalui semua nilai yang terdapat pada feature map. Setiap matriks yang diambil pada nilai matriks tersebut sehingga menghasilkan pooled feature map yang ada seperti gambar di atas.
Proses selanjutnya flattening, pada proses ini setiap hasil yang dihasilkan di max pooling layer harus ditransformasilan menjadi array satu dimensi sebelum dimasukkan ke proses fully connected layer. Hasil transformasi dari max pooling ditunjukkan pada Gambar 3.8.
Gambar 3.8 Proses Flattening
Pada Gambar 3.8 merupakan hasil dari max pooling dengan mentransformasikan array tiga dimensi menjadi array satu dimensi. Proses ini bertujuan agar data tidak kehilangan informasi spasial dan reversible. Selanjutnya adalah proses fully connected layer. Fully connected layer menghubungkan setiap neuron dari layer ke layer lainnya.
3.6. Perancangan Sistem
Pada penelitian ini, sistem yang dirancang berupa sistem klasifikasi spesies ikan menggunakan ponsel pintar berbasis sistem operasi Android. Dalam penelitian ini, aplikasi memerlukan perancangan antarmuka (interface). Antarmuka merupakan gambaran umum perancangan setiap tampilan yang terdapat pada aplikasi.
3.6.1. Rancangan tampilan proses klasifikasi citra dari kamera
Dalam proses klasifikasi citra dari kamera, citra spesies ikan diambil menggunakan kamera ponsel pintar secara real time. Rancangan tampilan akuisisi citra dari kamera dapat dilihat pada Gambar 3.9.
Gambar 3.9 Rancangan tampilan pengambilan citra dari kamera.
Keterangan:
(a) Judul dari aplikasi (b) Logo dari aplikasi
(c) Sebuah pesan yang ditujukan kepada pengguna agar melakukan pengambilan citra dengan keseluruhan citra spesies ikan yang berada pada kotak yang telah disediakan.
(d) Tempat Real time kamera menggunakan kamera belakang ponsel.
(e) Tempat untuk melihat hasil klasifikasi
(f) Tombol yang digunakan untuk mengambil citra dan memulai proses klasifikasi.
(g) Tombol untuk melakukan proses impor citra dari galeri atau citra yang telah diambil terlebih dahulu pada ponsel pintar.
3.6.2. Rancangan tampilan proses klasifikasi citra dari galeri
Proses klasifikasi citra juga dapat dilakukan dari citra yang diimpor melalui galeri atau citra yang telah diambil terlebih dahulu dan telah tersimpan digaleri. Rancangan tampilan impor citra dari galeri dapat dilihat pada Gambar 3.10.
. Gambar 3.10 Rancangan tampilan impor citra dari galeri
Keterangan:
(a) Tombol untuk memutar citra
(b) Tombol untuk membolak-balikkan citra ke vertical atau horizontal
(c) Tombol untuk memotong citra dengan membuang citra yang tidak digunakan (d) Pratinjau citra yang diimpor dari galeri
(e) Kotak trimap merupakan kotak yang disediakan kepada pengguna untuk melakukan crop citra spesies ikan.
Apabila pengguna memulai proses klasifikasi dengan menekan tombol c, proses klasifikasi citra dari galeri akan dilakukan. Rancangan tampilan klasifikasi citra dari galeri dapat dilihat pada Gambar 3.11.
Gambar 3.11 Rancangan tampilan klasifikasi citra dari galeri Keterangan:
(a) Judul dari aplikasi (b) Logo dari aplikasi
(c) Sebuah pesan yang ditujukan kepada pengguna agar melakukan pengambilan citra dengan keseluruhan citra spesies ikan yang berada pada kotak yang telah disediakan.
(d) Tempat Real time camera menggunakan kamera belakang ponsel.
(e) Tempat untuk melihat hasil klasifikasi
(f) Tombol yang digunakan untuk mengambil citra dan memulai proses klasifikasi.
(g) Tombol untuk melakukan proses impor citra dari galeri atau citra yang telah diambil terlebih dahulu pada ponsel pintar.
3.6.3. Rancangan tampilan hasil klasifikasi
Setelah melakukan proses klasifikasi, aplikasi akan menampilkan hasil klasifikasi.
Hasil klasifikasi berupa tampilan spesies ikan hasil klasifikasi dari sistem beserta
informasi tambahan berupa deskripsi, tingkatan taksonomi, dan tingkat aman untuk dikonsumsi. Rancangan tampilan hasil klasifikasi dapat dilihat pada Gambar 3.12.
Gambar 3.12 Rancangan tampilan hasil klasifikasi Keterangan:
(a) Foto citra spesies ikan pada sistem yang sesuai dengan hasil klasifikasi.
(b) Nama latin dan nama ilmiah spesies ikan hasil klasifikasi.
(c) Deskripsi, ekologi, dan tingkat aman untuk dikonsumsi spesies ikan hasil klasifikasi. Tingkatan taksonomi spesies ikan hasil klasifikasi.
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini akan membahas tentang hasil training dan testing yang diperoleh dari implementasi metode Convolutional Neural Network dalam melakukan klasifikasi spesies ikan sesuai analisis dan perancangan yang telah dibahas pada Bab 3.
4.1. Implementasi Sistem
Dalam penelitian ini, seluruh metode yang digunakan diimplementasi dalam bentuk sistem yang dibangun menggunakan dua bahasa pemrograman. Untuk training di desktop menggunakan bahasa pemrograman Python dan untuk implementasi sistem berbasis sistem operasi Android menggunakan bahasa pemrograman Java.
4.1.1. Spesifikasi Perangkat Keras dan Perangkat Lunak
Spesifikasi perangkat keras berupa komputer yang digunakan untuk membangun sistem adalah sebagai berikut:
1. Processor : Intel(R) Core(TM) i5-7200U CPU @ 2.50 Hz (4 CPUs), ~2.7 GHz 2. Hard disk : Kapasitas 500 GB
3. RAM : 4.00 GB
4. Sistem operasi yang digunakan Windows 10 64 bit.
Untuk mendukung dalam proses pembangunan sistem digunakan perangkat keras berupa ponsel pintar dengan spesifikasi sebagai berikut:
1. Storage : Kapasitas 64 GB 2. RAM : 4.00 GB
3. Sistem operasi : Android 8.0.0
Spesifikasi perangkat lunak yang digunakan untuk membangun sistem adalah sebagai berikut:
1. Aplikasi pembangunan sistem berbasis sistem operasi Android adalah Android Studio 3.5.
4.1.2. Implementasi Perancangan Antarmuka
Adapun implementasi perancangan antarmuka berdasarkan rancangan pada Bab 3 adalah sebagai berikut:
1. Tampilan permohonan akses kamera dan media penyimpanan
Untuk dapat menjalankan aplikasi sebagaimana mestinya, pengguna perlu memberikan akses kamera dan media penyimpanan. Akses kamera dibutuhkan untuk proses klasifikasi citra dari kamera, sedangkan akses media penyimpanan dibutuhkan untuk proses klasifikasi citra dari galeri. Tampilan permohonan akses dapat dilihat pada gambar 4.1 dan gambar 4.2.
Gambar 4.1 Tampilan permohonan akses kamera
Gambar 4.2 Tampilan media penyimpanan
2. Tampilan awal
Tampilan awal dari aplikasi yang masih belum mengklasifikasi citra dapat dilihat pada Gambar 4.3.
Gambar 4.3 Tampilan awal
Proses klasifikasi berupa sumber dari citra yang diimpor melalui galeri atau citra yang telah diambil terlebih dahulu pada ponsel pintar. Dalam proses klasifikasi citra dari galeri, terlebih dahulu citra spesies ikan diimpor ke dalam aplikasi. Tampilan akses galeri dapat dilihat pada Gambar 4.4.
Gambar 4.4. Tampilan akses galeri
Setelah memilih gambar yang akan digunakan, tampilan impor citra dari galeri akan ditampilkan. Tampilan impor citra dari galeri dapat dilihat pada Gambar 4.5.
Gambar 4.5 Tampilan import citra dari galeri
Apabila pengguna memulai proses klasifikasi dengan menekan Potong di sudut kanan atas, maka proses klasifikasi citra akan dilakukan. Tampilan klasifikasi citra dari galeri dapat dilihat pada Gambar 4.6.
. Gambar 4.6 Tampilan hasil klasifikasi citra
Pada gambar 4.6 hasil dari klasifikasi citra yang menunjukkan jenis ikan pada citra tersebut.
3. Tampilan hasil klasifikasi
Setelah melakukan proses klasifikasi, aplikasi akan menampilkan hasil klasifikasi dan muncul informasi tambahan berupa deskripsi, tingkatan taksonomi, ekologi, ukuran, dan tingkat aman untuk dikonsumsi. Tampilan hasil klasifikasi dapat dilihat pada Gambar 4.7.
Gambar 4.7 Tampilan hasil klasifikasi
4.2. Pelatihan Sistem
Pada penelitian ini, pelatihan sistem menggunakan metode Convolutional Neural Network dengan data training yang digunakan berupa 70% dari dataset citra spesies ikan yaitu sebanyak 210 data training. Data tersebut akan ditraining di sistem. Proses training data dapat dilihat pada gambar 4.8.
Gambar 4.8 Hasil proses pelatihan system
Pada penelitian ini menggunakan epoch ke 8 karena nilai val_acc pada epoch ke 8 terlihat nilai yang tinggi dan setelahnya nilai turun. Batch size atau ukuran banyak batch berupa citra yang akan dilatih pada satu satuan waktu (satu kali pelatihan). Nilai 16 dipilih pada penelitian ini karena keterbatasan memori pada sistem. Training rate adalah jumlah tahapan yang diperlukan untuk melatih citra. Nilai 0.001 dipilih karena pada system menggunakan optimizer ‘adam’ yang memiliki learning rate 0.001 dan terbukti efektif.
4.3. Pengujian Sistem
Pada penelitian ini, pengujian sistem menggunakan metode Convolutional Neural Network dengan data testing yang digunakan berupa 30% dari dataset citra spesies ikan.
Hasil pengujian dengan model terbaik dari percobaan diatas dapat dilihat pada tabel 4.1. label pada kolom tabel menunjukkan label yang terklasifikasi, sedangkan label pada baris tabel menunjukkan label ikan yang sebenarnya. Ikan gurame yang
terklasifikasi sebagai gurame ada 37, ikan mujair ada 1, dan ikan nila 0 data. Ikan mujair yang terklasifikasi sebagai mujair ada 15, gurame ada 5 dan nila 0 data. Ikan nila yang terklasifikasi sebagai nila ada 26, gurame ada 5, dan mujair 2 data.
Tabel 4.1 Hasil pengujian model
Gurame Mujair Nila
Gurame 37 1 0
Mujair 5 16 0
Nila 5 2 26
Dari tabel 4.1 dapat diperoleh nilai True Positive (TP) merupakan jumlah data positif yang terklasifikasi dengan benar oleh sistem, False Positive (FP) merupakan jumlah data negatif namun terdeteksi sebagai data positif dan False Negative (FN) merupakan jumlah data positif, namun terdeteksi sebagai data negatif. Nilai TP, FP, dan FN dapat dilihat pada table 4.2
Tabel 4.2 Nilai TP, FP dan FN
TP FP FN
Gurame 37 10 1
Mujair 16 3 5
Nila 26 0 7
Total 79 13 13
Dari tabel 4.2 dapat diperoleh precision dan recall dari jenis ikan yang dikenali. Precision merupakan tingkat keakuratan data yang diminta dengan hasil prediksi yang diberikan oleh model. Recall merupakan keberhasilan model dalam menemukan kembali sebuah informasi.
Gurame Recall =
( ) 100%
=
( ) 100%
= 0,97 100% = 97%