Pembangunan aplikasi game Kabayan berhitung

(1)

(2)

(3)

(4)

BIODATA PENULIS

IDENTITAS PRIBADI

Nama : R. Adzie Ramadani Kusumah

Jenis Kelamin : Laki-laki

Tempat/Tanggal Lahir : Bandung, 30 Maret 1991

Agama : Islam

Status : Belum Menikah

Warga Negara : Indonesia

Alamat : Jl. Cihampelas – Gg. Cimaung No. 228/25c, Bandung 40116

E-mail : adzie.kusumah@gmail.com

PENDIDIKAN FORMAL

1996 – 2002 SD Negeri Sejahtera VI Bandung 2002 – 2005 SMP Negeri 1 Bandung

2005 – 2008 SMA Laboratorium UPI Bandung

2008 - 2014 Program Studi S1 Jurusan Teknik Informatika Universitas Komputer Indonesia Bandung


(5)

Diajukan untuk Menempuh Ujian Akhir Sarjana

R. ADZIE RAMADANI KUSUMAH

10108439

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2014


(6)

iii

Assalammu’alaikum Wr.Wb.

Puji syukur alhamdulillah penulis panjatkan atas kehadirat Allah SWT sang Pencipta alam semesta, manusia, dan kehidupan beserta seperangkat aturan Nya, karena berkat limpahan rahmat, taufiq, hidayah serta inayah-Nya, sehingga

penulis dapat menyelesaikan Skripsi yang berjudul ”Pembangunan Aplikasi Game Kabayan Berhitung” ini dapat terselesaikan tidak kurang dari pada waktunya.

Skripsi ini dibuat sebagai salah satu syarat kelulusan pada program Strata 1 Fakultas Teknik dan Ilmu Komputer, Program Studi Teknik Informatika di Universitas Komputer Indonesia. Penulis menyadari bahwa skripsi ini masih banyak kekurangan dari berbagai macam hal. Namun berkat bantuan dan bimbingan dari beberapa pihak akhirnya skripsi ini dapat diselesaikan.

Dengan penuh rasa syukur, ucapan terima kasih yang mendalam serta penghargaan yang tidak terhingga penulis sampaikan kepada:

1. Allah SWT, yang telah memberikan rahmat dan hidayah-Nya kepada penulis sehingga dapat menyelesaikan skripsi ini dengan baik.

2. Nabi Muhammad SAW yang telah menyampaikan wahyu Allah.

3. Bapak R Kunkun Kurnia Kusumah dan Ibu Lilis Nurhadiati selaku orang tua penulis yang telah memberikan kasih sayang yang tak terhingga dan doanya. 4. Ibu Nelly Indriani. W, S.Si., M.T., selaku pembimbing yang telah

memberikan pengarahan dan masukan-masukan yang berharga kepada penulis dalam mengerjakan laporan tugas akhir.

5. Bapak Adam Mukharil Bachtiar S.Kom., M.T., selaku penguji satu yang telah memberikan banyak masukan yang berarti bagi penulis.

6. Ibu Sufa'atin, S.T., M.Kom., selaku penguji tiga yang telah memberikan masukan dan semangat untuk penulis.

7. Bapak Irawan Afrianto, S.T., M.T., selaku Ketua Program Studi Teknik Informatika Universitas Komputer Indonesia.


(7)

iv

8. Bapak Andri Heryandi S.T., M.T., selaku dosen wali IF-9 yan telah membimbing dan memberikan arrahan selama masa perkuliahan.

9. Adikku tercinta Bella Putri Sukarna yang selalu memberikan semangat atas prestasi yang diraihnya selama ini dan menjadi dorongan untuk menyelesaikan tugas akhir ini.

10. Kekasih tersayang dan tercinta Mutiara Tri Pertiwi yang telah banyak membantu dan meluangkan waktu, tenaga dan fikiran demi kelancaran tugas akhir ini.

11. Teman-temanku di IF-9 terimkasih atas dukungan, bantuan dan doanya. 12. Semua pihak yang telah membantu dalam menyelesaikan skripsi ini yang

tidak bisa disebutkan satu persatu oleh penulis.

Penulis telah berusaha dan berupaya semaksimal mungkin dalam menyelesaikan penyusunan skripsi ini, walaupun demikian penulis menyadari bahwa dalam penyusunan skripsi ini masih banyak kekurangan dan masih jauh dari kesempurnaan karena keterbatasan kemampuan maupun pengetahuan penulis. Untuk itu penulis akan selalu menerima masukan baik kritik maupun saran yang membangun dalam menyempurnakan skripsi ini. Besar harapan penulis, semoga skripsi ini dapat bermanfaat khususnya bagi penulis dan umumnya bagi pembaca.

Wassalamu’alaikum Wr. Wb Bandung, 27 Januari 2014


(8)

v

5

DAFTAR ISI

LEMBAR JUDUL

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... x

DAFTAR TABEL ... xiv

DAFTAR SIMBOL ... xvi

DAFTAR LAMPIRAN ... xx

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 2

1.3 Maksud dan Tujuan ... 2

1.4 Batasan Masalah ... 3

1.5 Metodologi Penelitian ... 3

1.6 Sistematika Penulisan ... 5

BAB 2 LANDASAN TEORI ... 7

2.1 Matematika ... 7

2.1.1 Anak Usia SD Dalam Pembelajaran Matematika di SD ... 7

2.1.2 Bermain Sambil Beajar Matematika ... 7

2.1.3 Operasi Hitung Sederhana (Penjumlahan, Pengurangan, Perkalian, dan Pembagian) ... 8

2.2 Game ... 8

2.2.1 Bagian dari Game ... 8

2.2.2 Game Edukasi ... 9

2.2.2.1 Prinsip Game Edukasi ... 10

2.2.2.2 Dampak Game Edukasi ... 11

2.2.2.3 GameMobile Learning ... 12

2.3 Algortima Dijkstra ... 13


(9)

vi

2.3.2 Complexity ... 14

2.3.3 Code ... 14

2.4 Algoritma Fisher-Yates ... 14

2.4.1 Code ... 15

2.5 Pemograman Berbasis Objek ... 15

2.5.1 Konsep Dasar Berorientasi Objek ... 15

2.5.2 Analisis Berorientasi Objek ... 17

2.5.3 Desain Berorientasi Objek ... 17

2.5.4 Bahasa Pemograman yang Mendukung PBO ... 17

2.6 Pemodelan Sistem ... 18

2.7 Tools yang Digunakan ... 19

2.7.1 Android Development Tools Bundle ... 19

2.7.1.1 Eclipse ... 19

2.7.1.2 ADT (Android Development Tools) Plugins for Eclipse ... 20

2.7.1.3 Android SDK (Sun Development Kit) ... 20

2.7.2 JDK (Java Development Kit) Oracle... 20

2.7.3 Reason ... 20

2.7.4 CorelDraw ... 21

2.7.5 Cubase ... 21

BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 23

3.1 Analisis Sitem ... 23

3.1.1 Analisis Masalah ... 23

3.1.2 Analisis Game Sejenis ... 23

3.1.2.1 Analisis Game Mole Math LITTLE ... 23

3.1.2.2 Analisis Game Pick a Path ... 24

3.1.3 Analisis Game yang Akan Dibangun ... 25

3.1.3.1 Storyline ... 25

3.1.3.2 Analisis Tingkat Kesulitan... 26

3.1.3.3 Game Play ... 27

3.1.3.4 Analisis Scoring ... 28


(10)

vii

3.1.4 Analisis Algoritma ... 29

3.1.1.1 Analisis Algoritma Dijkstra ... 29

3.1.1.2 Algoritma Fisher Yates ... 38

3.1.5 Spesifikasi Kebutuhan Perangkat Lunak ... 40

3.1.6 Analisis Kebutuhan Non Fungsional ... 41

3.1.6.1 Analisis Kebutuhan Perangkat Keras ... 41

3.1.6.2 Analisis Kebutuhan Perangkat Lunak... 42

3.1.6.3 Analisis Pengguna... 42

3.1.7 Analisis Kebutuhan Fungsional ... 43

3.1.7.1 Use Case Diagram ... 43

3.1.7.2 Activity Diagram ... 47

3.1.7.3 Class Diagram ... 52

3.1.7.4 Sequence Diagram ... 73

3.2 Perancangan Sistem ... 77

3.2.1 Perancangan Komponen... 78

3.2.1.1 Karakter ... 78

3.2.1.2 Storyboard ... 79

3.2.2 Perancangan Struktur Menu ... 81

3.2.3 Perancangan Antarmuka ... 81

3.2.4 Perancangan Pesan ... 89

3.2.5 Jaringan Semantik ... 93

3.2.6 Perancangan Metode ... 93

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 97

4.1 Implementasi ... 97

4.1.1 Implementasi Perangkat Keras ... 97

4.1.2 Implementasi Perangkat Lunak ... 97

4.1.3 Implementasi Class ... 97

4.1.4 Implementasi Antarmuka ... 98

4.1.4.1 Implementasi Antarmuka Menu Utama ... 98

4.1.4.2 Implementasi Antarmuka Cerita Kabayan ke 1 ... 99


(11)

viii

4.1.4.4 Implementasi Antarmuka Intro Pembuka Pelatihan 1 ... 100

4.1.4.5 Implementasi Antarmuka Petunjuk Pelatihan 1... 100

4.1.4.6 Implementasi Antarmuka Pelatihan 1 ... 101

4.1.4.7 Implementasi Antarmuka Intro Pembuka Pelatihan 2 ... 102

4.1.4.8 Implementasi Antarmuka Petunjuk Pelatihan 2... 102

4.1.4.9 Implementasi Antarmuka Pelatihan 2 Graph 1 ... 103

4.1.4.10 Implementasi Antarmuka Pelatihan 2 Graph 2 ... 104

4.1.4.11 Implementasi Antarmuka Pelatihan 2 Graph 3 ... 104

4.1.4.12 Implementasi Antarmuka Pelatihan 2 Pertanyaan ... 105

4.1.4.13 Implementasi Antarmuka Intro Pembuka Pelatihan 3 ... 105

4.1.4.14 Implementasi Antarmuka Petunjuk Pelatihan 3... 106

4.1.4.15 Implementasi Antarmuka Pelatihan 3 Pintu 1 ... 107

4.1.4.16 Implementasi Antarmuka Pelatihan 3 Pintu 2 ... 107

4.1.4.17 Implementasi Antarmuka Pelatihan 3 Pintu 3 ... 108

4.1.4.18 Implementasi Antarmuka Pelatihan 3 Pertanyaan ... 108

4.1.4.19 Implementasi Antarmuka Pelatihan 3 Sandi ... 109

4.1.5 Implementasi Pesan ... 109

4.1.5.1 Implementasi Pesan Jawaban Benar ... 109

4.1.5.2 Implementasi Pesan Jawaban Salah ... 110

4.1.5.3 Implementasi Pesan Jawaban Waktu Habis... 110

4.1.5.4 Implementasi Pesan Menu Pause ... 111

4.1.5.5 Implementasi Pesan Menu Keluar ... 111

4.1.5.6 Implementasi Pesan Gagal ... 112

4.1.5.7 Implementasi Pesan Tamat ... 112

4.2 Pengujian Sistem ... 112

4.2.1 Rencana Pengujian ... 113

4.2.2 Pengujian Alpha ... 113

4.2.2.1 Scenario Pengujian ... 113

4.2.2.2 Pengujian Blackbox ... 114

4.2.2.3 Pengujian Whitebox ... 115


(12)

ix

4.2.3.1 Pretest-Posttest ... 124

