Penerapan Algoritma A* Dalam Pathfinding AI Stealth Game

dokumen-dokumen yang mirip
Penerapan Algoritma Greedy dan Breadth First Search pada Permainan Kartu Sevens

Pencarian Lintasan Terpendek Pada Aplikasi Navigasi Menggunakan Algoritma A*

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

Penggunaan Algoritma Pathfinding pada Game

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

Penyelesaian Permainan Sliding Puzzle 3x3 Menggunakan Algoritma Greedy Dengan Dua Fungsi Heuristik

Menentukan Titik Evakuasi Selanjutnya bagi Sekelompok Regu Tim SAR dengan Algoritma Branch and Bound

Perbandingan Algoritma Depth-First Search dan Algoritma Hunt-and-Kill dalam Pembuatan Labirin

Penerapan strategi BFS untuk menyelesaikan permainan Unblock Me beserta perbandingannya dengan DFS dan Branch and Bound

Penghematan BBM pada Bisnis Antar-Jemput dengan Algoritma Branch and Bound

dengan Algoritma Branch and Bound

Penyelesaian N-Puzzle Menggunakan A* dan Iterative Deepening A*

Algoritma A* Memanfaatkan Navigation Meshes dalam 3 Dimensional Pathfinding

Penerapan Pohon dengan Algoritma Branch and Bound dalam Menyelesaikan N-Queen Problem

Penerapan Algoritma Greedy Best First Search untuk Menyelesaikan Permainan Chroma Test : Brain Challenge

PERBANDINGAN ALGORITMA BFS DAN DFS DALAM PEMBUATAN RUTE PERJALANAN OBJEK PERMAINAN 2 DIMENSI

Menentukan Susunan Terbaik Tim Proyek dengan Algoritma Branch and Bound

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

Implementasi Algoritma Greedy, BFS, Branch and Bound, dan Metode Heuristik dalam Permainan Reversi

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

Mendeteksi Blob dengan Menggunakan Algoritma BFS

Pelacakan dan Penentuan Jarak Terpendek terhadap Objek dengan BFS (Breadth First Search) dan Branch and Bound

Penerapan Algoritma Branch & Bound dan Backtracking pada Game Flow

Penerapan Algoritma BFS dan DFS dalam Permainan Ular Tangga

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Penerapan Algoritma Branch and Bound pada Penentuan Staffing Organisasi dan Kepanitiaan

Pembahasan Pencarian Lintasan Terpendek Menggunakan Algoritma Dijkstra dan A*

Menentukan Susunan Pengambil Tendangan Penalti dalam Skema Adu Penalti pada Pertandingan Sepak Bola dengan Algoritma Branch and Bound

Aplikasi Algoritma Branch and Bound dalam Pencarian Solusi Optimum Job Assignment Problem

Penggunaan Algoritma DFS dan BFS Dalam Pencarian Jarak Tedekat di Game Civilization V

Penerapan Algoritma A* Sebagai Algoritma Pencari Jalan Dalam Game

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

Algoritma Greedy dalam Strategi Permainan Centipede

Penerapan Algoritma Transversal pada Graf dan Algoritma Pencocokan String dalam Sistem Jual-Beli Tiket Bioskop

Aplikasi Algoritma Traversal Dalam Binary Space Partitioning

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

Metode Path Finding pada Game 3D Menggunakan Algoritma A* dengan Navigation Mesh

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

Branch and Bound untuk Rute Terpendek Tur Pengenalan Labtek V Gedung Benny Subianto Chita Najmi Nabila /

Pemanfaatan Algoritma Runut-Balik dalam Menyelesaikan Puzzle NeurOn dalam Permainan Logical Cell

Penerapan Algoritma Branch and Bound untuk Optimasi Rute Penempelan Poster di Papan Mading ITB

Penerapan Exhaustive Search dan Algoritma A Star untuk Menentukan Rute Terbaik dari KRL Commuter Line dan Bus Transjakarta

Implementasi Logika Penurunan Persamaan Aritmatika pada Program Komputer

