Index of /Kuliah2016-2017/Desain Game 3D

Algoritma A* untuk
AI Path Finding bagi NPC

Pendahuluan – Definisi AI
• Kecerdasan Buatan merupakan bagian dari ilmu komputer yang mempelajari
bagaimana membuat mesin (komputer) dapat melakukan pekerjaan seperti dan
sebaik yang dilakukan oleh manusia bahkan bisa lebih baik daripada yang
dilakukan manusia.
• H. A. Simon [1987] : “Kecerdasan buatan (artificial intelligence) merupakan
kawasan penelitian, aplikasi dan instruksi yang terkait dengan pemrograman
komputer untuk melakukan sesuatu hal yang ‐dalam pandangan manusia adalah‐
cerdas”
• Rich and Knight [1991]: “Kecerdasan Buatan (AI) merupakan sebuah studi tentang
bagaimana membuat komputer melakukan hal‐hal yang pada saat ini dapat
dilakukan lebih baik oleh manusia.”
• John McCarthy [1956] : “mengetahui dan memodelkan proses –proses berpikir
manusia dan mendesain mesin agar dapat menirukan perilaku manusia.”

Kecerdasan Buatan
• Encyclopedia Britannica: : “Kecerdasan Buatan (AI) merupakan
cabang dari ilmu komputer yang dalam merepresentasi pengetahuan

lebih banyak menggunakan bentuk simbol‐simbol daripada bilangan,
dan memproses informasi berdasarkan metode heuristic atau dengan
berdasarkan sejumlah aturan”.
• AI berusaha untuk membangun entitas yang cerdas serta
memahaminya.
• Alasan lain untuk belajar AI adalah bahwa entitas cerdas yang
dibangun ini menarik dan berguna.
• Cerdas = memiliki pengetahuan + pengalaman, penalaran (bagaimana
membuat keputusan & mengambil tindakan), moral yang baik

Tujuan AI
• Membuat mesin menjadi lebih pintar ฀
• Memahami apa itu Kecerdasan ฀
• Membuat mesin lebih bermanfaat

Arah AI
• Mengembangkan metode dan sistem untuk menyelesaikan masalah
AI tanpa mengikuti cara manusia menyelesaikannya (Sistem Pakar /
Expert System) ฀
• Mengembangkan metode dan sistem untuk menyelesaikan masalah

AI melalui pemodelan cara berpikir manusia, atau cara bekerjanya
otak manusia (Neural Networks)

Perbedaan Antara Pemrograman AI dan
Konvensional

Kelebihan AI
• Lebih bersifat permanen ฀
• Lebih mudah diduplikasi & disebarkan ฀
• Lebih murah ฀
• Bersifat konsisten dan teliti ฀
• Dapat didokumentasi ฀
• Dapat mengerjakan beberapa task lebih cepat dan lebih baik
dibanding manusia

Contoh peran AI dalam Game
• 1997, Deep Blue mengalahkan Garry Kasparov, the World Chess 
Champion 
• Deep Blue chess machine menggunakan komputer IBM, dibuat tahun
1990‐an oleh Hsu, Campbell, Tan, Hoane, Brody, Benjamin 

• Deep Blue mampu mengevaluasi 200 juta posisi bidak catur /detik

Pendahuluan
• Pencarian jalur /pathfinding adalah proses pencarian rute/jalur (biasanya
rute terdekat) dari suatu arena yang pada umumnya memiliki penghalang‐
penghalang dari arena tersebut.
• Adapun penghalang dapat berupa tembok, sungai, dsb.
• Goal dari pathfinding ini pada umumnya adalah untuk mencari jalur paling
efisien dengan sebisa mungkin menghindari penghalang yang ada.
• Pathfinding dapat diterapkan dalam membuat AI dari suatu game, misalnya
dengan AI tersebut dapat mengejar musuh secara efisien dan tanpa
menabrak tembok atau menghindari penghalang lain.
• Terdapat beberapa metode yang dapat diterapkan dalam pathfinding ini,
salah satu metode yang sering digunakan adalah A*.

A* PathFinding
• A* adalah algoritma Best First Search yang merupakan perpaduan Uniform
Cost Search yang memilih jarak paling kecil dari simpul awal ke simpul
berikutnya dan Greedy‐Best First Search yang menggunakan nilai heuristik
atau nilai perkiraan untuk menentukan simpul berikutnya.

• �(�) = �(�) + � (�)
• dimana,
�(�) ∶ ����� ���� ������ℎ���
�(�) ∶ ����� ���� �������ℎ ���� ���� ����
ℎ(�) ∶ ����� ��������� ���� ���� ���� ��� �� ������

• Algoritma A* ini akan menemukan rute yang complete (selalu menemukan
solusi jika ada) dan optimal.

Langkah 1 : Arena
• Berikut adalah contoh simple
arena yang akan kita gunakan.
Warna hijau adalah starting
point, warna merah adalah
goal/end point, dan biru
adalah penghalang. Goal dari
aplikasi ini adalah mencari
rute dari titik hijau ke merah
tanpa melewati penghalang
biru


Langkah 2 : Movement Cost / Biaya
Pergerakan
• Kita asumsikan setiap langkah dari hijau adalah legal baik
vertikal, horizontal, maupun diagonal dengan catatan
tidak membentur tembok.
• Setiap langkah yang diizinkan kita berikan nilai G dimana
G adalah cost atau biaya dalam setiap langkah.
• Dalam kasus ini kita akan berikan nilai 10 untuk setiap
langkah vertikal maupun horizontal, dan 14 untuk
diagonal.
• Nilai 14 kita dapatkan dari perhitungan pitagoras dimana:
14,1421 = sqrt(sqr(10)+sqr(10)).
• Selain dari perhitungan tersebut, kita dapat mengalikan
dengan konstanta tertentu untuk memanipulasi biaya,
misal : ketika melewati sungai maka G = G * 2.

Langkah 3 : Estimated Movement / Estimasi
gerakan
• Langkah selanjutnya kita

hitung
biaya
estimasi
pergerakan
dan
kita
simbolkan dengan H.
• Nilai H ini secara singkat
adalah nilai jarak / estimasi
biaya dari pergerakan dari
suatu titik terhadap titik
finish dengan mengabaikan
penghalang yang ada.

Langkah 4 : Scoring / Penilaian
• Setelah nilai G dan H kita
dapatkan, maka kita berikan
skor dari masing‐masing titik
yang akan dilalui.
• Skor

kita
lambangkan
misalnya dengan F dimana
nilai F = G + H.
• Nilai F selanjutnya kita
masukkan dalam setiap titik
dari setiap langkah yang akan
dilalui.

Ambil Keputusan
• Dari setiap nilai
tersebut kita
ambil keputusan
dengan
mengambil
langkah dengan
nilai F terkecil.

Langkah 5 : Looping / Perulangan
• Setelah pergerakan pertama selesai selanjutnya lakukan perulangan dari dari

langkah 1 sampai 4.

Urutan Langkah