4.2.3.2 Kesimpulan Pengujian Beta ... 126

BAB 5 KESIMPULAN DAN SARAN ... 129

5.1 Kesimpulan ... 129

5.2 Saran ... 129


(13)

127

5

DAFTAR PUSTAKA

[1] Depdiknas. (2006). Kurikulum Berbasis Kompetensi Standar Isi 2006 Mata Pelajaran Matematika di Sekolah Dasar. Jakarta: Balitbang Puskur.

[2] Haji, S. (2011). PENDEKATAN PROBLEM POSING DALAM PEMBELAJARAN MATEMATIKA DI SEKOLAH DASAR. Diambil dari http://repository.unib.ac.id/329/1/Judul%207%20Saleh%20Haji.pdf

[3] Tiurlina. (2006). MODEL PEMBELAJARAN MATEMATIKA. Universitas Pendidikan Indonesia. Diambil dari

http://file.upi.edu/browse.php?dir=Direktori/DUAL-MODES/MODEL_PEMBELAJARAN_MATEMATIKA/

[4] Aeni, W. A. (2009). Antara Game, Pendidikan dan HP (Game Mobile Learning Sebagai Wacana Pendidikan). Diambil dari http://m-edukasi.net/artikel-mobile-learning-isi.php?kodenya=2009-ac

[5] Sumardjo, J. (2009). Si Kabayan Sebagai Cerita Rakyat. Diambil dari http://ceritarakyatnusantara.com/id/article/20-si-kabayan-sebagai-cerita-rakyat#

[6] Rachman, T. (2012). Pengguna Android Tumbuh 1.500 Persen. R Diambil dari http://www.republika.co.id/berita/trendtek/gadget/12/06/21/m5ytj8-pengguna-android-tumbuh-1500-persen

[7] Sommerville, I. (2011). Software Engineering (9th ed.). Addison-Wesley Publishers.

[8] Algoritmy.net. (2013). Dijkstra's algorithm. Diambil dari Algoritmy.net: http://en.algoritmy.net/article/45514/Dijkstras-algorithm

[9] Algoritmy.net. (2013). Fisher-Yates shuffle. Diambil dari Algoritmy.net: http://en.algoritmy.net/article/43676/Fisher-Yates-shuffle

[10] Joyner, D., Minh, N. V., & Cohen, N. (2011). Algorithmic Graph Theory. Diambil dari http://code.google.com/p/graph-theory-algorithms-book/ [11] Munawar (2005). Pemodelan Visual dengan UML. Yogyakarta : Penerbit


(14)

[12] Larman, C. (2005). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. Pearson Education.

[13] Chandler, H. M., & Chandler, R. (2011). Fundamentals of Game. LLC. [14] Android. (2013). Developer Tools. Diambil dari

http://developer.android.com/

[15] EDU4JAVA. (2013). Android Game Programming tutorials. Diambil dari http://www.edu4java.com/en/androidgame/androidgame.html

[16] Impaler. (2013). Android Game Development. Diambil dari http://www.javacodegeeks.com/author/Impaler/

[17] Zechner, M., & Green, R. (2012). Beginning Android Games. Apress. [18] Eclipse. (2013). Diambil dari The Eclipse Foundation:

http://www.eclipse.org/

[19] Oracle. (2013). README Java™ Platform, Standard Edition 7, Development Kit. Diambil dari Oracle Technology Network: http://www.oracle.com/technetwork/java/javase/jdk-7-readme-429198.html [20] Propellerhead. (2013). Reason. Diambil dari Propellerhead Software AB:

http://www.propellerheads.se/products/reason/

[21] TECHNOLOGIES, S. M. (2013). Cubase. Diambil dari Steinberg Media

Technologies GmbH:

http://www.steinberg.net/en/products/cubase/start.html

[22] Corel. (2013). CorelDRAW. Diambil dari Corel Corporation: http://www.corel.com/corel/product/index.jsp?pid=prod4260069


(15)

1

Matematika merupakan ilmu universal yang mendasari perkembangan teknologi modern, mempunyai peran penting dalam berbagai disiplin dan memajukan daya pikir manusia. Perkembangan pesat di bidang teknologi informasi dan komunikasi dewasa ini dilandasi oleh perkembangan matematika di bidang teori bilangan, aljabar, analisis, teori peluang dan matematika diskrit. Untuk menguasai dan menciptakan teknologi di masa depan diperlukan penguasaan matematika yang kuat sejak dini [1].

Pembelajaran matematika sudah mulai diberikan di Sekolah Dasar sebagai mata pembelajaran pokok. Pada pembelajaran matematika terdapat hal yang paling mendasar yaitu operasi hitung bilangan penjumlahan, pengurangan, perkalian, dan pembagian yang harus dikuasai di Sekolah Dasar [1]. Materi pembelajaran operasi hitung bilangan penjumlahan, pengurangan, perkalian, dan pembagian masih sering terjadi masalah pada siswa pada saat ini, dikarenakan pendekatan pembelajaran matematika di Sekolah Dasar yang sering digunakan sebagian besar guru, kurang memberikan kesempatan kepada siswa untuk lebih interaktif. Pembelajaran matematika didominasi oleh guru. Guru menjelaskan konsep matematika, memberikan contoh soal, mendemontrasikan penyelesaian soal, dan memberikan rangkuman. Anak diposisikan sebagai penerima dari apa yang disampaikan oleh guru. Akibatnya anak menjadi pasif dan bosan, sehingga mengurangi minat belajar matematika [2].

Minat belajar matematika dapat timbul pada anak jika menarik perhatian terhadap suatu objek. Perhatian ini akan terjadi dengan sendirinya atau mungkin timbul disebabkan adanya pengaruh dari luar. Salah satu metode untuk menarik minat belajar matematika anak adalah dengan belajar dan bermain [3].

Pengaruh teknologi saat ini terhadap anak-anak paling besar adalah bermain game. Pengambilan sifat positif game dimana membuat anak-anak bisa lebih cerdas dan kreatif dapat digunakan sebagai media edukasinya. Media edukasi


(16)

akan tercipta pada game edukasi. Perkembangan game edukasi saat ini sudah berada pada gamemobile learning [4].

Penelitian ini dimaksudkan untuk membuat aplikasi game sebagai pembanding antara pemberian materi secara formal dengan pemberian materi menggunakan media game mobile learning. Dalam perancangannya game ini akan mengangkat tokoh dalam cerita rakyat Sunda yaitu Kabayan sebagai tokoh utama game ini. Kabayan merupakan tokoh paradoks yang membangun cerita-cerita paradoks pula [5]. Keuntungan tokoh Kabayan sebagai tokoh paradoks yaitu dapat membuat cerita tokoh Kabayan yang sesuai dengan cerita pada game ini. Selain tokoh Kabayan merupakan tokoh paradoks, pada saat ini tokoh kabayan sudah hampir terlupakan oleh anak-anak yang disebabkan perkembangan teknologi [5]. Game yang akan dibangun ini, secara tidak langsung akan memperkenalkan kembali tokoh Kabayan.

Berdasarkan masalah yang ada, penelitian ini diberi judul “Pembangunan

Aplikasi Game Kabayan Berhitung”. Game ini akan mengemas perhitungan dasar matematika dengan alur cerita dari tokoh Kabayan yang disesuaikan dengan anak-anak.

1.2 Rumusan Masalah

Berdasarkan latar belakang masalah, maka dapat dirumuskan permasalahan. Bagaimana membuat pembelajaran dalam operasi hitung bilangan dasar matematika lebih interaktif dengan menggunakan tokoh Kabayan sebagai tokoh utama game dan game ini akan menjadi pembanding anatara pembelajaran formal dengan pembelajaran menggunakan media game mobile.

1.3 Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan tugas akhir ini adalah membangun aplikasi Game Kabayan Berhitung sebagai media pembelajaran matematika operasi hitung bilangan dasar dengan tokoh Kabayan yang menjadi tokoh utama game dan membandingkan pembelajaran yang diberikan secara formal dengan pembelajaran yang diberikan dengan media game mobile.


(17)

Tujuan yang ingin dicapai dalam penelitian ini adalah menarik minat belajar anak-anak untuk belajar matematika dalam operasi hitung bilangan dengan membuktikan bahwa pembelajaran matematika dalam operasi hitung bilangan akan lebih efektif dengan menggunakan media game mobile.

1.4 Batasan Masalah

Batasan masalah dalam aplikasi ini sebagai berikut :

1. Game dijalankan pada mobile Android dikarenakan perkembangan

perangkat mobile di Indonesia yang paling dominan yaitu perangkat mobile berbasis Android [6].

2. Untuk penggunan game ini tidak membutuhkan koneksi.

3. Sasaran pengguna atau target usia berkisar antara 8-11 tahun setara dengan anak kelas 2-4 Sekolah Dasar.

4. Permainan ini dimainkan oleh satu orang saja.

5. Materi yang disajikan adalah operasi hitung dasar yaitu pertambahan, pengurangan, perkalian, dan pembagian dengan bilangan yang dibatasi 1-9. Pembatasan bilangan diadakan karena awal dari perhitungan yang harus dihafal 1-9 [3].

6. Pendekatan analisis perangkat lunak menggunakan pendekatan analisis berorientasi objek.

1.5 Metodologi Penelitian

Metodologi penelitian yang dilakukan terdiri dari metode komparatif dan metode pembangunan perangkat lunak.

1. Metode Komparatif

Metode Komparatif adalah penelitian yang bersifat membandingkan. Penelitian ini dilakukan untuk membandingkan persamaan dan perbedaan dua atau lebih fakta-fakta dan sifat-sifat objek yang di teliti berdasarkan kerangka pemikiran tertentu. Teknik pengumpulan data yang dilakukan adalah :

a. Studi literatur

Pengumpulan data dengan cara mengumpulkan buku-buku, karya tulis dan lain sebagainya yang ada kaitannya dengan judul penelitian.


(18)

b. Observasi

Observasi dilakukan pada game sejenis yang sudah ada untuk mengamati kelebihan dan kekurangan yang ada pada game tersebut.

c. Pretest - Posttest

Pretest dan Posttest dilakukan sebelum dan sesudah anak memainkan game yang dibangun untuk mengetahui seberapa besar peningkatan yang terjadi setelah anak memainkan game ini. Sehingga nilai yang dihasilkan dapat menjadi nilai ukur untuk melakukan perbandingan.

2. Metode pembangunan perangkat lunak

Dalam pembuatan perangkat lunak menggunakan paradigma perangkat lunak secara waterfall, yang meliputi beberapa proses yaitu [7] :

a. Requirements definition

System services, kendala dan tujuan, dibentuk oleh konsultasi dengan pengguna sistem. Persyaratan ini kemudian didefinisikan secara rinci dan berfungsi sebagai spesifikasi sistem.

b. System and software design

Proses perancangan sistem membagi persyaratan dalam sistem perangkat keras atau perangkat lunak. Kegiatan ini menentukan arsitektur sistem secara keseluruhan. Perancangan perangkat lunak melibatkan identifikasi dan deskripsi abstraksi sistem perangkat lunak yang mendasar dan hubungan-hubungannya.

c. Implementation and unit testing

Pada tahap ini perancangan perangkat lunak direalisasikan sebagai serangkaian program atau unit program. Pengujian unit melibatkan verifikasi bahwa setiap unit telah memenuhi spesifikasinya.

d. Integration and system testing

Unit program atau program individual diintegrasikan dan diuji sebagai sistem yang lengkap untuk menjamin bahwa persyaratan sistem telah dipenuhi. Setelah pengujian sistem, perangkat lunak dikirim kepada pelanggan.

