Anda di halaman 1dari 36

APLIKASI KUIS BAHASA JEPANG BERBASIS ANDROID

Citra Yuanita
Hedi Oktavia Ekaputri
Kartika Eka Putri
Rahma Diah Hilmas Tuti Putri

Fakultas Teknologi Industri - Jurusan Teknik Informatika


Universitas Gunadarma
ABSTRAKSI
Maretha Tiara Yuodi. 55409550. APLIKASI KUIS BAHASA JEPANG BERBASIS
ANDROID. Penulisan Ilmiah. Teknik Informatika, Fakultas Teknologi Industri,
Universitas Gunadarma, 2012 Kata Kunci : Android, E-learning, Kuis, Java, XML,
Platform (xii + 57 + Lampiran) Teknologi informasi merupakan suatu teknologi yang
digunakan untuk mengolah, memproses, menyimpan, dan memanipulasi data yang pada
akhirnya akan menjadi sebuah informasi yang berkualitas. Dewasa ini, tidak hanya
perkembangan teknologi yang melaju pesat saat ini, melainkan perkembangan bahasa
asing juga sudah banyak dikenali oleh masyarakat Indonesia seiring dengan melajunya
industri asing yang masuk ke Indonesia. Perkembangan teknologi ini membuka ide penulis
untuk membuat suatu aplikasi berbasis Android yang berisikan soal-soal bahasa Jepang
yang dapat diakses dengan mudah oleh masyarakat. Aplikasi Kuis Bahasa Jepang ini
bermanfaat untuk mempelajari dan mengetahui sejauh mana kemampuan pengguna dalam
berbahasa jepang. Aplikasi ini dibuat dengan menggunakan bahasa pemrograman Java
dan XML (Extensible Markup Language) pada platform Android. Android memakai basis
kode komputer yang dapat didistribusikan secara terbuka sehingga pengguna dapat
membuat aplikasi baru didalamnya. Selain itu bahasa pemrograman Java bersifat
multiplatform sehingga dapat digunakan pada berbagai platform. Pada aplikasi Kuis
Bahasa Jepang ini terdapat pertanyaan yang berupa pilihan ganda yang dapat dicoba
oleh pengguna. Tersedia tiga tingkat kesulitan yang dapat dicoba oleh pengguna mulai
dari tingkat yang paling mudah, normal, hingga sulit. Setelah menyelesaikan kuis,
terdapat juga pembahasan kuis yang dapat menambah wawasan dan pengetahuan
pengguna aplikasi tersebut sehingga menjadikan aplikasi ini sebagai salah satu aplikasi
e-learning. Daftar Pustaka ( 2007 2012 )
Kata Kunci : Android, E-learning, Kuis, Java, XML, Platform

dihadapi), tepat waktu dan lengkap.


Informasi juga harus tepat sasaran
kepada
siapa
informasi
tersebut
disampaikan.
Dewasa
ini
untuk
mendapatkan sebuah informasi tentunya
kita perlu perantara berupa media massa
seperti koran, majalah dan tabloid, atau
alat-alat elektronik seperti televisi, radio,
ponsel dan komputer yang terkoneksi
dengan internet. Bahkan saat ini
komputer sudah berkembang dengan
pesatnya menjadi laptop atau komputer

1. PENDAHULUAN
Teknologi informasi merupakan suatu
teknologi
yang digunakan
untuk
mengolah, memproses, menyimpan, dan
memanipulasi data yang pada akhirnya
akan menjadi sebuah informasi yang
berkualitas. Sedangkan informasi yang
berkualitas harus memenuhi empat
syarat, yakni akurat (data yang diproses
benar dan sesuai dengan kenyataan),
relevan (informasi yang dihasilkan sesuai
kebutuhan dengan masalah yang sedang

jinjing dan tablet PC. Seperti yang kita


semua tahu, berbagai vendor telah
memproduksi smartphone dan tablet PC
seperti Apple dengan i-Pad, Samsung
dengan Samsung Galaxy Tab, Nexian,
LG, Nexus, HTC dan lain-lain.
Tidak hanya perkembangan teknologi
yang melaju pesat saat ini, melainkan
perkembangan bahasa asing juga sudah
banyak dikenali oleh masyarakat
Indonesia seiring dengan melajunya
industri asing yang masuk ke Indonesia.
Mulai dari bahasa Inggris, bahasa
Jepang, bahasa China, hingga bahasa
Eropa sudah mulai dikenal dan diminati
oleh sebagian masyarakat Indonesia,
khususnya dikalangan pelajar. Selain
bahasa Inggris yang banyak diminati oleh
para pelajar, jenis bahasa yang diminati
lainnya adalah bahasa Jepang. Bahasa
Jepang ini bahkan sudah mulai di
masukkan ke dalam kurikulum mata
pelajaran di tingkat sekolah menengah
pertama dan sekolah menengah atas.
Terlebih lagi di perguruan tinggi yang
sudah lama membuka jurusan untuk
bahasa Jepang itu sendiri. Era globalisasi
yang saat ini kita hadapi sangat
berpengaruh pada pola hidup sehari-hari.
Sudah banyak kegiatan yang bisa
dilakukan secara mobilitas seperti belajar
yang kita kenal dengan e-learning,
membaca buku dengan e-book, mengirim
dan menerima email, melihat peta dan
mencari suatu lokasi menggunakan GPS.
Tidak hanya itu kegiatan berbasis
elektronik yang dilakukan masyarakat
sekarang, masih terdapat beberapa
kegiatan seperti e-commerce, e-library,
e-laboratory, dan masih banyak yang
lainnya.
Semua kegiatan diatas sudah menjadi
ketergantungan bahkan kebutuhan di
kalangan masyarakat saat ini yang seakan
haus informasi. Segala sesuatu dapat
dikerjakan
secara
digitalisasi.
Perkembangan teknologi ini membuka
ide penulis untuk membuat suatu aplikasi
berisikan soal-soal yang bisa diakses
dengan mudah oleh masyarakat. Penulis
memberi judul penulisan yaitu Aplikasi
Kuis Bahasa Jepang Berbasis Android,
yakni aplikasi yang didalamnya terdapat

soal-soal dalam bahasa Jepang dengan


tingkat kesulitan yang berbeda-beda.
Pembuatan aplikasi yang bertujuan untuk
mempermudah pelajar dan mahasiswa
dalam
mempelajari
dan
berlatih
berbahasa jepang ini berbasis Android
sebagai sistem operasi mobile yang
sekarang juga mulai berkembang pesat
sebagai operating sistem pada tablet PC.
2. TINJAUAN PUSTAKA
2.1 Android
Android merupakan system operasi
berbasis Linux untuk ponsel seperti
smartphone dan komputer tablet.
Android menyediakan platform terbuka
bagi
para
pengembang
untuk
menciptakan aplikasi mereka sendiri
untuk digunakan oleh bermacam peranti
bergerak. Awalnya, Google Inc. membeli
Android Inc. yaitu pendatang baru yang
membuat peranti lunak untuk ponsel.
Kemudian
untuk
mengembangkan
Android, dibentuklah Open Handset
Alliance, yang merupakan konsorsium
dari 34 perusahaan peranti keras, peranti
lunak, dan telekomunikasi, termasuk
Google,
HTC,
Intel,
Motorola,
Qualcomm, T-Mobile, dan Nvidia. Pada
saat perilisan perdana Android, 5
November 2007, Android bersama Open
Handset
Alliance
menyatakan
mendukung
pengembangan
standar
terbuka pada perangkat seluler. Di lain
pihak, Google merilis kode-kode
Android di bawah lisensi Apache, sebuah
lisensi perangkat lunak dan standar
terbuka perangkat seluler.
2.1.1 Versi Android
Sejak dirilis
pertama kali
dan
diperkenalkan pada 5 November 2007,
android mengalami perkembangan untuk
versi dari versi pertama yang disesuaikan
dengan kebutuhan aplikasi, baik dari segi
perbaikan bug ataupun penambahan fitur
baru. Selain berdasarkan penomoran,
pada setiap versi Android terdapat kode
nama berdasarkan nama-nama kue.
Perkembangan versi android dapat dilihat
pada tabel 2.1. 6

Tabel 2.1 Versi Android Versi


Versi 1.1

Versi 1.5 (Cupcake)

Versi 1.6 (Donut)

Versi 2.0/2.1 (clair)

Versi 2.2 (Froyo: Frozen Yoghurt)

Versi 2.3 (Ginggerbread)

Penjelasan
Rilis 9 Maret 2009, dilengkapi
pembaruan estetis pada aplikasi, jam
alarm, voice search, pengiriman pesan
dengan Gmail, dan pemberitahuan
email.
Rilis
pertengahan
Mei
2009,
dilengkapi kemampuan merekam dan
menonton video dengan modus
kamera, mengunggah video ke
YouTube dan gambar ke Picasa,
dukungan bluetooth A2DP, animasi
layar, serta keyboard pada layar yang
dapat disesuaikan dengan sistem.
Rilis September 2009, dilengkapi
proses pencarian lebih baik, baterai
indikator dan kontrol applet VPN,
galeri foto, Text-to-speech engine,
kemampuan dial kontak, teknologi
text to change speech, VPN, gesture,
CDMA/EVDO, 802.1x, dan integrasi
kamera, camcorder, dan galeri.
Rilis
3
Desember
2009,
pengoptimalan hardware peningkatan
Google Maps 3.1.2, perubahan UI
dengan browser baru dan dukungan
HTML5, dukungan flash untuk
kamera
3.2MP,
digital
zoom,
Bluetooth 2.1.
Rilis 20 Mei 2010, dilengkapi
dukungan
Adobe
Flash
10.1,
kecepatan kinerja, integrasi V8
javascript engine yang dipakai Google
Chrome, pemasangan aplikasi dalam
SDcard, kemampuan WiFi hotspot
portable, dan auto update dalam
aplikasi Android Market.
Rilis 6 Desember 2010, dilengkapi
peningkatan kemampuan gaming,
fungsi
copy-paste,
efek
audio
baru(reverbm equalization, headphone
virtualization.
bahkan dapat diganti dengan komponen
lain yang sesuai dengan aplikasi yang
dikembangkan.

2.1.2 Keunggulan Android


Beberapa keunggulan Android dengan
platform lain yaitu:
Keterbukaan, bebas pengembangan tanpa
dikenakan biaya terhadap sistem karena
berbasiskan Linux dan open source.
Arsitektur komponen dasar Android
terinspirasi dari teknologi internet
Mashup. Bagian dalam sebuah aplikasi
dapat digunakan oleh aplikasi lainnya,

Dukungan grafis dan suara


terbaik, dengan adanya dukungan
2D grafis dan animasi yang
diilhami oleh Flash menyatu
dalam 3D menggunakan OpenGL

memungkinkan membuat aplikasi


maupun game yang berbeda.

Gambar 2.1 Contoh script xml untuk


antarmuka Android

Portabilitas aplikasi, aplikasi


dapat digunakan pada perangkat
yang ada saat ini maupun yang
akan datang. Semua program
ditulis dengan menggunakan
bahas pemrograman Java dan
dieksekusi oleh mesin virtual
Dalvik, sehingga kode program
portabel antara ARM, X86, dan
arsitektur lainnya. Sama halnya
dengan
dukungan
masukan
seperti penggunaan Keyboard,
layar sentuh, trackball dan
resolusi layar semua dapat
disesuaikan dengan program.

2.1.4 Pengembangan Aplikasi Android


Ada 4 hal mendasar yang harus kita
pahami dalam membangun aplikasi
berbasis Android:
1. Activity, adalah tampilan grafis
yang kita lihat ketika
menjalankan sebuah aplikasi.
Aplikasi dapat memiliki lebih
dari satu Activity.
2. Intent, adalah serangkaian nilai
yang menunjukan apa yang harus
dilakukan ketika terjadi
perpindahan layar.
3. Service, adalah layanan yang
bekerja di belakang layar
(background).

2.1.3 Antarmuka Pengguna Android


Antarmuka Android dapat dibangun
melalui dua cara, yaitu dengan menulis
kode XML atau dengan menulis kode
Java. Penggambaran struktur antarmuka
dengan menggunakan kode XML sangat
dianjurkan dan lebih baik tentunya.
Karena menurut prinsip Model-ViewerControl bahwa antarmuka pengguna
sebaiknya selalu dipisahkan dari logika
program. Selain itu, adaptasi sebuah
program dari suatu resolusi layar ke
resolusi layar lainnya menjadi lebih
mudah.

4. Content provider, memungkinkan


sebuah aplikasi untuk dapat
menyimpan dan menerima data
dari database.
package com.example.helloAndroid;
import Android.app.Activity; import
Android.os.Bundle; public class
HelloAndroid extends Activity {
@Override public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); } }
Gambar 2.2 Contoh script Android
sederhana

