Sistem Pemindai Meteran Air Pada Platform Android

(1)

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), Tesseract OCR, 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.


(2)

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


(3)

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


(4)

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.


(5)

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


(6)

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.


(7)

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.


(8)

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 karakter “r” bersentuhan dengan karakter “m”. Pemotongan dilakukan


(9)

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


(10)

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


(11)

- 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 library C/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,


(12)

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 download kemudian di-compile dengan di-compiler C kemudian selanjutnya dapat digunakan.


(13)

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.


(14)

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,


(15)

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


(1)

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


(2)

- 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,


(3)

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 di-compile dengan compiler C kemudian selanjutnya dapat digunakan.


(4)

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.


(5)

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,


(6)

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