e. Operational and maintenance

Pada tahap ini merupakan fase siklus hidup yang paling lama. Sistem di-install dan dipakai. Pemeliharaan mencakup koreksi dari berbagai error yang


(19)

tidak ditemukan pada tahap-tahap terdahulu, perbaikan atas implementasi unit sistem dan pengembangan pelayanan sistem, sementara persyaratan-persyaratan baru ditambahkan.

Untuk lebih jelasnya model waterfall dapat dilihat pada gambar berikut :

Gambar 1.1 Model Waterfall [7].

1.6 Sistematika Penulisan

Sistem penulisan penelitian ini disusun untuk memberikan gambaran umum tentang penelitian yang berjalan, sistematika penulisan tugas akhir ini sebagai berikut :

BAB I PENDAHULUAN

Bab ini berisikan latar belakang masalah, rumusan masalah, maksud dan tujuan, batasan masalah, metodologi penelitian, dan sistematika penulisan.

BAB II LANDASAN TEORI

Bab ini akan membahas tentang teori matematika, game, edukasi, algoritma Dijkstra, algoritma Fisher Yates Shuffle, pemrograman berbasis objek, UML, dan alat bantu yang digunakan.

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab ini membahas tentang analisis masalah, analisis game sejenis, analisis game yang akan dibangun, analisis algoritma, spesifikasi kebutuhan perangkat lunak, analisis kebuthan non fungsional, analisis kebutuhan fungsional, perancangan komponen, perancangan struktur menu, perancangan antarmuka, perancangan pesan, jaringan semantik, dan perancangan metode.


(20)

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini menjelaskan implementasi perangkat keras, implementasi perangkat lunak, implementasi class, implementasi antarmuka, rencana pengujian, pengujian alpha, dan pengujian beta.

BAB V KESIMPULAN DAN SARAN

Bab ini berisikan kesimpulan dan saran dari hasil penelitian ini.


(21)

7

BAB 2

LANDASAN TEORI

2.1 Matematika

Matematika merupakan ilmu universal yang mendasari perkembangan teknologi modern, mempunyai peran penting dalam berbagai disiplin dan memajukan daya pikir manusia. Perkembangan pesat di bidang teknologi informasi dan komunikasi dewasa ini dilandasi oleh perkembangan matematika di bidang teori bilangan, aljabar, analisis, teori peluang dan matematika diskrit. Untuk menguasai dan mencipta teknologi di masa depan diperlukan penguasaan matematika yang kuat sejak dini[1].

2.1.1 Anak Usia SD Dalam Pembelajaran Matematika di SD

Anak usia SD adalah anak yang berada pada usia sekitar 7 sampai 12 tahun. Menurut Piaget anak usia sekitar ini masih berpikir pada tahap operasi konkrit artinya siswa siswa SD belum berpikir formal. Ciri-ciri anak-anak pada tahap ini dapat memahami operasi logis dengan bantuan benda-benda konkrit, belum dapat berpikir deduktif, berpikir secara transitif. Contoh : 2 + 2 = 4, 4 + 2 = 6, 6 + 2 = 8, 10 + 2 = 12. Proses ini sudah dapat dipahami oleh siswa.

Sebagaimana kita ketahui, matematika adalah ilmu deduktif, formal, hierarki dan menggunakan bahasa simbol yang memiliki arti yang padat. Karena adanya perbedaan karakteristik antara matematika dan anak usia SD, maka matematika akan sulit dipahami oleh anak SD jika diajarkan tanpa memperhatikan tahap berpkir anak SD. Seorang guru hendaknya mempunyai kemampuan untuk menghubungkan antara dunia anak yang belum dapat berpikir secara deduktif agar dapat mengerti matematika yang bersifat deduktif[3].

2.1.2 Bermain Sambil Beajar Matematika

Bermain pada umumnya tidak dapat dipisahkan dari anak-anak, karena disamping memenuhi kebutuhan akan bermain dapat juga menambah atau memperkaya pengalaman anak. Dengan keinginan anak bermain, orang tua atau pendidik dapat memanfaatkannya untuk menanamkan pengertian akan pelajaran misalnya belajar matematika[3].


(22)

2.1.3 Operasi Hitung Sederhana (Penjumlahan, Pengurangan, Perkalian, dan Pembagian)

Operasi penjumlahan pada dasarnya merupakan suatu aturan yang mengaitkan setiap pasang bilangan dengan bilangan yang lain. Operasi penjumlahan ini mempunyai beberapa sifat yaitu: sifat pertukaran (komutatif), sifat identitas, dan sifat pengelompokan (asosiatif)[3].

Operasi pengurangan merupakan kebalikan dari operasi penjumlahan, tetapi operasi pengurangan tidak memiliki sifat yang dimiliki operasi penjumlahan. Operasi pengurangan tidak memenuhi sifat pertukaran, sifat identitas, dan sifat pengelompokan.

Operasi perkalian dapat didefinisikan sebagai penjumlahan berulang. Misalkan pada perkalian 4 x 3 dapat didefinisikan sebagai 3 + 3 + 3 + 3 = 12 sedangkan 3 x 4 dapat didefinisikan sebagai 4 + 4 + 4 = 12. Secara konseptual, 4 x 3 tidak sama dengan 3 x 4, tetapi jika dilihat hasilnya saja maka 4 x 3 = 3 x 4.

Operasi pembagian dapat didefinisikan sebagai pengurangan berulang. Secara matematis ditulis sebagai a : b = a – b – b – b .... = 0. Misal, 24 : 3 = 24 – 3

– 3 – 3 – 3 – 3 – 3 – 3 – 3 = 0. Berarti 24 : 3 = 8. Hasil ini ditunjukkan oleh banyaknya angka 3 yang muncul sebagai bilangan pengurangnya. Operasi pembagian adalah kebalikan dari operasi perkalian.

2.2 Game

Game berasal dari kata bahasa inggris yang berarti dasar permainan. Permainan dalam hal ini merujuk pada pengertian kelincahan intelektual (Intellectual Playability Game) yang juga bisa diartikan sebagai arena keputusan dan aksi pemainnya. Dalam game, ada target-target yang ingin dicapai pemainnya. Permainan adalah kegiatan yang kompleks yang didalamnya terdapat peraturan, play dan budaya. Sebuah permainan adalah sebuah sistem dimana pemain terlibat dalam konflik buatan, disini pemain berinteraksi dengan sistem dan konflik dalam permainan merupakan rekayasa atau buatan, dalam permainan terdapat peraturan yang bertujuan untuk membatasi perilaku pemain dan menentukan permainan[4]. 2.2.1 Bagian dari Game


(23)

1. Game Rule

Game rule merupakan aturan perintah, cara menjalankan, fungsi objek dan karakter di dunia permainan Dunia Game Dunia game bisa berupa pulau, dunia khayal, dan tempat-tempat lain yang sejenis yang dipakai sebagai setting tempat dalam permainan game.

2. Plot

Plot biasanya berisi informasi tentang hal-hal yang akan dilakukan oleh player dalam game dan secara detail ,perintah tentang hal yang harus dicapai dalam game.

3. Tema

Di dalam biasanya ada pesan moral yang akan disampaikan. 4. Character

Pemain sebagai karakter utama maupun karakter yang lain yang memiliki ciri dan sifat tertentu Object Merupakan sebuah hal yang penting dan biasanya digunakan pemain untuk memecahkan masalah, adakalanya pemain harus punya keahlian dan pengetahuan untuk bisa memaninkannya.

5. Text, Graphic dan Sound

Game biasanya merupakan kombinasi dari media teks, grafik maupun suara, walaupun tidak harus semuanya ada dalam permainan game.

6. Animasi

Animasi ini selalu melekat pada dunia game , khususnya untuk gerakan karakter-karakter yang ada dalam game, properti dari objek.

7. User Interface

Merupakan fitur-fitur yang mengkomunikasikan user dengan game. 2.2.2 Game Edukasi

Menurut Randel game sangat berpotensi untuk menumbuhkan kembali motivasi belajar anak yang mengalami penurunan. Berdasarkan penelitian yang dilakukan oleh Randel pada tahun 1991 tercatat bahwa pemakaian game sangat bermanfaat pada materi-materi yang berhubungan dengan matematika, fisika dan kemampuan berbahasa (seperti studi sosial, biologi dan logika)


(24)

Game yang memiliki content pendidikan lebih dikenal dengan istilah game edukasi. Game berjenis edukasi ini bertujuan untuk memancing minat belajar anak terhadap materi pelajaran sambil bermain, sehingga dengan perasaan senang diharapkan anak bisa lebih mudah memahami materi pelajaran yang disajikan. Jenis ini sebenarnya lebih mengacu kepada isi dan tujuan game, bukan jenis yang sesungguhnya.

Menurut Edward game merupakan sebuah alat yang efektif untuk mengajar karena mengandung prinsip-prinsip pembelajaran dan teknik instruksional yang efektif digunakan dalam penguatan pada level-level yang sulit

Maja Pivec membuktikan game edukasi berhasil diterapkan untuk pendidikan formal khususnya di militer, ilmu kedokteran, fisika, training dan lain sebagainya. Model game edukasi yang merupakan perpaduan antara instructional content dan karakteristik game terbukti mampu meningkatkan motivasi pemain game serta mendapatkan keluaran ilmu pengetahuan ketikan process pembelajaran game itu berlangsung[4].

2.2.2.1 Prinsip Game Edukasi

Menurut Foremen beberapa prinsip yang harus diterapkan dalam aplikasi sebuah game edukasi adalah[4]:

1. Individualization

Materi pembelajaran (pengetahuan) dibuat sesuai dengan kebutuhan individual dari pembelajar, sedangkan game mengadopsi level individual dari pemain.

2. Feedback Active

Adanya feedback yang sesuai dengan cepat untuk memperbaiki pembelajaran dan mengurangi ketidaktahuan pembelajar terhadap materi yang disampaikan, sedangkan game menyediakan feedback dengan cepat dan konstektual.

3. Active Learning

Adanya kecenderungan untuk menyertakan pelajar secara aktif dalam menciptakan penemuan dan pengetahuan baru yang membangun, sedangkan game


(25)

menyediakan suatu lingkungan yang membantu terjadinya penemuan baru tersebut.

4. Motivation

Pelajar termotivasi dengan reward yang diberikan dalam aktivitas permainan, sedangkan game melibatkan pengguna berjam-jam untuk mencapai tujuan.

5. Scaffolding

Pelajar secara berangsur-angsur ditantang dengan tingkat kesulitan yang makin tinggi dan dapat melangkah lebih maju untuk mencapai kemenangan dari permainan, sedangkan game dibangun secara multi level, pemain tidak bisa bergerak ke level yang lebih tinggi sampai dia mampu menyelesaikan permainan di level yang ada.

6. Transfer

Pelajar mengembangkan kemampuan untuk mentransfer pengetahuan dari satu orang ke orang yang lain, sedangkan game, sedangkan game mengijinkan pemain untuk menstransfer informasi dari suatu konteks ke konteks yang lain

7. Assessment

Setiap individu mempunyai kesempatan untuk menilai pelajaran mereka sendiri atau membandingkannya dengan orang lain.

2.2.2.2 Dampak Game Edukasi

Ada dampak positif dan negatif sebuah game, sekalipun game edukasi[4]. 1. Dampak Positif Game Edukasi

Menurut Edward game memiliki banyak dampak positif antara lain:

a. Game banyak digunakan orang untuk mengajarkan suatu pengetahuan dan membangun ketrampilan baik dibidang edukasi, bisnis maupun militer. b. Game effektif digunakan untuk membangun kemampuan matematika dan