<?xml version="1.0"
encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schem
as.android.com/apk/res/andr
oid "
android:orientation="vertic
al"
android:layout_width="fill_
parent"
android:layout_height="fill
_parent">
<TextView
android:layout_width="wrap_
content"
android:layout_height="wrap
_content"
android:text="Hello
World"/>

Script program diatas merupakan contoh


script program Android yang sangat
sederhana. Jika script diatas di-running
akan menghasilkan output seperti gambar
dibawah ini.

2.3.1 Syntax Java


2.3.1.1 Identifier
Digunakan untuk nama class, method,
dan variabel. Dapat berupa urutan huruf
(besar atau kecil), angka, garis bawah,
dan tanda dolar. Tidak boleh diawali oleh
angka dan bersifat case sensitive. Dengan
huruf awal kecil dan menandai bagian
kata selanjutnya dengan huruf besar,
misalnya
nextItem,
currentValue,
getTimeOfDay.
2.3.1.2 Variabel
Variabel
adalah
satuan
dasar
penyimpanan dalam program Java. Suatu
variabel didefinisikan dengan kombinasi
identifier, tipe, dan cakupan. Bergantung
pada tempat kita mendeklarasikannya,
variabel dapat bersifat lokal atau
sementara.
2.3.1.3. Tipe Data
Java merupakan contoh bahasa yang
strongly typed language. Hal ini berarti
bahwa setiap variabel harus memiliki tipe
yang sudah dideklarasikan. Tipe data
pada Java:
Integer
Floating Point
Char
Boolean

Gambar 2.3 Contoh tampilan output pada


Android
2.2 Eclipse
Eclipse adalah sebuah IDE (Integrated
Development
Environment)
untuk
mengembangkan perangkat lunak dan
dapat dijalankan di semua platform.
Eclipse pada saat ini merupakan salah
satu IDE populer dikarenakan gratis dan
open source, yang berarti setiap orang
dapat melihat dan memodifikasi source
code perangkat lunak ini. Selain itu,
kelebihan dari Eclipse yang membuatnya
populer adalah kemampuannya untuk
dapat dikembangkan oleh pengguna
dengan komponen yang dinamakan
plugin. Eclipse awalnya dikembangkan
oleh perusahaan IBM (International
Business Machines) untuk menggantikan
perangkat lunak IBM Visual Age for
Java 4.0.

2.4 XML
XML (eXtensible Markup Language)
dikembangkan mulai tahun 1996 dan
mendapatkan pengakuan dari W3C pada
bulan Februari 1998. Teknologi yang
digunakan pada XML sebenarnya bukan
teknologi baru, tapi merupakan turunan
dari SGML yang telah dikembangkan
pada awal 80-an dan telah banyak
digunakan pada dokumentasi teknis
bebagai
proyek
berskala
besar.
Pengembangan HTML menghasilkan
markup language yang tidak kalah
hebatnya dengan SGML.
Seperti halnya HTML, XML juga
menggunakan elemen yang ditandai
dengan tag pembuka (diawali dengan <
dan diakhiri dengan >), tag penutup
(diawali dengan </ diakhiri >) dan
atribut elemen (parameter yang
dinyatakan dalam tag pembuka misal
<form name=isidata>). Hanya
bedanya, HTML medefinisikan dari awal

2.3 Java
Java adalah bahasa berorientasi objek
yang
dapat
digunakan
untuk
pengembangan aplikasi mandiri, aplikasi
berbasis internet, serta aplikasi untuk
perangkat-perangkat cerdas yang dapat
berkomunikasi lewat internet atau
jaringan komunikasi. Dalam Java ada 2
(dua) jenis program berbeda, yaitu
aplikasi dan applet. Aplikasi adalah
program yang biasanya disimpan dan
dieksekusi
dari
komputer
lokal
sedangkan applet adalah program yang
biasanya disimpan pada komputer yang
jauh, yang dikoneksikan pemakai lewat
web browser.

