Anda di halaman 1dari 109

LAPORAN OBSERVASI

OPTIMALISASI RUTE YANG DITEMPUH TAKSI DI PT. CITRA


PERDANA KENDEDES DENGAN MENGGUNAKAN ALGORITMA
SHORTEST PATH

Untuk memenuhi tugas matakuliah Penerapan Teori Graph yang dibimbing
oleh Dra. Sapti Wahyuningsih,M.Si


Anggota Kelompok :
Enik Noviani (309312417515)
Patma (409312417671)
Erlina Tri Susianti (409312419801)













UNIVERSITAS NEGERI MALANG
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
JURUSAN MATEMATIKA
FEBRUARI 2012
ABSTRAK

Noviani, Enik; Patma; Tri S, Erlina. 2009. Optimalisasi Rute yang Ditempuh
Taksi di PT.Citra Perdana Kendedes dengan Menggunakan Algoritma
Shortest Path. Jurusan Matematika FMIPA Universitas Negeri Malang.
Dosen pembimbing Dra. Sapti Wahyuningsih, M.Si.

Kata kunci: Lintasan Terpendek, Algoritma Greedy , Algoritma Djikstra,
Algoritma Exhautis Search, Algoritma Perkalian Matriks , Algoritma
Floyd-Warshall.

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.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.
Secara konkret, contoh penerapan lintasan terpendek (shortest path)
adalah sebagai berikut: Suatu perusahaan memproduksi suatu barang, barang
tersebut harus didistribusikan ke berbagai kota di Jawa Timur, diantaranya
dari kota Surabaya ke kota Malang. Dengan keterbatasan waktu yang ada
maka dibutuhkan jalur-jalur alternatif dalam hal ini jalur terpendek yang dapat
ditempuh untuk mendistribusikan barang tersebut dari kota Surabaya ke kota
Malang.Masalah yang harus dipecahkan adalah menentukan jalur terpendek
darikota Surabaya ke kota Malang.
Berdasarkan pada masalah konkret di atas, maka aplikasi lintasan
terpendek jelas sangat penting. Baik bagi instansi yang bersangkutan maupun
bagi para peneliti. Bagi peneliti merupakan kesempatan yang penting untuk
menerapkan ilmu atau keahlian yang telah diperoleh dari pendidikan formal.
Pihak yang paling diuntungkan dari pengembangan permasalahan lintasan
terpendek adalah instansi tersebut. Dengan memberikan kesempatan kepada
peneliti mengaplikasikan ilmunya serta memberikan kesempatan untuk belajar
maka instansi tersebut telah memberikan kesempatan kepada dirinya untuk
terus berkembang dan terus menambah profit.
Inilah yang melatarbelakangi penyusunan laporan kami yang berjudul
Optimalisasi Rute yang Ditempuh Taksi di PT. Citra Perdana Kendedes
dengan Menggunakan Algoritma Shortest Path .

1.2. TUJUAN PENULISAN
Adapun tujuan dari pelaksanaan observasi adalah :
1. Mengidentifikasi permasalahan yang ada dalam penentuan jalur yang
dilalui untuk mengantar para pengguna jasa taksi dari suatu tempat ke
tempat yang lain.
2. Menerapkan algoritma-algoritma pada shortest path dalam
menentukan lintasan terpendek pada jalur yang dilalui oleh taksi.
3. Memberikan solusi alternatif dengan alat bantu Giden dan WinQSB
bagi penyedia jasa dalam hal ini PT.Citra Perdana Kendedes untuk
mengoptimalkan jalur yang dilalui oleh taksi.
4. Menganalisa hasil dari perhitungan alat bantu dan dan hasil lapangan.



1.3. BATASAN MASALAH
Perusahaan taksi PT Citra Perdana Kendedes memiliki banyak pangkalan
yang tersebar di wilayah Malang Raya. Dari sekian banyak permintaan para
pengguna jasa taksi, pada makalah ini, kami hanya membahas lintasan
terpendek rute taksi dari Terminal Arjosari Malang ke Museum Brawijaya
Malang.
Adapun batasan masalah dalam pembahasannya adalah semua jalan / jalur
yang dilalui dianggap bebas hambatan (bebas rambu-rambu lalu lintas) serta
tidak diperhitungkan jalan / jalur yang tidak layak untuk dilalui hal ini untuk
memberikan kenyamanan kepada para pengguna taksi.






















BAB II
KAJIAN TEORI

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 } , , , , { ) (
5 4 3 2 1
v v v v v G V = dan
} , , , , , , , { ) (
8 7 6 5 4 3 2 1
e e e e e e e e G E = sehingga 5 | ) ( | = G V dan
8 | ) ( | = G E .

- Definisi Graph Tak Berarah
Graph tak berarah adalah graph yang sisi-sisinya tidak mempunyai
orientasi arah.
Contoh :


- 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

.


- Definisi Graph Berbobot
Graph Berbobot (weighted graph). Graph berbobot ) , ( E V G = adalah
graph ) , ( E V G = yang setiap sisinya diberi bobot atau nilai. Jika (v
i

,v
j
). adalah sisi graph ) , ( E V G = , maka bobot dilambangkan dengan
W(v
i
,v
j
).
Contoh:
Gambar 3: Graph Terhubung
Gambar 2: Graph berbobot
a 5 b
7
d
7 c
9
8 10

Bobot-bobot dari sisi-sisi E(G) graph berbobot pada gambar 6
adalah:
W
1
(a,b) = 5 W
2
(c,d) = 7 W
3
(b,d) = 7
W
4
(b,c) = 10 W
5
(a,d) = 8 W
6
(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 (v
1
,v
2
,v
3
,.,v
n
) dan v
0
=u , v
n
=v ,v
i
adalah titik, e
i

adalah sisi berarah yang menghubungkan titik v
i 1
ke titik v
i
dan v
i
=v
j

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).
Gambar 4: Graph berbobot
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
293
280
205
187
184
96
106
174
202
119
3
2
4
5
1
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





750 700 702 700
Dengan penomoran simpul sama seperti sebelumnya, yaitu : (1)Bandung,
(2)Jakarta, (3)Sukabumi, (4)Indramayu, dan (5)Tasikmalaya.
1
2
3 4 5
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:













1
2
3 4 5
6 7
8
8
9 10
00
11
13
00
12
00
14
1
2
3
4
5
6 7
8
8
9 10
00
11
13
00
12
00
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.
Algoritmanya:
1. W=W0
2. K=1 hingga n
Untuk i=1 hingga n
Untuk j=1 hingga n
Jika w[i,j] > w[j,k]+w[i,k], maka tukar w[i, j] dengan w[i,k]+w[k,j]
3. W*=W
Contoh : matriks hubungan graph adalah w=w*= |








|
Wij dengan harga , berarti tidak ada lintasan dari vi ke vj,
langsung ataupun tidak. Cari lintasan terpendek dari titik vi ke
vj (i, j= 1, 2, 3, 4) graph berarah berlabel di atas.
- Iterasi untuk k=1
Untuk setiap sel matrik w dicek apakah w[i, j]> w[i,k]+w[k,j].
Jika ya, maka w [i, j] dganti w[i,k]+w[k,j].
Sebagai contoh:
W[1,2]=7 sedangkan W[1,1]+ W[1,2] = + 7 = karena
W[1,2] tidak lebih besar dari W[1,1] + W[1,3], maka harga
W[1,3] tidak diubah. Diperoleh matriks
Wi = |








|
- Iterasi untuk k=2
Iterasi untuk k=2 dilakukan dengan cara yang sama seperti
iterasi untuk k=1, hanya saja perantaranya adalah titik V2.
Sebagai contoh : w[1,3] =, sedangkan W[1, 2]+ W[2,3]=
7+1=8. Karena W[1,3] > W[1,2] + W[2,3], maka harga W[1,3]
diganti dengan 8 ddiperoleh matriks
W2 = |








| proses yang sama dilakukan untuk
semua i dan j didapatkan
W 3 = |








|

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.
3. 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.
4. 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.
5. 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.

Sumber: http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

9. Algoritma Moore
Langkah-langkah algoritma Moore:
1. Langkah awal
Diberikan:


Dengan

adalah jarak dari titik awal ke titik itu sendiri.



Jika titik adjacent dari titik maka:

, dengan

merupakan jarak antara titik awal ke titik titik


tujuan .
Sebaliknya jika titik bukan andjacent dari maka:

.
Setelah semua

diketahui, dilanjutkan ke langkah 2.


2. Langkah 2
Menghitung

dengan menggunakan rumus berikut ini:

]}
Untuk dan , dengan .
3. Ulangi langkah 2, untuk
4. Penghentian iterasi
Jika diperoleh

untuk semua , dengan


syarat , maka iterasi dihentikan. Jika belum kembali ke langkah
3.
Sebaliknya, jika

, ketika maka berarti jaringan


memuat sirkuit negatif, dan oterasi dihentikan.
Contoh:
1. S = 0
2. Setiap sisi terdekat = i +1
3. Setiap sisi terdekat dengan label 2 = i + 2
4. Setiap sisi terdekat dengan label 3 = i + 3


10. Algoritma A*
Berbeda dengan algoritma greedy. 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))

11. 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.

12. Algoritma Johnson
Algoritma Johnson ini adalah dapat digunakan untuk digraph yang
berbobot negatif dan untuk menyelesaikan masalah lintasan terpendek dari
tiap titik ke semua titik lain. Langkah awal penyelesaian Algoritma
Johnson adalah mengkonstruksi digraph baru dengan menambahkan titik
baru pada digraph dan memberi bobot sisi yang keluar dari titik baru
tersebut dengan 0. Langkah selanjutnya adalah mencari lintasan terpendek
dari titik baru ke semua titik lain. Lintasan terpendek tersebut digunakan
untuk mengubah bobot semua sisi pada digraph baru agar bobot semua sisi
bernilai positif. Setelah itu mencari lintasan terpendek dari tiap titik ke
semua titik lain dan mengubah hasilnya dengan menggunakan lintasan
terpendek dari titik baru ke semua titik lain. Hasil dari perhitungan ini
berupa matriks. Dari matriks ini dapat diketahui panjang lintasan
terpendek dari tiap titik ke semua titik lain.
Langkah-langkah algoritma Johnson secara umum :
1. Mengkonstruksi digraph baru G, dengan cara
menambahkan titik baru sehingga
{} { }
2. Setiap titik v di V


