SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
RIYAN HIDAYAT
10110769
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
DAFTAR ISI
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... iv
DAFTAR GAMBAR ... vii
DAFTAR TABEL ... ix
DAFTAR SIMBOL ... x
DAFTAR LAMPIRAN ... xi
BAB 1 PENDAHULUAN ... 1
1.1LatarBelakangMasalah ... 1
1.2RumusanMasalah ... 2
1.3Maksud dan Tujuan ... 2
1.4Batasan Masalah ... 3
1.5 Metodologi Penelitian ... 3
1.5.1 Metode Pengumpulan Data ... 3
1.5.2 Metode Pembangunan Perangkat Lunak ... 4
1.5.3 Sistematika Penulisan ... 6
BAB 2 LANDASAN TEORI ... 9
2.1 DefinisiCitra ... 9
2.2 JenisCitra ... 10
2.2.1 Citra Biner ... 10
2.2.2 Citra Greyscale ... 11
2.3 Pre-Processing ... 12
2.3.1 Metode Luminosity ... 12
2.4 OCR(OpticalCharacterRecognition) ... 13
2.5 MicrosoftTranslator ... 17
2.6 Android ... 18
2.6.1 Arsitektur Android ... 18
2.7 UML ... 22
2.7.1 Use-Case Diagram ... 24
2.7.2 Class Diagram ... 25
2.7.3 Sequance Diagram ... 26
2.7.4 Collaboration Diagram ... 26
2.7.5 Activity Diagram ... 27
2.7.6 Component Diagram ... 28
2.7.7 Deployment Diagram ... 28
BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 31
3.1 Analisis ... 31
3.2 Analisis Masalah ... 31
3.3 Analisis Metode ... 31
3.4 Analisis Kebutuhan Non-Fungsional ... 40
3.4.1 Analisis Kebutuhan Perangkat Keras ... 40
3.4.2 Analisis Kebutuhan Perangkat Lunak ... 40
3.4.3 Analisis Pengguna ... 41
3.5 Analisis Kebutuhan Fungsional ... 41
3.5.1 Diagram Use case ... 41
3.5.4 Diagram Class ... 45
3.5.5 Diagram Sequence ... 46
3.6 Perancangan Sistem ... 48
3.6.1 Rancangan Antarmuka ... 48
3.6.2 Perancangan Jaringan Semantik ... 50
3.6.3 Perancangan Prosedural ... 50
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 53
4.1 Implementasi sistem ... 53
4.1.1 Implementasi Perangkat Keras ... 53
4.1.2 Implementasi Perangkat Lunak ... 53
4.1.3 Implementasi Antarmuka ... 54
4.2 Pengujian Perangkat Lunak ... 56
4.2.1 Rencana Pengujian Black Box ... 56
4.2.2 Kasus Dan Hasil Pengujian Black box ... 57
4.2.3 Kesimpulan Hasil Pengujian Alpha ... 61
4.2.4 Kasus dan Hasil Pengujian Beta ... 61
4.2.6 Hasil Wawancara ... 62
4.2.7 Kuesioner ... 64
4.2.8 Kesimpulan Hasil Pengujian Beta ... 69
BAB 5 KESIMPULAN DAN SARAN ... 70
5.1 Kesimpulan ... 70
5.2 Saran ... 70
71
hasiswa.Indonesia. [Cited: March 3, 2014.]
[2] Denny. Mahardi., Pengguna Mobile Internet di Indonesia Terus Tumbuh. http://tekno.liputan6.com/read/505926/pengguna-mobile-internet-di-indonesia-terus-tumbuh. [Cited: July 10, 2014.]
[3] Wicaksono. Surya., 7 Hal yang Tak Dimiliki iPhone 5. http://tekno.kompas.com/read/2013/06/10/16555254/7.hal.yang.tak.dimiliki.iphon e.5. [Cited: July 10, 2014.]
[4] Fingas. Jon, Android tops 81 percent of smartphone market share in Q3. http://www.engadget.com/2013/10/31/strategy-analytics-q3-2013-phone-share/. [Cited: March 3, 2014.]
[5] Haryati. Sri, "Research And Development (R&D) Sebagai Salah Satu Model Penelitian Dalam Bidang Pendidikan," Vol. 37, 2012.
[6] Firdaus. Sidik, "Pembangunan Website Di Yayasan Slb-Bc Nike Ardilla,"
Bandung : s.n., 2013.
[7] Lestari. Dewi, "Analisis Dan Implementasi Penghalusan Citra (Image Smoothing) Pada Citra Digital Menggunakan Metode Uniform Smoothing, Gaussian Smoothing, Dan Threshold Smoothing," Bandung : s.n., 2006.
[8] Cook. John, Three algorithms for converting color to grayscale. http://www.johndcook.com/blog/2009/08/24/algorithms-convert-color-grayscale/ [Cited: June 17, 2014.]
[9] B. R. Sofian, "Perbandingan Algoritma Template Matching Dan Feature Extraction Pada Optical Character Recognition," Bandung : s.n., Vol. I, 2012. [10] Faisal, "Perancangan Program Pengenalan Teks Dengan Fuzzy Logic",
Jakarta : s.n., 2009.
[11] Prasetya. Riza, "Pengenalan Plat Nomor Kendaraan Secara Otomatis Untuk Pelanggaran Lalu Lintas," Surabaya
[13] http://www.microsoft.com/en-us/translator/developers.aspx. [Cited: June 30, 2014.]
[14] Kurniawan. Angga, "Perancangan Aplikasi Rumus-Rumus Fisika Sekolah Menengah Atas Berbasis Mobile Android," Bandung : s.n., 2013.
[15] Prayitno. Wendhie, "Desain Model Sistem Perangkat Lunak Dengan Uml,"
Status : Belum Kawin
Agama : Islam
Kewarganegaraan : Indonesia
Alamat : Kp. Tengah RT/RW 01/03
Kecamatan Cileungsi Kabupaten Bogor
Handphone : 085695096989
E-mail : centuriyan666@gmail.com
RIWAYAT PENDIDIKAN
Formal1998-2004 : SDN Cileungsi 02
2004-2007 : SMP PGRI Surya Kencana 2007-2010 : SMA Bina Pendidikan 02
iii
Kamera Pada Ponsel Android Untuk Menerjemahkan Teks Bahasa Jerman Ke Dalam Bahasa Indonesia.
Penyusunan skripsi ini tidak akan terwujud tanpa mendapat dukungan, dan masukan dari berbagai pihak. Untuk itu, penulis ingin menyampaikan terimakasih yang sebesar-besarnya kepada :
1. Kedua orang tua dan keluarga besar penulis yang sudah memberikan do’a, dukungan, kasih sayang dan motivasi, sehingga penulis dapat menyelesaikan tugas akhir ini.
2. Bapak Eko Budi Setiawan, S.Kom. M.T. selaku dosen pembimbing, yang telah banyak memberikan arahan, saran dan bimbingan kepada penulis.
3. Bapak dan Ibu dosen Program Studi Teknik Informatika yang telah memberikan ilmu, motivasi dan bantuan kepada penulis.
4. Ibu Kania, M.Si. selaku dosen wali penulis yang telah memberikan banyak bimbingan selama penulis menuntut ilmu.
5. Heriyanto yang telah banyak membantu penulis dalam menyelesaikan tugas akhir ini.
6. Putri Pertiwi Maharani yang telah memberikan semangat selama penulisan tugas akhir.
7. Rizki Abadi, Rendi Ramdhan, Fahmi Reza, Sidik Firdaus, Ahmad Hamdi, Ikhsan Kamil, Gilang Ramdhan dan teman-teman seperjuangan penulis di Jurusan Teknik Informatika yang telah banyak memberikan dukungan selama proses pengerjaan laporan Tugas Akhir ini.
1
1.1 Latar Belakang Masalah
Jerman merupakan tujuan favorit pelajar dan mahasiswa Indonesia yang berminat belajar ke luar negeri dibandingkan dengan negara-negara lain di Eropa. Program pendidikan yang banyak dipilih adalah kedokteran dan teknik
(engineering), dan berdasarkan data pendidikan global UNESCO 2011, jumlah pelajar Indonesia di Jerman mencapai 1546. Jumlah tersebut menjadikan Jerman
negara yang memiliki pelajar dan mahasiswa Indonesia terbanyak di Eropa[1]. Untuk melanjutkan pendidikan di Negara Jerman, maka para pelajar harus mempelajari bahasa Jerman terlebih dahulu.
Penggunaan kamus bahasa Jerman untuk membantu mempelajari bahasa Jerman tidak efisien, karena harus mencari kata per kata pada kalimat yang
ditemukan di halaman yang berbeda-beda, sehingga membutuhkan waktu lebih untuk menerjemahkan teks yang ditemukan. Perangkat mobile dinilai lebih sederhana dan mudah dibawa, hal tersebut membuat kebanyakan orang Indonesia
memilih mobile untuk kepentingan sehari-hari[2]. Penggunaan aplikasi berbasis
mobile dinilai lebih praktis untuk membantu menerjemahkan teks bahasa Jerman, namun aplikasi kamus bahasa Jerman pada smartphone android, aplikasi tersebut hanya bisa menerjemahkan satu kata saja, sehingga kurang efisien untuk
Smartphone android semakin menguasai pasar smartphone pada kuartal ke tiga tahun 2013 dengan presentase pengguna mencapai 81,3%. Lalu diikuti oleh
Apple dengan presentase 13,4%, lalu Microsoft dengan 4.1% dan BlackBerry 1.0%[4].
Perangkat lunak OCR (Optical Character Recognition) merupakan perangkat lunak yang dapat mengekstaksi teks pada citra dengan melakukan pemindaian. Untuk menghasilkan teks output yang lebih baik, maka diperlukan proses
grayscaling citra. Grayscaling citra dilakukan menggunakan metode luminosity,
luminosity menghasilkan citra grayscale yang baik. Sehingga hasil dari pengenalan teks menjadi lebih baik.
Berdasarkan permasalahan yang telah dipaparkan, maka solusi yang dapat digunakan untuk membantu para pelajar Indonesia untuk membantu mempelajari
bahasa Jerman adalah dengan membangun suatu aplikasi untuk menerjemahkan teks bahasa Jerman ke dalam bahasa Indonesia menggunakan perangkat lunak
OCR berbasis android.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah disebutkan, maka yang menjadi inti masalah dalam penelitian ini adalah, bagaimana membangun aplikasi yang dapat
1.3 Maksud dan Tujuan
Berdasarkan permasalahan yang diteliti, maka maksud dari pembuatan penelitian ini adalah untuk membangun suatu aplikasi kamera untuk
menerjemahkan teks bahasa Jerman ke dalam bahasa Indonesia berbasis android.
Sedangkan tujuan yang akan dicapai dalam penelitian ini adalah:
1. Membantu untuk mempelajari bahasa Jerman.
2. Membuat suatu alat bantu untuk menerjemahkan bahasa Jerman ke dalam bahasa Indonesia.
1.4 Batasan Masalah
Batasan-batasan pada ruang lingkup permasalahan dalam pembangunan permainan ini adalah:
1. Aplikasi ini berbasis mobile android.
2. Proses pengenalan teks menggunakan Tesseract.
3. Proses penerjemahan bahasa menggunakan layanan dari Microsoft Translator.
4. Teks yang dapat dikenali hanya terdiri dari satu baris dan berupa teks cetak.
5. Metode yang digunakan untuk proses greyscaling adalah luminosity. 6. Aplikasi ini membutuhkan koneksi internet untuk proses penerjemahan. 7. Aplikasi ini membutuhkan fitur kamera.
1.5 Metodologi Penelitian
1.5.1 Metode Pengumpulan Data
Pengumpulan data dengan cara studi literatur, yaitu dengan cara mengumpulkan literatur, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul penelitian.
1.5.2 Metode Pembangunan Perangkat Lunak
Metode yang digunakan dalam pembuatan aplikasi ini adalah metode
pemodelan perangkat lunak secara waterfall, yang meliputi beberapa proses diantaranya:
1. System Engineering
Fase ini digunakan untuk mencari informasi dari pelajar yang sedang mengikuti kursus bahasa Jerman, lalu merumuskan kebutuhan-kebutuhan dari
pelajar ke dalam sistem yang akan dibuat. Selanjutnya mengkaji tentang cara kerja dan penerapan metode yang digunakan pada sistem dan menentukan kebutuhan minimum yang harus dipenuhi untuk menjalankan aplikasi yang
akan dibuat. Kemudian mempelajari tentang penggunaan tesseract OCR.
2. Analysis
Fase ini diintensifkan dan difokuskan pada analisis perangkat lunak, menentukan kebutuhan fungsional dan non-fungsional yang diperlukan pada perangkat lunak, lalu memutuskan kebutuhan-kebutuhan yang dibutuhkan
untuk membangun perangkat lunak. Kemudian melakukan analisis terhadap
3. Design
Setelah fase analisis, dilanjutkan dengan fase desain yang digunakan
untuk mengubah kebutuhan-kebutuhan dari hasil analisis menjadi representasi ke dalam bentuk blueprint perangkat lunak seperti membuat rancangan user interface dan layout dari perangkat lunak yang akan dibangun sebelum coding (Implementasi) dimulai.
4. Coding
Fase ini merupakan implementasi dari fase design, langkah awal yang akan dilakukan adalah membuat kode program untuk membuat tampilan awal
perangkat lunak, lalu membuat fungsi untuk melakukan panggilan pada aplikasi kamera, kemudian menerapkan metode luminosity ke dalam kode program, dan menerapkan Tesseractengine ke dalam sistem.
5. Testing
Setelah fase coding dilakukan, maka akan dilakukan pengujian terhadap aplikasi yang sudah dibangun, agar aplikasi bebas dari error dan mendapatkan hasil yang sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya. Pengujian dilakukan dengan cara memasang aplikasi pada
ponsel android lalu mencoba fungsi-fungsi utama pada aplikasi tersebut seperti mengambil gambar menggunakan kamera.
6. Maintenance
Fase ini digunakan untuk menangani kesalahan yang ditemukan pada aplikasi yang sudah diuji. Selain digunakan untuk memperbaiki kesalahan,
tidak ditemukan kesalahan pada aplikasi yang diuji maka fase ini dilakukan untuk menambahkan fitur-fitur dan menyempurnakan aplikasi yang sudah
dibuat.
Gambar 1.1 Pemodelan Waterfall[6]
1.5.3 Sistematika Penulisan
Sistematika penulisan disusun untuk memberikan gambaran umum dari
penelitian yang sedang berjalan. Adapun sistematika penulisan ini adalah sebagai berikut:
BAB I PENDAHULUAN
Bab ini menjelaskan tentang latar belakang masalah, rumusan masalah yang mengacu pada inti permasalahan pada latar belakang, maksud dan tujuan yang
mengacu pada rumusan masalah, batasan masalah yang membatasi dalam pembangunan aplikasi, metodologi penelitian yang digunakan selama membangun
aplikasi dan sistematika penulisan.
Sistem Enggineerin
Analysis
Design
Coding
Testing
BAB II LANDASAN TEORI
Bab ini membahas mengenai landasan teori yang digunakan dalam membangun
aplikasi berbasis mobile, teori-teori umum yang berkaitan dengan sistem operasi android, bahasa pemograman yang digunakan, tools dan perangkat lunak yang digunakan, serta pembahasan mengenai pengertian umum metode yang digunakan dalam pembangunan aplikasi.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini membahas tentang perancangan umum maupun uraian lebih lanjut mengenai perancangan sistem dalam pembangunan perangkat lunak. Uraian
perancangan sistem ini meliputi perancangan data input dan output sistem, perancangan proses mengenai bagaimana sistem bekerja dengan proses-proses tertentu, maupun perancangan user interface.
BAB IV IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi tahap implementasi dari perancangan sebelumnya dan kemudian
melakukan pengujian terhadap aplikasi yang telah dibangun. Pengujian sistem ini akan membahas mengenai hasil dari pengenalan karakter yang dilakukan sistem dan hasil greyscaling menggunakan metode luminosity, lalu membahas tentang cara kerja dan penggunaan aplikasi.
BAB V KESIMPULAN DAN SARAN
9 2.1 Definisi Citra
Secara harfiah, citra (image) adalah gambar pada bidang dwimatra (dua dimensi). Ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus
(continue) dari intensitas cahaya pada bidang dwimatra. Sumber cahaya menerangi objek, dan objek memantulkan kembali sebagian dari berkas cahaya
tersebut. Pantulan cahaya ini ditangkap oleh alat-alat optik, misalnya mata pada manusia, kamera, pemindai (scanner), sehingga bayangan objek yang disebut citra tersebut terekam.
Citra sebagai keluaran dari suatu sistem perekaman data dapat bersifat:
1. Optik berupa foto,
2. Analog berupa sinyal video seperti gambar pada montor televisi, 3. Digital yang dapat langsung disimpan pada pita magnetik.
Citra yang dimaksud disini adalah “citra diam” (still image). Citra diam adalah citra tunggal yang tidak bergerak. Untuk selanjutnya, citra diam disebut
citra saja. Sedangkan “citra bergerak” (moving image) adalah rangkaian citra diam yang ditampilkan secara beruntun (sequential) sehingga memberi kesan pada mata kita sebagai gambar yang bergerak. Setiap citra didalam rangkaian itu disebut
2.2 Jenis Citra
Nilai suatu pixel memiliki nilai dalam rentang tertentu, dari nilai minimum sampai nilai maksimum. Jangkauan yang digunakan berbeda-beda tergantung dari
jenis warnanya. Namun secara umum jangkauannya adalah 0-255. Citra dengan penggambaran seperti ini digolongkan ke dalam citra integer. Berikut adalah jenis-jenis citra berdasarkan nilai pixelnya.
2.2.1 Citra Biner
Pada citra biner, setiap titik bernilai 0 atau 1, masing-masing merepresentasikan warna tertentu. Warna hitam bernilai 0 dan warna putih bernilai 1. Pada standar citra untuk ditampilkan di layar komputer, nilai biner ini
berhubungan dengan ada tidaknya cahaya yang ditembakkan oleh electron gun
yang terdapat di dalam monitor komputer. Angka 0 menyatakan tidak ada cahaya,
dengan demikian warna yang direpresentasikan adalah hitam. Untuk angka 1 terdapat cahaya, sehingga warna yang direpresentasikan adalah putih. Setiap titik pada citra hanya membutuhkan 1 bit, sehingga setiap byte dapat menampung informasi 8 titik[7].
2.2.2 Citra Greyscale
Citra skala keabuan memberi kemungkinan warna yang lebih banyak daripada citra biner, karena ada nilai-nilai lain diantara nilai minimum (biasanya
0) dan nilai maksimumnya. Banyaknya kemungkinan nilai minimum dan nilai maksimumnya bergantung pada jumlah bit yang digunakan. Contohnya untuk skala keabuan 4 bit, maka jumlah kemungkinan nilainya adalah 24 = 16, dan nilai
maksimumnya adalah 24 – 1 = 15. Sedangkan untuk skala keabuan 8 bit, maka jumlah kemungkinan nilainya adalah 28 = 256, dan nilai maksimumnya adalah 28
– 1 = 255.
Format citra ini disebut skala keabuan karena pada umumnya warna yang dipakai adalah antara hitam sebagai warna minimal dan warna putih sebagai
warna maksimalnya. Namun pada prakteknya, warna yang dipakai tidak terbatas pada warna abu-abu. Sebagai contoh, jika warna minimalnya adalah putih dan
warna maksimalnya adalah merah, maka semakin besar nilainya, semakin besar pula intensitas warna merahnya[7].
Gambar 2.2 Citra grayscale 4-bit dan representasinya dalam data digital
2.2.3 Citra Warna
Pada citra warna, setiap titik mempunyai warna spesifik yang merupakan
intensitas sendiri dengan nilai maksimum 255 (8 bit). Misalnya warna kuning merupakan kombinasi warna merah dan hijau sehingga nilai RGB-nya adalah 255
255 0, sedangkan warna ungu muda nilai RBG-nya adalah 150 0 150. Dengan demikian, setiap titik pada citra warna membutuhkan data 3 byte atau 24 bit.
Jumlah kombinasi warna yang mungkin untuk format citra ini adalah 224 atau lebih dari 16 juta warna, dengan demikian bisa dianggap mencakup semua warna yang ada. Inilah sebabnya format ini dinamakan true color[7].
Gambar 2.3 Citra warna dan representasinya dalam data digital
2.3 Pre-Processing
Pre-processing perlu dilakukan untuk menyesuaikan apa yang dibutuhkan untuk proses selanjutnya. Yang pertama sistem akan merubah citra berwarna
menjadi citra greyscale dengan metode luminosity.
2.3.1 Metode Luminosity
hijau diberikan nilai tertimbang paling banyak. Rumus untuk luminosity adalah 0,21 R + 0,72 G + 0,07 B[8].
Proses tersebut dilakukan pada setiap piksel pada citra, dengan cara ini maka setiap piksel memiliki satu jenis warna dengan intensitas yang berbeda-beda.
2.4 OCR (Optical Character Recognition)
Optical character recognition (OCR) merupakan aplikasi dari teknologi pengenalan teks, yaitu suatu teknologi yang mampu mengenali teks pada citra digital dan mengalihkannya pada dokumen digital. Dalam perkembangannya, aplikasi OCR sering kali digunakan pada berbagai jenis dokumen, dimana
beberapa dokumen memiliki ukuran font yang berbeda satu sama lain. Hal ini menyebabkan aplikasi OCR yang ada menjadi kurang maksimal dalam mengenli
teks.
OCR adalah proses yang menerjemahkan gambar karakter (image character) menjadi bentuk teks dengan cara mencocokkan pola karakter per-baris dengan pola yang telah tersimpan dalam database aplikasi. Hasil dari proses OCR adalah berupa teks sesuai yang tampak pada gambar output scanner dimana tingkat keakuratan penerjemahan karakter tergantung dari tingkat kejelasan gambar[9].
Tingkat keberhasilan dari perangkat lunak aplikasi pengenalan teks sangat bergantung dari sejumlah faktor berikut:
1. Kualitas gambar teks yang ada pada dokumen yang dibaca serta tingkat
3. Kualitas perangkat lunak aplikasi pengenalan teks itu sendiri[10].
Pada proses pengolahan gambar dengan OCR terdapat beberapa langkah
yaitu, segmentation, normalization, feature extraction, recognition, dan hasil. Langkah segmentation bertujuan untuk memisahkan objek pada gambar dengan latar belakang agar mudah untuk dianalisis. Langkah normalization bertujuan untuk mengubah ukuran gambar dan melakukan proses morfologi untuk menghapus piksel forground yang terpilih dari gambar biner. Langkah feature extraction berfungsi sebagai image analysist untuk mengidentifikasi sifat yang melekat pada tiap karakter. Hasil dari langkah feature extraction akan digunakan dalam langkah rocognition sehingga menghasilkan output[11].
Gambar 2.4 Proses Pengenalan Karakter Segmentation
Normalization
Feature Extraction
Recognition
Tesseract adalah mesin OCR open-source yang dikembangkan oleh HP pada tahun 1984 – 1994. Pada saat ini, untuk pertama kalinya, detail arsitektur dan
algoritma dipublikasikan. Tesseract dimulai sebagai sebuah proyek penelitian seorang PhD di HP Labs, Bristol, dan mendapatkan momentum sebagai perangkat
lunak dan add-on perangkat keras untuk lini HP scanner flatbed. Proyek ini termotivasi oleh fakta bahwa mesin OCR komersial pada saat itu berada di tahap awal, gagal total dan hanya mementingkan kualitas cetak terbaik.
Setelah proyek bersama antara HP Labs Bristol, dan Divisi scanner HP di Colorado, Tesseract memimpin secara signifikan dalam akurasi yang lebih baik
dibandingkan dengan mesin OCR komersial, tetapi Tesseract tetap tidak menjadi suatu produk. Tahap selanjutnya dari perkembangannya adalah kembali ke HP Labs Bristol untuk investigasi OCR sebagai alat kompresi. Pengembangan lebih
berkonsentrasi pada peningkatan rejection efficiency dari pada tingkat akurasi. Pada akhir proyek ini, pada akhir tahun 1994, pembangunan berhenti sepenuhnya.
Gambar 2.5 Arsitektur Tesseract 1. Adaptive Thresholding
Proses ini digunakan untuk merubah citra warna atau greyscale yang menjadi
citra masukan menjadi citra biner. Tujuannya adalah untuk memisahkan
background dan foreground.
2. Connected Component Analysis
Proses ini digunakan untuk melakukan proses segmentasi teks yang ada pada citra menjadi karakter yang nantinya akan dikenali.
3. Find Lines and Words
Proses ini digunakan untuk mencari baris teks pada suatu citra.
4. Recognize Word Pass 1
5. Recognize Word Pass 2
Proses terakhir adalah proses pengenalan kembali dari keseluruhan halaman
pada citra untuk memperbaiki hasil pengenalan tahap pertama.
2.5 Microsoft Translator
Microsoft Translator adalah layanan web yang berfungsi untuk
menerjemahkan teks dari bahasa satu ke bahasa lain. Microsoft Translator menyediakan API yang dapat digunakan oleh para develover untuk mengambil keuntungan dari teknologi mesin penerjemahan ini dalam aplikasi yang dibuat
sendiri, layanan API ini dapat dipanggil menggunakan banyak cara, termasuk HTTP SISA Service, layanan AJAX-callable dan Layanan SOAP Web.
Microsoft Translator API tersedia di Windows Azure Marketplace. Untuk menggunakan Microsoft Translator API para developer harus berlangganan terlebih dahulu ke Windows Azure Marketplace dan membayar layanan tersebut berdasarkan jumlah karakter teks yang dikirimkan ke API setiap bulannya[13].
Contoh dari metode yang disediakan oleh API untuk para developer adalah sebagai berikut:
1. Translate: Teks diterjemahkan dari satu bahasa ke bahasa lain
2. TranslateArray: Menerjemahkan berbagai teks dari satu bahasa ke bahasa lain 3. Detect: Mendeteksi bahasa pada string
4. Detect Array: Mendeteksi bahasa pada string array
5. GetTranslations: Mengembalikan sebuah array terjemahan alternatif untuk teks 6. GetTranslationsArray: Mengembalikan sebuah array terjemahan alternatif
2.6 Android
Android adalah sistem operasi untuk telepon seluler yang berbasis Linux. Android menyediakan platform terbuka bagi para pengembang buat menciptakan
aplikasi mereka sendiri untuk digunakan oleh bermacam piranti bergerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android,
dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola,
Qualcomm, T-Mobile, dan Nvidia.
2.6.1 Arsitektur Android
Google menggambarkan Android seperti sebuah tumpukan software. Setiap lapisan dari tumpukan ini terdiri dari beberapa program yang mendukung
fungsi-fungsi spesifik dari sistem operasi. Dalam paket sistem operasi android tediri dari beberapa unsur seperti tampak pada gambar 2.6. Secara sederhana arsitektur android merupakan sebuah kernel Linux dan sekumpulan pustaka C / C++ dalam
Gambar 2.6 Arsitektur android[14]
Berikut adalah penjelasan mengenai masing-masing lapisan pada arsitektur
android:
1. Linux Kernel
Android dibangun di atas kernel Linux. Namun secara keseluruhan android
bukanlah linux, karena dalam android tidak terdapat paket standar yang dimiliki oleh linux lainnya. Linux merupakan sistem operasi terbuka yang handal dalam
2. Libraries
Android menggunakan beberapa paket pustaka yang terdapat pada C/C++
dengan standar Berkeley Software Distribution (BSD) hanya setengah dari yang aslinya untuk tertanam pada kernel Linux. Beberapa pustaka diantaranya:
1. Media Library untuk memutar dan merekam berbagai macam format audio dan video.
2. Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi.
3. Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan 2D dan 3D.
4. SQLite untuk mengatur relasi database yang digunakan pada aplikasi. 5. SSl dan WebKit untuk browser dan keamanan internet.
Pustaka-pustaka tersebut bukanlah aplikasi yang berjalan sendiri, namun
hanya dapat digunakan oleh program yang berada di level atasnya. Sejak versi Android 1.5, pengembang dapat membuat dan menggunakan pustaka sendiri
menggunakan Native Development Toolkit (NDK). 3. Android Runtime
Pada android tertanam paket pustaka inti yang menyediakan sebagian besar
fungsi android. Inilah yang membedakan Android dibandingkan dengan sistem operasi lain yang juga mengimplementasikan Linux. Android Runtime merupakan
1. Pustaka Inti, android dikembangkan melalui bahasa pemrograman Java, tapi Android Runtime bukanlah mesin virtual Java. Pustaka inti android
menyediakan hampir semua fungsi yang terdapat pada pustaka Java serta beberapa pustaka khusus android.
2. Mesin Virtual Dalvik, Dalvik merupakan sebuah mesin virtual yang dikembangkan oleh Dan Bornstein yang terinspirasi dari nama sebuah perkampungan yang berada di Iceland. Dalvik hanyalah interpreter mesin
virtual yang mengeksekusi file dalam format Dalvik Executable (*.dex). Dengan format ini Dalvik akan mengoptimalkan efisiensi penyimpanan
dan pengalamatan memori pada file yang dieksekusi. Dalvik berjalan di atas kernel Linux 2.6, dengan fungsi dasar seperti threading dan manajemen memori yang terbatas.
4. Aplication Framework
Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk
mengembangkan aplikasi android. Selain itu, juga menyediakan abstraksi untuk mengakses perangkat, serta mengatur tampilan User Interface dan sumber daya aplikasi. Bagian terpenting dalam kerangka aplikasi android adalah sebagai
berikut:
1. Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan
menjaga keadaan ”Backstack“ untuk navigasi penggunaan.
3. Resource Manager berfungsi untuk mengatur sumber daya yang ada dalam program. Seperti karakter, grafik dan file layout.
4. Location Manager, berfungsi untuk memberikan informasi detail mengenail lokasi perangkat android berada.
5. Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar.
5. Aplication Layer
Puncak dari diagram arsitektur android adalah lapisan aplikasi dan widget.
Lapisan aplikasi merupakan lapisan yang paling tampak pada pengguna ketika menjalankan program. Pengguna hanya akan melihat program ketika digunakan tanpa mengetahui proses yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan
dalam Android runtime dengan menggunakan kelas dan service yang tersedia pada Framework aplikasi. Lapisan aplikasi android sangat berbeda dibandingkan
dengan sistem operasi lainnya. Pada android semua aplikasi, baik aplikasi inti (native) maupun aplikasi pihak ketiga berjalan diatas lapisan aplikasi dengan menggunakan pustaka API (Application Programming Interface) yang sama.
2.7 UML
UML adalah kependekan dari Unified Modeling Language yang merupakan suatu cara untuk menyelesaikan suatu masalah dengan mendeskripsikannya yang telah menjadi standar dalam dunia industri untuk memvisualisasikan, merancang
lunak, yang mana aplikasi yang dibangun dapat berjalan pada perangkat lunak dengan sistem operasi dan jaringan apapun. Selain itu, dengan menggunakan
UML, programmer dapat mengerti, memahami dengan jelas maksud, tujuan dan arah rancangan sistem, sehingga sistem perngakat lunak yang dirancang dapat
dibangun dengan bahasa program apapun. Namun karena UML merupakan suatu model pengembangan sistem perangkat lunak yang berbasis object oriented sehingga menggnuakan bentuk class dan operation dalam konsep dasarnya, maka
lebih cocok dalam pemrogramannya dengan menggunakan bahasa-bahasa pemrograman yang berbasis OOP (Object Oriented Programming) seperti C, C++, Java, VB dan lain sebagainya.
Secara lebih mendalam, UML lebih dari sekedar sebuah standard dan penemuan dari suatu notasi-notasi yang disatukan, tetapi juga berisi
konsep-konsep baru yang menarik yang tidak ditemukan secara umum dalam komunitas object oriented. Dalam membangun suatu model perangkat lunak dengan UML,
digunakan bentuk-bentuk diagram atau symbol untuk merepresentasikan elemen-elemen dalam sistem. Bentuk diagram yang digunakan untuk merepresentasikannya adalah sebagai berikut[8]:
2.7.1 Use-Case Diagram
Use-case diagram merupakan suatu bentuk diagram yang menggambarkan fungsi-fungsi yang diharapkan dari sebuah sistem yang dirancang. Dalam Use-case diagram penekanannya adalah “apa” yang diperbuat oleh sistem, dan bukan
“bagaimana”. Sebuah use-case akan merepresentasikan sebuah interaksi antara pelaku atau actor dengan sistem.
Use-case diagram yang digunakan dalam mercancang suatu sistem dapat sangat membantu pada saat menyusun requirement sebuah sistem, mengomunikasikannya dengan klien, dan merancang pengujian untuk semua fitur yang terdapat dalam sistem. Dalam suatu sistem aplikasi database, use-case diagram sangat membantu requierement apa saja yang diperlukan.
2.7.2 Class Diagram
Sebuah ClassDiagram menunjukkan struktur yang statis dari beberapa class dalam suatu sistem. Class-class merepresentasikan suatu keadaan (atribut/properti) dan yang akan dikerjakan oleh sistem (metoda/fungsi). Class memiliki tiga area pokok:
1. Nama (dan stereotype) 2. Atribut
3. Metoda
Atribut dan metoda dalam class diagram dapat memiliki salah satu sifat seperti berikut di bawah ini:
1. Private, hanya dapat diakses oleh class itu sendiri.
2. Protected, hanya dapat diakses oleh class itu sendiri dan turunan dari class tersebut.
3. Public, dapat diakses oleh class selain dari class yang bersangkutan.
Class dapat direpresentasikan dalam sebuah interface atau sebaliknya merupakan implementasi dari sebuah interface yang berupa class abstrak yang hanya tidak memiliki attribute dan hanya memiliki metoda. Berikut merupakan bentuk class diagram secara umum:
2.7.3 Sequance Diagram
Sequence Diagram merupakan diagram yang mengambarkan kolaborasi yang dinamis antara obyek satu dengan yang lain. Kolaborasi ini ditunjukkan
dengan adanya interaksi antar obyek di dalam dan di sekitar sistem yang berupa pesan atau instruksi yang berurutan.
Sequence diagram umumnya digunakan untuk menggambarkan suatu skenario atau urutan langkah-langkah yang dilakukan baik oleh actor maupun sistem yang merupakan respon dari sebuah kejadian untuk mendapatkan hasil atau
output.
Gambar 2.9 Contoh Sequance Diagram[15]
2.7.4 Collaboration Diagram
Gambar 2.10 Contoh Collaboration Diagram[15]
2.7.5 Activity Diagram
Sebuah Activity Diagram menunjukkan suatu alur kegiatan secara berurutan.
Activity Diagram digunakan untuk mendiskripsikan kegiatan-kegiatan dalam sebuah operasi meskipun juga dapat digunakan untuk mendeskripsikan alur kegiatan yang lainnya seperti use case atau suatu interaksi.
2.7.6 Component Diagram
Component Diagram menunjukkan struktur dan hubungan antar komponen
software termasuk ketergantungan (dependency) diantara komponen-komponen tersebut. Komponen pada piranti lunak adalah berupa modul-modul yang berisikan code, baik library maupun executable. Umumnya komponen yang terbentuk dari beberapa class dan/atau package, atau juga dapat dari komponen-komponen yang lebih kecil.
Gambar 2.12 Component Diagram[15]
2.7.7 Deployment Diagram
Deployment Diagram menunjukkan arsitektur fisik pada hardware dan
31 3.1 Analisis
Analisis bertujuan untuk mengidentifikasi permasalahan-permasalahan yang terdapat pada sistem serta menentukan kebutuhan-kebutuhan dari sistem yang dibangun. Analisis tersebut meliputi analisis masalah, analisis kebutuhan
non-fungsional, dan analisis kebutuhan fungsional.
3.2 Analisis Masalah
Berdasarkan penelitian yang dilakukan, permasalahan yang terjadi dapat
dirumuskan sebagai berikut:
1. Keyboard standar yang tersedia pada ponsel android tidak menyediakan huruf Jerman. Sehingga pengguna tidak bisa menginputkan teks
non-digital dengan bahasa Jerman.
2. Penggunaan kamus tidak efisien jika menterjemahkan satu baris kalimat.
3.3 Analisis Metode
1. Take Picture
Tahap ini merupakan tahap awal yang digunakan untuk mengambil gambar
melalui kamera yang terpasang pada perangkat android, sebagai inputan yang akan diproses oleh tahap berikutnya.
2. Cropping
Tahap ini berfungsi untuk memotong gambar yang telah diambil oleh
pengguna. Tahap cropping perlu dilakukan untuk memfokuskan gambar pada area teks saja agar tidak ada objek selain teks yang akan dikenali oleh
Take Picture
Cropping
Grayscaling
Character Recognition
Translating Text Output
Text Output
End
OCR. Pengguna menentukan sendiri area teks pada gambar untuk dipotong, agar ukuran gambar lebih kecil sehingga mempercepat proses penengenalan
karakter. Proses pemotongan gambar menggunakan fungsi yang sudah ada pada perangkat android. Berikut adalah kode untuk memanggil fungsi crop.
3. Grayscaling
Citra berwarna yang sudah terpotong, selanjutnya akan dibuat menjadi citra
grayscale. Metode yang digunakan untuk proses grayscaling adalah
luminosity. Formula untuk metode luminosity adalah 0.21 R + 0.72 G + 0.07 B. Berikut adalah langkah-langkah pada metode luminosity.
Metode luminosity melakukan perulangan pada setiap piksel untuk mencari nilai piksel tersebut. Warna pada setiap piksel akan direpresetasikan ke
dalam bentuk desimal yaitu 0-255. Berikut adalah contoh citra berwarna.
Metode luminosity melakukan perulangan pada setiap piksel untuk mencari nilai piksel tersebut. Warna merah murni (pure red) pada gambar di atas memiliki nilai R=255, G=0, B=0, warna hijau murni (pure green) memiliki nilai R=0, G=255, B=0, sedangkan warna ungu memiliki nilai R=255, B=255, G=0, dan piksel terakhir berwarna kuning, memiliki nilai R=255,
B=0, G=255, maka nilai-nilai tersebut akan dikalikan dengan formula yang
sudah ditentukan sebagai berikut:
1. Merah = 0.21*255 + 0.72*0 + 0.07*0 = 54 + 0 + 0 = 54 2. Hijau = 0.21*0 + 0.72*255 + 0.07*0 = 0 + 184 + 0 = 184 3. Ungu = 0.21*255 + 0.72*0 + 0.07*255 = 54 + 0 + 18 = 72
4. Kuning = 0.21*255 + 0.72*255 + 0.07*0 = 54 + 184 + 0 = 238
Citra yang berwarna akan digantikan dengan citra grayscale sesuai dengan nilai yang sudah didapatkan melalui perhitungan di atas. Berikut adalah citra
grayscale yang dihasilkan.
Gambar 3.3 Citra Hasil Grayscaling Berikut adalah contoh citra grayscale
Gambar 3.4 Contoh Citra Grayscale 4. Character Recognition
Proses pengenalan karakter menggunakan layanan yang sudah ada, yaitu
Gambar 3.5 Proses Pengenalan Karakter A.Preprocessing
Berikut adalah beberapa proses yang terdapat pada tahap preprocessing:
1. Segmentasi Citra
Segmentasi citra dilakukan utnuk memisahkan background dengan
foreground dengan merubah citra grayscale menjadi citra biner menggunakan metode otsu. Berikut adalah penjelasan mengenai metode otsu
Contoh citra masukan adalah citra grayscale dengan matriks 2x2.
Gambar 3.6 Citra Masukan
adalah 54, 72, 184, 238. Di bawah ini merupakan histogram dari citra
masukan.
Gambar 3.7 Histogram Citra Masukan
Selanjutnya mencari nilai weight, mean dan variance background dengan rumus sebagai berikut:
Wb = Jumlah piksel background / total piksel pada citra = (1+1) / 4 = 0.5
Mb = (derajat keabuan n * jumlah piksel derajat keabuan n) / total piksel background
Selanjutnya mencari nilai weight, mean dan variance foreground dengan rumus sebagai berikut:
Wf = Jumlah piksel foreground / total piksel pada citra = (1+1) / 4 = 0.5
= (184 * 1) + (238 * 1) / 2 = 211
Vf = ((derajat keabuan n – Mf)^2 * jumlah piksel derajat keabuan n) / jumlah piksel foreground
= ((184 – 211)^2 * 1) + ((238 – 211)^2 * 1) / 2 = 729
Langkah terakhir adalah mencari nilai Within Class Variance dengan rumus sebagai berikut:
Wb*Vb + Wf*Vf = 0.5*81 + 0.5*729 = 405 Berikut adalah contoh dari citra biner
Gambar 3.8 Contoh Citra Biner
2. Segmentasi Karakter
Segmentasi karakter dilakukan untuk menemukan teks pada gambar
dan memotongnya menjandi karakter. Segmentasi karakter dilakukan dengan menggunakan metode Connected component analysis.
Gambar 3.9 Connected Compenent Analysis B. Proses Pengenalan
Hasil dari segmentasi karakter akan diproses untuk dicocokan dengan data yang sudah ada pada database tesseract. Algoritma fuzzy menilai tingkat kebenaran dari setiap karakter. Berikut adalah ilustrasi dari algoritma fuzzy logic.
Fuzzification: mengubah masukan-masukan yang nilai kebenarannya
bersifat pasti (crisp input) ke dalam bentuk fuzzy input.
Inference: melakukan penalaran menggunakan fuzzy input dan fuzzy rules yang telah ditentukan sehingga menghasilkan fuzzy output. Secara sintaks, suatu fuzzy rule (aturan fuzzy) dituliskan sebagai
IF antecendent THEN consequent
Defuzzification: mengubah fuzzy output menjadi crisp value berdasarkan fungsi keanggotaan yang telah ditentukan.
5. Text Output
Hasil pengenalan karakter oleh OCR akan dikirim kembali ke aplikasi berupa file teks dengan bahasa Jerman yang selanjutnya akan diterjemahkan ke dalam bahasa Indonesia.
6. Translating
Proses penterjemahan teks menggunakan layanan dari Microsoft Translator.
Microsoft Translator secara otomatis menterjemahkan hasil pengenalan karakter tanpa menunggu perintah dari pengguna.
7. Text Output
3.4 Analisis Kebutuhan Non-Fungsional
Analisis kebutuhan non-fungsional terdiri dari analisis perangkat keras, perangkat lunak dan pengguna yang menggunakan aplikasi yang akan dibangun.
3.4.1 Analisis Kebutuhan Perangkat Keras
Kebutuhan perangkat keras untuk menjalankan aplikasi ini adalah
smartphone Android yang memiliki beberapa spesifikasi utama sebagai berikut: 1. Sistem operasi Android v4.0 (Ice Cream Sandwich).
2. Kamera 3 MP, untuk keperluan pengambilan gambar yang dilakukan secara langsung.
3. Tampilan layar sentuh, untuk keperluan pemotongan gambar yang dilakukan secara manual.
4. Media penyimpanan eksternal, untuk keperluan menyimpan gambar yang dihasilkan oleh program aplikasi.
5. Koneksi internet.
3.4.2 Analisis Kebutuhan Perangkat Lunak
Perangkat lunak yang dipakai dalam pengembangan aplikasi, diantaranya
adalah sebagai berikut:
1. Sistem Operasi Windows 7 Home Edition.
2. Java Development Kit versi 1.8.0, untuk keperluan kompilasi kode-kode program.
3. Eclipse IDE 3.7, digunakan sebagai perangkat lunak untuk membangun aplikasi android.
5. Android Development Tool, sebagai plugin untuk mengintegrasikan Android SDK pada eclipse.
6. Tesseract digunakan untuk pengenalan teks pada citra dan proses ekstraksi teks.
7. Microsoft translator java API, digunakan untuk mengintegrasikan aplikasi dengan layanan Microsoft Translator, sehingga aplikasi dapat menerjemahkan teks dengan bahasa Jerman ke bahasa Indonesia.
3.4.3 Analisis Pengguna
Aplikasi yang akan dibangun diperuntukan bagi pengguna smartphone
Android di Indonesia, khususnya bagi pelajar Indonesia yang sedang melanjutkan pendidikan di negara Jerman dan kurang begitu memahami bahasa Jerman. Aplikasi ini juga dapat difungsikan sebagai kamus untuk mengenal berbagai
macam kata yang ditulis menggunakan bahasa Jerman, sehingga tidak menutup kemungkinan dapat dipakai oleh berbagai kalangan.
3.5 Analisis Kebutuhan Fungsional
Kebutuhan fungsional meliputi beberapa diagram UML, diantaranya: diagram use case, diagram activity, diagram class dan diagram sequence. Diagram tersebut dipergunakan sebagai desain rancangan untuk mempermudah proses
pengembangan aplikasi khususnya untuk aplikasi yang dikembangkan menggunakan pemrograman berorientasi objek.
3.5.1 Diagram Use case Diagram Use case
Pada sistem aplikasi yang dirancang terdapat tiga buah use case dan satu
Gambar 3.11 Diagram Use case
Deskripsi Use case
Tabel 3.1 Use case Take Picture
Reaksi Aktor Reaksi Sistem
Skenario Normal
1. Mengklik button Take Picture
2. Menampilkan aplikasi kamera yang
terpasang di perangkat
3. Memilih aplikasi kamera
4. Menjalankan aplikasi kamera yang
dipilih
5. Mengambil gambar
6. Menampilkan gambar yang diambil
7. Mengklik tombol yes/ok
8. Menyimpan gambar yang diambil
Skenario Alternatif
1. Mengklik tombol retake
2. Mengulangi pengambilan gambar
3. Mengklik tombol cancel
Tabel 3.2 Use case Cropping
Reaksi Aktor Reaksi Sistem
Skenario Normal
1. Menampilkan hasil gambar yang
diambil
2. Menentukan area yang akan dipotong
3. Mengklik tombol crop
4. Melakukan proses cropping
5. Menyimpan gambar
Skenario Alternatif
1. Mengklik tombol cancel
2. Mengembalikan ke menu utama
aplikasi
Tabel 3.3 Use case Output
Reaksi Aktor Reaksi Sistem
1. Menampilkan hasil pengenalan teks
2. Mengirimkan hasil pengenalan ke
layanan Microsoft Translator
3. Menampilkan teks hasil penerjemahan
3.5.3 Activity Diagram
Activity diagram digunakan untuk menggambarkan alur rangkaian proses yang terjadi di dalam sistem aplikasi serta menjelaskan bagaimana sebuah use case terjadi atau dipicu dari use case yang lain
1. Activity Diagram Take Picture
Gambar 3.12 Activity Diagram Take Picture 2. Activity Diagram Cropping
Berikut adalah proses pemotongan gambar yang digambarkan dengan
diagram aktivitas.
Gambar 3.13 Activity Diagram Cropping
User Sistem
Menampilkan menu utama Mengklik button Take Picture
Menjalankan aplikasi kamera yang dipilih Mengambil gambar
Lanjutkan proses? Tidak
Menyimpan Gambar Ya
Menampilkan aplikasi kamera yang terpasang di perngkat android Memilih aplikasi kamera
Menampilkan gambar yang diambil Retake
User Sistem
Menampilkan hasil gambar yang diambil Menentukan area yang akan dipotong
3. Activity Diagram Output
Berikut adalah aktifitas dari hasil pengenalan teks menggunakan OCR yang kemudian hasil pengenalan tersebut dikirimkan kelayanan Microsoft Translator untuk diterjemahkan.
Gambar 3.14 Activity Diagram Output
3.5.4 Diagram Class
Diagram Class digunakan untuk menggambarkan secara abstrak struktur dari aplikasi yang akan dibangun, class-class yang terlibat, serta hubungan antar
class untuk saling berkomunikasi satu sama lain.
Sistem
Menamplkan teks hasil pengenalan
Mengirimkan teks ke layanan Microsoft Translator
Gambar 3.15 Diagram Class
3.5.5 Diagram Sequence
Diagram sequence menggambarkan urutan aktifitas yang terjadi di dalam sistem. Diagram ini menunjukkan pengiriman pesan-pesan yang melewati objek yang terlibat di dalam sistem serta tahapan langkah yang harus dilalui untuk
Gambar 3.16 Diagram Sequance
User MainActivity Preprocessing TessBaseAPI
1 : Mengklik Take Picture()
2 : CaptureImage()
3 : Memilih aplikasi kamera()
4 : openCamera()
5 : Mengambil gambar()
6 : cropImage()
7 : croppedDir()
8 : greyscale()
9 : greyImage()
10 : greyDir()
11 : setImage()
12 : setPageSegMode()
13 : setRectangle()
14 : getRegion()
15 : getText()
16 : getTextLine()
17 : getWord()
18 : getInitLanguageAsString()
19 : setOCRText() 20 : myAsyncTask()
3.6 Perancangan Sistem
Sistem yang akan dibangun dari aplikasi berbasis mobile android ini memiliki fungsi utama untuk melakukan proses pengolahan citra. Sedangkan untuk proses pengenalan teks dan penerjemahan akan memanfaatkan dua layanan
yang sudah ada, yaitu Tesseract dan Microsoft Translator. Citra yang dapat dikenali oleh layanan Tesseract berupa citra yang berwarna hitam dengan latar
belakang berwarna putih. Oleh karena itu, tujuan dari pengolahan citra yang dikerjakan oleh program aplikasi ialah untuk menghasilkan citra yang bisa dikenali oleh layanan OCR tersebut.
3.6.1 Rancangan Antarmuka
Sistem dari aplikasi yang akan dibangun memiliki satu buah tampilan utama, yaitu tampilan Menu Utama. Tampilan Menu Utama digunakan untuk mengambil sumber foto yang ingin diolah, hasil pengenalan karakter dan hasil
terjemahan teks.
1. Tampilan Utama Aplikasi
Gambar 3.17 Tampilan Utama Aplikasi Navigator
2. Tampilan Antarmuka Pengambilan Gambar
Gambar 3.18 Tampilan Antarmuka Pengambilan Gambar
3. Tampilan Antarmuka Pemotongan Gambar
Gambar 3.19 Tampilan Antarmuka Pemotongan Gambar
F2 Navigator
1. Klik tombol kamera untuk menuju F3
2. Klik tombol back pada ponsel android untuk kembali ke F1
F3
Gambar
Crop
Cancel Navigator
1. Klik tombol crop untuk menuju F1 dengan hasil pengenalan karakter 2. Klik tombol cancel untuk
3.6.2 Perancangan Jaringan Semantik
Jaringan semantik menggambarkan hubungan navigasi menu dari satu halaman ke halaman lainnya (dari form satu ke form lainnya). Berikut adalah
gambaran jaringan semantik yang ada pada aplikasi yang akan dibangun.
Gambar 3.20 Jaringan Semantik
3.6.3 Perancangan Prosedural
Perancangan prosedural digunakan untuk menggambarkan langkah-langkah atau alur dari setiap proses yang ada pada sistem. Berikut adalah rancangan
prosedural dari aplikasi yang akan dibangun.
F1 F2
1. Proses Pengambilan Gambar
Gambar 3.21 Flowchart Proses Pengambilan Gambar Ya
Tidak
Mulai
Mengambil Gambar
Lanjutkan Proses?
Menyimpan Gambar
2. Cropping
Mulai
Menentukan area yang akan dipotong
Lanjutkan Proses?
Menyimpan Gambar
Selesai Memotong gambar Tidak
Ya
3. Grayscaling
Gambar 3.23 Flowchart Grayscaling Mulai
Selesai Grayscaling
53 4.1 Implementasi sistem
Dalam bab ini akan dilakukan implementasi dan pengujian terhadap sistem yang telah dibangun. Tahapan ini dilakukan setelah analisis dan perancangan selesai dilakukan, kemudian diimplementasikan pada bahasa pemrograman yang
digunakan. Setelah implementasi, dilakukan pengujian sistem dimana akan dilihat kekurangan pada sistem yang telah dibangun, untuk dilakukan perbaikan maupun
pengembangan terhadap sistem tersebut.
4.1.1 Implementasi Perangkat Keras
Perangkat keras yang digunakan untuk mengimplementasikan program ini
adalah smartphone android dengan spesifikasi sebagai berikut: 1. Processor : 1 GHz
2. RAM : 512 MB
3. GPU : PowerVR
4. Penyimpanan : 2 GB
5. Kamera : 5 Mp
4.1.2 Implementasi Perangkat Lunak
Perangkat lunak yang digunakan untuk mengimplementasikan program ini adalah sebagai berikut:
4.1.3 Implementasi Antarmuka
Pada bagian implementasi antarmuka ini akan diimplementasikan
antarmuka dari aplikasi yang telah dibangun. Aplikasi yang dibangun hanya memiliki 3 tampilan, yaitu menu utama, form kamera dan form cropping.
4.1.3.1 Implementasi Antarmuka Menu Utama
Menu utama pada aplikasi yang dibangun hanya memiliki 1 tombol, yaitu tombol untuk membuka aplikasi kamera yang terpasang pada perangkat android
dan terdapat 2 textview yang berfungsi untuk menampilkan teks hasil pengenalan dan teks hasil penerjemahan. Berikut adalah tampilan antarmuka menu utama
pada aplikasi ini.
Gambar 4.1 Antarmuka Menu Utama
4.1.3.2 Implementasi Antarmuka Form Kamera
Tampilan selanjutnya adalah antarmuka kamera. Antarmuka kamera bisa
digunakan untuk mengambil gambar. Berikut adalah tampilan antarmuka aplikasi kamera default.
Gambar 4.2 Antarmuka Form Kamera
4.1.3.3 Implementasi Antarmuka Form Cropping
Form cropping pada aplikasi ini muncul secara otomatis setelah user
melakukan proses pengambilan gambar. Berikut adalah tampilan antarmuka pada saat proses cropping.
Tabel 4.1 Implementasi Antarmuka
No Menu Deskripsi
1. Form Menu Utama Digunakan untuk masuk ke form
kamera.
2 Form Kamera Digunakan untuk mengambil gambar.
3 Form Cropping Digunakan untuk menentukan area
dari gambar yang sudah diambil untuk
dipotong (crop)
4.2 Pengujian Perangkat Lunak
Pengujian yang digunakan untuk menguji aplikasi ini dilakukan dengan
cara alpha menggunakan metode pengujian secara black box dan pengujian beta dengan cara sistem diuji langsung oleh pengguna dengan cara melakukan
wawancara dan memberikan keusioner.
4.2.1 Rencana Pengujian Black Box
Rencana pengujian yang akan dilakukan dengan menggunakan black box dapat diliat pada tabel 4.2.
Tabel 4.2 Rencana Pengujian
Kelas Uji Butir Uji Jenis Pengujian
Menguji proses pengambilan
gambar
Menguji proses pengambilan
gambar
Black box
Menguji proses cropping Menguji proses cropping Black box
Mengecek hasil pengenalan
karakter
Mengecek hasil pengenalan karakter Black box
4.2.2 Kasus Dan Hasil Pengujian Black box
Berdasarkan rencana pengujian, maka dapat dilakukan pengujian Black box pada aplikasi ini adalah sebagai berikut:
1. Pengujian Proses Pengambilan Gambar
Mengecek penggunaan kamera pada perangkat android untuk mengambil gambar sebagai inputan awal. Dari hasil uji proses pengambilan gambar yang kemudian diamati dan menghasilkan kesimpulan dari pengujian tersebut dapat dilihat pada
tabel 4.3
Tabel 4.3 Pengujian Proses Pengambilan Gambar Kasus dan Hasil Uji (Data Benar)
Data Masukan Yang diharapkan Pengamatan Kesimpulan
Citra aktual yang
akan diambil
Sistem melakukan
proses pengambilan
gambar
Output sesuai dengan
gambar aktual
[√ ] Diterima
[ ] Ditolak
Kasus dan Hasil Uji (Data kosong)
2. Pengujian Proses Cropping
Proses cropping digunakan untuk memfokuskan bagian gambar mana yang akan diproses. Dari hasil uji proses cropping yang kemudian diamati dan menghasilkan kesimpulan dari pengujian tersebut dapat dilihat pada tabel 4.4
Tabel 4.4 Pengujian Proses Cropping Kasus dan Hasil Uji (Data Benar)
Data Masukan Yang diharapkan Pengamatan Kesimpulan
Citra hasil proses
Output berupa gambar
yang sesuai dengan
area yang dipotong
[√ ] Diterima
[ ] Ditolak
Kasus dan Hasil Uji (Data kosong)
Jika pengguna
ke menu utama aplikasi
[√ ] Diterima
[ ] Ditolak
3. Pengujian Mengecek Hasil Pengenalan Karakter
Dari hasil uji mengecek hasil pengenalan karakter yang kemudian diamati dan
Tabel 4.5 Hasil Pengenalan Karakter Kasus dan Hasil Uji (Data Benar)
Data Masukan: Citra dengan teks
berukuran 9
Yang diharapkan Pengamatan Kesimpulan
Melakukan
Yang diharapkan Pengamatan Kesimpulan
Melakukan
Data Masukan: Citra dengan 3 baris
teks
Yang diharapkan Pengamatan Kesimpulan
Melakukan
Data Masukan: Citra berwarna Yang diharapkan Pengamatan Kesimpulan
Data Masukan: Citra dengan teks
tulisan tangan
Yang diharapkan Pengamatan Kesimpulan
Melakukan
4. Pengujian Proses Penerjemahan
Dari hasil uji mengecek hasil penerjemahan teks yang kemudian diamati dan
menghasilkan kesimpulan dari pengujian tersebut dapat dilihat pada tabel 4.6 Tabel 4.6 Pengujian Proses Penerjemahan
Kasus dan Hasil Uji (Data Benar)
Data Masukan Yang diharapkan Pengamatan Kesimpulan
Teks hasil
Kasus dan Hasil Uji (Data Kosong)
Data Masukan Yang diharapkan Pengamatan Kesimpulan
Jika tidak ada
error tidak ada koneksi
internet
[√ ] Diterima
4.2.3 Kesimpulan Hasil Pengujian Alpha
Berdasarkan hasil pengujian dengan kasus uji sample di atas dapat ditarik
kesimpulan bahwa perangkat lunak telah bebas dari kesalahan sintaks dan secara fungsional menghasilkan hasil yang sesuai dengan yang diharapkan.
4.2.4 Kasus dan Hasil Pengujian Beta
Pengujian beta dilakukan secara objektif, dimana diuji secara langsung oleh pengguna. Penilaian sistem diperoleh dengan cara kuesioner dan
mewawancarai pengguna, lalu dari hasil pengujian tersebut, dapat ditarik kesimpulan apakah aplikasi yang dibangun telah sesuai dengan tujuan atau tidak.
4.2.5 Wawancara Pengguna
Wawancara dilakukan dengan lima pelajar yang sedang mengikuti kursus bahasa Jerman. Berikut adalah daftar pertanyaan yang diajukan ke pada pengguna
dari aplikasi yang dibangun:
1. Apakah aplikasi membantu untuk mempelajari bahasa Jerman?
2. Apakah aplikasi ini lebih efisien untuk menerjemahkan satu baris kalimat?
4.2.6 Hasil Wawancara
Narasumber 1
1. Pertanyaan : Apakah aplikasi membantu untuk mempelajari bahasa Jerman? Jawaban : Ya, aplikasi ini cukup membantu.
2. Pertanyaan : Apakah aplikasi ini lebih efisien untuk menerjemahkan satu baris kalimat?
Jawaban : Ya, aplikasi ini mampu menerjemahkan teks dalam bentuk kalimat
3. Pertanyaan : Apakah aplikasi berbasis mobile lebih praktis? Jawaban : Ya, karena perangkat mobile mudah untuk dibawa.
4. Pertanyaan : Apakah tampilan dari aplikasi menarik? Jawaban : Tampilan dari aplikasi ini biasa saja.
5. Pertanyaan : Apakah aplikasi mudah untuk digunakan?
Jawaban : Aplikasi ini sederhana sehingga mudah untuk digunakan
Narasumber 2
1. Pertanyaan : Apakah aplikasi membantu untuk mempelajari bahasa Jerman? Jawaban : Aplikasi ini membantu untuk mempelajari bahasa Jerman.
2. Pertanyaan : Apakah aplikasi ini lebih efisien untuk menerjemahkan satu baris kalimat?
Jawaban : Lebih efisien karena tidak perlu mengetikan kata per kata 3. Pertanyaan : Apakah aplikasi berbasis mobile lebih praktis?
Jawaban : Ya, perangkat mobile mudah untuk dibawa.
4. Pertanyaan : Apakah tampilan dari aplikasi menarik? Jawaban : Tampilan dari aplikasi ini biasa saja.
5. Pertanyaan : Apakah aplikasi mudah untuk digunakan?
Narasumber 3
1. Pertanyaan : Apakah aplikasi membantu untuk mempelajari bahasa Jerman? Jawaban : Ya, aplikasi ini membantu untuk mempelajari bahasa Jerman. 2. Pertanyaan : Apakah aplikasi ini lebih efisien untuk menerjemahkan satu baris
kalimat?
Jawaban : Aplikasi ini efisien untuk satu baris teks dalam bentuk kalimat 3. Pertanyaan : Apakah aplikasi berbasis mobile lebih praktis?
Jawaban : Ya, perangkat mobile lebih praktis.
4. Pertanyaan : Apakah tampilan dari aplikasi menarik? Jawaban : Tampilan dari aplikasi ini sudah cukup baik.
5. Pertanyaan : Apakah aplikasi mudah untuk digunakan?
Jawaban : Ya, karena sudah terbiasa menggunakan aplikasi mobile
Narasumber 4
1. Pertanyaan : Apakah aplikasi membantu untuk mempelajari bahasa Jerman? Jawaban : Aplikasi ini cukup membantu.
2. Pertanyaan : Apakah aplikasi ini lebih efisien untuk menerjemahkan satu baris kalimat?
Jawaban : Cukup efisien dan lebih mudah
3. Pertanyaan : Apakah aplikasi berbasis mobile lebih praktis? Jawaban : Ya, lebih praktis dibanding perangkat lain.
4. Pertanyaan : Apakah tampilan dari aplikasi menarik?
Jawaban : Tampilan dari aplikasi ini sederhana dan lumayan bagus.
5. Pertanyaan : Apakah aplikasi mudah untuk digunakan?
Narasumber 5
1. Pertanyaan : Apakah aplikasi membantu untuk mempelajari bahasa Jerman? Jawaban : Aplikasi ini dapat digunakan untuk mempelajari bahasa Jerman. 2. Pertanyaan : Apakah aplikasi ini lebih efisien untuk menerjemahkan satu baris
kalimat?
Jawaban : Ya, karena tidak perlu mengetikan kalimat tersebut. 3. Pertanyaan : Apakah aplikasi berbasis mobile lebih praktis?
Jawaban : Ya, perangkat mobile lebih praktis dibanding perangkat lain.
4. Pertanyaan : Apakah tampilan dari aplikasi menarik? Jawaban : Tampilan dari aplikasi ini cukup baik.
5. Pertanyaan : Apakah aplikasi mudah untuk digunakan? Jawaban : Mudah, aplikasi ini tidak kompleks.
4.2.7 Kuesioner
Kuesioner diberikan kepada 30 pengguna smartphone android yang akan menggunakan aplikasi ini. Adapun pertanyan-pertanyaan yang diajukan kepada
pengguna untuk menjadi bahan penelitian adalah sebagai berikut: Tabel 4.7 Kuesioner
No Pertanyaan STS TS RG ST SS
1 Apakah aplikasi membantu untuk mempelajari
bahasa Jerman?
2 Apakah aplikasi ini lebih efisien untuk menerjemahkan satu baris kalimat?
3 Apakah aplikasi berbasis mobile lebih praktis?
4 Apakah tampilan dari aplikasi menarik?
4.2.7.1Hasil Kuesioner
Pertanyaan 1: Apakah aplikasi membantu untuk mempelajari bahasa Jerman? Tabel 4.8 Hasil Pengujian Kuesioner Pertanyaan 1
Level Responden Skala Skor Jumlah Responden Jumlah Skor
Pengguna
Smartphone Android
Sangat Setuju 5 10 50
Setuju 4 15 60
Ragu-Ragu 3 3 9
Tidak Setuju 2 2 4
Sangat Tidak Setuju 1 0 0
Jumlah 123
Berdasarkan perhitungan di atas, jumlah skor yang dapat adalah sebanya
123, dengan skala kategori jawaban diantara Setuju dan Sangat Setuju, maka dapat disimpulkan bahwa aplikasi ini membantu untuk mempelajari bahasa
Jerman. Secara kontinum dapat digambarkan seperti di bawah.
RG
TS SS
STS ST
30 60 90 120 123 150
Pertanyaan 2: Apakah aplikasi ini lebih efisien untuk menerjemahkan satu baris kalimat?
Tabel 4.9 Hasil Pengujian Kuesioner Pertanyaan 2
Level Responden Skala Skor Jumlah Responden Jumlah Skor
Pengguna
Smartphone Android
Sangat Setuju 5 13 65
Setuju 4 12 48
Ragu-Ragu 3 4 12
Tidak Setuju 2 1 2
Sangat Tidak Setuju 1 0 0
Jumlah 125
Berdasarkan perhitungan di atas, jumlah skor yang dapat adalah sebanya 125, dengan skala kategori jawaban diantara Setuju dan Sangat Setuju, maka dapat disimpulkan bahwa aplikasi ini lebih efisien untuk menerjemahkan stau
baris kalimat Jerman. Secara kontinum dapat digambarkan seperti di bawah.
RG
TS SS
STS ST
30 60 90 120 125 150
Pertanyaan 3: Apakah aplikasi berbasis mobile lebih praktis?
Tabel 4.10 Hasil Pengujian Kuesioner Pertanyaan 3
Level Responden Skala Skor Jumlah Responden Jumlah Skor
Pengguna
Smartphone Android
Sangat Setuju 5 17 85
Setuju 4 13 52
Ragu-Ragu 3 0 0
Tidak Setuju 2 0 0
Sangat Tidak Setuju 1 0 0
Jumlah 137
Berdasarkan perhitungan di atas, jumlah skor yang dapat adalah sebanya
137, dengan skala kategori jawaban diantara Setuju dan Sangat Setuju, maka dapat disimpulkan bahwa aplikasi berbasis mobile lebih praktis. Secara kontinum dapat digambarkan seperti di bawah.
RG
TS SS
STS ST
30 60 90 120 137 150
Pertanyaan 4: Apakah tampilan dari aplikasi menarik?
Tabel 4.11 HAsil Pengujian Kuesioner Pertanyaan 4
Level Responden Skala Skor Jumlah Responden Jumlah Skor
Pengguna
Smartphone Android
Sangat Setuju 5 7 35
Setuju 4 15 60
Ragu-Ragu 3 4 12
Tidak Setuju 2 4 8
Sangat Tidak Setuju 1 0 0
Jumlah 115
Berdasarkan perhitungan di atas, jumlah skor yang dapat adalah sebanya
115, dengan skala kategori jawaban diantara Ragu-Ragu dan Setuju, maka dapat disimpulkan bahwa tampilan dari aplikasi ini belum memuaskan pengguna. Secara kontinum dapat digambarkan seperti di bawah.
RG
TS SS
STS ST
30 60 90 115 120 150
Pertanyaan 5: Apakah aplikasi mudah untuk digunakan?
Tabel 4.12 Hasil Pengujian Kuesioner Pertanyaan 5
Level Responden Skala Skor Jumlah Responden Jumlah Skor
Pengguna dapat disimpulkan bahwa aplikasi ini mudah untuk digunakan. Secara kontinum
dapat digambarkan seperti di bawah.
4.2.8 Kesimpulan Hasil Pengujian Beta
Berdasarkan wawancara dan kuesioner yang telah dilakukan maka kesimpulan yang didapat adalah aplikasi berbabasis mobile lebih mudah dan praktis untuk digunakan, dan aplikasi yang dibangun membantu dalam
mempelajari dan menerjemahkan satu baris kalimat bahasa Jerman. Adapun masukan dari para penguji sistem adalah membuat sistem penerjemahan sendiri
sehingga tidak membutuhkan koneksi internet untuk menggunakannya dan tampilan dari aplikasi dibuat agar lebih menarik lagi.
RG
TS SS
STS ST
30 60 90 120 134 150
70
5.1 Kesimpulan
Dari hasil pengujian dan wawancara yang telah dilakukan dengan lima pelajar yang sedang mengikuti kursus bahasa Jerman, dan kuesioner yang diberikan kepada 30 pengguna, diperoleh kesimpulan bahwa aplikasi yang
dibangun dapat digunakan sebagai alat bantu untuk menerjemahkan teks bahasa Jerman
5.2 Saran
Beberapa saran untuk pengembangan selanjutnya, diantaranya:
1. Penggunaan perangkat lunak OCR yang dapat mengenali teks tulisan tangan.
2. Membuat sistem penerjemahan teks sendiri yang sudah terintegrasi dengan
program aplikasi.