PENERAPAN METODE RECURSIVE DIVISION DAN METODE DEPTH FIRST SEARCH DALAM PEMBUATAN GAME HELP
SAKERA OUT PADA PERANGKAT BERGERAK
TUGAS AKHIR
Oleh: Moh. Supandi 120411100027
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA BANGKALAN
PENERAPAN METODE RECURSIVE DIVISION DAN METODE DEPTH FIRST SERCH DALAM PEMBUATAN GAME HELP
SAKERA OUT PADA PERANGKAT BERGERAK Moh. Supandi
(12.04.1.1.1.00027)
Pembimbing I : Yonathan Ferry Hendrawan, S.T., MIT. Pembmbing II : Cucun Very Angkoso, S.T., MT.
ABSTRAK
Dalam pembuatan sebuah game terdapat 2 cara yang bisa dilakukan. Cara yang pertama adalah dengan cara dinamis, sedangkan cara yang kedua adalah cara statis. Cara dinamis memiliki kelebihan dibandingkan dengan cara yang statis yaitu konten yang ada pada game tidak mudah dihafalkan oleh pemain. Konten tersebut dapat berupa dunia pada game, jalan cerita, aktor, musuh, peluru, serta, aspek lainnya. Cara yang statis memiliki kelemahan yaitu segala aspek yang ada pada game tidak akan pernah mengalami perubahan sehingga pemain dapat dengan mudah memenangkan permainan dengan menghafalakan aspek yang ada pada game. Salah satu cara untuk membuat sebuah game yang dinamis adalah dengan menerapkan metode Recursive Division dan metode Depth First Search(DFS). Metode Recursive Division adalah metode untuk membangun sebuah maze. Sedangkan metode Depth First Search adalah metode untuk mencari jalan keluar pada maze. Pada penelitian ini, kedua metode tersebut diterapkan pada pembuatan game yang berjudul Help Sakera Out. Game ini akan berjalan pada perangkat bergerak Android. Hasil penelitian menunjukkan bahwa metode Recursive Division cederung lebih cepat dari pada metode pembandingnya dan layout yang dihasilkan memiliki ciri khusus yaitu terdapat 1 jalan keluar pada tengah-tengah maze.
DAFTAR ISI
2.2.2.1. Cara Kerja Metode Recursive Division...6
2.2.3. Metode Depth First search(DFS)...9
2.2.4. Android...12
4.3. Penjelasan User Interface dan Menu-menu...28
4.4. Pengujian...36
4.4.1. Ujicoba pada Emulator WVGA 1024 MB...36
4.4.2. Ujicoba pada ponsel IRO 1024MB...40
4.4.3. Ujicoba Layout...42
BAB V...55
5.1. Kesimpulan...55
DAFTAR GAMBAR
Gambar 2.1 Maze 5x5 kosong...7
Gambar 2.2 Acak Dinding dan jalur pada maze...7
Gambar 2.3 Mengulangi langkah 2...8
Gambar 2.4: Hasil akhir maze...8
Gambar 2.5. Ilustrasi masalah...9
Gambar 2.6 Tandai node awal...10
Gambar 2.7 Langkah ke 2...10
Gambar 2.8 Langkah 3...11
Gambar 2.9 Hasil akhir DFS...11
Gambar 2.10 Flowchart Metode Depth First Search...12
Gambar 3.1 Flowchart Generate Level...16
Gambar 3.2 Halaman awal game...17
Gambar 3.3 Game Play...18
Gambar 4.5 Halaman informasi game...32
Gambar 4.6 Halaman Game Play...32
Gambar 4.7 Halaman bantun...33
Gambar 4.8 Halaman Pause...34
Gambar 4.9 Halaman menang...35
Gambar 4.10 Halaman kalah...36
Gambar 4.11 Ujicoba pada emulator...37
Gambar 4.12 Ujicoba pada ponsel...40
Gambar 4.13 Recursive Level 1...43
Gambar 4.14 Aldous Broder level 1...43
Gambar 4.15 Recursive Division level 2...43
Gambar 4.16 Aldous Broder level 2...43
Gambar 4.17 Recursive Division level 3...44
Gambar 4.18 Aldous Broder level 3...44
Gambar 4.20 Aldous Broder level 4...44
Gambar 4.21 Recursive Division level 5...45
Gambar 4.22 Aldous Broder level 5...45
Gambar 4.23 Recursive Division level 6...45
Gambar 4.24 Aldous Broder level 6...45
Gambar 4.25 Recursive Division level 7...46
Gambar 4.26 Aldous Broder level 7...46
Gambar 4.27 Recursive Division level 8...46
Gambar 4.28 Aldous Broder level 8...46
Gambar 4.29 Recursive Division level 9...47
Gambar 4.30 Aldous Broder level 9...47
Gambar 4.31 Recursive Division level 10...47
Gambar 4.32 Aldous Broder level 10...47
Gambar 4.33 Recursive Division level 11...48
Gambar 4.34 Aldous Broder level 11...48
Gambar 4.35 Recursive Division level 12...48
Gambar 4.36 Aldous Broder level 12...48
Gambar 4.37 Recursive Division level 13...49
Gambar 4.38 Aldous Broder level 13...49
Gambar 4.39 Recursive Division level 14...49
Gambar 4.40 Aldous Broder level 14...49
Gambar 4.41 Recursive Division level 15...50
Gambar 4.42 Aldous Broder level 15...50
Gambar 4.43 Recursive Division level 16...50
Gambar 4.44 Aldous Broder level 16...50
Gambar 4.45 Recursive Division level 17...51
Gambar 4.46 Aldous Broder level 17...51
Gambar 4.47 Recursive Division level 18...51
Gambar 4.48 Aldous Broder level 18...51
Gambar 4.47 Recursive Division level 19...52
Gambar 4.50 Aldous Broder level 19...52
Gambar 4. 49 Division level 20...52
DAFTAR TABEL
Tabel 2.1 Penelitian sebelumnya...5
Tabel 3.1 Daftar Algoritma generate maze...15
Table 3.2 Perbedaan pada tiap level...21
Table 4.1 Spesifikasi perangkat...28
Tabel 4.2 Ujicoba metode Recursive Division...38
Tabel 4.3 Ujicoba Metode Aldous Broder...39
Tabel 4.4 Ujicoba Metode Recursive Division...41
Tabel 4.5 Ujicoba pada metode Aldous Broder...42
Tabel 4.6 Ujicoba Layout...43 BAB I
PENDAHULUAN 1.1. Latar Belakang
Game merupakan sebuah hiburan yang saat ini banyak digemari oleh berbagai kalangan, mulai dari anak-anak hingga orang dewasa. Selain sebagai media untuk bersenang-senang, game juga dapat dijadikan sebagai media untuk belajar yang efektif seperti misalnya game matematika yang banyak beredar baik dikomputer maupun dperangkat bergerak Android.
Hingga saat ini,game yang dapat di unduh pada perangkat bergerak android jumlahnya banyak sekali dengan berbagai jenis game yang berbeda-beda. Jenis game puzzle yang bisa diunduh melalui situs store.google.com kebanyakan merupakan game puzzle yang mudah ditebak baik dalam pembuatan alur cerita pada game ataupun pembuatan dunia pada game. Pembutan game yang statis dapat membuat pemain dengan mudah menghafal game yang mereka mainkan sehingga game akan terasa tidak memiliki tantagan.
1.2. Perumusan Masalah
Dari uraian latar belakang yang telah dipaparkan, rumusan masalah yang dapat diangkat adalah sebagai berikut:
1. Bagaimana membuat sebuah maze dengan menggunakan metode Recursive Division?
2. Bagaimana mencari jalan keluar pada maze dengan menggunakan metode Depth First Search.
3. Bagaimana membuat sebuah game dinamis dengan menerapkan metode Recursive Division dan metode Depth First Search.
1.3. Tujuan dan Manfaat
Tujuan dan manfaat yang dapat diambil dari permasalahan diatas antara lain:
1. Tujuan
Tujuan pada peelitian ini adalah:
1. Membuat game dinamis yang layout pada game tidak mudah dihafalkan oleh pemain.
2. Menerapkan metode Recursive Division pada pembuatan layout game.
3. Menerapkan metode Depth First Search untuk mencari jalan keluar pada layout game.
2. Manfaat
Manfaat yang dapat diambil dari penelitian ini adalah terujinya sebuah metode dalam membangun maze pada sebuah game sehingga kecepatan yang dimiliki oleh metode Recursive Division dapat dimanfaatkan oleh peneliti senlajutnya.
1.4. Batasan Masalah
Batasan masalah dari penelitian ini antara lain:
1. Perangkat bergerak Android minimal yang digunakan adalah perangkat bergerak Android dengan versi 4.2(Jelly Bean).
2. Resolusi minimal perangkat bergerak Android yang digunakan adalah 320x480 pixel.
3. Ukuran maze minimal 2x2. 4. Ukuran maze maksimal 21x21.
1.5. Metodologi Penelitian
Adapun metodologi penelitian yang digunakan adalah sebagai berikut: 1. Menganalisa kebutuhan.
2. Studi litearatur dan pengumpulan data, yaitu melakukan tinjauan pustaka tentang konsep dan teori tentang metode yang digunakan dalam membangun game dinamis. 3. Perancangan dan desain game yang akan dibangun. 4. Implementasi metode bahasa pemrograman dalam
pembuatan game pada IDE Eclipse. 5. Uji coba program
6. Menganalisa kesalahan program. 7. Perbaikan kesalahan pada program
8. Penyusunan laporan, pada tahapan penulisan laporan disesuaikan pada sistematika penulisan penelitian yang ada.
1.6. Sistematika Penulisan
Sistematika pembahasan yang digunakan untuk menyelesaikan Tugas Akhir adalah sebagai berikut :
BAB I : PENDAHULUAN
Bab ini membahas tentang latar belakang penelitian, ruang lingkup, tujuan dan manfaat penulisan, metodologi penulisan, dan sistematika penulisan.
BAB II : STUDI PUSTAKA
Bab ini membahas mengenai landasan teori-teori pokok yang digunakan dalam menyusun penelitian ini. Landasan teori yang dibahas meliputi teori umum dan teori khusus.
BAB III : PERANCANGAN SISTEM
Dalam bab ini akan menjelaskan mengenai rancangan yang digunakan dalam pembuatan sistem
BAB IV : IMPLEMENTASI SISTEM
Bab ini akan menjelaskan mengenai hasil implementasi dari aplikasi.
BAB V : KESIMPULAN DAN SARAN
BAB II STUDI PUSTAKA 2.1. Tinjauan Pustaka
Tinjauan pustaka merupakan teori dasar dan teori pendukung diadakannya penelitian ini. Teori-teori tersebut antara lain:
2.2.1. Penelitian Sebelumnya
Terdapat 2 penelitian sebelumnya yang membahas tentang implementasi metode dalam membuat maze. Penlitian ini dapat dilihat pada tabel 2.1.
Tabel 2.1 Penelitian sebelumnya
Penelitain ini berfokus pada pembuatan maze
Pada penelitian ini, maze digunakan sebagai dunia pada game. Player harus
2.2. Landasan Teori
Landasan teori merupakan teori dasar yang digunakan dalam penelitian ini. Terdapat beberapa teori dan metode yang dijelaskan, antara lain:
2.2.1. Maze
“Maze merupakan koleksi jalan biasanya dari pintu masuk menuju pintu keluar” [ CITATION Her00 \l 1057 ] . Maze sering juga dikenal dengan kata labirin. Labirin dan maze memiliki kesamaan, namun keduanya adalah suatu hal yang berbeda. Maze memiliki jalan yang berliku-liku dan terdapat percabangan pada beberapa jalan dan memiliki beberapa jalan buntu. Labirin juga merupakan jalan yang berliku-liku, namun labirin tidak memiliki percabangan pada jalannya dan juga tidak terdapat jalan buntu. Terdapat beberapa metode yang dapat digunakan untuk membangun maze. Masing-masing metode memiliki kelebihan dan kekurangan. Pada penelitan ini maze digunakan untuk membangun layout pada game yang berentuk jalan. Metode yang digunakan adalah metode Recursive Division. Selain metode untuk membangun maze, digunakan juga sebuah metode yang dapat mencari jalan keluar pada maze, yaitu metode Depth First Serach(DFS) .
2.2.2. Metode Recursive Division
Metode Recursive Division adalah metode dalam pembuatan maze. dalam pembuatan maze, metode ini memiliki cara yang unik dari metode-metode yang ada. Metode ini berfokus pada pembuatan dinding . Hal ini sangat berbeda dengan kebanyakan metode yang berfokus pada pembuatan jalur. Meskipun dalam membangun maze cenderung tidak sama dengan metode yang lainnya, metode ini juga memiliki kesamaan dengan metode yang lain, yaitu dalam membangun jalannya.
2.2.2.1. Cara Kerja Metode Recursive Division
Cara kerja metode Recursive Division dapat dilihat pada ilustrasi gambar 2.1 hingga gambar 2.4. Berikut penjelasan dari masing-asing gambar.
Gambar 2.1 Maze 5x5 kosong
2. Gambar 2.2: acak sebuah dinding kemudian acak juga sebuah jalur pada dinding yang telah terbentuk. Maze akan terbagi menjadi 2 bagian.
Gambar 2.2 Acak Dinding dan jalur pada maze.
Gambar 2.3 Mengulangi langkah 2.
4. Gambar 2.4: Proses rekursif dihentikan karena semua area sudah tidak dapat dibagi 2.
2.2.3. Metode Depth First search(DFS)
Metode Depth First Search merupakan sebuah metode yang dapat digunakan untuk mencari jalur. jalur yang dimaksud dapat berupa jalur pada maze, labirin atau sebuah percabangan tertentu.
2.2.3.1. Cara Kerja Metode Depth First Search
Terdapat sebuah kasus yang dapat dilihat pada gambar 2.5. Titik awal adalah node 1 sedangkan titik tujuan adalan node 5.
Gambar 2.5. Ilustrasi masalah
Gambar 2.6 Tandai node awal
Langkah selanjutnya adalah dengan mengecek apakah node yang sedang aktif merupakan node tujuan, jika bukan maka lihat sebelah kiri node aktif. Jika terdapat sebuah node disebelah kiri node yang sedang aktif, maka kunjungi dan tandai. Ilustrasi ini dapat dilihat pada gambar 2.7.
Gambar 2.7 Langkah ke 2
disebelah kanan node yang sedang aktif maka node yang sedang aktif dinaikkan 1 dan langusng pindah ke node sebelah kanan. langkah selanjutnya adalah dengan mengulangi langkah 1 dan langkah 2 hingga ditemukan titik tujuan. Ilustrasi ini dapat dilihat pada gambar 2.8.
Gambar 2.8 Langkah 3
Langkah terakhir adalah jika titik tujuan sudah ditemukan, maka proses pencarian titik tujuan dihentikan dan jalur yang dilalui diberikan tanda. Seperti yang dapat dilihat pada gambar 2.9.
Langkah-langkah diatas dapat dibuat diagram alur seperti pada gambar 2.10.
Gambar 2.10 Flowchart Metode Depth First Search
2.2.4. Android
Google, Pada November 2007 Google mengumumkan bahwa mereka sedang mengembangkan ponsel Google dengan OS(Operating System) mobile terbaru yang mereka namai Android. OS Android ini sebenarnya didasarkan pada kernel Linux dan dirancang oleh Open Handset Alliance yang terdiri dari sekelompok puluhan pembuat hardware, carrier dan perusahaan terkait perangkat mobile lainnya, diantaranya Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, Nvidia, dll. Open Handset Alliance dibentuk untuk mengembangkan Android yang bersifat open source yang sourcenya di berikan secara gratis bagi para pengembang (developer) .
Sampai saat ini, Android mengeluarkan hingga beberapa versi antara lain:
1. Tanpa nama (Android versi 1.01.1) 2. Cupcake (Android versi 1.2 – 1.5) 3. Donut (Android versi 1.6) 4. Eclair (Android versi 2.0 – 2.1) 5. Froyo (Android versi 2.2 – 2.2.3) 6. Gingerbread (Android versi 2.3 - 2.4) 7. Honeycomb(Android versi 3.0 – 3.2) 8. Ice Cream Sandwich (Android versi 4) 9. Jelly Bean (Android versi 4.1-4.3) 10. Kikat (Android versi 4.4)
11. Lollipop (Android versi 5.0)
12. Android Marshmallow (Android versi 6.0) 2.2.5. Metode Pembanding
BAB III
PERANCANGAN SISTEM 3.1. Algoritma Generate Maze
Algoritma generate mazeadalah algoritma yang digunakan untuk membangun maze. terdapat bebreapa algortima yang dapat digunakan untuk membangun maze. Algoritma-algoritma yang dimaksud dapat dilihat pada tabel 3.1.
Tabel 3.1 Daftar Algoritma generate maze
Algoritma
Tipe
Fokus
Tabel 3.1 merupakan hasil penelitian yang dilakukan oleh amstrolog. Ujicoba dilakukan dengan menjalankan masing-masing metode pada ukuran maze sebesar 100x100[Kasih referensi]. Pada penelitian ini, metode yang digunakan adalah metode Recursive Division dimana metode ini merupakan metode tercepat dari beberapa metode yang lainnya. Berikut Algoritma Recursive Division.
1. Buat matriks dengan ukuran NxM 2. Buat tembok pada bagian terluar matriks.
3. Buat tembok secara vertikal pada posisi x=N/2 sepanjang M 4. Buat 1 jalan secara acak pada tembok yang sudah selesai
dibuat.
5. Matriks akan terbagi menjadi 2 bagian. Bagian pertama terletak pada x1=0, x2=N/2, y1=0 dan y2=M. Bagian 2 terletak pada posisi x1=n/2+1, x2=N, y1=0 dan y2=M.
6. Buat tembok secara horisontal pada posisi x1=0, x2=N/2, y1=M/2 dan y2=M/2.
7. Buat 1 jalan secara acak pada tembok yang sudah selesai dibuat.
3.2. Flowchart Generating Level
Generating Level merupakan bagian yang penting pada game. Ada bagian ini akan dijelaskan level yang terbentuk pada game melalui diagram alur yang dapat dilihat pada gambar 3.1.
Gambar 3.1 Flowchart Generate Level
1. Saat pemain memainka game pada level pertama, level secara otomatis diatur menjadi level 1.
2. Sistem akan melakukan pengecekan apakah sudah level maksimum atau pemain dianggap sudah memilih level selanjutnya . dalam hal ini masih dianggap benar semua. 3. Sistem akan memanggil fungsi GenerateMaze untuk
pembuatan layout pada game.
4. Sistem akan membuat layout pada game berdasarkan hasil dari fungsi GenerateMaze.
5. Pemain akan memainkan game.
6. Pemain akan ditanya melanjutkan ke permainnan selanjutnya atau tidak. Jika pemain memilih iya, maka pemain akan mendapatkan level baru.
7. Langkah diulangi hingga pemain tidak lagi memilih untuk melanjutkan game atau level sudah maksimum.
3.3. Skenario Game
Pada bagian ini akan dibahas mengenai setiap modul yang dibangun pada game diantaranya:
3.3.1. Home
Gambar 3.2 Halaman awal game
Berikut penjelasan dari gambar 3.2
1. Tombol START
Tombol ini berfungsi untuk memulai permainan. 2. Tombol Sett
Tombol ini berfungsi untuk menuju halaman pengaturan. 3. Tombol About
Dignakan untuk menuju halaman tentang game. 4. Tombol LVL DWN
Digunakan untuk menurunkan level yang Ingin dimainkan. 5. Tombol LVL UP
Digunakan untuk menambah level yang ingin dimainkan. 3.3.2. Game Play
Gambar 3.3 Game Play
Berikut penjelasan dari gambar 3.3
1. Warna hitam merupakan maze yang terbentuk. Maze ini merupkan layout daru game. Layout ini berfungsi sebagai jalur yang harus dilewati oelh aktor pada game.
2. Lingkaran berwarna merah muda merupakan musuh yang harus dihadapi oleh aktor pada game.
3. Lingkaran berwarna hijau merupakan aktor. Pemain harus menggerakkan aktor pada game untuk memenangkan permainan.
3.3.3. Setting
Gambar 3.4 Halaman Setting
Terdapat tiga menu yang dapat dgunakan oleh pemain saat menekan tombol setting yang ada dihalama home antara lain:
1. Tombol Metode
Tombol ini berfungsi untuk memilih metode yang digunakan untuk membangun layout pada game.
2. Tombol Reset
Digunakan untuk mengembalikan nilai level dan nilai skor pada game.
3. Tombol Silent
3.4. MockUp Game
pada bagian ini akan digambarkan rancangan game play mulai dari tata letak layout hingga tataletak pemain, skor, musuh, dan jumlah peluru yang dimiliki oleh pemain. Gambar 3.5 merupakan mockup dari game.
Gambar 3.5 Mockup game
Berikut penjelasan daari gambar 3.5.
1. Gambar 03 pada bagian kiri atas gambar merupakan informasi peluru yang dimiliki oleh pemain.
2. Tombol tanda tanya pada bagian atas digunakan untuk mencari jalan keluar.
3. Tombol pause pada bagian kanan atas digunakan untuk menghentikan sementara permainan.
4. Kotak merupakan aktor dari game yang harus digerakkan oleh pemain.
6. Lingkaran berwarna merah merupakan tombol untuk menembakkan peluru.
7. Panah berwarna merah merupakan tombol yang dapat digunakan oleh pemain untuk menggerakkan aktor paa game. Tujuan dari game ini adalah pemain harus menggerakkan aktor pada game untuk menuju jalan keluar tanpa tertangkap oleh dengan melewati layout yang berbetuk maze. ukuran maze yang terbentuk juga mempengaruhi jumlah musuh yang keluar. Perbedaan ukuran maze dan jumlah msuh ini dapat dilihat pada tabel 3.2.
Table 3.2 Perbedaan pada tiap level Level Ukuran Maze Jumlah Musuh
1 2x2 2
Tabel 3.2 Perbedaan pada tiap level Level Ukuran Maze Jumlah Musuh
BAB IV
IMPLEMENTASI SISTEM 4.1. Implementasi Bahasa Pemrograman
Implementasi bahasa pemrogram merupakan implemetsi semua metode terhadap bahasa pemrograman yang digunakan yaitu bahasa java. Hasil implentasi antara lain:
1. Implementasi metode Reursive Division
Baris program dibawah ini merupakan baris program dari
Random position = new Random();
recursive(0, 0, n, n, position.nextBoolean()); maze[0][1] = 0;
maze[maze.length - 1][maze.length - 2] = 0;
}
int rand = Clear.nextInt(x2 - x1);
int rand = Clear.nextInt(y2 - y1); rand = (rand * 2) + (y1 * 2) + 1;
public void setMaze(int x, int y) { maze[x][y] = 2;
}
2. Implementasi metode Depth First Search
private void setVisit() {
public void setNode(int x,int y) { visit[x][y] = 1; x = node.get(node.size() - 1).x; y = node.get(node.size() - 1).y; }
for (int i = 0; i < node.size(); i++) {
maze.setMaze(node.get(i).x, node.get(i).y); }
}
3. Implementasi metode Aldous Broder
} }
4.2. Lingkungan Ujicoba
Lingkungan pengujian aplikasi meliputi perangkat keras dan perangkat lunak yang digunakan dalam menjalankan game. Pada tabel 4.1 disebutkan spesfikasi perangkat yang telah digunakan untuk
Sistem Operasi : Android 4.2 Perangkat lunak
4.3. Penjelasan User Interface dan Menu-menu
Pada bagian ini terdapat tampilan yang perlu dipahami oleh pemain antara lain:
1. Home
Gambar 4.1 Halaman Home 1. Tombol Play
Tombol ini berfungsi untuk memainkan game. 2. Tombol Informasi
Tombol ini berfungsi untuk melihat inforasi seputar game. 3. Tombol Setting
Tombol ini berfungsi untuk menuju halaman setting. 4. Tomol Arah
Tombol ini berfungsi untuk menurunkan atau menaikkan level. 2. About
Gambar 4.2 Halaman About
3. Setting
Halaman ini berfungsi untuk mengatur beberapa hal yang ada pada game. Halaman ini dapat dilihat pada gambar 4.3.
Berikut penjelasan dari ketiga tombol yang ada pada gambar 4.3. 1. Tombol Metode
Tombol ini berfungsi untuk mengubah metode yang digunakan untuk membut layout pada game.
2. Tombol Reset
Tombol ini berfungsi untuk mengubah nilai skor menjadi 0 disemua level dan mengubah level yang terbua hanya level 1. 3. Tombol Volume
Tombol ini berfungsi untuk mematikan dan menyalakan musik. 4. Tombol Kembali
Tombol ini berfungsi untuk kembali kehalaman home. 4. Loading Screen
Loading screen adalah sebuah halaman yang berfungsi untuk memanggil gambar yang akan ditampilkan di game. Halaman loading screen dapat dilihat pada gambar 4.4.
Gambar 4.4 Halaman Loading
5. Info Game Play
level yang sedang dimainkan. Halaman ini dapat dilihat pada gambar 4.5.
Gambar 4.5 Halaman informasi game
6. Game Play
Gambar 4.6 Halaman Game Play
Berikut penjelasan dari gambar 4.6. 1. Tombol Arah
Tombol ini berfungsi untuk menggerakkan aktor pada game. 2. Tombol Tembak
Tombol ini berfungsi untuk mengeluarkan peluru. 3. Tombol Pause
Untuk menhentikan sementara permainan. 4. Tombol Bantuan
Menunjukkan jalan keluar pada layout. 7. Help Screen
Gambar 4.7 Halaman bantun
Bantuan disini diwakili oleh kotak berwarna kuning tua yang terbentuk dari posisi aktor hingga jalan keluar.
8. Pause Screen
Gambar 4.8 Halaman Pause
Terdapat beberapa tombol yang dapat digunakan pada halaman pause ini, antaranya:
1. Tombol Main menu
Tombol ini berfungsi untuk kembali kehalaman home. 2. Tombol Restart
Tombol ini berfungsi untuk membuat layout baru pada level yang sedang dimainkan.
3. Tombol Lanjut
Tombol ini berfungsi untuk melanjutkan permainan yang sepat dihentikan tanpa membuat layout baru pada game.
9. Win Screen
Gambar 4.9 Halaman menang
Terdapat beberapa tombol yang dapat digunakan oleh pemain antara lain:
1. Tombol Main Menu
Tombol ini berfungsi untuk kembali kehalaman home. 2. Tombol Restart
Tombol ini berfungsi untuk meminkan kembali level yang sama dengan layout yang berbeda.
3. Tombol Lanjut
Tombol in berfungsi untuk melanjutkan permainan dengan level yang baru dan layout yang baru pula.
10. Lose Screen
Gambar 4.10 Halaman kalah
Pada gambar 4.10, terdapat 2 tombol yang dapat digunakan oleh pemain antara lain:
1. Tombol Main Menu
Tombol ini berfungsi untuk kembali kehalaman awal game. 2. Tombol Restart
Tombol ini berfungsi untuk mengulang game tanpa merubah layout yang sudah dimainkan oleh pemain.
4.4. Pengujian
Ujicoba dilakukan untuk melihat kecepatan yang dimiliki oleh metode Recursive Division dan metode Aldous Broder. Selain untuk melihat kecepatan, ujicoba dilakukan untuk melihat layout yang dihasilkan oleh masing-masing metode.
4.4.1. Ujicoba pada Emulator WVGA 1024 MB
Gambar 4.11 Ujicoba pada emulator
Tabel 4.2 Ujicoba metode Recursive Division
Recursive Division Emulator
Tabel 4.3 Ujicoba Metode Aldous Broder
Recursive Division Emulator
Pada percobaan ini, metode yang digunakan adalah metode Aldous Broder. Kecepatan terbaik adalah pada saat level 1 yaitu dengan waktu 0.02 detik sedangkan waktu terlama yang dibuthkan oleh metode ini adalah pada saat level 18 yaitu selama 4.5 detik.
Dari hasil ujicoba pada emulator ini, terlihat bahwa metode Recursive Division memiliki kecepatan yang lebih baik dari pada metode Aldous Broder
4.4.2. Ujicoba pada ponsel IRO 1024MB
Percobaan kali ini dilakukan pada ponsel IRO. Ujicoba dilakukan dengan menjalankan kedua metode secara bergantian. Masing-masing metode djalankan 5 kali pada masing-masing level. Gambar hil percobaan dapat dilihat pada gambar 4.12.
Gambar 4.12 Ujicoba pada ponsel
Tabel 4.4 Ujicoba Metode Recursive Division
Recursive Division Emulator
Tabel 4.5 Ujicoba pada metode Aldous Broder
Recursive Division Emulator
Hasil percobaan pada tabel 4.5 menunjukkan kecpatan metode Aldous Broder pada ponsel lebih lambat dibandingkan metode Recursive Division. Hal ini dapat dilihat pada kecepatan terbaik yang dimiliki oleh metode Aldous Brode adalah selama 0.0016 pada level 1. 4.4.3. Ujicoba Layout
Tabel 4.6 Ujicoba Layout
Level Recursve Division Aldous Broder 1
Gambar 4.13 Recursive Level 1
Gambar 4.14 Aldous Broder level 1
2
Gambar 4.15 Recursive
3
Gambar 4.17 Recursive
Division level 3 Gambar 4.18 level 3Aldous Broder 4
Gambar 4.19 Recursive
5
Gambar 4.21 Recursive
Division level 5 Gambar 4.22 level 5Aldous Broder 6
Gambar 4.23 Recursive
7
Gambar 4.25 Recursive
Division level 7 Gambar 4.26level 7 Aldous Broder 8
Gambar 4.27 Recursive
9
Gambar 4.29 Recursive
Division level 9 Gambar 4.30 Aldous Broderlevel 9 10
Gambar 4.31 Recursive
11
Gambar 4.33 Recursive
Division level 11 Gambar 4.34 level 11Aldous Broder 12
Gambar 4.35 Recursive
13
Gambar 4.37 Recursive
Division level 13 Gambar 4.38 level 13Aldous Broder 14
Gambar 4.39 Recursive
15
Gambar 4.41 Recursive
Division level 15 Gambar 4.42 level 15Aldous Broder 16
Gambar 4.43 Recursive
17
Gambar 4.45 Recursive
Division level 17 Gambar 4.46 level 17Aldous Broder 18
Gambar 4.47 Recursive
19
Gambar 4.47 Recursive
Division level 19 Gambar 4.50 level 19Aldous Broder 20
Gambar 4. 49 Division
level 20 Gambar 4.52 level 20Aldous Broder
BAB V Search untuk mencari jalan keluar pada layout.
2. Metode Recursive Division memiliki kecepatan lebih stabil pada ponsel dengan kecepatan trebaik pada level 1 yaitu selama 0.000013 detik.
3. Metode Recursive Division lebih cepat dibandingkan dengan metode Aldous Broder dengan perbedaan kecepatan selama 0.0015 detik pada kecepatan terbaik kedua metode dan 0.88 pada kecepatan terlamban kedua metode
4. Layaout yang dihasilkan oleh metode Recursive Division memiliki kelemahan yaitu hanya tredapat 1 jalan pada tengah-tngah layout, hal ini dapat membuat pemain dengan mudah menemukan jalan keluar pada alayout.
5. Metode Aldous Broder layout yang dihasilkan beragam, akan tetapi karena proses pembuatanya secara acak, jalan keluar yang dihasilkan dapat berupa huruf L saja sehingga pemain tidak perlu berfikir untuk mencari jalan keluar pada layout. 5.2. Saran
DAFTAR PUSTKA
[1] M. K. Anwar, "Implementasi Algoritma Prim Dan Depth First Search Pada Pembuatan Maze Game Berbasis Android OS Mobile," 2012.
[2] N. Maulida, "Rancang Bangun Game Maze Sebagai Game Edukasi Bahasa Inggris Pada Anak.," 2015.
[3] W. D. Pullen, "Maze Classification," 20 November 2015. [Online]. Available: http://www.astrolog.org/labyrnth/algrithm.htm. [Accessed 30 Nopember 2015].
LAMPIRAN 1. Program pemilihan algortiam pada game
public class MazeGenerator {
private final int RECURSIVE = 0;
private final int BRODER = 1;
private final int RANDOM = 2;
private long start, end;
private int maze[][];
public MazeGenerator(int level, int
metode) {
start = System.nanoTime(); ChooseMethod(level, metode); end = System.nanoTime(); Log.d("Waktu Generate : ", ""
+ (float) ((float) (end - start) / (float) 1000000000)
+ " Detik"); }
private void ChooseMethod(int level, int
}
public void setMaze(int x, int y) { maze[x][y] = 2;
}
public int[][] getMaze() {
return maze; }
}
2. Program peletakan dan pergerakan musuh
public class Enemie extends GameObject {
MazeGenerator maze;
int direction, xM, yM, rotation;
float timer;
public final float width, height;
public Enemie(float x, float y, float w,
float h, MazeGenerator maze,
int xM, int yM) {
// TODO Auto-generated constructor stub
public void getDirection() {
direction = 1;
public void Moved() {
xM--;
public void update(float deltaTime) { timer += deltaTime;
if (timer >= 1) { Moved();
bounds.lowerLeft.set(position).sub(bounds.wid th / 2-(width/2), bounds.height /
2-(height/2));
public class Peluru extends GameObject {
public final float width, height;
public int rotation;
public Peluru(float x, float y, float w,
float h, int rotation) {
// TODO Auto-generated constructor stub
super(x, y, w, h);
this.height = h;
this.rotation = rotation; }
public void update() {
switch (rotation) { th / 2-(width/2), bounds.height /
2-(height/2)); }