Penerapan Algoritma A A Star Sebagai Sol

Penerapan Algoritma A* (A Star) Sebagai Solusi Pencarian Rute
Terpendek Pada Maze
1

Rakhmat Kurniawan. R., ST, M.Kom, 2Yusuf Ramadhan Nasution, M.Kom

Program Studi Ilmu Komputer, Fakultas Sains dan Teknologi Universitas Islam Negeri Sumatera Utara
Jl. Williem Iskandar Pasar V Medan Estate, Sumatera Utara 20371, Indonesia
1
rakhmat.kr@uinsu.ac.id, 2ramadhannst@uinsu.ac.id
Abstrak
Pencarian rute terpendek dalam sebuah maze merupakan sesuatu yang sulit dilakukan dengan cara
mencoba-coba rute yang ada. Waktu yang dibutuhkan untuk menyelesaikannya tergantung dari kompleksitas maze
yang tersedia. Tentu saja maze yang memiliki kompleksitas yang tinggi akan sangat sulit dan membutuhkan waktu
yang lama pula untuk diselesaikan secara manual.
Untuk dapat menyelesaikan permasalahan rute terpendek pada maze, dapat digunakan suatu algoritma path
finding. A* merupakan salah satu algoritma path finding yang umum digunakan dalam menemukan rute terpendek.
Dengan menggunakan algoritma A*, penyelesaian masalah maze dapat dilakukan dengan mudah dan cepat.
Algoritma A* tidak hanya dapat menemukan solusi atau jalan keluar saja, akan tetapi dapat memberikan solusi
terbaik berupa rute terpendek.
Kata kunci: Rute terpendek, A Star, Path Finding, Maze

I. PENDAHULUAN
Maze secara bahasa dapat diartikan sebagai
tempat yang membingungkan. Istilah maze
digunakan untuk memberikan sebutan pada suatu
lokasi yang terdapat banyak jalan dan sedikit pintu
masuk ataupun keluar. Jalan atau rute-rute yang
terdapat didalam maze dibatasi oleh dinding,
sehingga dari satu rute tidak dapat mengetahui rute
yang ada di sebelahnya.
Untuk dapat menemukan jalan menuju pintu
keluar, dapat dilakukan dengan cara mencoba-coba
setiap rute hingga menemukan jalan keluar. Tentu
saja cara penyelesaian dengan mencoba-coba dapat
diselesaikan oleh manusia dengan mudah untuk maze
yang sederhana. Akan tetapi, untuk mendapatkan
solusi dari suatu maze yang sangat kompleks, akan
terasa sangat sulit dan membutuhkan waktu yang
lama.
Agar dapat menemukan solusi terbaik dari
setiap maze baik yang memiliki kompleksitas yang

rendah maupun yang tinggi, digunakan suatu
algoritma pencarian. Dalam penyelesaian maze ini,
akan digunakan Algoritma A* dimana algoritma ini
merupakan salah satu algoritma path finding yang
sering digunakan.
II. Landasan Teori
A. Path Finding
Path Finding merupakan salah satu materi yang
sangat penting didalam Artificial Intelligence. Path
Finding biasanya digunakan untuk menyelesaikan
masalah pada sebuah graph. Dalam matematika
graph merupakan himpunan titik-titik atau biasa
disebut dengan node yang tehubung oleh edge. Edge

yang menghubungkan setiap node merupakan suatu
vektor yang memiliki arah dan besaran tertentu.
Untuk dapat menemukan jalan dari Node Awal
menuju Node Tujuan, dilakukan penelusuran
terhadap graph tersebut. Penelusuran biasanya
dilakukan dengan mengikuti arah edge yang

menghubungkan antar node.

SN

A

30

D

30

G

40

20

40


20

40

20

40

30

B

30

E

30

H


30

GN

40

20

40

20

40

40

20

C


30

F

50

I

Gambar 1. Contoh Graph
Pada gambar 1, suatu graph dengan Node Awal
𝑆𝑁 dan Node Tujuan 𝐺𝑁 terhubung dengan nodenode lain oleh edge-edge yang memiliki besaran yang
berbeda. Jika ditelusuri, terdapat banyak kombinasi
rute yang dapat dilalui untuk menuju node tujuan.
Bisa dikatakan dari graph tersebut, setiap node akan
memberikan solusi arah menuju node tujuan.
B. Shortest Path
Shortest Path atau rute terpendek merupakan
suatu upaya optimalisasi dari path finding. Setiap rute
yang ditemukan pada path finding akan dicari rute
terpendeknya. Pencarian rute terpendeknya di

tentukan dengan akumulasi besaran vektor yang
dilalui untuk mencapai node tujuan. Akumulasi cost
yang memiliki nilai minimum merupakan rute
terpendek dari graph tersebut.
Ada beberapa macam persoalan lintasan
terpendek, antara lain:

Lintasan terpendek antara dua buah simpul
tertentu (a pair shortest path).
Lintasan terpendek antara semua pasangan
simpul (all pair shortest path).
Lintasan terpendek dari simpul tertentu ke semua
simpul yang lain (single-source shortest path).
Lintasan terpendek antara dua buah simpul yang
melalui beberapa simpul tertentu (intermediate
shortest path). (Ulva, 2014)

pengubahan parent atau tidak tergantung pada nilai
𝑔-nya melalui parent lama atau parent baru. Jika
melalui parent baru memberikan nilai 𝑔 yang lebih

kecil, maka dilakukan pengubahan parent. Jika
pengubahan parent dilakukan, maka dilakukan pula
update nilai 𝑔 dan 𝑓 pada suksesor tersebut. Dengan
perbaharuan ini, suksesor tersebut memiliki
kesempatan yang lebih besar untuk terpilih sebagai
simpul terbaik (best node) (Suyanto, 2014).

C. Algoritma A*
Algoritma A Star atau A* adalah salah satu
algoritma pencarian yang menganalisa input,
mengevaluasi sejumlah jalur yang mungkin dilewati
dan menghasilkan solusi. Algoritma A* adalah
algoritma komputer yang digunakan secara luas
dalam graph traversal dan penemuan jalur serta
proses perencanaan jalur yang bisa dilewati secara
efisien di sekitar titik-titik yang disebut node (Reddy,
2013).

Jika suksesor sudah pernah berada di Closed,
maka dilakukan pengecekan apakah perlu

pengubahan parent atau tidak, jika ya, maka
dilakukan perbaharuan nilai 𝑔 dan 𝑓 pada suksesor
tersebut serta pada semua β€œanak cucunya” yang
sudah pernah berada di Open. Dengan perbaharuan
ini, maka semua anak cucunya tersebut memiliki
kesempatan lebih besar untuk terpilih sebagai simpul
terbaik (best node) (Suyanto, 2014).

1.
2.
3.
4.

Karakteristik yang menjelaskan algoritma A*
adalah pengembangan dari β€œdaftar tertutup” untuk
merekam area yang dievaluasi. Daftar tertutup ini
adalah sebuah daftar untuk merekam area berdekatan
yang sudah dievaluasi, kemudian melakukan
perhitungan jarak yang dikunjungi dari β€œtitik awal”
dengan jarak diperkirakan ke β€œtitik tujuan” (Reddy,

2013).
Algoritma A* menggunakan path dengan cost
paling rendah ke node yang membuatnya sebagai
algoritma pencarian nilai pertama yang terbaik atau
best first search. Menggunakan rumus
𝑓(π‘₯) = 𝑔(π‘₯) + β„Ž(π‘₯) ……………………..(1)

dimana:
ο€­ 𝑔(π‘₯) adalah jarak total dari posisi asal ke lokasi
sekarang.
ο€­ β„Ž(π‘₯) adalah fungsi heuristik yang digunakan
untuk memperkirakan jarak dari lokasi sekarang
ke lokasi tujuan. Fungsi ini jelas berbeda karena
ini adalah perkiraan semata dibandingkan
dengan nilai aslinya. Semakin tinggi keakuratan
heuristik, semakin cepat dan bagus lokasi tujuan
ditemukan dan dengan tingkat keakuratan yang
lebih baik. Fungi 𝑓(π‘₯) = 𝑔(π‘₯) + β„Ž(π‘₯) ini adalah
perkiraan saat ini dari jarak terdekat ke tujuan
(Lubis, 2016).

Algoritm A* juga menggunakan 2 (dua) senarai
Open List dan Closed List sama seperti algoritma
dasar Best First Search. Terdapat 3 (tiga) kondisi
bagi setiap suksesor yang dibangkitkan, yaitu sudah
berada pada di Open, sudah berada di Closed, dan
tidak berada di Open maupun Closed. Pada ketiga
kondisi tersebut diberikan penanganan yang berbedabeda (Suyanto, 2014).
Jika suksesor sudah pernah berada di Open,
maka dilakukan pengecekan apakah perlu

Jika suksesor tidak berada di Open maupun
Closed, maka suksesor tersebut dimasukkan kedalam
Open. Tambahkan suksesor tersebut sebagai
suksesornya best node. Hitung cost suksesor tersebut
dengan menggunakan persamaan 1 (Suyanto, 2014).
III. Metodologi Penelitian
Dalam melakukan penelitian ini, dibutuhkan
kerangka kerja yang dijadikan sebagai acuan dalam
proses penyelesaian masalah. Tahapan-tahapan
dalam kerangka keija penelitian ini disusun secara
sitematis agar penyelesaian masalahnya menjadi
jelas. Adapun kerangka keija yang disusun dalam
penelitian ini adalah sebagai berikut:
Representasi Maze Dalam Bentuk Array

Perhitungan Langkah

Pemilihan Jalur

Hasil