<lagu judul=Indonesia
raya nadadasar=G
Birama=4/4>
<bar nomor=1>
<nada not=B
ketukan=1/2/>
<nada not=C
ketukan=1/2/>
<nada not=D ketukan=1/>
<nada not=B ketukan=2/>
...
</bar>
<bar nomor=2>
...
</bar>
</lagu>
Gambar 2.6 Contoh script xml untuk
penyajian notasi musik
2.5 SQLite
SQLite merupakan sebuah sistem
manajemen basis data relasional yang
bersifat ACID-compliant dan memiliki
ukuran pustaka kode yang relatif kecil,
dan ditulis dalam bahasa C. SQLite
merupakan proyek yang bersifat public.
2.5.1. Perintah Dasar
SQLite telah memahami sebagian besar
perintah SQL. Perintah SQL
umumnya dikelompokkan menjadi 3
bagian :
1. DDL (Data Definition Language)
adalah perintah yang digunakan untuk
mendefinisikan skema atau struktur dari
suatu database. Terdiri dari:
- CREATE - membuat tabel dalam
database.
- ALTER - mengubah struktur sebuah
tabel.
- DROP - menghapus tabel dari suatu
database.
- TRUNCATE - menghapus semua
record dari sebuah tabel, termasuk semua
alokasi ruang untuk record tersebut ikut
dihapus.
- RENAME - mengganti nama suatu
tabel.
2. DML (Data Manipulation Language)
adalah perintah yang digunakan untuk
mengelola data di dalam skema atau
struktur tabel. DML terdiri dari :
- SELECT - menampilkan data dari suatu
tabel.

tag dan atribut yang dipakai didalamnya,


sedangkan pada XML kita dapat
menggunakan tag dan atribut sesuai
kehendak kita. Untuk lebih jelasnya lihat
contah dibawah:
<pesan>
<dari>MIS Manager</dari>
<buat>HRD Manager</buat>
<buat>Bagian rekrut</buat>
<buat>Computer Suport
team</buat>
<subyek>Permohonan Tenaga
kerja baru</subyek>
<isi>Mohon diberikan tenaga
kerja baru untuk mengisi
lowongan di Departemen
MIS</isi>
</pesan>
Gambar 2.5 Contoh script xml sederhana
Pada contoh diatas <pesan>, <dari>
<buat> ,dan <isi> bukanlah tag standard
yang telah di tetapkan dalam XML. Tag
itu kita buat sendiri sesuai keinginan kita.
Sampai di sini XML tidak melakukan
apapun. Yang ada hanyalah informasi
yang di kemas dengan tag XML. Kita
harus membuat software lagi untuk untuk
mengirim, menerima atau menampilkan
informasi di dalamnya.
2.4.1 Keunggulan XML
XML untuk saat ini bukan merupakan
pengganti HTML. Masing- masing
dikembangkan untuk tujuan yang
berbeda. Jika HTML digunakan untuk
menampilkan informasi dan berfokus
pada bagaimana informasi terlihat, maka
XML mendeskripsikan susunan
informasi dan berfokus pada informasi
itu sendiri. XML dibutuhkan untuk
menyusun dan menyajikan informasi
dengan format yang tidak mengandung
format standard layaknya heading,
paragraf, 15
tabel, dan sebagainya. Sebagai contoh
apabila kita ingin menyimpan dan
menyajikan informasi notasi musik pada
lagu Indonesia Raya, kita dapat
menyimpannya dengan XML seperti
contoh dibawah ini.

- INSERT - memasukkan data ke dalam


sebuah tabel.
- UPDATE - mengubah data yang sudah
ada dalam sebuah tabel.
- DELETE - menghapus record dari
sebuah tabel, alokasi ruang tidak dihapus.
3. DCL (Data Control Language) adalah
perintah yang digunakan untuk
mengontrol hak akses pengguna terhadap
suatu database. DCL terdiri dari :
- GRANT - memberikan hak akses
pengguna ke database.
- REVOKE - mencabut atau menarik
kembali hak akses yang telah diberikan
dengan perintah GRANT.
2.6 Struktur Navigasi
Struktur navigasi adalah alur yang
digunakan dalam aplikasi yang dibuat.
Sebelum menyusun aplikasi multimedia
kedalam sebuah software, kita harus
menentukan terlebih dahulu alur apa
yang akan digunakan dalam aplikasi
yang dibuat. Bentuk dasar dari struktur
navigasi yang biasa digunakan dalam
proses pembuatan aplikasi multimedia
ada empat macam, yaitu struktur
navigasi linier, hirarki, non linier dan
campuran.
2.6.1 Struktur Navigasi Linier
Struktur navigasi linier merupakan
struktur yang mempunyai satu rangkaian
cerita berurutan. Struktur ini
menampilkan satu demi satu tampilan
layer secara berurutan menurut
aturannya.

2.6.3 Struktur Navigasi Non Linier


Struktur navigasi non linier (tidak
terurut) merupakan pengembangan dari
struktur navigasi linier, hanya saja pada
struktur ini diperkenankan untuk
membuat percabangan. Percabangan
pada struktur non linier berbeda dengan
percabangan pada struktur hirarki, pada
struktur ini kedudukan semua page sama,
sehingga tidak dikenal adanya master
atau slave page.

2.6.4 Struktur Navigasi Campuran


Struktur navigasi campuran (composite)
merupakan gabungan dari struktur
sebelumnya dan disebut juga struktur
navigasi bebas, maksudnya adalah jika
suatu tampilan membutuhkan
percabangan maka dibuat percabangan.
Struktur ini paling banyak digunakan
dalam pembuatan aplikasi multimedia.

2.6.2 Struktur Navigasi Hirarki


Struktur navigasi hirarki sering disebut
struktur navigasi bercabang, yaitu
merupakan suatu struktur yang
mengandalkan percabangan untuk
menampilkan data atau gambar pada
layer dengan kriteria tertentu.
Tampilan pada menu utama disebut
master page (halaman utama satu),
halaman tersebut mempunyai
halaman percabangan yang disebut
slave page (halaman pendukung)
dan jika dipilih akan menjadi
halaman kedua, begitu seterusnya.

2.7 Flowchart
Flowchart adalah penggambaran secara
grafik dari langkah-langkah dan uruturutan prosedur dari suatu program.
Flowchart menolong analis dan
programmer untuk memecahkan masalah
kedalam segmen-segmen yang lebih
kecil dan menolong dalam menganalisis
alternatif-alternatif lain dalam
pengoperasian. Simbol simbol pada
flowchart yang biasanya dipakai adalah
simbol simbol flowchart standart yang
dikeluarkan oleh ANSI dan ISO. Simbol
tersebut mempunyai arti sendiri, seperti
pada tabel di bawah ini.

Tabel 2.3 Simbol Flowchart standart

10

11

12

7. Mengaplikasikan ke dalam ponsel


berbasis Android.

3 PEMBAHASAN
3.1 Gambaran Umum Aplikasi
Pada tahap perancangan dan
implementasi aplikasi, penulis
merancang tampilan layout program, alur
logika program, dan menentukan tabel
beserta atribut yang akan dibutuhkan
pada proses yang ada pada aplikasi ini.
Aplikasi ini dibuat untuk melatih
kemampuan bahasa Jepang untuk pelajar
SMP, SMA, Mahasiswa, maupun
masyarakat yang tertarik untuk
mempelajari bahasa Jepang. Pengguna
dapat berlatih serta belajar sesering
mungkin karena aplikasi ini terdapat
pada ponsel. Tahap-tahap dari pembuatan
aplikasi Kuis Bahasa Jepang berbasis
Android adalah :
1. Merancang struktur navigasi pada
aplikasi tersebut.

Penggunaan aplikasi ini cukup mudah.


Pengguna masuk ke dalam aplikasi Kuis
Bahasa Jepang pada ponsel dan akan
muncul tampilan menu utama yang
terdiri dari Mulai, Pengaturan,
Info, dan Keluar. Menu yang
pertama adalah Mulai, yaitu menu
yang digunakan untuk menjawab soalsoal yang telah disediakan dan disertai
dengan nilai akhir serta jawaban yang
benar dari setiap soal . Menu kedua
adalah menu Pengaturan, pengguna
dapat memilih tingkat kesulitan yang
telah disediakan seperti mudah, normal,
dan sulit. Menu berikutnya adalah menu
Info yang berisikan penjelasan singkat
tentang aplikasi dan materi huruf Jepang.
Menu yang terakhir adalah menu
Keluar untuk keluar dari aplikasi. 26

2. Membuat desain interface pada


aplikasi.

3.2 Struktur Navigasi dan Flowchart


3.2.1 Struktur Navigasi
Struktur navigasi adalah alur yang
digunakan dalam aplikasi yang dibuat
atau merupakan tampilan kasar dari alur
aplikasi Kuis Bahasa Jepang. Struktur
navigasi yang digunakan adalah struktur
navigasi composite atau yang sering
disebut struktur navigasi bebas.

3. Merancang aplikasi.
4. Melakukan pengcodingan untuk
aplikasi.
5. Melakukan uji coba pada aplikasi.
6. Melakukan debugging jika masih
terdapat kesalahan pada aplikasi tersebut
sehingga dapat memperbaiki coding
aplikasi.

