Anda di halaman 1dari 11

ALGORITMA A*

Disusun untuk memenuhi tugas mata kuliah Artificial Intelligence

Dosen Pengampu :

Nur Khafidhoh, M.Kom.

Disusun oleh :

1. Nanda Ade Fahreza


2. M. Rio Andika
3. M. Adam Zuhrial

PROGRAM STUDI SISTEM INFORMASI


FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS KH. A. WAHAB HASBULLAH
TAMBAKBERAS JOMBANG
2023
KATA PENGANTAR

Puji syukur kehadirat Allah SWT. Yang telah melimpahkan rahmat dan
hidayahnya kepada kita semua umumnya dan pada seluruh kelompok yang telah
berpartisipasi sehingga dapat menyelesaikan tugas makalah ini.

Tugas ini dapat terlaksana karena adanya dukungan baik material maupun
spiritual dari semua pihak yang telah membantu kelancaran tugas ini. Oleh karena
itu, penulis mengucapkan banyak terima kasih kepada semua pihak yang telah
berkontribusi dalam pembuatan makalah ini.

Besar harapan agar makalah ini dapat bermanfaat bagi semua pihak dan
dijadikan wawasan inspirasi terhadap pembaca. Terlepas dari semua itu penulis
mohon maaf apabila dalam penyusunan makalah ini terdapat kesalahan dalam segi
kalimat maupun tata bahasanya. Oleh karena itu dengan tangan terbuka penulis
menerima segala saran dan kritik dari pembaca yang niatnya akan berguna bagi
saya. Terima kasih

Jombang, 10 November 2023

Penulis

ii
DAFTAR ISI

HALAMAN JUDUL..............................................................................................................................

KATA PENGANTAR...........................................................................................................................

DAFTAR ISI..........................................................................................................................................

BAB I PENDAHULUAN......................................................................................................................

A. Latar Belakang...............................................................................................................................

B. Rumusan Masalah..........................................................................................................................

C. Tujuan............................................................................................................................................

BAB II PEMBAHASAN.......................................................................................................................

A. Pengertian Algoritma A*...............................................................................................................

B. Permasalahan.................................................................................................................................

C. Ruang Lingkup Algoritma A*.......................................................................................................

BAB III PENUTUP...............................................................................................................................

A. Simpulan........................................................................................................................................

DAFTAR PUSTAKA............................................................................................................................

iii
BAB I

PENDAHULUAN

A. Latar Belakang
Algoritma A* adalah salah satu algorima pencarian yang cukup
populer di kalangan pemrogram. Algoritma ini memberikan solusi yang
cukup mangkus bagi proses pathfinding (pencarian jalan), sehingga sering
digunakan dalam pembuatan perangkat lunak berjenis permainan (game).

Dengan penulisan makalah ini diharapakan memberikan wawasan


kepada para pembaca, karena Algoritma A* dapat dijadikan sebagai salah
satu contoh pemrograman branch and bound, yaitu sebuah metode
pemecahan masalah yang juga dibahas pada mata kuliah tersebut

B. Rumusan Masalah.
1. Apa itu Algoritma A* atau A Star ?
2. Bagaimana membandingkan A* dengan metode strategi algoritmik Branch
and Bound ?

C. Tujuan
1. Megenalkan Algoritma A*
2. Membandingkan A* dengan metode strategi algoritmik Branch and
Bound?

1
BAB II

PEMBAHASAN

A. Pengertian Algoritma A*

Algorima A*, merupakan salah satu contoh algoritma pencarian


yang cukup popular di dunia. Jika kita mengetikkan Algoritma A* pada
sebuah mesin pencari, seperti google.com, maka akan kita temukan
lebih dari sepuluh ribu literatur mengenai algoritma A* beberapa
terminologi dasar yang terdapat pada algoritma ini adalah starting
point, simpul (nodes), A, open list, closed list, harga (cost), halangan
(unwalkable). Starting point adalah sebuah terminologi untuk posisi
awal sebuah benda.

A adalah simpul yang sedang dijalankan dalam algortima pencarian


jalan terpendek. Simpul adalah petak-petak kecil sebagai representasi
dari area pathfinding.

Bentuknya dapat berupa persegi, lingkaran, maupun segitiga. open


list adalah tempat menyimpan data simpul yang mungkin diakses dari
starting point maupun simpul yang sedang dijalankan. Closed list
adalah tempat menyimpan data simpul sebelum A yang juga merupakan
bagian dari jalur terpendek yang telah berhasil didapatkan.

Harga (F) adalah nilai yang diperoleh dari penjumlahan nilai G,


jumlah nilai tiap simpul dalam jalur terpendek dari starting point ke A,
dan H, jumlah nilai perkiraan dari sebuah simpul ke simpul tujuan.
Simpul tujuan yaitu simpul yang dituju.

Rintangan adalah sebuah atribut yang menyatakan bahwa sebuah


simpul tidak dapat dilalui oleh A. Prinsip algoritma ini adalah mencari
jalur terpendek dari sebuah simpul awal (starting point) menuju simpul
tujuan dengan memperhatikan harga (F) terkecil.

2
Diawali dengan menempatkan A pada starting point, kemudian
memasukkan seluruh simpul yang bertetangga dan tidak memilik atribut
rintangan dengan A ke dalam open list.

Kemudian mencari nilai H terkecil dari simpul-simpul dalam open


list tersebut. Kemudian memindahkan A ke simpul yang memiliki nilai
H terkecil. Simpul sebelum A disimpan sebagai parent dari A dan
dimasukkan ke dalam closed list.

