JNATIA Volume 1, Nomor 1, November 2022

Jurnal Nasional Teknologi Informasi dan Aplikasinya

Penentuan Rute Terpendek Menggunakan Algoritma A Star

(Studi Kasus: Distributor Barang)

Rasita Natasya Br Sitepua1, I Gusti Ngurah Anom Cahyadi Putraa2

aProgram Studi Informatika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Udayana

Badung, Bali, Indonesia

1[email protected]

2[email protected]

Abstrak

Penentuan rute terpendek adalah permasalahan yang sangat umum dikalangan masyarakat. Dimana kecepatan waktu, jarak dan biaya minimum sangat penting dalam pekerjaan maupun perjalanan seseorang. Distributor barang merupakan salah satu pekerjaan yang harus menempuh banyak lokasi dalam pengantaran barang. Namun, lokasi tujuan yang menyebar luas di berbagai wilayah menyulitkan para distributor untuk mendistributorkan barang dengan cepat. Penyebab lainnya karena banyaknya jalan raya terlebih lagi volume kendaraan yang banyak sering kali menyulitkan seseorang untuk mencari jalur terpendek ke tempat tujuan yang terdekat, baik dari segi jarak maupun waktu tempuh. Dari ranah bidang ilmu Informatika, permasalahan penentuan rute terpendek dapat diselesaikan menggunakan beberapa algoritma, salah satunya adalah algoritma A Star. Algoritma A Star adalah salah satu algoritma pencarian graf dengan menggunakan fungsi jarak-plus-biaya untuk menentukan urutan titik yang akan dikunjungi. Dalam permasalahan ini yang harus dipecahkan adalah bagaimana cara agar bisa mengunjungi tempat yang dituju dengan jarak, waktu dan biaya yang minimum. Pada penelitian ini menggunakan data primer berupa 17 titik toko yang sudah ditentukan di wilayah kota Denpasar berupa lokasi sebagai simpul dan jarak antar toko. Pada penelitian ini, penentuan rute terpendek menggunakan algoritma A Star dapat menerima input graf, program dapat menghitung lintasan terpendek, program dapat menampilkan lintasan terpendek serta jaraknya, program dapat menerima input peta dengan Google Map API dan menampilkan peta dan program menampilkan waktu proses program dalam menentukan rute terpendek.

Keywords: A Star, Rute Terpendek, Graf

  • 1.    Pendahuluan

Distributor merupakan suatu kelompok usaha yang melakukan distribusi penyaluran produk ke suatu tempat ke tempat lain. Peranan distributor sangat penting dalam menjamin ketersediaan dan pemasaran produk yang dibutuhkan oleh masyarakat. Distributor sebagai jalur perantara pemasaran baik transportasi maupun penyimpanan suatu produk barang dan jasa dari produsen ke konsumen. Dalam melakukan pemasaran tentunya distributor melakukan perjalanan pengantaran barang ke banyak tempat. Saluran distribusi sangat dipengaruhi faktor jalur pengiriman barang yang efisien sehingga bisa menghemat waktu dan biaya.

Namun tidak jarang distributor mengalami kendala saat melakukan pengantaran barang, seperti waktu perjalanan yang terlalu lama dan bingung memilih tujuan mana yang terlebih dahulu dikunjungi. Salah satu penyebabnya karena luasnya wilayah yang harus ditempuh. Seperti dikutip pada artikel simplidots, Jowan Kho “Wilayah yang luas menyebabkan tingkat kesulitan yang tinggi dalam hal pendistribusian barang karena memakan lebih banyak biaya transportasi dan Sumber Daya Manusia (SDM)”. Penyebab lainnya disebabkan karena banyaknya jalan raya, terlebih lagi volume kendaraan yang banyak sering kali menyulitkan seseorang untuk mencari jalur terpendek ke tempat tujuan yang terdekat, baik dari segi jarak maupun waktu tempuh.