Gambar 3.1 Struktur Navigasi Kuis Bahasa Jepang


Dari struktur navigasi di atas dapat
terlihat alur dari program tersebut yaitu,
pengguna masuk ke dalam aplikasi Kuis

Bahasa Jepang pada ponsel dan akan


muncul tampilan menu utama yang
terdiri dari Mulai, Pengaturan,

13

Info, dan Keluar. Jika pengguna


memilih Mulai maka akan masuk ke
Soal kemudian akan mendapatkan
Hasil berupa nilai dan akan
diperlihatkan jawaban dari soal tersebut.
Sedangkan pada Pengaturan, pengguna
dapat memilih tingkat kesulitan seperti
Mudah, Normal, dan Sulit. Pada menu
Info pengguna dapat mengetahui

bentuk tulisan huruf Jepang seperti


Hiragana dan Katakana.
3.2.2 Flowchart
Flowchart dibawah ini menjelaskan
bagaimana proses atau alur yang berjalan
pada aplikasi ini. Dimulai dari pemilihan
menu sampai dengan program berhenti.
Berikut adalah digram Flowchart dari
aplikasi Kuis Bahasa Jepang :

3.3 Perancangan Aplikasi


Pada tahapan ini penulis akan membuat
rancangan aplikasi berupa rancangan
tampilan dan rancangan file dari aplikasi
yang akan penulis buat. Berikut adalah
gambar dari rancangan tersebut :
3.3.1 Tampilan Menu Utama
Tampilan ini merupakan tampilan menu
utama yang akan muncul setelah icon
aplikasi di buka. Pada tampilan ini
terdapat 4 menu yang terdiri dari
Mulai, Pengaturan, Info, dan
Keluar.

14

Pada tampilan ini akan ditampilkan


jawaban soal kuis. Setelah melihat
jawaban kuis, pengguna dapat kembali
ke menu sebelumnya dengan memilih
tombol Kembali.

3.3.2 Tampilan Mulai


Pada tampilan ini terdapat 1 pertanyaan
yang dilengkapi dengan 4 pilihan
jawaban.

3.3.5 Tampilan Pengaturan


Di dalam menu pengaturan, terdapat
tiga pilihan tingkat kesulitan yang
terdiri dari tingkat Mudah, Normal, dan
Sulit serta untuk mengaktifkan tingkat
kesulitan terdapat tombol OK.

3.3.3 Tampilan Hasil Nilai


Pada bagian ini akan ditampilkan
perolehan nilai dari menjawab soal-soal
yang telah disediakan. Selain perolehan
nilai, pada tampilan ini ditambahkan juga
menu Jawaban untuk mengetahui
jawaban yang benar dari soal.

3.3.6 Tampilan Info


Pada menu ini akan ditampilkan
keterangan mengenai aplikasi Kuis
Bahasa Jepang dan materi berupa huruf
Jepang yang terdiri dari Hiragana dan
Katakana.

3.3.4 Tampilan Jawaban

3.3.7 Tampilan Hiragana dan


Katakana
Pada menu ini hanya menampilkan
materi huruf Jepang dengan metode

15

gambar dan keterangan singkat tentang


hurug Hiragana dan Katakana.
3.3.8 Struktur Database
Basis data yang digunakan pada aplikasi
ini terdiri dari satu tabel. Berdasarkan
basis data tersebut, penulis membuat
deskripsi dari tabel tersebut.

Setelah melakukan mendeskripsikan


tabel, penulis membuat tabel sesuai
dengan deskripsi tabel diatas dengan
menggunakan perintah Structure Query
Language (SQL) yaitu perintah Data
Definition Language (DDL) yang
disediakan oleh SQLite.
CREATE TABLE questionsDb1 (
ID integer primary key autoincrement,
Question text not null,
Answer text not null,
Incorrect1 text not null,
Incorrect2 text not null,
Incorrect3 text not null,
Difficulty integer not null);
3.4 Pembuatan Aplikasi Kuis Bahasa
Jepang

Pada pembuatan aplikasi ini, penulis


menggunakan perangkat lunak Eclipse
Helios sebagai editor yang digunakan
dalam penulisan script. Berikut mengenai
tahapan dalam pembuatan aplikasi Kuis
Bahasa Jepang.
3.4.1 Pembuatan Menu Utama
Pada pemrograman Android untuk
pembuatan program dan tampilan
dilakukan pada dua bagian yang berbeda.
Untuk pembuatan tampilan layout
dilakukan seluruhnya pada file XML,
sedangkan untuk pembuatan program,
dilakukan pada file Java. Pada bagian
rancangan menu utama ini terbagi atas 4
buah tombol yang terdiri dari Mulai,
Pengaturan, Tentang dan Keluar. Untuk

16

android:layout_x="97dip"
android:layout_y="194dip"><
/Button> <Button
android:layout_width="85px"
android:text="Pengaturan"
android:id="@+id/settingsBt
n"
android:layout_height="wrap
_content"
android:layout_x="97dip"
android:layout_y="132dip"><
/Button> Pada potongan script
main.xml, terdapat textview untuk
memberi nama judul aplikasi dan tombol
tombol yang ada pada tampilan awal
seperti Mulai, Pengaturan, Tentang, dan
Keluar. Pada codingan di atas terdapat
@+id yaitu sebuah identifier untuk
masing-masing tombol, seperti
"@+id/playBtn" untuk tombol Mulai,
"@+id/settingsBtn" untuk tombol
pengaturan, "@+id/rulesBtn" untuk
tombol tentang, dan "@+id/exitBtn
untuk tombol keluar. Selanjutnya adalah
melanjutkan pembuatan script untuk
mengaktifkan tombol-tombol menu
tersebut. Berikut adalah potongan dari
script Kuis.java. public void
onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanc
eState);
setContentView(R.layout.mai
n); /// GAME MENU ///
Button playBtn = (Button)
findViewById(R.id.playBtn);
playBtn.setOnClickListener(
this);
Button settingsBtn =
(Button)
findViewById(R.id.settingsB
tn);
settingsBtn.setOnClickListe
ner(this);
Button rulesBtn = (Button)
findViewById(R.id.rulesBtn)
;
rulesBtn.setOnClickListener
(this);
Button exitBtn = (Button)
findViewById(R.id.exitBtn);
exitBtn.setOnClickListener(
this);
}

membuat tombol dipergunakan file


main.xml yang terdapat pada folder
layout.
Berikut potongan script dari main.xml :
<AbsoluteLayout
xmlns:android="http://schem
as.android.com/apk/res/andr
oid"
android:orientation="vertic
al" 33
android:layout_width="fill_
parent"
android:layout_height="fill
_parent"
android:background="@drawab
le/menu" </AbsoluteLayout>
Layout yang digunakan adalah absolute
layout, yaitu penempatan posisi tombol
dan tulisan ditentukan dengan pasti.
Orientasi aplikasi ditampilkan secara
vertical dengan ukuran panjang dan lebar
bernilai fill_parent yang disesuaikan
dengan layar ponsel. <TextView
android:layout_height="wrap
_content"
android:layout_width="fill_
parent" android:text="Kuis
Bahasa Jepang"
android:textSize="20px"
android:id="@+id/textView1"
android:layout_x="61dip"
android:layout_y="14dip"></
TextView> <Button
android:layout_width="85px"
android:text="Mulai"
android:id="@+id/playBtn"
android:layout_height="wrap
_content"
android:layout_x="97dip"
android:layout_y="73dip"></
Button> <Button
android:layout_width="85px"
android:text="Keluar"
android:id="@+id/exitBtn"
android:layout_height="wrap
_content"
android:layout_x="97dip"
android:layout_y="254dip"><
/Button> <Button
android:layout_width="85px"
android:text="Tentang"
android:id="@+id/rulesBtn"
android:layout_height="wrap
_content"

17

break; case R.id.rulesBtn :


