Analisis Penerapan Algoritma Backtrack dalam Pencarian Solusi Game Maze (Labirin) Dzurrotun Nafi’ah1, Rahayu Dyah Harini2, R. Afiannas3 Jurusan Teknik Informatika, Sekolah Tinggi Teknologi Telkom Jl. Telekomunikasi, Bandung 1
[email protected],
[email protected],
[email protected]
Abstrak Game komputer merupakan salah satu aplikasi software yang saat ini banyak dikembangkan. Dengan jenis yang bermacam-macam dan tampilan yang menarik, game komputer termasuk software yang diminati oleh berbagai kalangan. Selain karena tampilan dan aplikasinya relatif menarik, game komputer juga disinyalir dapat menjadi salah satu sarana refreshing yang cukup menyenangkan terutama bagi orang yang telah terbiasa menggunakan komputer. Pada makalah ini, penulis mencoba membahas tentang game Maze (Labirin) dan menganalisis penerapan algoritma backtrack sebagai salah satu cara penyelesaian persoalan pada game ini. Berbagai data dalam makalah ini penulis peroleh dari berbagai sumber yang berkaitan. Sumber utama yang menjadi referensi penulis adalah Diktat Kuliah IF2251 Strategi Algoritmik yang disusun oleh Ir. Rinaldi Munir,M.T dan slide materi kuliah Desain dan Analisis Algoritma STT Telkom. Selain dari sumber tersebut penulis juga mendapatkan referensi dari situs-situs yang berkaitan dengan penerapan algoritma yang telah penulis pelajari untuk aplikasi game Maze (Labirin) di mana user diminta untuk mencari solusi untuk menemukan jalur yang dapat mencapai tujuan yang telah ditentukan. Melalui pembahasan makalah ini, penulis menemukan bahwa game Maze (Labirin) menggunakan algoritma backtrack (runut balik) di mana komputer juga dapat menemukan jalur yang tepat untuk mencapai tujuan. Dalam proses penentuan jalur, jika komputer mencapai tujuan yang tidak sesuai maka komputer akan melakukan backtrack (runut balik) hingga dapat mencapai tujuan yang sesuai. Kata Kunci : backtrack, game, Maze (Labirin) Abstract Computer Game is one of software applications that are mostly developed. Nowadays, a lot of people are interested in computer game because of its attractive interface and various kinds. Computer game can be a simple refreshing method, especially to the expert computer users. On this paper, the writers try to discuss about a game called Maze (Labirin) and analyze the backtrack application to solve the problem on this game. The writers get the supporting data from many sources which are concerned with the theory. The main source which the writers used is Diktat Kuliah IF2251 Strategi Algoritmik by Ir. Rinaldi Munir,M.T and Desain dan Analisis Algoritma’s lectures by STT Telkom. Besides that, the writers get other concerned sources from internet sites about Maze (Labirin)-backtrack algorithm application- to look for the fixed goal. On this paper, the writers conclude that Maze (Labirin) game uses backtrack algorithm to find the right path to reach the fixed goal. In this process, if computer can’t find the fixed goal, it will do backtrack until it can reach the right destination. Keywords: backtrack, game, Maze (Labirin) 1.
Pendahuluan
Semenjak dahulu, permainan (game) merupakan hal yang sangat menarik bagi sebagian besar masyarakat dunia. Dengan berkembangnya berbagai bentuk game, baik berupa game yang masih sederhana maupun yang sudah menggunakan teknologi yang canggih, game menjadi sangat populer di berbagai tempat. Salah satu bentuk game yang dewasa ini sudah tidak asing adalah game yang dimainkan di komputer. Game merupakan
aplikasi yang cukup diminati karena bisa dimanfaatkan sebagai ajang refreshing dan olah otak. Bahkan tidak jarang aplikasi pada komputer menimbulkan kecanduan bagi user. Makalah ini dibuat untuk memenuhi tugas mata kuliah Desain dan Analisis Algoritma. Selain itu juga bertujuan untuk menambah pengetahuan penulis dalam menganalisa penerapan algoritma untuk menyelesaikan persoalan. Dalam hal ini persoalan yang penulis angkat adalah persoalan dalam penyelesaian game Maze (Labirin).
Game Maze (Labirin) merupakan game sederhana yang bertujuan 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. Berbagai data yang terdapat dalam makalah ini diperoleh dari berbagai sumber yang berkaitan. Sumber utama yang menjadi referensi penulis adalah slide kuliah Desain dan Analisis Algoritma. Selain itu penulis juga mendapatkan referensi dari berbagai buku dan situs yang berkaitan dengan penerapan algoritma backtrack. 2.
Pembahasan
2.1 Konsep Maze (Labirin) merupakan game yang template-nya berbentuk persegi yang ukurannya dapat diatur sesuai dengan keinginan user. Di dalamnya terdapat serangkaian jalur berupa labirin yang bercabang. Namun, tidak setiap cabang mencapai tujuan yang diinginkan.
2.2 Model Penelitian Pada makalah ini, penulis menggunakan algoritma backtrack. Algoritma backtrack pertama kali diperkenalkan oleh D.H. Lehmer pada tahun 1950. Dalam perkembangannya beberapa ahli seperti RJ Walker, Golomb, dan Baumert menyajikan uraian umum tentang backtrack dan penerapannya dalam berbagai persoalan dan aplikasi. Algoritma backtrack (runut balik) merupakan salah satu metode pemecahan masalah yang termasuk dalam strategi yang berbasis pencarian pada ruang status. Algoritma backtrack bekerja secara rekursif dan melakukan pencarian solusi persoalan secara sistematis pada semua kemungkinan solusi yang ada. Oleh karena algoritma ini berbasis pada algoritma Depth-First Search (DFS), maka pencarian solusi dilakukan dengan menelusuri suatu struktur berbentuk pohon berakar secara preorder. Proses ini dicirikan dengan ekspansi simpul terdalam lebih dahulu sampai tidak ditemukan lagi suksesor dari suatu simpul. Algoritma runut-balik secara garis besar adalah: while belum sampai pada tujuan do if terdapat arah yang benar sedemikian sehingga kita belum pernah berpindah ke sel pada arah tersebut then pindah satu langkah ke arah tersebut
** else backtrack langkah sampai terdapat arah seperti yang disebutkan di atas endif endwhile 2.3 Hasil Penelitian Penggunaan algoritma backtrack ini terlihat pada proses penelusuran tiap jalur untuk mencapai tujuan yang diinginkan. Sejak komputer memulai permainan, komputer akan menentukan jalur menelusuri sembarang jalur. Ketika komputer menemukan jalan buntu, maka ia akan melakukan proses backtrack dengan cara kembali pada jalur sebelumnya sampai menemukan jalur baru yang belum pernah dilewati. Ada dua solusi untuk masalah ini, yaitu secara iteratif dan rekursif. Dalam hal ini, penulis menggunakan metode iteratif. Algoritma runut-balik persoalan labirin adalah sebagai berikut. function SolveMaze(input M : labirin) boolean { true jika solusi ditemukan, false jika tidak } Deklarasi arah : integer { up = 1, down, 2, left = 3, right = 4 } Algoritma: if solusi sudah ditemukan then return true else for tiap arah gerakan (up, down, left, right) do move(M,arah) {pindah satu langkah (satu sel) sesuai arah tersebut } if SolveMaze(M) then return true else unmove(M, arah) { backtrack } endif endfor return false { semua arah sudah dicoba, tetapi tetap buntu, maka kesimpulannya: tidak ada solusi } endif
Gambar 1. Sebuah Labirin
Dalam game ini, algoritma akan membagi lintasan menjadi sederetan langkah. Sebuah langkah terdiri dari pergerakan satu unit sel pada arah tertentu. Arah yang mungkin: ke atas (up), ke bawah (down), ke kiri (left), ke kanan (right).
in
out
Gambar 2. Contoh runut-balik pada sebuah labirin. Runut-balik diperlihatkan dengan garis putus-putus.
kemungkinan solusi yang ada. Pencarian hanya mengarah pada solusi yang dipertimbangkan saja. Oleh karena algoritma ini cukup efektif, maka algoritma backtrack banyak diterapkan dalam berbagai program game dan persoalan yang berkaitan dengan kecerdasan buatan (artificial intelligence). Sebenarnya sebagai sesuatu yang cukup baru, penyelesaian persoalan game Maze (Labirin) ini belum dapat dianalisis untuk berbagai algoritma. Namun melalui beberapa analisis yang penulis lakukan, penulis berpendapat bahwa algoritma backtrack cukup efektif untuk menyelesaikan persoalan ini. Agar lebih menarik, game ini dapat ditambahkan aturan main, misalnya terdapat pilihan level permainan, batasan waktu permainan, dan batasan jalur yang dilewati. Selain itu, dari sisi tampilan agar dapat lebih menarik, perlu adanya visualisasi penelusuran jalur, misalnya pemain atau komputer dilambangkan sebagai objek yang dapat bergerak ketika melakukan penelusuran jalur. Daftar Pustaka
[1] [2]
[3]
Munir, Rinaldi. 2005. Strategi Algoritmik. Teknik Informatika ITB: Bandung. Darby, Gary. 2000-2006. http://www.delphiforfun.org. Diakses pada tanggal 19 Maret 2006 Kusumadewi, Sri. 2003. Artificial Intelligence (Teknik dan Aplikasinya). Penerbit Graha Ilmu:Yogyakarta. .
. Gambar 3. Contoh runut-balik pada labirin dari Gambar 1 2.4 Analisis Kemampuan algoritma dalam menyelesaikan masalah game Maze (Labirin) ini menunjukkan bahwa algoritma backtrack (runut balik) cukup efektif untuk mendapatkan solusi persoalan tersebut. Sistem kerja algoritma backtrack yang sistematis dan ciri khasnya yang hanya memeriksa kemungkinan solusi yang memang dapat dipertimbangkan untuk menjadi solusi akhir, diperkirakan untuk menjadi solusi yang efektif dan efisien untuk persoalan ini. 3.
Kesimpulan dan Saran Pengembangan
Algoritma backtrack merupakan algoritma yang cukup mangkus untuk menyelesaikan berbagai persoalan. Hal ini disebabkan karena pada prinsipnya, kita tidak perlu memeriksa semua