Menentukan Starting Lineup Futsal Terbaik dengan Algoritma Branch and Bound

Penerapan Algoritma A-star (A*) Untuk Menyelesaikan Masalah Maze

Aplikasi Algoritma Greedy, BFS dan DFS pada Penyelesaian Permainan Mahjong Solitaire

Penerapan Algoritma Greedy dalam Pembuatan Artificial Intelligence Permainan Reversi

Aplikasi Branch and Bound Pada Pencarian Jalan Pada Software Navigasi

Penerapan Algoritma Greedy dan Algoritma BFS untuk AI pada Permainan Greedy Spiders

VARIASI PENGGUNAAN FUNGSI HEURISTIK DALAM PENGAPLIKASIAN ALGORITMA A*

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

Algoritma Greedy dalam Artificial Intelligence Permainan Tic Tac Toe

Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test

Algoritma Branch & Bound untuk Optimasi Pengiriman Surat antar Himpunan di ITB

Implementasi Algoritma DFS pada Pewarnaan Gambar Sederhana Menggunakan Bucket tool

Penerapan Algoritma Runut Balik pada Pathuku Games

Penerapan Algoritma DFS dalam Menyelesaikan Permainan Buttons & Scissors

PENERAPAN ALGORITMA BRANCH AND BOUND DALAM MENENTUKAN RUTE TERPENDEK UNTUK PERJALANAN ANTARKOTA DI JAWA BARAT

Penerapan dan Perbandingan Algoritma Path-finding dalam Kecerdasan Buatan Hantu pada Permainan Pac-Man

Penerapan Algoritma Greedy untuk Permainan Flood It

SEARCHING. Blind Search & Heuristic Search

Implementasi Algoritma DFS untuk Pergerakan Ghost di Permainan Pac Man

Penerapan BFS dan DFS dalam Garbage Collection

PENERAPAN ALGORITMA A* PADA PERMASALAHAN OPTIMALISASI PENCARIAN SOLUSI DYNAMIC WATER JUG

Implementasi Algoritma Backtracking untuk Memecahkan Puzzle The Tile Trial pada Permainan Final Fantasy XIII-2

Penerapan Teori Graf dalam Game Bertipe Real Time Strategy (RTS)

PENGGUNAAN ALGORITMA BRANCH AND BOUND UNTUK MENYELESAIKAN PERSOALAN PENCARIAN JALAN (PATH-FINDING)

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

Aplikasi Algoritma MiniMax pada Beberapa Permainan Papan

Implementasi Algoritma Greedy pada Permainan Ludo

Implementasi Algoritma Greedy Dua Sisi pada Permainan 2048

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Penentuan Lintasan Terbaik Dengan Algoritma Dynamic Programming Pada Fitur Get Driving Directions Google Maps

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Penerapan Algoritma Branch and Bound dalam Pemacahan Travelling Salesman Problem (TSP) dalam Graf Lengkap

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

Algoritma Backtracking Pada Logic Game : Family Crisis (Game Penyebrangan)

Penerapan Pewarnaan Graf dalam Alat Pemberi Isyarat Lalu Lintas

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

Penerapan Algoritma Branch and Bound pada Perancangan Jalur Bandros

Penggunaan Algoritma Brute Force dan Greedy dalam Permainan Atomas

Penerapan Algoritma BFS dan DFS pada Permainan Logika Wolf, Sheep, and Cabbage

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

Pemanfaatan Algoritma Runut-balik dalam Penentuan Golongan Suara pada Dunia Paduan Suara

Pertemuan-07 INFORMATIKA FASILKOM UNIVERSITAS IGM

Pemodelan AI dalam Permainan Snake dengan Algoritma Branch and Bound

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

Penerapan Algoritma BFS & DFS untuk Routing PCB

Penerapan strategi runut-balik dalam penyelesaian permainan puzzle geser

