PENERAPAN ALGORITMA BILINEAR PADA PENDETEKSIAN IMAGE PROSES OPTICAL CHARACTER RECOGNITION (OCR)
KARAKTER ARAB
SKRIPSI
MUHAMMAD FAHRI SUJARWADI 121402032
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2019
APPLICATION OF BILINEAR ALGORITHM IN DETECTING IMAGE PROCESS OPTICAL CHARACTER RECOGNITION (OCR)
ARAB CHARACTERS
SKRIPSI
MUHAMMAD FAHRI SUJARWADI 121402032
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2019
PENERAPAN ALGORITMA BILINEAR PADA PENDETEKSIAN IMAGE PROSES OPTICAL CHARACTER RECOGNITION (OCR)
KARAKTER ARAB
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
MUHAMMAD FAHRI SUJARWADI 121402032
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2019
PERNYATAAN
PENERAPAN ALGORITMA BILINEAR PADA PENDETEKSIAN IMAGE PROSES OPTICAL CHARACTER RECOGNITION (OCR) KARAKTER ARAB
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 17 Desember 2019
MUHAMMAD FAHRI SUJARWADI 121402032
iv
UCAPAN TERIMA KASIH
Segala puji serta syukur penulis panjatkan kehadirat Allah SWT atas segala berkat rahmat dan karunia-Nya yang sungguh berlimpah, sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi S1 Teknologi Informasi Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Penulis menyadari bahwa dalam penyelesaian skripsi ini tidak terlepas dari kendala dan kesulitan. Namun berkat bantuan berbagai pihak skripsi ini dapat terselesaikan. Untuk itu, dalam kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada:
1. Bapak Prof. Runtung Sitepu, SH., M.Hum selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Drs. Opim Salim Sitompul, M.Sc selaku Dekan Fasilkom-TI USU.
3. Bapak Romi Fadillah Rahmat B.Comp.Sc., M.Sc selaku Ketua Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.
4. Sarah Purnamawati, ST., MSc selaku Sekretaris Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.
5. Ivan Jaya, S.Si., M.Kom selaku Dosen Pembimbing I yang telah banyak meluangkan waktu dan pikiran untuk memberikan motivasi, kritik, dan saran kepada penulis.
6. Marischa Elveny, S.TI, M.Kom selaku Dosen Pembimbing II yang telah banyak meluangkan waktu dan pikiran untuk memberikan motivasi, kritik, dan saran kepada penulis.
7. Dedy Arisandi, ST., M.Kom selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
8. Sarah Purnamawati, ST., MSc selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
9. Seluruh Dosen dan Staff pegawai di Program Studi S1 Teknologi Informasi.
10. Kedua orang tua yang telah mendukung dan meridhoi penulis baik secara moril maupun materil yang sangat berarti.
11. Teman – teman seperjuangan penulis selama mengerjakan Tugas Akhir ini yang telah memberikan dukungan dan bantuan kepada penulis.
Akhir kata, penulis ucapkan terima kasih kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan dalam menyelesaikan skripsi ini yang tidak dapat penulis sebutkan satu persatu. Semoga Allah SWT membalas kebaikan kalian semua.
Medan,17 Desember 2019 Penulis
Muhammad Fahri Sujarwadi 121402032
vi
ABSTRAK
Perkembangan teknologi membuat informasi menjadi lebih mudah untuk diakses, apalagi pada era mobile sekarang ini, banyak informasi telah di mobilisasi sehingga menjadi lebih peraktis dan efisien. Contohnya saja buku, yang dahulu berbentuk fisik sekarang sudah dibuatkan e-booknya agar dapat dibaca dimanapun dan tahan lama. Banyak buku-buku lama yang sekarang diubah menjadi e-book dengan menggunakan software OCR. Sudah banyak software OCR (Optical Character Recognition) pada perangkat berbasis mobile yang dapat membaca berbagai macam karakter non-latin seperti karakter cina, jepang ataupun arab yang berkerja dengan baik, contoh software tersebut seperti ABBYY’s, Tesseract, Asprise, dsb.
Tetapi yang menyediakan layanan open source dan gratis tidaklah banyak. Tesseract adalah salah satu software engine OCR yang memberikan layanan open source dan gratis. Studi empiris telah dilakukan dan menghasilkan kesimpulan bahwa engine tesseract memiliki kekurangan akurasi pendeteksian khususnya pada karakter arab. Oleh sebab itu algoritma image preprocessing dibutuhkan untuk memperbaiki tingkat akurasi pendeteksian tersebut sebelum di masuk ke engine Tesseract. Pada penelitian ini perbaikan dilakukan dengan menambahkan metode image scaling dengan algoritma Bilinear. Pengujian dilakukan dengan metode pendekatan kotak hitam (black box) untuk setiap fungsionalitas sistem. Setelah pengujian berhasil dilaksanakan, maka dapat disimpulkan bahwa modifikasi dengan penambahan algoritma image scaling, yaitu Bilinear mampu memperbaiki hasil OCR pada karakter arab yang didasari pada hasil pengujian karakter arab dengan jarak foto yang berbeda dengan peningkatan akurasi sebesar 16%.
Kata Kunci: OCR, Tesseract, Karakter Arab, Image Scaling, Algoritma Bilinear
APPLICATION OF BILINEAR ALGORITHM IN DETECTING IMAGE PROCESS OPTICAL CHARACTER RECOGNITION (OCR) ARAB CHARACTERS
ABSTRACT
Technological developments make information easier to access, especially in today's mobile era, much information has been mobilized so that it becomes more practical and efficient. For example, books, which were in physical form, have now been made e-books so they can be read anywhere and last longer. Many old books are now converted into e-books using OCR software. There have been many OCR (Optical Character Recognition) software on mobile- based devices that can read various non-latin characters such as Chinese, Japanese or Arabic characters that work well, examples of such software are ABBYY's, Tesseract, Asprise, etc.
But there aren't many who provide open source and free services. Tesseract is an OCR software engine that provides free and open source services. Empirical studies have been carried out and resulted in the conclusion that the engine tesseract lacked detection accuracy especially in Arabic characters. Therefore the image preprocessing algorithm is needed to improve the detection accuracy before entering the Tesseract engine. In this study improvements were made by adding an image scaling method with the Bilinear algorithm.
The Test was carried out with the black box approach method for each system functionality.
After testing successfully carried out, it can be concluded that the modification with the addition of the image scaling algorithm, namely Bilinear was able to improve OCR results on Arabic characters based on the results of testing Arabic characters with different photo distances with an accuracy increase of 16%.
Keywords: OCR, Tesseract, Arabic Characters, Image Scaling, Bilinear Algorithm
viii
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Ucapan Terima Kasih iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel xi
Daftar Gambar xii
BAB 1 PENDAHULUAN
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.6.1 Metode Pengumpulan Data 3
1.6.2 Perancangan Sistem 3
1.7 Sistematika Penulisan 4
BAB 2 LANDASAN TEORI
2.1 Tulisan Bahasa Arab 5
2.2 Pengolahan Citra 5
2.2.1 Jenis Citra 6
1) Citra Biner 6
2) Citra Greyscale 7
3) Citra Warna 7
2.4 Algoritma Bilinear 9
2.5 Luminosity 11
2.6 Android 11
1) Applications 11
2) Application Framework 12
3) Android Libraries 12
4) Android Runtime 13
5) Linux Kernel 13
2.7 Android Studio 13
2.8 UML (Unifed Modeling Languge) 14
2.9 Penelitian Terdahulu 14
BAB 3 ANALISIS DAN PERANCANGAN
3.1 Permulaan (Inception) 18
3.1.1 Business Modeling Workflow 18
3.1.2 Analisis Masalah 18
3.1.3 Analisis Pemecahan Masalah 19
3.1.4 Analisis dan Kebutuhan Sistem 19
a. Kebutuhan Perangkat Lunak 19
b. Kebutuhan Perangkat Keras 20
3.1.5 Analisis dan Design Workflow 20
a. Luminosity 20
b. Algoritma Bilinear 21
3.2 Perluasan / Perencanaan (Elaboration) 22
3.2.1 Kebutuhan dan Modeling Bisnis 22
3.2.2 Pembangunan Sistem 22
3.2.3 Perancangan Sistem 22
a. Arsitektur Sistem 22
b. Arsitektur Aplikasi 23
c. Desain Pemodelan UML 24
1). Use Case Diagram 24
2). Activity Diagram 27
3). Perancangan Interface 29
x
4.1 Konstruksi (Construction) 33
4.1.1 Implementasi Workflow 33
a. Perangkat Keras 33
b. Perangkat Lunak 34
4.1.2 Implementasi Algoritma Luminosity 34
4.1.3 Implementasi Algoritma Bilinear 35
4.2 Implementasi Antarmuka 36
4.3 Pengujian Sistem (Test Workflow) 40
4.3.1 Pengujian Antarmuka 40
a. Uji Antarmuka Menu Utama 40
b. Uji Antarmuka Recognition Tanpa Pre-Processing 40 c. Uji Antarmuka Recognition Dengan Pre-Processing 41
4.3.2 Pengujian Sistem 42
4.4 Transisi 48
BAB 5 PENUTUP
5.1 Kesimpulan 49
5.2 Saran 49
DAFTAR PUSTAKA 50
DAFTAR TABEL
Halaman
Tabel 2.1 Penelitian Terdahulu 16
Tabel 3.1 Use Case OCR tanpa pre-proses 24
Tabel 3.2 Use Case OCR dengan pre-proses 25
Tabel 3.3 Use Case Mengambil Foto 25
Tabel 3.4 Use Case Pre-proses 26
Tabel 3.5 Use Case Proses OCR 27
Tabel 4.1 Uji Tampilan Menu Utama 40
Tabel 4.2 Uji Tampilan Recognition Tanpa Pre-processing 41 Tabel 4.3 Uji Tampilan Recognition Dengan Pre-processing 41
Tabel 4.4 Pengujian Gambar Karakter Arab Acak 44
Tabel 4.4 Pengujian Gambar Karakter Arab dengan Jarak Pengambilan 10cm 45 Tabel 4.5 Pengujian Gambar Karakter Arab dengan Jarak Pengambilan 20cm 46 Tabel 4.6 Pengujian Gambar Karakter Arab dengan Jarak Pengambilan 30cm 46 Tabel 4.7 Hasil Akurasi Rata-Rata Pengujian Karakter Arab 47
xii
DAFTAR GAMBAR
Halaman
Gambar 2.1 Koordinat citra digital 6
Gambar 2.2 Citra digital dalam Matrik 6
Gambar 2.3 Citra Biner 7
Gambar 2.4 Citra Grayscale 7
Gambar 2.5 Citra Warna 8
Gambar 2.6 Arsitektur Tesseract Engine 8
Gambar 2.7 Tekstur terkecil bilinear 9
Gambar 2.8 Pembesaran skala dengan bilinear 10
Gambar 2.9 Perubahan Citra Warna ke Luminosity 11
Gambar 2.10 Arsitektur Android 12
Gambar 3.1 Flowchart Algoritma Luminosity 20
Gambar 3.2 Flowchart Algoritma Bilinear 21
Gambar 3.3 Arsitektur Umum Sistem 23
Gambar 3.4 Arsitektur Aplikasi 23
Gambar 3.5 Use Case Diagram Aplikasi 24
Gambar 3.6 Activity Diagram proses OCR dengan Pre-proses 28 Gambar 3.7 Activity Diagram proses OCR tanpa Pre-proses 29
Gambar 3.8 Perancangan Interface Opening Aplikasi 30
Gambar 3.9 Perancangan Interface Menu Utama Aplikasi 30 Gambar 3.10 Perancangan Interface Pemrosesan OCR tanpa Pre-proses 31 Gambar 3.11 Perancangan Interface Pemrosesan OCR dengan Pre-proses 32 Gambar 4.1 Perbandingan Gambar Sebelum dan Sesudah diproses
algoritma luminosity 34
Gambar 4.2 Perbandingan Gambar Sebelum dan Sesudah diproses
algoritma bilinear 35
Gambar 4.3 Tampilan Antarmuka Menu Utama 36
Gambar 4.4 Tampilan Antarmuka Menu Recognition Tanpa Pre-proses 36 Gambar 4.5 Tampilan Antarmuka Menu Recognition Tanpa Pre-proses
Gambar 4.6 Tampilan Antarmuka Hasil Recognition Tanpa Pre-proses 37 Gambar 4.7 Tampilan Antarmuka Menu Recognition Dengan Pre-proses 38 Gambar 4.8 Tampilan Antarmuka Menu Recognition Dengan Pre-proses
setelah Pilih Image 38
Gambar 4.9 Tampilan Antarmuka Hasil Pre-proses untuk Memperbesar Image 39 Gambar 4.10 Tampilan Antarmuka Hasil Recognition Dengan Pre-proses 39
Gambar 4.11 Foto Karakter Uji 43
BAB 1
PENDAHULUAN
1.1. Latar Belakang
Perangkat mobile pada era saat ini sangat berkembang karena lebih cepat, mudah, dan praktis dibandingkan dengan laptop dan komputer. Banyak aplikasi dekstop diubah menjadi bentuk mobile. Perangkat mobile berfungsi sebagai alat penyebaran informasi memiliki banyak fitur-fitur pendukung salah satunya yaitu fitur bahasa.
Bahasa sangat penting dalam penyebaran informasi. Di dunia ini ada banyak jenis bahasa dan diantaranya tidak menggunakan karakter Latin salah satunya adalah karakter bahasa Arab. Banyak buku-buku khusus umat Islam yang menggunakan karakter Arab seperti Al-Qur’an, Hadits, dan buku-buku keagamaan lainnya. Namun untuk mempermudah memahami karakter bahasa Arab dibutuhkan aplikasi yang bisa mengubah juga menerjemahkan karakter Arab menjadi karakter Latin.
Munculnya masalah saat pengetikan untuk mengubah teks non digital yang ada di buku menjadi teks digital karena bahasa Arab relatif rumit maka dibutuhkanlah teknik Optical Character Recognition (OCR). Software OCR untuk pembacaan karakter Arab pada perangkat mobile ada banyak dan masing-masing bekerja dengan baik seperti Tesseract, Asprise, ABBYY’s, dsb.
Terdapat penelitian terkait dengan judul Algoritma Image Processing Untuk Optimalisasi Optical Character Recognition (OCR) Dengan Tesseract Engine Pada Karakter Arab (Hartawan, 2016). Pada penelitian tersebut algoritma digunakan yaitu Nearest Neighbor Interpolation yang merupakan metode penskalaan pada Image Processing untuk memodifikasi hasil citra Tesseract Engine menghasilkan peningkatan akurasi sebesar 6,67% dari 33,81%.
Penelitian lain untuk meningkatkan efesiensi kinerja Tesseract Engine telah dilakukan. Pada penelitian ini metode Luminosity ditambahkan dan meningkatkan akurasi menjadi 79,2% pada karakter Hindi (Badla, 2014).
Telah banyak hasil studi yang dilakukan untuk pendeteksian karakter Arab dengan menggunakan Tesseract Engine pada perangkat mobile android dan masih
memiliki kekurangan pada akurasi. Maka dibutuhkan optimalisasi Tesseract Engine untuk mendapatkan hasil yang lebih baik.
Image yang memiliki DPI (Dot Per Inch) minimal 300 DPI akan dibaca dengan baik pada Tesseract Engine, sehingga jika ukuran citra dirubah maka akan berpengaruh (Hartawan, 2016).
Untuk merubah ukuran citra maka digunakanlah algoritma Image Scaling, Salah satunya adalah algoritma Bilinear. Algoritma ini memiliki sifat anti-aliasing (efek patah-patah) dan menghasilkan sisi yang lebih halus (Hartanto, 2015).
Berdasarkan penjelasan di atas, dibuatlah penelitian untuk menghasilkan solusi dari masalah yang ada dengan judul “PENERAPAN ALGORITMA BILINEAR PADA PENDETEKSIAN IMAGE PROSES OPTICAL CHARACTER RECOGNITION (OCR) KARAKTER ARAB”.
1.2. Rumusan Masalah
Berdasarkan dari latar belakang sebelumnya maka dapat dirumuskan masalah yaitu, Seberapa besar persentase peningkatan pengenalan karakter Arab pada hasil gambar OCR menggunakan Tesseract Engine yang telah dimodifikasi dengan Algoritma Bilinear.
1.3. Batasan Masalah
Berdasarkan permasalahan diatas, maka penelitian yang akan dikembangkan memiliki batasan atau ruang lingkup yaitu:
1. Aplikasi dijalankan pada perangkat mobile smartphone Android dengan minimum versi Ice Cream Sandwich (API level 15), dan dengan kamera setidaknya berukuran 2 MP.
2. Gambar teks karakter Arab akan di ambil menggunakan kamera pada perangkat mobile.
3. Karakter Arab yang di proses tidak memiliki harakat (baris) dengan bentuk font Arial.
3
1.4. Tujuan Penelitian
Tujuan penelitian ini adalah untuk menerapkan algoritma Image Processing dengan metode penskalaan yang digunakan pada Tesseract Engine.
1.5. Manfaat Penelitian
Manfaat yang diperoleh dari penelitian ini adalah peningkatan hasil pendeteksian karakter Arab pada Image OCR dengan memperbandingkan recognition Image asli dan recognition Image yang dimodifikasi dengan algoritma Bilinear.
1.6. Metodologi Penelitian
Metode yang digunakan pada penelitian ini sebagai berikut:
1.6.1 Metode Pengumpulan Data
Metode yang dilakukan dengan studi literatur yaitu menelusuri sumber-sumber tulisan dari penelitian sebelumnya berupa karya ilmiah seperti buku-buku, skripsi, maupun jurnal atau referensi lain dari artikel di internet yang berhubungan dengan pembahasan.
1.6.2 Perancangan Sistem
Dari analisis yang dilakukan pada masalah-masalah sebelumnya maka dihasilkan sebuah rancangan arsitektur sistem.
Pada arsitektur sistem ini dilakukan proses awal yaitu dengan pengambilan gambar yang dilakukan oleh user dengan menggunakan kamera pada perangkat mobile. Hasil gambar nantinya akan diolah dengan menggunakan algoritma Bilinear Interpolation yang mana gambar tersebut akan diperbesar dan diperhalus lalu dengan menggunakan Algoritma Luminosity gambar akan diubah menjadi gambar grayscale, lalu hasilnya yang akan di olah menggunakan Tesseract Engine menghasilkan teks karakter arab.
1.7. Sistematika Penulisan
Sistematika penulisan dari penelitian ini terdiri atas lima bab, yaitu :
BAB 1 : Pendahuluan
Bab ini berisikan latar belakang, rumusan dan batasan masalah, termasuk juga tujuan, manfaat dan metodologi penelitian, serta sistematika penulisan.
BAB 2 : Landasan Teori
Bab ini berisikan teori dasar yang digunakan untuk memahami permasalahan yang nantinya pada penelitian ini akan didapatkan hasil penyelesaian masalah tersebut. Bab ini juga menjelaskan tentang metode yang digunakan pada penelitian.
BAB 3 : Analisis dan Perancangan
Bab ini berisikan analisis terhadap permasalahan serta perancangan sistem yang akan dibangun dengan menerapkan metode ke dalam sistem.
BAB 4 : Implementasi dan Pengujian
Bab ini berisikan pembahasan tentang implementasi metode dari analisis yang disusun pada Bab 3 dan selanjutnya dilakukan perancangan dan pengujian sistem untuk memastikan hasil yang didapatkan sesuai dengan yang diharapkan.
BAB 5 : Kesimpulan dan Saran
Bab ini berisikan kesimpulan dari keseluruhan uraian pada bab-bab sebelumnya dan saran-saran yang diberikan untuk dapat dikembangkan pada penelitian selanjutnya.
BAB 2
LANDASAN TEORI
Bab ini membahas tentang teori pendukung beserta penelitian terdahulu yang berhubungan dengan penerapan algoritma Bilinear dalam meningkatkan akurasi pembacaan OCR dengan mengubah ukuran (resize image) menggunakan metode Image Scaling sebelum memasukkannya ke Engine Tesseract.
2.1. Tulisan Bahasa Arab
Teks dalam bahasa Arab terdiri dari 28 huruf yang 3 berupa konsonan semi-vokal yaitu huruf “Alif”, “Waw” dan “Ya”. Dan selebihnya merupakan konsonan murni.
Rasm adalah titik yang terdapat pada huruf Arab dan merupakan bagian integral suatu huruf Arab. Titik ini akan membedakan antara huruf dan pengucapannya. Contohnya huruf ب (ba), ت (ta), dan ث (tsa) yang memiliki bentuk dasar yang sama.
2.2. Pengolahan Citra
Secara harfiah, citra adalah gambar pada bidang dua dimensi. Sedangkan menurut matematis, citra adalah fungsi menerus dari sebuah intensitas cahaya pada bidang dua dimensi. Sumber cahaya yang menerangi objek, cahaya tersebut dipantulkan kembali oleh objek sebagai berkas cahaya.
Suatu citra dapat diibaratkan sebagai f(x,y) yang merupakan fungsi memiliki M baris dan N kolom, dengan amplitudo f di titik koordinat (x,y) yang merupakan koordinat spasial dan dinamakan tingkat keabuan atau intensitas warna dari citra pada titik tersebut. Apabila nilai (x,y) dan nilai amplitudo f secara keseluruhan terbatas dan bernilai diskrit jadi bisa disebutkan bahwa citra tersebut adalah citra digital (Hartawan, 2016). Koordinat citra digital digambarkan sebagai berikut.
Koordinat asal
0 1 2 3
0 1 2 3
N - 1
y
- 1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
f(x,y)
M
x
Sebuah pixelGambar 2.1 Koordinat citra digital (Putra, 2010) Citra digital dalam bentuk matrik pada gambar berikut:
( ) ( ) ( )
( ) [ ( )
( )
( ) ] ( ) ( ) ( )
Gambar 2.2 Citra digital dalam Matrik (Putra, 2010)
Nilai irisan antara kolom dan baris (pada posisi x,y) disebut pixel. Pada citra digital istilah pixel sering digunakan.
2.2.1. Jenis citra
Pada buku karangan Darma Putra yang berjudul Pengolahan Citra Digital, banyak menjelaskan tentang jenis-jenis citra digital.
Nilai pada pixel memiliki rentang tertentu, dari nilai minimum sampai maksimum.
Jangkauan yang digunakannya juga berbeda-beda tergantung jenis warnanya. Namun jangkauannya biasa adalah 0-255 bit (Putra, 2010). Citra dengan penggambaran seperti ini merupakan ciri citra integer. Berdasarkan nilai pixel jenis citra dibagi menjadi:
1) Citra Biner juga disebut citra monokrom atau citra B & W (black and white) karena citra ini hanya terdapat dua kemungkinan nilai pixel yaitu putih dan hitam (Putra, 2010). Hanya dibutuhkan 1 bit mewakili nilai untuk setiap pixel dari citra biner. Contoh gambar Citra Biner sebagai berikut:
7
Gambar 2.3 Citra Biner
2) Citra Greyscale memiliki pixel dengan nilai satu, yaitu nilai warna red = green = blue. Tingkat intensitas gambar diwakilkan dengan nilai tersebut (Putra, 2010).
Warna tersebut adalah putih, hitam, dan abu-abu. Tingkat keabuan memiliki rentang dari hitam sampai mendekati putih. Kedalaman warna Citra Greyscale adalah 8 bit atau merupakan 256 kombinasi warna keabuan. Contoh gambar Citra Greyscale sebagai berikut:
Gambar 2.4 Citra Grayscale
3) Citra Warna berdasarkan kedalaman warna dibagi menjadi 5, yaitu:
Citra dengan 8-bit hanya diwakili dengan 8 bit dengan warna maksimum adalah 28 / 256 warna (Putra, 2010).
Citra dengan 15/16-bit (High Color) memiliki warna maksimum adalah 216 / 65,536 warna (Putra, 2010).
Citra dengan 18-bit memiliki warna maksimum adalah 218 / 262,144 warna (Putra, 2010).
24-bit (True Color) memiliki warna maksimum 224 / 16,777,216 warna (Putra, 2010).
30/36/48-bit (Deep Color) terdiri dari satu milyar lebih warna (Putra, 2010).
Contoh gambar Citra Warna sebagai berikut:
Image Grayscale
Adaptive Thresholding
Connected Component Analysis
Find Line and Words
Fixed Pitch Detection
Adaptive Classifier
Text Non Fixed Pitch Gambar 2.5 Citra Warna
2.3. Tesseract Engine
Pada Tesseract engine terdapat proses-proses yang seperti gambar arsitektur dibawah ini.
Gambar 2.6 Arsitektur Tesseract Engine (Hartawan, 2016)
Arsitektur pada Tesseract Engine yang pertama tahap Adaptive Thresholding menghasilkan gambar biner (Shafait et al, 2005). Lalu tahap Connected Component Analysis akan melakukan pencarian sepanjang citra dan mengidentifikasikan pixel, proses ini terus dilakukan sampai semua pixel ditandai sebagai karakter potensial
9
Pada tahap Find Line and Words terdapat algoritma line finding, untuk mengenali kalimat yang miring menggunakan fungsi blob filtering dan mencari baris pada teks menggunakan fungsi line construction. Setelah baris pada teks ditentukan, garis pangkal (baseline) dilakukan pencocokan menggunakan quadratic spline (Hartawan, 2016). Metode ini akan menghasilkan titik (dot) pada sebuah kumpulan data yang telah dikenal sebelumnya (Rindiani, 2015).
Pada tahap Fixed Pitch Detection dilakukan deteksi karakter yang memiliki lebar tetap. Bila berhasil di deteksi maka selanjutnya Tesseract akan melakukan pemotongan (chopping) karakter sehingga menjadi karakter akan menjadi sepotong- sepotong (Rindiani, 2015), jika tidak maka karakter masuk ke Tahap Non Fixed Pitch Detection untuk mengukur batasan kesenjangan atau jarak antara base line dengan mean line (garis tengah). Ruang citra yang mendekati nilai threshold akan dikelompokkan dengan menggunakan metode fuzzy sehingga akan ditentukan sebagai dikenali atau tidak ini terjadi pada tahap Adaptive Classifier (Rindiani, 2015).
Terakhir pencocokan karakter denagn dictionary yang menghasilkan teks.
2.4. Algoritma Bilinear
Pada algoritma Bilinear skala terkecil berdasarkan 4 (2x2) pixel yang saling berdekatan (bertetangga) membentuk persegi (Hartanto, 2015). Di bawah ini contoh gambar 4 pixel yang menyusun sebuah gambar.
Gambar 2.7 Tekstur terkecil bilinear (tech-algorithm, 2009)
Pixel A, B, C dan D ada banyak dan menyusun keseluruhan sebuah gambar, semakin banyak pixelnya maka semakin tajam gambar tersebut.
Dalam proses pembesar skala gambar, setiap pixel 2x2 akan diberi ruang putih yang nantinya akan ditentukan warnanya. Hal ini akan terlihat seperti pada gambar 2.8
Gambar 2.8 Pembesaran skala dengan bilinear (tech-algorithm, 2009)
Untuk menentukan warna pada ruang putih i, Y dan j digunakanlah Linear Interpolation, untuk mengetahui hubungan A, i dan B menghasilkan persamaan berikut:
( ) ( )...1
Untuk mengetahui hubungan C, j dan D menghasilkan persamaan berikut:
( )...2
Dua persamaan Linear diatas akan disatukan menjadi persamaan Bilinear seperti berikut:
( )....3
Memasukkan persamaan 1 dan 2 ke persamaan 3, maka menjadi
( ) ( ( ) ( ( )))
Semua ruang putih akan dapat di interpolasikan dengan persamaan terakhir.
11
2.5. Luminosity
Luminosity merupakan algoritma yang mempertahankan intensitas warna untuk mengubah warna menjadi hitam dan putih. Algoritma ini juga merupakan kunci untuk mendefinisikan bentuk dan menunjukkan detail gambar. Di sini intensitas warna hijau dan biru lebih tinggi karena mata manusia lebih sensitif terhadap warna tersebut.
Berikut adalah contoh Luminosity:
Gambar 2.9 Perubahan Citra Warna ke Luminosity
2.6. Android
Android merupakan sebuah sistem operasi berbasis linux yang berjalan pada platform mobile yang terdiri dari sistem operasi, middleware dan aplikasi. Para pengembang dapat menciptakan aplikasi mereka sendiri karena platform pada android bersifat terbuka.
Secara garis besar Arsitektur Android dibagi menjadi lima bagian, seperti pada gambar berikut:
1) Applications
Aplikasi adalah lapisan terluar dari arsitektur android, yang mana berinteraksi langsung dengan pengguna. Contoh:
Home merupakan tampilan awal.
Contacts merupakan daftar nomor telepon.
Gambar 2.10 Arsitektur Android (Kuncoro, 2015)
2) Application Framework
Ini adalah lapisan yang berinteraksi dengan aplikasi langsung. Berguna untuk seorang developer untuk mengembangkan aplikasi. Biasanya berisi aplikasi manajemen. Contoh:
Activity Manager mengatur segala hal yang berhubungan dengan jalannya sebuah aplikasi.
Resource Manager mengatur segala hal yang berhubungan dengan resource, seperti setting warna dan layout User Interface.
3) Android Libraries
Lapisan ini menyangkut Library berbasis Java yang berguna untuk pengembangan Android. Contohnya Library untuk penggambaran grafik.
Beberapa Library Android yang ada pada Android Developer, yaitu:
android.app untuk akses fondasi dan model semua aplikasi android.
android.content untuk akses konten, mengirim dan mempublikasi pesan antar aplikasi.
android.view sebagai dasar pembangunan user interface pada aplikasi.
13
4) Android Runtime
Lapisan ini sama tingkatannya dengan Library. Di dalam Android Runtime terdapat Dalvik VM (Virtual Machine) yaitu sejenis Java Virtual Machine yang membuat aplikasi Android dapat berjalan dengan prosesnya sendiri.
5) Linux Kernel
Merupakan lapisan terdalam pada arsitektur Android dan tidak sepenuhnya berhubungan dengan user atau developer, tapi lapisan ini adalah inti dari seluruh sistem Android. Fungsinya sebagai berikut:
Pengaturan keamanan.
Manajemen power (Baterai).
Network Stack (protokol jaringan).
Abstraksi (representasi data dan program) pada hardware.
Driver yang mengontrol hardware.
2.7. Android Studio
Android Studio adalah Integrated Development Environment (IDE) yang merupakan Lingkungan Pengembangan Terpadu untuk mengembangkan aplikasi Android, berdasarkan IntelliJ IDEA. Selain merupakan alat pengembangan yang berdaya guna dan editor kode IntelliJ, untuk meningkatkan produktifitas Android Studio menawarkan banyak fitur, yaitu sebagai berikut:
1) Kerangka kerja dan alat penguji yang ekstensif.
2) Mendukung NDK dan C++.
3) Sistem fleksible yang berbasis Gradle.
4) Terdapat fitur Instant Run untuk mendukung pengerjaan tanpa membuat file APK baru.
5) Terdapat Tool Lint untuk meningkatkan kinerja, kegunaan, kompatibilitas versi, dan masalah lainnya.
6) Emulator yang kaya fitur dan cepat.
7) Integrasi GitHub dan Template kode untuk membuat fitur-fitur aplikasi yang sama dan dapat mengimpor kode contoh.
8) Lingkungan yang mendukung bagi semua platform Android.
9) Mendukung fitur untuk Google Cloud Platform, mempermudah pengintegrasian
2.8. UML (Unifed Modeling Language)
UML adalah kumpulan teknik dan struktur untuk pemodelan desain sistem pada program berorientasi objek serta aplikasinya. UML merupakan metodologi untuk mengembangkan sekelompok perangkat tool dan sistem OOP juga mendukung pengembangan sistem tersebut. Jenis-jenis diagram UML yaitu:
a. Use Case Diagram
Merupakan salah satu jenis diagram UML yang mendeskripsikan interaksi antara sistem dan aktor, Use Case Diagram juga dapat menggambarkan tipe interaksi sistem dengan sistemnya.
b. Activity Diagram
Merupakan salah satu jenis diagram UML yang dapat memodelkan proses- proses apa saja yang berjalan pada sistem.
2.9. Penelitian Terdahulu
Tinjauan pustaka menampilkan studi penelitian terdahulu yang dilakukan oleh para peneliti lain juga telah dipublikasikan secara luas berupa karya ilmiah. Banyak penelitian tentang OCR telah dilakukan dengan berbagai Engine. Berikut adalah penelitian terkait :
a. Algoritma Image Processing Untuk Optimalisasi Optical Character Recognition (OCR) Dengan Tesseract Engine Pada Character Arab
Oleh: Gilang Surahman Hartawan
Penelitian ini membahas penggunaan algoritma Image Processing yaitu Nearest Neighbor Interpolation untuk memodifikasi Tesseract Engine OCR untuk menghasilkan pengenalan yang lebih cepat untuk membaca karakter Arab.
Penelitian ini meningkatkan akurasi sebesar 6,67%.
b. Improving the Efficiency of Tesseract OCR Engines Oleh: Sahil Badla
Penelitian ini membahas penambahan metode Luminosity dan DPI Enhancement untuk meningkatkan kinerja pada Tesseract OCR Engines pada karakter Hindi.
Aplikasi yang dibuat mendapatkan tingkat akurasi 79,2% pada karakter Hindi.
c. Perancangan Aplikasi Pengolahan Citra Teks Arab dan Penerjemahannya ke
15
Oleh: Heriyanto, dkk
Penelitian ini membahas pembuatan aplikasi pada smartphone Android yang dapat mengambil gambar teks Arab dan menerjemahkannya menggunakan ABBYY's Engine secara online.
d. Aplikasi Android untuk Pengenalan Citra Karakter Jepang dengan Library Tesseract
Oleh: Hanny Rindiani, dkk
Penelitian ini membahas pembuatan sistem pengenalan karakter Jepang berbasis Android. Bertujuan untuk menerjemahkan kararter Jepang menjadi bahasa Indonesia menggunakan library dari Tesseract OCR (Optical Character Recognition). Pada penelitian ini terdapat 5 proses yaitu mengambil citra dengan kamera, mengambil citra dari galeri, melakukan pengubahan dari citra ke teks, mengedit teks jepang hasil OCR, dan menampilkan hasil terjemahan OCR dalam bahasa indonesia. Berdasarkan 50 sample karakter Jepang yang telah diuji nilai akurasi sebesar 96%.
e. Optical Character Recognition by Open Source OCR Tool Tesseract: A Case Study
Oleh: Patel, dkk
Penelitian ini membandingkan antara Tesseract dengan Transym yang dalam pengujiannya juga membandingkan hasil deteksi karakter gambar hitam putih dengan gambar berwarna. Hasil akurasi untuk Transym sebesar 47% dengan rata- rata waktu eksekusi 6.75 detik, Sedangkan hasil akurasi untuk Tesseract pada gambar berwarna sebesar 61% untuk gambar berwarna 70% dengan waktu eksekusi 0.82 detik.
f. Optical Character Recognition Pada Penerjemah Inggris Indonesia Mobile Berbasis Augmented Reality
Oleh: Ossy D.E.W, dkk
Penelitian ini melakukan mengembangan system penerjemah bahasa Indonesia ke bahasa Inggris dan sebaliknya bahasa Inggris ke bahasa Indonesia menggunakan OCR dan teknologi Augmented Reality. Sistem dibuat pada perangkat android dengan dua hasil output yaitu teks dan suara yang direalisasikan oleh Augmented Reality.
Tabel 1.1 Penelitian Terdahulu
No. Peneliti Tahun Data Layanan / Fitur Hasil
1 Gilang S 2016 Citra Meningkatkan kinerja pada Tesseract Tingkat
Hartawan Engine OCR pada karakter Arab akurasi
menggunakan algoritma Nearest bertambah Neighbor Interpolation 6,67%
2 Sahil Badla 2014 Citra Meningkatkan kinerja pada Tesseract Tingkat Engine OCR pada karakter Hindi akurasi menggunakan metode Luminosity dan mencapai
DPI Enhancement 79,2%
3 Heriyanto 2013 Citra Aplikasi smartphone Android untuk - mengambil gambar teks Arab dan
menerjemahkannya menggunakan ABBYY's Engine secara online.
4 Rindiani H dan 2015 Citra Aplikasi ini mendeteksi kararter Jepang Tingkat
Nisa K menjadi bahasa Indonesia menggunakan akurasi
library dari Tesseract OCR (Optical mencapai Character Recognition). 96%
5 Patel 2012 Citra Aplikasi ini membandingkan software Tingkat Tesseract dan Transym akurasi Tesseract mencapai 70% dan Transym
47%
6 Ossy D.E.W 2013 Citra Aplikasi ini menerjemah antara bahasa - Indonesia dengan bahasa Inggris dengan
hasil teks dan suara menggunakan Augmented Reality
17
Adapun perbedaan penelitian terdahulu dengan penelitian tugas akhir ini yaitu pada penggunaan algoritma yang digunakan. Penelitian ini menggunakan algoritma Bilinear sebagai algoritma Image Scaling untuk memperbesar gambar yang akan di baca oleh Tesseract OCR.
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Aplikasi yang dirancang pada tugas akhir ini menggunakan metode RUP (Rational Unifled Process) yang memiliki tahapan Permulaan (Inception) dan Perencanaan (Elaboration) yang akan dibahas di BAB 3 ini dan tahapan Konstruksi (Construction) dan Transisi (Transition) akan dilanjutkan di BAB 4.
3.1. Permulaan (Inception)
Tahap ini merupakan tahapan awal untuk mengidentifikasikan kebutuhan-kebutuhan rancangan sistem yang nantinya akan dibuat. Dalam tahapan ini akan dilakukan business modeling workflow dan requirement workflow guna untuk menganalisis, merumuskan dan perencanaan.
3.1.1 Business Modeling Workflow
Pada tahap ini akan dilakukan analisis terhadap ruang dari sistem yang akan dibangun yang mencakup analisis masalah, analisis pemecahan masalah, dan analisis kebutuhan sistem atau requirements. Analisis sistem ini bermaksud untuk mengidentifikasi dan mengevaluasi permasalahan-permasalahan dan kebutuhan-kebutuhan suatu sistem yang utuh dengan menguraikannya menjadi bagian-bagian komponen yang mana diharapkan dapat dilakukannya perbaikan dan pemecahan masalah. Tesseract berfungsi untuk mencocokan gambar dengan data text yang telah menjadi data training, sehingga memungkinkan untuk membuat data training yang baru.
3.1.2 Analisis Masalah
Engine Tesseract yang merupakan program untuk Optical Character Recognition (OCR) mendukung sekitar 107 karakter bahasa termasuk diantaranya karakter Arab.
Tesseract dapat berkerja di oprating system Windows, Linux, Mac OSX ataupun perangkat mobile seperti Android dan iOS.
Pada perangkat mobile khususnya Android memiliki model dan spesifikasi yang beragam, seperti contohnya fitur kamera. Tidak semua kamera pada android
19
menghasilkan gambar yang bagus tetapi sebaliknya jika sensor kamera memiliki spesifikasi yang rendah maka gambar yang dihasilkan pun kurang baik. Sehingga sensor kamera pada android sangat berpengaruh pada kualitas gambar yang dihasilkan.
Karena Tesseract bekerja dengan mencocokan gambar dengan data training maka dibutuhkan kualitas gambar baik jika tidak hasil pendeteksian karakter akan kurang akurat.
3.1.3 Analisis Pemecahan Masalah (Requirements Workflow)
Pada analisis masalah dijelaskan solusi atau pemecahan masalah yang ada dengan menambahkan metode perbaikan citra sebelum memasukannya ke dalam Tesseract engine.
Berdasarkan hasil dari pengamatan dapat disimpulkan bahwa dibutuhkan pengolahan atau perbaikan citra terlebih dahulu pada kualitas citra dengan Luminosity dan metode Resize.
3.1.4 Analisis dan Kebutuhan Sistem
Analisis dan kebutuhan sistem merupakan kebutuhan yang menunjang sistem baik dalam pembuatannya ataupun pada pelaksanaan kerjanya. Hal ini meliputi kebutuhan pada perangkat lunak, kebutuhan perangkat keras juga kebutuhan pada user atau pengguna.
a. Kebutuhan Perangkat Lunak
Berikut ini adalah beberapa komponen perangkat lunak yang akan digunakan dalam pembuatan dan pengembangan sistem adalah sebagai berikut:
1) Pengguna
a) Sistem Operasi Android dengan minimum API level 15 (Ice Cream Sandwich).
2) Perangkat Pendukung untuk Membangun Aplikasi a). Sistem Operasi Windows 8.1 Pro 64-bit.
b) JDK (Java Development Kit) versi 13+33, SDK (Software Development Kit) untuk Windows.
c). Android NDK (Native Development Kit).
no y < img_width
yes
Get RGB from pixel(x,y)
Luminosity=(0.299*R+0.587*G+0.144*B)
Set RGB from pixel(x,y)=luminosity
y++
e). StarUML Versi 5.0.2.1570 f). Balsamiq Mockups 3.5.17.
b. Kebutuhan Perangkat Keras
Adapun spesifikasi minimum untuk perangkat keras yang digunakan dalam pembuatan dan pengembangan sistem adalah sebagai berikut:
1) Minimal processor Intel® Celeron B815.
2) Minimal Harddisk 128 GB.
3) Minimal RAM 2 MB.
4) Monitor, Keyboard, dan Mouse sebagai peralatan antarmuka.
5) Smartphone Android dengan minimal kamera 2 MP dan RAM 512 MB.
3.1.5 Analisis dan Design Workflow
Algoritma yang digunakan dalam sistem ini adalah sebagai berikut:
a. Luminosity
Gambar 3.1 Flowchart Algoritma Luminosity Start
Input Image
x = 0 Finish
x < img_width
no
Luminosity Image yes
x++ y = 0
21
Finish
Resize Image
return temp[]
Start
Input Image
Temp[w2*h2]
x_ratio = (w-1)/w2 y_ratio = (h-1)/h2
x = 0 A = 0 y = 0 B = 0 index = 0 C = 0 func = 0 D = 0 offset = 0 i = 0
no i < h2
yes j = 0
j < w2 no yes
i++
x = x_ratio * j y = y_ratio * i x_diff = x - x_ratio y_diff = y – y_ratio index = y * w + x A = pixel[index] & 0xff func = (A*(1-x_diff)*(1-y_diff)
+ B*(x_diff)*(1-y_diff) + C*(y_diff)*(1-x_diff) + D*(x_diff*y_diff)
y++
Algoritma berfungsi mengubah warna citra RGB menjadi grayscale, prosesnya dapat dilihat pada gambar 3.1. Menurut jurnal yang disusun oleh Patel bahwa citra grayscale lebih cepat dalam proses pembacaan EngineTesseract.
b. Algoritma Bilinear
Gambar 3.2 Flowchart Algoritma Bilinear
Gambar 3.2 menunjukkan proses kerja algoritma bilinear dalam mengubah ukuran citra sehingga Tesseract dapat dengan mudah membaca
citra. Akurasi pembacaan Tesseract akan maksimal apabila Dot Per Inch (DPI) citra minimal 300. Sensor kamera pada perangkat android memiliki ukuran yang berbeda-beda sehingga perlu dilakukan pembesaran DPI pada citra.
3.2 Perluasan/Perencanaan (Elaboration) 3.2.1 Kebutuhan dan Model Bisnis
Secara garis besar kebutuhan sistem dan model bisnis sudah dijelaskan pada tahap Inception, yang mencakup pada analisis terhadap ruang yaitu analisis masalah, analisis pemecahan masalah, dan analisis requirements atau kebutuhan pada sistem yang akan dibangun.
3.2.2 Pembangunan Sistem
Berdasarkan kebutuhan yang sudah ditentukan sebelumnya, maka disimpulkan untuk pembangunan sistem ini akan ada 2 hasil data. Untuk hasil data yang pertama adalah gambar hasil kamera akan diproses oleh sistem. Sedangkan pada hasil data yang kedua adalah gambar akan memlalui proses Resize dan Luminosity terlebih dahulu lalu masuk ke Tesseract engine.
3.2.3 Perancangan Sistem
Pada tahap perancangan sistem ini merupakan hasil transformasi data dari analisis yang telah dilakukan sebelumnya yang bertujuan untuk memudahkan pembuatan aplikasi. Perancangan sistem mengunakan pemodelan berorientasi objek UML.
a. Arsitektur Sistem
Arsitektur sistem berfungsi untuk mengidentifikasi komponen-komponen yang lebih detail dan tersusun secara struktural. Berikut bentuk arsitektur umum dari sistem yang dirancang sebagai berikut:
23
(Modifikasi)
Asli (Original) Perubahan
Algoritma Bilinear Algoritma Luminosity
Hasil Tesseract Engine
Gambar
Gambar 3.3 Arsitektur Umum Sistem
b. Arsitektur Aplikasi
Arsitektur aplikasi ini berguna untuk menggambarkan proses yang berjalan pada aplikasi yang dirancang secara umum. Berikut gambar arsitektur aplikasi terlihat sebagai berikut:
Gambar 3.4 Arsitektur Aplikasi
Pada Gambar 3.4 menunjukkan arsitektur proses aplikasi OCR yang dibangun. Proses dengan warna hijau menunjukkan proses yang asli/original pada Tesseract, sedangkan yang berwarna biru menunjukkan proses yang telah melalui tahap perubahan/modifikasi. Untuk tahap origial gambar yang diambil akan langsung diproses oleh Tesseract engine dan mengeluarkan hasil.
Sedangkan tahap modifikiasi gambar akan diproses terlebih dahulu dengan algoritma Luminosity dan Bilinear. Setelah tahap itu selesai barulah dimasuk ke Tesseract engine untuk memperoleh hasil.
Aplikasi
Mengambil gambar Gambar Algoritma
Luminosity
Hasil berupa teks dan gambar
Teks Tesseract Engine
Bilinear Interpolation
c. Desain Pemodelan UML (Unified Modeling Language)
Dengan menggunakan pemodelan UML ini akan menjelaskan rancang sistem dengan tepat dan lengkap.
1) Use Case Diagram
Use Case Diagram akan menampilkan gambaran hubungan antara user dengan sistem. Dapat dilihat pada Gambar 3.5 yang menunjukkan hubungan antara user dengan sistem yang akan dibangun.
Gambar 3.5 Use Case Diagram Aplikasi
Dari gambar diatas dapat kita jelaskan beberapa skenario untuk mendefenisikan interaksi antara user dengan sistem dan seperti apa tanggapan sistem. Skenario use case dapat dilihat pada tabel berikut.
a) Use Case skenario OCR tanpa Pre-processing
Use case skenario OCR tanpa pre-processing dapat dilihat di tabel 3.1
Tabel 3.1 Use Case OCR tanpa pre-processing Use Case
Actor
Pre-condition
OCR tanpa pre-processing User
Tampilan Menu Utama
25
Main Scenario
Main Scenario
Goals Memilih proses OCR tanpa pre-processing
Description User memilih proses OCR tanpa pre-processing
User Sistem
1. User menekan tombol text recognition tulisan arab tanpa pre-processing
2. Memunculkan tampilan proses OCR tanpa pre-processing
b) Use Case skenario OCR dengan Pre-processing
Use case skenario OCR dengan pre-processing dapat dilihat di tabel 3.2
Tabel 3.2 Use Case OCR dengan pre-processing Use Case
Actor
Pre-condition Goals
OCR dengan pre-processing User
Tampilan Menu Utama
Memilih proses OCR dengan pre-processing Description
User memilih proses OCR dengan pre-processing
User Sistem
1. User menekan tombol text recognition tulisan arab dengan pre-processing
2. Memunculkan tampilan proses OCR dengan pre-processing
c) Use Case skenario Pilih Gambar
Use case skenario pilih gambar dapat dilihat di tabel 3.3
Tabel 3.3 Use Case Mengambil Foto Exception of Throw Event Exception of Throw Event
Main Scenario
Main Scenario Pre-condition
Goals
Memilih proses OCR dengan atau tanpa pre- processing
Menampilkan gambar asli Description
User memilih gambar yang akan diproses
User Sistem
User menekan tombol pilih gambar.
User memilih gambar
Menampilkan gambar yang telah tersimpan di perangkat android.
Gambar di panggil.
d) Use Case skenario Pre-processing
Use case skenario pre-processing dapat dilihat di tabel 3.4
Tabel 3.4 Use Case Pre-processing Use Case
Actor
Pre-condition
Goals
Pre-processing User
Memilih gambar
Menampilkan hasil gambar yang telah dimodifikasi dengan pre-processing Description
User memilih pre-processing untuk memodifikasi gambar yang telah dipilih.
User Sistem
User menekan tombol pre-processing. Memodifikasi gambar dengan algoritma bilinear dan luminosity dan
menampilkannya.
Exception of Throw Event Exception of Throw Event
27
Main Scenario e) Use Case skenario Proses OCR
Use case skenario Proses OCR dapat dilihat di tabel 3.5
Tabel 3.5 Use Case Proses OCR Use Case
Actor
Pre-condition Goals
Proses OCR User
Gambar asli atau gambar modifikasi Menampilkan hasil OCR
Description User memilih proses OCR.
User Sistem
User menekan tombol proses. Memproses gambar dengan tesserac engine dan menampilkan hasil berupa teks
2) Activity Diagram
Activity Diagram merupakan gambaran keseluruhan alur sistem, dari bagaimana awal sistem berjalan, decision antara user dan sistem yang mungkin terjadi, sampai ke hasil akhir sistem. Activity Diagram juga dapat menggambarkan kemungkinan eksekusi antar objek atau kelas yang mungkin terjadi pada sistem secara paralel. Activity Diagram pada sistem adalah sebagai berikut.
Exception of Throw Event
Activity Diagram pemrosesan OCR dengan pre-processing dapat dilihat pada Gambar 3.6 berikut.
Gambar 3.6 Activity Diagram proses OCR dengan pre-processing Activity Diagram pemrosesan OCR tanpa pre-processing dapat dilihat pada Gambar 3.7 berikut.
29
Gambar 3.7 Activity Diagram proses OCR tanpa pre-processing
3) Perancangan Interface
Perancangan interface atau antarmuka sistem dibutuhkan untuk memudahkan dalam perancangan sistem yang dibuat dan juga berpengaruh pada kenyamanan pengguna sistem. Aplikasi ini menggunakan 4 tampilan interface yang terdiri dari tampilan opening sistem, tampilan menu utama yang berguna untuk memilih proses yang akan dilakukan dan 2 tampilan proses (1 tampilan menggunakan pre-processing dan 1 tampilan tidak menggunakan pre- processing) yang termasuk juga hasil OCR didalamnya. Berikut rancang tampilan yang akan dibangun.
Gambar 3.8 Perancangan Interface Opening Aplikasi
Gambar 3.8 menampilkan rancang antarmuka saat aplikasi mulai berjalan hingga muncul ke tampilan menu utama. Pada rancang antarmuka ini hanya menampilkan logo Teknologi Informasi – Universitas Sumatera Utara.
Gambar 3.9 Perancangan Interface Menu Utama Aplikasi
Gambar 3.9 menampilkan rancang antarmuka menu utama dari aplikasi
31
terdiri dari pemrosesan OCR dengan menggunakan pre-processing terlebih dahulu atau pemrosesan OCR tanpa menggunakan pre-processing terlebih dahulu. Setiap pilihan akan memiliki antarmuka masing-masing.
Gambar 3.10 Perancangan Interface Pemrosesan OCR tanpa Pre- processing
Gambar 3.10 menampilkan rancang antarmuka proses OCR tanpa pre- processing. Pada tampilan antarmuka ini gambar akan diinput dengan tombol "Pilih Gambar" lalu gambar akan dipanggil oleh sistem dan ditampilkan pada area gambar. Tombol "Proses" akan berfungsi untuk memproses gambar dengan engine tesseract dan hasil OCR yang berupa teks akan ditampilkan di bagian "Hasil" dan waktu memprosesan akan ditampilkan pada bagian "Waktu Proses".
Gambar 3.11 Perancangan Interface Pemrosesan OCR dengan Pre- processing
Gambar 3.11 menampilkan rancang antarmuka proses OCR dengan pre- processing. Pada tampilan antarmuka ini hampir sama dengan tanpilan antarmuka pada Gambar 3.10 yang mana gambar akan diinput dengan tombol "Pilih Gambar" lalu gambar akan dipanggil oleh sistem dan ditampilkan pada area gambar. Perbedaannya ada pada pre-processing yang dilakukan sebelum melakukan proses recognition dengan menggunakan engine tesseract. Pada bagian ini akan di lakukan modifikasi pada gambar dengan menggunakan algoritma Bilinear yang merupakan algoritma Scaling Image untuk memperbesar gambar.
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini akan membahas konstruksi dan transisi sistem yang sesuai dengan Rational Inified Process (RUP). Pada bab ini juga membahas tahap implementasi sampai selesai, setelah itu akan dilakukan pengujian pada sistem yang telah dibangun untuk mengetahui jika adanya kekurangan yang dapat diperbaiki dan dikembangkan.
4.1 Konstruksi (Construction)
Tahap Konstruksi (Construction) adalah tahap pengkodean (coding), dimana tahap ini sistem akan dibangun secara nyata. Yang mana sistem tersebut dibangun dengan mengacu kepada parameter yang telah ditentukan dari tahap sebelumnya. Setelah dilakukan tahap pengkodean, sistem akan diuji guna untuk mengetahui tingkat kesalahan yang mungkin terjadi pada sistem.
Ada beberapa langkah yang perlu dilakukan pada tahap ini untuk pembangunan sistem, yaitu:
4.1.1 Implementation Workflow
Awal tahap ini dilakukan pengkodean (coding) dari rancangan-rancangan yang telah didefinisikan. Dalam hal ini pengkodean akan menggunakan bahasa Java. Tahap ini juga akan mengimplementasikan algoritma Bilinear dan Luminosity untuk menghasilkan OCR yang lebih baik.
Untuk membuat aplikasi ini membutuhkan perangkat keras (hardware) dan perangkat lunak (software). Untuk spesifikasi dari perangkat keras dan perangkat lunak akan diuraikan di bawah ini:
a. Perangkat Keras (hardware)
Perangkat keras yang dibutuhkan dalam membangun aplikasi, yaitu:
a) Laptop Hewlett-Packard HP 1000 Notebook PC dengan Processor Intel®
CoreTM i3-2370M CPU @ 2.40GHz.
b) Harddisk 500 GB.
c) RAM 4 MB.
e) Peralatan antarmuka yaitu Monitor, Keyboard, dan Mouse b. Perangkat Lunak (software)
Perangkat lunak yang dibutuhkan dalam membangun aplikasi, yaitu:
a) Sistem Operasi Windows 8.1 Pro 64-bit b) Android Studio version 3.5
c) JDK (Java Development Kit) version 13+33, SDK (Software Development Kit) untuk Windows.
d) StarUML version 5.0.2.1570 e) Balsamiq Mockups version 3.5.17
f) Android NDK (Native Development Kit) version g) Sistem Operasi Android Oreo
4.1.2 Implementasi Algoritma Luminosity
Pada tahap ini gambar disalin dengan metode copy() dengan tipe data Bitmap dengan nama variabel bmap. Lalu dilakukan pengulangan lebar dan panjang gambar. Metode getPixel() digunakan untuk mendapatkan pixel pada gambar dengan tipe data int dan nama variabel pixel. Untuk mendapatkan warna alfa, merah, biru, dan hijau dari pixel digunakan metode Color.alpha(), Color.red(), Color.blue(), dan Color.green() dengan tipe data int dan nama masing-masing yaitu A, R, B, G. Untuk merubah warna pada merah, biru dan hijau dilakukan pengkalian dengan rumus Luminosity yaitu 0.299 pada merah, 0.114 pada biru, dan 0.587 pada hijau lalu dijumlahkan. Setelah itu masukkan kembali pixel sebelumnya yang telah diubah dengan metode setPixel(). Dan terakhir salin kembali gambar hasil algoritma Luminosity dengan metode copy().
Perbandingan gambar sebelum dan sesudah diproses dengan algoritma Luminosity dapat dilihat pada Gambar 4.1 berikut.
(a) (b)
Gambar 4.1 Perbandingan gambar sebelum (a) dan sesudah (b) diproses algoritma Luminosity
35
4.1.3 Implementasi Algoritma Bilinear
Pada tahap ini implementasi algoritma Bilinear menggunakan jenis data int array.
Awal mula tentukan terlebih dahulu skala untuk memperbesar gambar yang bertipe data int dengan namascale. Selanjutnya dapatkan lebar dan panjang gambar dalam bentuk data int yang diberi namaimgHeight dan imgWidth. Lalu lakukan inisialisasi skala dengan melakukan pengkalian skala terhadap lebar dan panjang gambar asli yang bertipe data int dan berikan namascaleImgHeight dan scaleImgWidth.
Selanjutnya buat int Array yang memiliki panjang sama dengan lebar dikali panjang gambar asli yang diberi nama intArray. Lalu ambil pixel warna dari gambar asli dan masukan ke intArray menggunakan metode getPixels(). Setelah pixel dari gambar asli didapatkan, pixelakan dimasukan ke algoritma bilinear. Lalu gambar dibuat dengan menggunakan metode createBitmap() setelah algoritma Bilinear mendapatkan nilai.
Berikut Perbandingan gambar sebelum dan sesudah diproses oleh algoritma Bilinear dapat dilihat pada Gambar 4.2 berikut:
(a) (b)
Gambar 4.2 Perbandingan gambar sebelum (a) dan sesudah (b) diproses algoritma Bilinear
4.2 Implementasi Antarmuka
Berikut adalah screenshot dari implementasi antarmuka pada aplikasi.
Gambar 4.3 Tampilan Antarmuka Menu Utama
Tampilan antarmuka menu utama ini terdapat tombol Menu Text Recognition Tulisan Arab tanpa Pre-processing dan juga Menu Recognition Tulisan Arab dengan Pre-processing.
Gambar 4.4 Tampilan Antarmuka Menu Recognition Tanpa Pre-Processing
37
Tampilan Antarmuka pada gambar 4.4 ini terdapat 2 tombol yaitu pilih image dan tombol proses, tapi hanya pilih image yang aktif. Tombol Pilih Image berfungsi untuk menginput gambar dari perangkat android ke aplikasi.
Gambar 4.5 Tampilan Antarmuka Menu Recognition Tanpa Pre-Processing Setelah Pilih Image
Tampilan ini merupakan antarmuka saat setelah image di input untuk melakukan proses ocr, saat inilah tombol proses aktif sehingga sistem bias recognition gambar dengan tesseract yang mana nanti hasil dan waktu proses akan dihasilkan dan di tampilkan.
Gambar 4.6 Tampilan Antarmuka Hasil Recognition Tanpa Pre-Processing
Tampilan antarmuka pada gambar 4.6 adalah tampilan hasil dari recognition yang berbentuk teks dan juga hasil dari waktu proses.
Gambar 4.7 Tampilan Antarmuka Menu Recognition Dengan Pre-Processing Tampilan Antarmuka pada gambar 4.7 ini terdapat 3 tombol yaitu pilih image, tombol pre-pocissing dan tombol proses ocr, tapi hanya pilih image yang aktif.
Tombol Pilih Image berfungsi untuk menginput gambar dari perangkat android ke aplikasi.
Gambar 4.8 Tampilan Antarmuka Menu Recognition Dengan Pre-Processing Setelah Pilih Image
39
Tampilan ini merupakan antarmuka saat setelah image di input untuk melakukan pre-pocessing sehingga resolusi gambar ditingkatkan sehingga nantinya dapat melakukan proses ocr. Hal ini berfungsi untuk memudahkan recognition gambar.
Gambar 4.9 Tampilan Antarmuka Hasil Pre-Processing untuk Memperbesar Image Tampilan antarmuka gambar 4.9 merupakan tampilan hasil dari pre-processing berupa image yang resolusinya diperbesar dengan algoritma bilinear.Selanjutnya tombol proses ocr akan aktif, yang berguna untuk melakukan recognition.
Gambar 4.10 Tampilan Antarmuka Hasil Recognition Dengan Pre-Processing
Tampilan antarmuka pada gambar 4.10 adalah tampilan hasil dari recognition yang melalui pre-processing terlebih dahulu. Hasil akhirnya berupa teks dan juga hasil dari waktu proses.
4.3 Pengujian Sistem (Test Workflow)
Pengujian sistem dilakukan untuk mengetahui apakah sistem berjalan sesuai dengan spesifikasi fungsional sistem yang telah dirancang sebelumnya. Pengujian ini menggunakan metode pengujian black-box yang dilakukan setelah sistem selesai dibangun dan sebelum digunakan oleh user. Berikut adalah hasil pengujian menggunakan metode black-box.
4.3.1 Pengujian Antarmuka
Untuk menunjukkan apakah seluruh antarmuka dapat berjalan dengan baik.
a. Uji Antarmuka Menu Utama
Hasil dari pengujian antarmuka menu utama dapat dilihat pada tabel 4.1 berikut.
Tabel 4.1 Uji Tampilan Menu Utama Hasil
Skenario
Berhasil Gagal Klik tombol
recognition tanpa
pre-processing Klik tombol
recognition dengan
pre-processing
Keterangan Berhasil menampilkan antarmuka recognition tanpa
pre-processing Berhasil menampilkan antarmuka recognition dengan
pre-processing
b. Uji Antarmuka Recognition Tanpa Pre-Processing
Hasil dari pengujian antarmuka recognition tanpa pre-processing dapat dilihat pada tabel 4.2 berikut.
41
Tabel 4.2 Uji Tampilan Recognition Tanpa Pre-Processing Hasil
Skenario
Berhasil Gagal Klik tombol pilih
image
Menampilkan
gambar
Klik tombol proses
Menampilkan hasil
recognition
Menampilkan hasil
waktu proses
Keterangan Berhasil mengambil gambar dari perangkat android ke aplikasi
Berhasil menampilkan gambar yang dipilih
Berhasil memproses gambar dengan tesseract
Berhasil menampilkan hasil OCR berupa teks
Berhasil menampilkan hasil waktu proses OCR
c. Uji Antarmuka Recognition dengan Pre-Processing
Hasil dari pengujian antarmuka recognition dengan pre-processing dapat dilihat pada tabel 4.3 berikut.
Tabel 4.3 Uji Tampilan Recognition Dengan Pre-Processing Hasil
Skenario
Berhasil Gagal Klik tombol pilih
image
Menampilkan
gambar
Klik tombol pre-
processing
Keterangan Berhasil mengambil gambar dari perangkat android ke aplikasi
Berhasil menampilkan gambar yang dipilih
Berhasil memperbesar gambar dengan algoritma bilinear dan menampilkannya