3. Menjalankan algoritma Bellman-Ford pada digraph baru
Jika terdapat sikel negatif maka selesai
Jika tidak terdapat sikel negatif maka hitung: d(s,v), v e V
4. Setiap di E
w



5. Setiap di , jlankan algoritma Djikstra untuk menghitung
d



6. d


7. Setiap di ; d


8.
Keterangan :
= bobot sisi dari s ke v
= panjang lintasan terpendek dari s ke v
w


= bobot sisi baru dari u ke v
d


= panjang lintasan terpendek dari u ke v dan yang dihitung
adalah bobot sisi baru ( w )
= panjang lintasan terpendek dari u ke v
= matriks hasil perhitungan lintasan terpendek dari tiap-tiap
pasangan titik dan bobot sisi yang digunakan adalah w
= matriks hasil akhir dari perhitungan

Contoh:
Misalkan diketahui graph berarah (digraf) ) , ( E V G =

Penyelesaian:
Langkah 1:
Mengkontruksi digraph baru dengan menambahkan titik baru pada digraph
lama misal s

Langkah 2
Memberi bobot sisi yang kedua dari titik s ke semua titik lain dengan 0
dan tidak ada sisi yang masuk ke titik s tersebut

Langkah 3
Mengerjakan algoritma Bellman-ford untuk mengecek sikel yang berbobot
negative. Bila ada sikel berbobot negative maka algoritma johnson akan
berhenti dan tidak bisa dijalankan akan tetapi apabila tidak terdapat sikel
yang negative maka langkah selanjutnya akan mencari lintasan terpendek
dari titik baru ke setiap titik v pada digraph.
Langkah-langkahnya sebagai berikut:
1. memberi label titik awal s dengan 0 dan semua titik lain dengan
2. pada langkah ini akan dilakukan proses iterasi sehingga akan diperoleh
nilai baru untuk titik-titik yang lain
Iterasi 1:
Titik s bergerak menuju ke titik tang berhubungan langsung dengan titik s
tersebut, yaitu
4 3 2 1
, , v v v v lalu memberi label titik
4 3 2 1
, , v v v v dengan 0 di
peroleh lintasan( ) ( ) ( ) ( )
4 3 2 1
, , , , , , , v s v s v s v s
Iterasi 2:
Label titik
4 3 2 1
, , v v v v bernilai 0 sehingga keempat titik tersebut
mempunyai kesempatan yang sama menjadi titik awal untuk iterasi ini
Titik
1
v berhubung langsung dengan titik
4
v maka titik
1
v bergerak
menuju ke titrik
4
v karena 0 ) , (
4
= v s d u 3 ) , ( ) , (
2 1 1
= + v v w v s d maka label
titik
4
v tetap 0
Titik
2
v berhubungan langsung dengan
1
v dan
3
v ,maka titik
2
v
bergerak menuju ke
1
v dan
3
v . Karena
3 ) , ( ) , ( 0 ) , (
2 1 2 1
= + > = v v w v s d v s d

maka label
1
v berubah menjadi -3
karena 0 ) , (
3
= v s d u 2 ) , ( ) , (
3 2 2
= + v v w v s d maka label
3
v tetap 0.
Diperoleh lintasan ) , (
1 2
v v
Titik
3
v berhubung langsung dengan
2
v maka
3
v bergerak menuju
2
v karena 1 ) , ( ) , ( 0 ) , (
2 3 3 2
= + > = v v w v s d v s d maka label
2
v berubah
menjadi -1 diperoleh lintasan ) , (
2 3
v v
Titik
4
v berhubungan langsung dengan
1
v dan
3
v maka
4
v bergerak
menuju ke
1
v dan
3
v karena 4 ) , ( ) , ( 3 ) , (
1 4 4 1
= + > = v v w v s d v s d maka
1
v berubah menjadi -4 karena 2 ) , ( ) , ( 0 ) , (
3 4 4 3
= + > = v v w v s d v s d maka
label
3
v berubah menjadi -2 diperoleh lintasan ) , ( ), , ( ), , (
1 4 2 3 3 4
v v dan v v v v
Iterasi 3:
Titik awal

dan
3
v

Titik
1
v berhubungan langsung dengan
4
v ,maka
1
v bergerak menuju ke
4
v
.karena 0 ) , (
4
= v s d u 3 ) , ( ) , (
4 1 1
= + v v w v s d maka label
4
v tetap 0

Titik
3
v berhubung langsung dengan
2
v , maka
3
v bergerak menuju ke
2
v
.karena , 3 ) , ( ) , ( 0 ) , (
2 3 1 2
= + > = v v w v s d v s d maka label 2 berubah
menjadi -3 diperoleh lintasan ) , (
2 3
v v

Iterasi 4:

Titik awal


Titik
2
v
berhubungan langsung dengan
1
v
dan
3
v , maka
2
v
bergerak
menuju ke
1
v
dan
3
v karena
6 ) , ( ) , ( 4 ) , (
1 4 4 1
= + > = v v w v s d v s d
maka
label
1
v
berubah menjadi -6. karena 2 ) , (
3
= v s d u
1 ) , ( ) , (
3 2 2
= + v v w v s d maka label
3
v

tetap -2 diperoleh lintasan
) , (
1 2
v v

Iterasi 5:
Dari iterasi 4 diperoleh lintasan ) , (
1 2
v v di titik awal pada iterasi ini adalah
1
v . Titik
1
v berhubung langsung dengan
4
v maka
1
v bergerak menuju
4
v
karena 0 ) , (
4
= v s d u 1 ) , ( ) , (
4 1 1
= + v v w v s d maka label
4
v tetap 0.
Dari gambar di atas didapatkan panjang lintasan terpendek sari dari titik
awal s ke semua titik lain.
Panjang lintasan sebagai berikut:
0 ) , ( , 2 ) , ( , 3 ) , ( , 6 ) , (
4 3 2 1
= = = = v s d v s d v s d v s d
Selain itu dapan disimpulkan tidak terdapat sikel negative karena tidak
terdapat lintasan dengan titik awal dan titik akhir sama yang bernilai
negative. Sebagai contoh untuk titik awal dan titik akhir
4
v , panjang
lintasannya 1

Langkah 4
Mengubah bobot semua sisi pada digraph baru dengan menggunakan
lintasan terpendek dari baru ke setiap titik dengan cara
( ) ( ) ( ) ( ) v s d u s d v u w v u
w
r
, , , , + = agar bobot setiap sisi bernilai positif dan
dapat digunakan untuk mencari lintasan terpendek dengan menggunakan
algoritma Djikstra sehingga:

( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) 0 ) 2 ( 0 2 , , , ,
2 ) 6 ( 0 4 , , , ,
0 ) 3 ( ) 2 ( 1 , , , ,
1 ) 2 ( ) 3 ( 2 , , , ,
0 ) 6 ( ) 3 ( 3 , , , ,
1 0 ) 6 ( 7 , , , ,
2 ) 2 ( 0 0 , , , ,
3 ) 3 ( 0 0 , , , ,
6 ) 6 ( 0 0 , , , ,
3 4 3 4 3 4
1 4 1 4 1 4
2 3 2 3 2 3
3 2 3 2 3 2
1 2 1 2 1 2
4 1 4 1 4 1
3 3 3
2 2 0
1 1 1
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
v s d v s d v v w v v
w
r
v s d v s d v v w v v
w
r
v s d v s d v v w v v
w
r
v s d v s d v v w v v
w
r
v s d v s d v v w v v
w
r
v s d v s d v v w v v
w
r
v s d s s d v s w v s
w
r
v s d s s d v s w v s
w
r
v s d s s d v s w v s
w
r

Langkah 5
Setelah semua sisi tidak ada yang mempunyain bobot negative maka
langkah selanjutnya adalah menjalankan algoritma Djikstra untuk
menghitung lintasan terpendek dari satu titik ke semua titik lainya
Akan dicari lintasan terpendek dengan titik
1
v sebagai titik awalnya
Iterasi 1
Tahap1:
{ } { } { }
3 2 4 4 1
, , v v v T T v v p = = =
( ) ( )
( ) ( ) 7
0
4 3
2 1
= ' = '
= ' =
v L v L
v L v L

Tahap 2:
{ } { }
4 3 2 1
, v v v T v p = =

( ) ( ) ( ) ( ) { }
( ) ( ) ( ) { }
3 4 4 3 3
2 4 4 2 1
, , min 7 ) (
, , min 0
v v d v L v L v L
v v d v L v L v L
+ ' = ' =
+ ' = ' =

Lalu pilih titik yang punya bobot terkecil yaitu
4
v dan dimasukkan ke p,
hasil perhitungan akhir ini akan masuk ke dalam iterasi 2
Iterasi 2
Tahap 1:
{ } { }
( ) ( ) 5 7
) ( 0 ) (
, ,
3 4
2 1
3 2 4 1
= ' =
= ' =
= =
v L v L
v L v L
v v T v v p

Tahap 2:
{ } { } { }
( ) ( ) ( ) ( ) { }
( ) ( ) 5 7
, , min 0
, ,
3 4
2 3 3 2 1
2 3 3 4 1
= =
+ ' = ' =
= = =
v L v L
v v d v L v L v L
v v T T v v v p

Karena tiik
3
v mempunyai bobot terkecil maka titik
3
v

diberi tanda tetap,
dan hasil perhitungan akhir ini masuk ke dalam iterasi 3.
Iterasi 3
Tahap 1:
{ } { }
( ) ( )
( ) ( ) 5 7
4 0
, ,
3 4
2 1
2 3 4 1
= =
= ' =
= =
v L v L
v L v L
v T v v v p

Tahap 2:
{ } { }
( ) ( )
( ) ( ) 4 7
5 0
, ,
2 4
3 1
2 3 4 1
= =
= =
= =
v L v L
v L v L
T v v v v p

Memilih titik
2
v dan memberi tanda tetap pada titik
2
v
Dari iterasi terakhir diperoleh lintasan terpendek dari tidak
1
v ke semua
titik lain dan panjang lintasannya yaitu
( ) 0 ,

1 1
= v v d
Titik
1
v berhubungan langsung dengan
4
v dan diperoleh ( ) 1 ,

4 1
= v v d
Lintasan terpendek dari titik
1
v ke tetik
3
v melalui
4
v ) , , (
3 4 1
v v v dan
diperoleh ( ) 1 ,

3 1
= v v d
Lintasan terpendek dari titik
1
v ke titik
2
v melalui
3
v ( )
2 3 4 1
, , , v v v v dan
diperoleh ( ) 1 ,

2 1
= v v d
Akan dicari lintasan terpendek dengan titik
2
v sebagai titik awalnya
Iterasi 1
Tahap 1
{ } { }
( ) ( )
( ) ( ) = = ' = '
= = ' =
= =
4 3
1 2
4 3 1 2
2
3 0
, ,
v L v L
v L v L
v v v T v p

Tahap 2
{ } { } { }
( ) ( ) ( ) ( ) { }
( ) ( ) ( ) ( ) { }
4 1 1 4 1
3 1 1 3 2
4 3 1 1 2
, , min 3
, , 2 min 0
, ,
v v d v L v L v L
v v d v L v L v L
v v v T T v v p
+ ' = ' =
+ ' = ' =
= = =

Lalu memilih titik yang mempunyai bobot terkecil yaitu
1
v dan
dimasukkan ke p, hasil perhitungan akhir ini dimasukkan akan masuk ke
iterasi 2
Iterasi 2
Tahap 1
{ } { }
( ) ( )
( ) ( ) 4 3
2 0
, ,
4 1
3 2
4 3 1 2
= ' =
= ' =
= =
v L v L
v L v L
v v T v v p

Tahap 2
{ } { } { }
( ) ( ) ( ) ( ) { }
( ) ( ) 2 3
, , 4 min 0
, ,
3 1
4 3 3 4 2
4 3 3 1 2
= =
+ ' = ' =
= = =
v L v L
v v d v L v L v L
v v T T v v v p

Karena titik
3
v

punya bobot negatif, maka titik
3
v diberi tanda tetap dan
hasil perhitungan akhir ini masuk iterasi 3
Iterasi 3
Tahap 1
{ } ( )
( ) ( )
( ) ( ) 2 3
4 0
, ,
3 1
4 2
4 3 1 2
= =
= ' =
= =
v L v L
v L v L
v T v v v p

Tahap 2
{ } { }
( ) ( )
( ) ( ) 4 3
2 0
, , ,
4 1
3 2
4 3 1 2
= =
= =
= =
v L v L
v L v L
T v v v v p

Memilih titik
4
v dan memberi tanda pada
4
v
Dari iterasi yang terakhir diperoleh lintasan tependek dari titik
2
v ke semua
titik lain dan panjang lintasan terpendeknya yaitu:
( ) 0 ,

2 2
= v v d
Titik
2
v berhubungan langsung dengan titik
1
v ,diperoleh ( ) 0 ,

1 2
= v v d
Titik
2
v berhubungan langsung dengan titik
3
v diperoleh ( ) 1 ,

3 2
= v v d
Lintasan terpendek dari titik
2
v ke titik
4
v melalui ) , , (
4 1 2 1
v v v v dan
diperoleh ( ) 1 ,

4 2
= v v d

Akan dicari lintasan terpendek dengan titik
3
v sebagai titik awal
Iterasi 1
Tahap 1
{ } { }
( ) ( )
( ) ( ) = = ' = '
= = ' =
= =
4 2
1 3
4 2 1 3
1
0
, ,
v L v L
v L v L
v v v T v p


Tahap 2
{ } { } { }
( ) ( ) ( ) ( ) { }
( ) ( ) ( ) ( ) { }
4 2 2 4 2
1 2 2 1 3
4 1 2 2 3
, , min 1
, , min 0
, ,
v v d v L v L v L
v v d v L v L v L
v v v T T v v p
+ ' = ' =
+ ' = ' =
= = =


Lalu memilih titik yang mempunyai bobot terkecil yaitu
2
v dan
dimasukkan ke p, hasil perhitungan akhir ini akan masuk ke iterasi 2
Iterasi 2
Tahap 1
{ } { }
( ) ( )
( ) ( ) = ' =
= ' =
= =
4 2
1 3
4 1 2 3
1
4 0
, ,
v L v L
v L v L
v v T v v p

Tahap 2

{ } { } { }
( ) ( ) ( ) ( ) { }
( ) ( ) 4 1
, , min 0
, ,
1 2
4 1 1 4 3
4 1 1 2 3
= =
+ ' = ' =
= = =
v L v L
v v d v L v L v L
v v T T v v v p

Karena titik
1
v punya bobot negative, maka titik
1
v diberi tanda tetap
Hasil perhitungn akhir ini masuk ke iterasi 3
Iterasi 3
Tahap 1
{ } ( )
( ) ( )
( ) ( ) 4 1
3 0
, ,
1 2
4 3
4 1 2 3
= =
= ' =
= =
v L v L
v L v L
v T v v v p

Tahap 2
{ } { }
( ) ( )
( ) ( ) 3 1
4 0
, , ,
4 2
1 3
4 1 2 3
= =
= =
= =
v L v L
v L v L
T v v v v p

Memilih titik
4
v dan memberi tanda tetap pada titik
4
v
Dari iterasi yang terakhir diperoleh lintasan tependek dari titik
3
v

ke
semua titik lain dan panjang lintasan terpendeknya yaitu:
( ) 0 ,

3 3
= v v d
Titik
3
v berhubungan langsung dengan titik
2
v ,diperoleh
( ) 0 ,

2 3
= v v d
Lintasan terpendek dari titik
3
v ke titik
1
v melalui ) , , (
1 2 3 2
v v v v

dan
diperoleh ( ) 0 ,

1 3
= v v d
Lintasan terpendek dari titik
3
v ke titik
4
v melalui ) , , , (
4 1 2 3 1
v v v v v

dan diperoleh ( ) 1 ,

4 3
= v v d
Akan dicari lintasan terpendek dengan titik
4
v sebagai titik awal
Iterasi 1
Tahap 1
{ } { }
( ) ( )
( ) ( ) 2
4 0
, ,
3 2
1 4
3 2 1 4
= = ' = '
= = ' =
= =
v L v L
v L v L
v v v T v p

Tahap 2
{ } { } { }
( ) ( ) ( ) ( ) { }
( ) ( ) ( ) ( ) { }
3 1 1 3 1
2 1 1 2 4
3 2 1 1 4
, , min 4
, , min 0
, ,
v v d v L v L v L
v v d v L v L v L
v v v T T v v p
+ ' = ' =
+ ' = ' =
= = =

Lalu memilih titik yang mempunyai bobot terkecil yaitu
1
v dan
dimasukkan ke p, hasil perhitungan akhir ini akan masuk ke iterasi 2
Iterasi 2
Tahap 1
{ } { }
( ) ( )
( ) ( ) 2 4
0
, ,
3 1
2 4
3 2 1 4
= ' =
= ' =
= =
v L v L
v L v L
v v T v v p

Tahap 2
{ } { } { }
( ) ( ) ( ) ( ) { }
( ) ( ) 2 4
, , min 0
, ,
3 1
1 3 3 2 4
2 3 3 1 4
= =
+ ' = ' =
= = =
v L v L
v v d v L v L v L
v v T T v v v p

Karena titik
3
v

punya bobot negative maka titik
3
v diberi tanda tetap,
Hasil perhitungn akhir ini masuk iterasi 3

Iterasi 3
Tahap 1
{ } { }
( ) ( )
( ) ( ) 2 4
3 0
, ,
3 1
2 4
2 3 1 4
= =
= ' =
= =
v L v L
v L v L
v T v v v p

Memilih titik
2
v dan memberi tanda tetap pada titik
2
v


Tahap 2
{ } { }
( ) ( )
( ) ( ) 3 4
2 0
, ,
2 1
3 4
2 3 4 1
= =
= =
= =
v L v L
v L v L
T v v v v p

Karena ada lintasan dari v
2
ke v
1
, maka

( ) ( ) ( ) { } { } 6 6 , 4 min , , 4 min
1 2 2 1
= = + ' = ' v v d v L v L
Sehingga dipilih


Dari iterasi yang terakhir ini diperoleh lintasan terpendek dari titik
4
v ke semua titik lain dan panjang lintasan terpendeknya yaitu
0 ) , (

4 4
= v v d
Titik
4
v berhubungan lngsung dengan titik
3
v dan diperoleh
0 ) , (

3 4
= v v d
Lintasan terpendek dari titik
4
v ke titik
2
v melalui
3
v ) , , (
2 3 4
v v v
diperoleh 0 ) , (

2 4
= v v d
Lintasan terpendek dari titik
4
v ke
5
v melalui ( )
5 2 3 4 1
, , , v v v v v

dan
diperoleh 0 ) , (

5 4
= v v d
Langkah 6
Selelah mengetahui panjang lintasan terpendek dari setiap titik ke
semua titik lain maka selanjutnya adalah menyimpan hasil perhitungan
tersebut dalam bentuk matriks
(
(
(
(

= '
0 0 0 0
1 0 0 0
1 1 0 0
1 1 1 0
D
Langkah 7
Karena sudah diketahui panjang lintasan terpendek dari setiap titik ke
titik lain hasil mengubah semua bobot sisimaka selanjutnya adalah
mengubah kembali nilai nilai bobot dari semua lintasan terpendek pada
matriks D dengan menggunakan lintasan terpendek dari titik baru ke semua
titik yaitu, ( ) ( ) ), , ( , ) , (

, u s d v s d v u d v u d + = sehingga diperoleh:
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) 0 0 0 0 , , ,

) , (
2 0 ) 2 ( 0 , , ,

) , (
3 0 ) 3 ( 0 , , ,

) , (
6 0 ) 6 ( 0 , , ,

) , (
3 ) 2 ( 0 1 , , ,

) , (
0 ) 2 ( ) 2 ( 0 , , ,

) , (
1 ) 2 ( ) 3 ( 0 , , ,

) , (
4 ) 2 ( ) 6 ( 0 , , ,

) , (
4 ) 3 ( 0 1 , , ,

) , (
2 ) 3 ( ) 2 ( 1 , , ,

) , (
0 ) 63 ( ) 3 ( 0 , , ,

) , (
3 ) 3 ( ) 6 ( 0 , , ,

) , (
7 ) 6 ( 0 1 , , ,

) , (
5 ) 6 ( ) 2 ( 1 , , ,

) , (
4 ) 6 ( ) 3 ( 1 , , ,

) , (
0 ) 6 ( ) 6 ( 0 , , ,

) , (
4 4 4 4 4 4
4 3 3 4 3 4
4 2 2 4 2 4
4 1 1 4 1 4
3 4 4 3 4 3
3 3 3 3 3 3
3 2 2 3 2 3
3 1 1 3 1 3
2 4 4 2 4 2
2 3 3 2 3 2
2 2 2 2 2 2
2 1 1 2 1 2
1 4 4 1 4 1
1 3 3 1 3 1
1 2 2 1 2 1
1 1 1 1 1 1
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
= + = + =
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d
v s d v s d v v d v v d


Langkah 8
Langkah terakhir dari algoritma ini adalah menyimpan kembali
perhitungan perubahan nilai bobot lintasan terpendek dari tiap titik ke semua
titik lain dalam matriks
(
(
(
(

=
0 2 3 6
3 0 1 4
4 2 0 3
7 5 4 0
D

13. Algoritma Exhaustic Search
Mencari lintasan terpendek dengan exhaustive search yaitu dengan
mengenumerasi setiap lintasan yang mungkin dengan cara yang sistematis.
Dari setiap kemungkinan tersebut dievaluasi satu persatu, selanjutnya
bandingkan setiap lintasan yang telah dievaluasi, lintasan yang
memberikan nilai terkecil merupakan lintasan terpendek yang kita cari.
Contoh :

Misalkan akan dicari lintasan terpendek dari titik 1 ke 6. Banyaknya
kemungkinan lintasan dari titik 1 ke titik 6 adalah sebagai berikut.


14. Algoritma UCS ( Uniform Cost Search )
Uniform Cost Search (UCS) adalah pencarian yang digunakan untuk
melewati dan menemukan jalan terpendek di pohon berbobot dan grafik.
Uniform Cost Search (UCS) dimulai pada titik awal dan akan terus
memperluas titik, pengambilan titik dengan terkecil, dimana
adalah total jarak di titik awal sampai mencapai titik berikutnya. Algoritma
ini tidak peduli tentang berapa banyak langkah jalan yang dimiliki hanya
biaya total jalan(Sumber:Graham, 2001).
Langkah-langkah Uniform Cost Search (UCS) :
1. Tentukan titik awal
2. Ekspansi anak-anaknya(titik-titik yang terkait dengan titik awal),
kemudian hitung nilai dari masing-masing anak-anaknya yaitu total
jarak awal sampai titik anak.
3. Pilih titik dari titik anak dengan nilai terkecil, titik yang terpilih akan
mendapat prioritas utama untuk diekspansi anak-anaknya.
4. Bandingkan dengan nilai lain yang telah didapatkan, ulangi langkah
3 sampai titik tujuan.
5. Jika tidak ada lagi nilai terkecil selain nilai pada rute yang telah
menenmukan titik tujuan, maka proses dihentikan.
6. Urutan titik-titik yang terpilih adalah rute yang lintasan terpendek yang
dihasilkan.

15. Algoritma Wall-Follower
Algoritma Wall Follower adalah jenis yang paling sederhana dari teknik
maze solving lainnya. Prinsipnya adalah mengikuti dinding kanan atau kiri
secara terus menerus selama menjelajahi labirin. Ketika sensor pada robot
mendeteksi dinding yang terbuka (terdapat jalan) maka robot akan berhenti
dan belok pada arah yang bersangkutan, kemudian berjalan lurus dan
mengikuti dinding kembali. Algoritma ini cenderung berharap menemukan
jalan keluar dibanding mencoba menyelesaikan labirin tersebut.

Langkah-langkah yang dilakukan adalah sebagai berikut
(dalam pseudo-code):










Algoritma sederhana seperti mengikuti dinding kanan atau kiri terbukti
tidak dapat digunakan pada pola labirin seperti pada Gambar 1.2 yang
merupakan sebuah imperfect maze. Kebanyakan kompetisi saat ini secara
If ada jalan ke kanan
Belok ke kanan
Else if ada jalan ke depan
Do nothing
Else if ada jalan ke kiri
Belok ke kiri
Else
Balik badan
End if
Maju ke depan satu sel
sengaja membuat labirin dengan pola seperti ini, sehingga algoritma ini
sudah tidak sesuai untuk digunakan dalam kompetisi micromouse.

16. 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.

17. Algoritma Exhaustic Combinatorial
Pada prinsipnya metode ini merupakan penggabungan antara depth first
search dengan pelacakan mundur (backtracking), yaitu pelacakan bergerak
ke belakang menuju pada suatu keadaan awal. Nilai dari pengujian yang
dilakukan adalah ya atau tidak. Dengan kata lain metode ini adalah
pencarian buta yang mencari semua kemungkinan yang ada dari
permasalahan yang diproses. (Kristanto, 2004).
Secara garis besar cara kerja algoritma ini adalah sebagai berikut:
1. Membandingkan semua kemungkinan solusi (membangkitkan suatu
titik tertentu atau lintasan tertentu dari keadaan awal ).
2. Melakukan pengujian untuk melihat apakah titik tersebut benar-benar
merupakan solusi yang diharapkan dengan cara membandingkan titik
tersebut atau titik akhir dari suatu lintasan yang dipilih dengan kumpulan
tujuan yang diharapkan.
3. Jika solusi tersebut memenuhi syarat yang diinginkan, keluar. Jika
tidak, ulangi kembali langkah yang pertama untuk mencari kemungkinan
yang lain.

18. Algoritma Neural-Network Hopfield
Algoritma Neural Network Hopfield pertama kali dikenalkan oleh John
Hopfield dari California Institute of Technology pada tahun 1982. John
Hopfield merancang sebuah jaringan syaraf tiruan yang kemudian dikenal
dengan nama jaringan Hopfield. Dalam jaringan Hopfield semua neuron
berhubungan penuh. Neuron yang satu mengeluarkan output dan
kemudian menjadi input untuk semua neuron yang lain. Proses
penerimaan sinyal antara neuron ini secara feedback tertutup terus
menerus sampai dicapai kondisi stabil (Kristanto
2004).
Dalam model diskritnya, jaringan Hopfield bobot sinaptiknya
menggunakan vektor biner berdimensi n atau {}

. Model semacam ini


berisi n neuron dan jaringannya terdiri dari interkoneksi dua
jalur. Secara matematis konsep di atas dapat disajikan dalam matriks
simetris dengan diagonal utamanya bernilai 0. Dengan kata lain,
setiap neuron tidak memberi input kepada dirinya sendiri.
Kemampuan jaringan syaraf tiruan untuk mengenali pola ditentukan
dengan rumus . adalah banyaknya dimensi yang digunakan.
Misalkan dimensi yang digunakan
adalah 100 maka pola yang akan dikenali sebanyak 15 buah. Dimensi
adalah suatu vektor yang mewakili banyaknya baris dan kolom yang
digunakan. Dari contoh di atas berarti baris
yang digunakan berjumlah 100 dan kolom yang digunakan berjumlah 100
juga. Jaringan syaraf tiruan digunakan untuk mengenali berbagai input
atau masukan yang diberikan kepadanya. Misalnya, jaringan tersebut
dilatih untuk mengenali berbagai versi angka 2. Setelah mengalami cukup
latihan, maka jaringan itu dapat menghasilkan angka 2 secara sempurna
dari masukan angka 2 yang rusak atau kena distorsi.
Model atau arsitektur dari jaringan Hopfield ditunjukkan pada gambar 1,
dimana dalam gambar tersebut terdapat suatu jaringan yang terdiri dari N
buah simpul yang mengandung nonlinearitas hard limiter dan input serta
output biner yang dapat bernilai atau .

Dari gambar diatas, dapat dijelaskan bahwa output setiap simpul diumpan
balikkan kepada input dari simpul-simpul lainnya melalui bobot koneksi

yang tetap. Nilai

mula-mula diinisialisasi menggunakan


algoritma Hopfield untuk sebuah pola yang masuk.
Pola yang tidak dikenal dimasukkan ke dalam jaringan sekali saja pada
waktu kondisi nol. Kemudian jaringan akan beriterasi sampai output yang
dihasilkan bersifat konvergen. Konvergen adalah pola output yang tidak
berubah sampai iterasi selesai. Pola yang dinyatakan oleh simpul-simpul
output setelah jaringan konvergen adalah output jaringan
syaraf tiruan.
Pada kasus Shortest Path dengan menggunakan jaringan syaraf tiruan
Hopfield, langkah pertama adalah melakukan pemetaan antara
permasalahan ke dalam struktur jaringan (Freeman and Skapura, 1991).
Hal ini dilakukan dengan merepresentasikan n node (neuron) jaringan
menjadi n kemungkinan urutan posisi yang dilalui pada sebuah kota.
Untuk n kota maka dibutuhkan n node.
Contoh:
terdapat 5 kota, maka lima node yang berisi : 0 0 0 1 0 menunjukkan
sebuah kota yang mempunyai urutan keempat untuk dikunjungi. Dengan
cara ini maka terdapat 5 group yang masing-masing berisi 5 node seperti
contoh di atas dimana masing-masing group merepresentasikan sebuah
kota. Untuk lebih jelas dapat dilihat pada gambar di bawah dimana pada
gambar tersebut terdapat matriks 5x5 yang menunjukkan urutan posisi
kota saat dilalui. Dari gambar tersebut dapat dilihat bahwa urutan kota
yang dilalui adalah B-A-E-C-D.

Untuk menentukan apakah sebuah rute merupakan rute terpendek pada
jaringan Hopfield ini digunakan sebuah fungsi energi, dimana jika nilai
energi yang dihasilkan kecil, menunjukkan bahwa rute tersebut minimum.
Berikut adalah formula yang digunakan dalam pendekatan untuk mecari
nilai fungsi energi E yang minimum:


Pada formula di atas, notasi X dan Y menunjukkan kota, sedangkan notasi
i dan j menunjukkan posisi kota tersebut pada rute. n adalah jumlah kota
dan

adalah jarak antara


kota X dan Y. Konstanta A, B, C dan D adalah konstanta yang harus
ditentukan tergantung jumlah kota. Dari formula di atas dilakukan
perhitungan terhadap nilai fungsi energi E hingga
didapatkan nilai E yang minimum. Apabila telah didapatkan nilai fungsi
energi yang minumum, diharapkan hasil dari proses algoritma ini
memberikan hasil berupa rute yang
terpendek.
19. Algoritma Flood Fill
Algoritma Flood-Fill merupakan modifikasi dari algoritma BellmanFord
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.
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.
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,

20. Algoritma Heuristic Hybrid
Algoritma Hybrid adalah algoritma yang memanfaatkan kelebihan
yang dimiliki oleh Supervised Multilayer Perceptron dengan
menggunakan algoritma Backpropagation Network dan algoritma Self
Organizing Maps Kohonen (SOM). Algoritma Hybrid menggunakan
algoritma SOM sebagai lapisan awal untuk memproses input, kemudian
algoritma Backpropagation Network akan memproses sinyal input hasil
dari proses pembelajaran algoritma SOM sebagai faktor pembimbing
untuk memprediksi nilai saham di masa yang akan datang. Penggunaan
algoritma SOM
dalam algoritma Hybrid memungkinkan sifat rangkaian data ditangkap,
kemudian digunakan pada pembelajaran algoritma Backpropagation
Network. Namun, pemrosesan data pembelajaran pada algoritma
pembelajaran untuk jaringan seperti algoritma Hybrid akan lebih rumit
dari algoritma
Backpropagation Network dan algoritma SOM secara individu, karena
melibatkan algoritma pembelajaran yang berbeda sifat satu sama lain.
Pada algoritma Hybrid, proses pembelajaran / pelatihan dilakukan secara
berurutan. Algoritma SOM melakukan pembelajaran terlebih dahulu,
tanpa perlu memperhatikan lapisan input pada algoritma
Backpropagation Network. Dengan dasar algoritma SOM, algoritma
Hybrid dilatih untuk mengklasifikasikan vektor data input ke dalam
kelas- kelas berbeda (dalam penelitian ini berjumlah 20 kelas vektor).
Algoritma Backpropagation Network memulai proses pembelajaran
setelah proses pembelajaran algoritma SOM selesai. Algoritma
Backpropagation Network menggunakan faktor pembimbing g(n) yang
dihasilkan oleh lapisan yang lebih rendah, kemudian membandingkannya
dengan output yang diinginkan.

21. Algoritma Heuristic Pintar Hybrid
Algoritmanya dapat dideskripsikan sebagai berikut:
Langkah 1: tandai kromosom pop-size


secara acak.
Langkah 2: hitung nilai pbjektif dari semua kromosom melalui stokastik
Langkah 3: komputasikan kecocokan setiap kromosom. Fungsi evaluasi
berdasarkan tingkatan didefinisikan sebagai berikut:


Dimana kromosom-kromosom tersebut diasumsikan telah disusun kembali
dari baik ke buruk menurut nilai objektifnya merupakan sebuah
parameter pada sistem genetik.
Langkah 4: pilih kromosom-kromosom untuk populasi baru.
Langkah 5: perbarui kromosom-kromosom


melalui operasi silang dan operasi mutasi disebutkan sebelumnya.
Langkah 6: ulangi langkah ke-2 hingga ke-5 sesuai dengan jumlah
kebutuhan yang diberikan
Langkah 7: laporkan kromosom terbaik

.








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) dan Tri Hariyati
Nur Indah Sari (405312479996)
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
unutk 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.

4. Judul : Penentuan Lintasan Terpendek (Shotest Path)
dengan Algoritma Djikstra, Algoritma Floyd-Warshall dan
Algoritma Bellman-Ford
Penulis : Dwi Erna Novianti
Tahun : 2005
Alat bantu : Menggunakan program GIDEN
Kesimpulan :
Algoritma Djikstra memuat panjang lintasan terpendek dan
lintasan yang dilalui tetapi hanya untuk digraph yang bermuatan
negative. Algoritma Floyd-Warshall memuat jarak terpendek dari
semua pasangan titik tetapi tidak memuat pasangan yang dilalui.
Algoritma Bellman-Ford akan menunjukkan berapa jarak
terpendeknya, juga berlaku untuk digraph yang berbobot negative.

5. Judul : Penyelesaian Masalah Lintasan Terpendek
(Shortest Path) dengan menggunakan Algoritma Johnson
Penulis : Dewi Wahyuningsih
Tahun : 2007
Alat bantu : menggunakan program GIDEN
Kesimpulan :
Kelebihan dari Algoritma Johnson adalah dapat digunakan untuk
digraph yang berbobot negative dan untuk menyelesaikan lintasan
terpendek dari tiap titik ke semua titik lain. Tahap-tahap
pengerjakan Algoritma Johnson melibatkan Algoritma Djikstra.
Dengan menggunakan Algoritma Johnson dan Floyd-Warshall
diperoleh hasil yang sama. Hasil yang sama juga diperoleh dengan
menggunakan program bantu GIDEN. Sehingga Algoritma
Johnson dapat menjadi metode alternative dalam menyelesaikan
masalah lintasan terpendek.

6. Judul : Penerapan Teori Grap Dalam Menetukan Lintasan
Terpendek Dari Pasar Karangploso ke Pasar Gadang dengan
Algoritma Bellman-Ford
Penulis : Didik Nurdiansyah (302312417234)
Tahun : 2006
Kesimpulan :
Dengan menggunakan Algoritma Bellman-Ford kita mendapatkan
lintasan terpendek dari Pasar Karangploso ke Pasar Gadang yaitu
Pasar Karangploso-Pasar Dinoyo-Pasar Sukun-Pasar Gadang
dengan panjang lintasan 18km. Dan hasil yang sama diperoleh dari
alat bantu yang digunakan yaitu program Grin dan Giden.
Kelebihan dari algoritma Bellman-Ford ini adalah dapat digunakan
untuk menghitung grap berbobot negatif. Namun karena masalah
yang diambil dalam makalah ini mengenai jarak maka grap yang
digunakan adalah grap yang berbobot positif.
7. Judul : Optimalisasi Lintasan Terpendek Jalur Pariwisata di
Kabupaten Malang
Penulis : Arrohmawati (304312473201) dkk.
Tahun : 2006
Kesimpulan :
Permasalahan penentuan lintasan terpendek dalam makalah ini
adalah mencari jarak terpendek dari Hotel Kusuma ke beberapa
tempat objek wisata. Pada penentuan lintasan terpendek Hotel
Kusuma ke beberapa tempat objek wisata dengan menggunakan
algoritma djikstra diperoleh jarak terpendeknya sebagai berikut:
o Dari Hotel Kusuma ke Tirta Nirwana 5 km, dengan lintasan
Hotel Kusuma-Pemandian Tirta Nirwana.
o Dari Hotel Kusuma ke Jatim Park adalah 2 km, dengan
lintasan Hotel Kusuma Jatim Park.
o Dari Hotel Kusuma ke Kebun Teh Lawang adalah 32 km,
dengan lintasan Hotel Kusuma JatimPark Kebun Teh
Lawang.
o Dari Hotel Kusuma ke Taman Rekreasi Sengkaling adalah 10
km, dengan lintasan Hotel Kusuma - Taman Rekreasi
Sengkaling.
o Dari Hotel Kusuma ke Candi Badut adalah 16 km, dengan
lintasan Hotel Kusuma Candi Badut.
o Dari Hotel Kusuma ke Pemandian Wendit adalah 25 km,
dengan lintasan Hotel Kusuma Jatim Park - Pemandian
Wendit.
o Dari Hotel Kusuma ke Wisata Pantai Bale Kambang adala 73
km, dengan lintasan Hotel Kusuma Taman Rekreasi
Sengkaling Wisata Pantai Bale Kambang.
Pada hasil akhirnya dapat diketahui jarak terpendek antar tempat
objek wisata dengan menggunakan software Giden didapat hasil
akhir lintasan terpendek yang sama dengan penggunaan
Algoritma Djikstra secara manual.

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
METODOLOGI

3.1 Data yang diperlukan
Dalam survey yang kami lakukan , kami membutuhkan beberapa data ,
dimana data tersebut dapat direpresentasikan sebagai bagian atau unsur-
unsur pada graph, yakni data yang diambil adalah sebagai berikut:
1. Nama persimpangan jalan, dan beberapa lokasi yang sering
dikunjungi
2. Jarak antara setiap persimpangan dan/atau jarak antara setiap
lokasi
3. Jalur yang dapat dilalui antar setiap persimpangan dan/atau setiap
lokasi
Data tersebut dimisalkan:
1. nama persimpangan dan lokasi sebagai titik (V)
2. jarak sebagai bobot(w)
3. jalur sebagai sisi(E).
Algoritma yang akan dipakai adalah algoritma djikstra, perkalian
matriks, greedy, Exhautis Search dan Floyd warshall dengan
menggunakan alat bantu Giden, Grin dan WinQsb. Kelima algoritma
tersebut merupakan algoritma yang mudah dipahami dalam kehidupan
bermasyarakat.
Misalkan kita mempunyai graf seperti di bawah ini :




1.2 Analisa data dengan algoritma
Contoh Persoalan: Suatu agen koran CENTER akan mendistribusikan
koran pada 11 toko langganan yaitu:

Toko Makmur : Jl Soekarno Hatta no. 2
Toko Abadi : Jl Moch. Yamin no. 3
Toko Indah : Jl Mawar no. 23
Toko Amin : Jl Indramayu no. 21
Toko Sederhana : Jl Melati no. 1
Toko Sejati : Jl Bogor no. 20
Toko Citra : Jl Toyib no. 18
Toko Sinar : Jl Sumbersari no. 466
Toko Wijaya : Jl Pahlawan no. 19
Toko Kembar : Jl Terusan Ambarawa no. 40
Toko Amanda : Jl Semarang no. 55

Agen koran CENTER akan mendistribusikan korannya dari Toko
Makmur sampai ke Toko Amanda. Agen koran ini ingin mencari jalur
terpendek dari toko Makmur ke toko Citra dengan melewati toko-toko
yang lain.
Penyelesaian :
Dimisalkan
A= Toko Makmur
B=Toko Abadi
C= Toko Indah
D= Toko Amin
E= Toko Sederhana
F=Toko Sejati
G= Toko Citra
H= Toko Sinar
I= Toko Wijaya
J= Toko Kembar
K= Toko Amanda
Jalur toko-toko tersebut seperti dalam gambar berikut


Karena akan mencari lintasan tependek dari titik A ke titik G maka kita
akan menggunakan Algoritma-algoritma:
1. Algoritma floyd warshall
Diambil contoh subgraph dari graph tersebut,

Didapatkan penyelesaian sebagai berikut:

w*=w






4 12
5
3
4
4 7
7
W
ij
dengan harga , berarti tidak ada lintasan dari v
i
ke v
j
,
langsung ataupun tidak. Cari lintasan terpendek dari titik v
i
ke v
j
(i, j=
1, 2, 3, 4, 5, 6) graph berarah berlabel di atas.
- Iterasi untuk k=1
Untuk setiap sel matrik w dicek apakah w[i, j]> w[i,1]+w[1,j]. Jika ya,
maka w [i, j] dganti w[i,1]+w[1,j].
Sehingga menjadi
i,j w[i,j] w[i,1]+w[1,j] Keterangan
I J
1 1 Tetap
1 2 4 Tetap
1 3 Tetap
1 4 Tetap
1 5 Tetap
1 6 12 Tetap
2 1 Tetap
2 2 Tetap
2 3 5 Tetap
2 4 Tetap
2 5 Tetap
2 6 Tetap
3 1 Tetap
3 2 Tetap
3 3 Tetap
3 4 3 Tetap
3 5 Tetap
3 6 Tetap
4 1 Tetap
4 2 Tetap
4 3 Tetap
4 4 Tetap
4 5 4 Tetap
4 6 Tetap
5 1 Tetap
5 2 Tetap
5 3 Tetap
5 4 4 Tetap
5 5 Tetap
5 6 7 Tetap
6 1 Tetap
6 2 Tetap
6 3 Tetap
6 4 Tetap
6 5 7 Tetap
6 6 Tetap

Diperoleh matriks
W1 =







- Iterasi untuk k=2
Untuk setiap sel matrik w dicek apakah w[i, j]> w[i,2]+w[2,j]. Jika ya,
maka w [i, j] dganti w[i,2]+w[2,j].
Sehingga menjadi
i,j w[i,j] w[i,2]+w[2,j] Keterangan
I J
1 1 4+ Tetap
1 2 4 Tetap
1 3 Tetap
1 4 Tetap
1 5 Tetap
1 6 12 Tetap
2 1 Tetap
2 2 Tetap
2 3 5 Tetap
2 4 Tetap
2 5 Tetap
2 6 Tetap
3 1 Tetap
3 2 Tetap
3 3 Tetap
4 12
5
3
4
4 7
7
3 4 3 Tetap
3 5 Tetap
3 6 Tetap
4 1 Tetap
4 2 Tetap
4 3 Tetap
4 4 Tetap
4 5 4 Tetap
4 6 Tetap
5 1 Tetap
5 2 Tetap
5 3 Tetap
5 4 4 Tetap
5 5 Tetap
5 6 7 Tetap
6 1 Tetap
6 2 Tetap
6 3 Tetap
6 4 Tetap
6 5 7 Tetap
6 6 Tetap

Diperoleh matriks
Wi =








4 12
5
3
4
4 7
7
2. Algoritma Djikstra
Tentukan titik awal dan beri label temporer 0. Lalu tentukan bobot titik
lain yang paling pendek dari jalur yang lain. Sampai pada titik tujuan.
Sehingga diperoleh graf berikut:



Jadi lintasan terpendek dari titik A ke titik G adalah 16. Dengan jalur
A B E F G.
3. Algoritma Greedy
Dari titik awal pilih bobot yang paling minimum, lalu pada titik
selanjutnya juga pilih bobot yang paling minimum, lakukan sampai titik
tujuan.
Pilih titik A sebagai titik awal, lalu pilih titik B karena bobotnya lebih
sedikit dari pada titik H yaitu 4 < 11. Lalu dari titik B pilihlah titik C
karena bobotnya lebih sedikit daripada titik E yaitu 3 < 5. Dari titik C
lanjutkan dengan memilih titik E karena bobotnya lebih sedikit daripada
titik D yaitu 8 < 9. Lalu dari titik E pilih titik F dengan bobot 3 karena
bobot lebih sedikit daripada titik I yang berbobot 12. Setelah itu pilih titik
G karena bobotnya lebih sedikit daripaa titik H yaitu 4 < 6. Karena telah
sampai pada titik tujuan, maka pemilihan titik selanjutnya berhenti.
Sehingga diperoleh jalur dari A ke G melewati A B C E F G
dengan panjang jalan 4 + 3 + 8 + 3 + 4 =22



Alat bantu Program :
a. Grin
1. Membuka program Grin40, Ketik File New


2. Ketik File New

3. Untuk membuat titik klik Edit Add Add Point. Untuk
memberikan sisi klik Edit Add Add Edge

4. Untuk merubah nama titik klik Table Name Name. Untuk
memberikan sisi klik Table Name Weight

5. Untuk menyelesaikan Klik Property Shortest Path

6. Langkah selanjutnya adalah klik titik yang dijadikan titik awal,
kemudian klik titik yang dijadikan titik akhir. Didapatkan hasil sebagai
berikut :

Dengan alat bantu Grin didapatkan lintasan terpendek dari 1 2 3 9
14 dengan panjang lintasan 8.4
b. Giden
- Input data untuk sisi dan titik sesuai petunjuk Giden yang telah
dibahas di halaman sebelumnya

- Kemudian tambahkan sisi dan atur agar mudah dipahami




- Kemudian beri bobot pada setiap sisi pada graph tersebut



- pada kolom pilihan length pilih jarak kemudian klik accept

- Klik Trace kemudian tentukan titik awal
- klik trace berulang kali sampak mendapatkan shortest path
sehingga diperoleh shorthest pathnya adalah 1-3-5-9-11

c. WinQSB
1. Membuka Program WINQSB klik Network Modelling

2. Pilih shortest path problem
3. Isilah form berikut:


4. Kilik File New Problem, pada Problem Type isi Shortest Path
Problem lalu tulis judul permasalahan sesuai keinginan pada Problem
Title kemudian isi Number Of Nodes dengan jumlah titik pada
permasalahan anda kemudian klik OK
5. Setelah klik OK maka akan muncul table sebanyak n baris dan n kolom
kemudian isi table tersebut sesuai dengan matriks keterhubungan
langsung hingga titik yang ke n dengan n adalah banyak titik.

6. Setelah semua terisi maka langkah selanjutnya adalah mencari lintasan
terpendeknya yaitu dengan memilih Solve and Analyze pilih Solve the
Problem.

Dengan alat bantu WinQSB didapatkan lintasan terpendek dari titik
1(A)-2(B)-5(E)-9(I)-14(N) dengan panjang lintasan 8.44

Contoh kasus penggunaan alat bantu Giden, Grin dan WinQsb untuk
Optimalisasi Pendistribusian Roti Sari Roti di CV. Duta Mulya dengan
Menggunakan Algoritma-Algoritma Pada Lintasan Terpendek oleh Annisa
Masruroh, Nindy Sagita, Rachmadania Akbarita, Elvira Firdausi pada tahun
2011. Dari hasil survey yang dilakukan, diperoleh lintasan terpendek dari
CV Duta Mulya ke Toko Sardo yang diselesaikan dengan menggunakan
algoritma Greedy, Djikstra, Semut, A*, Floyd Warshall dan Bellman Ford
diperoleh hasil bahwa semua algortima dan alat bantu program yang
digunakan kecuali algoritma Greedy mendapatkan hasil lintasan terpendek
yang sama yakni 8,22 km.
1. Giden


Dengan menggunakan alat bantu giden-dijkstra, maka diperoleh hasil seperti
dibawah ini:

Penjelasan: Dari titik awal yaitu CV Duta Mulya (Sari Roti) dengan nomor
titik 28 yang diberi label 0 akan menuju Sardo. Sehingga diperoleh 28-29-
30-11-12-9-5-4-16 dengan jumlah bobot 8220.
Kelebihan : mengetahui panjang lintasan yang disertai lintasan yang dilalui,
mengetahui lintasan ke titik-titik yang lain.
Kekurangan: harus menggambar terlebih dahulu sehingga membutuhkan
waktu yang lebih lama.

2. Grin
- Dengan langkah-langkah pengerjaan yang telah dijelaskan sebelumnya,
maka akan didapat graph seperti dibawah ini:

- Sehingga diperoleh penyelesaian sebagai berikut:

Dengan gambar lintasan yang dilewati sebagai berikut:

Dari hasil alat bantu Grin, diperoleh lintasan dari CV.Duta Mulia ke Sardo
dengan panjang lintasan 8220 m dan melewati CV. Duta Mulia(Sari Roti)
jl Aluminium jl Sunandar Priyo Sudarmo jl Ciliwung jl Letjend.
Sutoyo jl Kedawung jl Kalpataru jl Soekarno Hatta Sardo.
Kelebihan : mengetahui panjang lintasan terpendek dan lintasan yang
dilalui secara langsung.
Kekurangan : harus menggambar terlebih dahulu, serta mengisi tabel
keterhubungan untuk mengisikan bobotnya.

3. WIN_QSB
Dengan mengisi bobot graph pada tabel yang telah disediakan

Sehingga muncul kotak dialog sebagai berikut, dan memilih titik
ke 28 sebagai titik awal dan 16 sebagai titik akhir
Maka hasilnya berupa grafik sebagai berikut :





















BAB IV
PEMBAHASAN

4.1 Narasi Permasalahan
PT.Citra Perdana Kendedes merupakan salah satu perusahaan yang
bergerak di bidang jasa dalam mengantarkan para konsumennya dari suatu
lokasi ke lokasi yang lain. Biasanya dalam mengantarkan para konsumennya
para sopir taksi mempunyai banyak pilihan jalur yang dapat dilalui sehingga
diperlukan pemilihan jalur yang optimal agar waktu tempuh minimum serta
bahan bakar yang digunakan juga minimum.
Pada laporan ini kami membahas tentang jalur terpendek yang dapat
ditempuh oleh taksi Citra dalam mengantarkan para konsumennya di daerah
Kota Malang. Dengan menggunakan algoritma-algoritma pada shortest path
dapat ditentukan jalur terpendek dari suatu lokasi ke lokasi yang lain. Pada
shortest path ada 2 jenis permasalahan yaitu masalah single path dan masalah
all path. Dalam masalah single path kami menentukan lintasan terpendek
yang dapat di tempuh dari Terminal Arjosari ke Museum Brawijaya Malang.
Untuk menuju lokasi tersebut banyak pilihan jalur yang dapat ditempuh,
sehingga para sopir taksi harus menentukan lintasan terpendek mana yang
dapat ditempuh. Hal ini karena sebagian besar para konsumen menginginkan
waktu tempuh yang minimum sehingga pemilihan lintasan yang terpendek
sangat diperlukan.
Data yang diperoleh saat melakukan survey yakni dengan melakukan
wawancara dengan beberapa sopir taksi, dari hasil wawancara tersebut
diketahui bahwa lokasi-lokasi yang sering dikunjungi oleh para pengguna
taksi beserta jalur-jalur yang dapat dilaluinya. Adapun lokasi-lokasi tersebut
yaitu :
1. Terminal Arjosari
2. Persimpangan Taspen
3. Persimpangan A.Yani dan R.Intan
4. Persimpangan Laksda Adi Sucipto dan Panji Suroso
5. Persimpangan Ledjen Suparman dan Laksda Adi Sucipto
6. Pesimpangan Masjid Sabillillah
7. Persimpangan Pesawat
8. Persimpangan Kedawung dan Ledjend Sutoyo
9. Perempatan Kalpataru
10. Persimpangan Jl.Coklat dan Sukarno Hatta
11. Persimpangan Jempatan Sukarno hatta dan UB
12. Persimpangan jalan Mawar
13. Simpang Sarangan dan Ledjend Sutoyo
14. SMP 5
15. Persimpangan Gajayana dan Maijen Haryono
16. Bank Universal (BHS)
17. Persimpangan Dr.Cipto dan Pangsud
18. SMP 3
19. Bumi Putera
20. Bundaran Bandung (UNMER)
21. Perempatan ITN
22. Pesimpangan jalan Surabaya dan bendungan Sutami
23. Simpang jalan Surabaya dan Gede
24. Persimpangan jalan Pahlawan dan Ijen
25. Persimpangan jalan Pattimura dan Jaksa Agung Supriyadi
26. Simpang 4 pasar Klojen
27. Rampal
28. Simpang gajah Mada dan Pangsud
29. Stasiun Kota Malang
30. Tugu
31. Persimpangan Sarinah
32. Persimpangan Mojopahit dan Sugito
33. Bundaran Terusan Ijen
34. Pertigaan Dieng, Wilis dan Kawi
35. Perempatan Tidar
36. Persimpangan simpang wilis dan wilis
37. Persimpangan Simpang Wilis dan Betawu
38. Persimpangan BCA
39. Persimpangan Mc.Donald
40. Museum Brawijaya
Dalam masalah all pairs kami mengambil 12 persimpangan yang akan
digunakan sebagai titik, yaitu:
1. Terminal arjosari
2. Persimpangan taspen
3. Persimpangan A.Yani dan Raden Intan
4. Majid Sabilillah
5. Patung Pesawat
6. Jembatan sukarno Hatta
7. Perempatan ITN
8. Budaran Bandung dan UNMER
9. Lapangan Rampal
10. Stasiun Kota Malang
11. Persimpangan BCA
12. Museum Brawijaya

Dan model graph yang terbentuk adalah sebagai berikut:
Untuk Single Path:

Untuk All pairs:

Dalam hal ini akan ditentukan jarak terpendek dari masing-masing
persimpangan / lokasi.

4.2 Penyelesaian Masalah Dengan Algoritma
o Single Path
1) Algoritma Greedy
Berikut ini adalah langkah-langkah untuk menentukan lintasan
terpendek dari Terminal Arjosari ke Museum Brawijaya dengan
menggunakan algoritma greedy. Dengan merepresentasikan titik 1
sebagai terminal arjosari dan titik 40 sebagai museum brawijaya,
maka didapat hasil sebagai berikut:
1. (1,2) = 5,7 [pilih (1,2)]

2. (2,3) = 1,4 [pilih (2,3)]
(2,4) = 8,3
3. (3,5) = 8,1 [pilih (3,5)]
4. (5,6) = 0,8
(5,4) = 3,8 [pilih (5,6)]
5. (6,7) = 10,1
(6,8) = 7,1 [pilih (6,8)]
6. (8,13) = 5
(8,9) = 4,7 [pilih (8,9)]
7. (9,10) = 8,3
(9,12) = 5 [pilih (9,12)]
8. (12,13) = 2,8 [pilih (12,13)]
(12,16) = 5,1
9. (13,16) = 2,7 [pilih (13,16)]
10. (16,14) = 2,9
(16,19) = 1,7 [pilih (16,19)]
11. (19,18) = 2,2 [pilih (19,18)]
(19,25) = 2,4
12. (18,17) = 1,3 [pilih (18,17)]
(18,26) = 2,5
13. (17,27) = 3,8 [pilih (17,27)]
14. (27,26) = 1,2 [pilih (27,26)]
(27,28) = 4,6
15. (26,25) = 4
(26,29) = 2,4 [pilih (26,29)]
16. (29,28) =1,2 [pilih (29,28)]
17. (28,30) = 3,2 [pilih (28,30)]
18. (30,38) = 2,5
(30,32) = 2,3 [pilih (30,32)]
19. (32,38) = 2,7
(32,31) = 0,8 [pilih (32,31)]
20. (31,33) = 6,5 [pilih (31,33)]
21. (33,40) = 2 [pilih (33,40)]
(33,34) = 3,4

Dari hasil di atas didapatkan lintasan terpendeknya yaitu:1-2-3-5-6-8-9-12-
13-16-19-18-17-27- 26-29-28-30-32-31-33-40 dengan bobot total sebesar 13,38
km.
2) Algoritma Dijkstra
Dengan menggunakan algoritma dijkstra di peroleh hasil
sebagai berikut :


Dari perhitungan secara manual dengan menggunakan algoritma dijkstra di
peroleh lintasan terpendek yakni 1-2-4-14-17-18-26-29-30-38-40 dengan bobot
total 466 atau 9,32 km.
3) Exhautis Search
Dengan menggunakan algoritma exhautis search akan
ditentukan semua kemungkinan lintasan yang dapat
dilalui, dalam pembahasan ini, kami hanya melaporkan
10 kemungkinan lintasan yang mungkin dapat dilalui oleh
taksi. Berikut ini adalah 10 kemungkinan lintasan yang
dimaksud :

No Lintasan yang Mungkin Bobot
1 1-2-4-14-17-27-26-29-30-38-40

478
2 1-2-4-14-16-19-18-26-29-30-38-40

508
3 1-2-4-14-17-18-26-29-30-38-40

466
4 1-2-4-14-17-27-28-29-30-38-40

500
5 1-2-4-14-17-27-28-30-38-40

507
6 1-2-3-5-6-8-13-16-19-18-26-29-30-38-40

486
7 1-2-3-5-6-8-13-16-19-25-26-29-30-38-40

503
8 1-2-3-5-6-7-10-11-20-24-40

520
9 1-2-3-5-6-7-10-11-15-21-20-24-40

676
10 1-2-3-5-6-7-10-11-15-21-22-35-37-40

632
Dll

Dari table di atas dapat dilihat bahwa lintasan terpendek yang total
bobotnya paling minimum adalah 1-2-4-14-17-18-26-29-30-38-40 dengan total
bobot adalah 466 atau pada jarak sebenarnya 9,32 km.


o All Pairs
4) Algoritma Perkalian Matriks

Langkah-langkah:
Mencari


Untuk semua titik i dan j:
1.


2.

}
3. Jika tidak terdapat sikel negatif, maka


Di mana

merupakan unaur pada

baris ke dan kolom .








5) Algoritma Floyd Warshall
Langkah-langkah:
Mencari


Untuk semua i dan :
1.


2.

min{

}
3. jika tidak terdapat sikel negatif, maka


dimana

merupakan unsur pada

baris ke kolom ke
MATRIKSNYA















4.3 Penyelesaian Masalah Dengan Alat Bantu

1) Giden
Masalah Single Pairs
Dengan langkah-langkah pengerjaan yang telah dijelaskan sebelumnya,
maka berdasarkan permasalahan akan didapat graph seperti dibawah ini:





- Dengan menggunakan alat bantu giden-dijkstra, maka diperoleh :


- Dengan menggunakan alat bantu giden-FIFO Label Correcting, maka
diperoleh :



Penjelasan: Dengan menggunakan program Giden baik dengan algoritma dijkstra
maupun FIFO Label Correcting diperoleh hasil lintasan terpendek dari Terminal
Arjosari ke Museum Brawijaya 1-2-4-14-17-18-26-29-30-38-40 dengan bobot
total 466 atau 9,32 km.
Masalah All Pairs
Gambar all pairs.


- Dengan menggunakan algoritma dijkstra , diperoleh :

- Dengan menggunakan algoritma FIFO Label Correcting, diperoleh :



2) Grin
Dengan alat bantu Grin 40, diperoleh penyelesaian untuk masalah all pairs
sebagai berikut:
- Masalah Single Path




Dan diperoleh hasil sebagai berikut :


- Masalah All Pairs




Dan diperoleh hasil sebagai berikut :









3) WinQsb
- Masalah Single Pairs
Dengan langkah-langkah pengerjaan yang telah dijelaskan sebelumnya,
- Buka aplikasi WIN_QSB
- Klik file, lalu pilih new problem

- Pilih shortest path problem
- Isilah form berikut:

- Kemudian mengisi bobot graph pada tabel yang telah
disediakan
- Setelah selesai mengisi tabel, maka pilih Solve and Analyze
Solve the Problem