Algoritma A Star adalah sebuah algoritma yang telah diperkaya dengan menerapkan suatu heuristik. Algoritma ini membuang langkah-langkah yang tidak perlu dengan pertimbangan bahwa langkah-langkah yang dibuang sudah pasti merupakan langkah yang tidak akan mencapai solusi yang diinginkan [8]. Algoritma A*(star) melakukan pencarian rute terdekat dengan melakukan perhitungan heuristik. Dari heuristik yang diperoleh, kemudian mencari nilai f(n). Nilai f(n) yang diperoleh akan dimasukkan kedalam open list. Tahap selanjutnya adalah mempertimbangkan bobot antar simpul dimana simpul dengan bobot terkecil yang akan dilalui. Simpul dengan bobot terkecil akan dimasukkan kedalam closed list dimana simpul dalam closed list akan dipilih sebagai simpul yang akan dilalui [10]. Algoritma A Star menghitung semua kemungkinan dan menyimpannya sehingga jika setiap memilih jalan. Algoritma A Star juga membandingkan dengan jalan lain yang disimpan. Sehingga hasil pencarian sikel terpendek dengan menggunakan algoritma ini akan menghasilkan hasil yang lebih optimum [2].

Penelitian [4] menggunakan algoritma A Star karena memiliki kemampuan optimasi yang optimal dan komplit untuk menyelesaikan permasalahan pencarian rute terpendek. Optimal berarti rute yang dihasilkan adalah rute yang paling baik dan komplit berarti algoritma tersebut dapat mencapai tujuan yang diharapkan.

Berdasarkan penelitian yang dilakukan sebelumnya, pada penelitian ini penulis melakukan penentuan rute terpendek perjalanan distributor sebuah perusahaan menggunakan algoritma A Star. Pencarian rute terpendek diawali dengan mengetahui posisi asal dan tujuan perjalanan distributor. Posisi asal dan tujuan perjalanan distributor yang telah diketahui akan digunakan pada proses pencarian rute terpendek.

  • 2.    Metode Penelitian

    2.1.    Data Penelitian

Data yang akan digunakan pada penelitian ini adalah data primer. Data berupa 17 titik toko yang sudah ditentukan di wilayah kota Denpasar berupa lokasi sebagai vertex dan jarak antar toko. Jarak yang diperoleh akan menjadi inputan pada sistem dengan jumlah vertex yang berbeda sesuai dengan tujuan pengiriman. Hasil rute dinilai berdasarkan jarak dengan mengabaikan indeks kemacetan dan kondisi geografis rute. Penentuan setiap lokasi ditentukan dengan menggunakan Google Earth sebagai titik tujuan dan Google Maps API untuk menentukan jarak antar titik dengan metode observasi mandiri.

  • 2.2.    Graf

Graf digunakan untuk mempresentasikan suatu objek diskrit dan hubungan antar objek-objek tersebut. Secara visual, suatu objek di graf direpresentasikan dengan sebuah titik, dan suatu hubungan antar objek direpresentasikan dengan sebuah garis yang menghubungkan kedua titik. Graf bisa digunakan untuk mepresentasikan berbagai hal, salah satu kegunaan graf adalah untuk mempresentasikan sebuah peta[11].

  • 2.3.    Tahapan Algoritma A Star

Algoritma A Star adalah algoritma pencarian rute terpendek yang merupakan algoritma yang dituntun oleh fungsi heuristiknya, yang menentukan urutan simpul mana yang akan dikunjungi terlebih dahulu. Heuristik merupakan penilai yang memberi harga pada tiap simpul yang memandu A Star mendapatkan solusi yang diinginkan [2]. Untuk mencari jarak terdekat pada sebuah peta, peta harus direpresentasikan dengan sebuah graf. Simpul-simpul di graf tersebut merupakan representasi persimpangan-persimpangan di wilayah peta tersebut dan sisinya merupakan representasi jalan yang dapat dilalui. Sisi-sisi graf ini harus merupakan sisi berbobot yang nilainya mempresentasikan panjang lintasan. A Star mengevaluasi node dengan menggabungkan g(n), yaitu cost untuk mencapai node, dan h(n), yaitu cost yang diperlukan dari node untuk mencapai tujuan, dalam notasi matematika dituliskan sebagai [6]:

f(n) = g(n) + h(n)

Keterangan:

  • 1.    f(n) adalah jumlah dari g(n) dan h(n). ini adalah perkiraan jalur terpendek sementara. maka f(n) adalah jalur terpendek yang sebenarnya yang tidak ditelusuri sampai Algoritma A-Star (A*) diselesaikan.

  • 2.    g(n)/Geographical Cost adalah total jarak yang didapat dari verteks awal ke verteks sekarang (halangan).

  • 3.    h(n)/Heuristic Cost adalah perkiraan jarak dari vertex sekarang (yang sedang dikunjungi) ke vertek tujuan. sebuah fungsi heuristic digunakan untuk membuat perkiraan seberapa jauh lintasan yang akan diambil ke vertex tujuan.

