Pelita Informatika Budi Darma, Volume : V, Nomor: 2, Desember 2013
SSN : 2301-9425
PERANCANGAN APLIKASI GAME LABIRIN DENGAN MENGGUNAKAN ALGORITMA BACKTRACKING Rina Br Sirait (0911893) Mahasiswa Program Studi Teknik Informatika, STMIK Budidarma Medan Jl. Sisingamangaraja No.338 Simpang Limun Medan www.stmik-budidarma.ac.id //Email:
[email protected] ABSTRAK Permainan sering dilakukan masyarakat pada jaman sekarang adalah permainan yang dilakukan di komputer dan di handphone seperti game labirin. Labirin adalah sebuah permainan mencari jalan keluar dimana dalam perjalanan labirin ini banyak mendapat rintangan/halangan untuk sampai pada tujuan tetapi dalam menempuh perjalanan tersedia bonus score apabila dapat menghemat waktu yang ditentukan agar mendapat bonus score dan dapat menaikkan kelevel berikutnya maka untuk mencapai tujuan diperlukan sebuah solusi, solusi yang dipakai adalah algoritma backtracking. Algoritma Backtracking (runut-balik) merupakan sebuah algoritma yang bisa digunakan untuk membuat aplikasi game labirin karena cara kerjanya mencari jalan keluar yang bertujuan untuk menentukan jalur yang tepat untuk mencapai tujuan yang telah ditetapkan. Selama proses penentuan jalur tersebut, jika menemui jalan buntu maka akan dilakukan proses backtrack sampai kembali menemukan jalur yang tepat untuk mencapai tujuan. Proses mencari jalan keluar permainan labirin dengan cara membentuk lintasan dari akar ke daun dan simpul-simpul yang sudah dilahirkan dinamakan simpul hidup, jika lintasan yang diperluas yang sedang dibentuk tidak mengarah ke solusi, maka simpul tersebut “dibunuh” sehingga menjadi simpul mati (dead node). Simpul yang sudah mati ini tidak akan diperluas lagi. Kata kunci : Aplikasi Game Labirin, Algoritma Backtracking
1. Pendahuluan 1.1 Latar Belakang Masalah Permainan Labirin adalah sebuah permainan mencari jalan keluar dimana dalam perjalanan labirin ini banyak mendapat rintangan/halangan untuk sampai pada tujuan tetapi dalam menempuh perjalanan tersedia bonus score apabila dapat menghemat waktu yang ditentukan. Pada saat ini masih banyak user bingung mencari jalan keluar, bagaimana cara mendapat bonus score dan dapat menaikkan kelevel berikutnya maka untuk mencapai tujuan diperlukan sebuah solusi, solusi yang dipakai adalah algoritma backtracking. Algoritma Backtracking (runut-balik) merupakan sebuah algoritma yang bisa digunakan untuk membuat aplikasi game labirin karena cara kerjanya mencari jalan keluar yang bertujuan untuk menentukan jalur yang tepat untuk mencapai tujuan yang telah ditetapkan. Selama proses penentuan jalur tersebut, jika menemui jalan buntu maka akan dilakukan proses backtrack sampai kembali menemukan jalur yang tepat untuk mencapai tujuan. Algoritma backtracking (runut balik) pada persoalan ini dipandang sebagai pembentukan pohon ruang status. Akar dari pohon adalah labirin awal, dan anak-anaknya adalah labirin yang dihasilkan dari pergerakan satu langkah dari labirin semula. 1.2 Perumusan Masalah
Adapun rumusan masalah dalam hal ini adalah : 1. Bagaimana proses mencari jalan keluar permainan game labirin? 2. Bagaimana menerapkan algoritma backtracking mampu untuk merancang logika permainan game labirin yang dibuat? 3. Bagaimana merancang aplikasi game labirin 2D dengan penerapan dari algoritma backtracking? 1.3 Batasan Masalah Atas pertimbangan waktu dan keterbatasan kemampuan yang dimiliki penulis agar pembahasan yang dilakukan tidak menyimpang dari permasalahan yang ada, maka penulis melakukan pembatasan masalah hanya : 1. Rancangan permainan yang dibuat merupakan rancangan permainan labirin menggunakan Java (J2me). 2. Algoritma yang dipergunakan dalam aplikasi adalah algoritma backtracking. 3. Waktu dibatasi dalam 45 detik/level dan secara otomatis bertambah score 4. Aplikasi bersifat stand alone artinya tidak bisa dijalankan dalam jaringan 2. Landasan Teori 2.1 Game Labirin 2D Permainan game Labirin adalah suatu jenis permainan yang terlihat sederhana namun
Perancangan Aplikasi Game Labirin Dengan Menggunakan Algoritma Backtracking. Oleh : Rina100 Br Sirait
Pelita Informatika Budi Darma, Volume : V, Nomor: 2, Desember 2013
mempunyai banyak teka-teki logika untuk menyelesaikannya. Dimana tampilannya dua dimensi (panjang dan lebar), hanya dapat dilihat dari satu sudut perspektif. Aplikasi permainan labirin 2D ini bersifat single-user. Tingkatan atau level bermain pada game labirin 2D ini terletak pada penelusuran rute perjalanan yang harus dilalui oleh seorang pemain dalam menemukan jalur mana yang tepat. Object digerakkan dengan menggunakan tombol pada keyboard dengan menekan tombol panah atas untuk menggerakan maju ke depan, tombol panah bawah untuk menggerakan mundur ke belakang, tombol panah kiri untuk menggerakan belok ke kiri, tombol panah kanan untuk menggerakan belok ke kanan. Hal ini dilakukan sampai object menemukan jalan keluar dan akan naik ke level berikutnya.
Gambar 1 : Game Labirin 2D 2.2 Algoritma Backtracking Runut-balik (backtracking) adalah algoritma yang berbasis pada Depth First Search (DFS) untuk mencari solusi persoalan secara lebih cepat. Runutbalik, yang merupakan perbaikan dari algoritma brute-force, secara sistematis mencari solusi persoalan di antara semua kemungkinan solusi yang ada. Dengan langkah ini tidak perlu memeriksa semua kemungkinan solusi yang ada. Akibatnya waktu pencarian dapat dihemat. Runut- balik lebih alami dinyatakan dengan algoritma rekursif. Kadang disebutkan pula bahwa runut-balik merupakan bentuk tipical dari algoritma rekursif. Runut-balik pertama kali diperkenalkan oleh D. H. Lehmer pada tahun 1950. R.J Walker, Golomb, dan Baumert menyajikan uraian umum tentang runutbalik dan penerapannya pada berbagai persoalan. Saat ini, algoritma runut-balik banyak diterapkan untuk program games (permainan) menemukan jalan keluar dalam sebuah game labirin, dan masalah-masalah pada bidang kecerdasan buatan (artificial intelligence). 2.3 Pencarian Solusi Algoritma Backtracking Pencarian solusi dengan menggunakan algoritma backtracking maka menggunakan pohon ruang status. Langkah-langkah pencarian solusi adalah sebagai berikut :
SSN : 2301-9425
1. Solusi dicari dengan membentuk lintasan dari akar ke daun. Simpul yang sudah dilahirkan dinamakan simpul hidup dan simpul hidup yang diperluas dinamakan simpul-E (Expand- node). 2. Jika lintasan yang diperoleh dari perluasan simpul-E tidak mengarah ke solusi, maka simpul itu akan menjadi simpul mati dimana simpul itu tidak akan diperluas lagi. 3. Jika posisi terakhir ada di simpul mati, maka pencarian dilakukan dengan membangkitkan simpul anak yang lainnya dan jika tidak ada simpul anak maka dilakukan backtracking ke simpul orang tua. 4. Pencarian dihentikan jika telah menemukan solusi atau tidak ada simpul hidup yang dapat di diperluas. 3. Pembahasan 3.1 Analisa Game Labirin 2D Game labirin 2D sebuah permainan logika yang mempunyai banyak teka-teki yang meminta user untuk memecahkan/ menyelesaikan masalah didalam game. Dimana tampilannya dua dimensi (panjang dan lebar), hanya dapat dilihat dari satu sudut perspektif. Dalam permainan labirin 2D ini mempunyai menu seperti pada level baru menu ini berfungsi sebagai pengaturan ulang atau meRestart permainan bisa juga disebut sebagai menu untuk mengatur ulang labirinnya tersebut tetapi masih dalam tingkat kesulitan yang sama. Langkah – langkah yang harus dilakukan dalam game labirin 2D yaitu : 1. Buka aplikasi game labirin 2. Jalankan game dengan mengklik tombol Click Here To Play 3. Disini ada 5 (lima) tombol yaitu : a. Play, merupakan tombol untuk masuk/ memulai kedalam permainan. b. Level, merupakan tingkat permainan labirin. c. Score, merupakan hasil dari pada permainan game labirin. d. Save, merupakan untuk menyimpan node dimana agar permainan yang dimainkan user tidak perlu balik keawa. e. Quit, merupakan tombol untuk keluar dari permainan labirin. 3.2 Analisa Pencarian Solusi Game Labirin dengan Algoritma Backtracking Algoritma Backtracking mencari solusi persoalan diantara kemungkinan solusi yang ada tidak perlu melalui path yang berulang-ulang sehingga menghemat waktu. Langkah – langkah algoritma backtracking mencari solusi adalah sebagai berikut : 1. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan yang dipakai adalah mengikuti metode depth first search (DFS). Simpul-simpul yang sudah dilahirkan dinamakan simpul hidup dan simpul hidup
Perancangan Aplikasi Game Labirin Dengan Menggunakan Algoritma Backtracking. Oleh : Rina101 Br Sirait
Pelita Informatika Budi Darma, Volume : V, Nomor: 2, Desember 2013
yang sedang diperluas dinamakan simpul-E. Simpul di nomori dari atas ke bawah sesuai dengan kelahirannya. 2. Jika lintasan yang diperluas yang sedang dibentuk tidak mengarah ke solusi, maka simpul-E tersebut “dibunuh” sehingga menjadi simpul mati (dead node). Simpul yang sudah mati ini tidak akan diperluas lagi. 3. Jika pembentukan lintasan berakhir dengan simpul mati, maka proses pencarian diteruskan dengan membangkitkan simpul anak lainnya. Bila tidak ada lagi simpul anak yang dibangkitkan, maka pencarian solusi dilanjutkan dengan melakukan runut-balik (backtracking) ke simpul hidup terdekat. Selanjutnya simpul ini menjadi simpul-E yang 25 terbaru. 4. Pencarian dihentikan bila telah ditemukan solusi atau tidak ada lagi simpul hidup untuk runut balik (backtracking). Gambar dibawah ini adalah contoh kasus Pohon solusi, yang sederhana dengan menggunakan Algoritma backtracking sebagai langkah pencarian solusi.
Gambar 2 : Proses Algoritma Backtracking Pada Pohon Solusi Keterangan penyelesaian : 1. Pohon diatas menggambarkan solusi pada suatu permasalahan, yang membentuk lintasan dari akar ke daun, simpul yang dilahirkan dinamakan simpul hidup (7, 8, 10, 11, 12). 2. Simpul hidup bisa diperluas, jika tidak dapat diperluas atau tidak mengarah ke solusi maka simpul itu akan menjadi simpul mati (7, 8, 11, 10) (simpul yang diberi tanda silang adalah simpul mati). Maka pencarian dilakukan dengan membangkitkan simpul anak yang lainnya, pencarian dihentikan setelah menemukan solusi (12) (yang diberi warna pada gambar diatas). 3. Untuk penyelesaian gambar pohon diatas digunakan algoritma backtracking suatu permasalahan untuk mencapai solusi 7 (tujuh),
SSN : 2301-9425
maka jalan yang ditempuh adalah (1, 2, 3, 4, 5, 6, 7), demikian juga dengan solusi-solusi yang lain. Algoritma backtracking akan memeriksa mulai pohon dari solusi yang pertama yaitu solusi 7 (tujuh) jika 7 (tujuh) bukan solusi yang layak maka algoritma backtracking akan melanjutkan kesolusi 8 (delapan) jalan yang ditempuh adalah (1, 2, 3, 8), jika bukan solusi yang optimal maka algoritma backtracking akan melanjutkan ke solusi 10 (sepuluh) jalan yang ditempuh adalah (1, 2, 3, 9, 10), jika bukan solusi yang layak juga, algoritma backtracking kembali lagi mencari solusi ke 11 (sebelas). Solusi 10 (sepuluh) dan 11 (sebelas) memiliki jalan yang sama yaitu (1, 2, 3) daripada memeriksa ulang ke (1, 2, 3) hasilnya disimpan dan langsung memeriksa kesolusi 11 (sebelas), jika solusi 11 (sebelas) bukan solusi. 4. Algoritma backtracking kembali mencari solusi sampai mendapat yang benar-benar solusi yang dituju (optimal) yaitu solusi 12 (dua belas). Gambar dibawah ini adalah Tampilan menu game labirin sesuai gambar pohon solusi diatas diberi tanda nomor node (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) : 3.3 Perancangan Game Labirin Form level merupakan form awal permainan, pintu masuk labirin dimulai dari sebelah kiri atas tetapi dengan akhir dari permainan labirin tidak ditetapkan pada pintu manapun karena pada setiap level berbeda-beda jalan keluar yang akan ditempuh. Pada level 1 labirin tidak ada rintangan yang dihadapi tetapi tetap berada pada batas waktu yang ditentukan dan jika dapat menghemat waktu dengan maksimal maka tersedia bonus score. Jika dalam 10 detik mendapat bonus score 5000, 3000/20 detik, 1500/30 detik dan 1000/45 detik. Form ini berisikan menu play, menu level, menu score, menu save dan menu quit. Form level 2 (dua) berisikan menu play, menu level, menu score, menu save dan menu quit. Rancangan form ini tidak ada bedanya dengan level 1 (pertama), tetapi dalam level 2 (dua) ini jalan yang ditempuh semakin rumit karena terdapat rintangan yang berjalan mengejar labirin untuk menghambat labirin menemukan solusi atau jalan keluar tetapi jika rintangan yang satu dengan rintangan yang lainnya saling bertemu maka rintangan akan pecah (menghilang) dengan sendirinya, maka rintangan yang akan dihadapi labirin akan berkurang. Pada level 2 ini terdapat obat yang bisa dimakan oleh labirin untuk menambah bonus, jika obat bersentuhan dengan rintangan maka akan melemahkan rintangan dimana tidak berfungsi untuk menghambat labirin sehingga ada kesempatan labirin untuk mencari solusi. Pada level 2 ini tidak semulus pada level 1
Perancangan Aplikasi Game Labirin Dengan Menggunakan Algoritma Backtracking. Oleh : Rina102 Br Sirait
Pelita Informatika Budi Darma, Volume : V, Nomor: 2, Desember 2013
dimana selain menghindari rintangan, labirin juga mencari pintu keluar yang dapat mengasilkan waktu sehemat mungkin, jika waktu yang ditentukan tidak dapat ditempuh maka akan muncul kata "GAME OVER" . Jika dalam 10 detik mendapat bonus score 5000, 3000/20 detik, 1500/30 detik dan 1000/45 detik. Dalam permainan labirin ini lebih diutamakan menggunakan logika agar dapat menempuh jalur untuk menuju kesolusi atau jalan keluar. Form level 3 (tiga) ini berisikan menu play, menu level, menu score, menu save dan menu quit. Rancangan form ini tidak ada bedanya dengan level 1, level 2, tetapi dalam level 3 (tiga) ini jalan yang ditempuh semakin rumit karena terdapat rintangan yang berjalan mengejar labirin untuk menghambat labirin menemukan solusi atau jalan keluar karena pintu keluar hanya ada 1 (satu) maka labirin akan merasa kesulitan untuk mencapai jalan keluar (solusi) tetapi jika rintangan yang satu dengan rintangan yang lainnya saling bertemu maka rintangan akan pecah (menghilang) dengan sendirinya maka rintangan yang akan dihadapi labirin akan berkurang. Pada level 3 ini juga terdapat obat yang bisa dimakan oleh labirin untuk menambah bonus, dalam 1 obat terdapat bonus 1000, jika obat bersentuhan dengan rintangan maka akan melemahkan rintangan dimana tidak berfungsi untuk menghambat labirin sehingga ada kesempatan labirin untuk mencari solusi. Pada level 3 ini tidak semulus pada level 1 dan 2 dimana rintangan yang dihadapi semakin banyak karena labirin juga mencari pintu keluar yang dapat mengasilkan waktu sehemat mungkin. Jika dalam 10 detik mendapat bonus score 5000, 3000/20 detik, 1500/30 detik dan 1000/45 detik.
Gambar 3 : Proses Backtracking Mencari Solusi 4. Kesimpulan Dan Saran 4.1 Kesimpulan Adapun kesimpulan yang dapat diambil dari skripsi ini adalah sebagai berikut : 1. Proses mencari jalan keluar permainan labirin dengan cara membentuk lintasan dari akar ke daun dan simpul-simpul yang sudah dilahirkan dinamakan simpul hidup, jika lintasan yang diperluas yang sedang dibentuk tidak mengarah ke solusi, maka simpul tersebut
2.
3.
SSN : 2301-9425
“dibunuh” sehingga menjadi simpul mati (dead node). Simpul yang sudah mati ini tidak akan diperluas lagi. Penerapan algoritma backtracking untuk merancang logika permainan game labirin dengan cara memeriksa mulai pohon dari solusi yang pertama yang benar-benar layak mendapat hasil yang optimal. Merancang aplikasi game labirin 2D dengan penerapan algoritma backtracking yaitu dengan Java2ME, UML, Flowchart.
4.2 Saran Adapun saran yang dapat diambil dari skripsi ini adalah sebagai berikut : 1. Dalam pengembangannya, algoritma backtrack dalam game labirin ini dapat bermacam-macam. Mulai dari sekedar pencari solusi labirin sampai masalahmasalah yang rumit, tentu saja algoritma yang digunakan juga berkembang. Misalanya saja penggunaan kecerdasan buatan (Artificial Intellegent), dalam gamelabirin kita dituntunt membuat kecerdasan buatan sederhana dimana karakter yang melalui labirin dituntut mencari jalan keluar. 2. Diharapkan nantinya pengembang sistem ini mampu mengemembangkan sistem menggunakan algoritma yang lain dengan berbasis jaringan. Daftar Pustaka [1]. Munir, Rinaldi. 2007. Strategi Algoritmik.Teknik Informatika ITB : Bandung [2]. Shalahuddin, M dan Rosa A.S. 2008. Pemrograman J2ME. Bandung: Informatika. [3]. Preiss, Bruno. 1997. Abstract Backtracking [4]. Sichitiu , Mihail L. 2010 Android Introduction - Platform Overview. [5]. Zechner, Mario. 2011. Get started with game 41 apps development for the Android platform Beginning Android Games. Apress. [6]. Irwanto, Gavin Fauzy. 2010. Generator Angka Acak Dalam Game Sudoku Dengan Metode Backtracking Pada Android Os Mobile. [7]. Dana Cremer, 2007, “The Application of Artificial Intelligent to Solve a Physical Puzzle”, Departement of Komputer and Information Sciences, Indiana University South Bend.
Perancangan Aplikasi Game Labirin Dengan Menggunakan Algoritma Backtracking. Oleh : Rina103 Br Sirait