Anda di halaman 1dari 10

Penerapan Algoritma A* (Star) pada game Pac-Man

Diusulkan Oleh :
16 INFORMATIKA 11

Debbie Alyuwandira 16.11.0667


Ahmad Sidqi 16.11.0670
Moh. Ica Mahendra A. 16.11.0684
Dwiky Harry Prayoga 16.11.0694

JURUSAN INFORMATIKA
UNIVERSITAS AMIKOM YOGYAKARTA
YOGYAKARTA
2018
1. Pendahuluan

Kecerdasan buatan merupakan salah satu cabang ilmu komputer yang memberikan ilmu
pengetahuan terhadap komputer agar mampu menyelesaikan tugas – tugas atau berpikir seperti
manusia. Dalam perkembangannya kecerdasan buatan dalam bidang game saat ini sangat populer
untuk permainan manusia melawan komputer (NPC). Permainan antara manusia dan komputer
dapat meningkatkan kualitas game agar dapat lebih menyenangkan dan menantang untuk
dimainkan contohnya Pac-man.

Pac-Man adalah sebuah permainan yang dibuat oleh Namco dan muncul pertama kali di
Jepang tahun 1980. Pac-Man merupakan salah satu game terpopuler sejak dirilis hingga sekarang
dan dilihat sebagai ikon klasik budaya video game dari tahun 1980an. Bahkan sampai abad ke-20
ini permainan Pac-Man masih dimainkan oleh beberapa kalangan.

Gambar 1. Google Doodle Pac-Man, 2010


Dalam permainan tersebut, pengguna memainkan Pac-Man menjelajahi sebuah labirin,
memakan titik-titik yang tersebar di dalamnya. Jika pemain berhasil memakan seluruh titik-titik
tersebut, maka Pac-Man akan pindah ke tingkat berikutnya.

Tetapi terdapat 4 musuh Pac-Man berbentuk hantu yang menjelajahi labirin berusaha
menangkap Pac-Man. Keempat nama musuhnya adalah Blinky, Pinky, Inky, dan Clyde. Jika
salah satu musuh mengenai Pac-Man, maka pemain akan kehilangan satu nyawa. Di sekitar
labirin juga terdapat titik-titik (node) yang berukuran lebih besar (disebut pil energi) yang jika
dimakan dapat memberikan kemampuan pada pemain untuk memakan musuh-musuhnya selama
jangka waktu tertentu. Tentunya musuh-musuhnya yang telah dimakan akan muncul kembali dan
kembali mengejar Pac-Man.
Selama permainan, para hantu akan terus mengejar PacMan dalam gerakan yang tidak
mudah ditebak. Pengejaran tersebut menggunakan algoritma path-finding. Dalam bab-bab
berikutnya akan dibahas kandidat algoritma yang dipakai untuk mempercerdas hantu-hantu dalam
mengejar Pac-Man. Pengejaran yang dilakukan hantu-hantu tidak monoton dan susah diprediksi
pemain. Hal ini disebabkan kecerdasan buatan yang diimplementasi untuk masing-masing hantu
dibuat dengan sangat baik (mengingat permainan ini dibuat tahun 90an). Pembuat permainan ini,
Toru Iwatani pun mengaku bahwa bagian perancangan yang tersusah adalah saat merancang
kecerdasan buatan hantu-hantu.
"The algorithm for the four ghosts who are dire enemies of the Pac Man - getting all the
movements lined up correctly. It was tricky because the monster movements are quite complex.
This is the heart of the game. I wanted each ghostly enemy to have a specific character and its
own particular movements, so they weren't all just chasing after Pac Man in single file, which
would have been tiresome and flat…” – Toru Iwatani
A Star(A*) merupakan algoritma untuk penentuan jalur terpendek antara titik awal
dengan titik akhir tanpa melewati hambatan. Algoritma A* menggunakan pendekatan heuristik
yang memberikan peringkat ke tiap – tiap verteks yang direpresentasikan dengan node, dengan
cara memperkirakan rute terbaik yang dapat dilalui dari node tersebut. Algoritma A* banyak
digunakan dalam menyelesaikan masalah jalur terpendek dalam game karena keseederhanaan dan
efektifitasnya dan akan di implementasikan pada game ini.
Pada ghost di pacman ada 4 jenis ghost, yaitu Blinky, Pinky, Inky, dan Clyde yang mana
ditiap ghost masing-masing memiliki sifat tersendiri. Semua ghost memiliki prinsip menargetkan
pacman secara automatisasi. Dimulai dari Blinky yang memiliki sifat menargetkan pacman
menuju. Kedua Pinky, selain mengejar pacman Pinky selalu menargetkan 4 block didepan
pacman. Ketiga Inky memakai posisinya Blinky untuk mecoba menyergap pacman. Dan terakhir
Clyde yang memiliki sifat yang sama seperti Blinky sampai dia mendapat 8 node menuju
pacman, dia akan merubah arahnya dan kembali menentukan jalur yang akan di lalui.