Penentuan Keputusan dalam Permainan Gomoku dengan Program Dinamis dan Algoritma Greedy

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Kecerdasan Buatan. Pertemuan 03. Pencarian Branch & Bound dan Heuristik (Informed)

Pembentukan pohon pencarian solusi dan perbandingan masingmasing algoritma pembentuknya dalam simulasi N-Puzzle

Penerapan Algoritma Prim dan Kruskal Acak dalam Pembuatan Labirin

Pemilihan Monster yang Akan Digunakan dalam Permainan Yu-Gi-Oh! Capsule Monster Coliseum

BAB I PENDAHULUAN. ini. Salah satu penerapannya yaitu terdapat pada permasalahan dalam melakukan pencarian dari

Penggunaan Algoritma Branch and Bound dan Program Dinamis Dalam Pemecahan Masalah Rubik s Cube

Transkripsi:

Penerapan Algoritma A* Dalam Pathfinding AI Stealth Game Nicholas Thie 13515079 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia 13515079@std.stei.itb.ac.id Abstrak Algoritma A* ( A Star ) adalah salah satu algoritma untuk menyelesaikan persoalan rute terpendek yang menggunakan heuristik untuk mendukung pencariannya. Dengan menggunakan heuristik, performansi hasil rute terpendek algoritma A* menjadi lebih baik. Stealth game adalah permainan dimana pemain harus berusaha menghindari rintangan dan/atau antagonis dalam permainan tersebut tanpa terdeteksi. Di dalam sebuah stealth game bisa saja sebuah AI ( Artificial Intelligence / Intelegensi Buatan) akan mengejar pemain apabila pemain terdeteksi, dan penentuan jalan dari AI menuju pemain tersebut dapat diterapkan menggunakan algoritma A*. Kata Kunci A Star, Pathfinding, Rute Terpendek, Stealth Game I. PENDAHULUAN Pathfinding (pencarian jalan) adalah penelusuran jalan oleh komputer untuk mencari jalan dari titik awal sampai ke titik akhir. Pencarian rute terpendek merupakan salah satu pengembangan dari pathfinding, dimana jalan yang dipilih merupakan jalan yang paling optimal dari segi biaya ( cost ). Beberapa macam algoritma yang dapat digunakan untuk menyelesaikan persoalan rute terpendek adalah Breadth First Search (BFS), Depth First Search (DFS), Uniform Cost Search (UCS), Greedy Best-First Search, dan A* ( A star). Gambar 1 dan 2. Perbandingan pemilihan jalur menggunakan algoritma Greedy Best-First Search dengan A* Search Algoritma A* ( A star ) adalah salah satu algoritma untuk menyelesaikan persoalan rute terpendek. Algoritma-algoritma yang lain seperti Breadth First Search (BFS) atau Depth First Search (DFS) juga dapat digunakan, namun performansi algoritma A* dibandingkan dengan algoritma-algoritma tersebut lebih baik karena menggunakan heuristik. Algoritma A* banyak digunakan untuk permainan-permainan bergenre lainnya, seperti permainan Real-Time Strategy (RTS). Untuk mengimplementasikan algoritma A* dalam sebuah permainan, peta dari permainan tersebut perlu direpresentasikan. Representasi dari peta permainan merupakan sebuah graf. Algoritma A* hanya akan mengenal simpul-simpul dan sisi-sisi yang telah direpresentasikan sebagai graf dalam sebuah permainan.