i = new Intent(this,
RulesActivity.class);
startActivityForResult(i,
Constants.RULESBUTTON);
break; case
R.id.settingsBtn : i = new
Intent(this,
SettingsActivity.class);
startActivityForResult(i,
Constants.SETTINGSBUTTON);
break; case R.id.exitBtn :
finish(); break;} } Perintah
tersebut merupakan perintah untuk
melakukan intent (pindah halaman) pada
aplikasi Kuis Bahasa Jepang. Saat akan
memilih menu Mulai, maka akan
terbentuk Intent baru dengan memanggil
file QuestionActivity.java dan
mempersiapkan daftar pertanyaan serta
jumlah soal yang akan di tampilkan dari
database. Begitu pula dengan menu
pengaturan dan tentang yang akan masuk
ke intent masing-masing dengan
menggunakan activity yang telah dibuat.
Untuk bagian exit, tidak menggunakan
activity karena perintah ini akan langsung
keluar dari aplikasi. private int
getNumQuestions() {
SharedPreferences settings
=
getSharedPreferences(Consta
nts.SETTINGS, 0); int
numRounds =
settings.getInt(Constants.N
UM_ROUNDS, 20); return
numRounds; } Script ini
menjelaskan tentang jumlah soal yang
akan dikeluarkan pada masing-masing
tingkat kesulitan. Soal yang akan
dikeluarkan ditentukan menjadi 20 soal.

Potongan script diatas menggunakan


layout main.xml yang ada di dalam
folder res/layout. Tombol-tombol yang
sudah dibuat di main.xml di aktifkan
dengan menggunakan id tombol tersebut.
public void rb() {
logoMusic =
MediaPlayer.create(Kuis.thi
s, R.raw.rb);
logoMusic.setLooping(true);
logoMusic.setVolume(100,100
);
logoMusic.start();
}
Perintah di atas merupakan perintah
untuk memberikan efek suara pada menu
utama. logoMusic merupakan identifiers
untuk suara dan akan memutarkan file
rb.wav hingga aplikasi di tutup. Efek
suara akan terus berulang walaupun
durasi pemutaran telah berakhir dan
volume yang digunakan untuk
menghasilkan suara sebesar 100.
public void onClick(View v)
{
Intent i;
switch (v.getId()){
case R.id.playBtn :
//Get Question set //
List<Question> questions =
getQuestionSetFromDb();
GamePlay c = new
GamePlay();
c.setQuestions(questions);
c.setNumRounds(getNumQuesti
ons());
((KuisApplication)getApplic
ation()).setCurrentGame(c);
i = new Intent(this,
QuestionActivity.class); 35
startActivityForResult(i,
Constants.PLAYBUTTON);

18

Gambar 3.10 Tampilan Menu Utama


android:layout_y="284dip"><
/Button>
Terdapat 2 tombol yang dapat digunakan
pada halaman ini yaitu tombol Menu
untuk kembali ke menu utama dengan
identifiers "@+id/menu1Btn" serta
tombol Lanjut untuk masuk ke soal
berikutnya dengan identifiers
"@+id/nextBtn".

3.4.2 Pembuatan Menu Mulai


Sama halnya pada menu utama, pada
menu mulai ini memiliki logika program
menggunakan intent sebagai awal untuk
membuka tampilan selanjutnya. Pada
bagian ini, terdapat textview utnuk
menampilkan soal, 4 widget radio button
untuk pilihan ganda dan 2 tombol untuk
pindah ke menu selanjutnya. Berikut
merupakan script dari question.xml :
<Button
android:paddingBottom="5dip
" android:paddingTop="5dip"
android:textColor="#000000"
android:text="Lanjut"
android:id="@+id/nextBtn"
android:layout_width="80dip
"
android:layout_height="wrap
_content"
android:layout_x="236dip"
android:layout_y="285dip"><
/Button>
<Button
android:paddingBottom="5dip
" android:paddingTop="5dip"
android:textColor="#000000"
android:text="Menu"
android:id="@+id/menu1Btn"
android:layout_width="80dip
"
android:layout_height="wrap
_content"
android:layout_x="4dip"

19

<RadioGroup
android:layout_height="wrap
_content"
android:layout_width="fill_
parent"
android:id="@+id/group1"
android:orientation="vertic
al" android:layout_x="8dip"
android:layout_y="88dip">
<RadioButton
android:layout_width="wrap_
content"
android:textColor="#000000"
android:text="RadioButton"
android:checked="false"
android:id="@+id/answer1"
android:layout_height="wrap
_content"></RadioButton>
<RadioButton
android:layout_width="wrap_
content"
android:textColor="#000000"
android:text="RadioButton"
android:checked="false"
android:id="@+id/answer2"
android:layout_height="wrap
_content"></RadioButton>
<RadioButton
android:layout_width="wrap_
content"
android:textColor="#000000"
android:text="RadioButton"
android:checked="false"
android:id="@+id/answer3"
android:layout_height="wrap
_content"></RadioButton>
<RadioButton
android:layout_width="wrap_
content"
android:textColor="#000000"
android:text="RadioButton"
android:checked="false"
android:id="@+id/answer4"
android:layout_height="wrap
_content"></RadioButton>
</RadioGroup> Widget radio button
digunakan untuk pilihan jawaban dari
soal yang ditampilkan. Dalam pembuatan
radio button ini harus menggunakan
radio group agar dapat mengurut dan
menata dengan rapih widget radio button
tersebut. Masing-masing radio button
mempunyai id berupa answer dari 1-4.
Selanjutnya adalah pembuatan script

QuestionActivity.java. private
Question currentQ; private
GamePlay currentGame;
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanc
eState);
setContentView(R.layout.que
stion); currentGame =
((KuisApplication)getApplic
ation()).getCurrentGame();
currentQ =
currentGame.getNextQuestion
(); Button nextBtn =
(Button)
findViewById(R.id.nextBtn);
nextBtn.setOnClickListener(
this); Button menu1Btn =
(Button)
findViewById(R.id.menu1Btn)
;
menu1Btn.setOnClickListener
(this); setQuestions();}
Script ini menggunakan layout dari
question.xml dimana di dalamnya telah
diaktifkan tombol menu berupa
id.menu1Btn dan tombol lanjut dengan
id.nextBtn.

20

private void setQuestions()


{
//set the question text
from current question
String question =
Utility.capitalise(currentQ
.getQuestion()) + " ";
TextView qText = (TextView)
findViewById(R.id.question)
;
qText.setText(question);
List<String> answers =
currentQ.getQuestionOptions
();
TextView option1 =
(TextView)
findViewById(R.id.answer1);
option1.setText(Utility.cap
italise(answers.get(0)));
TextView option2 =
(TextView)
findViewById(R.id.answer2);
option2.setText(Utility.cap
italise(answers.get(1)));
TextView option3 =
(TextView)
findViewById(R.id.answer3);
option3.setText(Utility.cap
italise(answers.get(2)));
TextView option4 =
(TextView)
findViewById(R.id.answer4);
option4.setText(Utility.cap
italise(answers.get(3)));
}
private String
getSelectedAnswer() {
RadioButton c1 =
(RadioButton)findViewById(R
.id.answer1);
RadioButton c2 =
(RadioButton)findViewById(R
.id.answer2);
RadioButton c3 =
(RadioButton)findViewById(R
.id.answer3);
RadioButton c4 =
(RadioButton)findViewById(R
.id.answer4);
if (c1.isChecked())
{
return
c1.getText().toString();
}

if (c2.isChecked())
{
return
c2.getText().toString();
}
if (c3.isChecked())
{
return
c3.getText().toString();
}
if (c4.isChecked())
{
return
c4.getText().toString();
}
return null;
}
Perintah tersebut digunakan untuk
mempersiapkan soal dengan
menggunakan widget textview yang ada
pada file question.xml dan mengaktifkan
radio button untuk menampilkan jawaban
dari masing-masing soal yang sudah
tersedia di database.

21