2. Pipeline

Prinsip dari algoritma ini adalah melakukan transversal satu per satu pada tiap simpul
untuk memperoleh lintasan terpendek pada satu graf. Algoritma A* akan menghitung jarak salah
satu lintasan graf-graf, lalu menyimpannya dan kemudian menghitung jarak lintasan lainnya.
Ketika seluruh lintasan telah selesai dihitung, algoritma A* akan memilih lintasan yang paling
pendek.

Heuristik adalah penilai yang memberi harga pada setiap simpul yang memandu A*
mendapatkan solusi yang diinginkan. Dengan heuristik yang benar, maka A* pasti akan
mendapatkan solusi (jika memang ada solusinya) yang dicari. Dengan kata lain, heuristik adalah
fungsi optimasi yang menjadikan algoritma A* lebih baik daripada algoritma lainnya.

Fungsi Heuristik yang terdapat pada algoritma A* untuk menghitung tafsiran nilai dari
suatu simpul yang telah dilalui adalah :

F(n) = G(n) + H(n)

Dimana :
F(n) = Perkiraan total cost yang ditempuh dengan melalui path ini.
G(n) = Cost pasti yang digunakan untuk sampai ke node dari start.
H(n) = Perkiraan cost dari node ke goal.
Berikut cara kerja algorithma A* ( A star ) secara konseptual :

Start point
2
f(a)=1.5 + 4
D h(d)=4.5
f(a)=2 + 4.5

1.5 3
,5 Kenapa yang diambil yang atas ?
A h(a)=4
Atau ( f(a)=1.5 + 4 ) , jadi rute yang
E h(e)=2 harus dipilih adalah melewati A dahulu
2
untuk sampai ke current point karena A
B h(b)=2
2 lebih pendek jaraknya daripada melewati D
3

C
Current Point
h(c)=4

f(a)=1.5 + 4
D h(d)=4.5
f(d)=2 + 4.5

1.5 3
,5
f(b)=3.5 + 2
A h(a)=4
f(d)=2 + 4.5
E h(c)=2
2
B h(b)=2 f(c)=6.5 + 4
2
f(d)=2 + 4.5
3

C
Current Point
h(c)=4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 START A = ( 16 , 13 )
2
3 B = ( 11 , 13 )
4 C = ( 20 , 13 )
5
6 D = ( 8 , 16 )
7
E = ( 17 , 22 )
8
9 F = ( 8 , 28 )
10
11 G = ( 5 , 25 )
12 H = ( 20 , 25 )
13 B A C
14 I = ( 17 , 31 )
15
16 D END K = ( 3 , 31 )
17
18
19 JALUR YG DIPILIH DIPILIH
20
START A = ( 16 , 13 )
21
22 E B = ( 11 , 13 )
23
24 D = ( 8 , 16 )
25 H F = ( 8 , 28 )
26
27 END K = ( 3 , 31 )
28 G F
29
30
31 K I
32
3. Menghitung Heuristik

Rumus jarak TIGA titik:

Dengan menggunakan rumus dibawah, maka perhitungan semua titik dapat dilihat sebagai
berikut:

A ke B

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑏𝑥 )2 + (𝑘𝑦 − 𝑏𝑦 )

d(𝑥, 𝑦) = √(3 − 11)2 + (31 − 13)2 = 19,6


A ke C

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑐𝑥 )2 + (𝑘𝑦 − 𝑐𝑦 )

d(𝑥, 𝑦) = √(3 − 20)2 + (31 − 13)2 = 24,7


B ke D

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑑𝑥 )2 + (𝑘𝑦 − 𝑑𝑦 )

d(𝑥, 𝑦) = √(3 − 8)2 + (31 − 16)2 = 15,8


C ke E

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑐𝑥 )2 + (𝑘𝑦 − 𝑐𝑦 )

d(𝑥, 𝑦) = √(3 − 17)2 + (31 − 22)2 = 16 , 6


D ke F

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑑𝑥 )2 + (𝑘𝑦 − 𝑑𝑦 )

d(𝑥, 𝑦) = √(3 − 8)2 + (31 − 28)2 = 5,8

D ke G

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑑𝑥 )2 + (𝑘𝑦 − 𝑑𝑦 )

d(𝑥, 𝑦) = √(3 − 5)2 + (31 − 25)2 = 6,3


F ke G

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑑𝑥 )2 + (𝑘𝑦 − 𝑑𝑦 )

d(𝑥, 𝑦) = √(3 − 8)2 + (31 − 28)2 = 5,8


F ke K

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑑𝑥 )2 + (𝑘𝑦 − 𝑑𝑦 )

d(𝑥, 𝑦) = √(3 − 3)2 + (31 − 31)2 = 0