Gambar 3. Contoh ilustrasi representasi graf dari sebuah peta permainan Stealth game adalah permainan dimana pemain harus berusaha menghindari rintangan dan/atau antagonis dalam permainan tersebut tanpa terdeteksi. Pemain bermulai dari sebuah titik awal dan harus menyelesaikan seluruh objektif dari level tersebut sebelum menuju ke titik akhir, dimana pemain dinyatakan menang. Dalam perjalanan menyelesaikan objektif maupun menuju titik akhir, akan terdapat rintangan-rintangan maupun antagonis yang biasanya merupakan AI ( Artificial Intelligence / Intelegensi Buatan). Apabila pemain terdeteksi oleh rintangan ataupun AI yang ada, salah satu hal yang dapat terjadi adalah AI akan bergerak menuju arah pemain. Untuk menentukan kemana AI harus bergerak selanjutnya agar mendekati pemain, salah satu algoritma yang dapat diterapkan adalah A* ( A Star ). Stealth game yang akan digunakan sebagai contoh dalam makalah ini adalah Colossal Carrot Caper, sebuah permainan yang menggabungkan genre rhythm dan stealth yang dikembangkan oleh penulis dan rekan-rekannya dalam rangka mengikuti Ludum Dare 41 (https://ldjam.com/events/ludum-dare/41/the-colossal-carrot-ca per). Dalam permainan ini, pemain mengendalikan sebuah karakter kelinci di ladang yang memiliki objektif untuk mengambil seluruh wortel yang ada pada ladan. Di ladang tersebut terdapat serigala-serigala yang berpatroli, yang akan mengejar pemain apabila berada dalam wilayah penglihatannya. Pemain kalah apabila tertangkap oleh serigala atau waktu habis. Pemain menang apabila berhasil mengambil seluruh wortel yang ada di ladang. Gambar 4. Tampilan permainan Colossal Carrot Caper Dalam makalah ini hanya akan difokuskan pada aspek stealth dan pathfinding AI di dalam permainan tersebut, yang merupakan serigala sebagai rintangannya. Apabila serigala melihat pemain yang merupakan kelinci, maka serigala akan bergerak mendekati pemain melalui jalur terpendek. Penentuan jalur terpendek dalam permainan Colossal Carrot Caper menggunakan algoritma A* dengan fungsi heuristik merupakan manhattan distance menuju ke posisi pemain (simpul tujuan). II. LANDASAN TEORI A. Algoritma A* (A star) Algoritma A* adalah algoritma yang merupakan perkembangan dari algoritma Breadth First Search (BFS). Kedua algoritma tersebut memiliki prinsip cara kerja yang sama untuk memilih simpul selanjutnya untuk ditelusuri yaitu menggunakan prinsip antrian ( queue ), namun pada algortima A* digunakan antrian berprioritas ( priority queue ), dimana antrian diurutkan berdasarkan biaya ( cost ) dari suatu simpul. Selain itu, algoritma A* juga menggunakan fungsi heuristik yang digunakan dalam menentukan biaya saat pembangkitan suatu simpul pada ruang solusi. Fungsi heuristik ini adalah sebuah perkiraan untuk suatu simpul, apakah simpul tersebut semakin baik untuk mencapai tujuan. Fungsi evaluasi yang dimiliki oleh algoritma A* adalah : dimana, n = Simpul terakhir di jalur saat ini f(n) = Estimasi total biaya jalur melalui simpul n menuju tujuan g(n) = Biaya sejauh ini untuk mencapai simpul n h(n) = Estimasi biaya dari simpul n menuju tujuan Pada algoritma A*, untuk setiap simpul yang dibangkitkan dalam ruang solusi akan dihitung biayanya (f(n)) dengan menambahkan nilai dari g(n) dan h(n). g(n) merupakan nilai biaya dari simpul awal ke simpul n. h(n) merupakan nilai

heuristik, yang dimana nilai yang ditentukan/diperkirakan memiliki syarat tidak melebihi nilai biaya sebenarnya untuk mencapai tujuan. Algoritma A* akan mengambil solusi jalur yang mencapai tujuan dengan biaya yang paling kecil (nilai f(n) paling kecil). Langkah-langkah algoritma A* secara umum adalah sebagai berikut : 1. Memasukkan simpul akar ke dalam antrian Q. Jika simpul akar adalah simpul solusi, maka solusi telah ditemukan dan hentikan pencarian. 2. Jika Q kosong, maka tidak terdapat solusi dan hentikan pencarian. 3. Jika Q tidak kosong, maka pilih simpul i dari antrian Q yang mempunyai nilai f(n) paling kecil. Jika terdapat beberapa simpul n yang memenuhi, maka dipilih satu yang berada dalam antrian terlebih dahulu (atau juga dapat dipilih secara sembarang). 4. Jika simpul n adalah simpul solusi, berarti simpul solusi telah ditemukan, hentikan pencarian. Jika simpul n bukan sebuah simpul solusi, maka ekspansi semua simpul anak dari simpul n. Jika simpul n tidak memiliki simpul anak, maka kembali ke langkah 2. 5. Untuk setiap anak m pada simpul n, dihitung f(m), dan masukkan semua anak-anak tersebut ke dalam antrian Q terurut dari nilai terkecil. 6. Kembali ke langkah 2. B. Mekanisme Permainan Colossal Carrot Caper Dalam permainan Colossal Carrot Caper, pemain menggerakkan sebuah karakter kelinci untuk mengambil seluruh wortel yang ada di ladang. Pemain harus bergerak sesuai dengan ritme lagu yang berputar. Pemain tidak akan dapat bergerak apabila ingin bergerak diluar ritme lagu. pemain, serigala akan bergerak sesuai dengan ritme lagu yang berputar. Bentuk dari ladang di permainan ini adalah tile-base, sehingga seluruh entitas dalam permainan akan bergerak dalam sebuah grid, satu petak ke kiri, kanan, atas, atau bawah. Pemain yang menggerakkan karakter kelinci tersebut harus bergerak melewati seluruh wortel yang terdapat pada ladang tersebut. Setelah melewati seluruh wortel, pemain telah menang dan akan dibawa ke ladang selanjutnya. Dalam jenis gerakan mengejar, serigala akan selalu berusaha untuk bergerak mendekati ke arah pemain dengan jalur yang paling pendek. Implementasi dari algoritma A* digunakan dalam penentuan jalur ini. Pengejaran akan dilakukan oleh serigala sampai pemain tertangkap atau pemain telah menang. III. IMPLEMENTASI ALGORITMA Untuk memudahkan pengimplementasian algoritma A*, ladang tempat permainan perlu direpresentasikan. Karena permainan ini adalah tile-based, maka simpul-simpul dari graf merepresentasikan petak-petak dari ladang permainan dan sisi-sisi dari graf merepresentasikan pergerakan yang mungkin dari suatu petak. Pada umumnya, setiap simpul memiliki empat buah sisi untuk pergerakan ke atas, bawah, kiri, dan kanan. Namun, untuk beberapa petak tidak memungkinkan untuk bergerak ke suatu arah dikarenakan petak tujuan tidak ada, atau merupakan pohon. Untuk kasus-kasus tersebut, sisi dari simpul tersebut hanyalah antara satu sampai tiga. Gambar 6. Ladang permainan pertama pada Colossal Carrot Caper Gambar 5. Pemain menekan tombol bergerak sesuai dengan ritme lagu Di ladang tersebut akan terdapat beberapa serigala yang akan melakukan patroli. Dalam jenis gerakan patroli, serigala hanya akan mengunjungi beberapa petak tetap secara berurutan dan berulang-ulang. Apabila dalam patroli tersebut pemain berada dalam sudut pandang serigala, serigala akan mengubah jenis gerakannya dari patroli menjadi mengejar. Mirip seperti

Gambar 7. Representasi graf ladang permainan pertama pada Colossal Carrot Caper Representasi dari graf tersebut akan disimpan dalam sebuah array dua dimensi (matriks), dimana setiap elemen dari matriks tersebut adalah informasi mengenai suatu petak ada atau tidak. Informasi tersebut juga meliputi biaya dari masing-masing petak yang ada. Dalam permainan Colossal Carrot Caper ini hanya terdapat dua jenis petak saja, yaitu petak yang dapat dilewati, dan petak yang tidak dapat dilewati karena pohon, air, atau halangan lainnya. Untuk petak yang bisa dilewati, elemen dari matriks akan bernilai satu, yang merupakan biaya dari petak tersebut. Biasanya pada sebuah permainan Real-Time Strategy (RTS), terdapat berbagai macam petak seperti daratan, padang gurun, hutan, dan lain-lain. Pada kasus tersebut, biaya setiap macam petak dapat bernilai beda-beda sesuai dengan keinginan pembuat permainan tersebut. Namun, dalam permainan ini jenis petak yang dapat dilewati hanya ada satu saja. Untuk petak yang tidak bisa dilewati, akan diberi nilai biaya yang sangat besar, dengan maksud agar serigala tidak akan melewati petak tersebut. Hal ini dapat dilakukan dengan asumsi serigala tidak akan pernah terperangkap dalam sebuah petak yang tidak memiliki petak tetangga (tidak bisa bergerak ke atas, bawah, kiri, atau kanan). Karena apabila tanpa asumsi tersebut, serigala dapat bergerak melewati petak yang seharusnya tidak dapat dilewati. Pemberian nilai yang besar ini mempermudah implementasi dari algoritma A* untuk menentukan jalan yang dapat dilewati, karena matriks tidak perlu menyimpan informasi simpul tetangga untuk setiap simpul. Gambar 8. Representasi matriks dari graf ladang permainan pertama pada Colossal Carrot Caper Fungsi heuristik yang digunakan dalam implementasi algoritma A* ini merupakan manhattan distance dari suatu simpul sekarang ke simpul tujuan (dimana tujuannya adalah karakter pemain). Nilai dari manhattan distance adalah jarak simpul sekarang ke simpul tujuan pada koordinat x ditambah dengan simpul sekarang ke simpul tujuan pada koordinat y. Total biaya dari suatu simpul/petak merupakan penjumlahan dari biaya sampai ke simpul/petak tersebut ditambah dengan fungsi heuristik yang merupakan manhattan distance menuju simpul/petak tujuan. Karena implementasi algoritma A* adalah menggunakan priority queue, maka ketika simpul tujuan tercapai akan didapatkan jalur dengan biaya terkecil. Jalur tersebut akan digunakan oleh serigala untuk menentukan apakah untuk pergerakan selanjutnya serigala tersebut harus bergerak ke atas, bawah, kiri, atau kanan. Di bawah ini merupakan pseudocode dari implementasi algoritma A* untuk pathfinding serigala : Dikutip dari http://www.redblobgames.com Selanjutnya akan dibahas ilustrasi salah satu contoh kasus pengejaran yang dilakukan oleh serigala.

Setelah didapatkan jalur menuju simpul tujuan, serigala akan mengambil simpul selanjutnya pada jalur tersebut, yaitu simpul yang berada di sebelah kanannya (yang ditandai nomor 1). Apabila pemain tidak bergerak, maka serigala akan bergerak mengikuti jalur kuning tersebut, yang merupakan jalur terpendek menuju pemain. Apabila pemain berpindah tempat, maka serigala akan menghitung kembali jalur terpendek yang perlu ditempuh menuju pemain. Di bawah ini merupakan tabel uraian setiap iterasi dari simpul awal sampai dengan simpul akhir/tujuan : Iterasi Simpul Diekspan Simpul Hidup 1 (1,3) (1,3) = 5 2 (1,2),(1,4) (1,2) = 5 (1,4) = 7 Gambar 9. Contoh kasus pengejaran oleh serigala (kotak merah) ke pemain (kotak hijau) Terdapat contoh kasus dimana serigala yang berada pada kotak merah sedang mengejar pemain yang berada pada kotak hijau. Setiap petak telah diberikan nilai-nilai dari g(n) dan h(n) sesuai dengan kriteria yang telah dijelaskan sebelumnya. Simpul yang akan dibangkitkan pertama adalah simpul-simpul tetangga dari kotak merah, dalam kasus ini hanya ada 1 yaitu sebelah kanan kotak merah (yang ditandai nomor 1). Nilai dari g(n) dan h(n) dikalkulasi dan dijumlahkan menjadi f(n) yang bernilai 5. Sekarang hanya terdapat satu simpul hidup, dan kemudian akan dibangkitkan simpul-simpul selanjutnya yang merupakan tetangganya (yang ditandai nomor 2). Akan dilakukan kalkulasi yang sama seperti simpul pertama sebelumnya, dan akan didapatkan nilai f(n) 5 dan 7. Karena dalam A* digunakan priority queue, maka simpul yang bernilai f(n) 5 akan diproses terlebih dahulu. Tetangga simpul tersebut akan dibangkitkan (yang ditandai nomor 3), dan dilakukan hal yang sama seperti sebelumnya untuk membangkitkan simpul selanjutnya (yang ditandai nomor 4). Pada saat ini terdapat 2 simpul dengan nilai sama yaitu 7. Simpul yang bernilai f(n) = 7 dan terbuka ketika iterasi ke-2 akan diproses terlebih dahulu karena terletak di antrian yang lebih dulu daripada simpul yang bernilai f(n) = 7 dan terbuka ketika iterasi ke-4. Oleh karena itu simpul yang akan dibangkitkan adalah simpul yang ditandai nomor 5. Kejadian yang sama terjadi terus-menerus sampai pada iterasi ke-10 tercapai simpul tujuan (bewarna hijau) dengan nilai f(n) = 7. Simpul-simpul yang diberi warna kuning merupakan jalur menuju simpul tujuan. Simpul di bawah simpul tujuan yang diberi tanda silang (X) tidak sempat dibangkitkan, karena pada iterasi ke-10 sudah dicapai simpul tujuan. 3 (1,1) (1,1) = 5 (1,4) = 7 4 (1,0) (1,4) = 7 (1,0) = 7 5 (2,4) (1,0) = 7 (2,4) = 7 6 (0,0),(2,0) (2,4) = 7 (2,0) = 7 7 (3,4) (2,0) = 7 (3,4) = 7 8 (3,0) (3,4) = 7 (3,0) = 7 9 (3,3) (3,0) = 7 (3,3) = 7 10 (3,1) SELESAI IV. KESIMPULAN Algoritma A* ( A Star ) dapat digunakan untuk menyelesaikan persoalan rute terpendek yang merupakan pengembangan dari pathfinding. Dalam permainan Colossal

Carrot Caper, algoritma A* dapat digunakan untuk mencari rute terpendek dari posisi serigala menuju posisi pemain. Penerapan algoritma A* ini memanfaatkan fungsi heuristik yang dalam permainan ini menggunakan manhattan distance. Hasil dari penerapan algoritma A* ini adalah solusi optimal dengan biaya tempuh terkecil (jalur terpendek). Serigala akan mengikuti hasil algoritma A* yang merupakan jalur terpendek untuk bergerak mengejar pemain. UCAPAN TERIMA KASIH Terima kasih kepada Tuhan Yang Maha Esa, karena atas karunia-nyalah makalah berjudul Penerapan Algoritma A* Dalam Pathfinding AI Stealth Game ini dapat diselesaikan dengan baik. Penulis mengucapkan terima kasih kepada bapak Dr. Ir. Rinaldi Munir MR, ibu Masayu Leyla Khodra ST., MT., dan ibu Dr.Nur Ulfa Maulidevi atas bimbingan dalam mengajarkan saya mata kuliah IF2211 Strategi Algoritma. Tak lupa penulis juga mengucapkan terima kasih kepada keluarga dan rekan-rekan penulis atas bantuannya dalam pembuatan makalah ini. REFERENSI [1] https://www.redblobgames.com/pathfinding/a-star/introduction.html [2] Slide A-Star-Best-FS-dan-UCS-(2018) oleh Rinaldi Munir (http://informatika.stei.itb.ac.id/~rinaldi.munir/stmik/2017-2018/a-star- Best-FS-dan-UCS-(2018).pdf) [3] https://ldjam.com/events/ludum-dare/41/the-colossal-carrot-caper PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Bandung, 13 Mei 2018 Nicholas Thie 13515079