Beberapa istilah yang terdapat pada algoritma A Star [5]:

  • 1.    Starting point merupakan terminologi untuk posisi awal .

  • 2.    Simpul (node) merupakan titik yang merepresentasikan suatu tujuan. Bentuknya dapat berupa persegi, segitiga, ataupun lingkaran

  • 3.    A merupakan simpul yang sedang berjalan dalam pencarian jalur terpendek

  • 4.    Open list merupakan simpul yang mungkin diakses dari starting point maupun simbol yang sedang dijalankan.

  • 5.  Closed List merupakan simpul yang telah dipilih sebagai pemilihan dari jalur terpendek.

  • 6.  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.

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

Gambar 1 menunjukkan flowchart dari algoritma A Star dalam menentukan rute terpendek.

Gambar 1 Flowchart Algoritma A Star

Gambar 1 1

Langkah-langkah algoritma A Star, sebagai berikut [5]:

  • 1.    Mulai.

  • 2.    Node A sebagai starting point

  • 3.    Memasukkan seluruh simpul yang bertetangga dan tidak memilik atribut rintangan dengan A ke dalam open list.

  • 4.  Kemudian mencari nilai H terkecil dari simpul-simpul dalam open list tersebut.

  • 5.  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.

  • 6.    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 keposisi 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. Hasil dan Pembahasan

    3.1.    Tahapan Penentuan Rute Terpendek

Pada penelitian ini, data lokasi akan ditelusuri berdasarkan latitude dan longitude dari peta. Proses algoritma A Star dalam menentukan rute terpendek perjalanan distributor sebuah perusahaan diimplementasikan pada bahasa pemrograman Python. Tabel 1 berikut ini adalah titik tujuan pengiriman barang yang akan digunakan.

Tabel 1. Latitude dan Longitude Titik Tujuan

No

Titik Tujuan

Latitude

Longitude

1

Alfamart Jl. Gunung Agung

-8.6513942

1115.1960404

2

Alfamart Nusa Kambangan

-8.6643461

115.2124206

3

Alfamart Jl. Surapati

-8.65641

115.22092

4

Alfamart Jl. Hayam Wuruk

-8.65718

115.23872

5

Alfamart Pemecutan Kaja

-8.6391827

115.2090748

6

Alfamart Jl. WR Supratman

-8.6337537

115.256471

7

Alfamart Ubung Kaja

-8.6156725

115.1941227

8

Indomaret Tukad Pakerisan

-8.6887938

115.2261427

9

Indomaret Pulau Kawe

-8.6777391

115.2064918

10

Indomaret Buana Raya

-8.6610016

115.1876713

11

Indomaret Merdeka

-8.6647901

115.2403174

12

Indomaret Hayam Wuruk

-8.6572924

115.2278695

13

Indomaret Gatsu Timur

-8.6357861

115.2264692

14

Indomaret Seroja

-8.6342537

115.2296348

15

Indomaret Green Kori

-8.6108441

115.1992835

16

Indomaret Trenggana

-8.6181574

115.2407235

17

indomaret pulau galang

-8.6955229

115.1903073

Berdasarkan latitude dan longitude dihitung jarak untuk setiap titik tujuan pengiriman barang menggunakan persamaan (?) berikut ini:

dij = (69 ∙ √(loni - Iortj)2 + (lati - Iatj)2') ∙ 1,60934 Dimana:

  •    dij = jarak antara 2 titik koordinat i dan j (dalam km)

  • •   loni = titik longitude i

  • •   lonj = titik longitude j

  • •   lati = titik latitude i

  • •   latj = titik latitude j

Proses jarak masing-masing titik

def haversineDist(n1, n2):

  • #    Menghitung jarak dari node n1 dan n2 berdasarkan longitude dan latitude

  • #    Menggunakan Haversine formula dalam meter

  • #    Aproksimasi radius bumi dalam km

R = 6373.0

lat1 = radians(n1.x)

lon1 = radians(n1.y)

lat2 = radians(n2.x)

lon2 = radians(n2.y)

dlon = lon2 - lon1

dlat = lat2 - lat1

a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlon /2)**2

