SISTEM PENYELESAIAN MATEMATIKA DASAR DENGAN OCR BERBASIS ANDROID Oleh : Achmad Amiruzain 09560335 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH MALANG 2016 SISTEM PENYELESAIAN MATEMATIKA DASAR DENGAN OCR BERBASIS ANDROID TUGAS AKHIR Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang Oleh : Achmad Amiruzain 09560335 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH MALANG 2016 i ii iii ABSTRAK Berkembangnya teknologi smart phone yang sangat pesat membuat penggunanya bertambah seiring waktu. Salah satunya adalah smart phone yang dibekali dengan sistem operasi Android. Perkembangan aplikasi-aplikasi yang dikembangkan untuk sistem Android pun semakin beragam yang mana salah satunya adalah aplikasi untuk penyelesaian soal-soal matematika dasar tanpa melakukan input soal (karakter) secara manual kedalam aplikasi, tapi cukup dengan melakukan capture pada soal yang akan diselesaikan dengan memanfaatkan teknologi OCR (Optical Character Recognition). Dalam tugas akhir ini, teknologi OCR yang digunakan adalah menggunakan Tesseract sebagai engine pengenal karakternya dan metode yang dipakai untuk mengolah hasil dari proses OCR yang berupa teks adalah metode Tokenizer yaitu memecah teks kedalam token-token sehingga nanti akan dapat dibedakan mana yang berupa number dan mana yang operator. Kata kunci : Android, Matematika Dasar, OCR, Tesseract, Tokenizer iv ABSTRACT The Improvment of smart phone technology with android system given many influence for society quickly. Today, in order to support the Android system many smart phone serve a lot of benefit for the user to given many value. One for example is applycation to solve mathematic basic. Nowdays, the problem solving for mathematic basic can using math basic applycation without doing input the data. But, user only do capturing with the data outomatically within OCR (Optical Character Recognition) technology. OCR technology in this research use Tesseract for citra digital engine process. And for text data process use Tokenizer method to extract the text into "token" and user can distinguish between number and operator. Keywords : Andoid, Mathematic Basic, OCR, Teseract, Tokenizer v LEMBAR PERSEMBAHAN Puji syukur kepada Allah SWT atas rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan Tugas Akhir ini. Penulis menyampaikan ucapan terima kasih yang sebesar-besarnya kepada : 1. Allah SWT yang selalu memberikan kesehatan dan petunjuk dalam pengerjaan tugas akhir. 2. Bapak Eko Budi Cahyono, S.Kom, M.T dan bapak Hariyady, S.Kom, M.T selaku pembimbing tugas akhir. 3. Bapak Dekan Fakultas Teknik Universitas Muhammadiyah Malang. 4. Kedua orang tua saya bapak Sumarwan dan ibu Djasmiatun serta kakak saya Mufit Triyawati dan Suwarno dan adik saya Abdullah Mumtaz Al Muqtadabih. 5. Teman-teman dari jurusan teknik informatika. 6. Teman-teman dari kos. 7. Teman-teman dari kontrakan tirto utomo Gg 12. vi KATA PENGANTAR Puji syukur kehadirat Allah Subhanahu wata‟ala yang selalu memberikan kekuatan dan petunjuk serta melimpahkan segala rahmat dan hidayah-Nya, sehingga penulis dapat menyelesaikan Tugas Akhir yang berjudul “SISTEM PENYELESAIAN MATEMATIKA DASAR DENGAN OCR BERBASIS ANDROID” dengan baik, sebagai suatu persyaratan dalam menyelesaikan studi dan memperoleh gelar Sarjana Strata Satu (S1) di Jurusan Teknik Informatika Fakultas Teknik Universitas Muhammadiyah Malang. Penulis menyadari bahwa menyusun Tugas Akhir ini tidak akan berjalan dengan baik tanpa adanya bimbingan, bantuan, dukungan dan kerja sama dari berbagai pihak. Penulis juga menyadari bahwa karya tulis ini masih jauh dari kesempurnaan. Oleh karena itu, saran dan kritik yang membangun sangat penulis harapkan untuk kesempurnaan karya tulis ini. Penulis berharap semoga karya tulis ini bermanfaat. Amin Yaa Robbal „Alaamiin. Malang, 4 Januari 2016 Penulis vii DAFTAR ISI LEMBAR PERSETUJUAN i LEMBAR PENGESAHAN ii LEMBAR PERNYATAAN iii ABSTRAK iv ABSTRACT v LEMBAR PERSEMBAHAN vi KATA PENGANTAR vii DAFTAR ISI viii DAFTAR GAMBAR xi DAFTAR TABEL xiii BAB I PENDAHULUAN 1 1. 1 Latar Belakang 1 1. 2 Rumusan Masalah 2 1. 3 Tujuan Penelitian 3 1. 4 Batasan Masalah 3 1. 5 Metode Penyelesaian 4 1. 6 Sistematika Penulisan 6 BAB II LANDASAN TEORI 2.1 8 Matematika Dasar 8 2.1.1 Penjumlahan 8 2.1.2 Pengurangan 8 2.1.3 Perkalian 8 2.1.4 Pembagian 9 2.2 Android 9 2.3 Fitur dan Arsitektur Android 10 2.4 Dasar Pembangunan Aplikasi 12 2.4.1 Komponen Dasar 12 2.4.2 Daur Hidup Activity 13 2.4.3 Daur Hidup Service 14 viii 2.5 Android SDK (Software Development Kit) 15 2.6 ADT Plugin for Eclipse 15 2.7 Android NDK 16 2.8 Optical Character Recognition (OCR) 16 2.8.1 Handwriting Recognition 17 2.8.2 Digit Recognition 17 Image Preprocessing and Enhancement 17 2.9.1 Binerisasi 18 2.9.2 Penipisan 18 2.10 Pattern Recognition 20 2.11 Tesseract OCR 21 2.11.1 Definisi Tesseract 21 2.11.2 Arsitektur Tesseract 21 2.11.3 Klasifikasi Bentuk 24 2.9 BAB III ANALISA DAN PERANCANGAN SISTEM 3.1 3.2 Analisa Sistem 26 3.1.1 Deskripsi Umum Sistem 26 3.1.2 Arsitektur Sistem 27 3.1.3 Analisa Kebutuhan Sistem 27 3.1.4 Use Case Diagram 30 3.1.5 Use Case Skenario 30 Perancangan Sistem 34 3.2.1 Activity Diagram 34 3.2.2 Sequence Diagram 36 3.2.3 Class Diagram 39 3.2.4 Desain Interface 39 BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM 4.1 26 Implementasi Sistem 4.1.1 Instalasi Tesseract OCR 42 42 42 ix 4.2 4.1.2 Implementasi Data 45 4.1.3 Implementasi Tokenizer 46 4.1.4 Implementasi Antarmuka 49 4.1.4.1 Antarmuka Splash Screen 49 4.1.4.2 Antarmuka Capture Soal 49 4.1.4.3 Antarmuka Hasil 50 Pengujian Sistem 4.2.1 Kasus dan Hasil Pengujian 51 52 4.2.1.1 Pengujian Jenis Font Soal 52 4.2.1.2 Pengujian Size Font Soal 52 4.2.1.3 Pengujian Background Soal 53 4.2.1.4 Pengujian Operator Soal 54 4.2.1.5 Pengujian Struktur Soal 56 4.2.3 Kesimpulan Hasil Pengujian BAB V KESIMPULAN DAN SARAN 56 57 5.1 Kesimpulan 57 5.2 Saran 58 DAFTAR PUSTAKA 59 x DAFTAR GAMBAR Gambar 1.1 Blok Diagram Pembuatan Sistem Penyelesaian Matematika Dasar Dengan OCR Berbasis Android Gambar 1.2 4 Flowchart Sistem Penyelesaian Matematika Dasar Dengan OCR Berbasis Android 4 Gambar 2.1 Arsitektur Android 11 Gambar 2.2 Penipisan 19 Gambar 2.3 Matriks Penipisan Zhang-Suen 19 Gambar 3.1 Flowchart Sistem Penyelesaian Matematika Dasar Dengan OCR berbasis Android 26 Gambar 3.2 Blok Diagram Arsitektur Sistem 27 Gambar 3.3 Use Case Diagram Sistem Penyelesaian Matematika Dasar Dengan OCR Berbasis Android 30 Gambar 3.4 Activity Diagram Scanning 34 Gambar 3.5 Activity Diagram Perhitungan 35 Gambar 3.6 Sequence Diagram Scanning 36 Gambar 3.7 Sequence Diagram Scanning (Image Tidak Dapat Diproses) 37 Gambar 3.8 Sequence Diagram Perhitungan 38 Gambar 3.9 Sequence Diagram Perhitungan (Soal Tidak Dapat Diproses) Gambar 3.10 38 Class Diagram Sistem Penyelesaian Matematika Dasar Dengan OCR Berbasis Android 39 Gambar 3.11 Rancangan Antarmuka Splash Screen 40 Gambar 3.12 Rancangan Antarmuka Capture Soal 40 Gambar 3.13 Rancangan Antarmuka Hasil 41 Gambar 4.1 Edit System Variables Path 43 Gambar 4.2 Build NDK r9 44 Gambar 4.3 Menjadikan tess-two sebagai library 44 Gambar 4.4 Menggunakan tess-two sebagai library 45 xi Gambar 4.5 Antarmuka Splash Screen 49 Gambar 4.6 Antarmuka Capture Soal 50 Gambar 4.7 Antarmuka Hasil 50 xii DAFTAR TABEL Tabel 2.1 Versi Android 9 Tabel 3.1 Perangkat Lunak 29 Tabel 3.2 Identifikasi UC 1 (Scanning) 30 Tabel 3.3 Skenario Utama UC 1 (Scanning) 31 Tabel 3.4 Identifikasi UC 2 (Perhitungan) 32 Tabel 3.5 Skenario Utama UC 2 (Perhitungan) 33 Tabel 4.1 Rencana Pengujian 51 Tabel 4.2 Pengujian Jenis Font Soal 52 Tabel 4.3 Pengujian Size Font Soal 53 Tabel 4.4 Pengujian Background Soal 53 Tabel 4.5 Pengujian Operator Soal 54 Tabel 4.6 Pengujian Struktur Soal 56 xiii DAFTAR PUSTAKA [1] Bird, John, “Basic Engineering Mathematics,” Newnes, 2005 [2] Smith, Ray, “Tesseract OCR Engine,” Google Inc., 2007 [3] Smith, Ray, “An Overview of Tesseract OCR Engine,” Google Inc., 2009 [4] Enastha, Risky, Ardha, “Aplikasi Optical Character Recognition Dengan Automatic Translation Berbasis Android,” UMM, Malang, 2012 [5] Hermawan, Stephanus, “Mudah Membuat Aplikasi Android,” Andi, Jogjakarta, 2011 [6] Yulizar, Steve, “Optimasi Jaringan Saraf Tiruan Pada Optical Character Recognition dengan Menggunakan Image Preprocessing dan Algoritma Genetik,” Diakses pada Mei 2015 dari http://digilib.itb.ac.id/gdl.php?mod=browse&op=read&id=jbptitbpp-gdlsteveyuliz-34126&q=OCR [7] “Simple OCR – Optical Character Recognition,” Diakses pada Mei 2015 dari http://www.simpleocr.com [8] “Tesseract OCR Engine,” Diakses pada Mei 2015 dari https://code.google.com/p/tesseract-ocr [9] “Android Native Development Kit (NDK),” Diakses Pada Juni 2015 dari https://www3.ntu.edu.sg/home/ehchua/programming/android/Android_NDK. html [10] Hidayat, Riyan, “Pemanfaatan Kamera Pada Ponsel Android Untuk Menerjemahkan Teks Bahasa Jerman ke Dalam Bahasa Indonesia,” Diakses pada Juni 2015 dari http://elib.unikom.ac.id/gdl.php?mod=browse&op=read&id=jbptunikomppgdl-riyanhiday-35686&q=android%20OCR xiv