membaca pada anak, dibuktikan dengan penelitian yang dilakukan oleh Murphy dan kawan-kawan pada tahun 2002.

c. Game terbukti effektif untuk membantu anak-anak penderita ashma dan diabetes mengelola kebiasaan hidup sehat, penelitian dilakukan oleh


(26)

Lieberman pada tahun 1997 dan McPhershon dan kawan-kawan pada tahun 2006.

d. Banyak bisnis menggunakan game edukasi untuk membangun ketrampilan karyawan mereka seperti Cisco mengajarkan karyawan mereka pengenalan tools dasar dan security network melalui sebuah game.

e. Pada tahun 2007 militer AS menggunakan game dalam training personil militer seperti simulasi penerbangan pesawat dan pemakaian sistem persenjataan.

2. Dampak Negatif Game Edukasi

Tidak semua game memberi dampak yang diinginkan, penelitian yang dilakukan Anderson pada tahun 2004 dan Batholow 2006 memberikan bukti bahwa game juga memiliki dampak negatif seperti:

a. Meningkatkan sifat aggresiv cognitiv, aggresiv behavior. b. Memberikan efek permusahan dan efek psikologis. c. Menurunkan kebiasaaan prososial.

d. Dari segi kesehatan game dapat memberikan dampak meningkatatnya detak jantung, tekanan darah aktivitas otak.

Dampak negarif dari game ini secara umum berlaku pada pemain yang masih anak-anak dan remaja yang memiliki tidak emosional yang tinggi. Ketika penelitian dilakukan terhadap orang tua maka dampak ini sangat kecil pengaruhnya.

2.2.2.3 GameMobile Learning

Kecanggihan teknologi komunikasi memberi nuansa berbeda dalam proses belajar mengajar sesorang. Teknologi komunikasi mengubah lokasi belajar dari kelas ke tempat dimana saja peserta didik dapat belajar. Dengan demikian, teknologi komunikasi mendorong terjadinya evolusi pada lokasi belajar. Menurut prawiradilaga belajar tidak lagi hanya berlangsung di sekolah dan di kelas, belajar dapat terjadi dimana saja selama ada bahan ajar dan peserta didik merasa nyaman dengan situasi itu.

Disisi lain perkembangan teknologi telah menciptakan terobosan-terobosan dalam pembelajaran. Peserta didik bersinggungan dengan perangkat-perangkat


(27)

teknologi komunikasi bergerak seperti handphone yang dengan berbagai fasilitasnya telah menjadi gelombang kecenderungan baru yang memungkinkan peserta didik (pembelajar) belajar secara mobile atau lebih dikenal sebagai mobile learning.

Pemanfaatan handphone sebagai sarana mobilitas dalam sebuah mobile learning dan penyajian materi dalam format game menjadi sebuah wacana untuk menyajikan pengetahuan dalam sebuah hiburan. Belajar dengan senang, belajar dimanapun kapanpun, tanpa sekat tanpa batas[4].

2.3 Algortima Dijkstra

Algoritma Dijkstra merupakan algoritma tercepat untuk menghitung jarak minmal dari vertex ke vertex lainnya di graph yang tidak mengandung nilai negatif pada setiap edges. Algoritma ini ditemukan oleh ilmuwan komputer Belanda Edsger Dijstra pada tahun 1959[8].

2.3.1 Deskripsi Algoritma Dijkstra

Algoritma merupakan perluasan dari algoritma breadth-first search, dimana urutan node (vertex) tidak ditentukan oleh jumlah dari setiap sisi akarnya, tetapi sebagai jarak dari akar (jumlah bobot dari semua sisi sepanjang jalan dari akar ke node yang diberikan). Sebagai konsekuensi algoritma Dijkstra proses hanya dilakukan pada node, dimana jalan terpendek sudah ditemukan.

Algoritma Dijkstra akan menyimpan semua node dalam antrian prioritas dengan mencari jarak dari simpul dari akar - pada iterasi pertama dari algoritma, akar dinisialisasi 0, jarak semua node lain sama dengan tak terhingga. Dalam setiap langkah algoritma Dijkstra mengambil dari antrian node dengan prioritas tertinggi (paling tidak jarak dari akar) yang akan diperoses dan mengevaluasi ulang jarak semua keturunan yang diproses dari node. Ini berarti bahwa algoritma memeriksa semua keturunan bahwa kondisi berikut ini berlaku :

Jika sudah habis, algoritma perubahan sesuai jarak keturunan dan menetapkan node olahan sebagai induknya. Ketika semua keturunan diperiksa, algoritma mengambil lagi node dengan prioritas tertinggi dan mengulangi proses. Algoritma Dijkstra berakhir, ketika antrian kosong (semua node diproses).


(28)

Hal ini penting untuk mengetahui bahwa algoritma Dijkstra mensyaratkan bahwa bobot semua sisi non-negatif. Jika prosedur ini tidak dapat menentukan apakah jalur terpendek untuk node itu sudah ditemukan atau tidak.

2.3.2 Complexity

Kompleksitas asimtotik algoritma Dijkstra tergantung pada pelaksanaan antrian prioritas. Jika diimplementasikan menggunakan pencarian sekuensial daripada kompleksitas adalah O(|N|2), dimana |N| banyaknya node dari graph.

Ketika benary heap digunakan, the complexity is O(|E|.log2|N|) |E| banyaknya

edge dari dijkstra. 2.3.3 Code

Gambar 2.1 Code Algoritma Dijkstra

2.4 Algoritma Fisher-Yates

Fisher-Yates Shuffle (dinamai berdasarkan penemunya, Ronald Fisher dan Frank Yates) digunakan untuk mengubah urutan masukan yang diberikan secara acak. Permutasi yang dihasilkan oleh algoritma ini muncul dengan probabilitas yang sama[9].

Metode Fisher-Yates secara umum adalah : 1. Ketika masih ada elemen tersisa untuk diacak 2. Ambil elemen secara acak dari elemen yang tersisa 3. Kemudian tukar dengan elemen saat ini.


(29)

2.4.1 Code

Berikut Algoritma Fisher Yates dalam javascript :

Gambar 2.2 Code Algoritma Fisher-Yates

2.5 Pemograman Berbasis Objek

Pemograman berorientasi objek (Object-Oriented Programing) adalah pembangunan perangkat lunak yang mengoragisasikan preangkat lunak sebagai kumpulan objek yang berisi data dan operasi yang diberlakukan. Pemograman berorientasi objek merupakan suatu cara bagaimana system perangkat lunak dibangun melalui pendakatan objek[11].

2.5.1 Konsep Dasar Berorientasi Objek

Pendekatan berorientasi objek merupakan suatu tehnik atau cara pendekatan dalam melihat permasalahan dan sistem. Pendekatan berorientasi objek akan memandang sistem yang akan dikembangkan sebagai suatu kumpulan objek yang berkorespondensi dengan objek-objek dunia nyata.

Berikut adalah beberapa konsep dasar yang harus dipahami tentang pemograman berorientasi objek :

1. Kelas (class)

Kelas adalah kumpulan objek-objek dengan karakteristik yang sama. Kelas merupakan definisi statis dan himpunan objek yang sama yang mungkin lahir atau diciptakan dari kelas tersebut.

2. Objek (object)

Objek adalah abstraksi dan sesuatu yang mewakili dunia nyata yang bersifat abstrak. Objek merupakan suatu entitas yang mampu menyimpan informasi


(30)

(status) dan mempunyai operasi yang dapat diterapkan atau berpengaruh pada status objeknya. Secara teknis, sebuah kelas saat program dieksekusi maka akan dibuat sebbuah objek.

3. Metode (method)

Operasi atau metode merupakan fungsi atau transformasi yang dapat dilakukan terhadap objek atau dilakukan oleh objek. Metode atau Operasi dapat berasal dari event, aktifitas atau aksi, keadaan, fungsi, dan kelakuan dunia nyata.

4. Atribut (attribute)

Atribut dari sebuah kelas adalah variabel global yang dimiliki sebuah kelas. Atribut dapat berupa nilai atau elemen-elemen data yang dimiliki oleh objek dalam kelas objek.

5. Abstraksi (abstraction)

Prinsip untuk mempresentasikan dunia nyata yang kompleks menjadi satu bentuk model yang sederhana dengan mengabaikan aspek-aspek lain yang tidak sesuai dengan permasalahan.

6. Enkapulasi (encapsulation)

Pembungkusan atribut data dan layanan (operasi-operasi) yang dipunyai objek untuk menyembunyikan implementasi objek sehingga objek lain tidak mengetahui cara kerjannya.

7. Pewarisan (inheritance)

Mekanisme yang memungkinkan satu objek mewarisi sebagian atau seluruh definisi dan objek lain sebagai bagian dari dirinya.

8. Antarmuka (interface)

Antarmuka atau interface sangat mirip dengan kelas, tapi tanpa atribut kelas dan memiliki metode yang di deklarasikan tanpa isi.

9. Reusability

Pemanfaatan kembali objek yang sudah didefinisikan untuk suatu permasalahan pada permasalahan lainnya yang melibatkan objek tersebut.

10. Generalisasi dan Spesialisasi

Menunjukan hubungan antara kelas dan objek yang umum dengan kelas dan objek yang khusus.


(31)

11. Komunikasi Antar Objek

Komunikasi antar objek dilakukan lewat pesan (message) yang dikirim dari suatu objek ke objek lainnya.

12. Polimorfisme (polymorphism)

Kemampuan suatu objek untuk digunakan di banyak tujuan yang berbeda dengan nama yang sama sehingga menghemat baris program.

13. Package

Package adalah sebuah container atau kemasan yang dapat digunakan untuk mengelompokan kelas-kelas sehingga memungkinkan beberapa kelas yang bernama sama disimpan dalam package yang berbeda.

2.5.2 Analisis Berorientasi Objek

Analisis berorientasi objek atau Object Oriented Analysis (OOA) adalah tahapan unntuk menganalisis spesifikasi atau kebutuhan akan sistem yang akan dibangun dengan konsep berorientasi objek.

2.5.3 Desain Berorientasi Objek

Disain berorientasi objek atau Object Oriented Design (OOD) adalah tahapan perantara untuk memetakan spesifikasi atau kebutuhan sistem yang akan dibangun dengan konsep berorientasi objek ke desain pemodelan agar lebih mudah diimplementasikan dengan pemograman berorientasi objek.

Pemodelan berorientasi objek biasanya dituangkan dalam dokumentasi perangkat lunak dengan menggunakan perangkat pemodelan beorientasi objek, diantaranya adalah UML (Unified Modeling Language).

2.5.4 Bahasa Pemograman yang Mendukung PBO 1. Bahasa Pemograman Smalltalk

Smaltalk merupakan salah satu bahasa pemograman yang dikembangkan untuk mendukung pemograman berorientasi objek mulai tahun 1978.

2. Bahasa Pemograman Eiffel

Effiel merupakan bahasa pemograman yang dikembangkan untuk mendukung pemograman berorientasi objek mulai than 1985 oleh Bertrand Mater dan compiler Eiffel selesai dibuat pada tahun 1987.


(32)

3. Bahasa Pemograman C++

Bahasa pemograman C++ merupakan pengembangan lebih lanjut dari bahasa pemograman C untuk mendukung pemograman berorientasi objek.

4. Bahasa Pemograman PHP

PHP dibuat pertama kali oleh seorang perekayasa perangkat lunak (softwaew engineering) yang bernama Rasmus Lerdoff. Dengan beberapa versi yang telah diperbaharui. PHP 5 sudah mendukung pemograman berorientasi objek.