public void onClick(View


arg0) { switch
(arg0.getId()){ case
R.id.menu1Btn : finish(); }
/** * check if end of game
*/ if
(currentGame.isGameOver()){
Intent i = new Intent(this,
EndgameActivity.class);
startActivity(i); finish();
} else{ Intent i = new
Intent(this,
QuestionActivity.class);
startActivity(i); finish();
} } Script diatas adalah pengaktifan
intent pada menu mulai. Terdapat kondisi
percabangan pada bagian ini. Saat semua
soal sudah terjawab maka intent akan
beralih ke class EndgameActivity, jika
belum terjawab semua maka intent akan
masih berada di class QuestionActivity
sampai soal selesai terjawab. Selanjutnya
adalah melakukan panggilan dari
database untuk menampilkan soal-soal
kuis. Berikut merupakan potongan script
dari DbHelper.java yang digunakan
untuk pemanggilan database
questionDb1. public class
DBHelper extends
SQLiteOpenHelper { private
static String DB_PATH =
data/data/com.kuis/databas
es/"; private static String
DB_NAME = "questionsDb1";
private SQLiteDatabase
myDataBase; private final
Context myContext; public
void openDataBase() throws
SQLException { String
myPath = DB_PATH + DB_NAME;
myDataBase =
SQLiteDatabase.openDatabase
(myPath, null,
SQLiteDatabase.OPEN_READONL
Y); }
Database yang telah dibuat dengan
menggunakan Sqlite Expert di simpan di
dalam folder assets dan terdapat pada

path android di dalam folder databases.


Database tersebut hanya dapat dibaca
oleh aplikasi tanpa dapat melakukan
penambahan langsung di dalam aplikasi.
Untuk dapat membuka database, perintah
yang digunakan membutuhkan lokasi
path penyimpanan database beserta nama
database tersebut.
public List<Question>
getQuestionSet(int
difficulty, int numQ) {
List<Question> questionSet
= new
ArrayList<Question>();
Cursor c =
myDataBase.rawQuery(
"SELECT * FROM QUESTIONS
WHERE DIFFICULTY=" +
difficulty
+ " ORDER BY RANDOM() LIMIT
" + numQ, null);
while (c.moveToNext()) {
Question q = new
Question();
q.setQuestion(c.getString(1
));
q.setAnswer(c.getString(2))
;
q.setOption1(c.getString(3)
);
q.setOption2(c.getString(4)
);
q.setOption3(c.getString(5)
);
q.setRating(difficulty);
questionSet.add(q);
}
return questionSet;
}
Potongan script tersebut adalah
pengaturan untuk menampilkan soal dari
database berdasarkan tingkat kesulitan
dan sitampilkan secara acak dengan
jumlah soal yang sudah ditentukan. Di
dalam perintah tersebut akan ditampilkan
isi dari masing-masing atribut seperti
atribut question, atribut answer, dan
atribut option. 41

22

Gambar 3.11 Tampilan Menu Mulai


android:layout_x="8dip"
android:layout_y="324dip"><
/Button>
<Button
android:textColor="#000000"
android:paddingTop="5dip"
android:id="@+id/answerBtn"
android:layout_height="wrap
_content"
android:layout_width="80dip
"
android:paddingBottom="5dip
" 42

3.4.3 Pembuatan Menu Hasil Setelah


menjawab seluruh soal, maka intent akan
masuk ke dalam menu berikutnya, yaitu
tampilan hasil. Di dalam menu ini akan
terdapat hasil dari menjawab soal-soal
yang telah disediakan. Layout yang
digunakan pada menu ini berasal dari
endgame.xml yang di dalamnya terdapat
imageview untuk menampilkan gambar
dari kondisi nilai, textview untuk
menampilkan nilai, dan tombol menu
untuk masuk ke menu beikutnya berupa
pembahasan soal dan menu lain untuk
kembali ke menu utama. Berikut
merupakan potongan script dari
endgame.xml. <ImageView
android:layout_height="wrap
_content"
android:layout_width="wrap_
content"
android:id="@+id/resultPage
"
android:scaleType="fitXY"><
/ImageView> <Button
android:textColor="#000000"
android:paddingTop="5dip"
android:id="@+id/finishBtn"
android:layout_height="wrap
_content"
android:layout_width="80dip
"
android:paddingBottom="5dip
" android:text="Menu"

23

android:text="Jawaban"
android:layout_x="234dip"
android:layout_y="322dip"><
/Button>
<TextView
android:paddingRight="15dip
"
android:textColor="#000000"
android:paddingLeft="15dip"
android:textStyle="bold"
android:text="TextView"
android:id="@+id/endgameRes
ult"
android:gravity="center_hor
izontal"
android:layout_height="wrap
_content"
android:layout_width="fill_
parent"
android:layout_x="2dip"
android:layout_y="264dip><
/TextView>
Penulis menggunakan widget imageview
untuk menampilkan gambar dimana
gambar akan sesuai dengan lebar layar
ponsel pengguna dan diberi identifiers
"@+id/resultPage". Terdapat 2
tombol yaitu tombol Menu dan Jawaban.
Tombol Jawaban diberi pengenal
"@+id/answerBtn" untuk dapat
mengarahkan ke menu berikutnya, yaitu
untuk menampilkan jawaban yang benar
dari soal-soal yang diajukan. Untuk
menampilakan komentar digunakan
widget textview yang diberi id
endgameResult. Setelah
endgame.xml dibuat, selanjutnya adalah
pengaktifan dari file endgame yang
dibuat di dalam EndgameActivity.java.
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanc
eState);
setContentView(R.layout.end
game);
GamePlay currentGame =
((KuisApplication)getApplic
ation()).getCurrentGame();
String result = "Nilai Anda
adalah : " +
currentGame.getRight()
*20/4+ ".";
String comment =
Helper.getResultComment(cur

rentGame.getRight(),
currentGame.getNumRounds(),
getDifficultySettings());
TextView results =
(TextView)findViewById(R.id
.endgameResult);
results.setText(result +
comment);
int image =
Helper.getResultImage(curre
ntGame.getRight(),
currentGame.getNumRounds(),
getDifficultySettings());
ImageView resultImage =
(ImageView)findViewById(R.i
d.resultPage);
resultImage.setImageResourc
e(image);
//handle button actions
Button finishBtn = (Button)
findViewById(R.id.finishBtn
);
finishBtn.setOnClickListene
r(this);

24

Button answerBtn = (Button)


findViewById(R.id.answerBtn
);
answerBtn.setOnClickListene
r(this); } public void
onClick(View v) { switch
(v.getId()){ case
R.id.finishBtn : finish();
break; case R.id.answerBtn
: Intent i = new
Intent(this,
AnswersActivity.class);
startActivityForResult(i,
Constants.PLAYBUTTON);
break; } Pada file endgame.java
menggunakan layout endgame.xml yang
ada di dalam folder res/layout. String
result dari potongan script diatas adalah
komentar untuk memberitahu nilai yang
di dapat berupa jumlah benar menjawab
soal dari total soal yang ditampilkan.
Kemudian dilanjutkan dengan komentar
yang telah di deklarasikan pada file
Helper.java. untuk pengaktifan tombol,
tetap dengan menggunakan kondisi
switch-case dimana jika tombol menu
dengan id finishBtn ditekan, maka akan
kembali ke menu utama, disisi lain
halaman akan berpindah ke halaman
pembahasan dengan menggunakan file
AnswerActivity.java. Berkut merupakan
potongan script dari Helper.java.
public static String
getResultComment(int
numCorrect, int numRounds,
int diff) { String comm="";
int percentage =
calculatePercentage(numCorr
ect, numRounds); switch
(diff) { case
Constants.HARD : if
(percentage > 90){ comm =
"Sempurna! Anda mahir
berbahasa Jepang!"; }else
if (percentage >= 80){
comm="Anda hebat! Kemampuan
berbahasa Anda bagus
sekali!"; }else if
(percentage >= 60){
comm="Lumayan~ Tidak
terlalu buruk.";

25

}else if (percentage >=


40){
comm="Nilai Anda kurang
memuaskan. Silahkan coba
lagi~";
}else{
comm="Anda gagal! Pelajari
dan coba lagi yah~";
}
break;
return comm;
}
Potongan script diatas menjelaskan
tentang komentar yang akan ditampilkan
jika memenuhi salah satu kondisi diatas.
//image//
if (percentage > 90){
if (diff ==
Constants.HARD){
return
R.drawable.hard_winner;
}else{
return
R.drawable.easy_winner;
}
}else if (percentage >=
80){
return
R.drawable.hard_winner;
}else if (percentage >=
60){
return
R.drawable.easy_winner;
}else if (percentage >=
40){
return R.drawable.loser;
}else{
return R.drawable.loser;
}
}

Jika soal yang benar mendekati 90%


maka komentar yang akan keluar adalah
"Sempurna! Anda mahir berbahasa
Jepang!". Sebaliknya, jika soal yang
dijawab salah semua makan komentar
yang akan di dapat adalah "Anda gagal!
Pelajari dan coba lagi yah~".
public static int
getResultImage(int
numCorrect, int numRounds,
int diff){
int percentage =
calculatePercentage(numCorr
ect, numRounds);

26

private static int


calculatePercentage(int
numCorrect, int numRounds) {
double frac =
(double)numCorrect/(double)nu
mRounds;
int percentage = (int)
(frac*100);
return percentage;
} 45
Script diatas masih di dalam file Helper.java
yang akan menampilkan kondisi gambar

mana yang akan ditampilkan. Penyimpanan


gambar terdapat pada folder res/drawable.
Jika soal yang benar lebih dari 90% maka
gambar yang ditampilkan adalah gambar
dengan id bernama hard_winner. Jika salah
semua, maka gambar dengan id loser yang
akan ditampilkan. Untuk perhitungan nilai
menggunakan persentasi jumlah jawaban
yang benar dari jumlah soal yang
dikeluarkan.

Gambar 3.12 Tampilan Menu Hasil


3.4.4 Pembuatan Menu Jawaban Penulis
membuat halaman jawaban untuk membantu
pengguna agar dapat mengetahui jawaban
yang benar dari soal yang telah dikerjakan.

Pada halaman ini menggunakan scrollview


agar pengguna dapat melihat semua jawaban
dari semua soal yang ditampilkan sesuai
dengan tingkat kesulitan. Berikut merupakan

27

</AbsoluteLayout>
</ScrollView>
Widget textview dan button tetap digunakan
untuk menghubungkan ke halaman
sebelumnya. Textview digunakan untuk
menampilkan list soal dan jawaban dari
database. Identifiers untuk textview diberi
nama answers sedangkan untuk tombol
kembali diberi nama finishBtn. Berikut
merupakan file AnswerActivity.java.
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceS
tate);
setContentView(R.layout.answe
rs);
GamePlay currentGame =
((KuisApplication)getApplicat
ion()).getCurrentGame();
TextView results =
(TextView)findViewById(R.id.a
nswers);
String answers =
Utility.getAnswers(currentGam
e.getQuestions());
results.setText(answers);
Untuk menampilkan halaman jawaban ini,
file AnswerActivity menggunakan file
answers.xml sebagai layout. Setalah
halaman ditampilkan, dengan menggunakan
id answers milik widget textview, database
akan menampilkan soal dan jawaban sebagai
penghubungnya.
Button finishBtn = (Button)
findViewById(R.id.finishBtn);
finishBtn.setOnClickListener(
this);
}
public void onClick(View v) {
switch (v.getId()){ 47
case R.id.finishBtn :
finish(); } } Script tersebut
digunakan untuk mengaktifkan tombol
kembali dan melakukan intent ke halaman
sebelumnya dengan identifiers
finishBtn.

file answer.xml. <ScrollView


android:id="@+id/ScrollView01
"
android:layout_width="fill_pa
rent"
android:layout_height="fill_p
arent">
<AbsoluteLayout
android:id="@+id/linearLayout
1"
android:layout_width="fill_pa
rent"
android:layout_height="fill_p
arent"
android:orientation="vertical
" 46
android:background="@drawable
/menu2"
android:gravity="center_horiz
ontal">
<TextView
android:layout_height="wrap_c
ontent"
android:layout_width="fill_pa
rent" android:text="TextView"
android:id="@+id/answers"
android:paddingRight="15dip"
android:paddingLeft="15dip"
android:textStyle="bold"
android:gravity="center_horiz
ontal"
android:textColor="#000000"
android:layout_x="2dip"
android:layout_y="16dip"></Te
xtView>
<Button
android:paddingTop="5dip"
android:layout_height="wrap_c
ontent"
android:textColor="#000000"
android:paddingBottom="5dip"
android:layout_width="80dip"
android:id="@+id/finishBtn"
android:text="Kembali"
android:layout_x="116dip"
android:layout_y="229dip"></B
utton>

28

Gambar 3.13 Tampilan Menu Jawaban


android:layout_x="65dip"
android:layout_y="17dip"></Te
xtView> <Button
android:id="@+id/nextBtn"
android:layout_width="75px"
android:layout_height="wrap_c
ontent" android:text="OK"
android:layout_x="106dip"
android:layout_y="260dip"></B
utton>
<RadioGroup
android:layout_width="fill_pa
rent"
android:orientation="vertical
" android:id="@+id/group1" 48

3.4.5 Pembuatan Menu Pengaturan Pada


menu pengaturan, pengguna dapat memilih
tingkat kesulitan yang berbeda. Tingkat
kesulitan yang disediakan mulai dari yang
paling mudah, normal, hingga yang paling
sulit. Script dibawah ini untuk tampilan dari
menu pengaturan yang diberi nama
settings.xml. <TextView
android:text="Pilih Tingkat
Kesulitan"
android:layout_width="wrap_co
ntent"
android:layout_height="wrap_c
ontent"
android:id="@+id/textView1"
android:textSize="15px"

29

android:layout_height="wrap_c
ontent"
android:layout_x="13dip"
android:layout_y="93dip">
<RadioButton
android:checked="false"
android:text="Mudah"
android:textColor="#000000"
android:layout_width="wrap_co
ntent"
android:layout_height="wrap_c
ontent"
android:id="@+id/easySetting"
></RadioButton>
<RadioButton
android:checked="false"
android:text="Normal"
android:textColor="#000000"
android:layout_width="wrap_co
ntent"
android:layout_height="wrap_c
ontent"
android:id="@+id/mediumSettin
g"></RadioButton>
<RadioButton
android:checked="false"
android:text="Sulit"
android:textColor="#000000"
android:layout_width="wrap_co
ntent"
android:layout_height="wrap_c
ontent"
android:id="@+id/hardSetting"
></RadioButton>
</RadioGroup>
Sama seperti pada menu mulai, widget yang
digunakan terdiri dari radio button dan
button. Widget button disini digunakan
untuk mengaktifasi tingkat kesulitan yang
digunakan. Untuk pengkatifan halaman
pengaturan ini bisa dilihat dari file
SettingsActivity.java.
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceS
tate);

setContentView(R.layout.setti
ngs);
Button updateBtn = (Button)
findViewById(R.id.nextBtn);
updateBtn.setOnClickListener(
this);
updateButtonWithPreferences()
;
}
private void
updateButtonWithPreferences()
{
RadioButton c1 =
(RadioButton)findViewById(R.i
d.easySetting);
RadioButton c2 =
(RadioButton)findViewById(R.i
d.mediumSetting);
RadioButton c3 =
(RadioButton)findViewById(R.i
d.hardSetting);
SharedPreferences settings =
getSharedPreferences(Constant
s.SETTINGS, 0);
int diff =
settings.getInt(Constants.DIF
FICULTY, Constants.EASY);
switch (diff)
{
case Constants.EASY :
c1.toggle();
break;
case Constants.MEDIUM : 49
c2.toggle(); break; case
Constants.HARD : c3.toggle();
break; } } public void
onClick(View arg0) { if
(!checkSelected()) { return;
} else { SharedPreferences
settings =
getSharedPreferences(Constant
s.SETTINGS, 0); Editor e =
settings.edit();
e.putInt(Constants.DIFFICULTY
, getSelectedSetting());
e.commit(); finish(); } }
Perintah diatas adalah untuk mengkatifkan

