IDENTIFIKASI OBAT-OBATAN MENGGUNAKAN METODE CNN (CONVOLUTIONAL NEURAL NETWORK) BERBASIS ANDROID
SKRIPSI
PRATTY JESICA PUTRI PARHUSIP 171402051
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2021
IDENTIFIKASI OBAT-OBATAN MENGGUNAKAN METODE CNN (CONVOLUTIONAL NEURAL NETWORK) BERBASIS ANDROID
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
PRATTY JESICA PUTRI PARHUSIP 171402051
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2021
PERSETUJUAN
PERNYATAAN
IDENTIFIKASI OBAT-OBATAN MENGGUNAKAN METODE CNN (CONVOLUTIONAL NEURAL NETWORK) BERBASIS ANDROID
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dari ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 28 Oktober 2021
PRATTY JESICA PUTRI PARHUSIP 171402051
UCAPAN TERIMA KASIH
Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa, karena atas rahmat dan karunia- Nya sehingga penulis dapat menyelesaikan skripsi yang berjudul “Identifikasi Obat-Obatan Menggunakan Metode CNN (Convolutional Neural Network) Berbasis Android”, yang menjadi syarat untuk memperoleh gelar Sarjana Komputer di Program Studi S1 Teknologi Informasi Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. Terima kasih yang tak terhingga penulis ucapkan kepada Tuhan Yesus Kristus yang selalu mendampingi penulis dari awal hingga skripsi ini dapat terselesaikan. Penulisan skripsi ini juga tidak akan selesai tanpa adanya doa, dukungan, dan dorongan dari berbagai pihak. Adapun dalam kesempatan ini, dengan rendah hati penulis mengucapkan banyak terima kasih kepada :
1. Kedua orang tua penulis, Bapak Alm.Praga Toni Parhusip, S.Sos.,M.Si dan Ibu Rohmawaty Purba yang selalu memberikan doa, kasih sayang, motivasi serta dukungan kepada penulis dari mulai mengikuti pendidikan hingga selesainya tugas akhir ini.
2. Adik penulis, Felix Diovangga Putra Parhusip yang memberikan semangat kepada penulis.
3. Ibu Prof. Dr. Maya Silvi Lydia, M.Sc. selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
4. Ibu Sarah Purnamawati, ST., M.Sc. selaku Ketua Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.
5. Bapak Ainul Hizriadi, S.Kom.,M.Sc. selaku Dosen Pembimbing I yang telah membimbing penulis dalam penelitian serta penulisan skripsi ini.
6. Bapak Seniman, S.Kom.,M.Kom. selaku Dosen Pembimbing II yang telah membimbing penulis dalam penyelesaian skripsi ini.
7. Bapak Dedy Arisandi, ST., M.Kom. selaku Dosen Penguji I yang telah memberikan kritik dan saran untuk penyempurnaan skripsi ini.
8. Bapak Ivan Jaya, S.Si., M.Kom. selaku Dosen Penguji II yang telah memberikan kritik dan saran untuk penyempurnaan skripsi ini.
9. Kepada teman-teman seperjuangan penulis, “Canva”, Annisa, Annisa Assya Mawaddah, Dhaffa Safira Ayura dan Geubrie Rosanna yang selalu bertukar pikiran dengan penulis dan memberikan semangat serta motivasi kepada penulis.
10. Seluruh teman-teman di Kom C dan angkatan 2017 yang tidak dapat penulis sebutkan satu persatu, yang berjuang bersama penulis dari awal hingga akhir pendidikan S1 ini.
11. Teman-teman “Foodholic”, Anju Tatasya Silitonga, Debby Elfrina Napitupulu, Maria Chacita Sirait, Indi Auryn Sinaga, Laura Marpaung, Missy Sianturi yang selalu memberi dukungan,motivasi serta doa kepada penulis hingga selesainya tugas akhir ini.
12. Last but not least, I wanna thank me, for believing me, for doing this hardwork, for having no days off, for never quitting, for just being me at all times.
Semoga Tuhan Yang Maha Esa memberikan berkah dan rahmat yang berlimpah kepada semua pihak yang telah memberikan bantuan, dukungan, serta doa kepada penulis pada saat pembuatan skripsi ini.
Medan, Oktober 2021
Penulis
ABSTRAK
Obat merupakan salah satu elemen terpenting dalam menentukan kesehatan seseorang.
Swamedikasi atau mendiagnosis dan mengobati diri sendiri sudah menjadi hal umum di masyarakat. Sistem ini diharapkan mampu membantu masyarakat untuk mengidentifikasi obat-obatan yang dikonsumsi. Pada penelitian ini objek yang akan diidentifikasi adalah FG Troches, Galdom, Neo Diaform, Omeprazole, Simdrol-4 dan Zeviton. Adapun penelitian ini menggunakan data berjumlah 1215 data yang terbagi atas tiga kategori dataset. Penelitian ini menggunakan metode convolutional neural network sebagai algoritma agar sistem dapat melakukan identifikasi terhadap obat-obatan. Untuk mempermudah dalam penggunaannya, maka dari itu sistem ini dirancang untuk perangkat android dan dapat mengidentifikasi secara real time. Adapun akurasi yang diperoleh pada penelitian ini adalah sebesar 96.82%.
Kata kunci : Obat, Convolutional Neural Network, Android
IDENTIFICATION OF MEDICINES USING CNN (CONVOLUTIONAL NEURAL NETWORK) BASED ON ANDROID
ABSTRACT
Medicine is one of the most important elements in determining a person's health. Self- medication or self-diagnosing has become commonplace in society. The system in this study is expected to help the public to identify the drugs they are taking. In this study, the objects to be identified are FG Troches, Galdom, Neo Diaform, Omeprazole, Simdrol-4 and Zeviton. The data used is 1215 data which is divided into three categories of datasets.
This study uses the convolutional neural network method as an algorithm so that the system can identify drugs. To make it easier to use, therefore this system is designed for android devices and can identify in real time. The accuracy obtained in this study was 96.82%.
Keywords : Medicine, Convolutional Neural Network, Android
DAFTAR ISI
Hal.
PERSETUJUAN ... iii
PERNYATAAN ... iv
UCAPAN TERIMA KASIH... v
ABSTRAK ... vii
ABSTRACT ... viii
DAFTAR ISI ... ix
DAFTAR TABEL ... xii
DAFTAR GAMBAR ... xiii
BAB 1 ... 1
1.1. Latar Belakang ... 1
1.2. Rumusan Masalah ... 2
1.3. Batasan Masalah ... 3
1.4. Tujuan Penelitian... 3
1.5. Manfaat Penelitian... 3
1.6. Metodologi Penelitian ... 3
1.7. Sistematika Penulisan ... 4
BAB 2 ... 6
2.1. Obat ... 6
2.3. Citra Digital ... 6
2.4. Pengolahan Citra Digital ... 7
2.5. Machine Learning ... 7
2.6. Convolutional Neural Network ... 8
2.6.1. Feature Learning ... 8
2.6.2. Classification ... 9
2.7. Tensorflow ... 10
2.8. Tensorflow Lite ... 10
2.9. Android... 11
2.10. Android Studio ... 11
2.11. Penelitian Terdahulu ... 11
BAB 3 ... 14
3.1. Data yang Digunakan ... 14
3.2. Analisis Sistem ... 14
3.2.1. Input ... 14
3.2.2. Proses ... 14
3.2.3. Output ... 15
3.3. Arsitektur Umum... 15
3.4. Perancangan Antarmuka Sistem... 25
3.4.1. Rancangan Tampilan Splashscreen ... 25
3.4.2. Rancangan Tampilan Home ... 26
3.4.3. Rancangan Tampilan Testing ... 27
3.4.4. Rancangan Tampilan Deskripsi ... 27
BAB 4 ... 29
4.1. Implementasi Sistem ... 29
4.1.1. Spesifikasi Perangkat Keras ... 29
4.1.2. Spesifikasi Perangkat Lunak ... 30
4.1.3. Implementasi Data ... 30
4.1.4. Proses Training ... 31
4.1.5. Implementasi Perancangan Antarmuka ... 34
4.2. Prosedur Penggunaan ... 38
4.3. Pengujian Sistem ... 38
BAB 5 ... 59
5.1. Kesimpulan... 59
5.2. Saran ... 59
DAFTAR PUSTAKA ... 60
LAMPIRAN ... 62
DAFTAR TABEL
Hal.
Tabel 2.1. Penelitian Terdahulu ...12
Tabel 3.1. Resize ...16
Tabel 3.2. Contoh Hasil dari Data Augmentation...17
Tabel 3.3. Hasil Split Data ...18
Tabel 4.1. Spesifikasi Perangkat Keras...29
Tabel 4.2. Spesifikasi Perangkat Lunak ...30
Tabel 4.3. Pembagian Citra Pada Dataset ...31
Tabel 4.4. Percobaan Dengan Beberapa Learning Rate dan Epoch ...32
Tabel 4.5. Contoh Hasil Pengujian Menggunakan Redmi Note 7 ...39
Tabel 4.6. Hasil Pengujian Berdasarkan Intensitas Cahaya ...41
Tabel 4.7. Hasil Pengujian Berdasarkan Jarak...46
Tabel 4.8. Hasil Pengujian Dengan Latar Berbeda ...49
Tabel 4.9. Pengujian Dengan Kondisi Tertentu ...52
Tabel 4.10. Confusion Matrix ...56
Tabel 4.11. Perhitungan Presisi ...57
Tabel 4.12. Perhitungan Recall ...58
DAFTAR GAMBAR
Hal.
Gambar 2.1. FG Troches ...6
Gambar 2.2. Simdrol-4 ...6
Gambar 2.3. Representasi Citra Digital ...7
Gambar 2.4. Arsitektur Convolutional Neural Network ...8
Gambar 3.1. Arsitektur Umum ...15
Gambar 3.2. Sampel Gambar Data Input ...19
Gambar 3.3. Proses Konvolusi Dengan Kernel 3x3 ...19
Gambar 3.4. Proses Pergeseran Dengan Stride = 1 dan Kernel 3x3 ...20
Gambar 3.5. Proses Konvolusi Pada Pergeseran Pertama ...20
Gambar 3.6. Proses Konvolusi Pada Pergeseran Terakhir ...20
Gambar 3.7. Hasil Akhir Konvolusi Sebagai Input Pada Pooling ...21
Gambar 3.8. Proses Pooling Menggunakan MaxPooling ...22
Gambar 3.9. Hasil Akhir Pada MaxPooling ...23
Gambar 3.10. Hasil Dari Flatten Layer ...23
Gambar 3.11. Fully Connected Layer ...24
Gambar 3.12. Rancangan Database ...25
Gambar 3.13. Rancangan Tampilan Splashscreen ...26
Gambar 3.14. Rancangan Tampilan Home ...26
Gambar 3.15. Rancangan Tampilan Testing ...27
Gambar 3.16. Rancangan Tampilan Deskripsi ...28
Gambar 4.1. Implementasi Data ...31
Gambar 4.2. Proses Training Data ...33
Gambar 4.3. Perbandingan Akurasi Training dan Validation ...33
Gambar 4.4. Perbandingan Loss Training dan Validation ...33
Gambar 4.5. Logo Aplikasi ...34
Gambar 4.6. Implementasi Halaman Splashscreen ...35
Gambar 4.7. Implementasi Halaman Home ...36
Gambar 4.8. Implementasi Pop-up dari Info Button ...36
Gambar 4.9. Implementasi Halaman Testing ...37
Gambar 4.10. Implementasi Halaman Deskripsi ...38
BAB 1 PENDAHULUAN
1.1. Latar Belakang
Kesehatan merupakan perihal terutama yang dibutuhkan oleh badan manusia. Sebab kesehatan menyangkut seluruh segi kehidupan yang jangkauannya luas. Salah satu komponen kesehatan yang bernilai ialah obat. Obat ialah salah satu faktor yang bernilai dalam pelayanan kesehatan.
Obat yakni sesuatu bahan ataupun paduan bahan yang digunakan untuk menetapkan diagnosis, menghindari, mengurangi, menghilangkan, mengobati penyakit, cedera ataupun kelainan badaniah serta rohaniah pada manusia ataupun hewan, memperelok tubuh ataupun bagian tubuh manusia (SK MenKes RI).
Ketika manusia merasa sakit, manusia akan mencari cara untuk meredakan rasa sakitnya, baik pergi ke fasilitas kesehatan maupun ke praktik dokter. Bahkan ada juga yang akan mendiagnosis dan mengobati dirinya sendiri (swamedikasi). Fasilitas kesehatan atau dokter kerap kali memberikan resep obat kepada pasien tanpa memberikan penjelasan secara detail tentang obat tersebut. Adakalanya pasien diberikan obat tanpa label, obat hanya dimasukan ke dalam kemasan transparan yang cara menggunakannya ditulis secara manual. Dikala terpaksa mengkonsumsi obat, seorang menjadi dengan sukarela mengonsumsi obat apapun yang diberikan oleh tenaga medis.
Ataupun dengan minimnya pengetahuan, warga hendak memakai obat yang dilihat pada iklan. Pertumbuhan teknologi sangat mempermudah warga untuk mendapatkan obat lewat media online.
Hal ini akan menyebabkan penggunaan obat secara tidak rasional oleh pasien.
Penggunaan obat yang tidak rasional juga terjadi bila pasien tidak bertanya mengenai penggunaan obat yang didapatkan ketika berobat ke fasilitas kesehatan atau praktik
dokter dan hanya menggunakan obat tersebut sesuai asumsi sendiri. Minimnya informasi masyarakat tentang obat ini membuat kalangan kesehatan juga pemerintah resah.
Menurut jurnal yang berjudul Illegible handwriting and other prescription errors on prescriptions at National District Hospital, Bloemfontein tahun 2017, resep dokter yang ditulis manual sering sulit dibaca, diperkirakan setiap tahunnya menyebabkan 7000 kasus kematian. Organisasi Kesehatan Dunia (WHO) pada tahun 2019 menyatakan bahwa setiap tahunnya ada lebih dari 138 juta pasien di dunia yang disebabkan oleh kesalahan dokter.
Koordinator WHO pada bidang keselamatan pasien, menyatakan alasan utama mengapa ada pasien dirugikan yaitu kesalahan diagnosa, kesalahan resep obat dan perawatan dan penggunaan obat yang tidak tepat.
Kementerian Kesehatan RI dan Dinas Kesehatan di Provinsi dan Kab/Kota saat ini semakin gencar melaksanakan program GeMa CerMat (Gerakan Masyarakat Cerdas Menggunakan Obat). Untuk itu, Kementerian Kesehatan mempromosikan tagline “Tanya Lima O”.
Penelitian ini sudah dilakukan sebelumnya oleh Hnoohom, N., Yuenyong, S., &
Chotivatunyu, P. Pada tahun 2018 dengan judul MEDiDEN: Automatic Medicine Identification Using a Deep Convolutional Neural Network. Sistem yang dibuat berguna untuk mengklasifikasikan obat melalui citra kemasan obat serta pengguna dapat mengatur jadwal untuk mengonsumsi obat. Sistem ini memperoleh akurasi 92.75% menggunakan Inception-V3 dan 94.85% menggunakan Inception-V4 dengan menggunakan 1260 data.
Dari latar belakang yang penulis sebutkan, akhirnya penulis memutuskan untuk membangun sistem yang dapat membantu dan mempermudah masyarakat untuk memperoleh informasi tentang obat yang akan mereka gunakan dengan judul
“Identifikasi Obat-obatan Menggunakan Metode CNN (Convolutional Neural Network) Berbasis Android”.
1.2. Rumusan Masalah
Minimnya pengetahuan masyarakat tentang penggunaan obat yang tepat dapat menyebabkan berbagai kerugian. Oleh sebab itu, diperlukan suatu media atau sistem yang menyediakan informasi tentang obat-obatan yang akan dikonsumsi oleh masyarakat.
1.3. Batasan Masalah
Adapun batasan pada penelitian ini ialah:
a. Obat yang digunakan merupakan obat dengan resep dokter.
b. Obat yang digunakan adalah FG Troches, Galdom, Neo Diaform, Omeprazole, Simdrol-4, Zeviton.
c. Pengambilan citra dilakukan menggunakan kamera android.
d. Objek yang diidentifikasi berjumlah satu buah.
1.4. Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah untuk mengidentifikasi obat-obatan dengan golongan obat bebas dengan mengimplementasikan Convolutional Neural Network (CNN).
1.5. Manfaat Penelitian
Adapun manfaat pada penelitian ini adalah :
a. Mengetahui tingkat akurasi CNN dalam identifikasi obat.
b. Membantu masyarakat dalam mengenali obat-obatan yang akan digunakan.
1.6. Metodologi Penelitian
Tahapan-tahapan yang akan dilakukan dalam penelitian ini adalah sebagai berikut:
1. Studi Literatur
Studi literatur ialah tahap dimana penulis mengumpulan data dengan berbagai sumber referensi mengenai obat-obatan, pengolahan citra, metode Convolutional Neural Network yang diperoleh dari berbagai buku, jurnal, artikel maupun penelitian terdahulu dan berbagai sumber referensi lainnya.
2. Analisa dan Perancangan
Di tahap ini dilakukan pengolahan data yang telah dikumpulkan pada tahap studi literatur sehingga diperoleh penalaran dan perancangan menggunakan metode Convolutional Neural Network. Perancangan ini meliputi perancangan arsitektur umum sistem, pengumpulan data, serta rancangan aplikasi untuk pengguna.
3. Implementasi
Implementasi merupakan tahap dimana merealisasikan rancangan sistem yang telah dibuat sebelumnya melalui kode tersusun hingga menjadi suatu sistem yang dapat merealisasikan tujuan penelitian ini.
4. Pengujian
Pengujian merupakan tahap yang berguna melihat apakah sistem yang dibuat telah berjalan menurut tugasnya dan juga dilakukan perbaikan terhadap aplikasi yang tidak berjalan semestinya.
5. Dokumentasi dan Penyusunan Laporan
Tahap ini merupakan tahap dimana dilakukannya dokumentasi juga penyusunan laporan aplikasi setelah diuji. Laporan hasil penelitian ditulis dalam bentuk skripsi.
1.7. Sistematika Penulisan
Sistematika penulisan dari skripsi ini terdiri dari lima bagian utama yaitu sebagai berikut:
BAB 1: PENDAHULUAN
Bab ini menjelaskan hal apa yang melatarbelakangi penelitian ini, rumusan masalah, batasan masalah, tujuan serta manfaat penelitian, metodologi juga sistematika penulisan.
BAB 2: LANDASAN TEORI
Bab ini menjelaskan teori yang dipergunakan untuk penyelesaian masalah dalam penelitian ini.
BAB 3: ANALISIS DAN PERANCANGAN SISTEM
Bab ini menjelaskan arsitektur umum, pengumpulan data juga implementasi algoritma Convolutional Neural Network untuk mengidentifikasi obat-obatan.
BAB 4: IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini menjelaskan tentang implementasi dari yang dibuat sebelumnya dan dilakukan uji untuk mengetahui sistem berjalan sesuai dengan yang diharapkan atau tidak.
BAB 5: KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dari hasil dari penelitian ini dan saran yang diajukan berguna bagi penelitian selanjutnya.
BAB 2
LANDASAN TEORI
Bab ini menjelaskan teori penunjang dan penelitihan terdahulu yang berhubungan dengan metode Convolutional Neural Network dalam mengidentifikasi citra obat-obatan.
2.1. Obat
Obat yakni sesuatu bahan ataupun paduan bahan yang digunakan untuk menetapkan diagnosis, menghindari, mengurangi, menghilangkan, mengobati penyakit, cedera ataupun kelainan badaniah serta rohaniah pada manusia ataupun hewan, memperelok tubuh ataupun bagian tubuh manusia (SK MenKes RI).
Gambar 2.1. FG Troches (MIMS) Gambar 2.2. Simdrol-4 2.2. Citra
Citra merupakan bentuk dua dimensi dari sebuah objek. Citra digital terbentuk dari piksel dan piksel tersebut bentuk angka (Gonzales & Woods, 2008).
2.3. Citra Digital
Citra digital merupakan citra yang bisa diolah secara langsung oleh komputer (Sutoyo et al, 2009). Citra digital diwakili dengan matriks M baris dan N kolom, ketika terjadi perpotongan antara kolom baris, itu disebut sebagai pixel, dapat terlihat pada Gambar 2.3.
Gambar 2.3. Representasi Citra Digital
Pixel terdiri dari dua parameter, yakni koordinat dan intensitas warna. Sebuah citra digital direpresentasikan kedalam bentuk matriks berikut :
( ) [
( ) ( )
( ) ( ) ( ) ( )
( ) ( )
( )]
(2.1)
Berdasarkan matriks 2.1, citra digital dianggap sebagai fungsi intensitas f(x,y), dimana nilai x dan nilai y adalah koordinat posisi dan f(x,y) merupakan nilai fungsi titik (x,y) yang berisi besar intensitas citra. (Sutoyo et al.,2009:20).
2.4. Pengolahan Citra Digital
Pengolahan citra digital ialah proses mengolah sebuah citra dengan komputer sehingga menghasilkan kualitas citra yang lebih baik agar dapat diinterpretasi dengan mudah oleh manusia ataupun sebuah mesin (Hidayatullah, P., 2017)
2.5. Machine Learning
Machine learning ialah proses dimana mesin ataupun computer mampu belajar menggunakan data yang sudah diberikan, bertujuan menganalisa atau memecahkan suatu masalah. Machine learning sangat akrab dengan istilah learn from data (Lukman, 2014). Machine learning ialah salah satu bentuk pendekatan dalam Artificial Intelligence yang digunakan untuk menyelesaikan masalah atau melakukan sesuatu secara otomatis.
2.6. Convolutional Neural Network
Convolutional neural network merupakan operasi yang menggabungkan lapisan-lapisan yang beroperasi secara paralel, hal ini terinspirasi dari sistem saraf biologis manusia (Hu et al, 2015). CNN mepresentasikan setiap neuronnya kedalam bentuk 2 dimensi, sehingga metode ini cocok digunakan dengan pemrosesan input berupa citra (Manggiori et al, 2016). Arsitektur convolutional neural network terlihat pada Gambar 2.4.
Gambar 2.4. Arsitektur Convolutional Neural Network (Karapathy, 2018) Arsitektur dari CNN dibagi menjadi dua bagian besar, yaitu:
2.6.1. Feature Learning
Lapisan pada CNN bersifat hierarki, yang berarti output pada lapisan sebelumnya akan dipergunakan sebagai input untuk lapisan berikutnya.
1. Convolution Layer
Convolution layer merupakan layer yang menerima masukan citra. Layer ini adalah proses utama yang mendasari sebuah CNN. Tujuan dari konvolusi untuk mengekstraksi fitur-fitur apa saja yang terdapat pada citra. Terdapat beberapa parameter yang dapat digunakan pada lapisan ini, yaitu kernel, stride, padding dan lainnya. Kernel memiliki nama lain filter yang berguna untuk mengekstrasi fitur yang ada pada citra. Stride berguna untuk mengatur pergerakan kernel untuk pengekstraksian. Semakin sedikit jumlah stride yang digunakan maka akan makin detail pula informasi didapatkan.
Padding berguna untuk menambahkan beberapa pixel dengan jumlah tertentu sesuai dengan yang diperlukan.
Untuk mendapatkan hasil akhir dari proses convolution layer, maka digunakan rumus seperti pada Persamaan 2.1.
(2.1)
Dimana:
W = Ukuran gambar, P = Padding F = Ukuran kernel/filter, S = Stride 2. Pooling Layer
Pooling layer berguna untuk pencarian fitur pada citra yang telah didapatkan pada layer sebelumnya. Pooling layer bekerja dengan mengurangi ukuran matriks. Beberapa metode pooling yang dapat digunakan adalah Max Pooling, Average Pooling, Sum Pooling dan sebagainya. Pada penelitian ini penulis menggunakan MaxPooling.
Rumus yang digunakan pada pooling layer dapat dilihat pada persamaan 2.2
(2.2)
Dimana:
W = Ukuran gambar, S = Stride F = Ukuran kernel/filter
2.6.2. Classification 1. Flatten Layer
Flatten layer bertujuan untuk mengubah matriks yang dihasilkan pada tahap pooling layer menjadi satu kolom saja atau yang disebut vector tunggal. Hasil dari layer ini akan digunakan menjadi input pada layer berikutnya.
2. Fully Connected Layer
Fully connected layer ini merupakan bagian multi layer perceptron. Lapisan ini berguna untuk membuat semua neuron pada lapisan sebelumnya saling terhubung satu sama lain
dengan neuron yang berada pada lapisan berikutnya. Hal ini berguna untuk mengolah data sehingga bisa diklasifikasikan.
3. Output Layer
Output layer ialah lapisan terakhir arsitektur CNN. Pada lapisan ini dapat menggunakan beberapa fungsi aktivasi seperti binary, sigmoid, softmax dan lainnya. Untuk penelitian ini penulis menggunakan fungsi softmax, karena penulis menggunakan kelas yang berjumlah lebih dari dua pada dataset atau yang disebut multi class.
2.7. Tensorflow
Tensorflow adalah platform open source end-to-end yang dibuat dan dikembangkan oleh Google Brain untuk mendukung machine learning. Tensorflow memiliki alat, pustaka, dan sumber daya yang komprehensif dan fleksibel yang memungkinkan penelitian menggunakan machine learning yang mutakhir dan developer dengan mudah membangun dan menerapkan aplikasi yang didukung machine learning. Tensorflow dapat digunakan dengan bahasa pemrograman Python dan C++ API yang stabil (Tensoflow, 2019). Tensorflow yang penulis gunakan pada penelitian ini adalah Tensorflow 2 dan menjalankan di jupyter notebook.
2.8. Tensorflow Lite
TensorFlow Lite adalah seperangkat alat yang memungkinkan pembelajaran mesin di perangkat dengan membantu developer menjalankan model yang sudah dibuat ke dalam perangkat seluler dan IoT. Tensorflow lite dibuat untuk mengatasi 5 kendala utama yaitu latensi, privasi, konektivitas, ukuran dan konsumsi daya. Latensi yang dimaksud adalah selang waktu yang digunakan dalam membaca dan menggunakan model. Privasi bertujuan untuk tidak meninggalkan data pribadi pengguna ke dalam device yang digunakan. Konektivitas dimaksud agar dalam penggunaan model tensorflow lite tidak diperlukannya jaringan internet.
Ukuran yang digunakan pada tensorflow lite lebih kecil dan dapat mengurangi latensi.
Konsumsi daya yang diperlukan juga lebih sedikit karena dalam penggunaannya tidak memerlukan jaringan internet (Tensorflow, 2021)
Tensorflow lite dapat digunakan ke dalam perangkat Android dan iOS, Linux dan mikrokontroler. Bahasa yang dapat digunakan untuk menjalankan tensorflow lite mencakup Java, Swift, Objective-C, C ++ dan Python. Tensorflow lite juga menyediakan library
pembelajaran mesin yang umum digunakan seperti klasifikasi gambar, deteksi objek, estimasi pose, klasifikasi teks.
2.9. Android
Android merupakan sistem operasi yang digunakan perangkat mobile. Android merupakan platform memperbolehkan para pengembang untuk membuat aplikasi mereka sendiri.
Developer dapat membuat aplikasi mereka sendiri dengan menggunakan pemrograman Java (Eko, 2012).
2.10. Android Studio
Android Studio dibuat untuk membantu pengembangan aplikasi android. Android Studio juga memiliki beberapa fitur seperti emulator yang cepat, kode yang terintegrasi dengan GitHub, adanya dukungan C++ dan NDK serta mendukung Google Cloud Platform yang dapat mempermudah dalam pengintegrasian Google Cloud Messaging dan App Engine.
2.11. Penelitian Terdahulu
Penelitian sebelumnya oleh Hnoohom, N., Yuenyong, S., & Chotivatunyu, P. Pada tahun 2018 dengan judul MEDiDEN: Automatic Medicine Identification Using a Deep Convolutional Neural Network. Sistem yang dibuat berguna untuk mengklasifikasikan obat melalui citra kemasan obat serta pengguna dapat mengatur jadwal untuk mengonsumsi obat.
Sistem ini memperoleh akurasi 92.75% menggunakan Inception-V3 dan 94.85%
menggunakan Inception-V4 dengan menggunakan 1260 citra.
Penelitian yang dilakukan oleh Alamsyah, S.F pada tahun 2019, dengan judul Implementasi Deep Learning Untuk Klasifikasi Tanaman Toga Berdasarkan Ciri Daun Berbasis Android. Sistem ini menggunakan metode CNN, dengan menggunakan 1200 data training dan 100 data testing menghasilkan tingkat akurasi sebesar 80%.
Penelitian yang dilakukan oleh Mulyanto, F. pada tahun 2020 dengan judul Aplikasi Pendeteksian Objek Buah-buahan Yang Memiliki Kemiripan Menggunakan Algoritma Faster R-CNN Berbasis Android. Sistem ini bertujuan untuk mengurangi kesalahan dalam penyortiran akibat kemiripan buah. Buah yang diteliti adalah apel, pir, anggur, blueberry, leci dan rambutan dengan menggunakan 1147 data testing dan mencapai akurasi 95,98%.
Penelitian yang dilakukan oleh Dwiatmoko, W pada 2020 dengan judul Perancangan Sistem Pengenalan Jenis Tanaman Obat Dengan Kamera Berbasis Android. Sistem ini menggunakan 191 data training dan 60 data testing. Hasil training mendapatkan akurasi 100% dengan total epoch 250. Pada proses testing, terjadi perubahan akurasi menjadi 43%.
Tabel 2.1. Penelitian Terdahulu
No Peneliti Judul Keterangan
1 Narit Hnoohom, Sumeth
Yuenyong dan Pitchaya Chotivatunyu (2018)
MEDiDEN: Automatic Medicine Identification
Using a Deep
Convolutional Neural Network
Sistem ini dibuat untuk
mengklasifikasikan obat melalui citra kemasan obat serta pengguna dapat mengatur jadwal untuk mengonsumsi obat. Sistem ini memperoleh akurasi 92.75% menggunakan Inception-V3 dan 94.85% menggunakan Inception-V4 dengan menggunakan 1260 citra.
2 Slamet Fifin Alamsyah (2019)
Implementasi Deep
Learning Untuk
Klasifikasi Tanaman Toga Berdasarkan Ciri Daun Berbasis Android.
Sistem ini menggunakan metode CNN, dengan menggunakan 1200 data training dan 100 data testing menghasilkan tingkat akurasi sebesar 80%.
3 Ferdinan Mulyanto (2020)
Aplikasi Pendeteksian Objek Buah-buahan
Yang Memiliki
Kemiripan Menggunakan
Algoritma Faster R- CNN Berbasis Android.
Sistem ini bertujuan untuk mengurangi kesalahan dalam penyortiran akibat kemiripan buah. Buah yang diteliti adalah apel, pir, anggur, blueberry, leci dan rambutan dengan menggunakan 1147 data testing dan mencapai akurasi 95,98%.
4 Withar Dwiatmoko (2020)
Perancangan Sistem Pengenalan Jenis Tanaman Obat Berbasis Android
Sistem ini menggunakan 191 data training dan 60 data testing.
Mendapatkan akurasi sebesar 43%
dengan total epoch 250.
Berdasarkan Tabel 2.1, dapat dilihat bahwa penelitian ini masih jarang dilakukan.
Adapun penelitian yang paling mendekati adalah penelitian yang dilakukan oleh Narit Hnoohom dkk, perbedaan penelitian ini dengan penelitian tersebut ialah sistem yang dibuat sebelumnya hanya berupa klasifikasi obat yang belum mampu menampilkan deskripsi dari citra obat, sedangkan sistem yang penulis bangun merupakan identifikasi obat yang mampu menampilkan hasil identifikasi obat serta deskripsi lengkap tentang obat tersebut. Adapun alasan penulis menggunakan metode convolutional neural network karena metode tersebut yang paling mumpuni dalam pemrosesan dengan input berupa citra. Metode ini juga mampu melakukan ekstraksi fitur dengan baik dimana ekstraksi fitur sangat diperlukan untuk pengenalan ciri objek.
BAB 3
ANALISIS DAN PERENCANAAN
Bab ini menjelaskan tentang bagaimana analisis dan perancangan tampilan antarmuka aplikasi identifikasi citra obat-obatan menggunakan Convolutional Neural Network ini dilakukan.
3.1. Data yang Digunakan
Data digunakan adalah citra obat-obatan berkestensi .jpg yang didapat dari hasil foto penulis.
Data dibagi menjadi tiga dataset, yaitu training, validation dan testing, dimana data training sebanyak 970 citra, validation sebanyak 119 citra dan testing sebanyak 126 citra.
3.2. Analisis Sistem
Adapun metode dalam pengidentifikasian obat ini memiliki beberapa tahapan yaitu sebagai berikut.
3.2.1. Input
Input yang digunakan pada penelitian ialah citra warna dari obat-obatan yang berkestensi .jpg yang didapat dari hasil foto penulis. Data yang diperoleh dibagi menjadi tiga dataset, yaitu training, validation dan testing dengan perbandingan 80%, 10% dan 10%
3.2.2. Proses
Tahap ini akan dilakukan pengolahan terhadap data citra obat-obatan yang telah didapat.
Proses yang dilakukan adalah resize, augmentasi, training dan convert to tflite model.
1. Resize
Resize merupakan tahap awal dari pre-processing, dimana citra akan diperkecil ukurannya untuk mempercepat proses latih. Ukuran yang digunakan adalah 224 x 224 pixel karena perangkat mobile mendukung ukuran demikian.
2. Augmentasi
Augmentasi data perlu dilakukan untuk memperkaya data citra obat yang telah dimiliki.
Augmentasi yang dilakukan berupa rotasi, flip serta zoom in dan zoom out citra.
3. Training
Tahap training merupakan tahap dimana training dataset dan validation dataset akan dipelajari oleh sistem menggunakan algoritma Convolutional Neural Network.
4. Convert to tflite
Model yang telah dihasilkan pada tahap sebelumnya akan dikonversikan kedalam bentuk tflite agar dapat dipergunakan ke perangkat android.
3.2.3. Output
Output dihasilkan berupa nama obat dari citra obat yang diterima pada proses input.
3.3. Arsitektur Umum
Adapun arsitektur umum dari penelitian ini dapat dilihat pada Gambar 3.1 berikut.
Keterangan Arsitektur Umum (Gambar 3.1) adalah:
1. Training
a. Pengumpulan data
Pada tahap ini sistem akan diberikan data yang berisi citra obat–obatan dari FG Troches, Galdom, Neo Diaform, Omeprazole, Simdrol-4, Zeviton.
b. Resize
Resize merupakan tahap awal dari pre-processing, dimana citra akan diperkecil ukurannya untuk mempercepat proses latih. Ukuran yang digunakan adalah 224 x 224 pixel. Pada Tabel 3.1 dapat terlihat perbedaan citra sebelum resize dan sesudah dilakukan resize.Dalam melakukan resize, penulis menggunakan fungsi resize yang disediakan oleh library pillow(PIL) menggunakan bahasa pemrograman python.
Tabel 3.1. Resize
Sebelum Sesudah
3000 x 4000
224 x 224
c. Data Augmentation
Data Augmentation perlu dilakukan untuk memperkaya data citra obat. Augmentasi yang dilakukan berupa rotasi, flip serta zoom in dan zoom out citra. Dari augmentasi data yang dimiliki menjadi 1215 citra. Contoh hasil dari data augmentation dapat
dilihat pada Tabel 3.2. Untuk melakukan augmentasi, penulis memanfaatkan keras dari tensorfow dengan menggunakan data generator yang berfungsi untuk membantu augmentasi berjalan secara statis dan cepat pada bahasa pemrograman python.
Tabel 3.2. Contoh Hasil dari Data Augmentation
No Tahap
Preproses Data
Perintah yang Digunakan
Sampel Hasil
1 Data Asli
-
2 Melakukan rotasi sebesar secara acak
rotation_range
= 45
3 Horizontal Flip horizontal_fli p = True
4 Zoom in dan zoom out
zoom_range = 0.2
d. Split Data
Dari banyak data yang dimiliki, data tersebut akan dibagi menjadi tiga dataset yaitu training dataset, validation dataset dan testing dataset dengan perbandingan 80%, 10%, 10%, dimana data training sebanyak 970 citra, validation sebanyak 119 citra dan testing sebanyak 126 citra, terlihat pada Tabel 3.3. Untuk membagi dataset, penulis menggunakan splitfolders pada pemrograman python.
Tabel 3.3. Hasil Split Data
No. Nama Dataset % Jumlah Data
1 Training 80 970
2 Validation 10 119
3 Testing 10 126
Jumlah 100 1215
e. Convolutional Neural Network
Pada tahap ini training dataset dan validation dataset akan dilatih menggunakan algoritma Convolutional Neural Network agar sistem dapat mengenali jenis obat- obatan yang sudah diberikan dan dapat digunakan untuk pengujian sistem nantinya.
Adapun tahap yang dilakukan adalah:
1) Convolution Layer
Berikut ini adalah pembahasan untuk lapisan konvolusi.
Gambar 3.2. Sampel Gambar Data Input
Gambar 3.2 merupakan gambar input image yang mewakili dataset yang tersedia.
Input image memiliki ukuran pixel 224 x 224, oleh sebab itu penulis hanya mengambil sebagian pixel saja, yaitu berukuran 5 x 5. Angka 3 diatas maksudnya adalah bahwa gambar tersebut memiliki 3 channel yaitu red, green, blue atau RGB.
Proses konvolusi dengan kernel dapat dilihat pada Gambar 3.3.
Gambar 3.3. Proses Konvolusi Dengan Kernel 3x3
Pada penelitian ini, penulis tidak menggunakan padding tambahan atau yang disebut zero padding, serta penulis menggunakan stride 1. Oleh sebab itu kita dapat menggunakan rumus pada persamaan 2.1 untuk mengetahui besar output yang akan diperoleh. Pada Gambar 3.3 dapat diketahui bahwa:
W = 5 x 5, F = 3 x 3,
Sehingga perhitungannya adalah sebagai berikut.
( )
Dari perhitungan diatas, maka kita akan memperoleh output dengan ukuran 3 x 3.
Gambar 3.4. Proses Pergeseran Dengan Stride = 1 dan Kernel 3x3
Gambar 3.5. Proses Konvolusi Pada Pergeseran Pertama
Gambar 3.6. Proses Konvolusi Pada Pergeseran Terakhir
Adapun perhitungan yang dilakukan untuk mendapatkan hasil pada Gambar 3.5 dan Gambar 3.6 adalah sebagai berikut.
Posisi 1:
(5x1) + (6x4) + (3x2) + (2x2) + (8x1) + (5x0) + (1x1) + (4x3) + (4x6) = 84 Posisi 2:
(6x1) + (3x4) + (6x2) + (8x2) + (5x1) + (5x0) + (4x1) + (4x3) + (3x6) = 85 Posisi 3:
(3x1) + (6x4) + (9x2) + (5x2) + (5x1) + (6x0) + (4x1) + (3x3) + (2x6) = 85 Posisi 4:
(2x1) + (8x4) + (5x2) + (1x2) + (4x1) + (4x0) + (5x1) + (2x3) + (8x6) = 109 Posisi 5:
(8x1) + (5x4) + (5x2) + (4x2) + (4x1) + (3x0) + (2x1) + (8x3) + (3x6) = 94 Posisi 6:
(5x1) + (5x4) + (6x2) + (4x2) + (3x1) + (2x0) + (8x1) + (3x3) + (6x6) = 101 Posisi 7:
(1x1) + (4x4) + (4x2) + (5x2) + (2x1) + (8x0) + (6x1) + (3x3) + (9x6) = 106 Posisi 8:
(4x1) + (4x4) + (3x2) + (2x2) + (8x1) + (3x0) + (3x1) + (9x3) + (6x6) = 104 Posisi 9:
(4x1) + (3x4) + (2x2) + (8x2) + (3x1) + (6x0) + (9x1) + (6x3) + (4x6) = 90
2) Pooling Layer
Hasil akhir pada lapisan konvolusi akan digunakan kembali pada proses pooling sebagai input, dapat dilihat pada Gambar 3.7.
Gambar 3.7. Hasil Akhir Konvolusi Sebagai Input Pada Pooling
Pada lapisan ini, penulis menggunakan stride 1 dengan kernel 2 x 2 dan juga menggunakan metode MaxPooling. Oleh sebab itu kita dapat menggunakan rumus pada persamaan 2.2 untuk mengetahui besar output yang akan diperoleh. Diketahui bahwa:
W = 3 x 3, F = 2 x 2, S = 1
Sehingga perhitungannya adalah sebagai berikut.
Dari perhitungan diatas kita mengetahui bahwa kita akan memperoleh output sebesar 2 x 2. Adapun proses yang akan dilakukan dapat dilihat pada Gambar 3.8.
Gambar 3.8. Proses Pooling Menggunakan MaxPooling
MaxPooling berfungsi untuk mengambil nilai maksimal dari kernel 2 x 2, setelah berhasil mendapatkan nilai, maka akan bergerak dengan stride 1 kemudian nilai akan disimpan ke dalam matriks yang baru.Hasil akhir dari pooling layer dapat dilihat pada Gambar 3.9.
Gambar 3.9. Hasil Akhir Pada MaxPooling
3) Flatten Layer
Hasil akhir dari pooling akan dibuat menjadi 1 vektor saja, dimana hasil dari flattening selanjutnya akan digunakan sebagai input pada fully connected layer. Hasil dari flattening dapat dilihat pada Gambar 3.10.
Gambar 3.10. Hasil Dari Flatten Layer
4) Fully Connected Layer
Fully connected layer disini berperan sebagai hidden layer yang merupakan lapisan yang menentukan ke output manakah citra akan dikelompokan. Pada penelitian ini, penulis menggunakan 6 kelas sebagai output, sehingga penulis menggunakan fungsi aktifasi softmax. Gambar 3.11 merupakan tampilan fully connected layer serta output layer.
Gambar 3.11. Fully Connected Layer
f. Trained Model
Setelah model selesai dilatih, maka model tersebut disimpan untuk digunakan pada tahap pengujian.
g. Convert to tflite
Untuk menggunakan model pada perangkat android, maka model yang telah dilatih di konversikan ke dalam model dengan ekstensi .tflite. Kemudian kita akan menambahkan metadata kedalam model agar memudahkan dalam pengaplikasiannya ke perangkat android. Untuk melakukan ini, penulis menggunakan converter yang disediakan oleh tensorflow itu sendiri, menggunakan bahasa pemrograman python.
2. Testing 1) Input
Tahap ini, sistem akan menerima masukan citra obat yang berasal dari kamera android secara langsung.
2) Load tflite Model
Kemudian sistem akan memproses input yang diterima dari kamera dan akan melakukan identifikasi menggunakan model yang telah dilatih sebelumnya.
3) Output
Hasil identifikasi dari citra obat akan ditampilkan pada layar. Kemudian berdasarkan nama obat yang didapatkan, database akan memroses dan mengambil semua hasil
yang berhubungan dengan nama obat tersebut, sehingga hasil akhir yang akan didapatkan adalah nama obat, kegunaan obat, cara penggunaan,efek samping serta kontraindikasi dari obat tersebut. Gambar 3.3 merupakan rancangan database yang telah dibuat.
Gambar 3.12. Rancangan Database 3.4. Perancangan Antarmuka Sistem
Perancangan antarmuka sistem ini bertujuan menjelaskan bagaimana gambaran sistem dibangun. Adapun rancangan antarmuka yang dibuat adalah halaman splashscreen, halaman home, halaman testing serta halaman deskripsi.
3.4.1. Rancangan Tampilan Splashscreen
Hal pertama yang ditampilkan ketika membuka aplikasi adalah halaman splashscreen.Halaman ini berisi logo dan nama dari aplikasi. Rancangan tampilan halaman splashscreen dapat dilihat pada Gambar 3.13.
Gambar 3.13. Rancangan Tampilan Splashscreen 3.4.2. Rancangan Tampilan Home
Halaman home merupakan tampilan utama aplikasi. Pada halaman home akan terdapat dua tombol, yang pertama adalah info button. Info button akan menampilkan pop-up yang berisi tentang info mengenai aplikasi dan nama dari penulis. Kemudian tombol yang kedua adalah scan button, tombol ini akan mengarahkan kita ke halaman selanjutnya. Rancangan tampilan halaman home dapat dilihat pada Gambar 3.14.
Gambar 3.14. Rancangan Tampilan Home
3.4.3. Rancangan Tampilan Testing
Setelah memilih scan button pada halaman sebelumnya, maka akan tampil halaman testing.
Halaman ini berguna untuk menguji sistem yang telah dibuat. User akan mengarahkan obat ke kamera yang telah dibuka. Kemudian hasilnya akan tampil di bagian result. Untuk melihat deskripsi dari nama obat yang diperoleh, user diharuskan memilih view description button.
Rancangan tampilan testing dapat dilihat pada Gambar 3.15.
Gambar 3.15. Rancangan Tampilan Testing 3.4.4. Rancangan Tampilan Deskripsi
Setelah menekan tombol view description pada halaman sebelumnya, user akan diarahkan ke halaman deskripsi. Halaman ini berisi informasi mengenai obat yang didapatkan pada halaman sebelumnya. Pada halaman ini juga disediakan tombol close bila user ingin mendeteksi obat lain. Maka akan kembali ke halaman testing. Rancangan dari halaman deskripsi dapat dilihat pada Gambar 3.16.
Gambar 3.16. Rancangan Tampilan Deskripsi
BAB 4
IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi implementasi dan pengujian algoritma Convolutional Neural Network dalam proses pengidentifikasian citra obat-obatan. Pengujian dilakukan menurut analisis yang dituliskan pada bab sebelumnya.
4.1. Implementasi Sistem
Tahap ini merupakan proses yang dilakukan untuk mengidentifikasi obat-obatan menggunakan metode Convolutional Neural Network. Bahasa pemrograman yang digunakan untuk melakukan training adalah python dengan menggunakan jupyter noebook. Sistem yang dibangun berbasis mobile yang dibuat menggunakan bahasa pemrograman java menggunakan Android Studio.
4.1.1. Spesifikasi Perangkat Keras
Berikut adalah spesifikasi perangkat keras yang penulis gunakan untuk membangun sistem.
Tabel 4.1. Spesifikasi Perangkat Keras
Perangkat Keras Komponen
ASUSTek Computer X456URK
Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (4 CPUs),
~2.7GHz RAM (12 GB) Harddisk (1 TB)
Redmi S2 Memori Internal (32 GB) RAM (3 GB)
Camera 12 MP
Battery 3080 mAh Redmi Note 7 Memori Internal (64 MP)
RAM (4 GB) Camera 48 MP Battery 4000 mAh
4.1.2. Spesifikasi Perangkat Lunak
Berikut adalah spesifikasi perangkat lunak yang penulis gunakan untuk membangun sistem.
Tabel 4.2. Spesifikasi Perangkat Lunak
Perangkat Lunak Komponen
ASUSTek Computer X456URK Windows 10 Pro 64-bit Miniconda 3
Python 3.8.10 Tensorflow 2.3.0 Android Studio 4.1.2 Redmi S2 OS Android 9 (Pie) Redmi Note 7 OS Android 10 (Q)
4.1.3. Implementasi Data
Pada bab sebelumnya telah disebutkan bahwa data dibagi menjadi tiga dataset yaitu training dataset, validation dataset dan testing dataset dengan perbandingan 80%, 10%, 10%, dimana data training sebanyak 970 citra, validation sebanyak 119 citra dan testing sebanyak 126 citra. Pada Tabel 4.3 dapat dilihat perbandingan dari ketiga dataset tersebut.
Tabel 4.3. Pembagian Citra Pada Dataset
Nama Obat Train
Dataset
Validation Dataset
Test Dataset
FG Troches 222 27 29
Galdom 139 17 18
Neo Diaform 168 21 21
Omeprazole 138 17 18
Simdrol-4 165 20 22
Zeviton 138 17 18
Jumlah 138 119 126
Pada Gambar 4.1 dapat dilihat contoh data obat yang digunakan pada proses training untuk penyelesaian penelitian ini.
Gambar 4.1. Implentasi Data 4.1.4. Proses Training
Proses training dilakukan dengan metode Convolutional Neural Network. Untuk menentukan model terbaik, maka penulis melakukan beberapa kali percobaan dengan learning rate dan
jumlah epoch yang berbeda-beda. Parameter yang diamati dari perbandingan ini adalah tingkat akurasi dan loss yang dihasilkan. Hasil percobaan dapat dilihat pada Tabel 4.4.
Tabel 4.4. Percobaan Dengan Beberapa Learning Rate dan Epoch
No Learning
Rate Epoch
Training Validation
Pecobaan Accuracy Loss Accuracy Loss
1 0.1 50 18.13% 1.92 20% 1.88
2 0.1 100 22.50% 1.86 20.67% 1.89
3 0.1 150 19.37% 1.86 18.67% 1.84
4 0.1 200 23.75% 1.85 24.67% 1.82
5 0.01 50 60.62% 1.04 66.67% 0.96
6 0.01 100 68.18% 0.87 72% 0.80
7 0.01 150 82.50% 0.47 88.67% 0.33
8 0.01 200 76.88% 0.65 81.33% 0.52
9 0.001 50 86.36% 0.36 90.67% 0.26
10 0.001 100 93.12% 0.21 94.67% 0.25
11 0.001 150 99.37% 0.05 96.67% 0.10
12 0.001 200 97.73% 0.12 96.67% 0.12
13 0.0001 50 72.50% 0.71 75.33% 0.64
14 0.0001 100 85% 0.44 89.33% 0.39
15 0.0001 150 85.62% 0.36 92% 0.29
16 0.0001 200 87.50% 0.31 92.67% 0.20
Dari hasil percobaan pada Tabel 4.4, dapat disimpulkan bahwa hasil terbaik diperoleh pada percobaan 11, dimana training accuracy yang dicapai sebesar 99.37% dengan loss 0.05 dan validation accuracy sebesar 96.67% dan loss 0.12. Maka penulis memutuskan menggunakan model terbaik tersebut, dimana learning rate yang digunakan adalah 0.001 dan jumlah epoch adalah 150. Tampilan proses training data dilihat pada Gambar 4.2.
Gambar 4.2. Proses Training Data
Gambar 4.3. Perbandingan Akurasi Training dan Validation
Gambar 4.4. Perbandingan Loss Training dan Validation
Berdasarkan hasil yang didapatkan pada Gambar 4.3 dan Gambar 4.4, dapat diketahui bahwa model tidak mengalami undefitting ataupun overfitting. Model dinilai sudah cukup baik untuk mengidentifikasi obat-obatan.
4.1.5. Implementasi Perancangan Antarmuka 1. Logo Aplikasi
Tampilan logo dan nama aplikasi pada android dapat dilihat pada Gambar 4.5.
Gambar 4.5. Logo Aplikasi 2. Tampilan Splashscreen
Hal pertama yang ditampilkan ketika membuka aplikasi adalah halaman splashscreen.Halaman ini berisi logo dan nama dari aplikasi. Implementasi tampilan halaman splashscreen dapat dilihat pada Gambar 4.6.
Gambar 4.6. Implementasi Halaman Splashscreen 3. Tampilan Home
Halaman home merupakan tampilan utama aplikasi. Pada halaman home terdapat dua tombol, yaitu info button dan scan button. Info button akan menampilkan pop-up yang bertuliskan informasi mengenai aplikasi dan nama penulis (dapat dilihat pada Gambar 4.8). Kemudian scan button akan mengarahkan kita ke halaman selanjutnya.
Implementasi tampilan halaman home dapat dilihat pada Gambar 4.7.
Gambar 4.7. Implementasi Halaman Home
Gambar 4.8. Implementasi Pop-up dari Info Button
4. Tampilan Testing
Setelah memilih scan button pada halaman sebelumnya, maka akan tampil halaman testing. Halaman ini berguna untuk menguji sistem yang telah dibuat. User mengarahkan obat ke kamera. Kemudian hasilnya tampil di bagian bawah. Untuk melihat deskripsi dari nama obat yang diperoleh, user diharuskan memilih tombol lihat deskripsi. Implementasi tampilan testing dapat dilihat pada Gambar 4.9.
Gambar 4.9. Implementasi Halaman Testing 5. Tampilan Deskripsi
Seteleh menekan tombol lihat deskripsi pada halaman sebelumnya, user akan diarahkan ke halaman deskripsi. Halaman ini berisi informasi mengenai obat yang didapatkan pada halaman sebelumnya. Jika user menekan tombol tutup, maka user akan kembali ke halaman testing. Implementasi dari halaman deskripsi dapat dilihat pada Gambar 4.10.
Gambar 4.10. Implementasi Halaman Deskripsi 4.2. Prosedur Penggunaan
Prosedur yang dilakukan untuk proses identifikasi dengan menekan tombol scan button pada halaman home, kemudian akan diarahkan ke halaman testing dimana kamera akan dibuka, dapat dilihat pada Gambar 4.9. Kemudian user akan mengarahkan kamera kepada obat yang ingin diidentifikasi. Setelah mendapatkan hasil nama obat, user dapat menekan tombol lihat deskripsi, kemudian informasi tentang tersebut akan ditampilkan, seperti ditunjukan pada Gambar 4.10.
4.3. Pengujian Sistem
Pengujian sistem bertujuan mengetahui bagaimana kemampuan dari sistem yang sudah dibangun untuk pengidentifikasian obat-obatan. Pengujain dilakukan secara langsung melalui kamera android dan juga menggunakan dataset yang tersedia menggunakan confusion matrix. Pengujian secara langsung dilakukan dengan berbagai kondisi seperti menggunakan perangkat ponsel yang berbeda, intensitas cahaya yang berbeda, jarak yang berbeda serta
kondisi lainnya. Pada Tabel 4.5 akan menunjukan hasil identifikasi menggunakan ponsel Redmi Note 7.
Tabel 4.5. Contoh Hasil Pengujian Menggunakan Redmi Note 7
No Citra Desired Output Actual Output
1 FG Troches FG Troches
2 Omeprazole Omeprazole
3 Simdrol-4 Simdrol-4
4 Galdom Galdom
5 Zeviton Zeviton
6 Neo Diaform Neo Diaform
Berdasarkan hasil yang didapatkan pada Tabel 4.5, dapat dilihat bahwa identifikasi berjalan dengan baik pada perangkat Redmi Note 7.
Tabel 4.6. Hasil Pengujian Berdasarkan Intensitas Cahaya
Intensitas Cahaya Citra Desire Output Actual Output
10 lux Omeprazole Omeprazole
25 lux Omeprazole Omeprazole
50 lux Omeprazole Omeprazole
80 lux Omeprazole Omeprazole
270 lux Omeprazole Omeprazole
477 lux Omeprazole Omeprazole
794 lux Omeprazole Omeprazole
1981 lux Omeprazole Omeprazole
2788 lux Omeprazole Omeprazole
3472 lux Omeprazole Omeprazole
12372 lux Tidak Diketahui Omeprazole
17315 lux Galdom Omeprazole
Berdasarkan hasil yang diperoleh pada Tabel 4.6 dapat diketahui bahwa sistem bekerja dengan baik ketika intensitas cahaya tidak melebihi 3472 lux. Ketika kondisi intensitas cahaya melebihi 3472 lux, maka sistem akan banyak melakukan kekeliruan dalam mengidentifikasi.
Tabel 4.7. Hasil Pengujian Berdasarkan Jarak
Jarak Citra Desired Output Actual Output
5 cm Omeprazole Omeprazole
10 cm Omeprazole Omeprazole
15 cm Omeprazole Omeprazole
20 cm Omeprazole Omeprazole
25 cm Omeprazole Omeprazole
30 cm Omeprazole Omeprazole
40 cm Galdom Omeprazole
50 cm Galdom Omeprazole
Pada Tabel 4.7 dapat dilihat bahwa sistem dapat mengidentifikasi dengan baik ketika jarak obat dengan kamera tidak melebihi 30 cm. Jarak yang semakin bertambah akan membuat tampilan obat terlihat lebih kecil, hal inilah yang menyebabkan sistem kesulitan dalam mengidentifikasi obat.
Tabel 4.8. Hasil Pengujian Dengan Latar Berbeda
Background Citra Desired Output Actual Output
Kertas Putih Omeprazole Omeprazole
Latar Merah Omeprazole Omeprazole
Di dalam plastik
transparan Omeprazole Omeprazole
Motif bunga Galdom Omeprazole
Kayu Cokelat Omeprazole Omeprazole
Kain Motif Galdom Omeprazole
Kain motif Omeprazole Omeprazole
Buku tulis putih
bergaris Omeprazole Omeprazole
Tabel 4.8 menunjukan bahwa sistem dapat mengidentifikasi obat dengan latar yang berbeda dengan cukup baik namun terjadi beberapa kesalahan bila obat di identifikasi menggunakan latar yang bermotif. Oleh sebab itu disarankan untuk mengidentifikasi obat dengan latar yang hanya memiliki satu warna saja.
Tabel 4.9. Pengujian Dengan Kondisi Tertentu
No Kondisi Citra Desired Output Actual Output
1 Tidak ada obat Tidak Diketahui Tidak Diketahui
2 Obat baru diluar
dataset Omeprazole Tidak Diketahui
3 Obat baru diluar
dataset Tidak Diketahui Tidak Diketahui
4 Obat baru diluar
dataset Tidak Diketahui Tidak Diketahui
5
Dua obat (obat yang ada di dataset dan obat
baru)
Neo Diaform Neo Diaform
6 Dua obat FG Troches FG Troches,
Zeviton
7 Dua Obat Zeviton Omeprazole, Zeviton
8 Dua obat Simdrol-4 Simdrol-4,
Galdom
9 Tiga obat Neo Diaform
Omeprazole, Neo Diaform,
FG Troches
10 Tiga obat Galdom Simdrol-4, Galdom, Zeviton
11 Tiga obat Neo Diaform
Simdrol-4, Galdom, Neo
Diaform
12 Enam buah obat Neo Diaform
FG Troches, Omeprazole, Neo Diaform,
Simdrol-4, Galdom, Zeviton
Pada Tabel 4.9 dapat dilihat bahwa sistem memiliki kekurangan. Sistem ini dirancang untuk dapat mengidentifikasi satu nama obat saja, tetapi penulis mencoba pengujian dengan
kondisi-12 dapat penulis simpulkan bahwa sistem akan menampilkan hasil berdasarkan nama obat yang lebih banyak dipelajari pada proses training. Jumlah data yang digunakan pada proses training dapat dilihat pada Tabel 4.3. Sistem akan menampilkan hasil yang paling dikenali oleh sistem saat proses training.
Pengujian juga dilakukan dengan testing dataset yang berisi 126 citra yang belum pernah dikenali sistem. Pengujian dilakukan menggunakan confusion matrix. Hasil dari confusion matrix dapat dilihat pada Tabel 4.10.
Tabel 4.10. Confusion Matrix FG
Troches Galdom Neo
Diaform Omerazole Simdrol-4 Zeviton Total
FG Troches 29 0 0 0 0 0 29
Galdom 0 18 0 0 0 0 18
Neo Diaform 0 0 20 0 1 0 21
Omeprazole 1 0 0 17 0 0 18
Simdrol-4 1 0 0 0 21 0 22
Zeviton 0 1 0 0 0 17 18
Total 31 19 20 17 22 17 126
Untuk mengetahui kinerja algoritma CNN pada penelitian ini maka akan dilakukan pengujian dengan beberapa perhitungan yaitu akurasi, presisi dan recall dengan menggunakan persamaan sebagai berikut.
(4.1) ∑
∑( ) (4.2)
∑
∑( ) (4.3)
Dimana :
TP (True Positive) = jumlah data yang benar yang di identifikasi benar oleh sistem
FP (False Positive) = jumlah data yang benar namun di identifikasi salah oleh sistem FN (False Negative) = jumlah data yang salah namun di identifikasi salah oleh sistem
Untuk mengetahui tingkat akurasi pengujian sistem ini, maka digunakan persamaan 4.1.
Berdasarkan hasil dari confusion matrix yang didapatkan pada Tabel 4.10, maka kita dapat menghitung akurasi adalah sebagai berikut.
Kemudian kita akan menghitung presisi menggunakan persamaan 4.2 berdasarkan data yang didapatkan pada Tabel 4.10.
Tabel 4.11. Perhitungan Presisi FG
Troches Galdom Neo
Diaform Omerazole Simdrol-4 Zeviton
TP 29 18 20 17 21 17
FP 0 0 1 1 1 1
Presisi =
TP/(TP+FP) 29/29=1 18/18=1 20/21=0.95 17/18=0.94 21/22=0.95 17/18=0.94
Kemudian kita akan menghitung recall menggunakan persamaan 4.3 berdasarkan data yang tersedia pada Tabel 4.10.
Tabel 4.12. Perhitungan Recall
FG Troches Galdom Neo
Diaform Omerazole Simdrol-4 Zeviton
TP 29 18 20 17 21 17
FN 2 1 0 0 0 0
Recall =
TP/(TP+FN) 29/31=0.93 18/19=0.94 20/20=1 17/17=1 21/21=1 17/17=1
Menurut perhitungan diatas dapat diambil kesimpulan bahwa akurasi algoritma Convolutional Neural Network dalam mengidentifikasi obat-obatan mencapai 96.82%, mendapatkan nilai presisi 96.33% dan nilai recall sebesar 97.83%
BAB 5 PENUTUP
Bab ini berisi kesimpulan dari hasil dari penelitian dan saran yang diajukan agar berguna bagi penelitian selanjutnya.
5.1. Kesimpulan
Adapun kesimpulan yang diperoleh berdasarkan penelitian adalah sebagai berikut.
1. Sistem pengidentifikasian obat-obatan menggunakan Convolutional Neural Network mendapatkan akurasi hingga 96.82%.
2. Berdasarkan beberapa percobaan, pemilihan parameter berupa learning rate 0.001 dan jumlah epoch 150 merupakan nilai terbaik yang dapat digunakan untuk pelatihan data.
3. Sistem mampu mengidentifikasi obat dengan baik menggunakan ataupun tidak menggunakan kemasan obat serta dengan background yang berbeda-beda.
4. Penyebab kesalahan sistem mengidentifikasi nama obat adalah intensitas cahaya yang berlebihan (lebih dari 3472 lux) dan jarak kamera ke obat yang terlalu jauh (lebih dari 30 cm).
5.2. Saran
Adapun saran untuk pengembangan penelitian selanjutnya adalah sebagai berikut.
1. Diharapkan pada penelitian selanjutnya membuat sistem yang dapat mengidentifikasi beberapa obat sekaligus.
2. Diharapkan pada penelitian selanjutnya untuk mencoba kombinasi parameter- parameter lainnya.
3. Diharapkan pada penelitian selanjutnya menggunakan metode neural network lainnya untuk dapat mengatasi kekurangan pada penelitian ini.
4. Diharapkan pada penelitian selanjutnya memperbanyak dan memperluas jenis obat yang digunakan.
DAFTAR PUSTAKA
Alamsyah, S.F. 2019. Implementasi Deep Learning Untuk Klasifikasi Tanaman Toga Berdasarkan Ciri Daun Berbasis Android. Ubiquitous: Computers and its Applications Journal 2(2): 113-122.
Almas, P. 2019. WHO: Kesalahan Medis Picu 2,6 Juta Kematian di Dunia. Republika.co.id, 14 September 2019 (diakses 7 April 2021).
Andono, P.N., Sutojo, T. & Muljono. 2017. Pengolahan Citra Digital. Pramesta, A. Penerbit ANDI : Yogyakarta.
Android. (2021). Meet Android Studio. (Online) https://developer.android.com/studio/intro (20 April 2021).
Botha, A., Niksch, L., Terblanche, R., Venter, K., & Joubert, G. 2017. Illegible handwriting and other prescription errors on prescriptions at National District Hospital, Bloemfontein.
59(1):52-55.
Deng, L. & Yu, D., 2014. Deep Learning: Methods and Application. Foundations and Trends in Signal Processing : USA.
Dwiatmoko, W. 2020. Perancangan Sistem Pengenalan Jenis Tanaman Obat Dengan Kamera Berbasis Android. Skripsi. Universitas Muhammadiyah Surakarta.
Fikriya, Z.A., Irawan, M.I., & Soetrisno. 2017. Implementasi Extreme Learning Machine untuk Pengenalan Object Citra Digital. Jurnal Sains dan Seni ITS 6(1): A18-A23
Hidayatullah, P. 2017. Pengolahan Citra Digital Teori Dan Aplikasi Nyata. Penerbit Informatika: Bandung.
Hnoohom, N., Yuenyong, S., & Chotivatunyu, P. 2018. MEDiDEN: Automatic Medicine Identification Using a Deep Convolutional Neural Network. 2018 International Joint Symposium on Artificial Intelligence and Natural Language Processing (iSAI-NLP).
IEEE.
Irfan, I. & Hidayat, D.R. 2020. Literasi Penggunaan Obat Dengan “Tanya Lima O”. Jurnal Pengabdian Kampus 7(1): 14-16.
Karpathy, A. (2018). Introduction to Convolutional Neural Networks.
Kementrian Kesehatan RI. 2017. Memasyarakatkan Tanya Lima O. (Online) https://farmalkes.kemkes.go.id/2017/09/memasyarakatkan-tanya-lima-o/ (7 April 2021).
Kusumanto, R.D., & Tompunu, A.N. 2011. Pengolahan Citra Digital Untuk Mendeteksi Obyek Menggunakan Pengolahan Warna Model Normalisasi RGB (Semantik).