5. Bahasa Pemograman Java

Java dikembangkan oleh perusahaan Sun Microsystem. Java menurut Sun Microsystem adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada komputer standalone ataupun pada lingkungan jaringan. Java merupakan bahasa pemograman objek murni karena semua kode program dibungkus dalam kelas.

2.6 Pemodelan Sistem

Pemodelan sistem yang berorientasi objek dapat dimodelkan dengan menggunakan UML (Unified Modeling Language). UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung. Berikut merupakan bagian-bagian dari UML[12].

1. Use Case

Use Case merupakan pemodelan dari kebutuhan sistem terhadap interaksi pengguna kepada sistem. Use Case dapat menjadi gambaran kejadian dimana pengguna melakukan interaksi terhadap sistem.

2. Activity Diagram

Activity Diagram merupakan sebuah notasi diagram yang menjelaskan tentang sebuah sekenario yang terjadi pada sebuah use case dimana untuk memudahkan pembacaaan sekenario.


(33)

3. Class Diagram

Class Diagram merupakan pemodelan dari sebuah class-class yang akan dibangun pada sebuah sistem. Class diagram akan menggambarkan semua relasi yang terjadi terhadap class-class.

4. Sequence Diagram

Sequence diagram merupakan pemodelan untuk menggambarkan interaksi antar pengguna dan sistem, dimana pada suatu use case akan dijelaskan secara sekuen bagaimana porses interaksi anatara pengguna dan sistem dijelaskan. Sequencediagram akan menjelaskan keterkaitan class-class yang akan dibangun. 2.7 Tools yang Digunakan

Berikut adalah tools yand digunakan sebagai pendukung pembangunan aplikasi game.

2.7.1 Android Development Tools Bundle

Android Development Tools Bundle merupakan kumpulan dari beberapa softwawre untuk membangun aplikasi Android yang disediakan oleh Android[14]. Di dalam Android Development Tools Bundle terdapat software, yaitu :

2.7.1.1 Eclipse

Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent)[18]. Berikut ini adalah sifat dari Eclipse:

1. Multi-platform

2. Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya.

3. Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya.

Secara standar Eclipse selalu dilengkapi dengan JDT (Java Development Tools), plug-in yang membuat Eclipse kompatibel untuk mengembangkan program Java, dan PDE (Plug-in Development Environment) untuk


(34)

mengembangkan plug-in baru. Eclipse beserta plug-in-nya diimplementasikan dalam bahasa pemrograman Java. Konsep Eclipse adalah IDE yang terbuka (open), mudah diperluas (extensible) untuk apa saja, dan tidak untuk sesuatu yang spesifik. Apabila ingin mengembangkan program C/C++ terdapat plug-in CDT (C/C++ Development

Tools).

2.7.1.2 ADT (Android Development Tools) Plugins for Eclipse

Android Development Tools (ADT) adalah plugin yang didesain untuk IDE Eclipse yang memberikan kita kemudahan dalam mengembangkan aplikasi angroid dengan menggunakan IDE Eclipse. Dengan menggunakan ADT untuk Eclipse akan memudahkan kita dalam membuat aplikasi projek android, membuat GUI aplikasi, dan menambah komponen-komponen yang lainnya, begitu juga kita dapat melakukan running aplikasi menggunakan Android SDK melalui Eclipse[14].

2.7.1.3 Android SDK (Sun Development Kit)

Android SDK (Sun Development Kit) adalah tools API (Application Programing Interface) yang diperlukan untuk mulai mengembangkan aplikasi pada platform Android menggunakan pemograman Java[14].

2.7.2 JDK (Java Development Kit) Oracle

Java Development Kit merupakan perangkat lunak yang digunakan untuk melakukan proses kompilasi dari kode Java menjadi bytecode yang dapat dimengerti dan dapat dijalankan oleh Java Runtime Environtment.

Java Development Kit wajib terinstall pada komputer yang akan melakukan proses pembuatan aplikasi berbasis Java. Namun Java Development Kit tidak wajib terinstall di komputer yang akan menjalankan aplikasi yang dibangun menggunakan Java[19].

2.7.3 Reason

Reason merupakan sebuah program yang dirancang untuk membuat musik melalui pemograman musik yang bisa disebut dengan MIDI (Musical Instrument Digital Interface)[20].


(35)

2.7.4 CorelDraw

CorelDraw merupakan sebuah software untuk membuat sebuah grafis dan gambar-gambar[22].

2.7.5 Cubase

Cubase merupakan sebuah software untuk membantu perekaman musik baik secara digital melalui MIDI ataupun secara manual (memainkan alat oleh manusia)[21].


(36)

(37)

23

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sitem

Pada bagian ini akan dijelaskan tentang analisis terhadap sistem yang akan dibangun. Bagian ini menjelaskan analisis-analisis yang dilakukan.

3.1.1 Analisis Masalah

Berdasarkan analisa yang dilakukan, maka permasalahan yang dihadapi adalah bagaimana pembelajaran dalam operasi hitung bilangan dasar matematika lebih interaktif dengan menggunakan tokoh Kabayan sebagai tokoh utama game. 3.1.2 Analisis Game Sejenis

Analisis game sejenis merupakan analisis yang akan membahas mengenai game yang menjadi acuan dalam pembangunan sebuah game. Dalam analisis game sejenis ini akan membahas mengenai komponen yang berperan penting untuk membangun game edukasi. Komponen game yang akan di analisis yaitu story line, game play, dan edukasi.

3.1.2.1 Analisis Game Mole Math LITTLE

Game Mole Math LITTLE merupakan game edukasi untuk pembelajaran matematika terutama dalam hal berhitung pertambahan, pengurangan, perkalian, pembagian.

Gambar 3.1 Game Mole Math LITTLE

1. Story Line Mole Math LITTE

Game ini menceritakan tentang mole yang menyerang ke kebun Tuba. Mole yang datang harus diusir secepat mungkin diusir. Hanya ada satu cara untuk menyingkirkan mereka. Mencari dan memukul mole yang menampilkan jawaban yang tepat dari pertanyaan yang tampil di papan tulis.


(38)

2. Game Play Mole Math LITTLE

Pada game Mole math versi LITTLE hanya ada level “medium” dan permainan “20 pertanyaan”. Game play dari game ini sangat sederhana namun membutuhkan konsentrasi tinggi. Pemain game ini harus mencari jawaban dari pertanyaan yang tampil di papan tulis dengan menyentuh Mole yang keluar dengan jawaban yang tepat. Pemain akan dituntut untuk menjawab 20 pertanyaan dengan yang singkat karena, penilaian atau scoring berpengaruh terhadap waktu. 3. Edukasi Mole Math LITTLE

Pada game Mole math versi LITTLE memiliki konten edukasi tentang penjumlahan, pengurangan, perkalian, dan pembagian. Bentuk penyampaian edukasi dengan mengunnakan pertanyaan.

3.1.2.2 Analisis Game Pick a Path

Game Pick a Path merupakan game edukasi tentang pembelajaran matematika dalam perbandingan antara besar dan kecil.

Gambar 3.2 Game Pick a Path

1. Storyline Pick a Path

Game ini menceritakan tokoh Okta yang mencari jalur dalam graph yang tertampil. Tokoh Okta dapat keluar jika bisa mencapai targetnya.

2. Game Play Pick a Path

Game ini mempunyai 7 level dengan tingkat kesulitan yang berbeda dalam setiap level ataupun sub level nya tetapi, mempunyai game play yang sama. Game play pada game ini sama disetiap level nya yaitu, pemain harus memilih jalur untuk membantu tokoh Okta dengan mencari jalur (maksimum, minimum, atau nilai tertentu).


(39)

3.1.2.2.1 Edukasi Pick a Path

Pada game Pick a Path terdapat edukasi dalam menentukan perbandingan antara besar atau kecil. Bentuk penyampaian edukasi dengan menggunakan graph dimana pemain harus mencari jalur dengan membandingkan setiap jalur yang akan dilewati.

3.1.3 Analisis Game yang Akan Dibangun

Pada bagian ini akan dijelaskan analisis untuk membangun game Kabayan Berhitung.

3.1.3.1 Storyline

Game Kabayan Berhitung menceritakan tentang tokoh Kabayan. Pada game ini menceritakan Kabayan yang memiliki kekurangan untuk berhitung, sehingga membuat Kabayan tidak bisa bermain dengan tokoh Nyi Iteung karena tokoh Abah ingin agar anaknya yaitu Nyi Iteung bermain dengan anak yang bisa berhitung. Untuk membuat Kabayan bisa bermain lagi dengan Nyi Iteung, Kabayan akan diberikan pelatihan berhitung oleh Abah sebelum Kabayan dapat bermain lagi dengan Nyi Iteung.

Pelatihan yang diberikan Abah akan terdapat 3 pelatihan, yaitu : 1. Pelatihan pertama

Pada pelatihan pertama ini Abah akan melatih Kabayan di Ladang. Pelatihan ini dilakukan Abah agar Kabayan dapat melakukan pertambahan dan pengurangan.

2. Pelatihan kedua

Pada pelatihan kedua, Abah akan membawa Kabayan untuk mencari jalan terdekat menuju rumah Nyi Iteung. Setiap Kabayan menemui titik akhir jalan yang dicari, Abah akan bertanya perkalian dan pembagian kepada Kabayan untuk melanjutkan perjalanan.

3. Pelatihan ketiga

Pada pelatihan ini Kabayan sudah berada di depan rumah Nyi Iteung. Pelatihan ketiga ini Kabayan harus membuka setiap pintu untuk bertemu dengan Nyi Iteung. Di setiap Kabayan membuka pintu, Abah akan memberikan kunci untuk membuka pintu dengan memberikan pertanyaan percampuran antara


(40)

pertambahan, pengurangan, perkalian dan pembagian. Setelah Kabayan bisa menjawab pertanyaan dari Abah, Kabayan harus memasukan kunci tersebut dengan memecahkan hasil pertanyaan kedalam puluhan dan satuan. Kabayan harus membuka pintu sebanyak 3 kali pada pelatihan ini.

Setelah 3 pelatihan selesai maka Kabayan diijinkan Abah untuk bermain dengan Nyi Iteung kembali. Permainan selesai ketika semua pelatihan sudah di bereskan Kabayan.

3.1.3.2 Analisis Tingkat Kesulitan

Analisis tingkat kesulitan merupakan analisis untuk menguji user untuk menyelesaikan game.

1. Tingkat 1 (level 1)

Materi yang disajikan adalah pertambahan dan pengurangan dengan pembatasan nilai 1 – 9. Pembatasan nilai diadakan karena pertambahan dan pengurangan dari 1 – 9 merupakan kewajiban dari setiap siswa untuk di hafal. Contoh soal :

a. 3 + 2 = ? b. 9 – 1 = ?

2. Tingkat 2 (level 2)

Materi yang disajikan yaitu :

a. Pertambahan dan pengurangan dengan menggunakan pemilihan dalam kasus mencari jarak. Sebagai contohakan tertampil graph sebagai berikut :

1

2

3

4

5

6

2 3

4

1

6

8 7

Gambar 3.3 Contoh Graph

Jarak yang harus ditempuh adalah 8. Pemain harus mencari jalur dengan jarak yang ditanyakan yaitu 8.


(41)

b. Perkalian dan pembagian dengan pembatasan nilai 1 – 9. Pembatasan nilai diadakan karena perkalian dan pembagian dari 1 – 9 merupakan kewajiban dari setiap siswa untuk di hafal. Contoh soal sebagai berikut:

i. 3 x 8 = ? ii. 24 : 6 = ? 3. Tingkat 3 (level 3)

Materi yang disajikan yaitu :

a. Penggabungan antara pertambahan, pengurangan, perkalian, sebagai contoh :

( 4 x 4 ) – 1 = ?

b. Pemecahan bilangan ke puluhan dan satuan, sebagai berikut :

3.1.3.3 Game Play

Tugas utama pemain dalam memainkan game ini adalah untuk menyelesaikan misi-misi yang ada pada setiap bagian atau level pada game. Pada game ini akan dibagi dalam 3 level atau pelatihan. Setiap pelatihan memiliki misi yang berbeda. Kesulitan setiap level atau pelatihan akan berada pada pertanyaan yang tertampil. Berikut ini akan dijelaskan misi-misi dari setiap pelatihannya :

1. Pelatihan 1 (level 1)

a. Pemain harus mencangkul ladang untuk mencari jawaban dari pertanyaan yang tampil.

b. Jika pemain merasa jawaban benar dan waktu menjawab belum habis, maka pemain memeriksakan jawaban.

c. Pemain harus menjawab sebanyak 5 pertanyaan dan kesempatan belum habis untuk melanjutkan ke pelatihan 2.

2. Pelatihan 2 (level 2)

a. Pemain pada awal pelatihan 2 harus mencari jalur terpendek pada graph pada graph ke 1 dengan jarak yang ditanyakan.

b. Setelah menyelesaikan graph ke 1, pemain harus menjawab pertanyaan. puluhan satuan


(42)

c. Jika pemain menjawab dengan benar, pemain harus mencari jalur terpendek pada graph ke 2 dengan jarak yang ditanyakan.

d. Setelah menyelesaikan graph ke 2, pemain harus menjawab pertanyaan. e. Jika pemain menjawab dengan benar, pemain harus mencari jalur

terpendek pada graph ke 3 dengan jarak yang ditanyakan.

f. Setelah menyelesaikan graph ke 3, pemain harus menjawab pertanyaan. g. Jika pemain menjawab dengan benar, pemain akan melanjutkan permainan

ke pelatihan 3. 3. Pelatihan 3 (level 3)

a. Pemain harus menyentuh pintu ke 1

b. Pemain harus menjawab pertanyaan agar mendapatkan sandi untuk membuka pintu ke 1.

c. Pemain harus memasukan sandi dengan benar untuk membuka pintu ke 1 dan menuju pintu ke 2.

d. Pemain harus menyentuh pintu ke 2

e. Pemain harus menjawab pertanyaan agar mendapatkan sandi untuk membuka pintu ke 2.

f. Pemain harus memasukan sandi dengan benar untuk membuka pintu ke 2 dan menuju pintu ke 3.

g. Pemain harus menyentuh pintu ke 3

h. Pemain harus menjawab pertanyaan agar mendapatkan sandi untuk membuka pintu ke 3.

i. Pemain harus memasukan sandi dengan benar untuk membuka pintu ke 3 dan pemain berhasil.

3.1.3.4 Analisis Scoring

Analisis scoring merupakan analisa untuk memberikan penilaian kepada user yang menyelesaikan game. Scoring pada game Kabayan Berhitung akan berupa nilai. Dengan keterangan, sebagai berikut :


(43)

Tabel 3.1 Analisa Scoring Pelatihan

(Level) Keterangan Score Jumlah

1 Terdapat 5 pertanyaan 5 x 10 (score yang diberi) 50 2 Terdapat 3 kali penyelesaian

jalan tercepat

3 x 15 (score yang diberi) 45 2 Terdapat 3 pertanyaan 3 x 10 (score yang diberi) 30 3 Terdapat 3 pertanayaan 3 x 15 (score yang diberi) 45 3 Terdapat 3 pemecahan hasil 3 x 10 (score yang diberi) 30

Total nilai 200

Pada game Kabayan Berhitung penilaian atau scoring tidak berpengaruh terhadap kesalahan. Jika pemain melakukan kesalahan disetiap pelatihan atau kejadian, maka kesempatan pemain akan berkurang.

3.1.3.5 Edukasi

Game Kabayan Berhitung akan mengemas edukasi tentang pembelajaran matematika dalam operasi hitung bilangan yaitu penjumlahan, pengurangan, perkalian dan pembagian. Pembagian materi akan dibedakan dalam setiap level di game Kabayan Berhitung. Dimulai dari level 1 yaitu tentang penjumlahan dan pengurangan. Dilanjutkan level 2 tentang pencarian jalur dengan menggunakan pertambahan dan pengurangan, dan materi perkalian dan pembagian. Terakhir pada level 3 akan memberikan materi operasi hitung campuran dari pertambahan, pengurangan, perkalian, dan pembagian, juga pemecahan bilangan.

3.1.4 Analisis Algoritma

Analisis Algoritma merupakan suatu analisis untuk menerapkan algoritma yang digunakan terhadap game yang akan dibangun.

3.1.1.1 Analisis Algoritma Dijkstra

Algoritma Dijkstra merupakan algoritma untuk mencari jarak minimum dan rute terpendek dari graph berbobot tidak negatif dan berarah. Dalam pembangunan Game Kabayan Berhitung, algoritma ini digunakan untuk mencari jarak minminum dari kombinasi graph yang tertampil pada level 2. Hasil dari algoritma ini akan diperlihatkan sebagai nilai Y di gambar 3.4. Berikut adalah contoh kombinasi graph yang tertampil di level 2 :


(44)

Gambar 3.4 Contoh graph yang tertampil di level 2

Keterangan :

1. V1-5 : merupakan titik tujuan yang nantinya akan ditempuh Kabayan (vertex).

2. W1-7 : merupakan jarak atau bobot antara setiap titik tujuan. Jarak yang tertampil akan selalu berubah-ubah.

3. Y : merupakan hasil dari algoritma Dijkstra yaitu jarak minimum pada graph yang tertampil yang menjadi parameter untuk pemain.

4. X : merupakan jarak yang sudah ditempuh pemain.

Dari contoh graph yang tertampil, akan dijelaskan mengenai langkah algoritma dari algoritma Dijkstra untuk menghitung jarak minimum. Berikut adalah gambar dari graph yang sudah di inisialisasi bobot atau jarak antara titik tujuannya (vertex) :

V0

V1

V2

V3

V4

V5 W4 = 2

W1 = 3

W2 = 4

W5 = 1

W6 = 6

W7 = 8 W3 = 7

Gambar 3.5 Contoh graph yang sudah dinisialisasi jarak antara vertex nya

Graph akan direpresentasikan berupa array 2 dimensi (matriks) dengan indeks array baris dan kolom akan mengacu kepada jumlah vertex (array[0..jumlah veretex][0..jumlah vertex] of integer). Kumpulan vertex ini akan diimplementasikan sebagai graph[ ][ ], sebagai berikut :


(45)

Tabel 3.2 Matriks dari Contoh Graph

graph V0 V1 V2 V3 V4 V5

V0 0 3 ∞ ∞ 2 ∞

V1 ∞ 0 4 7 ∞ ∞

V2 ∞ ∞ 0 ∞ ∞ 1

V3 ∞ ∞ ∞ 0 ∞ 6

V4 ∞ ∞ ∞ ∞ 0 8

V5 ∞ ∞ ∞ ∞ ∞ 0

Keterangan :

1. Baris merupakan vertex awal dan kolom merupakan vertex tujuan.

2. Jika vertex awal menuju vertex tujuan tidak mempunyai arah maka akan di insialisasi dengan infinity (∞).

3. Jika vertex mengacu ke vertex itu sendiri maka akan di inisialisasi dengan 0. Algoritma Dijkstra akan di jelaskan dalam procedure pada Pseudocode berikut :

Procedure dijkstra(input d:array[0..JumlahVertex][0..JumlahVertex] of integer,

from:intger, output distance:array[0..JumlahVertex] of integer, predecessors :

array[0..JumlahVertex] of integer)

Deklarasi set : List

closed : array[0..JumlahVertex] of Boolean

minDistance : integer

node : integer

i : integer

Algoritma

set  add(from)

{inisalisasi distances}

for i  0 to i < JumlahGraph do

if(i ≠ from)then

distance[i]  infinity

else

distance[i]  0

endif endfor

predecessors[from]  -1

while ( set ≠ kosong) do

minDistance  infinity

node  -1

for each i in adj(set) do

if distaces[i] < minDistance then

minDistance  distances[i]

node  i

endif endfor

set  remove(node)

closed[node] true

for i  0 to i < JumlahVertex do

if d[node][i] ≠ infinity then

if closed[i] = false then


(46)

predecessors[i]  node

if i not in set then

set  add(i)

endif endif endif endfor endwhile

Berikut penjelasan dari procedure Dijkstra :

Tabel 3.3 Pseudocode Algoritma Dijkstra

No Algoritma Pseudocode

1 Masukan form kedalam set set add(from)

2 Insialisasi distances for i  0 to JumlahGraph do

if(i ≠ from)then

distance[i]  infinity

else

distance[i]  0

endif endfor

3 Masukan nilai -1 ke predecessors

indeks ke from

predecessors[from] -1 3 Ketika set tidak kosong maka

lakukan proses selanjutnya

while( set ≠ kosong) do

4 Inisialisasi minDistance dengan

infinity

minDistance  infinity

5 Masukan -1 ke node node  -1

6 Proses untuk mencari jarak minimal di dalam set

for each i in adj(set) do

if distaces[i] < minDistance then

minDistance  distances[i] node  i

endif endfor

7 Hapus node di dalam set set remove(node)

8 Masukan nilai true pada closed

dengan indeks ke node

closed[node] true 9 Proses perbandingan jarak tempuh

dengan vertex yang dituju dan mencari nilai yang paling kecil kemudian dimasukan kedalam set.

for i  0 to JumlahVertex do

ifd[node][i] ≠ infinity then if closed[i] = false then

distances[i]  distances[node] + d[node][i]

predecessors[i]  node

if i not in set then

set add(i)

endif endif endif endfor

10 Akhir dari while ketika set sudah kosong


(47)

Berikut langkah-langkah algoritma pada graph yang tertampil :

Set : [ 0 ]

0

inf

inf

inf

inf

inf

W4 = 2 W1 = 3

W2 = 4

W5 = 1

W6 = 6

W7 = 8 W3 = 7

Predecessors : [ -1 , 0 , 0 , 0 , 0 , 0 ] Distance : [ 0 , inf , inf , inf , inf , inf ]

Gambar 3.6 Iterasi 0 Algoritma Dijkstra

minDistance : 0

Node : 0

Set : [ ]

0

3

inf

inf

2

inf

W4 = 2 W1 = 3

W2 = 4

W5 = 1

W6 = 6

W7 = 8 W3 = 7

Predecessors : [ -1 , 0 , 0 , 0 , 0 , 0 ] Distance : [ 0 , 3 , inf , inf , 2 , inf ]

Closed : [ T , F , F , F , F , F ]

Set : [ 1 , 4 ]


(48)

minDistance : 2

Node : 4

Distance : [ 0 , 3 , inf , inf , 2 , 10 ] 0

3

inf

inf

2

10

W4 = 2 W1 = 3

W2 = 4

W5 = 1

W6 = 6

W7 = 8 W3 = 7

Set : [ 1 ]

Closed : [ T , F , F , F , T , F ]

Predecessors : [ -1 , 0 , 0 , 0 , 0 , 4 ]

Set : [ 1 , 5 ]

