Anda di halaman 1dari 26

ALGORITMA SHORTEST PATH

Untuk memenuhi tugas besar matakuliah Matematika Diskrit oleh Dosen


H.Dadi Rosadi, M.Kom.

Anggota Kelompok :

Nandi Muhamad (20110001)


Ramdhani
Wafiq Mulyawan (20110135)
Nugraha
Isny Ganeprinasti (20110129)

UNIVERSITAS STMIK MARDIRA INDONESIA


PRODI IFSI – S1
DAFTAR ISI

ABSTRAK.............................................................................................................. 3

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

1.1 Latar Belakang.................................................................................................. 4

BAB II KAJIAN MATERI........................................................................................ 6

2.1 Konsep Dasar Graph........................................................................................ 6

2.2 Hasil Peneltian Yang Dilakukan........................................................................ 24

2.3 Daftar Pustaka.................................................................................................. 26

BAB III KESIMPULAN........................................................................................... 41

3.1 Kesimpulan....................................................................................................... 41
ABSTRAK

Teori graph merupakan salah satu cabang dari ilmu matematika yang sering
digunakan dalam penyelesaian beberapa masalah dalam kehidupan sehari- hari.
Salah satunya adalah penyelesaian masalah lintasan terpendek. Lintasan
terpendek sangat aplikatif dalam berbagai hal, antara lain mencari rute
pendistribusian barang,rute taksi, rute sales, masalah tukang pos, dan lain-lain.

Makalah ini mengambil salah satu permasalahan yang telah disebutkan yaitu
mencari rute terpendek yang ditempuh oleh taksi Citra dalam mengantarkan para
konsumen dari suatu lokasi ke lokasi yang lain. Dalam menyelesaikan masalah
pencarian rute terpendek pada jalur yang ditempuh oleh taksi Citra dapat
digunakan beberapa algoritma pada shortest path yaitu Algoritma Djikstra,
Algoritma Floyd-Warshall, Algoritma Greedy, Algoritma Exhautis Search dan
Algoritma Perkalian Matrik. Untuk memahami algoritma-algoritma tersebut
diperlukan pemahaman tentang graph terhubung, graph berbobot, digraph
terhubung , matriks digraph, lintasan, dan lintasan terpendek.

Dalam laporan ini kami menentukan lintasan terpendek pada rute yang dilalui
taksi yaitu dari Terminal Arjosari ke Museum Brawijaya. Dengan mengasumsikan
bahwa terminal arjosari, museum brawijaya, dan setiap persimpangan sebagai
titik, jalur-jalur yang dapat dilalui sebagai sisi serta jarak antar setiap
lokasi/persimpangan sebagai bobot dan di buat suatu graph yang diselesaikan
menggunakan algoritma-algoritma pada shortest path serta alat bantu Giden,
Grin40 dan WINQSB diperoleh lintasan terpendek dari Terminal Arjosari menuju
Museum brawijaya yaitu dengan bobot 466 atau pada jarak sebenarnya adalah
9,32 km.
BAB I
PENDAHULUAN

1. LATAR BELAKANG

Matematika merupakan suatu bidang ilmu yang banyak digunakan


untuk menyelesaikan berbagai permasalahan yang muncul dalam kehidupan
sehari-hari. Berbagai permasalahan tersebut ada yang dapat dimodelkan ke
dalam suatu model matematika namun ada pula beberapa permasalahan yang
tidak dapat dimodelkan ke dalam model matematika. Masalah di luar bidang
matematika biasanya akan dibawa ke dalam penyelesaian matematika, yaitu
dengan mencari model matematikanya. Suatu permasalahan akan semakin
mudah dipelajari, dipahami dan diselesaikan jika dapat dimodelkan ke dalam
suatu model matematika . Setelah diperoleh model matematika dari suatu
masalah, maka masalah tersebut akan dibawa ke dalam cabang-cabang ilmu
matematika untuk menentukan penyelesaiannya. Salah satu cabang ilmu
matematika yang dapat digunakan untuk menyelesaikan permasalahan tersebut
adalah teori graph.
Graph G terdiri dari himpunan tak kosong dari elemen-elemen yang
disebut titik (vertex) dan daftar pasangan berurutan dari elemen-elemen yang
disebut sisi (edge). Himpunan titik dari graph G disebut himpunan titik dari G
dinyatakan dengan V(G) dan daftar sisi dari G dinyatakan dengan E(G). Suatu
Graph G = (V,E) menyatakan graph G dengan himpunan titik-titik V(G) dan
himpunan sisi E(G).
Terdapat banyak konsep dalam graph, salah satunya adalah lintasan
terpendek (Shortest Path) yang merupakan salah satu topik yang mampu
mendukung penerapan graph dalam berbagai bidang ilmu. Definisi Shortest
Path antara dua verteks dari s ke t dalam jaringan adalah lintasan graph berarah
sederhana dari s ke t dengan sifat di mana tidak ada lintasan lain yang memiliki
nilai terendah.
BAB II
KAJIAN MATERI

2.1 Konsep Dasar Graph


Teori Graph merupakan salah satu cabang ilmu matematika yang sering
diterpakan dan di manfaatkan dalam kehidupan sehari-hari, ada beberapa
contoh permasalahan yang bisa di selesaikan dengan menggunakan teori
Graph. Contohnya Travelling Salesman Problem, pengaturan jadwal pegawai,
penggunaan traffic light, dll. Permasalahan di atas dapat dibentuk sevagai graph
yang digambarkan dengan titik dan garis. Garis yang menghubungkan titik pada
graph tersebut disebut titik.
 Definisi Graph