Jika terdapat simpul lain yang bertetangga dengan A (yang sudah


berpindah) namun belum termasuk kedalam anggota open list, maka
masukkan simpul-simpul tersebut ke dalam open list. Setelah itu,
bandingkan nilai G yang ada dengan nilai G sebelumnya (pada langkah
awal, tidak perlu dilakukan perbandingan nilai G). Jika nilai G
sebelumnya lebih kecil maka A kembali ke posisi awal.

Simpul yang pernah dicoba dimasukkan ke dalam closed list. Hal


terebut dilakukan berulang- ulang hingga terdapat solusi atau tidaka ada
lagi simpul lain yang berada pada open list.

3
B. Permasalahan

Rumusan Formula A*
Untuk fungsi matematisnya dapat dituliskan seperti berikut:
f(n) = g(n) + h’(n)

Keterangan :
f(n) : fungsi dari evaluasi
g(n) : biaya yang telah dikeluarkan dari keadaan awal hingga node (n)
h’(n) : estimasi dari biaya yang dikeluarkan dari keadaan n atau node (n) hingga
sampai ke tujuan.
Jika h = h’, maka proses dari pencarian tersebut telah mencapai tujuannya (goal).
Jika g = h’ = 0 maka f’ random, yang berarti sistem tersebut tidak bisa untuk
dikendalikan.
Jika g = k, k adalah konstanta dan biasanya bernilai 1, h’ = 0, yang berarti sistem
tersebut menggunakan teknik best first search.

Contoh kasus Algoritma A*


Diberikan suatu kasus seperti gambar, jika seorang pengendara akan pergi
berkeliling dari pontianak menuju ke melawi hingga kembali ke pontianak,
manakah rute yang paling optimal untuk dilalui oleh si pengendara ? Dalam hal
ini rute optimal adalah jarak tercepat untuk dilalui dari pontianak-melawi-
pontianak.

4
Langkah pertama tentukan nilai dari h'(n) dengan menggunakan rumus dua titik :

Perhitungan:
A ke B = (2,14), (14,19) = 13
A ke C = (2,14), (38,15) = 36,01
A ke D = (2,14), (32,4) = 31,62
A ke E = (2,14) , (13,5) = 14,21
B ke A = (14,19), (2,14) = 13
B ke C =(14,19), (38,15) = 24,33
B ke D = (14,19), (32,4) = 23,43
B ke E = (14,19), (13,5) = 14,04
C ke A = (38,15), (1,14) = 36,01
C ke B = (38,15), (14,19) = 24,33
C ke D = (38,15), (32,4) = 12,43
C ke E = (38,15), (13,5) = 26,93
D ke A = (32,4), (1,14) = 31,62
D ke B = (32,4), (14,19) = 23,43
D ke C = (32,4), (38,15) = 12,53
D ke E = (32,4), (13,5) = 19,03
E ke A = (13,5), (1,14) = 14,21
E ke B = (13,5), (14,19) = 14,04
E ke C = (13,5), (38,15) = 26,93
E ke D = (13,5), (32,4) = 19,03

Setelah itu mencari nilai f(n). g(n) didapat dari mengukur jarak antara 1 point ke
point lainnya lalu mencari nilai f(n) dengan rumus f(n)=h’(n)+g(n):

A ke B = 13 + 18 = 31
A ke C = 36,01 + 37 = 73,01
A ke D = 31,62 + 40 = 71,62
A ke E = 14,21 + 20 = 34,21
B ke A = 13 + 18 = 31
B ke C = 24,33 + 29 = 53,33
B ke D = 23,43 + 34 = 57,43
B ke E = 14,04 + 16 = 30,04
C ke A = 36,01 + 37 = 73,01

5
C ke B = 24,33 + 29 = 53,33
C ke D = 12,43 + 17 = 29,43
C ke E = 26,93 + 35 = 61,93
D ke A = 31,62 + 40 = 71,62
D ke B = 23,43 + 34 = 57,43
D ke C = 2,53 + 17 = 29,43
D ke E = 19,03 + 20 = 39,03
E ke A = 14,21 + 20 = 34,21
E ke B = 14,04 + 16 = 30,04
E ke C = 26,93 + 35 = 61,93
E ke D = 19,03 + 20 = 39,03

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

Dari gambar diatas, kita temukan rute terbaik dari metode ini adalah A-B-E-D-C-
A.

6
BAB III

PENUTUP

A. Simpulan
Berdasarkan hasil simulasi algoritma A* pada makalah ini dapat disimpulkan
hal-hal berikut :

1. Penentuan rute terbaik dapat dilakukan dengan Algoritma A* sehingga


dapat diterapkan dengan baik.

2. Simulasi ini dapat menentukan rute (jalur) terbaik dari titik awal (start)
menuju titik akhir (finish) dengan hambatan-hambatan yang diberikan
disetiap rute. Dari hasil pengujian, rute yang ditemukan merupakan rute yang
terbaik dengan nilai f(n) terkecil dibandingkan dengan rute-rute (jalur-jalur)
lainnya.

3. Untuk pengembangan lebih lanjut disarankan menggunakan algoritma lain


selain algoritma A* untuk menentukan jalur (rute) yang terbaik. Dan juga
dapat membandingkan algoritma lain tersebut apakah lebih baik dalam
penentuan jalur tercepat.

7
DAFTAR PUSTAKA

A* Algorithm Tutorial, http://www.geocities.com/jheyesjones/


astar.html.
Patrick Lester, A* Pathfinding for Beginners,
http://www.gamedev.net/reference/ar ticles/article2003.asp,
2003.
Rinaldi Munir, M.T., Diktat Kuliah IF2251 Strategi Algoritmik, Lab. Ilmu
dan Rekayasa Komputasi Departemen Teknik Informatika Institut
Teknologi Bandung, 2005.

Anda mungkin juga menyukai