Sistem Pemindai Meteran Air Pada Platform Android
SISTEM PEMINDAI METERAN AIR PADA
PLATFORM ANDROID
SKRIPSI
FADLI RIZKI
091402082
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2015
(2)
SISTEM PEMINDAI METERAN AIR PADA
PLATFORM ANDROID
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah
Sarjana Teknologi Informasi
FADLI RIZKI
091402082
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2015
(3)
i
PERSETUJUAN
Judul : SISTEM PEMINDAI METERAN AIR PADA
PLATFORM ANDROID
Kategori : SKRIPSI
Nama : FADLI RIZKI
Nomor Induk Mahasiswa : 091402082
Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, 9 Juli 2015 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Sarah Purnamawati ST.,M.Sc NIP 19830226 201012 2 003
Romi Fadillah Rahmat, B.Comp.Sc.,M.Sc NIP 19860303 201012 1 004
Diketahui/Disetujui oleh
Program Studi S1 Teknologi Informasi Ketua,
M. Anggia Muchtar, ST., MM.IT NIP 19800110 200801 1 010
(4)
PERNYATAAN
SISTEM PEMINDAI METERAN AIR PADA PLATFORM ANDROID
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 9 Juli 2015
Fadli Rizki 091402082
(5)
iii
PENGHARGAAN
Alhamdulillah, segala puji dan syukur penulis panjatkan atas kehadirat Allah SWT beserta Nabi besar Muhammad SAW yang telah memberikan rahmat, hidayah-Nya, segala daya dan upaya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Program Studi S-1 Teknologi Informasi Universitas Sumatera Utara. Ucapan terima kasih yang sebesar-besarmya penulis sampaikan kepada :
1. Kedua orang tua penulis, orang yang paling berharga dalam hidup penulis, ayahanda Fadillah Helmi dan ibunda Rosliani yang telah membesarkan, mendidik, memberi dukungan, doa, dan motivasi tanpa henti. Serta kepada abang-abang dan adik-adik penulis yang selalu ikut menemani penulis.
2. Ketua dan Sekretaris Program Studi Teknologi Informasi, Bapak Muhammad Anggia Muchtar, ST., MM. IT dan Bapak Muhammad Fadly Syahputra, B.Sc, M.Sc.IT, Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Teknologi Informasi.
3. Bapak Romi Fadillah Rahmat, B.Comp.Sc.,M.Sc selaku pembimbing pertama dan Ibu Sarah Purnamawati, S.T.,M.Sc selaku pembimbing kedua, yang telah banyak meluangkan waktunya dan memberikan masukan-masukan yang bermanfaat bagi penulis dalam menyelesaikan skripsi ini.
4. Bapak Dani Gunawan, S.T.,M.T dan bapak Dr. Sawaluddin, M.IT yang telah bersedia menjadi dosen pembanding dan memberikan saran-saran yang baik bagi penulis dalam menyelesaikan skripsi ini.
5. Kepada teman-teman yang mendukung dan membantu penulis Fadhlullah, Ade, Icha, Yanna, Dijah, Ammar, Ridzuan, Reza, Hafiz Yahya, Yogi, Ibnu, Juju, Fanny, Hani, Binyo, Dezi, Abdi Hafiz, Dwiky, Dabok, Iqbal, Ismail, Muslim, Januar dan seluruh teman-teman lainnya yang tidak dapat disebutkan satu persatu.
6. Kepada Abang Manaf, Kak Umi dan Ibu Mega selaku bagian tata usaha Program Studi S1 Teknologi Informasi yang telah membimbing dan membantu penulis dari awal proposal sampai sidang.
Sekali lagi penulis mengucapkan terima kasih yang sebesar-besarnya kepada semua pihak yang membantu dalam penyelesaian tugas akhir ini yang tidak dapat disebutkan. Terima kasih atas masukan, saran, dan motivasi yang diberikan. Semoga Allah SWT membalas dengan nikmat yang berlimpah.
(6)
ABSTRAK
Sering terjadinya kesalahan dalam pencatatan meteran air oleh petugas pembaca meter berdampak pada jumlah tagihan pembayaran rekening air yang harus dibayar tidak sesuai dengan volume atau kuantitas penggunaan yang tercantum atau tertera di meteran. Untuk memberikan pelayanan yang maksimal dan menimalisir masalah tersebut, diperlukan sistem pembacaan meter air pelanggan menggunakan HP berbasis Android. Penelitian ini akan menerapkan teknik Optical Character Recognition (OCR) untuk melakukan pembacaan angka pada meteran air tersebut. Optical Character Recognition (OCR) akan mengkonversi dari scanned image menjadi
editable text.Scanned image terdiri dari satu kesatuan konten - konten yang nantinya akan dipilah menjadi konten - konten tersendiri. Penelitian ini menghasilkan tingkat akurasi sebesar 80%, dimana perbandingan kegagalan sistem adalah 2 banding 10 untuk gambar dengan empat digit angka.
Kata kunci : meteran air, Optical Character Recognition (OCR), android, scanned image, editable text
(7)
v
FLOW METER SCANNING SYSTEM ON ANDROID PLATFORM
ABSTRACT
Frequent occurrence of errors in recording the flow meter number by the readers officers have an impact on the bill that they were supposed to paid were not match with the volume that showed on the flow meter. In provide to giving a better service and decrease the possibility of the problem, an image recognition system for flow meter based on android is necessity. This research using the Optical Chara cter Recognition (OCR) to recognize the number on the flow meter. Optical Character Recognition (OCR) will converse the scanned image into the editable text. the scanned image are consist from view contents which will separated into distinctive content. This research show 80% of accuracy system, with the ratio of the failure system are 2 from 10 for an image with four digits number.
Keywords : Flow meter, Optical Character Recognition (OCR), android, scanned image, editable text.
(8)
DAFTAR ISI
Hal
PERSETUJUAN i
PERNYATAAN ii
PENGHARGAAN iii
ABSTRAK iv
ABSTRACT v
DAFTAR ISI vi
DAFTAR TABEL viii
DAFTAR GAMBAR ix
BAB 1 PENDAHULUAN 1
1.1Latar Belakang 1
1.2Rumusan Masalah 3
1.3Batasan Masalah 3
1.4Tujuan Penelitian 3
1.5Manfaat Penelitian 3
1.6Sistematika Penulisan 4
BAB 2 LANDASAN TEORI 5
2.1Sistematika Pembacaan Meteran Air 5
2.2Image Processing 6
2.3Optical Character Recognition (OCR) 6
2.4Tesseract OCR 8
2.4.1 Arsitektur 8
2.4.2 Pengenalan karakter oleh Tesseract 10
2.5Android 13
2.5.1 Arsitektur Android 13
2.5.2 Software Pendukung 16
(9)
vii
2.6Penilitian Terdahulu 18
BAB 3 ANALISIS DAN PERANCANGAN SISTEM 20
3.1Data Yang Digunakan 20
3.2Arsitektur Umum 21
3.3Praproses Data 22
3.3.1 Cropping 22
3.3.2 Grayscalling 22
3.3.3 Thresholding 23
3.4 Pemrosesan Data 25
3.4.1 Page Layout Analysis 25
3.4.2 Find Text Lines and Words 26
3.4.3 Recognize word pass 1 and 2 27
3.5 Perancangan Sistem 28
3.5.1 Usecase Diagram 28
3.5.2 Usecase Spesifikasi 30
3.5.3 Activity Diagram 31
3.5.4 Perancangan antar muka 32
3.5.5 Perancangan Database 36
BAB 4 IMPLEMENTASI DAN PENGUJIAN 37
4.1Implementasi Sistem 37
4.1.1Spesifikasi Sistem 37
4.1.2Instalasi Aplikasi 37
4.1.3Mekanisme Penggunaan Aplikasi 38
4.2Pengujian Sistem 43
4.2.1 Analisis Pengujian Sistem 47
BAB 5 KESIMPULAN DAN SARAN 49
5.1Kesimpulan 49
5.2Saran 49
(10)
DAFTAR TABEL
Hal
Tabel 2.1 Penelitian Terdahulu 18
Tabel 3.1 Usecase spesifikasi capture meter 29 Tabel 3.2 Usecase spesifikasi lihat history 30 Tabel 3.3 Usecase spesifikasi info 30 Tabel 3.4 Rancangan Table Result 36 Tabel 4.1 Hasil pengujian Sistem 44
(11)
ix
DAFTAR GAMBAR
Hal
Gambar 2.1 Indeks meter air 5
Gambar 2.2 Proses OCR 7
Gambar 2.3 Arsitektur Tesseract OCR 9 Gambar 2.4 Contoh dari curved fitted baseline 11 Gambar 2.5 Pemotongan kata pada pitch yang tetap 11
Gambar 2.6. Non-fixed pitch 12
Gambar 2.7. Titik pemotongan untuk karakter ASCII 12 Gambar 2.8 Kata yang mudah dikenali 13
Gambar 2.9 Arsitektur Android 14
Gambar 3.1 QRCode 20
Gambar 3.2 Index Meter 21
Gambar 3.3 Arsitekture umum 21
Gambar 3.4 Diagram praproses data 22
Gambar 3.5 Hasil cropping image 22
Gambar 3.6 Flowchart konversi citra RGB menjadi grayscale 23 Gambar 3.7 Hasil proses grayscaling 23 Gambar 3.8 Hasil proses thresholding 25 Gambar 3.9 Proses pengenalan karakter 25 Gambar 3.10 (a) Karakter yang akan dicari outlinenya (b) Pelabelan karakter (c) blob membentuk outline (d) Outline karakter terbentuk
26
Gambar 3.11 Fitted baseline yang berbentuk miring 27 Gambar 3.12 Pemotongan karakter sesuai dengan Fixed Pitch 27
Gambar 3.13 Usecase diagram 28
Gambar 3.14 Usecase diagram capture meter 31 Gambar 3.15 Usecase diagram lihat history 32 Gambar 3.16 Rancangan halaman utama 33 Gambar 3.17 Rancangan halaman capture meter 34
(12)
Gambar 3.18 Rancangan halaman lihat history 35 Gambar 3.19 Rancangan halaman info 36 Gambar 4.1 Icon aplikasi device 38
Gambar 4.2 Halaman Splsh Screen 39
Gambar 4.3 Halaman Utama 39
Gambar 4.4 Halaman Capture Meter 40
Gambar 4.5 Halaman History 41
Gambar 4.6 Tampilan halaman data meteran air yang telah masuk ke server 42
(13)
iv
ABSTRAK
Sering terjadinya kesalahan dalam pencatatan meteran air oleh petugas pembaca meter berdampak pada jumlah tagihan pembayaran rekening air yang harus dibayar tidak sesuai dengan volume atau kuantitas penggunaan yang tercantum atau tertera di meteran. Untuk memberikan pelayanan yang maksimal dan menimalisir masalah tersebut, diperlukan sistem pembacaan meter air pelanggan menggunakan HP berbasis Android. Penelitian ini akan menerapkan teknik Optical Character Recognition (OCR) untuk melakukan pembacaan angka pada meteran air tersebut. Optical Character Recognition (OCR) akan mengkonversi dari scanned image menjadi
editable text.Scanned image terdiri dari satu kesatuan konten - konten yang nantinya akan dipilah menjadi konten - konten tersendiri. Penelitian ini menghasilkan tingkat akurasi sebesar 80%, dimana perbandingan kegagalan sistem adalah 2 banding 10 untuk gambar dengan empat digit angka.
Kata kunci : meteran air, Optical Character Recognition (OCR), android, scanned image, editable text
(14)
FLOW METER SCANNING SYSTEM ON ANDROID PLATFORM
ABSTRACT
Frequent occurrence of errors in recording the flow meter number by the readers officers have an impact on the bill that they were supposed to paid were not match with the volume that showed on the flow meter. In provide to giving a better service and decrease the possibility of the problem, an image recognition system for flow meter based on android is necessity. This research using the Optical Chara cter Recognition (OCR) to recognize the number on the flow meter. Optical Character Recognition (OCR) will converse the scanned image into the editable text. the scanned image are consist from view contents which will separated into distinctive content. This research show 80% of accuracy system, with the ratio of the failure system are 2 from 10 for an image with four digits number.
Keywords : Flow meter, Optical Character Recognition (OCR), android, scanned image, editable text.
(15)
BAB 1
PENDAHULUAN
1.1.Latar Belakang
Flow Meter atau sering disebut dengan meteran air merupakan sebuah teknologi yang diciptakan untuk memudahkan Perusahaan Daerah Air Minum (PDAM) dalam menghitung dan mengontrol jumlah pemakaian air pelanggannya. Letak meteran air biasanya diletakkan di tempat yang mudah dijangkau, agar petugas PDAM dapat dengan mudah membaca meteran tersebut. Pelanggan sendiri telah dihimbau agar tidak melakukan hal-hal yang dapat menyulitkan petugas untuk mengakses meteran air ini, seperti meletakkan meteran air didalam rumah, menimbunnya dan lain sebagainya. Penghitungan itu sendiri masih dilakukan secara manual oleh petugas PDAM. Penghitungan dilakukan dengan cara mencatat angka yang tertera pada meteran air yang lalu kemudian akan dilaporkan sebagai beban biaya pelanggan. Cara ini masih kurang efisien melihat masih banyaknya keluhan yang di sampaikan pelanggan dikarenakan adanya kesalahan pencatatan oleh petugas yang kadang menyebabkan pembengkakan tagihan air minum tersebut.
Data yang diperoleh dari penelitian Putra pada tahun 2011 menunjukkan bahwa pada tahun 2009 terdapat hampir 80% keluhan pelanggan di salah satu PDAM terjadi karena jumlah tagihan pembayaran rekening air yang harus dibayar tidak sesuai dengan volume atau kuantitas penggunaan yang tercantum atau tertera di meteran. Hal ini bisa saja terjadi salah satunya dikarenakan oleh kesalahan petugas.
Untuk memberikan pelayanan yang maksimal dan meminimalisir masalah diatas PDAM Sumatera Utara mencari berbagai inovasi salah satunya dengan cara memakai sistem baca meter baru yaitu sistem pembacaan meter air pelanggan menggunakan HP berbasis Android. Pembacaan meter air pelanggan dengan menggunakan HP berbasis
(16)
Android diharapkan akan memberikan kepastian terhadap angka meter air bagi setiap pelanggan. Dengan sistem ini setiap meter air pelanggan akan dipasangi barcode
sebagai identitas pelanggan dimana petugas pembaca meter memotret angka meter air dan rumah pelanggan yang telah dipasang barcode tersebut, hasil pemotretan tersebut ditransfer ke server cabang yang selanjutnya akan diverifikasi oleh operator yang sudah ditunjuk. Tujuannya adalah untuk memastikan angka meter yang sudah dipotret dan angka meter air yang sudah dinput oleh pembaca meter sama.
Namun sistem ini hanya mengambil foto meteran tanpa dapat membaca angka meteran tersebut itu sendiri secara otomatis. Pencatatatan digit angka meteran masih juga diinput manual oleh petugas. Foto hanya berfungsi sebagai alat bukti apabila dikemudian hari pelanggan ingin menyesuaikan pemakaian airnya sudah sesuai atau tidak. Hal ini dapat menimblkan masalah baru, salah satunya adalah masalah waktu, dimana petugas melakukan terlalu banyak pekerjaan dengan memfoto serta menginput manual lagi angka yang tertera di meteran. Apabila petugas hanya membaca satu rumah tidak terlalu terlihat memakan waktu banyak, tapi apabila petugas ditugaskan untuk membaca 10 rumah atau lebih, cara ini merupakan hal yang tidak produktif karena hanya beberapa rumah saja yang akan terbaca dalam kurun waktu satu harinya.
Optical Character Recognition (OCR) sangat mungkin diimplementasikan pada permasalahan ini. Seperti penelitian sebelumnya oleh Arif Firman Cahyadi pada tahun 2013, Otomasi sistem pemindaian meteran Air PDAM untuk meningkatkan akurasi pembacaan tagihan air dengan jaringan syaraf tiruan bertipe backpropagation. Pada penelitian tersebut telah menghasilkan perangkat lunak untuk pembacaan data penggunaan meteran air dengan memakai software Matlab berbasis Metode JST-backpropagation dimana pada proses pengujiannya mampu digunakan untuk mempersingkat proses pencatatatan dan pembacaan meteran air hingga 21% lebih banyak dari biasanya.
OCR dapat mengenali sebuah gambar dan langsung dikenali sebagai input yang dapat selanjutnya dijadikan data komputer dan langsung dilakukan perhitungan. Mengingat teknologi yang berkembang pada saat ini adalah teknologi mobile, maka dari itu penulis ingin mengimplementasikan Optical Character Recognition dalam pembacaan meteran air pada perangkat Android.
(17)
3
1.2.Rumusan Masalah
Dengan ditemukannya banyaknya kesalahan yang dilakukan petugas dalam pencatatan meteran air di tiap rumah, serta bukti dari pencatatan meteran air yang masih minim, maka diperlukan sebuah sistem yang dapat membantu petugas dalam pencatatan meteran air yang akan dilakukan dan di proses langsung pada paltformandroid.
1.3.Batasan Masalah
Dalam penelitian ini diterapkan beberapa batasan masalah yaitu :
1. Penelitian ini dikhususkan pada pembacaan meteran air atau flow meter berdigit enam.
2. Objek roda indeks meter meteran air harus dalam posisi sempurna. 3. Pengambilan data pada sistem tidak memperhatikan faktor lingkungan.
4. Input citra hasil foto harus berupa ekstensi gambar yang didukung android dan Tesseract OCR yaitu .jpg.
1.4.Tujuan Penelitian
Tujuan dari penelitian ini adalah menghasilkan sebuah aplikasi yang dapat melakukan pembacaan dan pencatatan meteran air pada platform android menerapkan Optical Character Recognition.
1.5.Manfaat Penelitian
Adapun manfaat dari penelitian ini adalah :
1. Membantu petugas pencatat meteran air dalam mengerjakan tugasnya dilapangan. 2. Sistem yang dibuat dapat secara langsung membaca meteran air dari objek sebuah
(18)
1.6.Sistematika Penulisan
Adapun penulisan skripsi ini terdiri dari lima bagian utama (bab) dengan penjelasan singkat mengenai bab-bab tersebut, yaitu sebagai berikut :
Bab 1 Pendahuluan
Pada bab ini berisi uraian penjelasan latar belakang terkaut judul skripsi yang diajukan, perumusan masalah pada penelitian, batasan masalah yang ditetapkan, tujuan penelitian, manfaat penelitian, metodologi penelitian, dan sistematika penulisan dari penyusunan skripsi ini.
Bab 2 Landasan Teori
Pada bab ini dibahas mengenai teori-teori pendukung yang digunakan pada penelitian ini, seperti sistematika pembacaan meteran air, image processing, Optical Character Recognition (OCR), Tesseract OCR, dan Android.
Bab 3 Analisis dan Perancanga Sistem
Pada bab ini berisi penjelasan analisis mengenai permasalahan dan identifikasi kebutuhan perancangan sistem.
Bab 4 Implementasi dan Pengujian Sistem
Pada bab ini berisi penjelasan implementasi sistem dari hasil analisis yang dilakukan serta menguji sistem yang telah dibuat.
Bab 5 Kesimpulan dan Saran
Pada bab ini berisi kesimpulan yang didapat dari penelitian skripsi yang telah dilakukan dan saran yang dapat digunakan untuk penelitian lebih lanjut mengenai topik yang terkait pada skripsi ini.
(19)
BAB 2
LANDASAN TEORI
Pada bab ini akan dibahas mengenai teori-teori yang akan digunakan dalam perancangan sistem pemindai meteran air pada platform android. Hal-hal ini meliputi sistematika pembacaan meteran air, image processing, Optical Character Recognition
(OCR), TesseractOCR, dan Android.
2.1. Sistematika Pembacaan Meteran Air
Meteran air atau yang biasa disebut dengan flow meter adalah sebuah metode yang digunakan sebuah Perusahaan Daerah Air Minum (PDAM) untuk mengukur jumlah pemakaian pelanggannya. Pengukuran ini biasanya dilakukan dalam kurun waktu sebulan. Dewasa ini pembacaan meteran air dilakukan oleh petugas yang diutus langsung oleh perusahaan untuk membaca jumlah angka yang tertera pada meteran air. Pembacaan meter, merupakan kegiatan membaca indeks air yang terlihat pada register/totalister. Terdapat dua metode dalam pembacaan meteran air :
1. Meter air dibaca secara manual dengan melihat langsung dilokasi meter air. Metode ini disebut dengan pembacaan manual.
2. Automatic Meter Reading (pembacaan otomatis), pembacaan meter air menggunakan bantuan alat dan tidak langsung didatangi.
Indeks meter air itu sendiri terdiri dari dua warna (ISO) seperti pada Gambar 2.1.
(20)
Pada Gambar 2.1. indeks mata air terdiri dari dua warna (ISO).
1. Warna Hitam : Menunjukkan satuan m3, digunakan sebagai dasar perhitungan tagihan.
2. Warna Merah : Menunjukkan satuan liter, digunakan untuk pengujian meter air.
2.2. Image Processing
Pengolahan citra atau yang biasa disebut Image Processing adalah pengolahan terhadap sebuah citra untuk dapat melakukan peningkatan kualitas terhadap suatu citra dan mensegmentasinya sebagai tahap awal untuk dapat dikenal oleh mesin. Adapun tujuan dari Image Processing (Petrou & Petrou, 2010) adalah :
1. Image Enhancement, untuk meningkatkan kualitas gambar secara subjektif, biasanya dilakukan dengan meningkatkan contrast.
2. Image compression, untuk mengkompresi dan menurunkan kualitas gambar dengan cara menggunakan beberapa bit yang memungkinkan untuk mewakili gambar.
3. Image restoration, untuk meningkatkan kulaitas gambar secara objektif, seperti mengurangi blur.
4. Feature extraction, untuk memilah karakteristik yang ada pada gambar untuk selanjutkan digunakan mengidentifikasi konten-konten yang ada pada gambar.
2.3. Optical Character Recognition ( OCR )
Menurut Somers (2003), Optical Character Recognition atau yang biasa disebut dengan OCR adalah suatu proses pengkonversian dari scanned image menjadi editable text. Editable text didapatkan dari sebuah scanned image yang bisa saja diambil dari hasil pemotretan atau juga hasil scan gambar yang kemudian dimasukkan kedalam komputer. Scanned image ini terdiri dari satu kesatuan konten-konten yang nantinya akan di pilah menjadi konten-konten tersendiri. Teknologi ini membuat sebuah mesin dapat mengenali sebuah teks secara otomatis. Menurut Patel, C. Et.al (2012) hal ini dapat diumpamakan seperti kombinasi antara mata dan pikiran dari tubuh manusia. Sebuah mata yang dapat melihat teks yang terdapat pada suatu gambar dan secara langsung otak kita akan memproses mengekstrak teks tersebut dari gambar dan dibaca
(21)
7
oleh mata. Konten-konten yang telah terkarakteristik kemudian dilakukan proses pengenalan dengan mengubahnya menjadi kode-kode karakter seperti ASCII atau
Unicode lainnya. Setelah proses ini, konten-konten yang terdapat pada image tersebut yang sebelumnya tidak dapat di-edit akan menjadi karakter-karakter yang dapat di-edit
ataupun juga di proses untuk keperluan selanjutnya seperti melakukan perhitungan pada karakter-karakter numeric. Secara garis besar proses OCR dapat dijelaskan pada Gambar 2.2.
Gambar 2.2. Proses OCR (Aprilia 2012)
Didalam OCR, gambar atau image yang berisi karakter yang ingin dikenali dilakukan preprocessing. Preprocessing adalah proses menghilangkan konten-konten yang tidak diinginkan seperti noise dan juga untuk memperbaiki kualitas gambar agar lebih mudah dikenali. Dalam tahap pertama preprocessing dilakukan grayscalling.
Grayscalling adalah mengubah gambar yang berwarna menjadi gambar yang hanya memiliki derajat keabuan saja. Selanjutnya dalam tahap kedua dilakukan noise filtering, yaitu proses mengurangi atau mereduksi noise yang ada pada gambar. Noise
yang terlalu banyak dapat mengurangi keakuratan dalam pengenalan karakter. Dan tahap terakhir dari preprocessing yaitu thresholding. Thresholding memisahkan
(22)
konten yang akan dikenali dengan background dengan mengubah gambar menjadi hitam putih. Dengan berakhirnya tahap thresholdng maka tahap preprocessing selesai dilakukan.
Tahap selanjutnya adalah segmentasi. Segementasi melakukan pemisahan karakter yang berarea besar menjadi area yang lebih kecil seperti suatu kalimat menjadi kata-kata, dan kata menjadi karakter. Setelah dilakukan segmentasi maka dilakukan normalisasi. Normalisasi mengubah karakter karakter hasil segmentasi menjadi suatu karakter yang memiliki karakterisitik yang telah ditentukan, seperti dimensi region dan ketebalan karakter. Setelah proses normalisasi dilakukan maka selanjutnya dilanjutkan pada tahap ekstraksi fitur. Ekstraksi fitur dilakukan untuk mendapatkan karakteristik khas yang dimiliki oleh tiap-tiap karakter. Dan tahap akhir dalam proses OCR ini adalah recognition, dimana dilakukannya pengenalan dengan cara membandingkan ciri-ciri fitur yang ingin dikenali dengan data yang telah tersimpan sebelumnya sesuai dengan algoritma pengenalan yang dipakai. Hasil perbandingan yang miriplah yang kemudian keluar menjadi suatu hasil pengenalan berupa teks.
2.4. Tesseract OCR
Tesseract Merupakan sebuah mesin Optical Character Recognition ( OCR ) open source yang dapat digunakan oleh berbagai sistem operasi, dikembangkan oleh
Hewlett-Packard (HP) antara tahun 1984 dan 1994 (Smith,2007).
2.4.1. Arsitektur
Pada arsitekturnya, Tesseract OCR menyatakan input yang diterima merupakan sebuah binary image. Secara umum arsitektur Tesseract OCR dapat dilihat pada Gambar 2.3.
(23)
9
Gambar 2.3. Arsitektur Tesseract OCR
Setelah mengasumsikan bahwa input merupakan binary image proses dilanjutkan pada Page Layout Analysis dimana analisis dilakukan pada komponen terhubung (Connected Component) untuk menemukan dimana outline komponen disimpan (Aprilia, 2012). Outlines komponen yang telah disimpan dikumpulkan bersama untuk membentuk blob. Blob adalah kawasan gambar yang saling berlengketan. Blob ini lalu disusun menjadi suatu barisan teks, sedangkan garis dan
region di analisa untuk pitch tetap dan teks proporsional (Aprilia, 2012). Teks dengan
pitch tetap dipecah menjadi sel-sel karakter. Teks proporsional dibagi menjadi kata-kata dengan menggunakan ruang pasti dan ruang fuzzy. Selanjutnya pengenalan kata
image dilakukan pada dua tahap yang disebut dengan pass-two (Smith, 2007). Pass pertama dilakukan untuk mengenali masing-masing kata. Kata-kata yang melewati pass pertama adalah kata-kata yang cocok dengan kamus dan diteruskan pada adaptif
(24)
classifier untuk selanjutakan dipakai sebagai data pelatihan. Setelah sampel mencukupi, classifier adaptif ini juga dapat memberikan hasil klasifikasi bahkan pada pass pertama (Aprilia, 2012). Kata-kata yang mungkin kurang dikenali atau terlewat pada pass pertama akan dilanjutkan pada proses pass two. Pada kondisi ini classifier
adaptif yang telah mendapatkan informasi lebih pada pass pertma akan lebih dapat mengenali kata yang terlewatkan atau kurang dikenali sebelumnya.
2.4.2. Pengenalan karakter oleh Tesseract
Menurut Smith (2007) beberapa langkah yang dilakukan oleh Tesseract untuk pengenalan karakter adalah sebagai berikut :
1. Pencarian Teks line dan kata
a.Line Finding
Algoritma line finding dirancang untuk dapat mengenali halaman miring tanpa harus melalui proses de-skew, hingga tidak menurunkan kualitas gambar (Smith, 2007). Kunci dari proses ini adalah filterisasi blob dan line constructing.
Mengasumsikan analisa tata letak halaman telah mendapatkan daerah teks yang memiliki ukuran teks yang seragam, filter presentasi ketinggian sederhana menghilangkan drop-caps dan garis vertical yang menyentuh karakter. Rata tengah dari tinggi mendekati dari besar teks di dalam daerah tersebut, sehinggga aman untuk menyaring blobs yang lebih kecil dari beberapa pecahan dari rata-rata tengah, seperti tanda baca dan juga noise.
Filterisasi blob lebih cocok kepada pemodelan non-overlapping, paralel, tetapi sloping lines (Smith, 2007). Penyortingan dan pemrosessan pada blob
oleh kordinat-x memungkinkan untuk menentukan blob menjadi text line yang unik, sementara pelacakan kemiringan di sepanjang halaman, dengan sangat mengurangi kesalahan menempatkan text line yang salah didalam kemiringan. Setelah blob yang di filter disejajarkan pada garis, rata tengah terakhir dari
squares fit digunakan untuk memperkirakan baselines, dan blob yang telah difilter akan dipasang kembali ke line yang tepat.
Tahap terakhir dari proses line creation adalah menggabungkan blob yang tumpang tindih pada setidahknya setengah dari garis horizontal, meletakkan tanda baca bersama-sama dengan base yang benar dan memperbaiki bagian yang berhubungan dari beberapa karakter yang rusak.
(25)
11
b. Baseline Fitting
Setelah text lines ditemukan, garis pangkal (baselines) dicocokkan dengan lebih tepat menggunakan quadratic splines. Hal inilah merupakan hal baru dalam sistem OCR, dimana tesseract memungkinkan dapat menangani halaman dengan baseline yang miring. Baseline dicocokkan dengan partisi
blob kedalam sebuah kelompok perpindahan yang cukup berkelanjutan baseline lurus yang asli. Sebuah quadratic spline dicocokkan pada partisi yang paling padat (diasumsikan sebagai baseline). Kelebihan dari Quadratic Spline
terletak dari kemampuan berhitungnya yang stabil, namun memiliki kelemahan yaitu diskonitinuitas dapat muncul pada beberapa saat segmen
spline diperlukan.
Gambar 2.4. Contoh dari curved fitted baseline (Smith 2007)
Pada Gambar 2.4 menunjukkan contoh baris dari text dengan fitted baseline,
descender line, meanline dan ascender line. Semua garis-garis ini sejajar.
c. Fixed Pitch Detection and Chopping
Tesseract menguji text lines untuk menentukan apakah mereka (text lines) telah mendapatkan pitch yang tetap. Pitch tetap yang telah ditemukan,
tesseract akan memotong kata-kata kedalam karakter menggunakan pitch
tersebut, dan menghentikan pemotongan dan mengasosiasi kata-kata ini untuk dilanjutkan pada langkah pengenalan kata. Pemotongan kata pada pitch dapat dilihat pada Gambar 2.5.
Gambar 2.5.pemotongan kata pada pitch yang tetap (Smith 2007) d. Proportional Word Finding
Pada Gambar 2.6. menunjukkan beberapa masalah yang ditemukan pada saat pitch pada teks tidak tetap (non-fixed pitch) atau juga teks yang tidak proporsional.
(26)
Gambar 2.6. Non-fixed pitch (Smith 2007)
Tesseract dapat memecahkan masalah ini dengan mengukur jarak vertikal antara baseline dan mean line. Spasi yang dekat dengan ambang batas pada tahap ini membuat tidak jelas, sehingga keputusan akhir dapat dibuat setelah pengenalan kata.
2. Pengenalan Karakter dan Kata
Bagian dari proses pengenalan pada pengenalan segala karakter adalah dengan mengidentifikasi bagaimana sebuah kata atau karakter disegmentasi menjadi karakter atau simbol-simbol (Aprilia, 2012). Hasil akhir dari segmentasi awal akan diklasifikasikan. sisa terakhir dari proses ini hanya dilakukan pada teks yang
non fixed-pitch.
a. Pemisahan karakter terhubung
Apabila hasil dari pemisahan kata tidak memuaskan, Tesseract akan berusaha untuk memisahkan blob dengan kemugkinan terburuk dari classifier karakter (Smith, 2007). Kandidat dari titik potong di dapat dari simpul cekung dari pendekatan poligonal outline, dan dapat saja ditemukan simpul cekung lainnya dari titik yang berlawanan, atau garis segmen. Untuk karakter ASCII
setidaknya menghabiskan sampai 3 pasang titik pemotongan untuk memisahkan karakter yang terhubung. Titik pemotongan dapat dilihat pada Gambar 2.7.
Gambar 2.7. Titik pemotongan untuk karakter ASCII (Smith 2007)
Pada gambar menampilkan sebuah set dari kandidat titik dengan panah dan pemisahan yang terpilih sebagai garis yang menelusuri outline dimana
(27)
13
mengikuti urutan mana yang terpenting. Setiap pemotongan yang gagal akan memperbaiki kemungkinan dari hasil yang belum selesai, tetapi tidak sepenuhnya dibuang sehingga potongan dapat digunakan kembali nantinya oleh associator jika dibutuhkan.
b. Menyatukan karakter yang rusak
Ketika pemotongan yang dilakukan tidak mendapatkan hasil yang tepat, kata atau karakter masih belum cukup, maka akan diberikan kepada associator.
Associator ini membuat pencarian A* (terbaik pertama) dari graph segmentasi untuk kombinasi yang memungkinkan dari pemotongan blob
maksimal menjadi kandidat karakter. Hasil pencarian A* dengan menarik kandidat state baru dari antrian prioritas dan mengevaluasi kandidat dengan mengklasifikan kombinasi fragmen yang belum terklasifikasi dapat dilihat pada Gambar 2.8.
Gambar 2.8. kata yang mudah dikenali (Smith 2007)
Dengan segmentasi A* ini membuat tesseract dapat dengan mudah mengenali karakter yang rusak seperti pada gambar .
2.5. Android
Menurut (Safaat, 2012), Android adalah sebuah sistem operasi untuk perangkat lunak mobile berbasis linux yang mencakup sistem operasi, middleware, dan aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka.
2.5.1 Arsitektur android
(28)
Gambar 2.9. Arsitektur android (Safaat 2012)
a. Application dan Widgets
Application dan Widgets adalah layer dimana kita berhubungan dengan aplikasi saja, dimana biasanya kita dapat mendownload aplikasi dan melakukan intstalasi pada aplikasi tersebut kemudian dijalankan. Di layer terdapat aplikasi inti termasuk klien email, program SMS, kalender, peta, browser, kontak, dan lain-lain. Semua aplikasi ini dibentuk menggunakan bahasa pemograman java.
b. Application Frameworks
Android adalah “Open Development Platform” yaitu Android menawarkan
kepada pengembang atau memberi kemampuan kepada pengembang untuk membangun aplikasi yang baik dan inovatif. Pengembang bebas untuk mengakses perangkat keras, akses informasi resources, menjalankan service background, mengatur alarm, dan menambahkan status notification, dan sebagainya. Pengembang memiliki akses penuh menuju API framework seperti yang dialakukan oleh aplikasi inti. Arsitektur aplikasi dirancang supaya kita dengan mudah dapat menggunakan kembali komponen yang sudah digunakan (reuse).
Adapun komponen-komponen yang termasuk didalam Applications Frameworks adalah sebagai berikut :
- Views
(29)
15
- Resources Manager
- Notification Manager
- Activity Manager c. Libraries
Libraries ini adalah layer dimana fitur-fitur android berada, biasanya para pembuat aplikasi mengakses library untuk menjalankan aplikasinya. Berjalan diatas kernel, layer ini meliputi berbagai libraryC/C+ + inti seperti Libe dan SSL, serta :
- Libraries media untuk pemutaran media audio dan video - Libraries untuk manajemen tampilan
- Libraries Graphics mencakup SGL dan OpenGL untuk grafis 2D dan 3D - Libraries SQLite untuk dukungan database
- Libraries SSL dan Webkit terintegrasi dengan web browser dan security
- Libraries Live Webcore mencakup modern web browser dengan engine embeeded web view
- Libraries 3D yang mencakup implementasi OpenGL ES 1.0 API’s
d. Android Run Time
Layer yang membuat aplikasi Android dapat dijalankan dimana dalam prosesnya menggunakan implementasi Linux. Dalvik Virtual Machine (DVM) merupakan mesin yang membentuk kerangka dasar aplikasi android. Didalam android run time dibagi menjadi dua bagian yaitu :
- Core Libraries : Aplikasi android dibangun dalam bahasa java, sementara
dalvik sebagai virtual mesinnya bukan virtual machine java, sehingga diperlukan sebuah libraries yang berfungsi menerjemahkan bahasa java/c yang ditangani oleh core libraries.
- Dalvik Virtual Machine : Virtual mesin berbasis register yang dioptamilkan untuk menjalankan fungsi-fungsi secara effisien, dimana merupakan pengembangan yang mampu membuat linux kernel untuk melakukan threading
dan manajemen tingkat rendah.
e. Linux Kernel
Linux kernel adalah layer dimana inti dari operating sistem dari Android itu berada. Berisi file-file system yang mengatur sistem processing, memory,
(30)
resource, drivers, dan sistem-sistem operasi android lainnya. Linux kernel yang digunakan android adalah linux kernel realese 2.6.
2.5.2. Software Pendukung
Dalam pembangunan aplikasi android dibutuhkan beberapa software pendukung (Suprianto & Agustina, 2012), antara lain :
a. Java Development Kit (JDK)
Karena bahasa pemograman android menggunakan bahasa java, maka dibutuhkan JDK. JDK adalah sebuah perangkat yang digunakan untuk membangun perangka lunak dengan pemograman java. JDK berjalan diatas sebuah virtual machine yang dinamakan JVM (Java Virtual Machine).
b. Eclipse
Eclipse adalah IDE software yang digunakan untuk banyak bahasa pemograman seperti Java, Ada, C, C+ + , COBOL, Phyton dan lain-lain. IDE Eclipse intinya adalah suatu software yang lingkungannya dikondisikan agar memudahkan pengembang membangun suatu aplikasi.
c. Android Software Development Kit (SDK)
SDK Android berisi debugger, library, emulator, dokumentasi, contoh kode program dan tutorial. SDK Android adalah mesin utama untuk mengembangkan aplikasi Android.
d. Android Development Tools (ADT) Plugins
Plugins ADT berguna sebagai pengenal Android didalam IDE Eclipse. Dengan ADT plugins kita bisa membuat project aplikasi android baru, mengakses tools emulator dan perangkat android, melakukan kompilasi dan men-debug aplikasi, mengekspor aplikasi Android Packages (APK) dan membuat sertifikasi digital terhadap kode program APK.
2.5.3. SQLite
Menurut Haldar (2007), SQLite merupakan sebuah Relational Database Management System (RDMS) berbasis SQL (Structured Query Language) yang memiliki karakteristik sebagai berikut.
1. Zero Configuration
Tidak ada instalasi terpisah atau pengaturan prosedur untuk inisialisasi SQLite
sebelum digunakan. Sourcecode SQLite dapat di-download kemudian
(31)
17
2. Embedable
Tidak perlu melakukan pemeliharaan terhadap proses server terpisah yang didedikasikan untuk SQLite karena library tertanam dalam aplikasi.
3. Aplication Interface
SQLite menyediakan lingkungan SQL untuk aplikasi-aplikasi bahasa C untuk memanipulasi database.
4. Transactional Support
SQlite mendukung transaksi inti yaitu atomicity, consistency, isolation dan
durability (ACID). 5. Thread Safe
SQLite merupakan thread-safe library, dan beberapa thread dalam proses aplikasi dapat mengakses secara bersamaan database yang sama atau berbeda.
6. Lightweight
SQLite memiliki ukuran yang kecil, yaitu hanya sekitar 250KB, dan ukuran ini masih dapat diperkecil dengan menonaktifkan beberapa fitur-fitur lanjut pada saat kompilasi dari sourcecode. SQLite beroperasi pada Linux, Windows, MAC OS X, OpenBSD dan beberapa sistem operasi lainnya.
7. Costumizable
SQLite menyediakan framework yang bagus sehingga pengguna dapat mendefinisikan dan menggunakan fungsi-fungsi SQL dan fungsi Aggregate. Selain itu, SQLite juga mendukung encoding standart UTF-8 dan UTF-16 untuk teks Unicode.
8. Cross-platform
SQlite memungkinkan pengguna memindahkan file database dari suatu platform ke platform lainnya tanpa adanya perubahan karena database berperilaku sama untuk semua platform yang didukung oleh SQLite.
SQLite berbeda dari kebanyakan database SQL modern lainnya dimana tujuan utama desainnya haruslah sederhana. SQLite mudah dalam hal pemeliharaan, pengoperasian, penyesuaian (costumizeable), pengelolaan dan penggunaan dalam bahasa C. Selain itu, SQLite juga menggunakan teknik sederhana untuk mengimplementaskan properti ACID.
(32)
2.6. Penelitian Terdahulu
Pada tabel 2.1 akan dijelaskan beberapa penelitian terdahulu. Saat ini masih belum banyak penelitian yang berjalan menggunakan metode OCR Adaptive Classifier.
Tabel 2.1 Penelitian terdahulu
No Judul Penulis dan Tahun Keterangan
1 Otomasi sistem pemindai meteran air PDAM untuk meningkatkan akurasi pembacaan tagihan air
Cahyadi, A. F. 2013
Penelitian ini menggunakan metode jaringan syaraf tiruan bertipe backpropagation. Pada penelitian ini pemindaian dilakukan di sebuah perangkat komputer dengan memasukkan input foto yang sebelumnya telah diambil oleh petugas lapangan. Input tersebut lalu diproses untuk selanjutnya dilakukan pemindaian terhadap angka meteran yang terdapat pada foto. Hasil dari penelitian ini dapat meminimasi waktu proses pembacaan pencatatan meteran air dengan rata-rata 15 rumah (21%) lebih banyak dibandingkan sistem manual selama satu jam.
2 Perancangan aplikasi pengenalan karakter korea pada platform android.
Aprilia P. 2012 Penelitian ini menggunakan metode OCR Adaptive Classifier
yang menghasilkan aplikasi yang dapat mengenali karakter korea yang difoto oleh aplikasi maupun yang dimasukkan dengan file chooser dengan tingkat keakurasian 78,73 % untuk gambar dengan latar yang tidak bersih (terdapat iluminasi,
(33)
19
Tabel 2.1 Penelitian terdahulu ( Lanjutan )
No Judul Penulis dan Tahun Keterangan
bayangan dan noise), 92,63% untuk gambar dengan latar yang bersih dan karakter yang jelas, serta 81,97% untuk kombinasi keduanya. Pada penelitian ini rata-rata waktu yang proses yang dibutuhkan untuk mengenali 1 karakter adalah 0,007246 detik.
3 Perancangan sistem pengenalan digit angka meteran air menggunakan jaringan syaraf tiruan kohonen
Triantoro Teguh, et.al 2014
Penelitian ini menggunakan jaringan syaraf tiruan kohonen
dengan citra hasil pemotretan digital telepon seluler. Aplikasi pengenal angka pada indikator digit angka meter air yang dibuat telah berhasil mengenali digit angka dengan tingkat akurasi 91,11% dan pengenalan keseluruhan digit angka pada indikator meter air memiliki tingkat keakurasian 66.67%.
(34)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Pada Bab ini akan dibahas data yang digunakan, flowchart dan activity diagram dari sistem, serta tahapan-tahapan yang akan digunakan dalam perancangan sistem yang akan dibangun.
3.1 Data yang Digunakan
Dalam pembangunan sistem ini, data yang digunakan adalah citra atau gambar dari hasil pemotretan pada meteran air menggunakan camera smartphone android. Terdapat dua data dalam pembacaan meteran air, yaitu QR code dan index meter air.
QR code berguna untuk menyatakan id pelanggan, index meter air berguna sebagai dasar perhitungan tagihan. Indeks meter air terdiri dari dua warna, yaitu hitam yang menunjukkan satuan m3 sebagai dasar perhitungan tagihan, dan merah menunjukkan satuan liter untuk pengujian meter air. Index meter air yang digunakan adalah yang berwarna hitam, yaitu angka empat digit awal. QR code dan Index meter air dapat dilihat pada Gambar 3.1 dan Gambar 3.2.
(35)
21
Gambar 3.2 Index meter
3.2 Arsitektur Umum
Gambar 3.3 Arsitektur Umum
Pada Gambar 3.3, untuk pertama kalinya user atau petugas akan memindai QR-Code untuk menginisialisasi nomor pelanggan. Apabila pada meteran air tidak terdapat QR-Code untuk discan, user atau petugas dapat mengisi no pelanggan secara
manual pada textbox yang telah disediakan. Setelah informasi no pelanggan telah didapat, dilanjutkan pada proses capture meter. Pada proses ini petugas atau user akan memfoto indeks meter air. Setelah selesai difoto, sistem akan melakukan preprocessing terhadap foto yang telah diambil. Setelah semua praproses selesai
(36)
dilakukan, giliran proses pengenalanlah yang akan dilakukan oleh sistem. Apabila pengenalan telah berhasil dilakukan maka petugas akan langsung mendapatkan result text. Result text ini akan berbentuk sebuah editable text.
3.3 Praproses Data
CROPPING
GRAYSCALING
THRESHOLDING
Gambar 3.4 Diagram praproses data
Sebelum masuk ke proses pengenalan, gambar yang diperoleh dari camera haruslah melalu tahap praproses terlebih dahulu, dimana pada proses ini gambar yang bersifat
digital image akan diubah ke binary image. Hal ini dilakukan karena input yang digunakan dalam proses pengenalan data akan diasumsikan sebagai binaryimage dan juga untuk mempermudah dan menigkatkan tingkat keakurasian pengenalan karakter.
3.3.1 Cropping
Pada proses ini citra yang diambil melalui camera akan dilakukan cropping untuk dapat memfokuskan pembacaan hanya pada indeks meteran air. Cropping sendiri dilakukan dengan menggunakan fitur bounding box pada camera seperti pada Gambar 3.5.
Gambar 3.5 Hasil cropping image
3.3.2 Grayscalling
Pada tahapan ini akan dilakukan pengubahan gambar yang berwarna menjadi citra keabuan. Proses pengkonversian ini pun dapat dilihat pada Gambar 3.6.
(37)
23
Start
Loading Image
h = image.getHeight() w = image.getWidth()
x = 0 y = 0
x < w ?
y < h ? x = x + 1
R = Color.red(x,y) G = Color.green(x,y)
B = Color.blue(x,y)
set pixel(x,y) with R * 0.299 + G * 0.587 + B * 0.114
y = y + 1
Grayscaled Image Selesai No Yes No Yes
Gambar 3.6 F lowchart konversi citra RGB menjadi grayscale
Pada proses grayscale program akan melakukan pengulangan dalam pengecekan gambar per pixel sesuai dengan koordinat (x,y) sebesar ukuran dan panjang lebar gambar. Setiap pixel yang terdiri dari 3 informasi warna RGB (red, green, blue) akan dijumlahkan, kemudian dibagi tiga untuk dijadikan warna dasar sebagai nilai rata-rata dalam penkonversian menjadi grayscale. Hasil citra yang telah di grayscale dapat dilihat pada Gambar 3.7.
Gambar 3.7 Hasil proses grayscaling
3.3.3 Thresholding
Thresholding adalah salah bentuk binerisasi gambar dimana gambar grayscale akan diubah menjadi gambar yang hanya mempunyai dua kemungkinan nilai yaitu 0 untuk
(38)
hitam dan 255 untuk putih. Keberhasilan sistem dalam pengenalan kata sangatlah bergantung pada hasil binerisasi gambar, semakin baik hasil binerisasi gambar maka akan meningkatkan keberhasilan pengenalan gambar pula. Dalam penelitian ini digunakan global thresholding metode Otsu yang dipakai pada praproses terakhir. Berikut algoritma untuk metode Otsu.
tMean = 0;
variance = maxVariance = 0; firstCM = zerothCM = 0; for (I = 0; I < h; i++){
for (j = 0; j < w; j++){ n= Image[j][i]; histogram[n]++; } }
for (k = 0; k < level; k++){
tMean += k * histogram[k] / (w *h); for (k = 0; k < level; k++) {
zerothCM += histogram[k] / (w * h); firstCM += k * histogram[k] / (w * h); variance = (tMean * zerothCM – firstCM); variance *= variance;
variance ?= zerothCM * (1 – zerothCM); if (maxVariance < variance) {
maxVariance = variance; T = k; }
} }
Dari algoritma diatas gambar akan di scan per pixel sebesar panjang dikali lebar gambar tersebut. Setiap nilai abu-abu yang didapat dari setiap pixel akan dimasukkan kedalam histogram yang dipresentasikan dengan array. Pada masing-masing level
akan dilakukan perulangan untuk mendapatkan perbaruan pada nilai mean, zeroth cumalative moment, first cumulative moment, dan variansi. Lalu nilai threshold akan ditentukan. Jika pada pixel gambar (x,y) kurang dari nilai threshold maka akan dibuat menjadi hitam atau latar belakang, sebaliknya apabila pixel gambar (x,y) lebih dari
(39)
25
nilai threshold maka pixel akan dibuat menjadi putih. Hasil citra yang telah di
threshold dapat dilihat pada gambar 3.8.
Gambar 3.8. Hasil proses thresholding
3.4 Pemrosesan Data
Setelah didapatkannya binary image dari praproses, maka binary image ini akan dilanjutakan pada tahap pengenalan karakter. Di tesseract sendiri proses pengenalan menggunakan kor.trainedata yang telah tersedia. Kor.trainedata ini merupakan sebuah
box file yang berisi data-data dengan kode-kode unicode UTF-8 hasil pelatihan karakter-karakter. Proses pengenalan karakter itu ditunjukkan pada Gambar 3.8.
Analisis Komponen Terhubung ( Page layout analysis)
Pencarian Baris Teks dan Kata
(Find text lines and words)
Pengenalan Karakter Pass 1 (Recognize word pass 1)
Pengenalan karakter Pass 2 (Recognize word pass 2) INPUT Binary Image OUTPUT Unicode UTF-8 Outline Karakter Outline Karakter disusun menjadi kata
Gambar 3.9 Proses pengenalan karakter
Adapun penjelasan dari proses pengenalan karakter pada Gambar 3.9 adalah sebagai berikut.
3.4.1 Page layout analysis
Pada page layout analysis, akan dilakukan analisa pada komponen terhubung (Connected Component) untuk menemukan dimana komponen outline disimpan. Analisis komponen terhubung ini dilakukan berdasarkan stroke penulisan pada
(40)
umumnya. Lalu pixel terluar dari komponen-komponen ini akan ditandai sebagai
outline, sampai semua pixel terluar ditandai. Kumpulan dari semua outline yang telah ditandai ini akan membentuk sebuah blob. Proses pencarian outline karakter ini dapat dilihat pada Gambar 3.10.
Gambar 3.10 (a) Karakter yang akan dicari outlinenya (b) Pelabelan karakter (c)
blob membentuk outline (d) Outline karakter terbentuk 3.4.2 Find text lines and words
Pada proses ini terdapat tiga hal utama yang akan dilakukan, yaitu : a. Line Finding (Pencarian Baris)
Proses ini dibuat untuk dapat mengenali baris yang miring tanpa harus memiringkan ulang gambar sehingga tidak mengurangi kualitas dari gambar. Kunci dari proses ini adalah filterisasi blob dan line constructing (Smith, 2007).
Mengasumsikan bahwa analisis layout telah menyediakan region teks dan ukuran teks yang seragam, kemudian sebuah filter ketinggian persenti akan menghapus drop cap dari karakter-karakter yang bersentuhan secara vertical. Tinggi median akan mendekati ukuran teks pada region sehingga dapat digunakan sebagai filter blob yang lebih kecil dari beberapa bagian ketinngian titik tengah seperti tanda baca, diakritik dan noise. Filtered blobs akan berbentuk seperti sebuah model yang pas seperti tidak tumpang tindih, pararel, tetapi bergaris miring. Penyortiran dan pemrosesan blob dari kordinat x, memungkinkan untuk menetapkan blob pada text line yang unik, saat mengikuti kemiringan kata pada setiap halaman, dan mengurangi keslahan dalam menempatkan teks yang tidak tepat pada kemiringan yang ada. Setelah filtered blobs sudah ditetapkan pada garisnya, median dari model yang telah dibuat akan digunakan untuk memperkirakan baselines, dan blob yang telah disaring akan dipasangkan kembali pada garis yang tepat.
b. Baseline Fitting
Setelah baris teks ditemukan, baseline akan dicocokkan dengan lebih tepat menggunakan quadratic spline. Quadratic spline merupakan sebuah fungsi
(41)
27
kuadrat sepenggal yang dapat diturunkan (Chen, Madsen, Zhang 2002, p l). Fungsi ini digunakan untuk mengatasi gambar dengan baseline yang mirio atau berbentuk kurva. Baseline ini akan dicocokkan partisi blob kedalam kelompok-kelompok. Contoh fitted baseline yang berbentuk miring dapat dilihat pada Gambar 3.11.
Gambar 3.11 F itted baseline yang berbentuk miring c. Fixed Pitch Detection dan Chopping
Tesseract menguji text lines untuk menentukan apakah mereka (text lines) telah mendapatkan pitch yang tetap. Pitch tetap yang telah ditemukan, tesseract akan memotong kata-kata kedalam karakter menggunakan pitch tersebut, dan menghentikan pemotongan dan mengasosiasi kata-kata ini untuk dilanjutkan pada langkah pengenalan kata. Pemotongan kata pada pitch dapat dilihat pada Gambar 3.12.
Gambar 3.12 Pemotongan karakter sesuai dengan F ixed Pitch
3.4.3 Recognize word pass 1 dan 2
Setelah segmentasi berhasil dilakukan, blob akan digunakan word recognizer sebagai
feature dan mengklasifikasikan setiap blok dan menyajikan hasil klasifikasi tersebut pada kamus untuk mencari sebuah kata dengan kombinasi pilihan classifier untuk setiap blob. Jika hasil pengenalan masih buruk, maka karakter itu akan dipisah.
Apabila kapasitas pemisahan sudah tidak memungkinkan, pencarian best first search (BST) dari graf segmentasi akan menyusun kembali potongan-potongan karakter yang sudah dipasang. Dalam setiap langkah BST, setiap kombinasi blob baru yang salah akan diklasifikasikan dan hasil classifier dari proses tersebut akan kembali di masukkan ke kamus. Output yang dihasilkan nantinya merupakan string karakter (UTF-8) yang memiliki rating terbaik, sesuai dengan pembobotan berdasarkan ada
(42)
atau tidaknya kata dalam sebuah kamus. Selanjutnya dengan menggunakan fungsi
getUTF8() yang terdapat pada class TessBaseApi akan mengembalikan string yang berisi unicode dan karakter yang dikenali, kemudian akan dipresentasikan unicode
tersebut dalam bentuk karakter tertentu.
3.5 Perancangan Sistem
3.5.1 Usecase diagram
Usecase diagram digunakan untuk menggambarkan fungsionalitas dan fitur-fitur yang ada pada sistem berdasarkan perspektif dari user. Usecase menggambarkan cara user
berinteraksi dengan sistem dan menjabarkan langkah-langkah yang harus dilakukan
user untuk menyelesaikan suatu tugas didalam sistem (Pressman, 2010). Usecase
diagram dari sistem dapat dilihat pada Gambar 3.13.
CAPTURE METER
LIHAT HISTORY
INFO
SCAN QR CODE ATAU MASUKKAN ID
user ( petugas )
SCAN METERAN
SIMPAN HASIL SISTEM
Gambar 3.13. Usecase diagram
3.5.2 Usecase Spesifikasi
Usecase spesifikasi mendeskripsikan usecase diagram, menjelaskan bagaimana sebuah usecase itu bekerja (Muchtar, et al. 2011). Usecase spesifikasi yang digunakan dalam sistem akan dijelaskan pada Tabel 3.1 , Tabel 3.2, dan Tabel 3.3.
(43)
29
Tabel 3.1 Usecase spesifikasi capture meter
Nama usecase Capture Meter Aktor Petugas (user)
Deskripsi Use case ini digunakan oleh user untuk mencapture meteran air.
Pre condition Semua User dapat mengakses halama ini tanpa
syarat apapun.
Characteristic of activation Eksekusi hanya dapat dilakukan oleh siapapun
Basic flow - Petugas akan menekan tombol Scan QR code
untuk menscan QR code yang terdapat pada meteran, atau dapat langsung memasukkan id pelanggan pada text box yang telah disediakan. - Petugas lalu menekan tombol scan index meter
untuk mengscan index meter air pada meteran air lalu menakan tombol done apabila angka telah benar dikenali.
- Setelah kedua informasi tersebut telah di dapat petugas lalu menekan tombol save.
Alternative flow H-1 : Isi manual angka index meter air.
Apabila pengenalan sulit dilakukan maka petugas dapat mengisi angka index meter air secara manual dengan tetap memoto meteran air terlebih dahulu.
Post condition Petugas akan dikembalikan ke halaman utama.
(44)
Tabel 3.2 Usecase spesifikasi lihat history
Nama usecase Lihat history
Aktor Petugas
Deskripsi Usecase ini digunakan oleh petugas untuk melihat hasil dari pemindaian meteran air yang pernah dilakukan.
Pre condition
-Characteristic of activation Eksekusi dapat dilakukan oleh siapapun.
Basic flow - Petugas dapat melihat segala hasil dari
pemindaian yang pernah dilakukan, meliputi hasil pindaian index meter air, foto meter air, dan waktu dilakukannya pemindaian. Untuk menghapus data yang tidak diinginkan petugas dapat menekan lalu tahan record yang ingin dihapus.
Alternative flow H-1 : Data tidak ditemukan
Apabila tidak ada meteran air yang dipindai sebelumnya
Post condition Petugas dapat menghapus record history
Limitations -
Tabel 3.3 Use case spesifikasi Info
Nama usecase Info
Aktor Petugas
Deskripsi Usecase ini digunakan oleh petugas untuk melihat info dari sistem
(45)
31
3.5.3 Activity diagram
Activity diagram menggambarkan urutan aktivitas dalam sistem yang dirancang. Diagram aktifasi menjelaskan tentang kegiatan apa yang dilakukan pada sistem tetapi tidak menjelaskan apa yang dilakukan oleh aktor (Fowler, 2005). Activity diagram
pada sistem dapat dilihat pada Gambar 3.14 dan Gambar 3.15.
USER SISTEM
Scan QR code atau masukkan id pelanggan
Baca QR code dan jadikan sebagai id pelanggan
Foto angka index meter meterean air
Proses image meliputi preprocessing dan pengenalan karakter
Menampilkan hasil pengenalan index meter air
User menekan save untuk
menyimpan data Data tersimpan
Gambar 3.14 Usecase diagram capture meter
Pada Gambar 3.13, ditampilkan bagaimana user akan menjalankan proses pengenalan karakter dari meteran air. Pertama user akan mengescan QR code yang terdapat pada meteran air untuk dipakai sebagai id pelanggan dalam penyimpanan data. Setelah QR code selesai di scan maka lanjut ke pemotoan angka index meteran air untuk dilakukan pemindaian oleh sistem bera angka yang tertera pada index meter air meteran air, apabila angka yang diproses sistem telah benar seperti dalam angka
index meter meteran air, maka user dapat menekan tombol save untuk menyimpan data tersebut.
(46)
USER SISTEM
Pilih menu lihat history Cek Database
Menampilkan data meteran air yang pernah disimpan
Gambar 3.15 Usecase diagram lihat history
Pada Gambar 3.14, user dapat melihat data meteran air yang pernah disimpan sebelumnya dengan cara memilih menu lihat story lalu sistem akan menampilkan data meteran air yang pernah disimpan meliputi id pelanggan, angka index meter meteran air, dan waktu pengambilan data.
3.5.4 Perancangan antar muka
Antarmuka sistem dari aplikasi dirancang untuk memudahkan user dalam menggunakan aplikasi yang dibangun. Tingkat keberhasilan user dalam memakai aplikasi bergantung juga dari antarmuka yang dibangun oleh pembuat aplikasi sehingga mudah untuk digunakan. Berikut akan dijelaskan rancangan antar muka aplikasi yang ingin dibuat.
1. Rancangan halaman utama
Halaman awal merupakan halaman inti tempat semua menu yang dapat dijalankan oleh user. Menu-menu itu meliputi capture meter, lihat history dan info pengembang aplikasi. Rancangan halaman utama dapat dilihat pada Gambar 3.16.
(47)
33
NAMA APLIKASI
ICON ICON
ICON
Capture Meter History
Info
Gambar 3.16 Rancangan halaman utama
2. Rancangan halaman capture meter
Halaman ini merupakan tempat dimana kita akan menginput gambar meteran air dengan memoto langsung meteran air tersebut. Didalam halaman ini terdapat fungsi untuk scan QR code yang terdapat di meteran air yang selanjutnya digunakan sebagai no pelanggan, dan scan indeks meter untuk melakukan proses OCR pada indeks meter meteran air. Setelah kedua data tersebut didapat user dapat langsung menyimpannya dengan menekan save. Rancangan halaman utama dapat dilihat pada Gambar 3.17.
(48)
NAMA HALAMAN
No Pelanggan
Scan QR-Code Text box
Start Scan
Indeks Meter
SAVE
Image Indeks Meter Text box
Gambar 3.17 Rancangan halaman capture meter
Keterangan :
a. Text box“No Pelanggan” berguna untuk measukkan No Pelanggan
secara manual.
b. Button “Scan QR-Code” berguna untuk memindai QR-code yang terdpat pada meteran air untuk digunakan sebagai No Pelanggan. c. Text box“Indeks Meter” untuk menampilkan hasil dari proses OCR
yang dilakukan pada indeks meter meteran air.
d. Tombol “Start Scan” untuk memulai memfoto dan memproses OCR pada indeks meter meteran air yang telah difoto.
e. Area “Image Indeks Meter Meter” akan menampilkan hasil foto
yang telah dilakukan pada indeks meter meteran air.
f. Tombol “save” untuk menyimpan semua data yang telah diambil.
3. Halaman lihat history
Halaman ini bertujuan untuk menampilkan semua data yang telah pernah kita simpan sebelumnya. Pada halaman ini kita juga dapat menghapus data yang tidak diinginkan. Rancangan halaman utama dapat dilihat pada Gambar 3.18.
(49)
35
NAMA HALAMAN
image
No Pelanggan : Indeks Meter :
Waktu Pengambilan
image Indeks Meter :
Waktu Pengambilan
image Indeks Meter :
Waktu Pengambilan
image Indeks Meter :
Waktu Pengambilan
Gambar 3.18 Rancangan halaman lihat history
Keterangan :
a. Disetiap baris data, sistem menampilkan gambar indeks meter meteran air yang telah difoto, no pelanggan, indeks meter, dan waktu pengambilan.
b. Untuk menghapus data dapat dilakukan dengan menahan record data yang akan dihapus.
4. Rancangan halaman info
Halaman ini akan menampilkan info dari aplikasi yang telah dibuat seperti cara penggunaan aplikasi dan info pengembang aplikasi. Rancangan halaman utama dapat dilihat pada Gambar 3.19.
(50)
NAMA HALAMAN
Info Penggunaan Aplikasi
Info Pengembang Aplikasi
Gambar 3.19 Rancangan halaman info
3.5.5 Perancangan Database
Database pada aplikasi ini digunakan untuk menyimpan info hasil pemindaian meteran, untuk dapat dilihat dikemudian harinya. Database in hanya terdiri dari 1
table yaitu Table Result. Adapun rancangan tabel tersebut dapat dilihat pada Tabel 3.4
Tabel 3.4 Rancangan Table Result
Nama Field Tipe Data Keterangan
id Integer Primary Key, Auto Increment
meter_number Text Not null
meter_result Integer Not null
image Blob Not null
(51)
BAB 4
IMPLEMENTASI DAN PENGUJIAN
Pada bab ini, akan dibahas pengimplementasian dan pengujian sistem sesuai dengan analisis dan perancangan yang telah dibahas pada bab sebelumnya. Tahapan ini bertujuan untuk menampilkan hasil tampilan akhir sistem yang dibangun dan proses pengujian sistem yang nantinya dapat mengenali angka indeks meter hasil pemindaian meteran air. Aplikasi yang dihasilkan diimplementasikan dan diuji pada Samsung Galaxy Wonder GT-I8150 yang menggunakan sistem operasi Android versi 2.3.6.
4.1. Implementasi Sistem
Berdasarkan hasil analisis dan perancangan sistem pada Bab 3, kebutuhan dalam pengimplementasian dijelaskan pada subbab 4.11.
4.1.1 Spesifikasi Sistem
Untuk dapat menjalankan aplikasi, versi minimal dari sistem operasi Android adalah Android 2.2, versi dibawah 2.2 tidak dapat menjalankan perangkat lunak. Ponsel yang dipakai juga harus memiliki media penyimpanan (storage) tempat dimana hasil capture indeks meter dan hasil preprocessing disimpan.
4.1.2 Instalasi Aplikasi
Sebelum melakukan penginstalan aplikasi, terlebih dahulu user harus mempunyai file
library tessdata pada parent media penyimpanan device. File tessdata ini dapat disimpan pada parent sdcard device dengan membuat folder tesseract dan subfolder tessdata. Setelah tessdata telah tersedia pada storage device, selanjutnya user dapat langsung menginstal dengan cara memindahkan file apk yang telah dibuild dengan
(52)
nama PDAMMeterOCR.apk ke dalam storage device. Pastikan pengaturan untuk
unknown sources telah dicentang pada menu setting device. Lalu ikuti tata cara penginstalan apliaksi seperti biasa pada masing-masing installer. Setelah aplikasi terpasang pada device kita dapat menjalankan aplikasi dengan cara mengklik icon
“PDAM Meter OCR” seperti pada gambar 4.1.
Gambar 4.1. Icon aplikasi pada device
Pada saat pertama kali dijalankan, aplikasi akan membutuhkan dua aplikasi tambahan untuk mendukung proses pemindaian dari sistem. Adapun aplikasi tambahan tersebut adalah Barcode Scanner dan OpenCV Manager. Lakukan Penginstalan terhadap dua aplikasi tersebut yang secara otomatis akan diarahkan oleh sistem secara lagsung.
4.1.3 Mekanisme Penggunaan Aplikasi
Pada saat aplikasi dibuka, aplikasi akan menampilkan halaman splash screen.
(53)
39
Gambar 4.2. Halaman Splash Screen
Setelah halaman aplikasi, maka user akan ditujukan pada halama utama. Pada halaman utama ini terdapat 3 menu yang dapat kita pilih, yaitu Capture Meter, History, dan Info. Halaman utama dapat dilihat pada Gambar 4.3.
Gambar 4.3 Halaman Utama
Untuk memulai melakukan pemindaian kita dapat memilih menu Capture Meter. Pada halaman capture meter terdapat 2 proses yang harus kita lakukan. Proses itu adalah mengisikan No. Pelanggan dan mengambil foto indeks meter meteran air. Pada
(54)
proses pengisian No. Pelanggan, terdapat 2 cara yang dapat dilakukan oleh user, yaitu mengisikan secara manual No. Pelanggan pada text box Meter Number yang telah disediakan, atau melakukan scan QRCode dengan menekan tombol “Scan QRCode”.
Setelah No. Pelanggan didapat, kita dapat melanjutkan ke proses selanjutnya yaitu mengambil foto indeks meter meteran air. Untuk memulai proses ini kita dapat
menekan tombol “Start Scan”. Adapun tampilan halaman Capture Meter dapat kita lihat pada Gambar 4.4.
Gambar 4.4 Halaman Capture Meter
Setelah melakukan kedua proses pada Halaman Capture Meter, kita akan mendapatkan 2 informasi yang akan diletakkan pada tempatnya masing-masing. Apabila informasi yang ada pada sistem belum sesuai dengan informasi yang ada pada meteran air, kita dapat mengulai kedua proses itu lagi dengan mengklik tombol tiap proses kembali. Apabila kedua informasi itu telah benar, kita dapat menekan tombol
“Save” untuk menyimpan informasi tersebut ke database. Setelah menekan tombol
“Save”, sistem akan mengembalikan kita pada halaman utama. Untuk melihat hasil pemindaian yang pernah dilakukan dan berhasil disimpan, kita dapat menekan menu History. Halaman history dapat kita lihat pada gambar 4.5.
(55)
41
Gambar 4.5 Halaman History
Pada halaman history sistem akan memberikan 5 Informasi data, yaitu : a. Image Indeks Meter
Menampilkan foto hasil pengambilan terhadap indeks meter meteran air. b. No. Pelanggan
Berisikan informasi No. Pelanggan dari meteran air yang di-foto dengan cara scan QRCode atau mengisi manual.
c. Indeks Meter
Berisikan hasil pemindaian yang dikaukan sistem terhadap indeks meter meteran air.
d. Tanggal dan Waktu
Berisikan informasi tanggal dan waktu pengambilan foto meteran air.
Untuk menghapus data dari halaman history dapat dilakukan dengan menahan
record yang diingikan sampai muncul kotak checkbox dan icon delete. Untuk memudahkan dalam pengumpulan data meteran yang telah didapat, dibuat satu fitur tambahan yaitu seluruh data yang telah terkumpul pada device dapat dikirimkan langsung ke server utama untuk diproses lebih lanjut. Untuk melakukan proses ini kita langsung dapat menekan tombol upload. Setelah proses pengiriman berhasil, maka kita akan dapat melihat langsung data yang telah kita kirim tadi pada server seperti pada gambar 4.6.
(56)
Gambar 4.6 Tampilan halaman data meteran air yang telah masuk ke server
Dan menu terakhir yaitu Info yang akan menampilkan halaman berisikan cara pemakaian aplikasi dan informasi tentang pengembang aplikasi. Halaman info dapat kita lihat pada Gambar 4.7.
(57)
43
Gambar 4.7 Halaman Info
4.2 Pengujian Sistem
Pengujian sistem dilakukan pada Smartphone dengan spesifikasi :
- Model : GT-I8150
- Manufacturer : Samsung
- Processor : Qualcomm Snapdragon S2 1.40 GHz
- GPU : Adreno ™ 205
- RAM : 350 MB - Screen Resolution (pixels) : 480 x 800
- Android Version : 2.3.6
(58)
Pengujian sistem dilakukan dengan cara melakukan pemindaian terhadap 10 object meteran air yang dilakukan pada pagi hingga sore hari dari pukul 10.00-15.00 WIB dengan kondisi cuaca cerah. Adapaun hasil pengujian dapat dilihat pada Tabel 4.1.
Tabel 4.1 Hasil Pengujian Sistem
Gambar Percobaan 1 Percobaan 2 Percobaan 3
Uji 1 Hasil Pengujian : Berhasil
Uji 2
Hasil Pengujian : Berhasil
Uji 3
(59)
45
Tabel 4.1 Hasil Pengujian Sistem ( Lanjutan )
Gambar Percobaan 1 Percobaan 2 Percobaan 3
Uji 4
Hasil Pengujian : Berhasil
Uji 5
Hasil Pengujian : Berhasil
Uji 6
(60)
Tabel 4.1 Hasil Pengujian Sistem ( Lanjutan )
Gambar Percobaan 1 Percobaan 2 Percobaan 3
Uji 7
Hasil Pengujian : Berhasil
Uji 8
Hasil Pengujian : Gagal
Uji 9
(61)
47
Tabel 4.1 Hasil Pengujian Sistem ( Lanjutan )
Gambar Percobaan 1 Percobaan 2 Percobaan 3
Uji 10 Hasil Pengujian : Berhasil
4.2.1 Analisis Pengujian Sistem
Dari hasil pengujian yang ditampilkan pada Tabel 4.1 didapat beberapa kesimpulan yaitu :
- Object Uji 1
Dari ketiga percobaan, hanya terdapat satu percobaan yang berhasil. Di dua percobaan lainnya terdapat kesalahan pengenalan. Dimana pada percobaan pertama angka 2 tidak dapat dibaca oleh sistem sedangkan pada percobaan ketiga angka 2 dibaca oleh sistem sebagai angka 1. Hal ini bisa saja disebabkan oleh banyaknya noise yang terdapat pada indeks meter khususnya pada karakter pertama indeks meter.
- Object Uji 2
Dari ketiga percobaan hanya pada percobaan ketiga sistem dapat membaca angka indeks meter dengan benar. Kesalahan pada kedua percobaan lainya terdapat pada pengenalan beberapa karakter indeks meter yang kurang jelas. Bentuk dari angka indeks meter yang sudah rusak menyebabkan kesalahan sistem pada pengenalan.
- Object Uji 3
Pada object uji 3, sistem sama sekali tidak dapat mengenali angka indeks meter dengan benar. Terdapat beberapa penambahan karakter pada result text
maupun kesalahan dalam pengenalan tiap karakternya. Kesalahan ini dapat disebabkan oleh roda angka meteran air pada indeks meter belum tampil dengan sempurna, sehingga terjadi perpotongan terhadap karakter yang menggaggu proses pengenalan
(62)
- Object Uji 8
Pada object uji 8 ini juga sistem tidak dapat sama sekali mengenali angka indeks meter dengan benar, banyak terdapat kesalahan pengenalan yang dilakukan oleh sistem. Kesalahan pegenalan ini dapat disebabkan karena object uji sendiri terlihat terlalu gelap. Dimana pembatas dari roda meteran air sangat jelas terlihat sehinga sistem juga akan ikut membaca pembatas roda tersebut sebagai suatu karakter baru.
Pada object uji lainnya kesalahan pada tiap percobaan dapat terlihat sama dimana
noise yang ditangkap oleh kamera dikenali oleh sistem sebagai suatu karakter baru. Noise yang tertangkap ini bisa berasal dari berbagai hal, seperti pembatas roda meter yang yang sangat jelas terlihat, tingkat pencahayaan pada saat pengambilan foto indeks meter yang minim, roda meter yang belum dalam posisi sempurna dan juga bentuk dari angka pada indeks meter yang sudah rusak. Dari pengujian Tabel 4.1 didapatkan akurasi rata-rata pengenalan angka indeks meter pada meteran air adalah : 8/10 x 100% = 80% dengan total pemakaian memori (RAM) sebesar 4.63 MB dan
(63)
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil dari pengujian data yang telah dilakukan didapat beberapa kesimpulan, yaitu :
1. Dari aplikasi yang telah dibuat, hasil pembacaan indeks meter yang dilakukan dengan kamera smartphone android terbilang cukup berhasil.
2. Tingkat akurasi dari hasil pembacaan indeks meter meteran air menerapkan
Optical Character Recognition adalah 80%.
3. Masih terdapat kesalahan pembacaan pada beberapa percobaan, dimana sistem membaca garis pembatas roda yang dianggap sebagai angka satu, dan noise dari roda indeks meter dikenli sebagai angka atau karakter baru.
5.2 Saran
Untuk pengembangan lebih lanjut, saran yang dapat diberikan adalah sebagai berikut. 1. Metode untuk binerisasi gambar dapat dikembangkan lebih lanjut secara
kompleks, sehingga dapat menghasilkan gambar biner yang lebih baik untuk mempertinggi tingkat keakurasian.
2. Pengembangan lebih lanjut diharapkan dapat memecahkan persoalan mengenai noise yang terdapat pada angka indeks meter seperti, angka indeks meter yang rusak dan juga pembatas roda yang mengganggu.
3. Perlu adanya sebuah metode baru dalam mensegmentasi indeks meter, sehingga sistem dapat lebih mudah mengenali angka perkarakternya.
(64)
4. Objek asing yang ikut tertangkap kamera diharapkan dapat difilter dengan baik sehingga tidak ikut masuk kedalam proses pengenalan, sehingga tidak merusak hasil dari pemindaian yang telah dilakukan.
5. Dalam pengembangan aplikasi hasil dari pemindaian indeks meter dapat dilanjutkan ke proses penghitungan tagihan yang juga diproses langsung di
platform android.
(65)
DAFTAR PUSTAKA
Aprilia P. 2012. Perancangan Aplikasi Pengenalan Karakter Korea pada Platform Android Menggunakan Metode OCR Adaptive Classifier. Skripsi. Binus University
Cahyadi, A. F. 2013. Otomasi Sistem Pemindai Meteran Air PDAM untuk Meningkatkan Akurasi Pembacaan Tagihan Air Dengan Jaringan Syaraf Tiruan Bertipe Backpropagation. Skripsi. Universitas Gadjah Mada
Chen, B., K. Madsen, S. Zhang (2002). On Characterization of Quadratic Splines, 1-2.
Fowler, Martin. 2005. UML Distilled 3th Ed., Panduan Singkat Bahasa Pemodelan Objek Standar.Yogyakarta : ANDI.
Haldar, S. (2007). Inside SQL Lite.- : O’Reilly Media, Inc.
Harianja, A.A . 2010. Pengenalan Citra Huruf dan/atau Angka Menggunakan Sistem Jaringan Saraf Tiruan Model Hopfiled. Skripsi. Universitas Sumatera Utara
Muchtar, Muhammad Anggia, Muhammad Fadhly Sani. 2011. Modul Praktikum Desain Perangkat Lunak. Modul Praktikum. Medan, Indonesia: Universitas Sumatera Utara.
Patel, Chirag, Patel, Atul. PhD, Patel, Dharmendra. 2012. Optical Character
Recognition by Open Source OCR Tool Tesseract: A Case Study. International Journal of Computer Applications (0957-8887). Volume 55-No.10.
Petrou, M & Petrou, C. 2010. Image Processing The Fundamentals. 2nd Edition. John Wiley & Sons, Ltd Singapore.
(66)
Pressman, R.S. 2010. Software Engineering: A Practicioner’s Approach. 7th Edition. McGraw-Hill : New York.
Putra, C.G.D., 2011, Analisis Kepuasan Pelanggan pada Perusahaan Daerah Air Minum (PDAM) di Kabupaten Jembrana, Tesis, Universitas Udayana, Denpasar.
Safaat, N.A. 2012. Pemograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android. Informatika. Bandung
Smith, Ray. (2007). An Overview of the Tesseract OCR Engine, 629-633.
Smith, R., D.Antonova, D.S. Lee. (2009). Adapting the Tesseract Open Source OCR Engine for Multilingual OCR in Proc. Int. Workshop Multilingual OCR, Barcelona.
Somers, H. (2003). Computers and Translation. Amsterdam : John Benjamins Publishing Co.
Sommerville, I. 2004. Software Engineering. 7th edition. Pearson/Addison-Wesley. New York.
Suprianto, D., Agustina, R. 2012. Pemograman Aplikasi Android. Yogyakarta : MediaKom.
Triantoro, F. Batubara, F.R & Fahmi. 2014. Perncangan Sistem Pengenalan Digit Angka Meter Air Menggunakan Jaringan Syaraf Tiruan Kohonen. Skripsi.
(1)
Tabel 4.1 Hasil Pengujian Sistem ( Lanjutan )
Gambar Percobaan 1 Percobaan 2 Percobaan 3
Uji 10 Hasil Pengujian : Berhasil
4.2.1 Analisis Pengujian Sistem
Dari hasil pengujian yang ditampilkan pada Tabel 4.1 didapat beberapa kesimpulan yaitu :
- Object Uji 1
Dari ketiga percobaan, hanya terdapat satu percobaan yang berhasil. Di dua percobaan lainnya terdapat kesalahan pengenalan. Dimana pada percobaan pertama angka 2 tidak dapat dibaca oleh sistem sedangkan pada percobaan ketiga angka 2 dibaca oleh sistem sebagai angka 1. Hal ini bisa saja disebabkan oleh banyaknya noise yang terdapat pada indeks meter khususnya pada karakter pertama indeks meter.
- Object Uji 2
Dari ketiga percobaan hanya pada percobaan ketiga sistem dapat membaca angka indeks meter dengan benar. Kesalahan pada kedua percobaan lainya terdapat pada pengenalan beberapa karakter indeks meter yang kurang jelas. Bentuk dari angka indeks meter yang sudah rusak menyebabkan kesalahan sistem pada pengenalan.
- Object Uji 3
Pada object uji 3, sistem sama sekali tidak dapat mengenali angka indeks meter dengan benar. Terdapat beberapa penambahan karakter pada result text maupun kesalahan dalam pengenalan tiap karakternya. Kesalahan ini dapat disebabkan oleh roda angka meteran air pada indeks meter belum tampil dengan sempurna, sehingga terjadi perpotongan terhadap karakter yang menggaggu proses pengenalan
(2)
48
- Object Uji 8
Pada object uji 8 ini juga sistem tidak dapat sama sekali mengenali angka indeks meter dengan benar, banyak terdapat kesalahan pengenalan yang dilakukan oleh sistem. Kesalahan pegenalan ini dapat disebabkan karena object uji sendiri terlihat terlalu gelap. Dimana pembatas dari roda meteran air sangat jelas terlihat sehinga sistem juga akan ikut membaca pembatas roda tersebut sebagai suatu karakter baru.
Pada object uji lainnya kesalahan pada tiap percobaan dapat terlihat sama dimana noise yang ditangkap oleh kamera dikenali oleh sistem sebagai suatu karakter baru. Noise yang tertangkap ini bisa berasal dari berbagai hal, seperti pembatas roda meter yang yang sangat jelas terlihat, tingkat pencahayaan pada saat pengambilan foto indeks meter yang minim, roda meter yang belum dalam posisi sempurna dan juga bentuk dari angka pada indeks meter yang sudah rusak. Dari pengujian Tabel 4.1 didapatkan akurasi rata-rata pengenalan angka indeks meter pada meteran air adalah : 8/10 x 100% = 80% dengan total pemakaian memori (RAM) sebesar 4.63 MB dan CPU sebesar 3.4% perjalannya aplikasi.
(3)
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil dari pengujian data yang telah dilakukan didapat beberapa kesimpulan, yaitu :
1. Dari aplikasi yang telah dibuat, hasil pembacaan indeks meter yang dilakukan dengan kamera smartphone android terbilang cukup berhasil.
2. Tingkat akurasi dari hasil pembacaan indeks meter meteran air menerapkan Optical Character Recognition adalah 80%.
3. Masih terdapat kesalahan pembacaan pada beberapa percobaan, dimana sistem membaca garis pembatas roda yang dianggap sebagai angka satu, dan noise dari roda indeks meter dikenli sebagai angka atau karakter baru.
5.2 Saran
Untuk pengembangan lebih lanjut, saran yang dapat diberikan adalah sebagai berikut. 1. Metode untuk binerisasi gambar dapat dikembangkan lebih lanjut secara
kompleks, sehingga dapat menghasilkan gambar biner yang lebih baik untuk mempertinggi tingkat keakurasian.
2. Pengembangan lebih lanjut diharapkan dapat memecahkan persoalan mengenai noise yang terdapat pada angka indeks meter seperti, angka indeks meter yang rusak dan juga pembatas roda yang mengganggu.
3. Perlu adanya sebuah metode baru dalam mensegmentasi indeks meter, sehingga sistem dapat lebih mudah mengenali angka perkarakternya.
(4)
50
4. Objek asing yang ikut tertangkap kamera diharapkan dapat difilter dengan baik sehingga tidak ikut masuk kedalam proses pengenalan, sehingga tidak merusak hasil dari pemindaian yang telah dilakukan.
5. Dalam pengembangan aplikasi hasil dari pemindaian indeks meter dapat dilanjutkan ke proses penghitungan tagihan yang juga diproses langsung di platform android.
(5)
DAFTAR PUSTAKA
Aprilia P. 2012. Perancangan Aplikasi Pengenalan Karakter Korea pada Platform Android Menggunakan Metode OCR Adaptive Classifier. Skripsi. Binus University
Cahyadi, A. F. 2013. Otomasi Sistem Pemindai Meteran Air PDAM untuk Meningkatkan Akurasi Pembacaan Tagihan Air Dengan Jaringan Syaraf Tiruan Bertipe Backpropagation. Skripsi. Universitas Gadjah Mada
Chen, B., K. Madsen, S. Zhang (2002). On Characterization of Quadratic Splines, 1-2.
Fowler, Martin. 2005. UML Distilled 3th Ed., Panduan Singkat Bahasa Pemodelan Objek Standar.Yogyakarta : ANDI.
Haldar, S. (2007). Inside SQL Lite.- : O’Reilly Media, Inc.
Harianja, A.A . 2010. Pengenalan Citra Huruf dan/atau Angka Menggunakan Sistem Jaringan Saraf Tiruan Model Hopfiled. Skripsi. Universitas Sumatera Utara
Muchtar, Muhammad Anggia, Muhammad Fadhly Sani. 2011. Modul Praktikum Desain Perangkat Lunak. Modul Praktikum. Medan, Indonesia: Universitas Sumatera Utara.
Patel, Chirag, Patel, Atul. PhD, Patel, Dharmendra. 2012. Optical Character
Recognition by Open Source OCR Tool Tesseract: A Case Study. International Journal of Computer Applications (0957-8887). Volume 55-No.10.
Petrou, M & Petrou, C. 2010. Image Processing The Fundamentals. 2nd Edition. John Wiley & Sons, Ltd Singapore.
(6)
52
Pressman, R.S. 2010. Software Engineering: A Practicioner’s Approach. 7th Edition.
McGraw-Hill : New York.
Putra, C.G.D., 2011, Analisis Kepuasan Pelanggan pada Perusahaan Daerah Air Minum (PDAM) di Kabupaten Jembrana, Tesis, Universitas Udayana, Denpasar.
Safaat, N.A. 2012. Pemograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android. Informatika. Bandung
Smith, Ray. (2007). An Overview of the Tesseract OCR Engine, 629-633.
Smith, R., D.Antonova, D.S. Lee. (2009). Adapting the Tesseract Open Source OCR Engine for Multilingual OCR in Proc. Int. Workshop Multilingual OCR, Barcelona.
Somers, H. (2003). Computers and Translation. Amsterdam : John Benjamins Publishing Co.
Sommerville, I. 2004. Software Engineering. 7th edition. Pearson/Addison-Wesley. New York.
Suprianto, D., Agustina, R. 2012. Pemograman Aplikasi Android. Yogyakarta : MediaKom.
Triantoro, F. Batubara, F.R & Fahmi. 2014. Perncangan Sistem Pengenalan Digit Angka Meter Air Menggunakan Jaringan Syaraf Tiruan Kohonen. Skripsi. Universitas Sumatera Utara.