Aplikasi Pencari Info Obat dengan Masukan Citra Teks Kemasan Obat Berbasis Android Menggunakan Tesseract OCR Engine
APLIKASI PENCARI INFO OBAT DENGAN MASUKAN
CITRA TEKS KEMASAN OBAT BERBASIS ANDROID
MENGGUNAKAN TESSERACT OCR ENGINE
NUGROHO MEGANOFA
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2015
PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Aplikasi Pencari Info
Obat dengan Masukan Citra Teks Kemasan Obat Berbasis Android Menggunakan
Tesseract OCR Engine adalah benar karya saya dengan arahan dari komisi
pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi
mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan
maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan
dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut
Pertanian Bogor.
Bogor, Januari 2015
Nugroho Meganofa
NIM G64124044
ABSTRAK
NUGROHO MEGANOFA. Aplikasi Pencari Info Obat dengan Masukan Citra
Teks Kemasan Obat Berbasis Android Menggunakan Tesseract OCR Engine.
Dibimbing oleh KARLINA KHIYARIN NISA.
Informasi yang detail pada obat biasanya tertulis pada leaflet yang hanya
bisa dibaca ketika kemasan sudah dibuka. Hal tersebut menyulitkan konsumen
yang hanya ingin mengetahui informasi obat untuk memutuskan apakah obat
tersebut jadi dibeli atau tidak. Diperlukan suatu cara untuk mendapatkan versi teks
dari citra merek kemasan obat dan untuk menjadi kata kunci pencarian pada situs
pelayanan informasi obat. Optical Character Recognition (OCR) merupakan
suatu proses mengkonversi image ke suatu editable text. Tesseract melakukan
beberapa tahapan sebelum citra karakter teks dapat dikenali, di antaranya image
preprocessing, feature extraction, segmentation, dan word recognition. Penelitian
ini dilakukan untuk mengembangkan suatu aplikasi pengenalan citra karakter
yang difokuskan pada pengenalan karakter teks kemasan obat berbasis Android.
Tesseract digunakan karena memiliki tingkat akurasi yang baik pada pengenalan
suatu karakter teks terhadap kemasan obat dengan jenis font serif dan sans serif
yang memiliki kerapatan antar-font yang jauh. Masukan aplikasi berupa citra
kemasan obat yang dapat diambil melalui kamera atau fail citra yang sudah
tersimpan di galeri. Akurasi terbaik aplikasi info obat dalam pengenalan citra
karakter dengan 70 data uji berupa kemasan obat mencapai 96.80%.
Kata kunci: Android, obat, optical character recognition, Tesseract
ABSTRACT
NUGROHO MEGANOFA. Android Application to Search Drug Information
with Drug Packaging Image as Input using Tesseract OCR Engine. Supervised by
KARLINA KHIYARIN NISA.
Detailed information on drug is usually written on a leaflet that can only be
read when the package has been opened. It is difficult for consumers who just
want to know the detailed information of certain drug to decide whether the drug
will be bought or not. A solution is needed to convert drug brand text image into
editable text, so that it can be used as a keyword query for drug info searching on
the internet. Optical Character Recognition (OCR) is a process to convert image
into editable text. Tesseract performs several processes to identify drug brand text
image. The processes are image preprocessing, feature extraction, segmentation,
and word recognition. This research developed an Android application to
recognize drug brand text image. Tesseract is used because it has good accuracy
in recognizing text with serif and sans serif font which have far density between
characters. Drug packaging input image of the application can be taken from a
camera or gallery. The best accuracy of this application in recognizing characters
with 70 drug packaging images reached 96.80%.
Keywords: Android, drug, optical character recognition, Tesseract
APLIKASI PENCARI INFO OBAT DENGAN MASUKAN
CITRA TEKS KEMASAN OBAT BERBASIS ANDROID
MENGGUNAKAN TESSERACT OCR ENGINE
NUGROHO MEGANOFA
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
pada
Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2015
Penguji: 1 Dr Yeni Herdiyeni, SSi MKom
2 Rina Trisminingsih, SKom MT
Judul Skripsi : Aplikasi Pencari Info Obat dengan Masukan Citra Teks Kemasan
Obat Berbasis Android Menggunakan Tesseract OCR Engine
Nama
: Nugroho Meganofa
NIM
: G64124044
Disetujui oleh
Karlina Khiyarin Nisa, SKom MT
Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi MKom
Ketua Departemen
Tanggal Lulus:
PRAKATA
Puji dan syukur penulis panjatkan kepada Allah Subhanahu wa Ta'ala atas
rahmat dan segala karunia-Nya sehingga skripsi ini berhasil diselesaikan. Tema
yang dipilih dalam penelitian yang dilaksanakan sejak bulan Juli 2014 ini adalah
pengolahan citra digital, dengan judul Aplikasi Pencari Info Obat dengan
Masukan Citra Teks Kemasan Obat Berbasis Android Menggunakan Tesseract
OCR Engine.
Terima kasih penulis ucapkan kepada kedua orang tua, kakak, dan segenap
keluarga besar penulis atas do’a serta dukungan yang diberikan. Kepada Ibu
Karlina Khiyarin Nisa, SKom MT selaku pembimbing, Ibu Dr Yeni Herdiyeni,
SSi MKom dan Ibu Rina Trisminingsih, SKom MT selaku penguji. Ungkapan
terima kasih juga disampaikan kepada seluruh teman-teman penulis di Program
S1 Ilmu Komputer Alih Jenis.
Semoga karya ilmiah ini bermanfaat.
Bogor, Januari 2015
Nugroho Meganofa
DAFTAR ISI
DAFTAR TABEL
DAFTAR GAMBAR
DAFTAR LAMPIRAN
PENDAHULUAN
Latar Belakang
Perumusan Masalah
Tujuan Penelitian
Manfaat Penelitian
Ruang Lingkup Penelitian
METODE
Pengumpulan Data
Image Preprocessing
Pengenalan Karakter Tesseract OCR
Pemilihan Situs Layanan Penyedia Obat
Perancangan Aplikasi
Use Case Diagram
Activity Diagram
Perancangan Antarmuka
Implementasi
Pengujian
Evaluasi
HASIL DAN PEMBAHASAN
Pengumpulan Data
Image Preprocessing
Grayscaling
Removing Noise
Thresholding
Pengenalan Karakter Tesseract OCR
Feature Extraction
Segmentation
Line Finding
Baseline Fitting
Word Recognition
Pemilihan Situs Layanan Penyedia Obat
Perancangan Aplikasi
Use Case Diagram
Activity Diagram
Perancangan Antarmuka
Implementasi
Pengujian
Pengujian Pengambilan Citra Kemasan Obat
Pengujian Karakter Teks Kemasan Obat
Kesimpulan Hasil Pengujian
Evaluasi
Bobot Nilai Pengujian Kuesioner
vii
vii
vii
1
1
2
2
2
2
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
8
8
8
9
10
10
11
12
13
14
14
14
16
18
19
19
21
22
23
24
Pengujian Usability dengan Kuesioner
Pengukuran Usability dengan Kuesioner
SIMPULAN DAN SARAN
Simpulan
Saran
DAFTAR PUSTAKA
LAMPIRAN
RIWAYAT HIDUP
24
25
26
26
26
27
29
45
DAFTAR TABEL
1
2
3
4
5
6
7
8
9
Beberapa situs penyedia layanan informasi obat
Skenario pengujian pengambilan citra kemasan obat
Contoh pengujian pengambilan citra kemasan obat
Skenario pengujian karakter teks kemasan obat
Contoh pengujian karakter teks kemasan obat
Kesimpulan hasil pengujian pengambilan citra kemasan obat
Kesimpulan hasil pengujian karakter teks kemasan obat
Nilai kuesioner
Persentase total hasil kuesioner
13
20
20
21
21
22
23
24
24
DAFTAR GAMBAR
1
2
3
4
5
6
7
8
9
10
11
Tahapan proses penelitian
Flowchart pengkonversian citra RGB menjadi gambar grayscale
Ilustrasi proses connected component labelling
Ilustrasi proses line finding
Ilustrasi proses baseline fitting
Use case diagram aplikasi
Activity diagram konversi citra ke teks
Activity diagram kueri info obat
Perancangan antarmuka sistem
Hasil implementasi aplikasi
Skala kontinu untuk 5 responden
3
7
9
10
11
14
15
16
17
19
24
DAFTAR LAMPIRAN
1
2
3
4
Akurasi pengenalan karakter teks kemasan obat di galeri
Akurasi pengenalan karakter teks kemasan obat menggunakan kamera
Template lembar kuesioner
Hasil kuesioner
29
39
41
43
PENDAHULUAN
Latar Belakang
Informasi teks merupakan salah satu komponen penting dalam
berkomunikasi yang diperoleh dalam bentuk teks digital yang dapat dikenali oleh
komputer maupun teks nondigital seperti teks pada koran, majalah, dan buku.
Teks digital dapat dengan mudah diolah komputer karena sudah dalam format
yang dikenali oleh komputer, sedangkan teks nondigital harus dimasukkan
terlebih dahulu ke dalam komputer dengan menggunakan alat pemindai (scanner).
Namun, teks nondigital yang telah dimasukkan ke dalam komputer ini tidak
langsung dikenali sebagai teks tetapi dikenali sebagai gambar. Oleh sebab itu,
perlu proses lebih lanjut untuk mengubah teks nondigital menjadi teks digital.
Salah satu teknik untuk mengubah teks nondigital menjadi teks digital disebut
sebagai Optical Character Recognition (OCR).
Untuk penelitian mengenai OCR ini, proses pengenalan karakter
menggunakan suatu library OCR open source, yaitu Tesseract. Mesin OCR yang
berbasis bahasa pemrograman C/C++ ini diterapkan pada platform Android
dengan menggunakan bahasa pemograman Java. Tesseract OCR engine
memberikan hasil yang baik untuk tiap karakter dengan rata-rata tingkat kesalahan
hanya mencapai 3.77% (Smith 2007). Berdasarkan keberhasilan yang telah diuji
tersebut, penelitian ini menggunakan library Tesseract open source engine untuk
pengenalan suatu karakter yang akan mengubah teks nondigital berupa citra
menjadi teks digital. Pengenalan karakter difokuskan terhadap teks kemasan obat
dengan karakter Latin. Teks kemasan obat yang memiliki keberagaman dalam
jenis font dan kerapatan antar-font pada setiap teks membuat akurasi dalam
pengenalan karakter menjadi tidak konsisten
Hasil penelitian ini akan membantu konsumen melakukan pencarian
informasi tentang kemasan obat dengan hanya mengambil citra pada tulisan
merek kemasan obat pada produk obat tersebut dan menyambungkannya ke situssitus layanan penyedia informasi obat. Penelitian ini dilakukan untuk
mengembangkan suatu aplikasi pengenalan citra karakter yang difokuskan pada
pengenalan karakter teks kemasan obat. Teks obat tersebut diambil citranya dan
dilakukan suatu proses pengenalan karakter, selanjutnya teks obat akan menjadi
keyword pencarian dan tersambung pada suatu halaman situs layanan penyedia
informasi obat-obatan. Aplikasi ini dapat memudahkan para konsumen untuk
dapat mengetahui fungsi, indikasi, efek samping, dan aturan pakai dari obat
sebelum konsumen membuka kemasan obat tersebut.
Mengingat teknologi yang sedang berkembang adalah teknologi mobile,
aplikasi ini dikembangkan pada perangkat mobile berbasis Android. Di Indonesia
pengguna device yang mengusung sistem operasi Android mengalami
pertumbuhan signifikan. Perangkat Android masih menduduki peringkat teratas
pasar dunia dengan persentase sebesar 59.5% diikuti oleh Apple 19.3% dan
Microsoft 18.1% (TP 2013). Android memiliki berbagai keunggulan sebagai
software yang memakai kode komputer yang bisa didistribusikan secara terbuka
(open source). Dibangunnya aplikasi ini dimaksudkan agar masyarakat dapat
2
mengetahui informasi obat yang akan dikonsumsinya saat menggunakan
perangkat mobile.
Perumusan Masalah
Perumusan masalah pada penelitian ini adalah:
1
2
3
Tahapan apa saja yang dilakukan oleh Tesseract OCR engine dalam
pengenalan suatu karakter teks?
Seberapa besar akurasi aplikasi dalam mengenali citra karakter teks
kemasan obat pada platform Android?
Seberapa besar tingkat kegunaan aplikasi terhadap pengguna?
Tujuan Penelitian
Tujuan dari penelitian ini adalah:
1
2
3
Mengetahui tahapan pada Tesseract OCR engine sehingga dapat mengenali
suatu karakter teks.
Mengetahui seberapa besar akurasi aplikasi dalam mengenali citra karakter
teks kemasan obat pada platform Android.
Mengevaluasi kegunaan aplikasi melalui kuesioner kepada pengguna.
Manfaat Penelitian
Manfaat yang dapat diperoleh dari hasil penelitian ini adalah dapat membantu
konsumen untuk mengetahui informasi obat dengan hanya melakukan
pengambilan citra pada teks kemasan obat dalam suatu aplikasi yang mudah dibawa
kemanapun.
Ruang Lingkup Penelitian
Ruang lingkup dari penelitian ini adalah:
1
2
3
4
5
Pengenalan karakter teks pada kemasan obat dilakukan pada citra yang
diambil menggunakan kamera dan fail citra yang tersimpan.
Input harus berupa citra yang didukung oleh Android dan Tesseract OCR
engine yaitu format JPEG dan PNG.
Karakter huruf yang diteliti adalah karakter Latin.
Pengujian dilakukan pada 70 kemasan obat.
Aspek pengujian aplikasi terhadap pengambilan citra terdiri atas kategori
jenis font, kerapatan antar-font, intensitas pencahayaan, fokus pengambilan
citra, dan sudut kemiringan pada teks kemasan obat.
3
METODE
Metode penelitian yang digunakan dalam penelitian terdiri dari beberapa
tahapan yang dapat dilihat pada Gambar 1.
Pengumpulan data teks kemasan
obat berupa citra yang akan diuji
(data uji)
Image Preprocessing:
- Grayscaling
- Removing noise
- Thresholding
Pengenalan karakter Tesseract OCR:
- Feature Extraction
- Segmentation
- Word Recognition
Teks
Pemilihan situs penyedia
layanan informasi obat
Perancangan aplikasi:
- Use Case Diagram
- Activity Diagram
- Perancangan Antarmuka
Implementasi
Pengujian
Evaluasi
Gambar 1 Tahapan proses penelitian
4
Pengumpulan Data
Pada tahap awal dilakukan analisis terhadap kemasan obat yang akan diteliti,
kemudian kemasan obat tersebut nantinya akan menjadi masukan terhadap
kebutuhan aplikasi. Data yang menjadi masukan adalah 70 citra kemasan obat
dengan format JPEG.
Data yang berupa citra kemasan obat akan menjadi data uji yang diujikan
terhadap aplikasi. Citra kemasan obat yang menjadi data uji tersebut dapat diambil
dengan cara menggunakan kamera maupun diambil dari fail galeri.
Image Preprocessing
Pada bagian image preprocessing citra kemasan obat akan diubah menjadi
citra biner. Proses image preprocessing terdiri dari grayscaling, removing noise,
dan thresholding. Bagian ini menghasilkan citra biner yang menjadi masukan
pada tahap pengenalan karakter.
Pengenalan Karakter Tesseract OCR
Proses pengenalan karakter menggunakan data latih berupa kamus data
karakter yang tersedia pada Tesseract. Penelitian ini menggunakan Tesseract yang
merupakan suatu library open source yang dapat diunduh dari Google Code
secara gratis. Setelah proses image preprocessing, tahap selanjutnya akan
dilakukan tahapan pengenalan karakter yang terdiri dari proses feature extraction,
segmentation, dan word recognition. Proses feature extraction dilakukan untuk
mendapatkan outline karakter, sedangkan proses segmentation melakukan
pemotongan karakter pada teks. Pada proses word recognition, hasil segmentation
akan dicocokkan dengan data latih berdasarkan bahasa yang sesuai. Library
Tesseract akan ditanamkan pada sistem aplikasi berbasis Android sehingga citra
yang menjadi masukan akan diproses oleh library tersebut.
Citra teks kemasan obat yang awalnya berupa teks nondigital setelah
melalui proses konversi menggunakan Tesseract akan menjadi suatu teks digital
yang dapat diubah maupun dimanipulasi sesuai dengan kebutuhan pada aplikasi.
Pemilihan Situs Layanan Penyedia Obat
Teks digital yang sebelumnya mengalami proses OCR akan menjadi
masukan pencarian terhadap kueri pada situs layanan penyedia obat untuk
mengetahui informasi obat yang terkadung pada kemasan obat yang telah diambil
citranya seperti indikasi, efek samping, aturan pakai, dan lain sebagainya.
Perancangan Aplikasi
Pada tahap perancangan aplikasi terdiri dari beberapa proses yaitu use case
diagram, activity diagram, dan perancangan antarmuka.
5
Use Case Diagram
Use case diagram digunakan untuk memodelkan bisnis proses berdasarkan
perspektif pengguna sistem. Use case diagram terdiri atas diagram untuk use case
dan actor. Actor merepresentasikan orang yang akan mengoperasikan atau orang
yang berinteraksi dengan sistem aplikasi (Satzinger et al. 2010).
Activity Diagram
Activity diagram menggambarkan berbagai alur aktivitas dalam sistem yang
sedang dirancang, bagaimana masing-masing alur berawal, decision yang mungkin
terjadi, dan bagaimana mereka berakhir (Satzinger et al. 2010).
Perancangan Antarmuka
Interface atau antarmuka merupakan tampilan dari suatu program aplikasi
yang berperan sebagai media komunikasi yang digunakan sebagai sarana
berdialog antara program dengan pengguna (Satzinger et al. 2010).
Implementasi
Tahap implementasi merupakan tahapan pengembangan aplikasi
menggunakan perangkat keras dan perangkat lunak. Perangkat keras yang
digunakan adalah ASUS Zenfone 4 A400CG dengan spesifikasi sebagai berikut:
1
2
3
4
5
Sistem Operasi Android Jelly Bean 4.3 dengan versi kernel 3.4.43-00002.
Kamera 5.0 MP, 2592 x 1944 piksel.
Ruang penyimpanan memori internal 4 GB dan SD card 2 GB.
Ukuran layar 400 x 800 piksel 4 inci.
CPU Dual-core 1.2 GHz.
Perangkat lunak yang digunakan dalam pengembangan sistem adalah:
1
2
3
4
Eclipse Kepler sebagai lingkungan pengembangan aplikasi.
Android SDK versi 19 untuk library Android.
Draw.io untuk perancangan aplikasi.
Tesseract OCR sebagai library untuk mengenali citra karakter menjadi
sebuah teks. Tesseract juga menyediakan data latih yang dipakai dalam
sistem.
Pengujian
Tahap pengujian dilakukan dengan cara melakukan pengujian fungsi-fungsi
utama pada sistem dan menguji coba aplikasi pada perangkat smartphone.
Pengujian Tesseract OCR engine yang telah tertanam pada aplikasi menggunakan
beberapa sampel merek teks kemasan obat yang berbeda-beda dengan melakukan
skenario pengujian seperti intensitas cahaya, fokus pengambilan citra, sudut
kemiringan saat pengambilan citra, jenis font pada teks kemasan obat, dan
kerapatan antar-font pada teks kemasan obat sehingga dapat diketahui akurasi
terhadap karakter teks kemasan obat.
6
Evaluasi
Proses evaluasi dilakukan dengan cara memberikan kuesioner terhadap
pengguna aplikasi dengan smartphone Android menggunakan lima aspek usability
yang terdiri dari learnability, efficiency, memorability, errors, dan satisfaction
(Nielsen 2012).
HASIL DAN PEMBAHASAN
Pengumpulan Data
Pengumpulan data dilakukan dengan memilih kemasan obat yang akan diuji
coba. Pengujian aplikasi dilakukan pada citra uji yang diambil melalui kamera
maupun galeri. Pengumpulan data citra dari kamera dilakukan sebanyak 10 citra
uji, sedangkan citra uji untuk disimpan di galeri diunduh melalui internet
sebanyak 60 citra uji dengan resolusi piksel yang bervariasi. Data citra tersebut
memiliki jenis font dan kerapatan antar-font pada setiap teks kemasan obat yang
berbeda. Citra kemasan obat yang akan diuji sesuai dengan skenario pengujian
dapat dilihat pada Lampiran 1 dan Lampiran 2
Image Preprocessing
Pada bagian image preprocessing dilakukan proses grayscaling, removing
noise, dan thresholding.
Grayscaling
Pengkonversian citra berwarna menjadi grayscale merupakan tahapan awal
dalam image preprocessing. Output dalam tahapan ini merupakan citra yang
hanya memiliki derajat keabu-abuan pada setiap pikselnya. Format warna gray ini
digunakan untuk mengetahui tingkat intensitas, sehingga warna yang dimiliki
pada jenis citra ini adalah hitam, abu-abu, dan putih. Proses pengkonversian dapat
dilihat pada flowchart berikut.
7
Start
Loading
Image
h = image.getHeight()
w = image.getWeight()
x=0
y=0
No
x
CITRA TEKS KEMASAN OBAT BERBASIS ANDROID
MENGGUNAKAN TESSERACT OCR ENGINE
NUGROHO MEGANOFA
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2015
PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Aplikasi Pencari Info
Obat dengan Masukan Citra Teks Kemasan Obat Berbasis Android Menggunakan
Tesseract OCR Engine adalah benar karya saya dengan arahan dari komisi
pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi
mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan
maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan
dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut
Pertanian Bogor.
Bogor, Januari 2015
Nugroho Meganofa
NIM G64124044
ABSTRAK
NUGROHO MEGANOFA. Aplikasi Pencari Info Obat dengan Masukan Citra
Teks Kemasan Obat Berbasis Android Menggunakan Tesseract OCR Engine.
Dibimbing oleh KARLINA KHIYARIN NISA.
Informasi yang detail pada obat biasanya tertulis pada leaflet yang hanya
bisa dibaca ketika kemasan sudah dibuka. Hal tersebut menyulitkan konsumen
yang hanya ingin mengetahui informasi obat untuk memutuskan apakah obat
tersebut jadi dibeli atau tidak. Diperlukan suatu cara untuk mendapatkan versi teks
dari citra merek kemasan obat dan untuk menjadi kata kunci pencarian pada situs
pelayanan informasi obat. Optical Character Recognition (OCR) merupakan
suatu proses mengkonversi image ke suatu editable text. Tesseract melakukan
beberapa tahapan sebelum citra karakter teks dapat dikenali, di antaranya image
preprocessing, feature extraction, segmentation, dan word recognition. Penelitian
ini dilakukan untuk mengembangkan suatu aplikasi pengenalan citra karakter
yang difokuskan pada pengenalan karakter teks kemasan obat berbasis Android.
Tesseract digunakan karena memiliki tingkat akurasi yang baik pada pengenalan
suatu karakter teks terhadap kemasan obat dengan jenis font serif dan sans serif
yang memiliki kerapatan antar-font yang jauh. Masukan aplikasi berupa citra
kemasan obat yang dapat diambil melalui kamera atau fail citra yang sudah
tersimpan di galeri. Akurasi terbaik aplikasi info obat dalam pengenalan citra
karakter dengan 70 data uji berupa kemasan obat mencapai 96.80%.
Kata kunci: Android, obat, optical character recognition, Tesseract
ABSTRACT
NUGROHO MEGANOFA. Android Application to Search Drug Information
with Drug Packaging Image as Input using Tesseract OCR Engine. Supervised by
KARLINA KHIYARIN NISA.
Detailed information on drug is usually written on a leaflet that can only be
read when the package has been opened. It is difficult for consumers who just
want to know the detailed information of certain drug to decide whether the drug
will be bought or not. A solution is needed to convert drug brand text image into
editable text, so that it can be used as a keyword query for drug info searching on
the internet. Optical Character Recognition (OCR) is a process to convert image
into editable text. Tesseract performs several processes to identify drug brand text
image. The processes are image preprocessing, feature extraction, segmentation,
and word recognition. This research developed an Android application to
recognize drug brand text image. Tesseract is used because it has good accuracy
in recognizing text with serif and sans serif font which have far density between
characters. Drug packaging input image of the application can be taken from a
camera or gallery. The best accuracy of this application in recognizing characters
with 70 drug packaging images reached 96.80%.
Keywords: Android, drug, optical character recognition, Tesseract
APLIKASI PENCARI INFO OBAT DENGAN MASUKAN
CITRA TEKS KEMASAN OBAT BERBASIS ANDROID
MENGGUNAKAN TESSERACT OCR ENGINE
NUGROHO MEGANOFA
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
pada
Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2015
Penguji: 1 Dr Yeni Herdiyeni, SSi MKom
2 Rina Trisminingsih, SKom MT
Judul Skripsi : Aplikasi Pencari Info Obat dengan Masukan Citra Teks Kemasan
Obat Berbasis Android Menggunakan Tesseract OCR Engine
Nama
: Nugroho Meganofa
NIM
: G64124044
Disetujui oleh
Karlina Khiyarin Nisa, SKom MT
Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi MKom
Ketua Departemen
Tanggal Lulus:
PRAKATA
Puji dan syukur penulis panjatkan kepada Allah Subhanahu wa Ta'ala atas
rahmat dan segala karunia-Nya sehingga skripsi ini berhasil diselesaikan. Tema
yang dipilih dalam penelitian yang dilaksanakan sejak bulan Juli 2014 ini adalah
pengolahan citra digital, dengan judul Aplikasi Pencari Info Obat dengan
Masukan Citra Teks Kemasan Obat Berbasis Android Menggunakan Tesseract
OCR Engine.
Terima kasih penulis ucapkan kepada kedua orang tua, kakak, dan segenap
keluarga besar penulis atas do’a serta dukungan yang diberikan. Kepada Ibu
Karlina Khiyarin Nisa, SKom MT selaku pembimbing, Ibu Dr Yeni Herdiyeni,
SSi MKom dan Ibu Rina Trisminingsih, SKom MT selaku penguji. Ungkapan
terima kasih juga disampaikan kepada seluruh teman-teman penulis di Program
S1 Ilmu Komputer Alih Jenis.
Semoga karya ilmiah ini bermanfaat.
Bogor, Januari 2015
Nugroho Meganofa
DAFTAR ISI
DAFTAR TABEL
DAFTAR GAMBAR
DAFTAR LAMPIRAN
PENDAHULUAN
Latar Belakang
Perumusan Masalah
Tujuan Penelitian
Manfaat Penelitian
Ruang Lingkup Penelitian
METODE
Pengumpulan Data
Image Preprocessing
Pengenalan Karakter Tesseract OCR
Pemilihan Situs Layanan Penyedia Obat
Perancangan Aplikasi
Use Case Diagram
Activity Diagram
Perancangan Antarmuka
Implementasi
Pengujian
Evaluasi
HASIL DAN PEMBAHASAN
Pengumpulan Data
Image Preprocessing
Grayscaling
Removing Noise
Thresholding
Pengenalan Karakter Tesseract OCR
Feature Extraction
Segmentation
Line Finding
Baseline Fitting
Word Recognition
Pemilihan Situs Layanan Penyedia Obat
Perancangan Aplikasi
Use Case Diagram
Activity Diagram
Perancangan Antarmuka
Implementasi
Pengujian
Pengujian Pengambilan Citra Kemasan Obat
Pengujian Karakter Teks Kemasan Obat
Kesimpulan Hasil Pengujian
Evaluasi
Bobot Nilai Pengujian Kuesioner
vii
vii
vii
1
1
2
2
2
2
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
8
8
8
9
10
10
11
12
13
14
14
14
16
18
19
19
21
22
23
24
Pengujian Usability dengan Kuesioner
Pengukuran Usability dengan Kuesioner
SIMPULAN DAN SARAN
Simpulan
Saran
DAFTAR PUSTAKA
LAMPIRAN
RIWAYAT HIDUP
24
25
26
26
26
27
29
45
DAFTAR TABEL
1
2
3
4
5
6
7
8
9
Beberapa situs penyedia layanan informasi obat
Skenario pengujian pengambilan citra kemasan obat
Contoh pengujian pengambilan citra kemasan obat
Skenario pengujian karakter teks kemasan obat
Contoh pengujian karakter teks kemasan obat
Kesimpulan hasil pengujian pengambilan citra kemasan obat
Kesimpulan hasil pengujian karakter teks kemasan obat
Nilai kuesioner
Persentase total hasil kuesioner
13
20
20
21
21
22
23
24
24
DAFTAR GAMBAR
1
2
3
4
5
6
7
8
9
10
11
Tahapan proses penelitian
Flowchart pengkonversian citra RGB menjadi gambar grayscale
Ilustrasi proses connected component labelling
Ilustrasi proses line finding
Ilustrasi proses baseline fitting
Use case diagram aplikasi
Activity diagram konversi citra ke teks
Activity diagram kueri info obat
Perancangan antarmuka sistem
Hasil implementasi aplikasi
Skala kontinu untuk 5 responden
3
7
9
10
11
14
15
16
17
19
24
DAFTAR LAMPIRAN
1
2
3
4
Akurasi pengenalan karakter teks kemasan obat di galeri
Akurasi pengenalan karakter teks kemasan obat menggunakan kamera
Template lembar kuesioner
Hasil kuesioner
29
39
41
43
PENDAHULUAN
Latar Belakang
Informasi teks merupakan salah satu komponen penting dalam
berkomunikasi yang diperoleh dalam bentuk teks digital yang dapat dikenali oleh
komputer maupun teks nondigital seperti teks pada koran, majalah, dan buku.
Teks digital dapat dengan mudah diolah komputer karena sudah dalam format
yang dikenali oleh komputer, sedangkan teks nondigital harus dimasukkan
terlebih dahulu ke dalam komputer dengan menggunakan alat pemindai (scanner).
Namun, teks nondigital yang telah dimasukkan ke dalam komputer ini tidak
langsung dikenali sebagai teks tetapi dikenali sebagai gambar. Oleh sebab itu,
perlu proses lebih lanjut untuk mengubah teks nondigital menjadi teks digital.
Salah satu teknik untuk mengubah teks nondigital menjadi teks digital disebut
sebagai Optical Character Recognition (OCR).
Untuk penelitian mengenai OCR ini, proses pengenalan karakter
menggunakan suatu library OCR open source, yaitu Tesseract. Mesin OCR yang
berbasis bahasa pemrograman C/C++ ini diterapkan pada platform Android
dengan menggunakan bahasa pemograman Java. Tesseract OCR engine
memberikan hasil yang baik untuk tiap karakter dengan rata-rata tingkat kesalahan
hanya mencapai 3.77% (Smith 2007). Berdasarkan keberhasilan yang telah diuji
tersebut, penelitian ini menggunakan library Tesseract open source engine untuk
pengenalan suatu karakter yang akan mengubah teks nondigital berupa citra
menjadi teks digital. Pengenalan karakter difokuskan terhadap teks kemasan obat
dengan karakter Latin. Teks kemasan obat yang memiliki keberagaman dalam
jenis font dan kerapatan antar-font pada setiap teks membuat akurasi dalam
pengenalan karakter menjadi tidak konsisten
Hasil penelitian ini akan membantu konsumen melakukan pencarian
informasi tentang kemasan obat dengan hanya mengambil citra pada tulisan
merek kemasan obat pada produk obat tersebut dan menyambungkannya ke situssitus layanan penyedia informasi obat. Penelitian ini dilakukan untuk
mengembangkan suatu aplikasi pengenalan citra karakter yang difokuskan pada
pengenalan karakter teks kemasan obat. Teks obat tersebut diambil citranya dan
dilakukan suatu proses pengenalan karakter, selanjutnya teks obat akan menjadi
keyword pencarian dan tersambung pada suatu halaman situs layanan penyedia
informasi obat-obatan. Aplikasi ini dapat memudahkan para konsumen untuk
dapat mengetahui fungsi, indikasi, efek samping, dan aturan pakai dari obat
sebelum konsumen membuka kemasan obat tersebut.
Mengingat teknologi yang sedang berkembang adalah teknologi mobile,
aplikasi ini dikembangkan pada perangkat mobile berbasis Android. Di Indonesia
pengguna device yang mengusung sistem operasi Android mengalami
pertumbuhan signifikan. Perangkat Android masih menduduki peringkat teratas
pasar dunia dengan persentase sebesar 59.5% diikuti oleh Apple 19.3% dan
Microsoft 18.1% (TP 2013). Android memiliki berbagai keunggulan sebagai
software yang memakai kode komputer yang bisa didistribusikan secara terbuka
(open source). Dibangunnya aplikasi ini dimaksudkan agar masyarakat dapat
2
mengetahui informasi obat yang akan dikonsumsinya saat menggunakan
perangkat mobile.
Perumusan Masalah
Perumusan masalah pada penelitian ini adalah:
1
2
3
Tahapan apa saja yang dilakukan oleh Tesseract OCR engine dalam
pengenalan suatu karakter teks?
Seberapa besar akurasi aplikasi dalam mengenali citra karakter teks
kemasan obat pada platform Android?
Seberapa besar tingkat kegunaan aplikasi terhadap pengguna?
Tujuan Penelitian
Tujuan dari penelitian ini adalah:
1
2
3
Mengetahui tahapan pada Tesseract OCR engine sehingga dapat mengenali
suatu karakter teks.
Mengetahui seberapa besar akurasi aplikasi dalam mengenali citra karakter
teks kemasan obat pada platform Android.
Mengevaluasi kegunaan aplikasi melalui kuesioner kepada pengguna.
Manfaat Penelitian
Manfaat yang dapat diperoleh dari hasil penelitian ini adalah dapat membantu
konsumen untuk mengetahui informasi obat dengan hanya melakukan
pengambilan citra pada teks kemasan obat dalam suatu aplikasi yang mudah dibawa
kemanapun.
Ruang Lingkup Penelitian
Ruang lingkup dari penelitian ini adalah:
1
2
3
4
5
Pengenalan karakter teks pada kemasan obat dilakukan pada citra yang
diambil menggunakan kamera dan fail citra yang tersimpan.
Input harus berupa citra yang didukung oleh Android dan Tesseract OCR
engine yaitu format JPEG dan PNG.
Karakter huruf yang diteliti adalah karakter Latin.
Pengujian dilakukan pada 70 kemasan obat.
Aspek pengujian aplikasi terhadap pengambilan citra terdiri atas kategori
jenis font, kerapatan antar-font, intensitas pencahayaan, fokus pengambilan
citra, dan sudut kemiringan pada teks kemasan obat.
3
METODE
Metode penelitian yang digunakan dalam penelitian terdiri dari beberapa
tahapan yang dapat dilihat pada Gambar 1.
Pengumpulan data teks kemasan
obat berupa citra yang akan diuji
(data uji)
Image Preprocessing:
- Grayscaling
- Removing noise
- Thresholding
Pengenalan karakter Tesseract OCR:
- Feature Extraction
- Segmentation
- Word Recognition
Teks
Pemilihan situs penyedia
layanan informasi obat
Perancangan aplikasi:
- Use Case Diagram
- Activity Diagram
- Perancangan Antarmuka
Implementasi
Pengujian
Evaluasi
Gambar 1 Tahapan proses penelitian
4
Pengumpulan Data
Pada tahap awal dilakukan analisis terhadap kemasan obat yang akan diteliti,
kemudian kemasan obat tersebut nantinya akan menjadi masukan terhadap
kebutuhan aplikasi. Data yang menjadi masukan adalah 70 citra kemasan obat
dengan format JPEG.
Data yang berupa citra kemasan obat akan menjadi data uji yang diujikan
terhadap aplikasi. Citra kemasan obat yang menjadi data uji tersebut dapat diambil
dengan cara menggunakan kamera maupun diambil dari fail galeri.
Image Preprocessing
Pada bagian image preprocessing citra kemasan obat akan diubah menjadi
citra biner. Proses image preprocessing terdiri dari grayscaling, removing noise,
dan thresholding. Bagian ini menghasilkan citra biner yang menjadi masukan
pada tahap pengenalan karakter.
Pengenalan Karakter Tesseract OCR
Proses pengenalan karakter menggunakan data latih berupa kamus data
karakter yang tersedia pada Tesseract. Penelitian ini menggunakan Tesseract yang
merupakan suatu library open source yang dapat diunduh dari Google Code
secara gratis. Setelah proses image preprocessing, tahap selanjutnya akan
dilakukan tahapan pengenalan karakter yang terdiri dari proses feature extraction,
segmentation, dan word recognition. Proses feature extraction dilakukan untuk
mendapatkan outline karakter, sedangkan proses segmentation melakukan
pemotongan karakter pada teks. Pada proses word recognition, hasil segmentation
akan dicocokkan dengan data latih berdasarkan bahasa yang sesuai. Library
Tesseract akan ditanamkan pada sistem aplikasi berbasis Android sehingga citra
yang menjadi masukan akan diproses oleh library tersebut.
Citra teks kemasan obat yang awalnya berupa teks nondigital setelah
melalui proses konversi menggunakan Tesseract akan menjadi suatu teks digital
yang dapat diubah maupun dimanipulasi sesuai dengan kebutuhan pada aplikasi.
Pemilihan Situs Layanan Penyedia Obat
Teks digital yang sebelumnya mengalami proses OCR akan menjadi
masukan pencarian terhadap kueri pada situs layanan penyedia obat untuk
mengetahui informasi obat yang terkadung pada kemasan obat yang telah diambil
citranya seperti indikasi, efek samping, aturan pakai, dan lain sebagainya.
Perancangan Aplikasi
Pada tahap perancangan aplikasi terdiri dari beberapa proses yaitu use case
diagram, activity diagram, dan perancangan antarmuka.
5
Use Case Diagram
Use case diagram digunakan untuk memodelkan bisnis proses berdasarkan
perspektif pengguna sistem. Use case diagram terdiri atas diagram untuk use case
dan actor. Actor merepresentasikan orang yang akan mengoperasikan atau orang
yang berinteraksi dengan sistem aplikasi (Satzinger et al. 2010).
Activity Diagram
Activity diagram menggambarkan berbagai alur aktivitas dalam sistem yang
sedang dirancang, bagaimana masing-masing alur berawal, decision yang mungkin
terjadi, dan bagaimana mereka berakhir (Satzinger et al. 2010).
Perancangan Antarmuka
Interface atau antarmuka merupakan tampilan dari suatu program aplikasi
yang berperan sebagai media komunikasi yang digunakan sebagai sarana
berdialog antara program dengan pengguna (Satzinger et al. 2010).
Implementasi
Tahap implementasi merupakan tahapan pengembangan aplikasi
menggunakan perangkat keras dan perangkat lunak. Perangkat keras yang
digunakan adalah ASUS Zenfone 4 A400CG dengan spesifikasi sebagai berikut:
1
2
3
4
5
Sistem Operasi Android Jelly Bean 4.3 dengan versi kernel 3.4.43-00002.
Kamera 5.0 MP, 2592 x 1944 piksel.
Ruang penyimpanan memori internal 4 GB dan SD card 2 GB.
Ukuran layar 400 x 800 piksel 4 inci.
CPU Dual-core 1.2 GHz.
Perangkat lunak yang digunakan dalam pengembangan sistem adalah:
1
2
3
4
Eclipse Kepler sebagai lingkungan pengembangan aplikasi.
Android SDK versi 19 untuk library Android.
Draw.io untuk perancangan aplikasi.
Tesseract OCR sebagai library untuk mengenali citra karakter menjadi
sebuah teks. Tesseract juga menyediakan data latih yang dipakai dalam
sistem.
Pengujian
Tahap pengujian dilakukan dengan cara melakukan pengujian fungsi-fungsi
utama pada sistem dan menguji coba aplikasi pada perangkat smartphone.
Pengujian Tesseract OCR engine yang telah tertanam pada aplikasi menggunakan
beberapa sampel merek teks kemasan obat yang berbeda-beda dengan melakukan
skenario pengujian seperti intensitas cahaya, fokus pengambilan citra, sudut
kemiringan saat pengambilan citra, jenis font pada teks kemasan obat, dan
kerapatan antar-font pada teks kemasan obat sehingga dapat diketahui akurasi
terhadap karakter teks kemasan obat.
6
Evaluasi
Proses evaluasi dilakukan dengan cara memberikan kuesioner terhadap
pengguna aplikasi dengan smartphone Android menggunakan lima aspek usability
yang terdiri dari learnability, efficiency, memorability, errors, dan satisfaction
(Nielsen 2012).
HASIL DAN PEMBAHASAN
Pengumpulan Data
Pengumpulan data dilakukan dengan memilih kemasan obat yang akan diuji
coba. Pengujian aplikasi dilakukan pada citra uji yang diambil melalui kamera
maupun galeri. Pengumpulan data citra dari kamera dilakukan sebanyak 10 citra
uji, sedangkan citra uji untuk disimpan di galeri diunduh melalui internet
sebanyak 60 citra uji dengan resolusi piksel yang bervariasi. Data citra tersebut
memiliki jenis font dan kerapatan antar-font pada setiap teks kemasan obat yang
berbeda. Citra kemasan obat yang akan diuji sesuai dengan skenario pengujian
dapat dilihat pada Lampiran 1 dan Lampiran 2
Image Preprocessing
Pada bagian image preprocessing dilakukan proses grayscaling, removing
noise, dan thresholding.
Grayscaling
Pengkonversian citra berwarna menjadi grayscale merupakan tahapan awal
dalam image preprocessing. Output dalam tahapan ini merupakan citra yang
hanya memiliki derajat keabu-abuan pada setiap pikselnya. Format warna gray ini
digunakan untuk mengetahui tingkat intensitas, sehingga warna yang dimiliki
pada jenis citra ini adalah hitam, abu-abu, dan putih. Proses pengkonversian dapat
dilihat pada flowchart berikut.
7
Start
Loading
Image
h = image.getHeight()
w = image.getWeight()
x=0
y=0
No
x