Gambar 3.8 Iterasi 2 Algoritma Dijkstra

minDistance : 3

Node : 1

Distance : [ 0 , 3 , 7 , 10 , 2 , 10 ] 0

3

7

10

2

10

W4 = 2 W1 = 3

W2 = 4

W5 = 1

W6 = 6

W7 = 8 W3 = 7

Set : [ 5 ]

Closed : [ T , T , F , F , T , F ]

Predecessors : [ -1 , 0 , 1 , 1 , 0 , 4 ]

Set : [ 5, 2 , 3 ]


(49)

minDistance : 7

Node : 2

Distance : [ 0 , 3 , 7 , 10 , 2 , 8 ] 0

3

7

10

2

8

W4 = 2 W1 = 3

W2 = 4

W5 = 1

W6 = 6

W7 = 8 W3 = 7

Set : [ 5, 3 ]

Closed : [ T , T , T , F , T , F ]

Predecessors : [ -1 , 0 , 1 , 1 , 0 , 2 ]

Set : [ 5, 3 ]

Gambar 3.10 Iterasi 4 Algoritma Dijkstra

minDistance : 8

Node : 5

Distance : [ 0 , 3 , 7 , 10 , 2 , 8 ] 0

3

7

10

2

8

W4 = 2 W1 = 3

W2 = 4

W5 = 1

W6 = 6

W7 = 8 W3 = 7

Set : [ 3 ]

Closed : [ T , T , T , F , T , T ]

Predecessors : [ -1 , 0 , 1 , 1 , 0 , 2 ]

Set : [ 3 ]


(50)

minDistance : 9

Node : 3

Distance : [ 0 , 3 , 7 , 10 , 2 , 8 ] 0

3

7

10

2

8

W4 = 2 W1 = 3

W2 = 4

W5 = 1

W6 = 6

W7 = 8 W3 = 7

Set : [ ]

Closed : [ T , T , T , T , T , T ]

Predecessors : [ -1 , 0 , 1 , 1 , 0 , 2 ]

Set : [ ]

Gambar 3.12 Iterasi 6 Algoritma Dijkstra

Berikut hasil berupa tabel hasil perhitungan :

Tabel 3.4 Hasil Perhitungan Algoritma Dijkstra

node distances predecessors set

V0 V1 V2 V3 V4 V5

-1 (0,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) 0,0,0,0,0,0 0

0 (0,-) (3,V0) (∞,-) (∞,-) (2,V0) (∞,-) -1,0,0,0,0,0 1,4

4 (0,-) (3,V0) (∞,-) (∞,-) (2,V0) (10,V4) -1,0,0,0,0,4 1,5

1 (0,-) (3,V0) (7,V1) (10,V3) (2,V0) (10,V4) -1,0,1,1,0,4 5,3,2

2 (0,-) (3,V0) (7,V1) (10,V3) (2,V0) (8,V2) -1,0,1,1,0,2 5,3

5 (0,-) (3,V0) (7,V1) (10,V3) (2,V0) (8,V2) -1,0,1,1,0,2 3

3 (0,-) (3,V0) (7,V1) (10,V3) (2,V0) (8,V2) -1,0,1,1,0,2 null

Untuk mendapatkan pembacaan yang benar dan mengetahui jarak minimal, dibutuhkan suatu procedure Reconstructor Predecessor. Berikut Procedure Reconstructor Predecessor yang digunakan untuk memperbaiki pembacaan : Procedure reconstructorPredecessor(input sumVertex : integer, s : integer, output solutionPath : array[0..IndeksSolusi] of integer, minDistanceGraph : integer )

DEKLARASI i : integer ALGORITMA

i  0

currentVertex  sumVertex – 1 while currentVertex ≠ 0 do


(51)

currentVertex  predecessors[currentVertex] i  i + 1

endwhile

minDistanceGraph  distances[panjang array distances - 1]

Berikut penjelasan dari procedure Reconstructor Predecessor :

Tabel 3.5 Pseudocode Procedure Reconstructor Predecessor

No Algoritma Pseudocode

1 Inisalisasi i = 0 i  0 2 Inisalisasi currentVertex

dengan sumVertex– 1

currentVertex  sumVertex – 1 3 Ulangi jika currentVertex

tidak sama dengan 0 lakukan proses selanjutnya

whilecurrentVertex ≠ 0 do

4 Masukan currentVertex

kedalam solutionPath dengan indeks ke i

solutionPath[i]  currentVertex

5 Insialisasi kembali

currenVertex dengan

predecessors indeks ke

currentVertex

currentVertex  predecessors[currentVertex]

6 Tambah nilai indeks i i  i + 1 7 Akhir dari while jika

currenVertex = 0

endwhile

8 Masukan distances indeks ke panjang array distances

dikurangi 1 kedalam

minDistanceGraph

minDistanceGraph  distances[panjang array distances - 1]

Hasil dari procedure Reconstructor Predecessor, sebagai berikut :

Tabel 3.6 Hasil Procedure Reconstructor Predecessor

i currentVertex predecessors[currentVertex] solutionPath

0 5 2 [5]

1 2 1 [5,2]

2 1 0 [5,2,1]

- 0 - [5,2,1,0]

minDistanceGraph 8

Dari tabel diatas dapat didapatkan hasil bahwa jarak minimum dari graph adalah 8 yang menjadi nilai Y, dengan jalur yang ditempuh sebagai berikut :


(52)

V0

V1

V2

V3

V4

V5

W4 = 2 W1 = 3

W2 = 4

W5 = 1

W6 = 6

W7 = 8 W3 = 7

Gambar 3.13 Graph Hasil dari Procedure Dijkstra (Algoritma Dijkstra)

3.1.1.2 Algoritma Fisher Yates

Algoritma Fisher Yates merupkan algoritma untuk pengacakan suatu urutan. Dalam pembangunan game Kabayan Berhitung, algoritma ini akan digunakan untuk memenuhi pengacakan jawaban yang bertempat pada level 1 atau pelatihan 1. Jawaban akan berupa array dengan inisialisasi nilai yaitu : {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}.

Berikut adalah functionFisher Yates :

function fisherYates(input array : array[0..JumlahElemen] of integer)  array[0..JumlahElemen] of integer

{ menghasilkan array yang sudah teracak }

DEKLARASI m : integer i : integer t : integer

ALGORITMA

m  JumlahElemen i  0

t  0

while ( m > 0 ) do i  random(m-1) t  array[m]

array[m]  array[i] array[i]  t

endwhile return array


(53)

Berikut penjelasan dari function Fisher Yates :

Tabel 3.7 Graph Hasil dari Procedure Dijkstra (Algoritma Dijkstra)

No Algoritma Pseudocode

1 Inisialisasi m dengan nilai jumlah elemen di variabel array

m  jumlah elemen di variabel array 2 Inisialisasi i dengan nilai 0 i  0

3 Insialisasi t dengan nilai 0 t  0 4 Ulangi ketika m lebih dari 0 lakukan

proses selanjutnya

while ( m > 0 ) do 5 Simpan nilai random dengan indeks

m-1

i  random(m-1) 6 Simpan nilai yang berada dalam

array dengan indeks ke m ke dalam t

t  array[m] 7 Tukar nilai di array indeks ke m

dengan nilai di array indeks ke i

array[m]  array[i] 8 Ganti nilai di array indeks ke i

dengan t

array[i]  t

9 Akhir dari while endwhile

10 Kirimkan array sebagai output. return array

Hasil dari pengacakan function Fisher Yates dalam pengcakan jawaban sebagai berikut :

Tabel 3.8 Hasil Function Fisher Yates

m t array[m] array[t] Array yang sudah fix Array yang telah di swap

19 13 19 13 13 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

11, 12, 19, 14, 15, 16, 17, 18, 13

18 7 18 7 7, 13 0, 1, 2, 3, 4, 5, 6, 18, 8, 9, 10,

11, 12, 19, 14, 15, 16, 17, 7, 13

17 15 17 15 15, 7, 13 0, 1, 2, 3, 4, 5, 6, 18, 8, 9, 10,

11, 12, 19, 14, 17, 16, 15, 7, 13

16 11 16 11 11, 15, 7, 13 0, 1, 2, 3, 4, 5, 6, 18, 8, 9, 10,

16, 12, 19, 14, 17, 11, 15, 7, 13

15 13 17 19 19, 11, 15, 7, 13 0, 1, 2, 3, 4, 5, 6, 18, 8, 9, 10,

16, 12, 17, 14, 19, 11, 15, 7, 13

14 6 14 6 6, 19, 11, 15, 7, 13 0, 1, 2, 3, 4, 5, 14, 18, 8, 9, 10, 16, 12, 17, 6, 19, 11, 15, 7, 13

13 4 17 4 4, 6, 19, 11, 15, 7, 13 0, 1, 2, 3, 17, 5, 14, 18, 8, 9,

10, 16, 12, 4, 6, 19, 11, 15, 7, 13

12 10 12 10 10, 4, 6, 19, 11, 15, 7,

13

0, 1, 2, 3, 17, 5, 14, 18, 8, 9, 12, 16, 10, 4, 6, 19, 11, 15, 7, 13

11 3 16 3 3, 10, 4, 6, 19, 11, 15,

7, 13

0, 1, 2, 16, 17, 5, 14, 18, 8, 9, 12, 3, 10, 4, 6, 19, 11, 15, 7,


(54)

13

10 4 12 17 17, 3, 10, 4, 6, 19, 11,

15, 7, 13

0, 1, 2, 16, 12, 5, 14, 18, 8, 9, 17, 3, 10, 4, 6, 19, 11, 15, 7, 13

9 5 9 5 5, 17, 3, 10, 4, 6, 19,

11, 15, 7, 13

0, 1, 2, 16, 12, 9, 14, 18, 8, 5, 17, 3, 10, 4, 6, 19, 11, 15, 7, 13

8 3 8 16 16, 5, 17, 3, 10, 4, 6,

19, 11, 15, 7, 13

0, 1, 2, 8, 12, 9, 14, 18, 16, 5, 17, 3, 10, 4, 6, 19, 11, 15, 7, 13

7 6 18 14 14, 16, 5, 17, 3, 10, 4,

6, 19, 11, 15, 7, 13

0, 1, 2, 8, 12, 9, 18, 14, 16, 5, 17, 3, 10, 4, 6, 19, 11, 15, 7, 13

6 4 18 12 12, 14, 16, 5, 17, 3, 10,

4, 6, 19, 11, 15, 7, 13

0, 1, 2, 8, 18, 9, 12, 14, 16, 5, 17, 3, 10, 4, 6, 19, 11, 15, 7, 13

5 3 9 8 8, 12, 14, 16, 5, 17, 3,

10, 4, 6, 19, 11, 15, 7, 13

0, 1, 2, 9, 18, 8, 12, 14, 16, 5, 17, 3, 10, 4, 6, 19, 11, 15, 7, 13

4 2 18 2 2, 8, 12, 14, 16, 5, 17,

3, 10, 4, 6, 19, 11, 15, 7, 13

0, 1, 18, 9, 2, 8, 12, 14, 16, 5, 17, 3, 10, 4, 6, 19, 11, 15, 7, 13

3 0 9 0 0, 2, 8, 12, 14, 16, 5,

17, 3, 10, 4, 6, 19, 11, 15, 7, 13

9, 1, 18, 0, 2, 8, 12, 14, 16, 5, 17, 3, 10, 4, 6, 19, 11, 15, 7, 13

2 0 18 9 9, 0, 2, 8, 12, 14, 16, 5,

17, 3, 10, 4, 6, 19, 11, 15, 7, 13

