Vous êtes sur la page 1sur 5

Algoritma A* (A Star / A Bintang) Algoritma

Algoritma A* (A Star / A Bintang) Algoritma - A* (dibaca "A bintang"/"A star") adalah algoritma
pencarian graf/pohon yang mencari jalur dari satu titik awal ke sebuah titik akhir yang telah ditentukan.
Algoritma A* menggunakan pendekatan heuristik h(x) yang memberikan peringkat ke tiap-tiap titik x
dengan cara memperkirakan rute terbaik yang dapat dilalui dari titik tersebut. Setelah itu tiap-tiap titk x
tersebut dicek satu-persatu berdasarkan urutan yang dibuat dengan pendekatan heuristik tersebut.
Maka dari itulah algoritma A* adalah contoh dari best-first search. Algoritma ini pertama kali ditemukan
pada tahun 1968 oleh Peter Hart, Nils Nilsson dan Bertram Raphael. Dalam tulisan mereka, algoritma ini
dinamakan algoritma A. Penggunaan algoritma ini dengan fungsi heuristik yang tepat dapat memberikan
hasil yang optimal, maka algoritma inipun disebut 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 posisi awal sebuah benda.

A adalah simpul yang sedang dijalankan algortima pencarian jalan terpendek.

Simpul adalah petak-petak kecil sebagai representasi dari areapathfinding. 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.
A* memperhitungkan cost dari current state ke tujuan denga fungsi heuristic, Algoritma ini juga
mempertimbangkan cost yang telah ditempuh selama ini dari initial state ke current state. Jadi jika ada

jalan yang telah ditempuh sudah terlalu panjang dan ada jalan lain yang cost-nya lebih kecil tetapi
memberikan posisi yang sama dilihat dari goal, jalan yang lebih pendek yang akan dipilih.[8]

Ok, tanpa berbelit-belit langsung saja kita berkenalan dengan metode yang satu ini.

Langkah

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

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)). Hasil data nilai G ini selanjutnya kita gambarkan sbb :

Selain dari perhitungan tersebut, kita dapat mengalikan dengan konstanta tertentu untuk memanipulasi
biaya, misal : ketika melewati sungai maka G = G * 2.
Langkah

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. Untuk lebih jelasnya silahkan lihat gambar di bawah :

Langkah

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. Untuk lebih jelasnya lihat gambar di bawah :

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

Langkah

Looping

Perulangan

Setelah pergerakan pertama selesai selanjutnya lakukan perulangan dari dari langkah 1 sampai 4. Untuk
lebih jelasnya setiap pergerakan akan digambarkan di bawah :

Selamat Akhirnya Anda telah berhasil mempelajari algritma A* untuk proses pencarian rute terdekat.

Vous aimerez peut-être aussi