30

tombol OK. Setalah pengguna memilih


tingkat kesulitan dan menekan tombol OK
maka terjadi perubahan soal yang akan
digunakan. Untuk masing-masing tingkat

kesulitan diberikan identifiers yang berbeda,


seperti mudah untuk easy, normal untuk
medium, dan sulit untuk hard.

Gambar 3.14 Tampilan Menu Pengaturan


android:layout_height="match_
parent">
<Button
android:textColor="#000000"
android:text="Kembali"
android:layout_height="wrap_c
ontent"
android:id="@+id/backBtn"
android:layout_width="80px"
android:layout_x="115dip"
android:layout_y="377dip"></B
utton>
<Button
android:textColor="#000000"
android:text="Hiragana"
android:layout_height="wrap_c
ontent"
android:id="@+id/hiragana"
android:layout_width="80px"
android:layout_x="17dip"

3.4.6 Pembuatan Menu Info


Menu ini berisi tentang informasi yang
dibutuhkan pengguna, seperti mengenai
perihal aplikasi dan materi huruf Jepang.
Pada tampilan ini cukup menggunakan 2
widget yaitu textview dan button. Script bisa
dilihat pada rules.xml.
<LinearLayout
xmlns:android="http://schemas
.android.com/apk/res/android"
android:id="@+id/linearLayout
1"
android:background="@drawable
/menu2"
android:layout_width="match_p
arent"
android:layout_height="match_
parent">
<AbsoluteLayout
android:layout_width="match_p
arent"

31

android:layout_y="306dip"></B
utton>
<Button
android:textColor="#000000"
android:text="Katakana"
android:layout_height="wrap_c
ontent"
android:id="@+id/katakana" 51
android:layout_width="80px"
android:layout_x="220dip"
android:layout_y="305dip"></B
utton> <TextView
android:textColor="#000000"
android:text="Pada aplikasi
ini telah disediakan materi
huruf jepang yang akan
membantu pembelajaran bahasa
Jepang untuk pengguna. Untuk
melihat materi, silahkan
pilih menu yang telah
tersedia."
android:layout_height="wrap_c
ontent"
android:layout_width="wrap_co
ntent"
android:id="@+id/textView4"
android:layout_x="9dip"
android:layout_y="221dip"></T
extView> <TextView
android:textColor="#000000"
android:text="Aplikasi ini
tersedia dalam 3 tingkat
kesulitan yaitu mudah,
normal, dan sulit dimana
setiap tingkat terdiri dari
20 soal."
android:layout_height="wrap_c
ontent"
android:layout_width="wrap_co
ntent"
android:id="@+id/textView3"
android:layout_x="8dip"
android:layout_y="154dip"></T
extView> <TextView
android:textColor="#000000"
android:text="Aplikasi Kuis
Bahasa Jepang merupakan