- Sehingga muncul kotak dialog sebagai berikut, dan memilih
titik ke 1 sebagai titik awal dan 40 sebagai titik akhir








Maka diperoleh hasil berikut :









Dan grafiknya sebagai berikut:



Penjelasan : Dengan menggunakan program WinQsb, diperoleh hasil lintasan
terpendek dari Terminal Arjosari ke Museum Brawijaya adalah 1-2-4-14-17-18-
26-29-30-38-40 dengan bobot total 466 atau 9,32 km.
- Masalah All Pairs
Dengan mengisikan bobot masing-masing sisi pada Tabel, diperoleh:


Dan hasilnya sebagai berikut :












4.4 Analisa Hasil
Dari hasil survey yang kami lakukan, diperoleh lintasan terpendek dari Terminal
Arjosari ke Museum Brawijaya adalah
Dengan Algoritma
1. Algoritma Greedy
Total bobot sebesar 13,38 km
Kekurangan : Tetapi hasil ini tidak optimal karena lintasan yang diperoleh
bukan merupakan lintasan terpendek dan ada kemungkinan gagal dalam
pencarian.
Kelebihan : Prosesnya cepat, mudah dibandingkan dengan algoritma yang
lainnya.
2. Algoritma Dijkstra
Total Bobot 9,32 km
Kekurangan : Prosesnya agak lama
Kelebihan : Hasil yang diperoleh optimum