c = 2 * atan2(sqrt(a), sqrt(1 -a))

distance = R * c

return round(distance,4)

Berdasarkan perhitungan jarak masing-masing tujuan distributor dengan persamaan di atas, diperoleh hasil jarak pada tabel 2 di bawah ini.

Tabel 2. Jarak Masing-Masing Titik Tujuan

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

1

0.0

0

5.8

2

7.1

1

9.0

7

1.9

7

7.2

6

5.0

6

6.6

8

4.1

9

1.4

1

9.4

1

7.8

8

3.9

2

4.3

1

5.3

1

6.4

8

6.8

5

2

5.8

2

0.0

0

1.2

9

3.2

5

7.7

9

6.5

1

10.

88

4.1

1

1.6

3

4.4

1

3.6

6

2.0

6

9.7

4

9.4

6

11.

13

8.9

6

4.2

9

3

7.1

1

1.2

9

0.0

0

1.9

6

9.0

8

5.2

2

12.

17

5.4

0

2.9

1

5.7

0

2.3

7

0.7

7

8.5

6

8.1

7

12.

41

7.6

7

5.5

7

4

9.0

7

3.2

5

1.9

6

0.0

0

8.5

4

3.2

6

11.

63

3.9

6

4.8

8

7.6

6

0.8

6

1.1

9

6.6

0

6.2

1

11.

88

5.7

1

7.5

4

5

1.9

7

7.7

9

9.0

8

8.5

4

0.0

0

5.2

9

3.0

9

8.6

5

6.1

7

3.3

8

9.4

1

9.7

4

1.9

5

2.3

4

3.3

3

4.5

0

8.8

3

6

7.2

6

6.5

1

5.2

2

3.2

6

5.2

9

0.0

0

8.3

8

7.2

1

8.1

3

8.6

7

4.1

2

4.4

5

3.3

4

2.9

5

8.6

2

2.4

5

10.

79

7

5.0

6

10.

88

12.

17

11.

63

3.0

9

8.3

8

0.0

0

11.

74

9.2

6

6.4

7

12.

50

12.

83

5.0

4

0.3

9

0.7

8

7.5

9

11.

92

8

6.6

8

4.1

1

5.4

0

3.9

6

8.6

5

7.2

1

11.

74

0.0

0

2.4

9

5.2

7

3.0

9

4.6

9

10.

55

10.

16

11.

99

9.6

6

5.1

5

9

4.1

9

1.6

3

2.9

1

4.8

8

6.1

7

8.1

3

9.2

6

2.4

9

0.0

0

2.7

8

5.2

9

3.6

8

8.1

2

8.5

1

9.5

0

10.

58

2.6

6

1

0

1.4

1

4.4

1

5.7

0

7.6

6

3.3

8

8.6

7

6.4

7

5.2

7

2.7

8

0.0

0

8.0

7

6.4

7

5.3

3

5.7

2

6.7

2

7.8

9

5.4

4

1

1

9.4

1

3.6

6

2.3

7

0.8

6

9.4

1

4.1

2

12.

50

3.0

9

5.2

9

8.0

7

0.0

0

1.6

0

7.4

6

7.0

7

12.

74

6.5

7

7.9

5

1

2

7.8

8

2.0

6

0.7

7

1.1

9

9.7

4

4.4

5

12.

83

4.6

9

3.6

8

6.4

7

1.6

0

0.0

0

7.7

9

7.4

0

13.

07

6.9

0

6.3

4

1

3

3.9

2

9.7

4

8.5

6

6.6

0

1.9

5

3.3

4

5.0

4

10.

55

8.1

2

5.3

3

7.4

6

7.7

9

0.0

0

0.3

9

5.2

8

2.5

5

10.

78

1

4.3

9.4

8.1

6.2

2.3

2.9

0.3

10.

8.5

5.7

7.0

7.4

0.3

0.0

5.6

2.1

11.

4

1

6

7

1

4

5

9

16

1

2

7

0

9

0

7

7

17

1

5.3

11.

12.

11.

3.3

8.6

0.7

11.

9.5

6.7

12.

13.

5.2

5.6

