Anda di halaman 1dari 70

PERANCANGAN GAME EDUKASI TENTANG FPB DAN

KPK MENGGUNAKAN METODE PETAK SAWAH


BERBASIS ANDROID
HALAMAN JUDUL

Disusun Oleh:

Nama : Teknik Informatika


NIM : 94523999

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS ISLAM INDONESIA
2017
HALAMAN PENGESAHAN DOSEN PEMBIMBING

PERANCANGAN GAME EDUKASI TENTANG FPB DAN


KPK MENGGUNAKAN METODE PETAK SAWAH
BERBASIS ANDROID

TUGAS AKHIR

Disusun Oleh:

Nama : Teknik Informatika


NIM : 94523999

Yogyakarta, 1 Nopember 2017


Pembimbing,

( Zainudin Zukhri, S.T, M.IT )

ii
HALAMAN PENGESAHAN DOSEN PENGUJI

PERANCANGAN GAME EDUKASI TENTANG FPB DAN


KPK MENGGUNAKAN METODE PETAK SAWAH
BERBASIS ANDROID
TUGAS AKHIR

Telah dipertahankan di depan sidang penguji sebagai salah satu syarat untuk
memperoleh gelar Sarjana Teknik Informatika
di Fakultas Teknologi Industri Universitas Islam Indonesia
Yogyakarta, 1 Nopember 2017

Tim Penguji

Hendrik, S.T., M.Eng. _______________________

Anggota 1

Dr. Raden Teduh Dirgahayu, S.T., M.Sc. _______________________

Anggota 2

Dr. Mukhammad A Setiawan, S.T., M.Sc. _______________________

Mengetahui,
Ketua Jurusan Teknik Informatika
Fakultas Teknologi Industri
Universitas Islam Indonesia

( Hendrik, S.T., M.Eng. )

iii
HALAMAN PERNYATAAN KEASLIAN TUGAS AKHIR

Yang bertanda tangan di bawah ini:


Nama : Teknik Informatika
NIM : 94523999

Tugas akhir dengan judul:

PERANCANGAN GAME EDUKASI TENTANG FPB DAN


KPK MENGGUNAKAN METODE PETAK SAWAH
BERBASIS ANDROID

Menyatakan bahwa seluruh komponen dan isi dalam tugas akhir ini adalah hasil karya
saya sendiri. Apabila dikemudian hari terbukti ada beberapa bagian dari karya ini adalah
bukan hasil karya sendiri, tugas akhir yang diajukan sebagai hasil karya sendiri ini siap
ditarik kembali dan siap menanggung resiko dan konsekuensi apapun.
Demikian surat pernyataan ini dibuat, semoga dapat dipergunakan sebagaimana
mestinya.

Yogyakarta, 1 Nopember 2017

( Nama Mahasiswa )

iv
HALAMAN PERSEMBAHAN

Bagian ini bebas untuk diisikan berbagai macam kalimat persembahan selama kalimat
yang dibuat tidak melanggar etika. Idealnya halaman persembahan dibuat sebanyak satu
halaman.

v
HALAMAN MOTO

Bagian ini bebas untuk diisikan berbagai macam kalimat moto selama kalimat yang
dibuat tidak melanggar etika. Idealnya halaman moto dibuat sebanyak satu halaman.

vi
KATA PENGANTAR

Kata pengantar adalah bagian yang digunakan untuk menyampaikan rasa syukur atas
selesainya penyusunan laporan tugas akhir. Selain itu, bagian kata pengantar juga dapat
memuat berbagai hal sebagai berikut:
1. Tujuan penulisan laporan atau pelaksanaan penelitian tugas akhir.
2. Mengemukakan kesulitan-kesulitan (non ilmiah) yang ditemui pada saat
penelitian tugas akhir.
3. Ucapan terima kasih kepada beberapa pihak yang telah membantu atau
mendukung penyelesaian penulisan laporan atau pelaksanaan penelitian tugas
akhir.
4. Harapan penulis terhadap penelitian tugas akhir yang telah diselesaikan.
Umumnya bagian kata pengantar ditutup dengan tanda tangan dari penulis.

Yogyakarta, 1 Nopember 2017

( Nama Mahasiswa )

vii
SARI

Bagian sari adalah bagian laporan yang berisi ide pokok laporan yang meliputi latar
belakang, gambaran singkat penelitian, metodologi yang digunakan, serta temuan-temuan
yang dihimpun dari pelaksanaan penelitian. Idealnya bagian sari dibuat sebanyak satu
halaman, lengkap dengan tambahan beberapa kata kunci yang digunakan pada bagian sari.

Kata kunci: sari, metodologi, temuan.

viii
GLOSARIUM

Glosarium memuat daftar kata tertentu yang digunakan dalam laporan dan membutuhkan
penjelasan, misalnya kata serapan yang belum lazim digunakan. Contoh penulisannya seperti
di bawah ini:

Compile proses untuk mengubah berkas kode program dengan berkas lain yang
terkait menjadi berkas yang siap untuk dieksekusi oleh sistem operasi
secara langsung.
Debug langkah untuk menelusuri kesalahan kode program.
Waterfall metode pengembangan perangkat lunak.

ix
DAFTAR ISI

HALAMAN JUDUL...................................................................................................................i
HALAMAN PENGESAHAN DOSEN PEMBIMBING...........................................................ii
HALAMAN PENGESAHAN DOSEN PENGUJI...................................................................iii
HALAMAN PERNYATAAN KEASLIAN TUGAS AKHIR.................................................iv
HALAMAN PERSEMBAHAN.................................................................................................v
HALAMAN MOTO.................................................................................................................vi
KATA PENGANTAR.............................................................................................................vii
SARI ......................................................................................................................................viii
GLOSARIUM...........................................................................................................................ix
DAFTAR ISI..............................................................................................................................x
DAFTAR TABEL...................................................................................................................xiii
DAFTAR GAMBAR..............................................................................................................xiv
BAB I PENDAHULUAN..........................................................................................................1
1.1 Latar Belakang .................................................................................................................1
1.2 Rumusan Masalah.............................................................................................................2
1.3 Batasan Masalah................................................................................................................2
1.4 Tujuan Penelitian..............................................................................................................2
1.5 Manfaat Penelitian............................................................................................................3
1.6 Metode Perancangan Sistem.............................................................................................3
1.7 Sistematika Penulisan........................................................................................................4
BAB II LANDASAN TEORI....................................................................................................5
2.1 Definisi Game...................................................................................................................5
2.2 Jenis Game........................................................................................................................5
2.3 FPB dan KPK....................................................................................................................6
2.3.1 Cara Mencari FPB dan KPK...........................................................................................6
2.4 Metode Petak Sawah........................................................................................................8
2.5 Android.............................................................................................................................9
2.5.1 Arsitektur Android...........................................................................................................9
2.6 Analisis Kebutuhan Sistem.............................................................................................10
2.7 Analisis Kelayakan Sistem..............................................................................................11
2.8 UML................................................................................................................................11
2.9 Metode Pengembangan Sistem.......................................................................................13

x
2.10 Metode Pengujian Sistem................................................................................................15
2.10.1 Unit Testing..................................................................................................................15
BAB III ANALISIS DAN PERANCANGAN........................................................................17
3.1 Deskripsi Singkat............................................................................................................17
3.2 Analisis Masalah.............................................................................................................17
3.2.1 Solusi-Solusi yang diterapkan........................................................................................17
3.2.2 Solusi yang dipilih..........................................................................................................17
3.3 Analisis Kebutuhan Sistem..............................................................................................18
3.3.1 Analisis Kebutuhan Fungsional.....................................................................................18
3.3.2 Analisis Kebutuhan Non-Fungsional.............................................................................18
3.4 Analisis Kelayakan Sistem...............................................................................................18
3.4.1 Analisis Kelayakan Teknis.............................................................................................18
3.4.2 Analisis Kelayakan Operasional....................................................................................19
3.4.3 Analisis Kelayakan Hukum............................................................................................20
3.4.4 Analisis Kelayakan Ekonomi.........................................................................................20
3.5 Perancangan Sistem.........................................................................................................20
3.5.1 Rancangan HIPO Diagram.............................................................................................20
3.5.2 Rancangan Actifity Diagram..........................................................................................22
3.5.3 Rancangan Sequence Diagram.......................................................................................27
3.5.4 Rancangan Antarmuka...................................................................................................30
BAB IV HASIL DAN PEMBAHASAN.................................................................................34
4.1 Implementasi...................................................................................................................34
4.1.1 Halaman Awal................................................................................................................34
4.1.2 Halaman Pemilihan Level Permainan............................................................................36
4.1.3 Halaman Pemilihan Nomor Soal....................................................................................39
4.1.4 Halaman Permainan.......................................................................................................43
4.1.5 Halaman Bantuan...........................................................................................................47
4.1.6 Halaman Kredit..............................................................................................................50
4.2 Pengujian Sistem.............................................................................................................53
4.2.1 White Box Testing.........................................................................................................54
4.2.2 Black Box Testing..........................................................................................................55
BAB V KESIMPULAN DAN SARAN...................................................................................57
5.1 Kesimpulan.....................................................................................................................57
5.2 Saran................................................................................................................................57

xi
DAFTAR PUSTAKA..............................................................................................................58

xii
DAFTAR TABEL

Tabel 2.1 Simbol Actifity Diagram..........................................................................................12


YTabel 3.1 Diagram Ringkasan (Overview Diagram)............................................................21
YTabel 3.2 Diagram Rinci.......................................................................................................22
YTabel 4.1 Tabel Hasil Pengujian Black Box Testing............................................................54

xiii
DAFTAR GAMBAR

Gambar 2.1 Arsitektur Android..............................................................................................10


YGambar 2.2 SDLC Waterfall Model....................................................................................14
YGambar 3.1 Diagram HIPO..................................................................................................21
Gambar 3.2 Actifity Diagram Halaman Utama Game Petak Sawah......................................23
Gambar 3.3 Actifity Diagram Halaman Main Game Petak Sawah........................................23
Gambar 3.4 Actifity Diagram Halaman Main Level 'Mudah'.................................................24
Gambar 3.5 Actifity Diagram Halaman Main Level 'Sedang'................................................25
Gambar 3.6 Actifity Diagram Halaman Main Level 'Susah'..................................................25
Gambar 3.7 Actifity Diagram Halaman Bantuan Game Petak Sawah....................................26
Gambar 3.8 Actifity Diagram Halaman Kredit Game Petak Sawah.......................................26
Gambar 3.9 Sequence Diagram Halaman Utama Game Petak Sawah...................................27
Gambar 3.10 Sequence Diagram Halaman Main Level 'Mudah'............................................28
Gambar 3.11 Sequence Diagram Halaman Main Level 'Sedang'...........................................28
Gambar 3.12 Sequence Diagram Halaman Main Level 'Susah'..............................................29
Gambar 3.13 Sequence Diagram Halaman Bantuan Game Petak Sawah...............................29
Gambar 3.14 Sequence Diagram Halaman Kredit Game Petak Sawah..................................30
Gambar 3.15 Sequence Diagram Keluar Game Petak Sawah.................................................30
Gambar 3.16 Rancangan Halaman Utama Game Petak Sawah..............................................31
Gambar 3.17 Rancangan Halaman Pilihan Level Game Petak Sawah...................................31
Gambar 3.18 Rancangan Halaman Pilihan No.Soal Game Petak Sawah...............................32
Gambar 3.19 Rancangan Halaman Bantuan Game Petak Sawah...........................................32
Gambar 3.20 Rancangan Halaman Kredit Game Petak Sawah..............................................33
Gambar 3.21 Rancangan Halaman Permainan Game Petak Sawah.......................................33
Gambar 4.1 Halaman Utama Aplikasi....................................................................................34
Gambar 4.2 Halaman Level Permainan..................................................................................37
Gambar 4.3 Halaman Pemilihan Nomor Soal.........................................................................40
Gambar 4.4 Halaman Permainan............................................................................................43
Gambar 4.5 Halaman Bantuan................................................................................................48
Gambar 4.6 Halaman Kredit...................................................................................................50
Gambar 4.7 Tampilan Error Saat Pengkodean........................................................................54
Gambar 4.8 Tampilan Warning Saat Pengkodean..................................................................55