3. Algoritma Floyd-Warshall
Total Bobot sebesar 9,32 km.
Kekurangan : Harus membuat matrik sebanyak titik pada graph
Kelebihan : Hasilnya Optimum, dan perhitungannya lebih mudah dari
pada perkalian matriks.
4. Algoritma Exhautis Search
Total Bobot sebesar 9,32 km.
Kekurangan : Prosesnya terlalu lama karena harus menentukan lintasan
terpendek yang mungkin.
Kelebihan : Hasil yang diperoleh optimum

5. Algoritma Perkalian Matriks
Total Bobot 9,32 km.
Kekurangan : Perhitungannya sulit , dan dibutuhkan ketelitian yang tinggi.
Kelebihan : Hasilnya optimum, tidak harus membuat matriks sebanyak
titik yang ada pada graph.

Dengan Alat bantu Program
1. Giden
Kelebihan : Grap yang dibuat dapat di gunakan untuk graph berarah.
Kekurangan : Masih harus menggambar graphnya terlebih dahulu, serta
dalam pengisian bobotnya masih harus diisi secara satu per satu, sehingga
membutuhkan waktu yang agak lama.

2. Grin
Kelebihan : Pada saat mengisi tabel, jika memasukkan bobot dari titik i ke
titik j secara otomatis dari titik j ke titik i bobotnya juga berubah.
Di hasil akhir langsung dapat di lihat bobot total, sehingga bisa
mempermudah.
Kekurangan : Graph yang di hasilkan di anggap 2 arah, sehingga jika ada
jalan yang searah akan sulit jika menggunakan alat bantu ini.


