7/26/2019 21. Maningar
1/5
Pelita Informatika Budi Darma Volume : VI Nomor: 3 April 2014 ISSN 23 1 9425
Perancangan Aplikasi Pencarian Jalur Terpendek Menggunakan Algoritma A*. Oleh : ManingarSormin
101
PERANCANGAN APLIKASI PENCARIAN JALUR TERPENDEK
MENGGUNAKAN ALGORITMA A*
Maningar Sormin (0911508)
Mahasiswa Program Studi Teknik Informatika, STMIK Budidarma MedanJl. Sisingamangaraja No.338 Simpang Limun Medan
www.stmik-budidarma.ac.id // E-mail : [email protected]
ABSTRAK
Dalam Kehidupan sehari-hari kebanyakan orang sering melakukan perjalanan dari suatu tepat ke
tempat lain yang akan dituju dengan menggunakan jalan yang sama. Untuk mengoptimalkan jarak perjalanan
maka sangat diperlukan penentuan jalur terpendek dari tempat asal ke tempat tujuan. Pencarian jalur terpendek
merupakan permasalahan untuk menemukan jalur diantara dua node yaitu node awal dan node tujuan. Node
akan merepresentasikan lokasi pada peta sedangkan bobotnya akan merepresentasikan jarak yang dibutuhkan
untuk melakukan perjalanan antara dua tempat tersebut.
Salah satu metode yang dapat digunakan untuk menyelesaikan permasalahan pada pencarian jalur
terpendek yaitu dengan menggunakan algoritma A*. Algoritma A* merupakan salah satu algoritma yang
digunakan untuk memecahkan masalah pencarian jalur terpendek yang penerapannya dilakukan dengan carabertahap. Pada penelitian ini, penulis membuat sebuah aplikasi yang dapat digunakan untuk melakukan
pencarian jalur terpendek antara beberapa rumah sakit yang ada di kota Medan yang tentunya dengan cara
menerapkan algoritma A*.
Kata Kunci : Algoritma A*, Pencarian Jalur Terpendek, Aplikasi,Rumah sakit kota Medan, VB.6.0
1. Pendahuluan
1.1 Latar Belakang Masalah
Hampir setiap orang tentu pernah bepergian kesuatu tempat baik untuk bekerja, rekreasi, atau
melakukan aktivitas lainnya, pencarian jalur terpendek
saat melakukan perjalanan merupakan hal yang
diharapkan, Alasan pencarian jalur terpendek adalah
untuk meringkas perjalanan dan menghemat biayaperjalanan. Saat melakukan perjalanan ke tempat
tujuan sering kali seseorang membawa peta sebagaipetunjuk jalan, Penggunaan peta dalam bentuk ini
secara visual mampu menggambarkan jalur yang akan
ditempuh dari kota asal ke kota tujuan. Pemakaian
peta kertas mempunyai kendala secara visual yaituharus dapat mengurutkan jalur-jalur mana saja yang
harus ditempuh, Selain itu pengguna peta jenis ini juga
terkadang tidak dapat memberikan suatu saran jalurmana yang paling efektif yang dapat dilalui.
Untuk menyelesaikan masalah di atas maka
diperlukan suatu sistem yang dapat membantu dalam
mencari dan menentukan lintasan terpendek sehingga
didapat suatu jalur yang paling optimal untukmencapai suatu lokasi. Dalam penelitian ini akan
dibuat sebuah perangkat lunak yang dapat
menyelesaikan permasalahan di atas yaitu suatuperangkat lunak yang dapat memberikan rute jarak
paling optimal pada sebuah peta dengan menggunakan
Algoritma A*. Pencarian ini akan direpresentasikandalam bentuk graf berbobot di mana setiap vertex
digambarkan dengan koordinat dua dimensi serta
bobot edge nya adalah jarak antara vertek yang salingterhubung.
Algoritma A* adalah algoritma pencarian pada
graf yang mencari jalur dari satu verteks awal ke
sebuah verteks akhir yang telah ditentukan. AlgoritmaA* menggunakan pendekatan heuristik yang
memberikan peringkat ke tiap-tiap verteks yang
direpresentasikan dengan Rumah Sakit di kota Medan,
dengan cara memperkirakan rute terbaik yang dapat
dilalui dari verteks tersebut. Setelah itu tiap-tiapverteks tersebut dicek satu-persatu berdasarkan urutan
yang dibuat dengan pendekatan heuristik tersebut.
Perumusan Masalah
Sesuai dengan penjelasan dan uraian pada latar
belakang masalah, maka penulis menentukanperumusan masalah sebagai berikut :
1. Bagaimana proses pencarian jalur terpendek
menggunakan algoritma A*?2. Bagaimana cara menerapkan algoritma A*
terhadap pencarian jalur terpendek?
3. Bagaimana merancang sebuah aplikasi pencarian
jalur terpendek menggunakan algoritma A*?
Batasan Masalah
Agar pembahasan dalam penelitian tidakmenyimpang dari rumusan masalah, maka diberikan
batasan masalah sebagai berikut :
1. Perancangan sistem dilakukan denganmenggunakan pemrograman Visual Basic 6.0.
2. Menggunakan algoritma A* untuk pencarian rutetependek.
7/26/2019 21. Maningar
2/5
Pelita Informatika Budi Darma Volume : VI Nomor: 3 April 2014 ISSN
23 1 9425
Perancangan Aplikasi Pencarian Jalur Terpendek Menggunakan Algoritma A*. Oleh : ManingarSormin
102
2 Landasan Teori
2.1 Pengertian PencarianMenurut Anita.D, M.Arhami (2006: 24)
Pencarian adalah suatu proses mencari solusi darisuatu permasalahan melalui sekumpulan kemungkinan
ruang keadaan (state space). Ruang keadaan maupunruang keadaan yang berisi semua keadaan yangmungkin.
Secara umum, proses pencarian dapat
dilakukan sebagai berikut:
1. Memeriksa keadaan sekarang atau awal2. Mengeksekusi aksi yang dibolehkan untuk
memindahkan kekeadaan berikutnya.
3. Memeriksa jika keadaan baru merupakansolusinya. Jika tidak, keadaan baru tersebut
menjadi keadaan sekarang dan proses ini diulangi
sampai solusi ditemukan atau ruang keadaan habis
terpakai.
Masalah pencarian merupakan pencarian solusi
yang direncanakan, yang mencari lintasan darikeadaan sekarang sampai keadaan tujuan. Suatu
masalah pencarian direpresentasikan menggunakangraf . Keadaan yang direpresentasikan sebagai node
(simpul), sedangkan langkah yang dibolehkan atau
aksi direpresentasikan dengan arc(busur).
2.2 Lintasan Terpendek (Shortest Path)
Lintasan terpendek merupakan salah satupersoalan optimasi. Graf yang digunakan dalam
pencarian lintasan terpendek adalah graf berbobot
(weighting graph), yaitu graf yang setiap sisinya
diberikan nilai atau bobot. Bobot pada sisi graf dapat
menyatakan jarak antar kota, waktu pengiriman pesan,
ongkos pembangunan, dan sebagainya. Asumsi yangkita gunakan di sini adalah bahwa semua bobot
bernilai positif. Kata teroptimal berbeda maknanya
bergantung pada tipikal persoalan meminimalisasibobot pada suatu lintasan di dalam graf.
Ada beberapa macam persoalan lintasan
terpendek, antara lain :a. Lintasan terpendek antara dua simpul tertentu..
b. Lintasan terpendek antara semua pasangan simpul.c. Lintasan terpendek dari simpul tertentu ke semua
simpul yang lain.
d. Lintasan terpendek antara dua buah simpul yangmelalui beberapa simpul tertentu.
2.3 Algoritma A*
Algoritma ini merupakan algoritma Best First
Search yang menggabungkan Uniform Cost Search
dan Greedy Best-First Search. Biaya yangdiperhitungkan didapat dari biaya sebenarnya
ditambah dengan biaya perkiraan.
Dalam notasi matematika dituliskan sebagaiberikut:
f(n) =g(n)+h(n)
Keterangan:
1. g(n) adalah total jarak yang didapat dariverteks awal ke verteks sekarang (halangan).
2. h(n) adalah perkiraan jarak dar iverteks sekarang(yang sedang dikunjungi) ke vertex tujuan. Sebuah
fungsi heuristik digunakan untuk membuatperkiraan seberapa jauh lintasan yang akan diambil
keverteks tujuan.3. f(n) adalah jumlah dari g(n) dan h(n). ini adalah
perkiraan jalur terpendek sementara. f(n) adalah
jalur terpendek yang sebenarnya yang tidak
ditelusuri sampai AlgoritmaA* diselesaikan.
Sama dengan algortima dasar Best First Search,
algoritma A* ini juga menggunakan dua senarai :
OPEN dan CLOSED. Terdapat tiga kondisi bagisetiap suksesor yang dibangkitkan, yaitu: sudah berada
di OPEN, sudah berada di CLOSED, dan tidak berada
di OPEN maupun CLOSED. Pada ketiga kondisi
tersebut diberikan penanganan yang berbeda-beda.
Jika suksesor sudah pernah berada di OPEN,
maka dilakukan pengecekan apakah perlu pengubahanparent atau tidak tergantung pada nilai g-nya melalui
parent lama atau parent baru. Jika melalui parent barumemberikan nilai g yang lebih kecil, maka dilakukan
pengubahan parent. Jika pengubahan parent dilakukan,
maka dilakukan juga perbaruan (update) nilai g dan fpada suksesor tersebut. Untuk terpilih sebagai simpul
terbaik (best node).
Seperti pada kebanyakan algoritma pencarianinformasi, terlebih dahulu dicari rute yang tampaknya
mempunyai kemungkinan besar untuk menuju ke arah
tujuan. Apa yang membuat A * algoritma satu satunya
pertama yang terbaik dalam proses pencarian adalah
algoritma ini mengambil jarak perjalanan ke arah
tujuan (dimana g(n) bagian dari heuristis adalah jarakdari awal, dan tidak sekedar menjadi biaya lokal
sebelum node diperluas). Beberapa terminologi dasar
yang terdapat pada algoritma ini adalah starting point,pada simpul (nodes) yang ada di OPEN list, CLOSED
list.
3 Pembahasan
3.1 Analisa Sistem
Tahap analisa merupakan tahap yang sangatberpengaruh dan menentukan terhadap tahap
selanjutnya. Kesalahan atau tidak lengkapnya analisa
sistem akan berakibat tidak tercapainya keinginan
pemakai atau user sesuai dengan yang diharapkan.
Tujuan dari analisa sistem antara lain adalah untukmempelajari aktivitas system untuk mendapatkan
gambaran yang menyeluruh tentang sistem yang
sedang berjalan dan permasalahan yang terjadi sertaanalisa dari algoritma yang digunakan.
Hasil penentuan jarak terdekat akan menjadi
pertimbangan dalam pengambilan keputusan untukmenunjukkan jalur yang akan ditempuh. Algoritma A*
dipakai untuk mencari jarak terdekat yang menjadi
solusi terbaik karena cakupan parameter algoritma iniselalu menemukan solusi yang mendekati optimal
7/26/2019 21. Maningar
3/5
Pelita Informatika Budi Darma Volume : VI Nomor: 3 April 2014 ISSN
23 1 9425
Perancangan Aplikasi Pencarian Jalur Terpendek Menggunakan Algoritma A*. Oleh : ManingarSormin
103
untuk semua permasalahan yang mempunyai jumlahtitik atau simpul yang banyak.
.
3.2 Analisa dan Logika Metode
Algoritma A* digunakan dalam menemukan
lintasan terpendek pada suatu graf dan merupakanpengembangan dari algoritma bestfirstsearch . Samaseperti BFS, algoritmaA* juga menggunakan fungsi
heuristik
Graf yang digunakan dalam pencarian lintasan
terpendek adalah graf berbobot (weighting graph),yaitu graf yang setiap sisinya diberikan nilai atau
bobot. Bobot pada sisi graf dapat menyatakan jarak
antar kota. Asumsi yang kita gunakan di sini adalahbahwa semua bobot bernilai positif.
Untuk memperjelas pemahaman tentang
algoritmaA*,maka akan diberikan contoh masalah
pada gambar dibawah ini:
Gambar 1 : Graf Dari Keterhubungan
Keseluruhan Verteks
Dengan menggunakan fungsi heuristic jarak
Euclidian (jarak garis lurus dari vertex n menuju vertex
G), maka didapat h(n) masing-masing vertex dalamsatuan meter (m) sebagai berikut:
Tabel 1 : Jarak Euclidian Masing-masing
Verteks Terhadap Titik Awal (A)
Berikut ini adalah urutan langkah-langkahproses pencarian jalur terpendek dari RS Martha
Friska dengan RS Mitra Sejati menggunakan
agoritma A*:
Gambar 2 : Contoh Kasus Algoritma A*
Langkah Pertama
Karena pada list OPEN hanya terdapat satu
verteks, yaitu A. Maka A terpilih sebagai bestnode dandipindahkan ke list CLOSED. Kemudian
dibangkitkan semua suksesor A, yaitu: B, C dan L.Karena ketiga suksesor tidak ada pada list OPENmaupun list CLOSED, maka ketiganya dimasukkan ke
list OPEN. Langkah pertama ini menghasilkan list
OPEN = [B,C,L] dan CLOSED = [A].Fungsi evaluasi:
f(B)=g(A)+g(A ke B)+h(B)=0+7600 +2200 =29600 m
f(C)=g(A)+g(A ke C)+h(C)=0+5500 +2000 =25500 m
f(L)=g(A)+g(A ke L)+h(L)=0+5300 +1600 =21300 m
Gambar 3 : Graf Dari Langkah Pertama
Langkah Ke-2
Selanjutnya, L dengan jarak terkecil, yaitu
21300 m terpilih sebagai bestnode dan dipindahkan ke
CLOSED. Lalu, semua suksesor L dibangkitkan,
yaitu: J dan K . karena J d an K belum pernah ada dilist OPEN maupun list CLOSED, maka J dan K
dimasukkan ke list OPEN. Langkah ke-2 inimenghasilkan OPEN= [J,K] dan CLOSED = [A,L].
Fungsi evaluasi:
f(B)=29600 mf(C)=25500 m
f(L)=21300 m
f(J)=g(L)+g(L ke J)+h(J)=5300+4600+1100=20900 m
f(K)=g(L)+g(L keK)+h(K)=5300+5600+1600=2690m
Gambar 4 : Graf Dari Langkah Ke-2
Langkah ke-3
7/26/2019 21. Maningar
4/5
Pelita Informatika Budi Darma Volume : VI Nomor: 3 April 2014 ISSN
23 1 9425
Perancangan Aplikasi Pencarian Jalur Terpendek Menggunakan Algoritma A*. Oleh : ManingarSormin
104
Selanjutnya, J dengan jarak terkecil, yaitu20900 m terpilih sebagai bestnode dan dipindahkan ke
list CLOSED. Lalu, semua suksesor J dibangkitkan,
yaitu: H . Karena H belum pernah ada di list OPEN
maupun list CLOSED, maka H dimasukkan ke lis tOPEN. Langkah ke-3 ini menghasilkan list OPEN =
[H] dan list CLOSED = [A,L,J].Fungsi evaluasi:
f(B)=29600 m
f(C)=25500 m
f(L)=21300 m
f(J)=20900 mf(K)=26900 m
f(H)=g(J)+g(J ke H)+h(H)=9900+5400+6000
=21300m
Gambar 5 : Graf Dari Langkah Ke-3
Langkah ke-4
Selanjutnya, H dengan jarak terkecil, yaitu
21300 m terpilih sebagai bestnode dan dipindahkanke l i s t CLOSED. Lalu, semua suksesor H
dibangkitkan, yaitu: F , G d a n I . Karena F, G dan
I belum pernah ada di list OPEN maupun listCLOSED, maka ketiganya dimasukkan ke lis t OPEN.
Langkah ke-4 ini menghasilkan OPEN = [F,G,I] danCLOSED = [A,L,J,H].Fungsi evaluasi
f(B)=29600 mf(C)=25500 m
f(L)=21300 m
f(J)=20900 mf(K)=26900 m
f(H)=21300 m
f(F)=g(H)+g(H ke F)+h(F)=15300+5900+0=21200 mf(G)=g(H)+g(H k G)+h(G)=15300+6700+8000
=30000 m
f(I)=g(H)+g(H ke I)+h(I)=15300+5300+1100=31600 m
Gambar 6 : Graf Dari Langkah Ke-4F dengan biaya terkecil, yaitu 21200 m terpilih
sebagai bestnode. Karena bestnode- nya sama dengan
goal, berarti solusi telah ditemukan.
Pada kasus diatas A* membangkitkan dan
menyimpan 9 (Sembilan) verteks dari12 (dua belas)vertex yang ada pada graf. Hasil pencarian dari
algoritma diatas didapatkan bahwa rute terpendekyang dilalui dari Rumah Sakit Marta Friska menujuRumah Sakit Mitra Sejati adalah dengan melalui RS
Sufima Azis RS Advent RS MethodisRS Mitra
Sejati.
4. Algoritma Dan Implementasi
4.1 Algoritma
Algoritma merupakan suatu metode yang
digunakan untuk menyelesaikan suatu masalah.Algoritma digunakan sebagai langkahlangkah untuk
perancangan program yang dinyatakan dalam bahasa
yang dapat dimengerti oleh manusia. Berikut ini akandijelaskan secara ringkas cara kerja dari sistem yang
di buat.a. Algoritma Pada Pencarian Jalur TerpendekAdapun algoritma pada pencarian jalur
terpendek adalah sebagai berikut:
INPUT
Asal X
Tujuan Y
OUTPUTTerkecil Z
PROSES
1. Ambil Node dan Jarak dari setiap Node yangdimulai dari X menuju Y dan masukan dalam
array node(x)JumNode = Count(Node[XY])For(i=1 to i
7/26/2019 21. Maningar
5/5
Pelita Informatika Budi Darma Volume : VI Nomor: 3 April 2014 ISSN
23 1 9425
Perancangan Aplikasi Pencarian Jalur Terpendek Menggunakan Algoritma A*. Oleh : ManingarSormin
105
Next iNext j
5 Kesimpulan Dan Saran
5.1 Kesimpulan
Adapun kesimpulan yang dapat diambil adalah
sebagai berikut :1. Dengan menggunakan algoritma A* dalam
pencarian jalur terpendek sangatlah efisien, A*
membandingkan nilai dari awal sampai tujuan
dengan memilih solusi terbaik, sehingga
meminimalkan waktu dan biaya.2. Berdasarkan jumlah node yang di inputkan
algoritma A* dapat menemukan jalur yang
terpendek untuk dilalui.3. Dengan menerapkan sistem komputerisasi pada
pencarian jalur terpendek dengan menggunakan
Aplikasi pencarian jarak terpendek menggunakan
algoritma A* maka proses pencarian akan
semakin cepat dan lebih baik.
4. Kecanggihan teknologi komputer dapatdimanfaatkan untuk mengaplikasikan persoalanpencarian jalur terpendek dalam waktu yang cukupsingkat, sehingga mempermudah dalam
pengambilan keputusan untuk melakukan suatu
perjalanan.
5.2 Saran
Adapun saran-saran yang akan penulis usulkanuntuk meningkatkan kinerja pencarian jalur terpendek
adalah sebagai berikut :
1. Untuk memperlihatkan dan membuktikankeefektifan, kelebihan, keakuratan dan kelemahan
dari algorit A*, maka perlu diadakan sebuah
penelitian lebih lanjut dengan tujuan untukmembandingkan seluruh algoritma pencarian jalur
terpendek (shortest path problem) yang ada pada
berbagai data dengan jumlah titik yang lebihbanyak dari yang saat ini diteliti. Dan juga
diharapkan agar kinerja proses pencarian jalur
terpendek dari algoritma tersebut dapat lebihditingkatkan lagi dalam hal kecepatan eksekusi
pencarian dan dalam penghematan penggunaan
memori komputer saat melakukan proses iterasi.2. Diharapkan bagi para pembaca agar mencoba
algoritma lain agar mengetahui algoritma mana
yang lebih baik dalam pencarian jalur terpendek
dan apabila tetap menggunakan algoritma A*
Sebaiknya tidak hanya dengan menggunakanfungsi heuristik jarak Euclidian saja, tetapi juga
dapat menggunakan fungsi heuristik yang lain.
3. Sistem ini masih banyak ketebatasannya, sehinggadiharapkan kepada para pembaca untuk dapat
mengembangkannya menjadi lebih baik lagi
dengan fasilitas mobile.4. Untuk pengembangan lebih lanjut ada baiknya
menggunakan fasilitas Google Maps API.
Daftar Pustaka
[1].Suyanto. 2006. Artificial Intelligence. Penerbit:Informatika. Bandung.
[2].Marhaendro, Nurlita, Abdullah. 2006.Optimalisasi Rute Perjalanan Ambulance
Menggunakan Algoritma A*. Yogyakarta.[3].Jong Jek Siang. 2010. Matematika Diskrit dan
Aplikasinya pada Ilmu Komputer, Penerbit:Andi.
[4].Anita, Muhammad. 2010. Konsep KecerdasanBuatan.
[5].Kurniadi, Adi. 2000. Pemrograman MicrosoftVisual Basic 6.0. Jakarta. Penerbit: ElexmediaKomputindo.
[6].Jugianto. 2005.Analisis Dan Desain.[7].Hadi, Rahadian. 2001. Pemrograman Windows
API dengan Microsoft Visual Basic. Jakarta.
Penerbit: PT Elex Media Komputindo.