0.0

7.8

12.

5

1

13

41

88

3

2

8

99

0

2

74

07

8

7

0

3

16

1

6.4

8.9

7.6

5.7

4.5

2.4

7.5

9.6

10.

7.8

6.5

6.9

2.5

2.1

7.8

0.0

13.

6

8

6

7

1

0

5

9

6

58

9

7

0

5

7

3

0

24

1

6.8

4.2

5.5

7.5

8.8

10.

11.

5.1

2.6

5.4

7.9

6.3

10.

11.

12.

13.

0.0

7

5

9

7

4

3

79

92

5

6

4

5

4

78

17

16

24

0

Berdasarkan parameter yang digunakan serta jarak antar titik tujuan, maka diperoleh proses pencarian rute pada source code berikut ini:

Proses Pencarian Rute

  • #    Buat graf dari nama graf input

g = makeGraphFromTxt(graphName, end)

  • #    Cari node start dan end

startNode = g.findNode(start) endNode = g.findNode(end)

  • #    Make priority queue to store nodes q = queue.PriorityQueue()

  • #    Deklarasikan dictionary kosong untuk rekam jejak parent dan rekam jejak total

  • #    jarak kumulatif yang paling singkat untuk ke node tertentu jalur = {}

kumulatifMeter = {}

  • # Inisiasi dengan none, karena parent dari starting node tidak ada, dan 0.0

  • # untuk jarak kumulatif, karena jarak dari start ke start adalah 0

jalur[start] = None

kumulatifMeter[start] = 0.0

  • #    Set starting node

q.put((0, start))

  • # Inisiasikan currNodeName dengan nilai acak agar bisa masuk ke loop

currNodeName = -999

  • # jalankan loop asalkan belum sampai tujuan atau masih ada elemen prioqueue

while (q.qsize() > 0 and currNodeName != end):

(currPrio, currNodeName) = q.get()

for nextNodeName in g.findNode(currNodeName).neighbors:

addedMeter = kumulatifMeter[currNodeName] + g.findNode(

currNodeName).neighbors[nextNodeName]

  • #    menambahkan kumulatifMeter baru apabila belum ada dictionary key : nextNodeName if (not (nextNodeName in kumulatifMeter)):

  • #    menambahkan kumulatifMeter baru

kumulatifMeter[nextNodeName] = addedMeter

  • #    prioritas untuk nextNodeName dikalkulasi dengan menambahkan addedMeter dan nilai

  • #    heuristik nextNodeName

nextPrio = addedMeter + g.findNode(nextNodeName).heuristik

  • #    memasukan prio dan nama node ke dalam prioqueue q.put((nextPrio, nextNodeName)) # menambahkan riwayat jalur

jalur[nextNodeName] = currNodeName

  • #    menambahkan kumulatifMeter baru apabila kumulatifMeter yang sebelumnya

  • #    ternyata tidak optimal

if (addedMeter < kumulatifMeter[nextNodeName]):

  • #    menambahkan kumulatifMeter baru

kumulatifMeter[nextNodeName] = addedMeter

  • #    prioritas untuk nextNodeName dikalkulasi dengan menambahkan

addedMeter dan nilai

  • #    heuristik nextNodeName

nextPrio = addedMeter + g.findNode(nextNodeName).heuristik

  • #    memasukan prio dan nama node ke dalam prioqueue

q.put((nextPrio, nextNodeName))

  • #    menambahkan riwayat jalur

jalur[nextNodeName] = currNodeName

  • #    skema pencetakan hasil

if (currNodeName == end):

  • #    mencetak jarak terpendek antar node awal dan tujuan

print(

f"Jarak terpendek dari {start} ke {end}: {kumulatifMeter[end]} km \n")

print("Lintasan:")

  • #    list untuk nanti dibalikan

reverseDirection = []

  • #    iterasi mulai dari element parent ending node

iterPrint = jalur[end]

  • #    selagi belum none (iterprint merupakan elemen parent dari starting node) while (iterPrint != None):

  • #    append ke list kemudian iterasikan berikutnya

reverseDirection.append(iterPrint)

iterPrint = jalur[iterPrint]

  • #    print array dengan orientasi reverse agar dari node awal-tujuan

for nodeName in reversed(reverseDirection):

print(nodeName, end=" → ")

  • #    node tujuan