3. WinQsb
Kelebihan : Di hasil akhir langsung keluar graphnya beserta tabel yang
berisi total bobot lintasan terpendek yang diperoleh.
Kekurangan : Dalam menginputkan bobot pada tabel, tidak dapat secara
otomatis terisi bolak balik, sehingga membutuhkan waktu yang agak
lama.


























BAB V
KESIMPULAN DAN SARAN

5.1 KESIMPULAN
Dari hasil survey yang kami lakukan, diperoleh lintasan terpendek dari Terminal
Arjosari ke Museum Brawijaya adalah
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.

Dengan Alat bantu Program
1. Giden
Dengan menggunakan alat bantu giden, baik dengan menggunakan
algoritma Djikstra maupun FIFO Label Correcting diperoleh lintasan
terpendek dengan total bobot 466 atau 9,32 km
2. Grin
Dengan menggunakan alat bantu grin, diperoleh lintasan terpendek dengan
jumlah bobot 447 atau pada jarak sebenarnya adalah 8,94 km.
3. WinQsb
Dengan menggunakan alat bantu WinQsb,diperoleh lintasan terpendek
dengan jumlah bobot 466 atau pada jarak sebenarnya adalah 9,32 km.

Jadi dapat disimpulkan bahwa lintasan terpendek dari Terminal Arjosari
menuju Museum brawijaya yaitu dengan bobot 466 atau pada jarak
sebenarnya adalah 9,32 km.