Gambar 2. Tahap Penyelesaian Masalah
A. Representasi Maze Dalam Bentuk Array
Sebuah maze yang merupakan suatu input
didalam sistem yang akan dibangun akan disajikan
dalam bentuk array. Penyajian array dilakukan
dengan menggantikan elemen-elemen maze menjadi
suatu kode angka. Dalam penelitian ini kode-kode
yang digunakan untuk menggantikan elemen-elemen
maze adalah:
1. Start Node = 1
2. Goal Node = 2
3. Obstacle (Rintangan) = 0
4. Path = 3

Gambar 3. Contoh Maze

Gambar 5. Representasi Nilai β„Ž(π‘₯)
Pada langkah pertama hanya memunculkan 1
(satu) kemungkinan langkah yaitu node GB. Pada
langkah berikutnya akan dipilih node tetangga dari
GB yang memiliki cost terkecil. Langkah kedua
memiliki 2 kemungkinan yaitu FB dan HB. Untuk
memilih node yang terdekat, akan dilakukan
perhitungan nilai 𝑓(π‘₯) terhadap node FB dan node
HB. Jika diberikan nilai jarak antar node tetangga
sebesar 10, maka:
𝑓(𝐹𝐡) = 𝑔(𝐹𝐡) + β„Ž(𝐹𝐡)
𝑓(𝐹𝐡) = 10 + 18
𝑓(𝐹𝐡) = 28

Gambar 4. Representasi Maze dalam Array

Pemilihan langkah dimulai dari Start Node
hingga mencapai Goal Node. Dalam memilih
langkah hanya akan menghitung kemungkinan path
yang dapat dilalui, sedangkan obstacles akan
diabaikan. Pada gambar 3 dan 4, kemungkinan path
yang dapat dilalui untuk langkah pertama hanyalah 1
(satu) langkah kearah selatan.
B. Perhitungan Langkah
Perhitungan
langkah
dilakukan
dengan
menghitung nilai β„Ž(π‘₯) dan 𝑔(π‘₯) pada node tetangga.
Nilai β„Ž(π‘₯) merupakan cost yang dibutuhkan dari
current node ke goal node, sementara 𝑔(π‘₯)
merupakan cost yang dibutuhkan current node untuk
mencapai node berikutnya.

𝑓(𝐻𝐡) = 𝑔(𝐻𝐡) + β„Ž(𝐻𝐡)
𝑓(𝐻𝐡) = 10 + 16
𝑓(𝐻𝐡) = 26

Dari
dua
kemungkinan
node
yang
memungkinkan untuk dilalui, akan dipilih node
dengan cost minimal, dalam kasus ini yang dipilih
adalah node HB. Node FB akan dimasukkan kedalam
Open List dan node GB akan masuk kedalam Closed
List. Perhitungan node tetangga terhadap node yang
telah dipilih sebelumnya akan diteruskan hingga
mencapai node tujuan atau terjadi deadlock.
Jika terjadi deadlock, maka penelusuran akan
kembali ke node yang terakhir didaftarkan kedalam
Open List dan memasukkannya kedalam Closed List.
Proses ini akan terus diulang hingga mencapai node
tujuan. Gambar 7 merupakan rute terpendek yang
diperoleh dari perhitungan algoritma A*

Gambar 10. Pengujian 3
Gambar 7. Hasil Penelusuran Rute Terpendek
IV. Pengujian
Pengujian dilakukan dengan menyelesaikan
beberapa sampel maze yang berbeda dengan ukuran
16 π‘₯ 16. Berikut adalah hasil pengujian yang
dilakukan terhadap 5 (lima) sampel maze.

Gambar 11. Pengujian 4

Gambar 8. Pengujian 1

Gambar 12. Pengujian 5
V. Kesimpulan dan Saran
Berdasarkan hasil analisa dan pengujian yang
dilakukan terhadap algoritma A* dalam menemukan
rute terpendek dalam sebuah maze, diperoleh
kesimpulan sebagai berikut:
Gambar 9. Pengujian 2

1.

2.

Algoritma A* dapat menemukan rute
terpendek yang dapat dilalui dari start node
menuju goal node.
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.

1.

Daftar Pustaka
Lubis, E. S., 2016. Sistem Pengantaran
Makanan dengan Pendayagunaan Vehicle
Menggunakan Geographical Information
System (GIS) dan Algoritma A Star (A*),
Medan: Universitas Sumatera Utara.

2.

Reddy, H., 2013. Path Finding-Dijkstra’s and
A* Algorithm’s. [Online]
Available at:
http://cs.indstate.edu/hgopireddy/newalg.html
[Accessed 25 September 2016].

3.

Suyanto, 2014. Artificial Intelligence:
Searching, Reasoning, Planning, Learning. 2nd
ed. Bandung: Informatika.

4.

Ulva, A. F., 2014. Pencarian Rute Terpendek
dengan Adanya Forbidden Path Menggunakan
Algoritma Genetika, Medan: Universitas
Sumatera Utara.