Graph G terdiri dari himpunan tak kosong dari elemen-elemen yang
disebut titik (vertex) dan daftar pasangan berurutan dari elemen-
elemen yang disebut sisi (edge). Himpunan titik dari graph G disebut
himpunan titik dari G dinyatakan dengan V(G) dan daftar sisi dari G
dinyatakan dengan E(G). Suatu Graph G = (V,E) menyatakan graph G
dengan himpunan titik-titik V(G) dan himpunan sisi E(G).
Banyaknya titik pada Graph G dinotasikan dengan | | dan
banyaknya sisi pada graph G dinotasikan dengan | |.

Dari Gambar diatas dapat dilihat bahwa V (G)  {v1 , v2 , v3 , v4 , v5 } dan

E(G)  {e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8 }sehingga | V (G) | 5 dan

| E(G) | 8 .

 Definisi Graph Tak Berarah


Graph tak berarah adalah graph yang sisi-sisinya tidak mempunyai
orientasi arah.
Contoh :
Gambar 2: Graph berbobot

 Definisi Graf berarah (directed graf atau digraf)


Graf yang setiap sisinya diberikan orientasi arah disebut sebagai graf
berarah

 Definisi Graph Terhubung


Misalkan G suatu Graph dan titik dan . Graph G dikatakan
terhubung jika untuk setiap dan dalam V(G) terdapat lintasan
lintasan dari ke dan sebaliknya dari dan .

Gambar 3: Graph Terhubung

 Definisi Graph Berbobot


Graph Berbobot (weighted graph). Graph berbobot G  (V , E) adalah

graph G  (V , E) yang setiap sisinya diberi bobot atau nilai. Jika (vi

,vj). adalah sisi graph G  (V , E), maka bobot dilambangkan dengan


W(vi ,vj).
a 5 b

8 10
9 7

c 7 d
Gambar 4: Graph berbobot

Bobot-bobot dari sisi-sisi E(G) graph berbobot pada gambar 6


adalah:
W1(a,b) = 5 W2(c,d) = 7 W3(b,d) = 7
W4(b,c) = 10 W5(a,d) = 8 W6(a,c) = 9
 Definisi Jalan (walk)
Jalan (walk) adalah suatu barisan titik dan sisi yang dilewati dimana
titik dan sisi boleh berulang. Panjang dari suatu jalan adalah
banyaknya sisi yang dilewati dari titik awal sampai titik akhir.
 Definisi Path (Lintasan)
Misalkan u dan v adalah titik pada graph D=(V,E). Lintasan dari u dan v
adalah barisan (v1,v2,v3,….,vn) dan v0 =u , vn =v ,vi adalah titik, ei adalah
sisi berarah yang menghubungkan titik vi – 1 ke titik vi dan vi vj jika ij,
i,j=0,1,2,3,4,…,n.

Atau, lintasan adalah jalan yang semua titiknya berbeda.


 Lintasan Terpendek (Shortest Path)
Lintasan terpendek merupakan salah satu masalah yang dapat
diselesaikan dengan menggunakan graph. Jika diberikan sebuah graph
berbobot, masalah lintasan terpendek adalah bagaimana kita mencari
sebuah jalur pada graph yang meminimumkan jumlah bobot sisi
pembentuk jalur tersebut. Terdapat bermacam persoalan lintasan
terpendek antara lain:
1. Lintasan terpendek antara dua buah simpul tertentu (a pair shortest
path).
2. Lintasan terpendek antara semua pasanggan simpul (all pairs shortest
path).

3. Lintasan terpendek dari simpul tertentu ke semua simpul yang lain


(single-source shortest path).
4. Lintasan terpendek antara dua buah simpul yang melalui beberapa
simpul tertentu (intermediate shortest path).

 Algoritma-Algoritma Shortest Path


1. Algoritma Greedy
Algoritma Greedy adalah algoritma yang memecahkan masalah langkah
demi langkah, pada setiap langkah dilakukan dengan cara:
o Mengambil pilihan yang terbaik yang dapat diperoleh saat itu
o Berharap bahwa dengan memilih optimum local pada setiap
langkah akan mencapai optimum global
Langkah-langkah algoritma greedy:
1. Menentukan titik awal dan titik tujuan, misalnya titik awal a.
2. Perikasa semua sisi yang langsung bersisian dengan titik a. Pilih
sisi yang bobotnya terkecil. Sisi ini menjadi lintasan terpendek
pertama, sebut saja L(1).
3. Tentukan lintasan terpendek kedua dengan cara berikut:
4. Hitung: d(i) = panjang L(1) + bobot sisi dari simpul akhir L(1) ke
simpul i yang lain.
5. Pilih d(i) yang terkecil.
6. Bandingkan d(i) dengan bobot sisi (a, i). Jika bobot sisi (a, i) lebih
kecil daripada d(i), maka L(2) = L(1) U (sisi dari simpul akhir L(i) ke
simpul i)
7. Dengan cara yang sama, ulangi langkah 2 untuk menentukan
lintasan terpendek berikutnya.
- Kelebihan algoritma Greedy:
Prinsip pencarian lintasan terpendek memakai fungsi ”Seleksi” dan itu
berguna untuk menentukan jalan tersingkat untuk menuju suatu tempat.
Sehingga, kita dapat sampai tepat waktu menuju tempat tujuan. Hasil
analisis berdasarkan bobot-bobot yang berbeda, menunjukkan bahwa

semakin banyak bobot yang diberikan, maka semakin akurat pula data
yang dihasilkan. Sehingga menghasilkan waktu yang efisien.
- Kekurangan algoritma Greedy:
o Algoritma greedy tidak beroperasi secara menyeluruh terhadap semua
alternatif solusi yang ada (sebagaimana pada metode exhaustive search).
o Pemilihan fungsi SELEKSI: Mungkin saja terdapat beberapa fungsi
SELEKSI yang berbeda, sehingga kita harus memilih fungsi yang tepat jika
kita ingin algoritma bekerja dengan benar dan menghasilkan solusi yang
benar-benar optimum. Karena itu, pada sebagian masalah algoritma
greedy tidak selalu berhasil memberikan solusi yang benar-benar optimum.
Contoh :

