SIMULASI ALGORITMA A* UNTUK MENYELESAIKAN PATHFINDING Saprizal Nasution 1, Mardiana 2 1 Jurusan Teknik Informatika Sekolah Tinggi Teknik Harapan Medan Jl. HM jhoni No. 70 Medan, Indonesia rizal_allstar@rocketmail.com ABSTRAK Pathfinding merupakan game untuk mencari jalan terpendekdari titik awal menuju titik tujuan. Pathfinding yang dibuat dengan AI (artificial Intelligence) tersebut menerapkan algoritma A* (A Star). Algoritma inidigunakan untuk menentukan pilihan jalan terpendek menuju titik tujuan. Peneraan algoritma A* dalam game pathfinding dibuat berdasarkan prosedur A* untuk mendapatkan langkah terbaik dari posisi titikawal. Algoritma A* merupakan perbaikan dari metode best-first search (BFS) dengan menggunakan fungsi heuristic. A* akan meminimumkan total biaya lintasan dan akan memberikan solusi yang terbaik dalam waktu yang optimal. Aplikasi ini dibuat menggunakan Microsoft Visual Studio 2008. Hasil pengujian aplikasi ini, selain didapatkan jalan menuju tujuan dan pelacakan cabangnya, algoritma A* search memberikan hasil pencarian jalan optimal yang merupakan jalan terpendek. Kata Kunci : Pathfinding, A*, Heuristic ABSTRACK Pathfinding is a game to find the shortest path from the starting point to the destination point. Made with the pathfinding, AI (artificial intelligence) that implements the algorithm A* (A Star). This algorithm is used to determine the choice of the shortest path toward the destination point. Calibration algorithm A* pathfinding in the game is based on the procedure A* to get the best move of titi guard position. Algorithm A* is a refinement of the method of best-first search (BFS) by using a heuristic function. A* will minimize the total cost of the track and will provide the best solutions in optimal time. This application is created using Microsoft Visual Studio 2008. The results of testing this application, in addition to the path to the goal and get the tracking branch, A* search algorithm gives results that are optimal pathshortest path. Keywords: pathfinding, A *, Heuristic Biltek Vol. 4, No. 021 Tahun 2015 Sekolah Tinggi Teknik Harapan 1
1. Pendahuluan Pencarian rute terdekat, adalah usaha untuk mencari rute yang paling dekat dari posisi awal hingga akhir dengan beban paling ringan atau sedikit dibandingkan dengan seluruh rute yang ada. Rengga Dionata Putra, Muhammad Aswin,(2012). Persoalan jalur terpendek (Shortest Path) merupakan suatu jaringan pengarahan perjalanan dimana seseorang pengarah jalan ingin menentukan jalur terpendek antara dua kota berdasarkan jalur alternatif yang tersedia, dimana kota tujuan hanya satu. Masalah ini sendiri menggunakan representasi graph untuk memodelkan persoalan yang diwakili sehingga lebih memudahkan penyelesaiannya. Masalahnya adalah bagaimana cara mengunjungi vertek pada graph dari vertek awal ke vertek akhir dengan bobot minimum, dimana dalam hal ini bobot yang digunakan adalah jarak dan kota-kota yang dikunjungi diasumsikan sebagai graph yang saling terhubung (connected graph) antar suatu kota dengan kota yang lainnya. Suatu graph G disebut terhubung jika untuk setiap vertek dari graph terdapat jalur yang menghubungkan kedua verteks tersebut, atau dengan kata lain graph terhubung jika setiap dua vertek yaitu vi dan vj dalam suatu graph terdapat sedikitnya sebuah edge. Edge pada graph berarah disebut arc. Algoritma A* merupakan algoritma pencari jalan terbaik dan merupakan gabungan dari algoritma Djikstra dan BFS. Ketiga algoritma ini menggunakan graf berbobot tidak berarah sebagai konsep dasar pencarian jejak. Algoritma A* mengunjungi simpul dalam graph dengan cara mengunjungi simpul yang paling mendekati solusi yang dalam hal ini menganalisa algoritma A* dalam membantu mencari jalan pergeseran. Algoritma A* menerapkan heuristic untuk menemukan solusi yang paling optimum. Heuristic ini yang menyebabkan pohon ruang status tidak perlu dibangkitkan seluruhnya, hanya yang mendekati solusi terbaik saja. Pada kasus ini solusi terbaik dapat dicapai. Latius Hermawan, R. Kristoforus Jawa Bendi, (2013) Pada skripsi ini penulis akan menyelesaikan masalah pencarian jalur terpendek menggunakkan kotak- kotak, dimana user akan membuat jalur sendiri yang akan dilalui dengan menggunakkan kotak-kotak berwarna hitam, untuk membuatkan posisi awal user dapat menentukan posisi awal menggunakkan kotak berwarna biru, dan user juga menentukan posisi tujuan yang ditentukan user menggunakkan kotak berwarna merah. Setelah user menentukan posisi awal, posisi akhir dan menentukan jalur-jalur yang akan dilalui maka aplikasi ini nantinya akan menampilkan titiktitik jalur terpendek menuju posisi akhir. 1.1. Rumusan Masalah Berdasarkan latar belakang yang telah dipaparkan sebelumnya dapat dirumuskan permasalahan adalah bagaimana mencari jalur terpendek dengan menggunakan algoritma A * sehingga dicapai suatu solusi yang terbaik dalam pencarian tercepat ke tujuan. 1.2. Batasan Masalah Agar pembahasan permasalahan ini lebih terarah maka diberikan batasan-batasan masalah sebagai berikut: a. Posisi awal di warnai dengan kotak berwarna hijau, dan posisi akhir di warnai dengan kotak berwarna merah. User dapat bebas menentukan posisi awal dan posisi akhir. b. Rute rute yang dilalui di warnai dengan kotak berwarna cokelat, dan user bebas menempatkan rute-rute yang akan di lalui tersebut. c. Bobot yang digunakan adalah jumlah kotak yang di lewati untuk menuju kotak tujuan yaitu jumlah kotak yang paling sedikit yang dilalui. d. Algoritma yang digunakan untuk pencarian rute tersebut adalah Algoritma A*(Star) e. Bahasa pemrograman yang digunakan adalah Visual Studio 2008. 1.3 Tujuan Penelitian Adapun tujuan dari penulisan tugas akhir ini adalah untuk menerapkan algoritma A * (Star) untuk mendapatkan jalur terpendek dengan menggunakan kotak-kotak.untuk mengetahui analisis kasuspencarian jalan terpendek menuju tujuan pada aplikasi PathFinding untuk mencari kecepatan. 1.4 Manfaat Penelitian Manfaat dari penulisan ini adalah: a. Menawarkan penyelesaian yang lebih mudah dalam perhitungan untuk pencarian jalur terpendek jika terdapat banyak jalur alternatif dari kotak awal ke kotak tujuan. b. Dengan penelitian ini penulis juga berharap dapat menambah referensi bagi pembaca dan dapat digunakan sebagai alat pertimbangan bagi pengambilan keputusan dalam permasalahan jalur terpendek. c. Selain menambah pemahaman dan pengetahuan penulis mengenai algoritma A * (Star) dalam menyelesaikan jalur terpendek (shortest path), penulis juga dapat menjadikannya sebagai sarana untuk mengaplikasikan materi -materi yang telah didapat dibangku kuliah.
2. Metode Penelitian Beberapa metode penelitian yang digunakan penulis adalah sebagai berikut: a. Mempelajari Algoritma A* (Star) Tahap ini merupakan tahap untuk mempelajari algoritma yang akan diimplementasikan ke dalam pathfinding. b. Merancang desain antarmuka PathFinding Tahap ini merupakan tahap untuk merancang desain antarmuka PathFinding, yang meliputi kotak-kotak dan objekobjek yang ada dalam PathFinding. c. Merancang PathFinding menggunakan VB.Net 2008 Tahap ini merupakan tahap pemrograman untuk merancang Perangkat Lunak PathFinding. PathFinding ini akan dibuat dengan menggunakan VB. NET 2008. d. Testing PathFinding ini nantinya memiliki 3 warna, yaitu warna biru sebagai posisi awal, warna merah sebagai posisi akhir, warna coklat sebagai rute yang dilalui, simulasi PathFinding pada aplikas biasa dan simulasi algoritma. Di dalam mode simulasi algoritma nantinya akan ditampilkan kotak yang paling sedikit yang dilalui menuju kotak berwarna merah yaitu posisi akhir. Kemudian akan dilakukan pengujian selama beberapa kali untuk mengetahui ketepatan dalam pencarian rute. e. Evaluasi Hasil perhitungan yang akan ditampilkan yaitu jumlah node yang dikunjungi (visited node),jalur yang ditemukan (path). 2. Uji Coba Program 1 Gambar 4.1Form Utama Gambar 4.1Form Utama a.menentukan Posisi Awal Dan Posisi Akhir Pada form ini akan di uji coba menentukan posisi awal dan posisi tujuan dimana warna hijau sebagai posisi awal dan warna merah sebagai posisi tujuan. 3. Hasil Dan Pembahasan Form Utama Form utama ini akan tampil pertama sekali. Pada form utama ini terdapat beberapa toolbox. diantaranya yaitu : a. Option Starting Tile : Starting tile adalah untuk menentukan posisi awal dimana disimbolkan dengan warna hijau b. Option Ending Tile : Ending tile adalah untuk menentukan posisi akhir dimana di simbolkan dengan warna merah c. Option Wall Tile : Wall tile adalah sebagai penghalang dari posisi tujuan ke posisi akkhir, yang di simbolkan silver d. Button Run : Button run ini untuk menjalankan aplikasi atau untuk mencari rute terdekat dari posisi awal ke posisi akhir e. Button Clear : Button clear untuk membersihkan jalur Gambar 4.2Penentuan Posisi Awal Dan b.membuat Wall tile Posisi Tujuan Membuat wall tile adalah membuat penghalang dari posisi awal ke posisi tujuan pada penentun sebelumnya, untuk membuat penghalang user harus memilih option wall tile, dan memilih dimana kotak kotak tersebut di tempatkan sebagai penghalang yang disimbolkan dengan warna silver, untuk menempatkan penghalang tersebut user tinggal mengclick dimana titik-titik penghalang tersebut ingin ditempatkan dan berikut tampilannya
Gambar 4.3Penentuan Wall tile / Penghalang c. Pencarian Rute contoh 1 Gambar 4.5Pencarian Rute Terdekat(ii) e. Pencarian Rute contoh 3 Gambar 4.6Pencarian Rute Terdekat(iii) Gambar 4.4Pencarian Rute Terdekat(i) d. Pencarian Rute contoh 2 f. Pencarian Rute contoh 4
sistemdapatmenghasilkanenkripsi yang baikdanhasilenkripsidapat di dekripsikembalidenganbaik. Berdasarkanhasiltersebutmakadapatdinyatakanbah wapembangunansistemenkripsimenggunakana5/1p adapesantekstelahberhasildansistemdapatditerapkan untukmengamankan data berupapesanteks. 4. Kesimpulan dan Saran Gambar 4.7Pencarian Rute Terdekat(iv) g. Pencarian Rute contoh 5 berwarna biru yang menutup semua jalur menuju posisi akhir, titik-titik tersebut adalah rute Gambar 4.8Pencarian Rute Terdekat(v) Pada gambar 4.8 dapat dilihat bahwa chiperteks hasil enkripsi dapat di dekripsi kembali dengan sempurnadengan menggunakan kunci yang sama dengan kunci yang digunakan pada saat proses enkripsi. Pembahasan Hasil Pengujian Berdasarkan beberapa pengujian yang telah dilakukan pada sub bab sebelumnya, hasil pengujian dapat dirangkum menjadi tabel pengujian seperti yang terlihat pada tabel 4.1 berikut. 4.1 Kesimpulan Berdasarkan dari hasil penelitian, analisis, perancangan sistem dan pembuatan program sampai tahap penyelesaian program, maka penulis dapat mengambil kesimpulan sebagai berikut : 1. Pathfinding merupakan permainan yang dimainkan oleh satu orang dengan tujuan untuk menghasilkan jalan terpendek dari titik awal sampai titik tujuan. 2. Pencarian jalan pada game pathfinding menggunakan algoritma A* selalu berhasil menemukan solusi jalan apabila memang terdapat jalan dari titik awal ke tujuan. 3. Lamanya proses pencarian dan banyaknya simpul yang diperiksa untuk pencarian jalan tergantung pada jarak antara titik awal dan titik tujuan. 4. Hasil algoritma A* memberikan hasil pencarian jalan yang lebih optimal. Pengujian alpha yang dihasilkan oleh A* dalam waktu pencarian akan menghasilkan waktu yang relatif lama karena simpul yang dihasilkan lebih banyak sehingga membutuhkan memori yang besar, tetapi jarak yang dihasilkan merupakan jalan terpendek. Tingkat performansi jalan yang dihasilkan tergantung pada posisi titik awal, titik tujuan, penghalang dan nilai heuristic. 4.2 Saran Pathfinding ini masih dapat dikembangkan lebih lanjut dengan perkembangan spesifikasi kebutuhan pengguna sistem yang harus dipenuhi dalam mencapai tahap yang lebih tinggi dan kinerja sistem yang lebih baik. Berikut adalah beberapa saran untuk pengembangan lebih lanjut : 1. Dapat menggunakan algoritma selain A* yang lebih optimal dalam hal waktu dan simpul yang diperiksa. 2. Diharapkan untuk pengembangan selanjutnya tampilan antar muka dibuat lebih menarik.
5. DAFTAR PUSTAKA. 1. Rengga Dionata Putra, Muhammad Aswin, Waru Djuriatno (2012). Pencarian Rute Terdekat Pada Labirin Menggunakan Metode A *. 2. Jogiyanto, Hartono, 2005.Analisis & Desain Sistem Informasi Pendekatan Terstruktur Teori dan Praktek Aplikasi Bisnis. Andi Yogyakarta. (2005:795) 3. Latius Hermawan, R. Kristoforus Jawa Bendi (2013), Penerapan Algoritma A* pada Aplikasi Puzzle.