print(end, end="\n\n")

Sesuai dengan proses pencarian rute di atas, maka diperoleh rute terpendek perjalanan sebuah distributor sesuai titik awal dan titik tujuan yang diinginkan.

Output:

lMasukkan nama simpul awal: Indomaret Trenggana

■Masukkan nama simpul tujuan: Alfamart Ubung Kaja

,3arak terpendek dari Indomaret Trenggana ke Alfamart Ubung Kaja: 7.592599999999999 m

'Lintasan:

-Indomaret Trenggana → Indomaret Seroja → Indomaret Gatsu Timur → Alfamart Pemecutan Kaja → Alfamart Ubung Kaja

’Running Time : θ.00193 second

Proses pencarian rute dengan graf

def makeGraphFromTxt(file_name, end):

  • #    Get current path

currpath = str(os.getcwd()).split('\\')

  • #    Membuat graph dari file eksternal .txt

all_nodes =[]

  • #    Open dan read file berdasarkan current path if (currpath[len(currpath)-1] in ["src", "bin"]):

f = open(f"../test/{file_name}.txt","r")

else:

f = open(f"./test/{file_name}.txt", "r") # Iterate line file lines = f.readlines()

size = int(lines[0]) graph = Graph(size)

  • #    Add adjacency matrix ke graph

for i in range(size + 1, len(lines)):

line = lines[i].split(" ") for i in range(len(line)):

line[i] = int(line[i].replace("\n", "")) graph.addAdjm(line)

  • #    Add node ke graph

for i in range(1, size + 1): line = lines[i].split(",") for i in range(len(line)):

line[i] = line[i].replace("\n", "")

curr_node = Node(line[0], float(line[1]), float(line[2])) graph.addNode(curr_node)

  • #    Cari node akhir

for node in graph.nodes:

if (node.name == end):

endNode = node

  • #    Add nilai heuristik masing-masing node

for node in graph.nodes:

node.calcHeuristik(endNode)

  • #    Add edge ke graph

for i in range(len(graph.adjm)):

for j in range(len(graph.adjm)):

if (graph.adjm[i][j] == 1):

(graph.nodes[i]).addNeighbors( graph.nodes[j], haversineDist(graph.nodes[i], graph.nodes[j])) return graph

Output:

Gambar 2 Graf yang dihasilkan

Proses pengujian dilakukan dengan melakukan perubahan pada titik awal dan titik tujuan. Hasil dari pengujian dengan algoritma A Star terlihat pada tabel 4 di bawah ini:

Tabel 4. Hasil Pengujian Sistem

N o

Titik Awal

Titik Tujuan

Rute

Jarak Terbaik (km)

Waktu (s)

1

indomaret Trenggana

Alfamart Ubung Kaja

Indomaret Trenggana → Indomaret Seroja → Indomaret Gatsu Timur → Alfamart Pemecutan Kaja → Alfamart Ubung Kaja

7.59

0.00193

2

Alfamart Jl.Surapati

Indomaret Merdeka

Alfamart Jl.Surapati → Indomaret Hayam Wuruk → Indomaret Merdeka

2.37

0.00255

3

Indomaret Seroja

Alfamart Nusa Kambangan

Indomaret Seroja → Alfamart Jl.WR Supratman → Alfamart Jl.Hayam Wuruk → Indomaret Hayam Wuruk → Alfamart Jl.Surapati → Alfamart Nusa Kambangan

9.45

0.00274

4

Indomaret Hayam Wuruk

Alfamart Pemecutan Kaja

Indomaret Hayam Wuruk → Alfamart Jl.Hayam Wuruk → Alfamart Jl.WR Supratman → Indomaret Seroja → Indomaret Gatsu Timur → Alfamart Pemecutan Kaja

9.73

0.00218

5

Indomaret Tukad Pakerisan

Indomaret

Green Kori

Indomaret Tukad Pakerisan →

Indomaret Pulau Kawe →

Indomaret Buana Raya → Alfamart Jl.Gunung Agung → Alfamart Pemecutan Kaja →

Indomaret Green Kori

11,98

0.00233

6

Alfamart Jl.Gunung Agung

Indomaret Trenggana

Alfamart Jl.Gunung Agung → Alfamart Pemecutan Kaja → Indomaret Gatsu Timur →