Permasalahan :
“Carilah jalur terpendek dari titik kuning ke titik biru”
Pilihan awal yang dipilih algoritma adalah a karena a lebih pendek daripada
d. Pilihan selanjutnya hanya satu sehingga tidak ada pilihan lain selain b.
Lalu ke c dan ke tujuan akhir. Maka jaraknhya adalah 10,5 Padahal jika
menggunakan jalur satu lagi sebesar 7. Begitu seterusnya Jika jarak a ke b
adalah 1000. Algoritma ini tidak bisa mundur, sehingga memilih b. Padahal
nilainya sangat besar. Disanalah kelemahan algoritma ini. Tetapi dengan
tidak pernah mundur ke tempat awal untuk mencari jalan alternatif. Algoritma
ini cepat dalam menyelesain pencarian lintasan tercepat.

2. Algoritma Djikstra
Strategi ini merupakan strategi yang paling terkenal untuk mencari lintasan
terpendek. Algoritma Dijkstra diterapkan pada graf berarah, tetapi selalu benar
untuk graf tak-berarah. Strategi ini menggunakan strategi Greedy sebagai
berikut: “Pada setiap langkah, ambil sisi yang berbobot minimum yang
menghubungkan sebuah simpul yang sudah terpilih dengan sebuah simpul
lain yang belum terpilih. Lintasan dari simpul asal ke simpul yang baru
haruslah merupakan lintasan yang terpendek diantara semua lintasannya ke
simpul simpul yang belum terpilih.”
Langkah-langkah dalam menentukan lintasan terpendek pada algoritma
Dijkstra yaitu:
1. Pada awalnya pilih titik dengan bobot yang terendah dari titik yang
belum terpilih, diinisialisasikan dengan „0‟ dan yang sudah terpilih
diinisialisasikan dengan „1‟.
2. Bentuk tabel yang terdiri dari titik, status, bobot dan [redecessor.
Lengkapi kolom bobot yang diperoleh dari jarak titik sumber ke
semua titik yang langsung terhubung dengan titik sumber tersebut.
3. Jika titik sumber ditemukan maka tetapkan sebagai titik terpilih.
4. Tetapkan titik terpilih dengan label permanen dan perbarui titik
yang langsung terhubung.
5. Tentukan titik sementara yang terubung pada titik yang sudah
terpilih sebelumnya dan merupakan bobot terkecil dilihat dari tabel
dan tentukan sebagai titik terpilih berikutnya.
6. Apakah titik yang tepilih merupakan titik tujuan? Jika ya, maka
kumpulan titik terpilih atau predecessor merupakan rangkaian yang
menunjukkan lintasan terpendek.
7. Begitu seterusnya sampai semua titik terpilih.
Contoh :

Dari graph diatas tenetukan lintasan terpendek dari titik A ke titik F ! Dengan
menggunakan program, diperoleh lintasan terpendek dari titk A ke titik F
sebagai berikut .

Diperoleh lintasan terpendek yaitu A-E-D-F dengan bobot total sebesar 22.

3. Algoritma Bellman-Ford
Algoritma Bellman-Ford merupakan algorima untuk mencari shortest path,
dengan menghitung jarak terpendek pada sebuah digraf berbobot, atau
menghitung semua jarak terpendek yang berawal dari satu titik node.
Langkah-langkah:
1. Tentukan vertex source dan daftar seluruh vertices maupun edges.
2. Assign nilai untuk distance dari vertex source = 0, dan yang lain
infinite
3. Mulailah iterasi terhadap semua vertices yang dimulai dari vertex
source,
4. Untuk menentukan distance dari semua vertices yang berhubungan
dengan vertex source dengan formula seperti berikut ini :
- U = vertex asal
- V = vertex tujuan
- UV = Edges yang menghubungkan U dan V
- Jika distance V, lebih kecil dari distance U + weight UV maka
distance V, diisi dengan distance U + weight UV
- Lakukan hingga semua vertices terjelajahi
5. Untuk mengecek apakah ada negative cycle dalam graf tersebut
lakukan iterasi untuk semua edges yang ada, kemudia lakukan penge-
cek-an seperti dibawah ini :
6. Untuk semua edges UV, jika ada distance vertex U + weight edges UV
kurang dari distance vertex V maka sudah jelas bahwa graf tersebut
memiliki negative cycle.
Contoh:

Dari graph di atas tentukan lintasan terpendek dari titik 1 ke titik 4.


Langkah-langkah:
1. Tahap pertama adalah tahap inisialisasi yaitu dengan melabeli titik awal
atau titik asal yaitu titik 1 dengan 0 dan titik-titik lainnya dengan
∞. d(1,1)  0 untuk masing-masing v anggota V – {s} maka d(s,v)
∞
2. Tahap kedua yaitu tahap proses iterasi
Untuk masing-masing sisi (1,2) anggota E maka
Jika d(1,2) > d(1,2)+w(2,3) maka
d(1,2) diganti dengan d(1,2)+w(2,3)
Akhirnya diperoleh d(1,4)=5+4+4=13.

4. Algoritma Branch and Bound (B&B)


Algoritma Branch and Bound merupakan metode pencarian di dalam
ruang solusi secara sistematis. Ruang solusi diorganisasikan ke dalam
pohon ruang status.
Pohon ruang status tersebut dibangun dengan skema BFS. Untuk
mempercepat pencarian ke simpul solusi, maka setiap simpul diberi
sebuah nilai dalam hal ini kita sebut jarak yang berarti bobot. Simpul
berikutnya yang akan diekspansi adalah simpul yang memiliki ongkos

paling kecil diantara simpul-simpul hidup lainnya. Sedangkan simpul


lainnya dimatikan. bobot pada simpul i dinyatakan dengan :ĉ(i) = nilai
taksiran jarak terpendek dari I ke tujuan.
Pada pembahasan ini, penulis hanya akan mengambil sampel 5 buah kota
besar, 4 diantaranya yang ada di Propinsi Jawa Barat, sedangkan 1 lagi
adalah Kota Jakarta. Keempat kota tersebut yaitu Bandung, Tasikmalaya,
Sukabumi, dan Indramayu. Bandung dipilih karena merupakan ibukota
sekaligus pusat kota, disamping lokasinya yang strategis di tengahtengah
Propinsi Jawa Barat. Sedangkan Tasikmalaya, Sukabumi, dan Indramayu
dipilih karena lokasinya yang berada di tiga penjuru propinsi ini. Secara
kasar, kelima kota di atas dapat digambarkan posisinya dengan graf
sebagai berikut :

dengan simpul 1 adalah Kota Bandung, simpul 2 adalah Kota Jakarta,


simpul 3 adalah Kota Sukabumi, simpul 3 adalah Kabupaten Indramayu,
dan simpul 4 adalah Kota Tasikmalaya. Nilai pada sisi adalah cost yang
menyatakan jarak antar kota.
Selanjutnya, misal A adalah matriks tereduksi untuk simpul R. Misalkan S adalah
anak dari simpul R sehingga sisi (R,S) pada pohon ruang status berkorespondensi
dengan sisi (i,j). Lakukan langkah-langkah berikut :
a. Ubah semua nilai pada baris I dan kolom j menjadi ∞.
b. Ubah A (j,1) menjadi ∞
c. Reduksi kembali matriks A
Reduksi matriks A akan menghasilkan matriks lain (misal, B) dan fungsi
pembatas. Secara umum, persamaan fungsi pembatas adalah:
ĉ(S) = ĉ(R) + A(i, j) + r
yang dalam hal ini,
ĉ(S) = bobot perjalanan minimum yang melalui simpul S (simpul di
pohon ruang status)
ĉ(R) = bobot perjalanan minimum yang melalui simpul R, yang dalam hal ini R
adalah orangtua dari S.
A(i, j) = bobot sisi (i, j) pada graf G yang berkoresponden dengan sisi (R,
S) pada pohon ruang status.
r = jumlah semua pengurang pada proses memperoleh matriks tereduksi
untuk simpul S.
Selanjutnya dihitung simpul-simpul lain pada pohon ruang status sebagai
berikut:
1. Simpul 2; lintasan 1,2 (Bandung-Jakarta)
ĉ(2)= 682 + 68 + 0 = 750
2. Simpul 3; lintasan 1,3 (Bandung-Sukabumi) ĉ
(3)= 682 + 0 + 18 = 700
3. Simpul 4; lintasan 1,4 (Bandung-Indramayu) ĉ
(4)= 682 + 20 + 0 = 702
4. Simpul 5; lintasan 1,5 (Bandung-Tasikmalaya)
ĉ(5)= 682 + 10 + 8 = 700
682

2 3 4 5

5.
750 700 702 700

Dengan penomoran simpul sama seperti sebelumnya, yaitu : (1)Bandung,


(2)Jakarta, (3)Sukabumi, (4)Indramayu, dan (5)Tasikmalaya.
Selanjutnya, pilih simpul yang memiliki nilai batas terkecil, dalam hal ini
terdapat 2 simpul yaitu simpul 3 dan simpul 5. Pertama-tama, kita ekspansi
simpul 3 terlebih dahulu, selanjutnya ekspansi simpul 5 dan simpul 6

Dari gambar di atas, dapat kita lihat bahwa daun yang masih hidup dengan
bobot minimum adalah simpul 12, sehingga kita akan mengekspansi simpul
tersebut. Karena tinggal tersisa satu simpul, maka dapat kita langsung ambil
simpul 14 dengan bobot : ĉ(10)= 718 + 0 + 0 = 718
Maka, gambar akhir pohon status yang kita peroleh adalah sebagai berikut:
Dari gambar di atas, maka kita dapat menyimpulkan bahwa rute dengan cost
minimum, dalam hal ini berarti rute terpendek, adalah melalui simpul 1-3-6-12-
14-1 yang berarti melalui Bandung-Sukabumi-Jakarta- Indramayu-
Tasikmalaya-Bandung. Untuk kota yang lain, kita dapat mencari rute
terpendek dengan cara yang sama, sehingga dengan demikian perjalanan
yang dilakukan dapat lebih efektif dan efisien mengingat jarak yang ditempuh
adalah minimum.

5. Algoritma Koloni Semut


Algoritma semut diperkenalkan oleh Moyson dan Manderick dan secara
meluas dikembangkan oleh Marco Dorigo, merupakan teknik probabilistik
untuk menyelesaikan masalah komputasi dengan menemukan jalur terbaik
melalui grafik. Algoritma ini terinspirasi oleh perilaku semut dalam
menemukan jalur dari koloninya menuju makanan.
Pada dunia nyata, semut berkeliling secara acak, dan ketika menemukan
makanan mereka kembali ke koloninya sambil memberikan tanda dengan
jejak feromon. Jika semut-semut lain menemukan jalur tersebut, mereka
tidak akan bepergian dengan acak lagi, melainkan akan mengikuti jejak
tersebut, kembali dan menguatkannya jika pada akhirnya merekapun
menemukan makanan. Seiring waktu, bagaimanapun juga jejak feromon
akan menguap dan akan mengurangi kekuatan daya tariknya. Lebih lama
seekor semut pulang pergi melalui jalur tersebut, lebih lama jugalah
feromon menguap. Sebagai perbandingan, sebuah jalur yang pendek akan
berbaris lebih cepat, dan dengan demikian kerapatan feromon akan tetap
tinggi karena terletak pada jalur secepat penguapannya. Penguapan
feromon juga mempunyai keuntungan untuk mencegah konvergensi pada
penyelesaian optimal secara lokal. Jika tidak ada penguapan sama sekali,
jalur yang dipilih semut pertama akan cenderung menarik secara berlebihan
terhadap semut-semut yang mengikutinya. Pada kasus yang demikian,
eksplorasi ruang penyelesaian akan terbatasi.

Oleh karena itu, ketika seekor semut menemukan jalur yang bagus
(jalur yang pendek) dari koloni ke sumber makanan, semut lainnya akan
mengikuti jalur tersebut, dan akhirnya semua semut akan mengikuti
sebuah jalur tunggal. Ide algoritma koloni semut adalah untuk meniru
perilaku ini melalui 'semut tiruan' berjalan seputar grafik yang
menunjukkan masalah yang harus diselesaikan.
Algoritma optimisasi koloni semut telah digunakan untuk menghasilkan
penyelesaian yang mendekati optimal pada masalah salesman yang
melakukan perjalanan. Algoritma semut lebih menguntungkan daripada
pendekatan penguatan tiruan (simulaten annealing) dan algoritma genetik
saat grafik mungkin berubah secara dinamis; algoritma koloni semut dapat
berjalan secara kontinyu dan menyesuaikan dengan perubahan secara waktu
nyata (real time). Hal ini menarik dalam routing jaringan dan sistem
transportasi urban.

6. Algoritma Floyd-Warshall
Algoritma ini digunakan untuk mencari lintasan terpendek. Masukannya
adalah matrik terhubung langsung graph berarah yang berlabel dan
keluarannya adalah lintasan terpendek dari semua titik ke semua titik.
Caranya dengan cara iterasi dari titik awalnya kemudian memperpanjang
lintasan dengan melihat titik demi titik. Hingga mencapai titik tujuan dengan
jumlah bobot seminimum mungkin misal W0 adalah matrik hubung graph
berarah b erlabel mula – mula w* adalah matrik hubung misal dengan Wi1
= lintasan terpendek dari Vi ke Vj.

7. Algoritma Genetika
Algoritma Genetika adalah salah satu algoritma metaheuristic yang biasa
digunakan untuk melakukan pencarian solusi yang paling optimal
(maximize atau minimize). Cara kerja algoritma ini mensimulasikan
fenomena dari evolusi alam. Intinya adalah, spesies yang paling unggul
akan memiliki kesempatan untuk bertahan hidup yang lebih besar. Konsep
dasar algoritma ini sebenarnya sederhana. Kromoson merepresentasikan
sebuah solusi potensial terhadap sebuah masalah. Proses pencarian solusi
potensial berikutnya dapat dibayangkan sebagai sebuah proses evolusi
terhadap populasi dari kromosom.
Pada saat proses pencarian solusi potensial berikutnya, algoritma ini akan
menselaraskan dua tujuan:
 Eksploitasi solusi-solusi terbaik
 Eksplorasi ruang pencarian
Keromantisan algoritma genetika terletak pada dua tujuan tersebut.
Eksplorasi ruang pencarian ibaratnya seseorang yang sedang mencari
pasangan. Dia akan memperluas “ruang pencarian” ketika dalam proses
pencarian, tapi ketika sudah menemukan yang cocok, dia akan fokus
terhadap yang satu itu dan “mengeksploitasi” (dalam arti mencoba lebih
mengenal) pasangannya tersebut.
Tapi tentunya analogi tersebut tidak sepenuhnya cocok di dunia nyata.
Karena, algoritma genetika akan terus mencari pada ruang pencarian,
walau sudah menemukan solusi potensial, sampai menemukan kondisi
berhenti.
8. Algoritma SPF
Algoritma SPF itu sebenarnya sama dengan algoritma djikstra. Langkah-
langkah dari algoritma SPF akan dijelaskan sebagai berikut:
Tentukan simpul di mana kita mulai, biasa disebut node awal. Algoritma
SPF akan memberikan beberapa nilai jarak awal dan akan mencoba untuk
meningkatkan mereka langkah demi langkah.
1. Tetapkan untuk setiap node nilai jaraknya. Set nol untuk node awal dan
tak hingga untuk semua node lainnya.
2. Tandai semua node yang belum dikunjungi. Set node awal sekarang.
Untuk node saat ini, pertimbangkan semua tetangga belum dikunjungi
dan hitung jaraknya (dari node awal). Misalnya, jika saat ini node (A)
memiliki jarak 6, dan tepinya menghubungkan dengan node lain (B) yaitu
2, jarak ke B melalui A akan berupa 6+2 = 8. Jika jarak ini lebih kecil dari
jarak yang disimpan sebelumnya (tak terbatas di awal, nol untuk node
awal), timpa jarak.
3.Ketika kita mengingat semua tetangga dari node sekarang, tandai sebagai
yang dikunjungi. Node yang dikunjungi tidak akan diperiksa lagi; jarak yang
dicatat sekarang adalah final dan minimal.
4.Jika semua node telah dikunjungi, maka selesai. Jika tidak, set node yang
belum dikunjungi dengan jarak terkecil (dari node awal) sebagai “node
sekarang” berikutnya dan lanjutkan dari langkah 3.
9. Algoritma A*
Algoritma ini menghitung semua kemungkinan dan menyimpannya
sehingga jika setiap memilih jalan. Ia juga membandingkan dengan
jalan lain yang disimpan. Sehingga hasil pencarian lintasan
tercapat dengan mengunakan algoritma ini akan menghasilkan
hasil yang optimum. Namun karena ia terus membandingkan
algoritma ini memakan waktu yang cukup lama. Sehingga jika
simpulnya sangat banyak akan memakan waktu yang sangat lama.

Contoh:

- Carilah jalur tenpendek dari titik kuning ke titik biru”


- Pilihan awal yang dipilih algoritma adalah a karena a lebih
pendek daripada d.
Jarak1 (a )=
1,5 Jarak2 ( d
)= 2
Dipilihlah jarak 1 karena lebih pendek
- Jarak1 (a b) =
3,5 Jarak2 (d) =
2
Dipilihlah jarak 2 karena lebih pendek
- Jarak1 (a b) =
3,5 Jarak2 (d e)
=5
Dipilihlan jarak 1 karena lebih pendek
- Jarak1 (a b c) =
6,5 Jarak2 (d e) =
5
Dipilihlan jarak 2 karena lebih pendek
- Jarak1 (a b c) =
6,5 Jarak2 (d e) =
7
Meskipun telah sampai tujuan tetapi jalur lain belum mencapai
tujuan sehingga pencarian masih dilanjutkan
- Jarak1 (a b c) = 10,5
- Jarak2 (d e) = 7
Setelah seluruh jalur sampai pada tujuan barulah dibandingkan
untuk terakhir kalinya jalur mana yang paling optimum. Karena
jalur 2 lebih pendek maka dipilihlah jarak 2. Untuk melakukan
pencarian pada graph yang kecil seperti gambar 3 saja algoritma
ini sudah membutuhkan waktu yang sangat banyak. Padahal
graph tersebut hanya memiliki 2 jalur.
Bayangkan jika graph tersebut dipersulit sedikit.

Jika diminta mencari jarak dari 2 ke 5 akan memakai banyak jalur.


Dari tempat awal saja sudah menjadi 3 jalur. Belum lagi di simpul –
simpul lainnya yang bercabang – cabang. Tetapi dari keseluruhan
algoritma ini menghasilkan hasil yang optimal tetapi mengunakan
waktu yang maksimal pula. Kompleksitas Waktu Asimptotik dari
algoritma A* adalah
| h(x) − h * (x) | = O(logh * (x))
10. Algoritma PHA*
Algoritma PHA* merupakan pengembangan dari algoritma A*
dengan memodifikasi fungsi heuristiknya. Untuk memperluas
verteks dengan algoritma PHA*, verteks terlebih dahulu harus
dieksplorasi oleh agent dengan tujuan mendapatkan data-data
relevan yang berhubungan dengan verteks tersebut yaitu verteks
tetangga (neighbouring nodes) dan edge yang
menghubungkannya (incident edge). Verteks dalam graf dapat
digolongkan menjadi 2, yaitu verteks yang sudah dieksplorasi dan
verteks yang belum dieksplorasi (explored and unexplored nodes).
Mengeksplorasi suatu verteks berarti agent secara fisik
mengunjungi verteks tersebut, mempelajari lokasinya, serta lokasi
verteks tetangganya.

Algoritma ini membutuhkan dua antrian yang digunakan untuk


menyimpan verteks-verteks yang ada, yaitu:
1. Open, berisi verteks-verteks yang sudah dibangkitkan dan memiliki
fungsi heuristic namun belum dieksplorasi.
2. Closed, berisi verteks-verteks yang sudah dieksplorasi.
- Algoritma PHA* ditampilkan sebagai algoritma dua tingkat (two
level algorithm) yaitu level Atas (high-level) dan level bawah (low-
level). Level atas pada prinsipnya bekerja seperti algoritma A*.
Level ini akan memilih satu verteks di tiap-tiap lingkaran (cycle)
yang berada pada Open untuk diekspansi. Fungsi heuristic h(n)
yang digunakan adalah jarak eucladian diantara verteks n dan
verteks tujuan.
- Jika verteks yang telah dipilih belum dieksplorasi oleh agent,
maka level bawahnya, yang berupa algoritma navigasi, akan
diaktifkan untuk mengarahkan agent menuju verteks tersebut dan
mengeksplorasinya.
Setelah verteks dieksplorasi oleh level bawah maka verteks dapat
diperluas oleh level atas. Jika verteks yang dipilih telah dieksplorasi,
atau verteks tetangganya telah diketahui, maka verteks tersebut
akan dengan mudah dapat diperluas tanpa perlu mengirim agent
untuk mengunjunginya.
- Urutan langkah yang digunakan untuk mencari lintasan terpendek
dengan menggunakan Physical A* adalah:
1. Mulai
2. Tentukan verteks awal dan verteks tujuan
3. Set: OPEN={S}, dan CLOSED={}, dengan S adalah verteks yang
dipilih sebagai keadaan awal.
4. Selama verteks tujuan belum berada dalam CLOSED (closed list),
kerjakan langkah 5-9
5. Pilih verteks n dari OPEN
Untuk iterasi pertama, n
=S
Untuk iterasi selanjutnya, verteks yang diekspansi adalah verteks
yang memiliki nilai f(n) dan c(n) yang terkecil.
6. Bangkitkan semua cabang n.
7. Kerjakan untuk setiap anak n, yaitu n‟. Hitung nilai fungsi:
a. g(n’)
b. h(n’)
c. f(n’) = g(n’) + h(n’)

d. c(n’) = (g(n’) + h(n’)) . dist(curr,n’)

8. Masukkan n‟ ke antrian OPEN


9. Jika semua anak n sudah diekspansi, maka masukkan n yang
memiliki nilai f(n) terkecil ke CLOSED
10. Selesai.
11. Algoritma Depth Frist Search
Algoritma Depth-First Search biasa digunakan untuk proses traversal
atau pencarian dalam struktur pohon atau graf. Aplikasi algoritma ini
pada pohon akan memberikan hasil seperti ini:

Gambar 2.2. Hasil traversal sebuah pohon dengan algoritma Depth-First


Search. Angka disini menunjukkan urutan simpul tersebut dikunjungi.
Algoritma ini juga dapat diadaptasi menjadi salah satu metode intuitif
untuk pencarian dalam labirin. Pertama-tama robot akan berjalan lurus,
ketika menemukan percabangan jalan maka robot akan memilih salah
satu dari jalan yang tersedia secara acak. Apabila jalan yang dipilih
ternyata merupakan jalan buntu, maka robot akan melakukan
backtracking ke percabangan tadi kemudian memilih jalan yang lain.
Proses seperti ini akan membuat robot mencoba semua kemungkinan
jalan yang ada.
Dengan menjelajahi semua sel dalam labirin, pada akhirnya robot akan
dapat menemukan tempat yang dituju. Algoritma ini akan selalu berhasil
menyelesaikan labirin ketika pencarian jalur terpendek tidak dibutuhkan,
tetapi proses ini akan membutuhkan waktu yang cukup lama tergantung
kompleksitas dari labirin yang dihadapi.

12. Algoritma Flood Fill


Algoritma Flood-Fill merupakan modifikasi dari algoritma Bellman–Ford
yang memetakan setiap sel dalam labirin dengan nilai tertentu
berdasarkan jaraknya terhadap tempat tujuan. Secara umum algoritma
Flood-Fill akan menentukan daerah-daerah yang terhubung dengan
suatu simpul dalam array multi-dimensi. Algoritma ini sering digunakan
dalam program editor gambar bitmap untuk mewarnai suatu daerah
terbatas dengan warna tertentu (boundary fill). Algoritma ini dapat
diadaptasi untuk menyelesaikan permasalahan labirin secara dinamis.
Langkah yang paling tepat untuk dapat mengerti algoritma flood fill
adalah dengan menggunakan analogi air yang ditumpahkan pada
sebuah maze. Berikut penjelasannya,
 Proses penumpahan air terpusat hanya pada satu titik (center,
selanjutnya titik ini akan dikenal sebagai destination atau tujuan)
 Air akan membanjiri titik center ini, kemudian mulai mengalir ke area
disekitarnya, yang tidak terhalang oleh dinding (dapat diakses secara
langsung)
 Secara virtual, maze dibagi menjadi beberapa kotak kecil (array)
 Kotak dimana titik center berada, diberi nilai ‗ 0 „
 Kotak yang terisi air setelah center, akan diberi nilai
 Kotak yang terisi air setelah golongan 1, akan diberi nilai 2
 Kotak yang terisi air setelah golongan 2, akan diberi nilai 3
 Dan begitu pula untuk kotak yang terisi air selanjutnya
Arti dari nilai di dalam masing-masing kotak adalah jumlah kotak
yang harus ditempuh dari kotak tersebut untuk mencapai center
(tujuan). Asumsikan kotak yang berada pada bagian bawah sebelah kiri
merupakan start, kemudian ikutilah kotak yang memiliki nilai lebih kecil
dari nilai kotak yang sedang ditempati. Rute yang akan terbentuk
adalah rute terpendek yang dapat ditempuh dari start menuju ke center.
Penjelasan di atas adalah kondisi lapangan berupa wall-mazed
sedangkan pada penelitian ini akan digunakan lapangan berupa
line- mazed. Tujuaannya adalah agar memudahkan pemahaman
tentang algoritma flood fill.
Tahap - tahap Algoritma Flood Fill
 Generate nilai awal untuk masing – masing cell
Nilai pembobot awal diasumsikan pada lapangan terdapat jalur yang
menghubungkan seluruh cell dengan seluruh cell tetangganya. cell
yang berjarak 1 cell dari goal akan bernilai 1, yang berjarak 2 cell akan
bernilai 2, dan seterusnya. Asumsi jarak disini dapat dicapai dengan
arah empat mata angin, sehingga tidak ada gerak serong atau diagonal.
 update lapangan
menyimpsn kondisi lapangan pada tiap cell, informasi bentuk
lapangan (jalur) akan mempengaruhi besar nilai dari masing-masing
cell. Karena bentuk lapangan akan mempengaruhi jarak antar cell.
Berikut akan diberikan variasi kemungkinan bentuk jalur yang dapat
terjadi.

 update nilai cell


yaitu merubah nilai dari cell, dengan tujuan menyesuaikan nilai cell
dengan kondisi nyata (lapangan /jalur) yang ada,. proses ini dilakukan
apabila,
1. Robot menemui jalan buntu.
2. Robot menemui cell tujuan yang nilainya lebih besar dari nilai cell
tempat robot sekarang.

3. menentukan cell tujuan


robot akan membaca kondisi lapangan, dengan begitu robot akan
mengetahui cell mana saja yang memungkinkan untuk dituju. Dari
cell - cell ini akan dicek, cell yang memiliki nilai terkecil akan
menjadi tujuan robot.
4. bergerak ke arah cell tujuan
setelah cell tujuan ditentukan, robot akan bergerak menuju ke cell
tersebut. Untuk kedua langkah terakhir, (menentukan cell tujuan, dan
bergerak ke a rah cell tujuan). Berikut diberikan ilustrasinya,

2.2 Hasil Penelitian yang telah dilakukan


Hasil Penelitian yang berkaitan dengan Shortest Path, yang
telah dilakukan sebelumnya adalah sebagai berikut:
1. Judul : Optimalisasi Rute yang Ditempuh Mobil Box PT.Pos
Indonesia (Persero) untuk Wilayah Surabaya Malang dengan
Menggunakan Algoritma-Algoritma pada Shortest Path.
Penulis : Elli Purnamasari (305312479083
Tahun 2008
Kesimpulan :
Masalah shortest path dapat diaplikasikan dalam berbagai masalah
dalam kehidupan sehari-hari, diantaranya rute pengantaran barang
pos untuk tiap kantor pos daerah bagian Malang oleh sopir mobil box.
Dalam penggunaan alat bantu terdapat kelebihan dan kelemahan dari
alat bantu tersebut yaitu:
 Pada alat bantu Giden dan Grin terdapat kelebihan bisa
mengetahui panjang lintasan yang disertai lintasan atau rute yang
harus ditempuh sehingga ditemukan lintasan terpendek yang minimal.
Namun, pada Giden kelemahannya yaitu harus menggambar dari
graph yang ingin dicari lintasannya sehingga membutuhkan waktu
yang cukup lama, dan pada Grin harus menggambar dari graph yang
ingin dicari lintasannya kemudian mengisi tabel keterhubungan antar
titik untuk mengetahui jarak antar titik pada graph yang telah digambar
sebelumnya sehingga membutuhkan waktu yang lebih lama.
 Pada alat bantu WinQSB terdapat kelebihan yaitu tidak perlu
menggambar grap, tetapi langsung saja mengisi tabel keterhubungan
antar titik sehingga membutuhkan waktu yang singkat. Namun
kelemahannya, output yang dihasilkan tidak menunjukkan lintasan atau
rute yang harus ditempuh

namun langsung menunjukkan panjang lintasannya saja. Hal ini


mempersulit pengguna untuk memilih jalan mana yang harus
ditempuh meskipun sudah mengetahui jarak tempuhnya.

2. Judul : Penerapan Lintasan Terpendek (Shortest


Path) untuk Perancangan Model Jaringan
Penulis : Muttaqin Eko Wirawan
Tahun 2004
Kesimpulan :
Permasalan jaringan jalan raya di sini adalah mencari suatu jalan
terpendek dari dua buah kota. Dengan bantuan matematika jaringan
jalan raya dimodelkan ke dalam bentuk graph. Seperti pada contoh
penerapannya, mencari suatu jarak terpendek pada jaringan jalan raya
kota-kota di Jepang yaitu kota Tokushima ke kota Tottori dan
ditemukan jarak terpendek dari kota Tokushima ke kota Tottori adalah
212 km dan pada contoh penerapan mencari suatu jalan terpendek
pada jaringan jalan raya kota-kota di jawa timur yaitu dari kota Malang
ke kota Ngawi dan ditemukan jarak terpendeknya adalah 232 km.

3. Judul : Penentuan Lintasan Terpendek (Shortest


Path) menggunakan Algoritma Warshall
Penulis: Muslimin Firmansyah (301312412304) Tahun 2005
Kesimpulan :
 Hasil penentuan lintasan terpendek dengan program warshall sama
dengan hasil penentuan lintasan terpendek dengan program giden
yang merupakan aplikasi dari algoritma djikstra

Algoritma Warshall adalah suatu algoritma yang digunakan untuk


menentukan lintasan terpendek dengan didasarkan pada proses
iterasi yang dilakukan sebanyak jumlah titik, di mana proses iterasi
adalah perubahan nilai bobot dari setiap busur. Algoritma ini
bekerja dalam penentuan lintasan terpendek hanya pada graph
berarah saja.
 Pada algoritma Warshall setelah melalui proses iterasi bisa
mengetahui lintasan terpendek dari titik ke semua titik yang lain.
2.3 DAFTAR PUSTAKA
Aldous, Joan M. and Wilson, Robin J,(2004), GRAPH AND
APLICATIONS An Introductory Approach, Springer, Great
Britain.

Michael, J. D., Rosen, K.H. 1991. Application of Discrete Mathematics.

New York: McGraw Hill Inc.


https://diazscript.wordpress.com/tag/seperti-biasa-contoh-
source-
algoritma-floyd-warshall-dalam-bentuk-php-dapat-di-minta-
dengan-kirim-email-ke-vendiaz_cossinyahoo-com/

http://www.google.co.id/url?sa=t&rct=j&q=algoritma%20djikstra&sourc
e=web&cd=3&ved=0CDUQFjAC&url=http%3A%2F%2Frep
ository.usu.ac.id%2Fbitstream%2F123456789%2F14038%2F1
%2F09E00633.pdf&ei=EFYvT6zAOMfnrAeyu5DsDA&usg=
AFQjCNEuzlBjmfDoCPJModd2GOX0M21bzw&cad=rja
BAB III
KESIMPULAN DAN SARAN

3.1 KESIMPULAN

Dari hasil Pengamatan dari kami dari shortest path tentang penyelesaian masalah
lintasan terpendek
 Dengan Algoritma
1. Algoritma Greedy
Dengan menggunakan algoritma greedy didapatkan bobot total sebesar
13,38 km, tetapi hasil ini tidak optimal karena dengan menggunakan
algoritma yang lain didapatkan hasil dengan jarak yang lebih pendek.
Algoritma ini memiliki kelebihan yaitu cepat dalam proses pencarian lintasan
terpendeknya. Sedangkan kekurangannya yaitu tidak optimal dan ada
kemungkinan gagal dalam pencarian dan mungkin lintasan yang diperoleh
bukanlah yang terpendek.
2. Algoritma Floyd-Warshall
Dengan menggunakan algoritma ini didapatkan bobot antar titik dan lintasan
terpendek dari Terminal Arjosari ke museum brawijaya bobotnya adalah 466
atau pada jarak sebenarnya 9,32 km. Perhitungan pada algoritma ini harus
membuat matrik sebanyak titik pada graph. Namun, hasilnya optimum, dan
perhitungannya lebih mudah dari pada perkalian matriks.

3. Algoritma Perkalian Matriks


Dengan menggunakan algoritma ini didapatkan bobot antar titik dan lintasan
terpendek dari Terminal Arjosari ke museum brawijaya bobotnya adalah 466
atau pada jarak sebenarnya 9,32 km. Pada algoritma ini, kekurangannya
adalah perhitungannya sulit , dan dibutuhkan ketelitian yang tinggi. Namun
hasil yang diperoleh optimum, tidak harus membuat matriks sebanyak titik
yang ada pada graph.

3.2 Penutup

Anda mungkin juga menyukai