18, 1, 9, 0, 2, 8, 12, 14, 16, 5, 17, 3, 10, 4, 6, 19, 11, 15, 7, 13

1 0 1 18 1, 18, 9, 0, 2, 8, 12, 14,

16, 5, 17, 3, 10, 4, 6, 19, 11, 15, 7, 13

1, 18, 9, 0, 2, 8, 12, 14, 16, 5, 17, 3, 10, 4, 6, 19, 11, 15, 7, 13

Dari hasil analisis algoritma Fisher Yates diapatkan hasil bahwa, algoritma ini sangat cocok untuk pengacakan yang nantinya akan digunakan untuk mengacak jawaban.

3.1.5 Spesifikasi Kebutuhan Perangkat Lunak

Spesifikasi kebutuhan perangkat lunak merupakan deskripsi dari apa yang harus sistem miliki untuk memenuhi kebutuhan dari pengguna.

Kode Kebutuhan Deskripsi

SKPL-F-01 Sistem dapat menyediakan untuk memulai permainan SKPL-F-02 Sistem dapat menyediakan untuk mencangkul ladang SKPL-F-03 Sistem dapat menyediakan untuk mencari jalur pada graph SKPL-F-04 Sistem dapat menyediakan untuk menjawab pertanyaan SKPL-F-05 Sistem dapat menyediakan untuk memasukan sandi SKPL-NF-01 Sistem dapat berjalan pada perangkat mobile Android SKPL-NF-02 Sistem dapat berjalan pada layar WVGA 480 x 800 pixel

SKPL-NF-03 Sistem dapat berjalan pada sistem operasi Android minimal versi 2.2 (froyo)


(55)

SKPL-NF-04 Sistem dibangun oleh perangkat lunak Android Developer Tools dan Oracle Java Development Kit

SKPL-NF-05 Sistem dibangun oleh bahasa pemrograman Android

SKPL-NF-06 Pembangunan grafis dibangun dengan menggunakan perangkat lunak Corel Draw

SKPL-NF-07 Pembangunan music dibangun dengan menggunakan perangkat lunak Cubase dan Reason

SKPL-NF-08 Sistem dapat digunakan pemain dengan knowlage and experience, sebagai berikut:

MobileLiteracy : Rendah, minimal bisa menggunakan

smartphone android.

Pengalaman Sistem : Sedang, minimal biasa menggunakan sistem operasi Android 2.2 (froyo)

Pengalaman Aplikasi : Sedang, minimal pernah memainkan game edukasi dan petualangan sejeneis lainnya.

Penggunaan Sistem Lain : Jarang Edukasi : Sekolah Dasar

Kemampuan Membaca : Bisa membaca dengan lancar. Setara dengan kemampuan membaca anak kelas 2 SD.

Bahasa / Kultur : Bahasa Indonesia

SKPL-NF-09 Sistem mempengaruhi pemain dalam Job/Task/Need, sebagai berikut:

Frekuensi Penggunaan : Occasional

Tingkat Kepentingan Task : Lemah Interaksi Sosial : tidak diperlukan

SKPL-NF-10 Sistem mempengaruhi pemain dalam Psychological Characteristics, sebagai berikut:

Attitude : Positif Motivasi : Tinggi

Stress Level : No Stress

SKPL-NF-11 Sistem dapa digunakan pemain dengan Physical Characteristics, sebagai berikut :

Umur : 8 – 11 tahun

Jenis Kelamin : Laki-laki dan perempuan

Handedness : Kanan, Kidal, dan Keduanya

Disabilities : Tidak ada masalah dengan penglihatan

3.1.6 Analisis Kebutuhan Non Fungsional

Analisis dan kebutuhan non-fungsional meliputi analisis dan kebutuhan perangkat lunak, analisis dan kebutuhan perangkat keras, serta analisis dan kebutuhan user.

3.1.6.1 Analisis Kebutuhan Perangkat Keras

Perangkat keras merupakan suatu alat untuk menjalankan sekumpulan instruksi dari perangkat lunak.


(56)

Pada apikasi game Kabayan Berhitung ini, perangkat keras yang dibutuhkan untuk menjalankan aplikasi adalah :

1. Mobile Android dengan sistem operasi minimal Android 2.2 (froyo) 2. Layar WVGA 480 x 800 pixel

3.1.6.2 Analisis Kebutuhan Perangkat Lunak

Perangkat lunak digunakan dalam sebuah sistem merupakan perintah-perintah yang diberikan kepada perangkat keras agar bisa dapat berinteraksi diantara keduanya.

Perangkat lunak yang dibutuhkan dalam penerapan aplikasi game edukasi ini adalah Sistem Operasi Android minimal versi 2.2 (froyo).

Perangkat lunak yang digunakan dalam pembangunan game edukasi ini yaitu : 1. Pembangun game :

a. Android Developer Tools (include : Eclipse, Android SDK, ADT Plugins for Eclipse)

b. Oracle Java Development Kit 2. Bahasa pemograman : Android 3. Grafis : Corel Draw

4. Music : Reason dan Cubase 3.1.6.3 Analisis Pengguna

Analisis pengguna merupakan analisis terhadap pengguna yang akan menggunakan aplikasi yang telah dibangun. Perangkat keras dan perangkat lunak yang ada tidak dapat berguna apabila tidak ada pengguna yang mengoperasikannya. Oleh karena itu dibuatlah analisis pengguna yang berdasarkan pada user profilenya, yakni berdasarkan user knowledge & experience, user job, task & needs, user physicological characteristic, dan user physical characteristic.

Tabel 3.9 Analisis Pengguna KNOWLEDGE AND EXPERIENCE

MobileLiteracy Rendah, minimal bisa menggunakan smartphone android.

Pengalaman Sistem Sedang, minimal biasa menggunakan sistem operasi Android 2.2 (froyo)


(1)

Tabel 4.10 Keriteria Penilaian Pada Pengujian Pretest

Materi Yang Diuji Jumlah Soal

Nilai Setiap Menjawab 1

Soal

Total Nilai Jika Menjawab Semua Soal

Dengan Benar

Pertambahan dan Pengurangan 5 5 10

Perkalian dan Pembagian 3 10 30

Campuran 3 15 45

Jumlah 100

2. Postest

Pada pengujian postest siswa akan menjalankan aplikasi game yang dibuat yaitu game Kabayan Berhitung. Pada pengujiannya setiap siswa akan memainkan game ini satu persatu. Materi yang akan diuji pada siswa sama dengan pengujian pretest. Perbedaan dari pengujian pretest selain menjalankan game, terdapat pada soal yang akan diuji. Soal yang akan diuji semuanya diberikan secara acak, sehingga kemungkinan kecil untuk soal yang diuji pada pretest akan sama dengan pada postest. Pada pelatihan 1 waktu yang digunakan untuk menjawab tidak diaktifkan, karena pada pengujian pretest siswa tidak diberikan waktu untuk menjawab. Kriteria penilaian pada pretest akan sebagai berikut :

Tabel 4.11 Keriteria Penilaian Pada Pengujian Postest

Pelatihan Materi Yang Diuji Jumlah Soal

Nilai Setiap Menjawab

1 Soal

Total Nilai Jika Menjawab Semua Soal Dengan Benar 1 Pertambahan dan

Pengurangan

5 5 10

2 Perkalian dan Pembagian 3 10 30

3 Campuran 3 15 45

Jumlah 100

2. Hasil Pengujian Pretest-Posttest

Hasil pengujian pretest-postest akan dijelaskan sebagai berikut.

Tabel 4.12 Hasil Pretest Posttest

No Responden Hasil Nilai Penjumlahan dan Pengurangan Perkalian dan

Pembagian Campuran Total

Pretest Postest Pretest Postest Pretest Postest Pretest Postest

1 25 25 20 30 30 45 75 100


(2)

126

3 25 25 30 30 45 45 100 100

4 25 25 30 30 15 30 70 85

5 25 25 20 20 45 45 90 90

6 25 25 20 30 45 30 90 85

7 25 25 20 30 30 45 75 100

8 25 25 10 20 30 30 65 75

9 25 25 30 30 15 30 70 85

10 25 25 20 30 30 30 75 85

11 20 25 10 20 30 30 60 75

12 25 25 20 30 30 30 75 85

13 25 25 30 30 45 30 100 85

14 25 25 30 30 45 45 100 100

15 25 25 10 30 15 30 50 85

16 25 25 10 20 30 30 65 75

17 25 25 30 30 45 45 100 100

18 25 25 30 30 45 45 100 100

19 25 25 30 30 45 45 100 100

20 25 25 30 30 30 45 85 100

21 20 25 10 20 15 30 45 75

22 25 25 30 30 30 30 85 85

23 25 25 30 20 15 30 70 75

24 25 25 30 30 45 45 100 100

25 25 25 30 30 15 30 70 85

26 25 25 30 30 30 45 85 100

27 25 25 30 30 45 45 100 100

28 25 25 30 30 30 30 85 85

29 25 25 30 30 45 45 100 100

30 25 25 20 30 30 30 75 85

Dari hasil yang didapat, kemudian dihitung rata-rata dari setiap pengujian pretest dan postest untuk mengetahui peningkatan nilai yang terjadi pada setiap materi yang diuji. Hasil yang didapat akan direperesentasikan, sebagai berikut.

Tabel 4.13 Persentase Peningkatan Jenis Test Nilai rata-rata

pretest Nilai rata-rata postest Peningkatan nilai Presentase peningkatan Penjumlahan dan Pengurangan

24,67 25,00 0,33 1,35%

Perkalian dan Pembagian

24,00 28,00 4,00 16,67%

Campuran 32,50 36,50 4,00 12,31%

Total 81,17 89,50 8,33 10,27%

4.2.3.2Kesimpulan Pengujian Beta

Berdasarkan hasil pengujian beta dalam bentuk pretst-posttest, dapat disimpulkan sebagai berikut.


(3)

1. Pada operasi hitung pertambahan dan pengurangan didapatkan hasil presentase peningkatan hanya 1,35%. Dikarenakan responden sudah mampu untuk melakukan operasi hitung pertambahan dan pengurangan.

2. Pada operasi hitung perkalian dan pembagian didapatkan hasil presentase peningkatan sebesar 16,67%.

3. Pada operasi hitung campuran didapatkan hasil presentase peningkatan sebesar 12,31%.

4. Dari hasil secara keseluruhan didapatkan hasil presentase peningkatan sebesar 10,27%. Peningkatan ini membuktikan bahwa minat belajar anak dan pembelajaran melalui media game mobile terbukti efektif.


(4)

(5)

129

Berdasarkan hasil implementasi dan pengujian yang dilakukan pada game Kabayan berhitung, didapat kesimpulan bahwa pembelajaran dengan menggunakan media game mobile (game Kabayan berhitung) dapat menarik minat belajar anak dan membantu meningkatkan pembelajaran operasi hitung pertambahan, pengurangan, perkalian dan pembagian, sehingga dapat dikatakan bahwa game Kabayan Berhitung efektif sebagai sarana pembelajaran operasi hitung bilangan.

5.2 Saran

Game yang dibangun masih mempunyai kelemahan dan masih banyak kekurangan. Dari hasil implementasi dan pengujian, didapatkan saran untuk pengembang game ini agar lebih baik :

1. Perlu adanya perluasan materi sehingga tidak terpatok hanya operasi hitung saja dan pemberian materinya harus disesuaikan dengan cerita dan gameplay.

2. Perbandingan pembelajaran harus meluas, dengan adanya perpaduan materi pembelajaran anatra matematika dengan yang lainnya dalam satu game ini.


(6)