E ke H

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑑𝑥 )2 + (𝑘𝑦 − 𝑑𝑦 )

d(𝑥, 𝑦) = √(3 − 3)2 + (31 − 25)2 = 6


E ke F

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑑𝑥 )2 + (𝑘𝑦 − 𝑑𝑦 )

d(𝑥, 𝑦) = √(3 − 8)2 + (31 − 28)2 = 5,8


H ke I

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑔𝑥 )2 + (𝑘𝑦 − 𝑔𝑦 )

d(𝑥, 𝑦) = √(3 − 17)2 + (31 − 31)2 = 14


H ke F

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑔𝑥 )2 + (𝑘𝑦 − 𝑔𝑦 )

d(𝑥, 𝑦) = √(3 − 8)2 + (31 − 28)2 = 5,8


G ke K

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑐𝑥 )2 + (𝑘𝑦 − 𝑐𝑦 )

d(𝑥, 𝑦) = √(0 − 0)2 + (0 − 0)2 = 0


I ke K

2
d(𝑥, 𝑦) = √(𝑘𝑥 − 𝑒𝑥 )2 + (𝑘𝑦 − 𝑒𝑦 )

d(𝑥, 𝑦) = √(0 − 0)2 + (0 − 0)2 = 0


4. Mencari nilai 𝑓(𝑛) Algoritma A*

Setelah dari masing-masing node didapat dari mengukur jarak antara point 1 ke point lainnya,
lalu mencari nilai 𝑓(𝑛) menggunakan Algoritma A* dengan rumus:

f(n) = g(n) + h(n)

dimana, h(n) = Nilai heuristik antar koordinat; g(n) = Jarak koordinat ke titik tujuan sebagai berikut:

A ke B = 5 + 19,6 = 24,6
A ke C = 4 + 24,7 = 28,7
B ke D = 6 + 15,8 = 21,8
C ke E = 12 + 16,6 = 28,6
D ke F = 12 + 5,8 = 17,8
D ke G = 16 + 6,3 = 22,3
E ke H = 15 + 6 = 21
E ke F = 6 + 5,8 = 11,8
F ke K = 8 + 0 = 8
H ke F = 15 + 5,8 = 20,8
H ke I = 5 + 14 = 19
I ke K = 14 + 0 = 14
G ke K = 8 + 0 = 8

Setelah f(n) telah didapatkan, gambarkan rute perjalanan. Setiap pemilihan rute dilakukan dengan
memilih nilai terkecil.

Pada titik A memiliki 2 cabangan yaitu titik B dan C, maka f(n) yang harus dipilih adalah f(n)
yang menghasilkan biaya paling kecil, yaitu titk B.

 Maka 𝑓(𝑛) total yang yang didapat adalah:

24,6 + 21,8 + 17,8 + 8 =72,2

 Jalur yang dilalui:


A-B-D-F-K
5. Kesimpulan dan Saran

Berdasarkan hasil analisa dan pengujian yang dilakukan terhadap algoritma A* dalam
menemukan rute terpendek dalam sebuah maze, diperoleh kesimpulan sebagai berikut:
1. Algoritma A* dapat menemukan rute terpendek yang dapat dilalui dari start node menuju
goal node.
2. 2. Algoritma A* hanya menghitung cost path yang dilaluinya saja, sehingga
memungkinkan untuk tidak menemukan rute terbaik.
Saran yang dapat diberikan untuk pengembangan dari penerapan algoritma A* pada sebuah maze,
yaitu:
1. Penerapan Algoritma A* dilakukan pada perangkat dengan sistem tertanam.
2. Menggunakan ukuran maze yang lebih besar dan memiliki kompleksitas yang lebih
tinggi.
Daftar Pustaka
1. Penerapan Algoritma A* (A Star) Sebagai Solusi Pencarian Rute Terpendek Pada Maze
https://www.researchgate.net/publication/309562971_Penerapan_Algoritma_A_A_S
tar_Sebagai_Solusi_Pencarian_Rute_Terpendek_Pada_Maze?enrichId=rgreq-
2b7fb2b005a61a3ab4fcff779993d1a3-
XXX&enrichSource=Y292ZXJQYWdlOzMwOTU2Mjk3MTtBUzo0MjMyNTEyO
DY0NjY1NjRAMTQ3NzkyMjM3ODc5OQ%3D%3D&el=1_x_3&_esc=publication
CoverPdf
2. PENERAPAN ALGORITMA A STAR DAN FUZZY LOGIC SUGENO PADA GAME
PAC-MAN
http://eprints.mdp.ac.id/1875/1/jurnal.pdf
3. Easy A* (star) Pathfinding
https://medium.com/@nicholas.w.swift/easy-a-star-pathfinding-7e6689c7f7b2
4. https://www.youtube.com/watch?v=qwhXIzNrb9w

Anda mungkin juga menyukai