6.47

0.00213

Indomaret Seroja → Indomaret Trenggana

7

Alfamart Jl.Hayam Wuruk

Indomaret pulau galang

Alfamart Jl.Hayam Wuruk →

Indomaret Hayam Wuruk → Alfamart Jl.Surapati → Alfamart Nusa Kambangan → Indomaret Pulau Kawe → Indomaret pulau galang

7.53

0.0028

8

Indomaret Pulau Kawe

Indomaret Gatsu Timur

Indomaret Pulau Kawe →

Indomaret Buana Raya → Alfamart Jl.Gunung Agung → Alfamart Pemecutan Kaja →

Indomaret Gatsu Timur

8.11

0.002

Berdasarkan pengujian tersebut, menunjukkan bahwa program dapat menerima input graf, program dapat menghitung lintasan terpendek, program dapat menampilkan lintasan terpendek serta jaraknya, program dapat menerima input peta dengan Google Map API dan menampilkan peta dan program menampilkan waktu proses program dalam menentukan rute terpendek.

  • 4. Kesimpulan

Pada penelitian ini, sistem penentuan rute terpendek perjalanan distributor sebuah perusahaan menggunakan algoritma A star telah berhasil dibangun dan diuji coba. Hasil dari sistem ini menunjukkan bahwa pencarian rute terpendek pada sebuah peta menggunakan algoritma A Star harus direpresentasikan dengan sebuah graf. Simpul-simpul graf tersebut representasi titik-titik lokasi pada peta tersebut dan sisinya merupakan representasi lintasan antar titik lokasi. Setiap sisi graf memiliki bobot atau jarak sehingga dapat dihitung nilai heuristiknya. Setelah informasi jarak dan nilai heuristic diketahui, pencarian menggunakan algoritma A star dapat dilakukan menggunakan pohon pencarian dan antrian prioritas. Pada penelitian ini, penentuan rute terpendek menggunakan algoritma A Star dapat menerima input graf, program dapat menghitung lintasan terpendek, program dapat menampilkan lintasan terpendek serta jaraknya, program dapat menerima input peta dengan Google Map API dan menampilkan peta dan program menampilkan waktu proses program dalam menentukan rute terpendek. Jika simpul awal indomaret Trenggana dan simpul tujuan Alfamart Ubung Kaja maka jarak terpendek yang didapatkan adalah 7.59 km dengan Lintasan Indomaret Trenggana → Indomaret Seroja → Indomaret Gatsu Timur → Alfamart Pemecutan Kaja → Alfamart Ubung Kaja dalam waktu program 0.00193 s.

Referensi

  • [1]    Akhyar, M. (2017). PERBANDINGAN ALGORITMA GREEDY DAN TRAVELLING SALESMAN PROBLEM. Semarang: UNIVERSITAS NEGERI SEMARANG.

  • [2]    Gede Wahyu Antara Dalem, I. B. (2018). Penerapan Algoritma A* (Star) Menggunakan Graph Untuk Menghitung Jarak Terpendek. Jurnal RESISTOR (Rekayasa Sistem Komputer), 1(1), 41–47. https://doi.org/10.31598/jurnalresistor.v1i1.253

  • [3]    Hamidi, I., & Aldillah, D. (n.d.). Algoritma A * ( A Star ) Sebagai Salah Satu Contoh Metode Pemrograman Branch and Bound. 1–2.

  • [4]    HARTANTO, K. (2020). ANALISIS PERBANDINGAN ALGORITMA DIJKSTRA DAN A STAR. Medan: UNIVERSITAS SUMATERA UTARA.

  • [5]    Manurung, R. A. (2016). Perbandingan Algoritma a* Dan Breadth First.

  • [6]    Putra, A. B. W., Rachman, A. A., Santoso, A., & Mulyanto, M. (2020). Perbandingan Hasil Rute Terdekat Antar Rumah Sakit di Samarinda Menggunakan Algoritma A*(star) dan Floyd-Warshall. Jurnal Sisfokom (Sistem Informasi Dan Komputer),   9(1),   59–68.

https://doi.org/10.32736/sisfokom.v9i1.685

  • [7]    Putra, E. S. (2017). Pencarian Lintasan Terpendek Pada Aplikasi Navigasi Menggunakan Algoritma A *.

440