xiv
BAB I
PENDAHULUAN

1.1 Latar Belakang


Teknologi mobile sudah menjadi kebutuhan yang tidak dapat dihindarkan dalam berbagai
aspek. Hampir semua kegiatan khususnya dalam hiburan menerapkan teknologi mobile
dilihat dari praktisnya, sehingga saat ini banyak perkembangan aplikasi hiburan yang
ditanamkan di teknologi mobile perkembangan industri permainan mobile sedemikian cepat
maka permainan yang dihasilkan pun semakin bervariasi. Perkembangan game mobile
android, memang meningkat secara pesat. Perkembangan teknologi semacam itu, semestinya
dapat kita manfaatkan untuk tujuan tetentu dalam pengetahuan kalangan anak-anak sekolah
dasar mengenai pengetahuan-pengetahuan yang bermanfaat. Namun, perkembangan game
saat ini kebanyakan hanya digunakan untuk kesenangan dan hiburan semata, kurang
menekankan pada sisi edukasi. Aplikasi dalam bentuk mobile Puji Lestari (2013) merupakan
solusi yang dapat menjawab kekurangan dari sistem pembelajaran yang sudah ada. Aplikasi
ini mempunyai beberapa kelebihan diantaranya sebagai sebuah media edutainment, media
yang menggabungkan unsur edukasi (education) dengan hiburan (enterainment atau belajar
sambil bermain.

Implementasi teknik desain game dalam pembuatan game mobile sederhana diberikan
oleh Yunis Aprilianti dkk (2013) membuat sebuah permainan mobil bertemakan edukasi
dalam perangkat Android dengan topik pembelajaran matematika kelas VI sekolah dasar.
Aplikasi yang dibuat oleh Ivan Eric Budhiato (2013) dapat digunakan sebagai salah satu
media edukasi yang memiliki pola pembelajaran learning by doing. Ia membuat soal
matematika yang bertipe penjumlahan, pengurangan, perkalian, pembagian dan campuran
yang merupakan gabungan antara penjumlahan, pengurangan, perkalian, dan pembagian.

FPB dan KPK merupakan suatu konsep Matematika yang mempelajari konsep bilangan
yang diajarkan di kelas tinggi Sekolah Dasar (SD) dan di kelas awal Sekolah Menengah
Pertama (SMP). Seringkali peserta didik di usia tersebut mengalami kesulitan dalam
menentukan FPB dan KPK dari dua atau tiga bilangan tertentu. Apalagi jika mereka
dihadapkan pada prosedur faktorisasi prima yang cukup kompleks. Andai pun mereka telah

1
2

bisa melewati tahapan faktorisasi prima, terkadang mereka gagal dalam mengeksekusi
tahapan akhir menentukan FPB dan KPK suatu bilangan. Terdapat beberapa metode atau
prosedur yang dipakai dalam menentukan FPB dan KPK salah satunya adalah metode Petak
Sawah. Metode Petak Sawah adalah cara yang cepat dan sederhana untuk mencari FPB dan
KPK dari suatu bilangan karena tidak perlu mencari faktorisasi prima terlebih dahulu
sehingga ini sangat cocok apabila diajarkan kepada anak-anak. Hal ini kemudian
melatarbelakangi penulisan skripsi yang berjudul ‘Perancangan Game Edukasi Tentang FPB
dan KPK Menggunakan Metode Petak Sawah Berbasis Android’
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah diuraian pada latar belakang masalah, maka
dapat dirumuskan adalah bagaimana merancang permainan edukasi dalam menentukan FPB
dan KPK menggunakan metode Petak Sawah berbasis Android.

1.3 Batasan Masalah


Adapun batasan pekerjaan dalam pembuatan tugas akhir ini adalah sebagai berikut :
1. Game ini hanya bisa dimainkan dalam oleh satu pemain, dengan memindahkan balok-
balok angka berdasarkan perhitungan yang menurut pemain adalah perhitungan yang
benar.
2. Level dari permainan ini meningkat dengan menambahkan jumlah angka yang dihitung
dari satuan ke puluhan, puluhan ke ratusan begitu seterusnya.
3. Memainkan game ini tidak membutuhkan koneksi internet.

1.4 Tujuan Penelitian


Tujuan penelitian dari perancangan game ini adalah:

1. Merancang dan membangun sebuah aplikasi game yang berbasis perangkat mobile
modern yang berguna untuk edukasi matematika.
2. Sebagai syarat kelulusan program studi Strata 1 (S1) di Universitas Islam Indonesia
Yogyakarta pada jurusan Teknik Informatika.

1.5 Manfaat Penelitian

1 Sebagai langkah untuk memperdalam kemampuan dan pengetahuan dalam dunia


3

pembuatan game dan wawasan dalam menerapkan teori-teori yang sudah di peroleh
dibangku perkuliahan.
2 Merangsang motorik halus anak, meningkatkan kemampuan berfikir dan membuat anak
belajar konsentrasi, melatih koordinasi tangan dan mata, meningkatkan keterampilan
kognitif yaitu dalam memecahkan masalah.

1.6 Metode Perancangan Sistem

Metode Pengembangan Sistem yang akan dipakai dalam perancangan sistem ini
adalah menggunakan metode SDLC Waterfall dengan tahapan sebagai berikut:
1. Software Requirement Analysis
2. Design
3. Coding
4. Testing
5. Maintenance

1.7 Sistematika Penulisan

Dalam penulisan Laporan Skripsi penulis sajikan dengan sistematika sebagai

berikut:

BAB I PENDAHULUAN

Bab pendahuluan ini, mengemukakan tentang latar belakang masalah, rumusan

masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan

sistematika penulisan.

BAB II LANDASAN TEORI

Bab ini berisi tentang teori-teori, konsep dasar yang mendukung pembuatan game

Petak Sawah KPK dan FPB menggunakan android, dasar teori, sejarah perkembangan game,

konsep dasar game, pengertian game, jenis-jenis game, metode pengembangan, fitur game,

tahap pembuatan game,perangkat lunak yang digunakan.


4

BAB III ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini dijelaskan analisis dan perancangan aplikasi game Petak Sawah KPK

dan FPB yaitu tujuan analisis sistem, analisis kebutuhan sistem, analisis kelayakan sistem,

perancangan game, konsep game, perancangan diagram alir (flowchart), perancangan

storyboard, serta perancangan struktur navigasi.

BAB IV IMPLEMENTASI DAN PEMBAHASAN

Pada bab 4 ini mengutarakan implementasi sistem yang mencakup cara pembuatan,

tampilan, kinerja dan uji coba hasil sistem serta pembahasannya.

BAB V PENUTUP

Merupakan bab terakhir yang berisi tentang kesimpulan dari apa yang telah dibuat

yang kemudian diakhiri dengan saran untuk memperbaiki aplikasi yang telah dihasilkan

untuk masa yang akan datang.


BAB II
LANDASAN TEORI

2.1 Definisi Game


Kata game berasal dari bahasa Inggris yang berarti permainan. Permainan adalah
sesuatu yang digunakan untuk bermain yang dimainkan dengan aturan-aturan tertentu. Game
adalah permainan yang menggunakan media elektronik, merupakan sebuah hiburan
berbentuk multimedia yang dibuat semenarik mungkin agar pemain bisa mendapatkan
sesuatu sehingga adanya kepuasaan batin.
Menurut Randi, game adalah permainan yang dapat dimainkan dengan aturan
tertentu sehingga ada menang dan kalah, biasanya dalam konteks dan tidak serius dan dengan
tujuan refresing.
Program permainan (games) sudah menjalar pula pada sistem komputer multimedia.
Game atau permainan adalah sesuatu yang dapat dimainkan dengan aturan tertentu sehingga
ada yang menang dan ada yang kalah, biasanya dalam konteks tidak serius dengan tujuan
refreshing. Bermain game sudah dapat dikatakan sebagai life style masyarakat dimasa kini.
Dimulai dari usia anak-anak hingga orang dewasa pun menyukai video game. Itu semua
dikarenakan bermain video game adalah hal yang menyenangkan. Permainan komputer yang
didalamnya terdapat 5 kategori yaitu Expensive dedicate mechine, Inexpensive dedicate,
Multiprogram home, Personal computer, Mainframe computer. Permainan komputer berbeda
dengan jenis game lain karena tidak ada pergerakan secara fisik atau interaksi langsung
dengan objek kecuali lewat perantara komputer. Perangkat lunak yang dibuat harus dapat
menangkap reaksi yang cepat dari interaksi yang dihasilkan dengan pemain. Karena itu
perangkat lunak yang digunakan harus bersifat real time. Kompleksitas game adalah
bergantung dari kemampuan merepresentasikan aturan dan lingkungan game yang akan
dibuat.

2.2 Jenis Game


Perkembangan game memang begitu pesat. Dunia game diawali dengan console-
console pendahulu seperti Atari, Nintendo, Super Nintendo (SNES), dan Sega yang
menampilkan game-game 2 dimensi yang cukup sederhana, namun untuk di jamannya,
banyak diminati oleh masyarakat.

5
6

Perkembangan console-console sekarang ini seperti Sony Playstation, Nitendo Wii


dan Xbox berpengaruh pada Personal Computer (PC), yang kinipun telah menjadi console
game yang cukup diperhitungkan. Meski hal ini berimbas kepada PC sebagai console game
ini akan mengakibatkan bahwa seiring waktu proses meng-upgrade performance PC mutlak
diperlukan bagi mereka, gamer-gamer pengguna console PC, untuk dapat mendukung
requirements game-game saat ini. Console-console saat ini memberikan tampilan yang begitu
memukau dengan game 3 dimensi yang begitu hidup dan memberikan kesan realistik,
sehingga terkadang pemain game tidak sedang bermain game tetapi seperti menyaksikan
sebuah kehidupan nyata yang mampu kita kendalikan melalui controller.

2.3 FPB dan KPK


KPK atau Kelipatan adalah penjumlahan suatu bilangan dengan bilangan itu sendiri
secara terus menerus. Contoh: Kelipatan dari angka 3 adalah 3, 6, 9, 12, 15, dan seterusnya.
KPK (Kelipatan Persekutuan Terkecil) disebut juga dengan LCM (Least Common Multiple).
KPK adalah kelipatan yang sama dan terkecil antara dua bilangan atau lebih. KPK antara
bilangan a dan b biasa ditulis KPK (a,b) atau LCM (a,b). Contohnya, KPK(15,20)=60 atau
LCM(15,20)=60.
Sedangkan FPB adalah Faktor merupakan angka-angka yang dapat membagi suatu
bilangan. Sedangkan FPB adalah singkatan dari Faktor Persekutuan Terbesar, disebut juga
dengan GCD(Great Common Divisor), yaitu faktor-faktor atau angka-angka  pembagi
yang sama dan terbesar antara dua bilangan atau lebih.

2.3.1 Cara Mencari FPK dan KPK


KPK dapat dicari dengan mengalikan suatu bilangan dengan 1, 2, 3, 4, 5, dan seterusnya
sampai anda menemukan KPK. Contohnya, kelipatan dari 3 adalah 3, 6, 9, 12, 15, dan
seterusnya. Contoh :
Carilah KPK antara 15 dan 40.
Kelipatan dari 15 adalah 15, 30, 45, 60, 75, 90, 105, 120, 135, dan seterusnya. Kelipatan dari
40 adalah 40, 80, 120, 160,200, dan seterusnya. Perhatikan bahwa yang dicetak
tebal (bold) merupakan kelipatan yang sama dan terkecil. Jadi, lcm(15,40)=120.
7

Sedangkan FPB bilangan didapat dengan mencari semua perkalian dua bilangan yang
menghasilkan bilangan tersebut. Contoh :
Carilah FPB antara 25 dan 40.
Bilangan 25 didapat dari hasil perkalian (1 x 25) dan (5 x 5). Jadi, faktor dari 25 adalah 1, 5,
dan 25. Bilangan 40 didapat dari hasil perkalian (1 x 40), (2 x 20), (4 x 10), dan (5 x 8). Jadi,
faktor dari 40 adalah 1, 2, 4, 5, 8, 10, 20, dan 40. Perhatikan faktor-faktor bilangan 25 dan 40.
Didapat bahwa yang merupakan faktor yang sama dan terbesar adalah 5. Jadi,
GCD(25,40)=5.

2.4 Metode Petak Sawah


Menentukan FPB dan KPK tidak hanya dengan cara pohon faktor, ada cara lain
menentukan FPB dan KPK yaitu dengan cara tabel atau yang dikenal juga dengan nama petak
sawah. Cara ini lebih sederhana dalam menentukan faktorisasi prima yang digunakan pada
cara pohon faktor, dengan cara tabel FPB dan KPK langsung dapat dilihat dengan mudah.
Cara menentukan FPB dan KPK menggunakan Petak Sawah dapat dilihat pada langkah-
langkah berikut :

1. Perhatikan gambar dibawah ini :

3 4
0 2
1 2
2
5 1
3 5 7
5 1 -
7 - 1

2. Gambar tersebut terdiri dari tiga kolom, yang paling kiri merupakan kolom angka prima
yang digunakan sebagai pembagi, dan kolom kedua dan ketiga merupakan kolom angka
yang akan dicari FPB dan KPK . Angka 30 dan 42 dibagi dengan bilangan prima, agar
lebih mudah dan rapi. dibiasakan membaginya dengan bilangan prima terkecil lebih
dahulu, jika salah satunya masih bisa terus gunakan angka prima yang sama untuk
membaginya, jika sudah tidak dapat dibagi lagi maka gunakan angka prima sesudahnya,
terus begitu sampai semua kolom menjadi 1 karena habis dibagi dengan bilangan prima.
8

3. Pertama bagi 30 dan 42 dengan bilangan prima terkecil yaitu 2, masing-masing hasilnya
15 dan 21.
3 4
0 2
1 2
2
5 1

4. Kemudian periksa apakah 15 dan 21 bisa dibagi dengan 2, jika tidak ada yang bisa dibagi
dengan 2 maka gunakan bilangan prima berikutnya untuk membaginya yaitu 3. hasilnya
seperti ini
1 2
2
5 1
3 5 7

5. Sekarang hasil pembagian 15 dan 21 dengan 3 menghasilkan angka 5 dan 7. periksa lagi
apakah 5 dan 7 masih bisa dibagi 3, jika tidak bisa, maka bagi dengan angka prima
berikutnya yaitu 5. Tapi yang dapat dibagi dengan 5, hanya angka 5 sedangkan 7 tidak
bisa. Hal ini tidak masalah, yang tidak bisa dibagi dengan angka 5 cukup kasih tanda “-“
yang menandakan tidak bisa.

3 5 7
5 1 -

6. Jika sudah menjadi 1 maka kolom tersebut sudah selesai, dan tidak perlu dibagi lagi
dengan angka prima. Kemudian membagi kolom lain dengan angka prima agar menjadi
1. Pada kolom tersebut menyisakan angka 7, maka hanya tinggal dibagi dengan angka
prima 7 agar menjadi 1.
3 5 7
5 1 -
7 - 1

7. Sekarang masing-masing kolom angka yang akan kita tentukan FPB dan KPK nya telah
menjadi 1. lebih lengkapnya seperti gambar dibawah ini

3 4
0 2
2 1 2
9

5 1
3 5 7
5 1 -
7 - 1

8. Perhatikan kolom selain kolom bilangan prima, ada dua kolom yang terisi bersamaan
(ditulis dengan warna merah), sedangkan kolom lain hanya terisi salah satunya. Kalikan
angka prima dari kolom yang keduanya terisi angka (yaitu baris 1 dan 2) untuk
mendapatkan FPB, dengan angka prima 2 dan 3, maka 2 x 3 = 6. Sedangkan untuk KPK
hanya perlu untuk mengalikan seluruh angka yang ada di kolom angka prima, yaitu 2, 3,
5, dan 7. Maka KPK nya adalah 2 x 3 x 5 x 7 = 210.

2.5 Android
Android merupakan sistem operasi berbasis Linux yang bersifat terbuka (open source)
dan dirancang untuk perangkat seluler layar sentuh seperti smartphone dan komputer tablet.
Android dikembangkan oleh Android, Inc., dengan dukungan finansial dari google yang
kemudian dibeli pada tahun 2005. Android dirilis secara resmi pada tahun 2007, bersamaan
dengan didirikannya Open Handset Alliance Tampilan Android didasarkan pada manipulasi
langsung, menggunakan masukan sentuh yang serupa dengan tindakan di dunia nyata, seperti
menggesek, mengetuk, mencubit, dan membalikkan cubitan untuk memanipulasi obyek di
layar. Pada bulan Oktober 2012, terdapat 700.000 aplikasi yang tersedia untuk Android, dan
sekitar 25 juta aplikasi telah diunduh dari Google Play, toko aplikasi utama Android. Sebuah
survey pada bulan April-Mei 2013 menemukan bahwa Android adalah platform paling
populer bagi para pengembang, digunakan oleh 71% pengembang aplikasi seluler. Dan pada
tanggal 3 September 2013, 1 miliar perangkat Android telah Diaktifkan Sifat Android yang
terbuka telah membuat bermunculannya sejumlah besar komunitas pengembang aplikasi
untuk menggunakan android sebagai dasar proyek pembuatan aplikasi, dengan menambahkan
fitur-fitur baru bagi android pada perangkat yang secara resmi dirilis dengan menggunakan
sistem operasi lain.

2.5.1 Arsitektur Android


Secara garis besar, arsitektur Android terdiri atas Applications dan Widgets, Applications
Frameworks, Libraries, Android Run Time, dan Linux Kernel. Applications dan Widgets
merupakan layer (lapis) di mana kita berhubungan dengan aplikasi saja.
10

Applications Frameworks merupakan Open Development Platform yang ditawarkan


Android untuk dapat dikembangkan guna membangun aplikasi. Pengembang memiliki akses
penuh menuju API Frameworks seperti yang dilakukan oleh aplikasi kategori inti.
Komponen-komponen yang termasuk di dalam Applications Frameworks adalah Views,
Content Provider, Resource Manager, Notification Manager, dan Activity Manager.
Libraries merupakan layer di mana fitur-fitur Android berada. Android Run Time
merupakan layer yang membuat aplikasi Android dapat dijalankan di mana dalam prosesnya
menggunakan implementasi Linux. Linux Kernel merupakan layer inti dari sistem operasi
Android berada. Untuk lebih jelasnya, lihat Gambar Arsitektur Android berikut.

Gambar 2.1 Arsitektur Android

2.6 Analisis Kebutuhan Sistem


Dalam menganalisis dan mengidentifikasi hendaknya mengerti maksud, tujuan, sasaran
dan kebijakan-kebijakan sistem. Tujuan dari Analisis Kebutuhan Sistem memahami dengan
sebenar-sebenarnya apa yang dibutuhkan dalam mengembangkan sebuah sistem dan apa yang
dibutuhkan pengguna untuk menjalankan sistem tersebut. Tipe-tipe dari Analisis Kebutuhan
Sistem adalah sebagai berikut :
1. Kebutuhan Fungsional
Berisi tentang proses-proses apa saja nantinya yang dapat dikerjakan sistem.
2. Kebutuhan Non Fungsional
Berisi tentang properti perilaku yang dimiliki oleh sistem.

2.7 Analisis Kelayakan Sistem


11

Analisis Kelayakan Sistem merupakan proses yang mempelajari atau menganalisa


permasalahan yang telah ditentukan sesuai dengan tujuan akhir yang akan dicapai. Tujuan
dari Analisis Kelayakan Sistem adalah menguji apakah sistem yang akan diterapkan layak
pakai atau tidak. Ada beberapa faktor kelayakan yang mendukung penentuan layak atau
tidaknya sebuah pengembangan sistem, faktor tersebut adalah:
1. Analisis Kelayakan Teknis
Analisis yang menilai layak tidaknya dari faktor tersedianya platform yang handal untuk
mengembangkan sebuah sistem.

2. Analisis Kelayakan Operasional


Analisis yang menilai layak tidaknya dari faktor penyelesaian masalah, apakah sistem
yang dikembangkan benar-benar dibutuhkan oleh pengguna.

3. Analisis Kelayakan Hukum


Analisis yang menilai layak tidaknya dari faktor penggunaan lisensi software yang
dibutuhkan dalam pembuatan sistem dan konten dari sistem tidak ada yang melanggar
hukum.
4. Analisis Kelayakan Ekonomi
Analisis yang menilai layak tidaknya dari faktor berapa biaya yang akan dikeluarkan
oleh pengguna ataupun developer yang sebanding kebutuhan akan kebutuhan sistem
tersebut.

2.8 UML
UML singkatan dari Unified Modeling Language yang berarti bahasa pemodelan
standar. Chonoles (2003) mengatakan sebagai bahasa, berarti UML memiliki sintaks dan
semantik. Ketika kita membuat model menggunakan konsep UML ada aturan-aturan yang
harus diikuti. Bagaimana elemen pada model-model yang kita buat berhubungan satu dengan
lainnya harus mengikuti standar yang ada. UML bukan hanya sekadar diagram, tetapi juga
menceritakan konteksnya. Ketika pelanggan memesan sesuatu dari sistem, bagaimana
transaksinya? Bagaimana sistem mengatasi error yang terjadi? Bagaimana keamanan
terhadap sistem yang kita buat? Dan sebagainya dapat dijawab dengan UML. UML
diaplikasikan untuk maksud tertentu, biasanya antara Iain untuk:
1. Merancang perangkat lunak.
12

2. Sarana komunikasi antara perangkat lunak dengan proses bisnis.


3. Menjabarkan sistem secara rinci untuk analisis dan mencari apa yang diperlukan sistem.
4. Mendokumentasi sistem yang ada, proses-proses dan organisasinya.

Terdapat beberapa tipe dari diagram UML, diantaranya :


1. Actifity Diagram
Pada dasarnya Diagram Activity sering digunakan oleh flowchart.Diagram ini
berhubungan dengan diagram statechart. Diagram Statechat berfokus pada objek yang dalam
suatu proses (atau proses menjadi suatu objek), Diagram Activity berfokus pada aktifitas-
aktifitas yang terjadi yang terkait dalam suatu proses tunggal. Jadi dengan kata lain diagram
ini menunjukkkan bagaimana aktifitas-aktifitas tergantung satu sama lain.
Tabel 2.1 Tabel Simbol Actifity Diagram
13

2. Sequence Diagram
Sequence Diagram merupakan salah satu diagram interaksi yang menjelaskan bagaimana
suatu operasi ini dilakukan, message (pesan ) apa yang dikirim dan waktu pelaksanaannya.
Diagram ini diatur berdasarkan waktu. Objek-objek yang berkaitan dengan proses
berjalannya operasi diurutkan dari kiri ke kanan berdasaran waktu terjadinya dalam pesan
yang terurut. Sequence Diagram biasa digunakan untuk menggambarkan skenario atau
rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah event untuk
menghasilkan output tertentu.
Dalam Sequence Diagram terdapat dua simbol yaitu:
a. Actor, untuk menggambarkan pengguna sistem.
b. LifeLine, menerangkan waktu terjadinya suatu objek.

Dalam Sequence Diagram terdapat 3 relasi, yaitu:


a. Create, digunakan untuk inisialisasi suatu objek.
b. Synchronous, digunakan untuk operasi atau method yang dimilik oleh suatu objek.
Synchronous mengharuskan kita menyelesaikan satu proses baru kemudian
memanggil proses berikutnya.
c. Asynchronous, digunakan untuk memanggil operasi atau method yang dimiliki oleh
suatu objek. Asynchronous memberikan kita fasilitas untuk menjalankan proses lain
ketika proses sebelumnya belum selesai.

2.9 Metode Pengembangan Sistem


Waterfall model merupakan model pengembangan perangkat lunak yang paling kuno
tetapi paling banyak digunakan didalam Software Engineering (SE). model ini melakukan
pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap
analisis, desain, penulisan kode (coding), percobaan (testing), dan perbaikan (mainenance).
Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya
tahap sebelumnya dan berjalan berurutan. Tahapan pada model waterfall dapat dilihat pada
gambar berikut :
14

Gambar 2.2 SDLC Waterfall Model


1. Software Requirement Analysis
Proses ini mencari dan menganalisis kebutuhan dari keseluruhan sistem
yang akan diaplikasikan kedalam bentuk software.

2. Design Progress
Proses ini digunakan untuk mnegubah kebutuhan-kebutuhan diatas
menjadi representasi ke dalam bentuk cetak biru atau blueprint software
sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan
yang telah disebutkan pada tahap sebelumnya. Seperti aktivitas sebelumnya,
maka proses ini juga harus didokumentasikan sebagai konfigurasi dari
software.
3. Coding
Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka
desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh
mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini
merupakan implementasi dari tahap desain yang secara teknis nantinya
dikerjakan oleh programmer.

4. Testing
Dalam tahap ini dilakukan pengujian software yang sudah dibuat. Semua
fungsi-fungsi software harus diuji, dipastikan tidak ada kesalahan, dan hasilnya
sudah sesuai dengan kebutuhan.
15

5. Maintenance
Pemeliharaan suatu software diperlukan, termasuk didalamnya adalah
pengembangan, karena software yang sudah dibuat tidak selamanya berfungsi
dengan baik, terkadang bisa mengalami gangguan dari dalam (bug) atau dari
luar sistem. Pemeliharaan perlu dilakukan, apalagi jika ingin menambahkan
fitur baru yang dimana fitur baru tesebut biasanya kadang bisa menimbulkan
bug.

2.10 Metode Pengujian Sistem


Beberapa test-case harus dilaksanakan dengan beberapa perbedaan strategi transaksi,
query, atau jalur navigasi yang mewakili penggunaan sistem yang tipikal, kritis, atau
abnormal. Isu kunci pada pengembangan sistem adalah pemilihan sekelompok test-case yang
cocok, sekecil, dan secepat mungkin, untuk meyakinkan perilaku sistem secara detail.

2.10.1 Unit Testing


Jika struktur kendali antar modul sudah terbukti bagus, maka pengujian yang tak
kalah pentingnya adalah pengujian unit digunakan untuk menguji setiap modul dan
menjalankan fungsinya dengan baik. Ada 2 metode untuk melakukan unit testing, yaitu
(Hanif, 2007):
1. Black Box Testing
Terfokus pada apakah unit program memenuhi kebutuhan (requirement) yang
disebutkan dalam spesifikasi. Pada Black Box Testing, cara pengujian hanya dilakukan
dengan menjalankan atau mengeksekusi unit atau modul, kemudian diamati apakah
hasil dari unit itu sesuai dengan proses bisnis yang diinginkan. Jika ada unit yang tidak
sesuai dengan output nya makan untuk menyelesaikannya, diteruskan pada pengujian
yang kedua, yaitu White Box Testing

2. White Box Testing


White Box Testing adalah cara pengujian dengan melihat ke dalam modul untuk
meneliti kode-kode program yang ada dan menganalisis apakah ada kesalahan atau
tidak. Jika ada modul yang menghasilkan output yang tidak sesuai dengan proses
bisnis yang dilakukan, maka baris, baris program, variable dan parameter yang terlibat
pada unit tersebut akan dicek satu persatu dan diperbaiki, kemudian di-compile ulang.
BAB III
ANALISIS DAN PERANCANGAN

3.1 Deskripsi Singkat

Game Petak Sawah FPB dan KPK merupakan game yang dirancang untuk semua
kalangan, namun diutamakan untuk anak-anak. Game ini dirancang sebagai game edukasi
matematika dimana merupakan salah satu mata pelajaran yang penting untuk dipelajari oleh
siswa sekolah.
Dengan memanfaatkan sistem operasi Android dengan segala fitur unggulannya
penulis mencoba memberikan solusi agar semakin banyak pilihan game edukasi untuk anak-
anak sehingga lebih berguna dalam memanfaatkan waktu dan pengembangan kemampuan
kognitif.

3.2 Analisis Masalah

Analisis masalah adalah analisis yang dilakukan dalam rangka identifikasi masalah
yang dihadapi dan mencari solusi-solusi yang dibutuhkan dalam merancang sebuah sistem
yang baik.

3.2.1 Solusi-Solusi yang diterapkan

Langkah-langkah yang ditempuh dan berguna untuk menyelesaikan berbagai masalah


yang dihadapi. Adapun solusi masalah-masalah tersebut adalah sebagai berikut:
1. Membuat Game Petak Sawah FPB dan KPK berbasis Android yang berfungsi sebagai
game edukasi matematika untuk anak-anak.
2. Memanfaatkan teknologi sebagai sarana pembelajaran yang berguna untuk anak-anak.

3.2.2 Solusi yang dipilih

Dari solusi yang sudah disusun maka akan diambil sebuah solusi yang akan
merangkum semua masalah yang dihadapi yaitu membuat Game Petak Sawah FPB dan KPK
yang bisa dimainkan oleh semua kalangan dan menambahkan fitur-fitur yang bermanfaat
sehingga mempermudah pengguna dalam memainkan game tersebut.

16
17

3.3 Analisis Kebutuhan Sistem

Analisis kebutuhan sistem yaitu analisa yang dilakukan terhadap suatu sistem
mengenai kebutuhan dari sistem tersebut agar dapat berjalan. Analisis kebutuhan dibagi
menjadi dua, yaitu analisis kebutuhan fungsional dan analisis kebutuhan non fungsional.
Kebutuhan fungsional merupakan kebutuhan utama yang harus dimiliki sistem supaya fungsi
dari sistem tersebut dapat berjalan sesuai dengan harapan. Kebutuhan non-fungsional
merupakan kebutuhan yang diperlukan sistem untuk mendukung sistem tersebut dapat
berjalan dengan baik.

3.3.1 Analisis Kebutuhan Fungsional

Berikut ini adalah analisis kebutuhan fungsional dari game Petak Sawah yang akan
dirancang oleh penulis, diantaranya :

1. Game ini hanya bisa dimainkan secara single player.


2. Pemain bisa memilih level yang dibisa pilih sesuai keinginan. Namun level Sedang
dan Sudah akan terbuka apabila semua nomor soal dilevel Mudah sudah diselesaikan.
3. Terdapat bantuan dalam halaman permainan sehingga dapat membuat pengguna dapat
pemyelesaikan soal dengan cepat.
4. Game ini dirancang untuk tidak membutuhkan koneksi internet.

3.3.2 Analisis Kebutuhan Non Fungsional

Berikut ini adalah analisis kebutuhan non-fungsional dari Game Petak Sawah FPB
dan KPK ini, diantaranya:
1. Kebutuhan perangkat keras (Susahware) dalam merancang game ini adalah sebuah PC
dengan spesifikasi:

a. Processor Intel Core i3 Dual Core 2,7 GHz


b. HDD 1 Tb SATA
c. RAM DDR3 8Gb
d. VGA AMD Radeon DDR5 2Gb

2. Sedangkan smartphone yang dipakai untuk melakukan pengujian adalah Xiaomi


Redmi 5A dengan spesifikasi:
18

a. Layar 5 Inchi dengan resolusi 1280 x 720 pixel


b. RAM 2Gb
c. ROM 16 Gb
d. Processor Qualcomm Snapdragon Quadcore
e. Sistem Operasi Android Marsmallow 6.1

3. Dan kebutuhan minimal sistem ponsel Android yang bisa menjalankan aplikasinya
adalah:
a. Prosessor Dual Core 1 Ghz
b. RAM 256MbROM 512Gb
c. Resolusi minimal 800 x 480 pixel

4. Kebutuhan perangkat lunak (Software) adalah:


a. Sistem Operasi Windows 7 64-bit
b. Java SDK
c. Android Studio

3.4 Analisis Kelayakan Sistem

Analisis kelayakan sistem bertujuan untuk memastikan bahwa sistem yang dibuat
memang layak untuk diimplementasikan. Analisis kelayakan pada sistem aplikasi yang dibuat
adalah sebagai berikut:

3.4.1 Analisis Kelayakan Teknis

Dengan semakin umumnya penggunaan Android sebagai Sistem Operasi smartphone,


maka menjadi hal yang lumrah juga apabila para pengembang aplikasi saat ini memilih
Android sebagai platform utama. Android menyebar disemua kalangan sebagai media utama
dalam komunikasi dan memperoleh informasi. Kemudahan dalam penggunaan, fitur yang
lengkap dan harga yang murah adalah faktor utama yang menjadikan Android sebagai
platform jutaan umat. Dengan memilih Android sebagai wilayah pengembangan tentu
aplikasi ini akan mudah dijangkau oleh masyarakat.

3.4.2 Analisis Kelayakan Operasional


19

Agar sistem disebut layak secara operasional, maka usulan kebutuhan sistem harus
benar-benar menyelesaikan masalah yang ada di sisi pengguna dan informasi yang dihasilkan
merupakan informasi yang benar-benar dibutuhkan oleh pengguna. Aplikasi Game Petak
Sawah FPB dan KPK ini dirancang untuk memudahkan pengguna dengan alur yang
sederhana dan diutamakan kepada anak-anak.

3.4.3 Analisis Kelayakan Hukum

Android merupakan Sistem Operasi yang bersifat open source dan untuk
pengembangan aplikasi juga gratis maka aplikasi ini dianggap legal. Kemudian dalam
pembuatannya menggunakan bahasa pemrograman Java dan XML yang juga gratis. Karena
dari mulai pembuatan aplikasi Android ini semua legal dan tidak melanggar hak cipta, jadi
disimpulkan secara aplikasi ini dianggap layak.

3.4.4 Analisis Kelayakan Ekonomi

Aplikasi ini dapat diunduh oleh pengguna secara gratis melalu Google Play Store. Selain
itu, untuk mengembangkan aplikasi ini tidak membutuhkan biaya untuk membeli lisensi
software untuk pengembangan, karena software yang digunakan untuk pengembangan juga
didapatkan secara gratis. Maka dari segi ekonomi aplikasi layak untuk dikembangkan.

3.5 Perancangan Diagram

Untuk lebih memperjelas tentang gambaran sistem maka penulis membuat UML
dengan beberapa tipe yaitu HIPO Diagram, Activity Diagram, Sequence Diagram, dan Class
Diagram.

3.5.1 Rancangan HIPO Diagram

Game Petak Sawah dirancang dan didesain menggunakan diagram HIPO. Diagram HIPO
bertujuan untuk menjelaskan fungsi-fungsi yang ada pada struktur sebuah program.
Tujuannya yaitu menjelaskan bagaimana alur kerja dan keluaran (output) dari sebuah
program secara terperinci. Diagram HIPO mempunyai tiga tingkatan yaitu diagram daftar isi
visual (Visual Table of Content atau VTOC), diagram ringkasan (Overview Diagram), dan
diagram rinci (Detail Diagram).
1. Diagram Daftar Isi Visual
20

Diagram daftar isi visual adalah diagram yang menggambarkan hubungan dari
fungsi-fungsi yang terdapat dalam suatu program. Fungsi-fungsi tersebut dihubungkan
dalam bentuk hirarki dan diberi nomor sesuai dengan urutan hirarkinya. Diagram daftar
isi visual dapat dilihat pada

Gambar 3.1 Diagram Daftar Isi Visual


2. Diagram Ringkasan
Diagram ringkasan adalah diagram yang menjelaskan fungsi dan referensi utama dari
suatu program. Diagram ini menjelaskan hubungan dari Masukan, Proses, dan Keluaran.
Diagram ringkasan dapat dilihat pada tabel berikut
Tabel 3.1 Diagram Ringkasan

Masukan Proses Keluaran


Klik tombol Menampilkan halaman pilih Menuju halaman pilih level
Main level
Klik tombol Menampilkan halaman
Menuju halaman pilih soal
pilihan level Skor pilih soal
Klik tombol Menampilkan halaman
3. pilihan soal Menuju halaman permainan
Permainan
Klik tombol Menampilkan halaman - Menuju halaman Bantuan
Bantuan Bantuan - memberikan informasi cara bermain
Klik tombol
Menampilkan halaman Kredit Menuju halaman Kredit
Kredit
Klik tombol
Mengambil gambar Keluar dari aplikasi
Keluar (x)
21

Diagram Rinci
Diagram ini menjelaskan fungsi-fungsi khusus, menunjukkkan item-item yang
khusus pada masukan dan keluaran, dan menunjukkan diagram rinci lainnya. Diagram
rinci dapat dilihat pada tabel berikut :
Tabel 3.2 Diagram Rinci
a
Masukan Proses Keluaran
Memuat script
Klik tombol (gambar,suara, dan teks) Menampilkan halaman pilihan
main menuju halaman aturan pilih level
level
Memuat script
Klik tombol
(gambar,suara, dan teks) Menampilkan halaman pilihan soal
pilih level
menuju halaman pilih soal
Memuat script ( gambar,
suara dan teks) Permainan dimulai.
Klik tombol memulai permainan
Nomor Soal (Permainan Berakhir)
Menampilkan halaman Permainan
Memuat script
berakhir (Game Over)
(gambar, suara, teks)
Memuat script
Klik tombol
(gambar,suara, dan teks) Menampilkan halaman bantuan
Bantuan
menuju halaman bantuan
Memuat script
Klik tombol
(gambar,suara, dan teks) Menampilkan halaman kredit
Kredit
menuju halaman kredit
Memuat script
Klik tombol
(gambar,suara, dan teks) Menutup aplikasi
Keluar
keluar dari aplikasi

3.5.2 Rancangan Actifity Diagram

Activity Diagram menggambarkan berbagai aliran aktifitas dalam sistem yang sedang
dirancang, bagaimana setiap aliran berawal, decision yang mungkin terjadi, dan bagaimana
mereka berakhir. Berikut ini adalah rancangan Activity Diagram yang terdapat pada aplikasi :

1. Activity Diagram Halaman Utama


22

Gambar 3.2 Activity Diagram Halaman Utama Game Petak

Untuk masuk ke sistem harus membuka aplikasi terselebih dahulu, kemudian


apabila ingin mengakhiri tinggal memilih menu keluar.

2. Activity Diagram Halaman Main

Gambar 3.3 Activity Diagram Halaman Main Game Petak Sawah FPB dan KPK

Untuk memulai permainan harus membuka aplikasi terselebih dahulu, kemudian


memilih menu main, dan kemudian sistem akan menampilkan mode permainan
yang terdapat dalam sistem.
23

3. Activity Diagram Halaman Main Level ‘Mudah’

Gambar 3.4 Activity Diagram Halaman Main Level ‘Mudah’


Untuk memulai bermain dengan level ‘Mudah’ harus membuka aplikasi
terselebih dahulu, kemudian memilih menu main, dan kemudian sistem akan
menampilkan level permainan, kemudian memilih menu ‘Mudah’.

4. Activity Diagram Halaman Main Level ‘Sedang’

Gambar 3.5 Activity Diagram Halaman Main Level ‘Sedang’


Untuk memulai bermain dengan level ‘Sedang’ harus membuka aplikasi
terselebih dahulu, kemudian memilih menu main, dan kemudian sistem akan
24

menampilkan level permainan, kemudian memilih menu ‘Sedang’.

5. Activity Diagram Halaman Main Level ‘Susah’

Gambar 3.6 Activity Diagram Halaman Main Level ‘Susah’


Untuk memulai bermain dengan level ‘Susah’ harus membuka aplikasi
terselebih dahulu, kemudian memilih menu main, dan kemudian sistem akan
menampilkan level permainan, kemudian memilih menu ‘Susah’.

6. Activity Diagram Halaman Bantuan

Gambar 3.7 Activity Diagram Halaman Bantuan Game Petak Sawah FPB dan KPK
25

Untuk masuk ke halaman bantuan harus membuka aplikasi terselebih dahulu,


kemudian memilih menu bantuan, kemudian sistem akan menampilkan halaman
bantuan.

7. Activity Diagram Halaman Kredit

Gambar 3.8 Activity Diagram Halaman Kredit Game Petak Sawah FPB
dan KPK
Untuk masuk ke halaman bantuan harus membuka aplikasi terselebih dahulu,
kemudian memilih menu bantuan, kemudian sistem akan menampilkan halaman
bantuan.

3.5.3 Rancangan Sequence Diagram

Sequence Diagram merupakan gambaran dari rangkaian langkah-langkah yang


menggambarkan respon dan event pada aplikasi. Berikut ini adalah Sequence Diagram dari
aplikasi Game Petak Sawah FPB dan KPK:
1. Sequence Diagram Halaman Main
26

Gambar 3.9 Sequence Diagram Halaman Main Game Petak Sawah FPB dan KPK

Sequence Diagram pada gambar 3.10 menggambarkan alur dari berjalannya


proses membuka halaman main secara berurutan. Dimulai dari pemain menekan
tombol main hingga membuka tampilan halaman main.

2. Sequence Diagram Halaman Main Level ‘Mudah’

Gambar 3.10 Sequence Diagram Halaman Main Level ‘Mudah’


Sequence Diagram pada gambar 3.11 menggambarkan alur dari berjalannya
proses membuka halaman main level ‘Mudah’ secara berurutan. Dimulai dari
pemain menekan tombol main hingga membuka tampilan halaman main kemudian
memilih menu ‘Mudah’.

3. Sequence Diagram Halaman Main Level ‘Sedang’


27

Gambar 3.11 Sequence Diagram Halaman Main Level ‘Sedang’


Sequence Diagram pada gambar 3.12 menggambarkan alur dari berjalannya
proses membuka halaman main level ‘Sedang’ secara berurutan. Dimulai dari
pemain menekan tombol main hingga membuka tampilan halaman main kemudian
memilih menu ‘Sedang’.

4. Sequence Diagram Halaman Main Level ‘Susah’

Gambar 3.12 Sequence Diagram Halaman Main Level ‘Susah’


Sequence Diagram pada gambar 3.13 menggambarkan alur dari berjalannya
proses membuka halaman main level ‘Susah’ secara berurutan. Dimulai dari pemain
menekan tombol main hingga membuka tampilan halaman main kemudian memilih
menu ‘Susah’.
28

5. Sequence Diagram Halaman Bantuan

Gambar 3.13 Sequence Diagram Halaman Bantuan Game Petak Sawah FPB dan KPK

Sequence Diagram pada gambar 3.14 menggambarkan alur dari berjalannya


proses membuka halaman bantuan secara berurutan. Dimulai dari pemain menekan
tombol bantuan hingga membuka tampilan halaman bantuan.

6. Sequence Diagram Halaman Kredit

Gambar 3.14 Sequence Diagram Halaman Kredit Game Petak Sawah FPB dan KPK
Sequence Diagram pada gambar 3.15 menggambarkan alur dari berjalannya
proses membuka halaman kredit secara berurutan. Dimulai dari pemain menekan
tombol kredit hingga membuka tampilan halaman kredit.

7. Sequence Diagram Keluar Permainan


29

Gambar 3.15 Sequence Diagram keluar aplikasi Game Petak Sawah FPB dan KPK
Sequence Diagram pada gambar 3.16 menggambarkan alur dari berjalannya
proses membuka halaman utama hingga keluar secara berurutan. Dimulai dari
pemain menekan tombol keluar hingga pemain keluar dari aplikasi.

3.5.4 Perancangan Antarmuka

Perancangan Interface atau antarmuka program berperan untuk menghubungkan


antara pengguna dengan aplikasi. Peranan antarmuka sangat penting karena dengan
antarmuka baik akan membuat penggunaan program menjadi lebih mudah digunakan dan
tidak membingungkan. Berikut adalah antarmuka yang ada pada aplikasi ini:
1. Rancangan Halaman Utama

Gambar 3.16 Rancangan Halaman Utama Game Petak Sawah FPB dan KPK
Pada halaman utama, terdiri dari 4 menu utama yaitu, menu main, bantuan,
kredit, keluar dan pengaturan suara. saat memilih menu main pemain akan
diarahkan ke level permainan yang dapat dimainkan. saat memilih menu bantuan
pemain akan diarahkan ke halaman bantuan yang berisi tutorial cara bermain.
Sedangkan pada menu kredit pemain akan diarahkan ke halaman tentang aplikasi.
30

Untuk keluar dari aplikasi pemain hanya perlu memilih menu keluar. selain itu ada
tombol suara yang berfungsi untuk menghidupkan musik latar pada game.

2. Rancangan Halaman Pilih Level Permainan

Gambar 3.17 Rancangan Halaman Pilihan Level Permainan Game Petak Sawah FPB dan
KPK

Pada halaman ini pemain akan diberikan 3 pilihan level permainan, yaitu
Mudah, Sedang, dan Susah. jika pemain ingin bermain dengan mudah melawan
komputer atau AI dari game dan bentuk trek yang sederhana, maka pemain memilih
menu Mudah. Kesulitan dan kerumitan trek semakin meningkat pada level Sedang
dan Susah.

3. Rancangan Halaman Pilih Nomor Soal

Gambar 3.18 Rancangan Halaman Pilihan No. Soal Permainan Game Petak Sawah FPB
dan KPK
31

4. Rancangan Halaman Bantuan

Gambar 3.19 Rancangan Halaman Bantuan Game Petak Sawah FPB dan KPK
Pada halaman bantuan, pemain akan diberikan panduan dalam bermain maupun
dalam memakai aplikasi.

5. Rancangan Halaman Kredit

Gambar 3.20 Rancangan Halaman Kredit Game Petak Sawah FPB dan KPK
Pada halaman kredit, pemain akan diberikan informasi tentang aplikasi game
ini.

6. Rancangan Halaman Permainan

Gambar 3.21 Rancangan Halaman Permainan Game Petak Sawah FPB dan KPK
32

Pada halaman ini, permainan telah dimulai dan permainan dapat diakhiri apabila
pemain ingin selesai bermain. pada halaman ini juga ditampilkan posisi pemain,
minimap, ikon stir kiri-kanan dan gas. Sudut pandang kamera yang dipakai dalam
halaman permainan game ini adalah dari sudut pandang atas kendaraan dan trek..
BAB IV
HASIL DAN PEMBAHASAN

4.1 Implementasi

Pada tahap ini, dapat dilihat hasil dari pembahasan pada bab-bab sebelumnya dan
menghasilkan sebuah sistem yang sesuai. Pada tahap ini juga sistem akan diimplementasi
dalam keadaan yang sesungguhnya dan akan diketahui apakah sudah dihasilkan sistem yang
sudah baik atau tidak. Selain itu pengujian juga akan dilakukan yang bertujuan untuk
mengetahui apakah terdapat kesalahan pada saat melakukan penulisan kode program.

4.1.1 Halaman Awal

Halaman ini adalah halaman awal pada saat aplikasi dibuka, terdapat menu-menu
yang dapat dipilih oleh pengguna, seperti: halaman main, bantuan, kredit. Selain itu terdapat
dua tombol lainnya yang berfungsi untuk mematikan musik latar belakang dan tombol untuk
keluar dari aplikasi.

Gambar 4.1 Halaman Utama Aplikasi

Halaman Utama mulai di deklarasikan di class MenuState. pada class ini semua
komponen pada halaman ini mulai dipanggil. komponen-komponen grafis seperti logo, ikon,
dan tombol-tombol juga ditampilkan. kemudian tombol-tombol tersebut berfungsi
mengarahkan pemain ke halaman yang menjadi tujuan. selain itu terdapat tombol btnSound
yang berfungsi untuk menghidupkan dan mematikan musik latar yang akan disimpan oleh

33
34

sistem, sehingga apabila aplikasi tersebut ditutup dan dibuka kembali maka musik
latar akan tetap mati sesuai dengan keadaaan sebelumnya.
public MenuState(GameEngine engine, StateParam param)
{
super(engine, param);
}

@Override
public void initComponent()
{
spBack = new GameSprite(G.sprite.menu.background, engine);
spLogo = new GameSprite(G.sprite.menu.logo, engine);
spPesan = new GameSprite(G.sprite.menu.pesan, engine);

btnMain = new ImageButton(engine, G.sprite.menu.btnMain);


btnBantuan = new ImageButton(engine, G.sprite.menu.btnBantuan);
btnKredit = new ImageButton(engine, G.sprite.menu.btnKredit);
btnKeluar = new ImageButton(engine, G.sprite.menu.btnKeluar);

btnMain.setOnClickListener(this);
btnBantuan.setOnClickListener(this);
btnKredit.setOnClickListener(this);
btnKeluar.setOnClickListener(this);

btnSound = new ToggleButton(engine, G.sprite.btnSoundOff, G.sprite.btnSoundOn);


btnSound.setState(SoundManager.isMusicOn());

// Kalo tombol sound diklik


btnSound.setOnClickListener(new IToggleButtonClick()
{
@Override
public void onClick(ToggleButton tb, boolean state)
{
// Ngeset sound on atau off
SoundManager.setMusic(state);
}
});
}

@Override
public void onClick(BaseButton v)
{
if (v == btnMain)
{
exitState(G.state.pilihLevel);
}
else if (v == btnBantuan)
{
exitState(G.state.bantuan);
}
else if (v == btnKredit)
{
exitState(G.state.kredit);
}
else if (v == btnKeluar)
{
keluar();
}
}

@Override
protected void init()
{

@Override
protected void attach()
{
scene.attachChild(spBack);
35

spBack.attachChild(spLogo);
spBack.attachChild(spPesan);

spBack.attachChild(btnMain);
spBack.attachChild(btnBantuan);
spBack.attachChild(btnKredit);
spBack.attachChild(btnKeluar);

spBack.attachChild(btnSound);
}

@Override
protected void detach()
{
spBack.detachSelf();
spLogo.detachSelf();
spPesan.detachSelf();

btnMain.detachSelf();
btnBantuan.detachSelf();
btnKredit.detachSelf();
btnKeluar.detachSelf();

btnSound.detachSelf();
}

@Override
protected void setPosition()
{
spLogo.setPosition(60, 60);
spPesan.setPosition(60, 250);

btnMain.setPosition(450, 120);
btnBantuan.setPosition(450, 203);
btnKredit.setPosition(450, 286);
btnKeluar.setPosition(450, 369);

btnSound.setPosition(width - btnSound.getWidth() - 20, 20);


}

4.1.2 Halaman Pemilihan Level Permainan

Seperti yang sudah dirancang pada bab sebelumnya, game ini memiliki 3 level
kesulitan yaitu : Mudah, Sedang, Susah. Apabila pemain ingin dengan level soal yang mudah,
pengguna harus memilih level Mudah. Begitu seterusnya level permainan disesuaikan dengan
nama level.
36

Gambar 4.2 Level Permainan

Kemudian dihalaman level permainan, class nya bernama LevelState. pada class ini
komponen yang dipanggil adalah tombol yang mengarahkan ke halaman permainan, yaitu
btnMudah, btnSedang, btnSusah.

public class PilihLevelState extends GameState implements IButtonClick


{
GameSprite spBack;
GameSprite spTitle;

ImageButton btnMudah;
ImageButton btnSedang;
ImageButton btnSusah;

GameSprite spLock1, spLock2;

// To debug time
long curTime;

public PilihLevelState(GameEngine engine, StateParam param)


{
super(engine, param);
}

@Override
public void initComponent()
{
curTime = System.currentTimeMillis();

spBack = new GameSprite(G.sprite.pilihLevel.background, engine);


spTitle = new GameSprite(G.sprite.pilihLevel.title, engine);
37

btnMudah = new ImageButton(engine, G.sprite.pilihLevel.btnMudah);


btnSedang = new ImageButton(engine, G.sprite.pilihLevel.btnSedang);
btnSusah = new ImageButton(engine, G.sprite.pilihLevel.btnSusah);

btnMudah.setOnClickListener(this);
btnSedang.setOnClickListener(this);
btnSusah.setOnClickListener(this);

spLock1 = new GameSprite(G.sprite.pilihLevel.lock, engine);


spLock2 = new GameSprite(G.sprite.pilihLevel.lock, engine);

Log.d(Const.TAG, "InitComponent : " + (System.currentTimeMillis() - curTime));


}

@Override
public void onClick(BaseButton v)
{
StateParam p = new StateParam();

if (v == btnMudah)
{
p.put("level", PlayState.LEVEL_MUDAH);
}
else if (v == btnSedang)
{
p.put("level", PlayState.LEVEL_SEDANG);
}
else if (v == btnSusah)
{
p.put("level", PlayState.LEVEL_SUSAH);
}

exitState(G.state.pilihSoal, p);
}

@Override
protected void init()
{
int maxSoal = PrefManager.getMaxSoal();

btnSedang.setActive(maxSoal > 5);


spLock1.setVisible(maxSoal <= 5);

btnSusah.setActive(maxSoal > 10);


spLock2.setVisible(maxSoal <= 10);
}

@Override
protected void attach()
38

{
scene.attachChild(spBack);
spBack.attachChild(spTitle);

spBack.attachChild(btnMudah);
spBack.attachChild(btnSedang);
spBack.attachChild(btnSusah);

spBack.attachChild(spLock1);
spBack.attachChild(spLock2);
}

@Override
protected void detach()
{
spBack.detachSelf();
spTitle.detachSelf();

btnMudah.detachSelf();
btnSedang.detachSelf();
btnSusah.detachSelf();

spLock1.detachSelf();
spLock2.detachSelf();
}

@Override
protected void setPosition()
{
spTitle.setPosition(spBack.getWidth() / 2 - spTitle.getWidth() / 2, 40);

btnSedang.setPosition(spBack.getWidth() / 2 - btnSedang.getWidth() / 2, 210);


btnMudah.setPosition(btnSedang.getX() - btnMudah.getWidth() - 20, 210);
btnSusah.setPosition(btnSedang.getX() + btnSedang.getWidth() + 20, 210);

spLock1.setPosition(btnSedang);
spLock2.setPosition(btnSusah);
}

4.1.3 Halaman Pemilihan Nomor Soal

Pada halaman ini pemain diberikan pilihan untuk menyelesaikan soal. Soal yang bisa
dikerjakan pada saat pertama memainkan game ini adalah nomor 1, sedangkan nomor yang
lain masih terkunci. Pilihan soal akan terbuka apabila pengguna bisa menyelesaikan soal pada
nomor soal sebelumnya.
39

Gambar 4.3 Halaman Pemilihan Nomor Soal

Kemudian dihalaman mode permainan, class nya bernama PilihSoalState. pada class
ini komponen yang dipanggil adalah tombol yang mengarahkan ke halaman permainan, yaitu
btn1, btn2, btn3, btn4, btn5 yang berfungsi untuk memilih soal.

public class PilihSoalState extends GameState implements IButtonClick


{
GameSprite spBack, spTitle;
ImageButton btn1, btn2, btn3, btn4, btn5;
GameSprite lock2, lock3, lock4, lock5;

int level;

public PilihSoalState(GameEngine engine, StateParam param)


{
super(engine, param);

level = param.getInt("level", 1);


}

@Override
public void initComponent()
{
spBack = new GameSprite(G.sprite.pilihSoal.background, engine);
spTitle = new GameSprite(G.sprite.pilihSoal.title, engine);

btn1 = new ImageButton(engine, G.sprite.pilihSoal.btn1);


btn2 = new ImageButton(engine, G.sprite.pilihSoal.btn2);
btn3 = new ImageButton(engine, G.sprite.pilihSoal.btn3);
btn4 = new ImageButton(engine, G.sprite.pilihSoal.btn4);
btn5 = new ImageButton(engine, G.sprite.pilihSoal.btn5);

btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
btn5.setOnClickListener(this);

lock2 = new GameSprite(G.sprite.pilihSoal.lock, engine);


lock3 = new GameSprite(G.sprite.pilihSoal.lock, engine);
lock4 = new GameSprite(G.sprite.pilihSoal.lock, engine);
lock5 = new GameSprite(G.sprite.pilihSoal.lock, engine);
}
40

@Override
public void onClick(BaseButton v)
{
StateParam p = new StateParam();
p.put("level", level);

if (v== btn1)
{
p.put("soal", 1);
}
else if (v == btn2)
{
p.put("soal", 2);
}
else if (v == btn3)
{
p.put("soal", 3);
}
else if (v == btn4)
{
p.put("soal", 4);
}
else if (v == btn5)
{
p.put("soal", 5);
}

exitState(G.state.play, p);
}

@Override
protected void init()
{
int maxSoal = PrefManager.getMaxSoal() - 5 * (level - 1);

btn2.setActive(maxSoal >= 2);


lock2.setVisible(maxSoal < 2);

btn3.setActive(maxSoal >= 3);


lock3.setVisible(maxSoal < 3);

btn4.setActive(maxSoal >= 4);


lock4.setVisible(maxSoal < 4);

btn5.setActive(maxSoal >= 5);


lock5.setVisible(maxSoal < 5);
}

@Override
protected void attach()
{
scene.attachChild(spBack);
spBack.attachChild(spTitle);

spBack.attachChild(btn1);
spBack.attachChild(btn2);
spBack.attachChild(btn3);
spBack.attachChild(btn4);
spBack.attachChild(btn5);

spBack.attachChild(lock2);
spBack.attachChild(lock3);
spBack.attachChild(lock4);
spBack.attachChild(lock5);
}

@Override
protected void detach()
{
spBack.detachSelf();
spTitle.detachSelf();

btn1.detachSelf();
41

btn2.detachSelf();
btn3.detachSelf();
btn4.detachSelf();
btn5.detachSelf();

lock2.detachSelf();
lock3.detachSelf();
lock4.detachSelf();
lock5.detachSelf();
}

@Override
protected void setPosition()
{
spTitle.setPosition(spBack.getWidth() / 2 - spTitle.getWidth() / 2, 40);

btn2.setPosition(spBack.getWidth() / 2 - btn2.getWidth() / 2, spBack.getHeight() / 2 -


btn2.getHeight() / 2);
btn1.setPosition(btn2.getX() - btn1.getWidth() - 40, btn2.getY());
btn3.setPosition(btn2.getX() + btn2.getWidth() + 40, btn2.getY());
btn4.setPosition(258, btn2.getY() + btn2.getHeight() + 40);
btn5.setPosition(btn4.getX() + btn4.getWidth() + 40, btn4.getY());

lock2.setPosition(btn2);
lock3.setPosition(btn3);
lock4.setPosition(btn4);
lock5.setPosition(btn5);
}

@Override
protected void registerTouch()
{

@Override
protected void unregisterTouch()
{

@Override
protected void onUpdate()
{

@Override
protected void onPaused()
{

@Override
protected void onResumed()
{

@Override
protected void onLeave()
{

@Override
public void onKeyUp(int keyCode, KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
{
Sfx.Play(Sfx.SFX_CLICK);
exitState(G.state.pilihLevel);
}
42

@Override
public boolean onAreaTouched(TouchEvent touchEvent, ITouchArea iTouchArea, float v, float v1)
{
return false;
}
}

4.1.4 Halaman Permainan

Pada halaman ini pemain harus menyelesaikan soal untuk mencari KPK dan FPB dari
angka yang sudah ditentukan. Pengguna hanya perlu memindahkan balok-balok ketempat
yang menurutnya benar. Apabila kesulitan menjawab soal pengguna bisa memilih pilihan
tombol bantuan yang akan membantu menyusun balok. Maksimal penggunaan bantuan dalam
sekali permainan adalah 3 kali. Apabila pengguna sudah yakin dengan jawaban yang
dipilihnya pengguna hanya perlu tap tombol check. dihalaman permainan, class nya bernama
PlayState.

35

Gambar 4.4 Halaman Permainan

public class PlayState extends GameState implements Timer.OnTimerListener


{
public static final int LEVEL_MUDAH = 1;
public static final int LEVEL_SEDANG = 2;
public static final int LEVEL_SUSAH = 3;

Random random = new Random();

// Dialogs
private WinDialog winDialog;
private CorrectDialog correctDialog;

// Asset static
private static boolean assetLoaded = false;
private static GameSprite spBack, spStatus;
private static GameText txtStatus;
private static ImageButton btnCheck, btnReset;
private static ButtonWithNumber btnHint;
43

private static GameSprite spTimer;


private static GameText txtTimer;

Petak petak;
Soal soal;
int noSoal;

Timer timer;
int waktu = Const.LAMA_WAKTU;
boolean isWin = false;

Angka[] angkas;

// To debug time
long curTime;

public PlayState(GameEngine engine, StateParam param)


{
super(engine, param);
}

@Override
public void initComponent()
{
curTime = System.currentTimeMillis();

timer = new Timer(1, this);


scene.registerUpdateHandler(timer);

noSoal = (param.getInt("level", 0) - 1) * 5 + param.getInt("soal", 0);


soal = SoalManager.loadSoal(noSoal);

winDialog = new WinDialog(engine, soal, new WinDialog.WinListener()


{
@Override
public void onNext()
{
int nextSoal;

if (noSoal < 15) nextSoal = noSoal + 1;


else nextSoal = 1;

StateParam p = new StateParam();


p.put("level", (nextSoal - 1) / 5 + 1);
p.put("soal", (nextSoal - 1) % 5 + 1);

exitState(G.state.play, p);
}

@Override
public void onToMenu()
{
exitState(G.state.menu);
}

@Override
public void onToPilih()
{
exitState(G.state.pilihLevel);
}
});

Log.d(Const.TAG, "WinDIalog : " + (System.currentTimeMillis() - curTime));


curTime = System.currentTimeMillis();

correctDialog = new CorrectDialog(engine,


() ->
{
winDialog.setVisible(true);
},
() -> exitState(G.state.pilihSoal));
44

Log.d(Const.TAG, "CorrectDialog : " + (System.currentTimeMillis() - curTime));


curTime = System.currentTimeMillis();

// Asset
if (!assetLoaded)
{
spBack = new GameSprite(G.sprite.play.background, engine);
spStatus = new GameSprite(G.sprite.play.statusBack, engine);
txtStatus = new GameText("", 100, G.font.medium, engine);

btnCheck = new ImageButton(engine, G.sprite.play.btnCheck);


btnReset = new ImageButton(engine, G.sprite.play.btnReset);
btnHint = new ButtonWithNumber(engine, G.sprite.play.btnHint);

spTimer = new GameSprite(G.sprite.play.timer, engine);


txtTimer = new GameText("", 2, G.font.medium, engine);

assetLoaded = true;
}

Log.d(Const.TAG, "Load Asset : " + (System.currentTimeMillis() - curTime));


curTime = System.currentTimeMillis();

btnCheck.setOnClickListener((v) ->
{
int c = petak.check();

if (c == Petak.CHECK_EMPTY)
{
correctDialog.showFalse();
}
else if (c == Petak.CHECK_FALSE)
{
correctDialog.showFalse();
}
else if (c == Petak.CHECK_CORRECT)
{
isWin = true;
PrefManager.setMaxSoal(noSoal + 1);
correctDialog.showCorrect();
}
});

btnReset.setOnClickListener(v ->
{
for (Angka a : angkas)
{
if (a.getBox() != null)
{
a.getBox().removeAngka();
a.setToFixedLocation(false);
}
}
});

btnHint.setOnClickListener(v ->
{
if (btnHint.getNumber() > 0)
{
if (Const.RANDOM_HINT) hintRandom();
else hintUrut();
}
});

Log.d(Const.TAG, "ClickListener : " + (System.currentTimeMillis() - curTime));


curTime = System.currentTimeMillis();

petak = new Petak(300, 440, engine, soal);

angkas = new Angka[soal.jawabanCount() * 3];


List<Integer> li = soal.getJawabanRandom();
45

Log.d(Const.TAG, "LoadSoal : " + (System.currentTimeMillis() - curTime));


curTime = System.currentTimeMillis();

for (int a = 0; a < angkas.length; a++)


{
angkas[a] = new Angka(petak.getBoxW(), petak.getBoxH(), engine, li.get(a));

angkas[a].setOnAngkaUpListener(new Angka.OnAngkaUpListener()
{
@Override
public void onUp(Angka angka, float x, float y)
{
petak.angkaMasuk(angka, x, y);
}

@Override
public void onClick(Angka angka)
{
if (angka.getBox() != null)
{
angka.getBox().removeAngka();
angka.setToFixedLocation(false);
}
}
});
}

Log.d(Const.TAG, "Load angka : " + (System.currentTimeMillis() - curTime));


}

@Override
protected void init()
{
curTime = System.currentTimeMillis();

txtStatus.setText((param.getInt("level", 0) == LEVEL_MUDAH ? "Mudah" :


param.getInt("level", 0) == LEVEL_SEDANG ? "Sedang" : "Susah") + " - " +
param.getInt("soal", 0));

winDialog.setVisible(false, true);
btnHint.setNumber(Const.HINT_COUNT);

txtTimer.setText(waktu + "");
timer.startAgain();

Log.d(Const.TAG, "Init : " + (System.currentTimeMillis() - curTime));


}

@Override
protected void attach()
{
curTime = System.currentTimeMillis();

hud.attachChild(correctDialog);
hud.attachChild(winDialog);

scene.attachChild(spBack);
spBack.attachChild(spStatus);
spStatus.attachChild(txtStatus);

spBack.attachChild(spTimer);
spBack.attachChild(txtTimer);

spBack.attachChild(btnCheck);
spBack.attachChild(btnReset);
spBack.attachChild(btnHint);
spBack.attachChild(petak);

for (Angka a : angkas)


{
spBack.attachChild(a);
46

Log.d(Const.TAG, "Attach : " + (System.currentTimeMillis() - curTime));


}

@Override
protected void detach()
{
curTime = System.currentTimeMillis();

correctDialog.detachSelf();
winDialog.detachSelf();

spBack.detachSelf();
spStatus.detachSelf();
txtStatus.detachSelf();

spTimer.detachSelf();
txtTimer.detachSelf();

btnCheck.detachSelf();
btnReset.detachSelf();
btnHint.detachSelf();
petak.detachSelf();

for (Angka a : angkas)


{
a.detachSelf();
}

Log.d(Const.TAG, "Detach : " + (System.currentTimeMillis() - curTime));


}

@Override
protected void setPosition()
{
curTime = System.currentTimeMillis();

spStatus.setPosition(width - 150, 0);


txtStatus.setPosition(spStatus.getWidth() / 2 - txtStatus.getWidth() / 2 - 25,
spStatus.getHeight() / 2 - txtStatus.getHeight() / 2);

spTimer.setPosition(450, 20);
txtTimer.setPosition(spTimer.getX() + spTimer.getWidth() + 5, spTimer.getY() +
spTimer.getHeight() / 2 - txtTimer.getHeight() / 2 + 3);

btnCheck.setPosition(width - btnCheck.getWidth() - 40, height - btnCheck.getHeight() - 20);


btnReset.setPosition(width - btnReset.getWidth() - 40, btnCheck.getY() - btnReset.getHeight()
- 20);
btnHint.setPosition(width - btnHint.getWidth() - 40, btnReset.getY() - btnHint.getHeight() -
20);
petak.setPosition(20, 20);

for (int a = 0; a < angkas.length; a++)


{
angkas[a].setLocation(340 + petak.getBoxW() * (a % 3), 20 + (petak.getBoxH() -
angkas[a].getHeight()) / 2 + petak.getBoxH() * (a / 3 + 1));
}

Log.d(Const.TAG, "SetPos : " + (System.currentTimeMillis() - curTime));


}

4.1.5 Halaman Bantuan

Pada halaman ini berisi tentang cara memakai aplikasi dan tutorial yang dipakai
belajar oleh pengguna yang belum mengetahui tentang permainan Game Petak Sawah.
47

Gambar 4.5 Halaman Bantuan


Pada halaman bantuan nama class nya adalah StateBantuan. yang berfungsi inisiliasi
file gambar yang berisi informasi tentang bantuan cara bermain pada game ini. pada class ini
juga ditampilkan scrollView yang berfungsi membuat tampilan scroll kebawah agar gambar
bisa ditampikan secara lengkap.

public class BantuanState extends GameState


{
private GameSprite spBack, spTitle, spBox, spText;
private ScrollView scrollView;

public BantuanState(GameEngine engine, StateParam param)


{
super(engine, param);
}

@Override
public void initComponent()
{
spBack = new GameSprite(G.sprite.bantuan.background, engine);
spTitle = new GameSprite(G.sprite.bantuan.title, engine);
spBox = new GameSprite(G.sprite.bantuan.box, engine);
spText = new GameSprite(G.sprite.bantuan.text, engine);

scrollView = new ScrollView(700, 280, engine);


scrollView.addChild(spText, 0, 0);
}

@Override
protected void init()
{

@Override
protected void attach()
{
scene.attachChild(spBack);

spBack.attachChild(spTitle);
spBack.attachChild(spBox);

spBox.attachChild(scrollView);
}
48

@Override
protected void detach()
{
spBack.detachSelf();

spTitle.detachSelf();
spBox.detachSelf();

scrollView.detachSelf();
}

@Override
protected void setPosition()
{
spTitle.setPosition(spBack.getWidth() / 2 - spTitle.getWidth() / 2, 25);
spBox.setPosition(30, 120);
scrollView.setPosition(13, 18);
}

@Override
protected void registerTouch()
{

@Override
protected void unregisterTouch()
{

@Override
protected void onUpdate()
{

@Override
protected void onPaused()
{

@Override
protected void onResumed()
{

@Override
protected void onLeave()
{

@Override
public void onKeyUp(int keyCode, KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
{
Sfx.Play(Sfx.SFX_CLICK);
exitState(G.state.menu);
}
}

@Override
public boolean onAreaTouched(TouchEvent touchEvent, ITouchArea iTouchArea, float v, float v1)
{
return false;
}
}
49

4.1.6 Halaman Kredit

Pada halaman ini akan diberikan kredit kepada pihak yang terlibat secara langsung
atau tidak dalam perancangan aplikasi ini.

Gambar 4.6 Halaman Kredit

Pada halaman kredit, nama class nya adalah KreditState. dimana yang diinisialisai
adalah sprite untuk menampilkan frame untuk menampung teks yang akan ditampilkan. Font
yang digunakan untuk mendukung tampilan aplikasi game adalah CrystalRadioKit.

public class KreditState extends GameState


{
private GameSprite spBack, spTitle, spBox;

GameText txtGameDesign;
GameText txtGameDesignName;
GameText txtProgrammer;
GameText txtProgrammerName;
GameText txt2DArt;
GameText txt2DArtName;
GameText txtSound;
GameText txtSoundName;

public KreditState(GameEngine engine, StateParam param)


{
super(engine, param);
}

@Override
public void initComponent()
{
spBack = new GameSprite(G.sprite.kredit.background, engine);
spTitle = new GameSprite(G.sprite.kredit.title, engine);
spBox = new GameSprite(G.sprite.kredit.box, engine);

txtGameDesign = new GameText("Game Designer", G.font.creditTitle, engine);


txtGameDesignName = new GameText("Mr X", G.font.creditName, engine);
txtProgrammer = new GameText("Programmer", G.font.creditTitle, engine);
txtProgrammerName = new GameText("Mr X", G.font.creditName, engine);
50

txt2DArt = new GameText("2D Artist", G.font.creditTitle, engine);


txt2DArtName = new GameText("Mr X", G.font.creditName, engine);
txtSound = new GameText("Sound & Music Artist", G.font.creditTitle, engine);
txtSoundName = new GameText("Mr X", G.font.creditName, engine);
}

@Override
protected void init()
{

@Override
protected void attach()
{
scene.attachChild(spBack);

spBack.attachChild(spTitle);
spBack.attachChild(spBox);

spBox.attachChild(txtGameDesign);
spBox.attachChild(txtGameDesignName);
spBox.attachChild(txtProgrammer);
spBox.attachChild(txtProgrammerName);
spBox.attachChild(txt2DArt);
spBox.attachChild(txt2DArtName);
spBox.attachChild(txtSound);
spBox.attachChild(txtSoundName);
}

@Override
protected void detach()
{
spBack.detachSelf();

spTitle.detachSelf();
spBox.detachSelf();

txtGameDesign.detachSelf();
txtGameDesignName.detachSelf();
txtProgrammer.detachSelf();
txtProgrammerName.detachSelf();
txt2DArt.detachSelf();
txt2DArtName.detachSelf();
txtSound.detachSelf();
txtSoundName.detachSelf();
}

@Override
protected void setPosition()
{
spTitle.setPosition(spBack.getWidth() / 2 - spTitle.getWidth() / 2, 25);
spBox.setPosition(30, 120);

txtGameDesign.setPosition(spBox.getWidth() / 4 - txtGameDesign.getWidth() / 2, 70);


txtGameDesignName.setPosition(spBox.getWidth() / 4 - txtGameDesignName.getWidth() / 2,
txtGameDesign.getY() + txtGameDesign.getHeight());

txtProgrammer.setPosition(spBox.getWidth() / 4 - txtProgrammer.getWidth() / 2,
txtGameDesignName.getY() + txtGameDesignName.getHeight() + 30);
txtProgrammerName.setPosition(spBox.getWidth() / 4 - txtProgrammerName.getWidth() / 2,
txtProgrammer.getY() + txtProgrammer.getHeight());

txt2DArt.setPosition(spBox.getWidth() * 3 / 4 - txt2DArt.getWidth() / 2,
txtGameDesign.getY());
txt2DArtName.setPosition(spBox.getWidth() * 3 / 4 - txt2DArtName.getWidth() / 2,
txtGameDesignName.getY());

txtSound.setPosition(spBox.getWidth() * 3 / 4 - txtSound.getWidth() / 2,
txtProgrammer.getY());
txtSoundName.setPosition(spBox.getWidth() * 3 / 4 - txtSoundName.getWidth() / 2,
txtProgrammerName.getY());
}
51

@Override
protected void registerTouch()
{

@Override
protected void unregisterTouch()
{

@Override
protected void onUpdate()
{

@Override
protected void onPaused()
{

@Override
protected void onResumed()
{

@Override
protected void onLeave()
{

@Override
public void onKeyUp(int keyCode, KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
{
Sfx.Play(Sfx.SFX_CLICK);
exitState(G.state.menu);
}
}

@Override
public boolean onAreaTouched(TouchEvent touchEvent, ITouchArea iTouchArea, float v, float v1)
{
return false;
}
}

4.2 Pengujian Sistem

Pada tahap ini akan dijelaskan tahap pengujian yang dilakukan pada program. Pengujian
yang dilakukan diaplikasi ini adalah menggunakan metode. White Box Testing dan Black Box
Testing dan akan dijabarkan hasil dari setiap pengujian.

4.2.1 White Box Testing

Pada proses White-box testing ini dilakukan pengujian dengan melihat dalam modul
52

untuk meneliti kode-kode program yang ada dan menganalisis apakah ada kesalahan atau
tidak. Jika ada modul yang menghasilkan output yang tidak sesuai dengan proses yang
dilakukan, maka baris-baris program variable dan parameter yang terlibat pada unit tersebut
akan di cek satu persatu dan diperbaiki lalu di compile ulang. Pada pengujian yang dilakukan
terdapat dua hasil pada kode program yaitu Error dan Warning. Untuk lebihnya dapat dilihat
sebagai berikut.
1. Error
Pada pengujian ini jika kode program terdapat Error, maka terjadi kesalahan yang fatal
pada program dan harus diperbaiki agar program dapat berjalan sebagaimana mestinya.
Contoh Error dapat dilihat pada gambar dibawah ini :

Gambar 4.7 Tampilan Error Saat Pengkodean

2. Warning
Pada pengujian ini jika kode program terdapat Warning, maka program dapat tetap
berjalan. Kondisi ini terjadi jika kode program benar namun tidak sesuai dengan standar kode
program dari vendor, dalam hal ini java. Contoh warning saat menjalankan aplikasi dapat
dilihat pada gambar dibawah ini:
53

Gambar 4.8 Tampilan Warning Saat Pengkodean

4.2.2 Black Box Testing

Pada Black-box testing dilakukan pengujian dengan menjalankan eksekusi fungsi


yang ada pada masing-masing modul. Kemudian hasil dari pengujian dapat diamati untuk
mengetahui apakah game Petak Sawah KPK dan FPB ini sudah sesuai analisis dan
rancangan. Hasil dari Black-box testing dapat dilihat pada tabel di bawah ini:

Tabel 4.1 Tabel Hasil Pengujian Black Box Testing


No Yang Diuji Output Kesimpulan
.
1. Tap menu main Ke halaman level permainan Sukses
2. Tap menu bantuan Ke halaman bantuan Sukses
3. Tap menu kredit Ke halaman kredit Sukses
4. Tap menu keluar Keluar dari aplikasi Sukses
5. Tap tombol on-off musik Menghidupkan dan mematikan Sukses
musik latar belakang
6. Tap pilih nomor soal Menuju ke halaman nomor Sukses
soal yang sesuai.
7. Tap ikon bantuan di Memberikan bantuan kepada Sukses
halaman permainan pemain apabila kesulitan
menyelesaikan soal.
8. Tap ikon menyimpan Menyelesaikan perhitungan Sukses
54

jawaban di halaman oleh pengguna dan sistem


permainan. memeriksa apakah jawaban
pengguna sudah benar.
BAB V
KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan penjelasan dan pembahasan keseluruhan materi pada bab-bab


sebelumnya, pada tahap implementasi program serta berdasarkan rumusan masalah yang ada,
maka dapat diambil kesimpulan yaitu:
1. Dalam penelitian ini dihasilkan aplikasi permainan Petak Sawah untuk menghitung
KPK dan FPB suatu bilangan berbasis Android.
2. Aplikasi memberikan cara berinteraksi anak-anak dengan mata pelajaran Matematika
dengan cara yang menyenangkan.
3. Aplikasi dapat pakai tanpa menggunakan internet.
4. Aplikasi ini dirancang dengan bertujuan untuk memberikan semakin banyak game
edukasi kepada anak-anak sehingga mampu mengasah kecerdasan anak.

5.2 Saran

Penulis menyadari dalam perancangan sistem mungkin memiliki kekurangan sehingga


masih diperlukan pengembangan dimasa yang akan datang. Oleh karena itu untuk
pengembangan dimasa yang akan datang penulis menyarankan beberapa hal diantaranya :
1. Menambahkan fitur highscore dengan bantuan penghitung waktu menyelesaikan soal
yang berfungsi memasukkan ke halaman highscore. Sehingga lebih cepat soal
diselesaikan maka akan semakin banyak skor nilai yang akan didapatkan.
2. Menambahkan pilihan soal atau mengacak angka yang akan disusun pada halaman
permainan sehingga setiap pengguna memainkan soal maka akan terdapat angka-
angka baru yang muncul dan menjadikan setiap soal tidak tertebak hasil akhirnya.

55
56
DAFTAR PUSTAKA

Asmiatun, Siti. 2017. Belajar Membuat Game 2D dan 3D Menggunakan Unity: Deepublish.

C. Laudon, Kenneth. 2007. Management Information System: Salemba Empat

Faisal. 2015. Seri Belajar AST.NET : Pengenalan ASP.NET SignalR 2: Codeplex.

Al Fatta, Hanif. 2007. Analisis dan Perancangan Sistem Informasi Untuk Keunggulan
Bersaing Perusahaan dan Organisasi Modern: Penerbit ANDI

Kusrini & Koniyo, Andri. 2007. Tuntunan Praktis Membangun Sistem Informasi Akuntansi
dengan Visual Basic dan Microsoft SQL Server: Penerbit Andi

Wadi, Hamzan. 2012. Pemrograman Android Untuk Pelajar dan Mahasiswa, Jakarta: Turida
Publisher.

Anda mungkin juga menyukai