aplikasi yang dapat mengukur


dan melatih kemampuan
pengguna dalam berbahasa
Jepang."
android:layout_height="wrap_c
ontent"
android:layout_width="wrap_co
ntent"
android:id="@+id/textView2"
android:layout_x="8dip"
android:layout_y="87dip"></Te
xtView> <TextView
android:textColor="#000000"
android:textSize="18px"
android:text="Info Aplikasi"
android:layout_height="wrap_c
ontent"
android:layout_width="wrap_co
ntent"
android:id="@+id/textView1"
android:layout_x="107dip"
android:layout_y="21dip"></Te
xtView> </AbsoluteLayout>
</LinearLayout> Selanjutnya masuk
ke dalam file RulesActivity.java. Di dalam
file ini hanya berisi pengaktifan intent untuk
masuk ke dalam menu info dan untuk
percabangan ke menu hiragana dan
katakana. Berikut merupakan script dari
RulesActivity.java. public void
onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceS
tate);
setContentView(R.layout.rules
); //finish button Button
hiragana = (Button)
findViewById(R.id.hiragana);
hiragana.setOnClickListener(t
his); Button katakana =
(Button)
findViewById(R.id.katakana);
katakana.setOnClickListener(t
his); Button backBtn =
(Button)
findViewById(R.id.backBtn);
backBtn.setOnClickListener(th

32

is); } @Override public void


onClick(View v) { Intent i;
switch (v.getId()){ 52 case
R.id.hiragana :
i = new Intent(this,
Hiragana.class);
startActivityForResult(i,
Constants.PLAYBUTTON);
break;
case R.id.katakana :

i = new Intent(this,
Katakana.class);
startActivityForResult(i,
Constants.RULESBUTTON);
break;
case R.id.backBtn :
finish();
break;
}
}}

Gambar 3.15 Tampilan Menu Info


Sedangkan button digunakan untuk tombol
kemabli ke menu info. Script hiragana
maupun katakana tidak jauh berbeda baik
xml maupun java. Pada script hiragana.java,
yang diaktifkan hanyalah intent untuk

3.4.7 Pembuatan Menu Hiragana dan


Katakana
Pada menu ini menggunakan widget
imageview dan button. Image view
digunakan untuk menampilkan gambar dari
huruf hiragana maupun katakana.

33

setContentView(R.layout.hirag
ana); Button backBtn =
(Button)
findViewById(R.id.backBtn);
backBtn.setOnClickListener(th
is); } public void
onClick(View arg0) {
finish(); } }

kembali ke menu info. Berikut merupakan


script dari hiragana.java. 53
public class Hiragana extends
Activity implements
OnClickListener{ @Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceS
tate);

Gambar 3.16 Tampilan Menu Hiragana


layar HVGA. Untuk memasukkan aplikasi
ini cukup dengan memasukkan file
maretha.apk yang sudah ada di folder bin
pada package maretha pada ponsel dengan
bantuan bluetooth atau kabel data. 54

3.5 Uji Coba Aplikasi


Setelah pembuatan program aplikasi Kuis
Bahasa Jepang selesai, selanjutnya penulis
melakukan uji coba aplikasi tersebut. Uji
coba dilakukan dengan menggunakan ponsel
Huawei C8560 dengan sistem operasi
Android versi 2.3 GingerBread dan resolusi

34

mengukur kemampuan berbahasa Jepang.


Pembuatan aplikasi ini juga sangat
bermanfaat bagi penulis sendiri, disamping
menjadi lebih mahir dalam berbahasa
Jepang, penulis juga dapat mengerti lebih
jauh tentang perkembangan software pada
ponsel berbasis Android. Dalam pembuatan
aplikasi ini, penulis mendapatkan
kemudahan dalam pembuatan tampilan
aplikasi, dikarenakan sudah tersedianya
tempat pembuatan tampilan xml pada
Eclipse Helios sehingga penulis dapat
dengan mudah menambahkan elemenelemen yang digunakan.

3.6 Spesifikasi Hardware dan Software


Pendukung
Peralatan pendukung yang digunakan untuk
membuat aplikasi Kuis Bahasa Jepang ini
terdiri dari hardware dan software dengan
spesifikasi minimum sebagai berikut:
Hardware:
Komputer atau Notebook Intel Core
2 Duo 1.66 Ghz

RAM 504 MB

VGA 512 MB

Harddisk 60 GB

Smartphone Android versi 2.3 (


Ginger Bread ) 600MHz

Software:
Microsoft Windows XP

JDK 1.6.0_24 for windows i586

JRE 1.6.0_24 for Windows i586

Installer_r10-windows (Android
SDK)

ADT-10.0.1

Eclipse Helios

SQLite Expert Personal 3

4.2 Saran
Penulis menyadari bahwa aplikasi Kuis
Bahasa Jepang merupakan aplikasi
sederhana yang masih harus disempurnakan
lagi, karena itu saran yang dapat diberikan
penulis adalah agar aplikasi Kuis Bahasa
Jepang dapat lebih dikembangkan lagi
diantaranya adalah dengan penambahan
database pertanyaan kuis, penambahan fitur
timer, pembuatan tampilan aplikasi yang
lebih menarik, serta pengintegrasian dengan
internet agar pertanyaan kuis dapat diupdate
dengan mudah. Penulis berharap semoga
aplikasi ini dapat berguna dan lebih baik lagi
dalam pengembangannya nanti.

4. PENUTUP
4.1 Kesimpulan
Berdasarkan hasil uji coba aplikasi yang
telah dilakukan pada ponsel Android dapat
disimpulkan bahwa aplikasi Kuis Bahasa
Jepang dapat berjalan dengan baik. Dari uji
coba aplikasi ini, ternyata banyak informasi
yang didapatkan oleh pengguna aplikasi ini
khususnya pelajar dan mahasiswa dalam
memahami bahasa Jepang serta membantu
dalam memperoleh wawasan dan
pengetahuan tambahan, serta dapat

35

DAFTAR PUSTAKA [1] Hermawan S,


Stephanus, Mudah Membuat Aplikasi
Android, Cetakan Pertama, Penerbit Andi,
Yogyakarta, 2011.
[2] Mulyadi, Membuat aplikasi untuk
Android, Multimedia Center Publishing,
Yogyakarta, 2010.

[7] Anonim, Make Quiz Take Quiz - App


Inventor for Android, http://jonersinventor.appspot.com/learn/tutorials/makequ
iztakequiz/makequiztakequiz.html , Tanggal
Akses: 20 April 2012.
[8] Muhammad Maqsoodur Rehman,
Tutorial: Developing a Quiz App on
Android, http://maxood-androidcorner.blogspot.com/2010/08/developingquiz-app-on-android.html , Tanggal Akses :
28 April 2012.
57
[9] Android Dom, Android and SQLite,
http://www.androiddom.com/2011/06/androi
d-and-sqlite.html , Tanggal Akses : 3 Mei
2012.

[3] Nazruddin, Safaat H, Pemrograman


Aplikasi Mobile Smartphone dan Tablet PC
berbasis Android, Informatika, Bandung,
2011.
[4] Siregar, Ivan, Membongkar Source Code
Berbagai Aplikasi Android, Gava Media,
Yogyakarta, 2007.
[5] Rob Hinds, Getting Started - A Complete
Android App walkthrough for Beginners
(Part 1),
http://automateddeveloper.blogspot.com/201
1/06/getting-started-complete-androidapp.html , Tanggal Akses : 20 April 2012.

[10] Anonim, Kosa Kata Bahasa Jepang,


http://fk-unsyiah.forumotion.com/t129-kosakata-bahasa-jepang, Tanggal Akses : 2
Agustus 2012.
[11] Bryn Dyment , Practice Hiragana,
http://www.realkana.com/hiragana , Tanggal
Akses : 2 Agustus 2012.

[6] Rob Hinds, Getting Started - A Complete


Android App walkthrough for Beginners
(Part 2),
http://automateddeveloper.blogspot.com/201
1/06/getting-started-complete-androidapp_11.html , Tanggal Akses : 20 April
2012.

[12] Bryn Dyment , Practice Katakana,


http://www.realkana.com/katakana ,
Tanggal Akses : 2 Agustus 2012.

36