8
basis data, dan menampilkan animasi cara penulisan serta suara cara membaca aksara dengan pustaka Ion. Pengujian yang dilakukan terhadap prototype awal ini
menemukan bahwa pada performanya, proses OCR masih cenderung lambat sehingga dibutuhkan cara lain untuk mempercepat proses. Evaluasi juga diberikan
oleh beberapa pengguna, yakni agar menambahkan fitur penerjemahan dan latihan menulis aksara Jepang pada aplikasi ini.
Pada siklus berikutnya, dilakukan perubahan pada kode program untuk memperbaiki kelemahan dan menambah fitur pada aplikasi. Efisiensi OCR
dioptimalkan dengan melakukan penyusutan pada matriks hasil pindaian dari kamera untuk selanjutnya dikonversi ke dalam bentuk bitmap yang diperlukan
oleh OCR. Dengan demikian, proses OCR dapat dilakukan dengan lebih cepat. Selain optimasi kode, pada siklus kedua dilakukan penambahan fungsi
penerjemahan dan latihan untuk membantu pengguna agar lebih cepat menghafalkan huruf-huruf aksara Jepang.
Tahap kelima adalah penulisan laporan hasil penelitian. Pada tahap ini, proses penelitian didokumentasikan proses penelitian yang sudah dilakukan dari
tahap awal hingga akhir ke dalam tulisan, yang nantinya akan menjadi jurnal penelitian.
4. Hasil dan Pembahasan
Aplikasi yang dihasilkan ditujukan untuk para pengguna device Android yang tertarik untuk mempelajari aksara Jepan. Aplikasi ini dikembangkan dengan
kebutuhan minimal Android SDKadalah API8, yaitu Android SDK 4.0. Pembatasan
versi ini
disesuaikan dengan
kebutuhan minimum
dari pustakaOpenCV yang digunakan untuk membuat aplikasi ini. Selain pustaka
OpenCV untuk membantu menjalankan modul AR, aplikasi ini juga dibuat dengan bantuan beberapa pustaka lainnya, seperti pustaka Ion untuk menampilkan gambar
berformat gif dan pustaka Tesseract untuk melakukan pengenalan karakter fisik.
Fungsi utama dari aplikasi dihasilkan ini adalah mengetahui cara menulis dan membaca karakter aksara Jepang yang terdapat pada media cetak. Pada
awalnya aplikasi melakukan pemindaian karakter aksara Jepang pada media fisik dengan menggukan pustaka OpenCV. Proses pemindaian dengan menggunakan
OpenCV akan menghasilkan citra digital dalam format matriks pada setiap frame yang dipindai secara terus-menerus.Dalam pustaka OpenCV, matriks
direpresentasikan sebagai suatu array multi-dimensi numerik, yang menampung informasi hasil pemindaian kamera. Matriks hasil pemindaian tersebut dikonversi
ke dalam format bitmap oleh fungsi matToBitmapyang dimiliki OpenCV.
Kode Program 1 Proses Pemindaian Karakter Fisik
1 public Mat onCameraFrameCvCameraViewFrame inputFrame { 2 Rect rect = new Rectbmp_start_x, bmp_start_y, R_WI, R_HI;
3 Mat cropped_mat = new Matmat, rect; 4 Utils.matToBitmapcropped_mat, bmp;
5 doOCR = new DoOCR; 6 doOCR.execute;
7 doOCR.delegate = this; 8 return mat;
9 }
9
Gambar bitmap yang dihasilkan pemindaian karaktermenjadi masukan dari proses yaitu proses pengenalan karakter OCR. Proses ini dilakukan dengan
memanfaatkan pustaka Tesseractselama proses pemindaian berlangsung. Proses ini dilakukan secara real-timetepat setelah proses pemindaian menghasilkan
keluaran. Hasil dari proses adalah karakter bahasa Jepang dijital berformat UTF-8. Kode proses pengenalan karakter dapat dilihat para Kode Program 2.
Kode Program 2 Proses Pengenalan Karakter Fisik OCR
1 protected String doInBackgroundVoid... params { 2 tessBaseAPI.setImagebmp;
3 resultText = tessBaseAPI.getUTF8Text; 4 handler.postDelayednew Runnable {
5 Override 6 public void run {
7 tessBaseAPI.stop; 8 }
9 }, 2000; 10 isOCRing = false;
11 return resultText; 12 }
Setelah proses pengenalan karakter selesai, aplikasi memilikiteks berupa karakter aksara Jepang yang dikenali oleh komputer bertipe data String. Teks
tersebut kemudian dipecah menjadi karakter-karakter tunggal lalu dimasukkan ke dalam sebuah array pada elemen masing-masing. Aplikasi kemudian membuat
beberapa textviewsebanyak jumlah karakter yang ada, lalu memasukkan karakter- karakter tersebut ke dalam masing-masing textview. Lalu setiap textview yang ada
diberikan onclicklistener untuk menangani masukan klik yang akan dilakukan oleh pengguna. Proses ini dapat dilihat pada Kode Program 3.
Kode Program 3Proses Pemasangan Textview
1 resultArr = resultText.split; 2 tvResult = new TextViewgetApplicationContext;
3 tvResult.setTextresultArr[i] = null ? resultArr[i] : -; 4 LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT;
5 tvResult.setLayoutParamsllp; 6 tvResults.addtvResult;
7 tvResult.setOnClickListenernew View.OnClickListener { 8 Override
9 public void onClickView v { 10 TextView tvSelected = TextViewv;
11 ifTextViewv.getText.toString = 12 charaSelectedtvSelected;
13 } 14 };
Proses pemasangan textview dilanjutkan dengan proses pengambilan informasi dari basis data dan proses pembangkitan nama berkas gif untuk
ditampilkan kepada pengguna. Kedua proses ini membutuhkan masukan berupa array hasil pemindaian pada proses sebelumnya yang ditunjukkan pada Kode
Program 3 baris pertama. Aplikasi menggunakan nama berkas yang dibangkitkan tersebut untuk mencari berkas yang sesuai dalam direktori resources. Ketika
aplikasi mendapatkan berkas yang sesuai, berkas tersebut akan ditampilkan
10
kepada pengguna dengan memanfaatkan pustaka Ion. Kedua proses ini masng- masing dapat dilihat pada Kode Program 4 dan Kode Program 5.
Kode Program 4Pembangkitan Nama Berkas
1 private String getCharaFileNameint char_id, int type{ 2 String file_name = ;
3 iftype == 1{ 4 file_name += katakana;
5 char_id -= 0; 6 }else iftype == 2{
7 file_name += hiragana; 8 char_id -= 51;
9 }else iftype == 3{ 10 file_name += kanji;
11 char_id -= 102; 12 }
13 file_name += _ + char_id; 14 return file_name;
15 }
Kode Program 5Pemasangan Berkas Gambar Bergerak
1 long image_res_id = this.getResources.getIdentifier getCharaFileName
japrom.getId, japrom.getType, drawable, this.getPackageName;
2 ifimage_res_id == 0{ 3 ivShowJapChar.setImageResourceR.drawable.no_file;
4 }else{ 5 Ion.withivShowJapChar.load
android.resource:mel.jap.app + image_res_id; 6 }
Untuk membantu pengguna mengetahui cara membaca karakter, aplikasi dapat mengeluarkan suara yang sesuai dengan karakter yang terbaca. Proses ini
dilakukan dengan menggunakan fungsi TextToSpeech yang dimiliki oleh Android SDK.Selain itu, aplikasi juga menampilkan animasi cara penulisan karakter
berupa gambar gif yang menggunakan pustaka Ion. Tampilan fungsi pemindaian karakter, fungsi penerjemahan, dan fungsi latihan dapat dilihat berturut-turut pada
Gambar 6, 7, dan 8.
Gambar 6 Tampilan Proses Pemindaian Karakter Fisik
11
Pengujian aplikasi yang dilakukan meliputi pengujian alfa maupun pengujian beta. Pengujian alfa dilakukan untuk melakukan validasi fungsi-fungsi
yang dimiliki aplikasi apakah sesuai dengan yang dirancang atau tidak. Pengujian alfa pada penelitian ini menggunakan teknik black box, yaitu pengujian fungsional
yang berfokus pada mampu tidaknya aplikasi bekerja berdasarkan persyaratan tiap fungsinya [14]. Materi pengujian dapat dilihat pada Tabel 1.
Tabel 1 Tabel Pengujian Alfa Fungsi
Hasil Keputusan
Pemindaian Karakter Aplikasi memindai obyek fisik ke dalam
sistem. Valid
Pengenalan Karakter OCR Obyek fisik dikenali dalam format dijital
UTF-8. Valid
Animasi Penulisan Karakter Sistem membangkitkan nama berkas dan
menampilkan berkas gambar bergerak gif kepada pengguna.
Valid Suara Pengucapan Karakter
Sistem mengeluarkan
suara pengucapan
karakter sesuai dengan yang dipindai oleh pengguna.
Valid
Berdasarkan keputusan-keputusan yang terdapat pada Tabel 1, dapat disimpulkan bahwa aplikasi ini sudah memenuhi fungsi yang diharapkan dan dapat berjalan
dengan efektif.
Untuk memberi hasil yang optimal, jarak perangkat dengan media cetak serta ukuran tulisan yang dipindai harus diperhatikan agar pemindaian
menghasilkan citra yang tajam dan terfokus. Selain itu, akurasi pemindaian menjadi sangat kecil ketika dilakukan pada tulisan tangan. Kesalahan yang terjadi
pada aplikasi yang ditemukan dalam pengujian alfa ini adalah kesalahan
Gambar 7
Tampilan Proses Penerjemahan
Gambar 8
Tampilan Proses Pelatihan
12
pengenalan karakter. Kesalahan ini disebababkan oleh beberapa faktor, seperti jumlah cahaya pada lingkungan obyek yang dipindai, kefokusan kamera yang
digunakan, serta ukuran karakter yang dipindai oleh aplikasi. Selain itu, dari total 110 karakter yang dicakup oleh aplikasi, terdapat 6 karakter yang secara konsisten
salah dibaca oleh aplikasi. Kesalahan ini diantisipasi dengan membuat suatu fungsi korespondensi karakter pada aplikasi.
Tabel 2 Kesalahan Pembacaan Karakter
Karakter Asli Keterangan
Karakter Hasil Keterangan
エ e katakana
工 koo kanji
カ ka katakana
力 ryoku kanji
ト to katakana
卜 boku kanji
ノ no katakana
丿 tidak terdefinisi
ロ ro katakana
口 kuchi kanji
く ku katakana
tidak terdefinisi
Pengujian beta pada aplikasi dilakukan kepada sampel pengguna sebanyak 30 orang yang sedang belajar bahasa Jepang di berbagai tempat serta berasal dari
berbagai kalangan dan usia. Responden diminta untuk mengisi kuesioner sebagai penilaian tingkat kepuasan mereka terhadap aplikasi. Penilaian kuesioner
dilakukan dalam skala Likert dengan lima skala, yaitu sangat setuju SS, Setuju S, netral N, tidak setuju ST, dan sangat tidak setuju STS.
Tabel 3Hasil Perhitungan Skala Likert No
Pertanyaan SS
S N
TS STS
Hasil Kinerja Aplikasi
1 Aplikasi ini sudah berjalan dengan baik 18
10 2
- -
90.7 2
Kecepatan proses pemindaian karakter sudah baik
15 14
1 -
- 89.3
3 Proses pengenalan karakter sudah akurat 18
3 6
3 -
84
Antarmuka
1 Tampilan antarmuka aplikasi ini menarik 5
10 12
3 -
71.3 2
Tata letak tombol, tab, dan elemen lainnya membuat aplikasi mudah digunakan
13 10
7 -
- 84
3 Antarmuka aplikasi ini dapat dimengerti
dengan baik 13
7 6
4 -
79.3
Fungsionalitas dan Materi
1 Animasi penulisan karakter membantu
pemahaman belajar 21
9 -
- -
94 2
Fitur pindai pada aplikasi ini membantu pembelajaran
22 8
- -
- 94.7
3 Fitur quiz pada aplikasi ini membantu
pembelajaran 16
6 8
- -
85.3 4
Fitur terjemahan pada aplikasi ini membantu pembelajaran
17 9
4 -
- 88.7
13
Kolom hasil pada Tabel 3 menunjukkan persentase tingkat kepuasan para responden terhadap aplikasi yang dihitung berdasarkan skala Likert. Para
responden sangat puas terhadap kinerja maupun fungsionalitas dari aplikasi. Untuk antarmuka aplikasi, para responden merasa puas terhadap tata letak dari
elemen-elemen antarmuka. Tabel 3 juga menunjukkan bahwa antarmuka aplikasi dapat dimengerti sehingga memudahkan mereka untuk menggunakan aplikasi.
5. Simpulan