5.2 SARAN
Dari data hasil survai yang diperoleh, jalur atau rute yang digunakan oleh
PT Citra Perdana Kendedes untuk mengantarkan penumpang dari terminal
Arjosari menuju ke Museum brawijaya dengan panjang lintasan dengan jumlah
bobot 466 atau pada jarak sebenarnya adalah 9,32 km. Sedangkan berdasarkan
hasil perhitungan dengan menggunakan algoritma-algoritma Shortest path dan alat
bantu program yaitu Giden, Grin40, dan WinQsb diperoleh jalur atau rute yang
sama yaitu dengan bobot 466 atau pada jarak sebenarnya 9,32 km. Oleh karena
terdapat lintasan yang lebih pendek dari jalur yang biasanya ditempuh oleh supir
taksi, mungkin jalur yang telah kami berikan dapat dijadikan sebagai jalur
alternatif.






PENGALAMAN SURVEY

Pada tanggal 13 Februari 2012 sekitar pukul 9.30 WIB kami melakukan
survey yang pertama di PT.Citra Perdana Kendedes yang berlokasi di Jl.
Bunga Merak No.2 Malang. Sesampainya di kantor kami menemui Bapak
Cholil selaku Asisiten Manager di PT.Citra Perdana Kendedes. Disana kami
diberikan beberapa gambaran tentang bagaimana permasalahan yang terjadi
di lapangan serta lokasi-lokasi pangkalan yang terdapat didaerah Kota
Malang. Setelah kurang lebih 45 menit kami memutuskan untuk ke kampus
tercinta untuk mengikuti kuliah selanjutnya.
Pada tanggal 15 Februari 2012 kami melakukan survey kembali ke salah satu
pangkalan didaerah Soekarno-Hatta. Disana kami bertemu dengan para sopir
taksi, kami melakukan wawancara dengan para sopir taksi yang sedang
menunggu penumpang di pangkalan tersebut. Dari hasil wawancara yang
kami lakukan kami memperoleh informasi tentang lokasi-lokasi yang sering
dikunjungi oleh para konsumen taksi di daerah Malang Kota serta jalur mana
saja yang dapat dilalui untuk menempuh lokasi tersebut.
Setelah mendapat informasi, kami mampir sejenak di warung gorengan yang
lokasinya berada di pangkalan tersebut. Selanjutnya kami memutuskan untuk
kembali ke kampus.
Dari dua kali survey kami mulai untuk mengolah data yang kami peroleh,
namun ditengah-tengah kami menyusun laporan, ternyata ada satu hal
penting yang kami lupakan yaitu dokumentasi. Akhirnya kami memutuskan
untuk kembali ke kantor taksi Citra untuk menemui Bapak Cholil. Setibanya
di lokasi ternyata beliau tidak berada di tempat akhirnya kami memutuskan
untuk ke pangkalan taksi yang berada didaerah Soekarno-Hatta. Disana
hanya ada satu taksi yang sedang menunggu penumpang. Akhirnya kami
mewawancarai sopir taksi itu, namun kami lupa untuk menanyakan identitas
beliau, setelah wawancara kami mengajak beliau untuk foto bersama kami
sebagai dokumentasi, ternyata beliau tidak keberatan untuk di ajak foto
bersama.
Setelah berfoto-foto kami mohon pamit kepada beliau dan tidak lupa
mengucapkan terima kasih.
DOKUMENTASI

Anda mungkin juga menyukai