penerapan metode graf dan algoritma floyd-warshall …

59
PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL DALAM MENENTUKAN LINTASAN TERPENDEK Yudo Komarullah 107094003059 PROGRAM STUDI MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2013M / 1434H

Upload: others

Post on 17-Apr-2022

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

PENERAPAN METODE GRAF DAN ALGORITMA

FLOYD-WARSHALL DALAM MENENTUKAN

LINTASAN TERPENDEK

Yudo Komarullah

107094003059

PROGRAM STUDI MATEMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH

JAKARTA

2013M / 1434H

Page 2: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

i

PENERAPAN METODE GRAF

DAN ALGORITMA FLOYD-WARSHALL

DALAM MENENTUKAN LINTASAN TERPENDEK

Skripsi

Sebagai Salah Satu Syarat Untuk Memperoleh

Gelar Sarjana Sains

Fakultas Sains dan Teknologi

Universitas Islam Negeri Syarif Hidayatullah Jakarta

Oleh:

Yudo Komarullah

107094003059

PROGRAM STUDI MATEMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI

SYARIF HIDAYATULLAH

JAKARTA

2013 M /1434 H

Page 3: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …
Page 4: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

iii

PERNYATAAN

DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-BENAR

HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI

SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU

LEMBAGA MANAPUN.

Jakarta, 25 September 2013

Yudo Komarullah

NIM. 107094003059

Page 5: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

iv

PERSEMBAHAN

Skripsi ini aku persembahkan untuk

Orang-orang yang kusayang dan juga menyayangiku,

Bapakku Syahrul Halim, Ibuku Murtinah,

kakak dan adikku, saudara-saudaraku, sahabat-sahabatku

dan kepada seluruh keluarga besar Prodi Matematika,

terimakasih atas segalanya.

Semoga kita selalu diridoi Allah SWT

dan selalu dalam lindungan-Nya,

serta selalu dibukakan pintu rahmat,

kasih sayang dan hidayah-Nya kepada kita semua.

Amin.

MOTTO

“Sukses itu Pasti, Bahagia adalah Pilihan”

“Maka nikmat Tuhan kamu yang manakah yang kamu dustakan?”

(Qs. Ar-Rahmaan)

“Berusahalah dengan keras bukan untuk menjadi sukses,

tapi untuk menjadi lebih berharga.”

(Albert Einstein)

“Jangan ikuti kemana jalan menuju,

tetapi buatlah jalan sendiri dan tinggalkan jejak”

(Anonim, Matematika Diskrit Edisi Ketiga : Rinaldi Munir)

Page 6: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

v

ABSTRAK

Pemrograman dinamis merupakan sebuah metode penyelesaian masalah

yang memanfaatkan Prinsip Optimalitas. Algoritma Floyd-Warshall merupakan

salah satu jenis dari pemrogaman dinamis. Metode yang dilakukan dalam

memecahkan masalah dengan memandang solusi yang akan diperoleh sebagai

suatu keputusan yang saling terkait. Algoritma Floyd-Warshall yang menerapkan

pemrograman dinamis lebih menjamin keberhasilan penemuan solusi optimum

untuk kasus penentuan lintasan terpendek. Pada skripsi ini akan dibahas mengenai

penentuan bobot lintasan terpendek antar semua pasang simpul dengan

menggunakan metode Graf dan Algoritma Floyd-Warshall.

Kata Kunci : graf, pemrograman dinamis, floyd-warshall, lintasan terpendek,

semua pasang simpul.

Page 7: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

vi

ABSTRACT

Dynamic programming is a method of problem solving that utilizes

Principle of Optimality. Floyd-Warshall algorithm is a form of dynamic

programming. The method used to solve the problem by looking at a solution that

would be obtained as an inter-related decisions. Floyd-Warshall algorithm that

applying dynamic programming over the success of the invention ensures

optimum solution for the case of the determination of the shortest path. In this

paper we will discuss the determination of the weight of the all pair shortest path

of edges using the Graf method and Floyd-Warshall algorithm.

Keywords : graphs, dynamic programming, Floyd-Warshall, the shortest path, all

pair shortest path.

Page 8: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

vii

KATA PENGANTAR

Segala puja dan puji syukur Alhamdulillah kami panjatkan kehadirat Allah

SWT atas nikmat dan karunianya sehingga penulis dapat menyusun Skripsi

dengan judul “Penerapan Metode Graf dan Algoritma Floyd-Warshall dalam

Menentukan Lintasan Terpendek” dan harapan kami penyusunan skripsi ini

dapat berjalan dengan baik dan lancar.

Penulis menyadari keterbatasan pengetahuan yang penulis miliki, karena

itu tanpa keterlibatan dan sumbangsih dari berbagai pihak, sulit bagi penulis untuk

menyelesaikan penyusunan skripsi ini. Maka dari itu dengan segenap kerendahan

hati patutlah penulis ucapkan terima kasih kepada:

1. Bapak Prof. Dr. Komaruddin Hidayat, selaku Rektor Universitas Islam

Negeri (UIN) Syarif Hidayatullah Jakarta.

2. Bapak Dr. Agus Salim, M. Si, selaku Dekan Fakultas Sains dan Teknologi

UIN Syarif Hidayatullah Jakarta.

3. Ibu Yanne Irene, M.Si, selaku Ketua Prodi Matematika Fakultas Sains dan

Teknologi UIN Syarif Hidayatullah Jakarta.

4. Suma’inna, M.Si, Sekertaris Program Studi Matematika yang selalu

memberikan semangat dan pengorbanannya kepada mahasiswa.

5. Hata Maulana M.T.I, sebagai pembimbing I yang telah banyak membantu

penulis dalam menyelesaikan skripsi ini sampai selesai. Terima kasih

banyak atas semangat, motivasi, ketulusan serta kesabarannya selama

penulis menyelesaikan skripsi ini.

6. Drs. Slamet Aji Pamungkas, M.Eng, sebagai pembimbing II penulis yang

telah banyak membantu penulis memberikan pengarahan, semangat dan

motivasi dalam menyelesaikan skripsi ini sampai selesai.

Page 9: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

viii

7. Kepada keluarga besar, Ayah, Ibu dan saudara-saudaraku yang telah

banyak memberikan inspirasi dan motivasi serta dukungannya baik dari

segi materi maupun fisik.

8. Seluruh Dosen prodi Matematika Fakultas Sains dan Teknologi UIN

Jakarta yang telah mengalirkan ilmu, pengetahuan, pengalaman, wacana

dan wawasannya, sebagai pedoman dan bekal bagi penulis.

9. Ika Istiani yang telah menularkan semangatnya, meluangkan waktunya

untuk menjadi tempat mencari inspirasi dan motivasi. Terima kasih atas

segalanya.

10. Sahabat-sahabatku, Ari Pahlevi S.Si, Danang Suyoko S.Si, Gerdyandanu

Nilanto S.Si, yang telah banyak membantuku menyelesaikan skripsi ini.

Dan seluruh teman-teman Matematika 2007. Terima kasih atas

kebersamaannya.

11. Seluruh keluarga besar Prodi Matematika FST UIN Jakarta yang tidak bisa

aku sebutkan satu persatu. Terima kasih banyak, dan tetap SEMANGAT !!

Doa dan harapan penulis atas apa yang telah mereka berikan kepada

penulis, mendapatkan balasan yang lebih besar dari Allah SWT. Amin.

Akhirnya, atas segala kekurangan penulis dalam penulisan skripsi ini

sangat diharapkan saran dan kritik yang bersifat konstruktif dari para pembaca

demi kesempurnaan dari skripsi ini. Semoga skripsi ini dapat memberikan

manfaat dan kontribusi yang berarti, baik bagi para pembaca pada umumnya dan

bagi penulis pada khususnya. Semoga kita semua senantiasa diridlhoi Allah SWT

dan mendapatkan rahmat dan hidayah-Nya serta selalu berada di jalan yang lurus.

Amin.

Jakarta, September 2013

Penulis

Page 10: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

ix

DAFTAR ISI

HALAMAN JUDUL ......................................................................................... i

PENGESAHAN UJIAN .................................................................................... ii

PERNYATAAN ................................................................................................. iii

PERSEMBAHAN DAN MOTTO .................................................................... iv

ABSTRAK ......................................................................................................... v

ABSTRACT ....................................................................................................... vi

KATA PENGANTAR ....................................................................................... vii

DAFTAR ISI ...................................................................................................... ix

DAFTAR GAMBAR ......................................................................................... xi

DAFTAR TABEL ............................................................................................. xii

BAB I. PENDAHULIAN .................................................................................. 1

1.1 Latar Belakang .................................................................................. 1

1.2 Permasalahan .................................................................................... 2

1.3 Pembatasan Masalah ......................................................................... 2

1.4 Tujuan Penulisan ............................................................................... 3

1.5 Manfaat Penulisan ............................................................................. 3

BAB II. LANDASAN TEORI .......................................................................... 4

2.1 Konsep Dasar Graf ............................................................................ 4

2.1.1 Jenis-jenis Graf .................................................................. 5

2.1.2 Istilah Dasar ....................................................................... 7

2.2 Lintasan Terpendek ........................................................................... 11

2.3 Algoritma .......................................................................................... 12

2.3.1 Definisi Algoritma ............................................................. 12

Page 11: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

x

2.3.2 Konsep Dasar Algoritma ................................................... 13

2.4 Pemrograman Dinamis ..................................................................... 14

2.5 Algoritma Floyd-Warshall ................................................................ 16

BAB III. PENENTUAN LINTASAN TERPENDEK .................................... 18

3.1 Representasi Matriks Bobot .............................................................. 18

3.2 Teorema Lintasan Terpendek ........................................................... 19

3.2.1 Teorema Cormen ............................................................... 20

3.3 Struktur Lintasan Terpendek ............................................................ 21

3.3.1 Langkah-langkah Algoritma Floyd-Warshall .................... 22

3.3.2 Penentuan Lintasan Terpendek .......................................... 23

3.4 Contoh Kasus .................................................................................... 26

BAB VI. ANALISIS HASIL DAN PEMBAHASAN ...................................... 36

4.1 Analisis ............................................................................................. 37

4.1.1 Data masukan (Input) ........................................................ 37

4.1.2 Data Proses ........................................................................ 38

4.1.3 Data Keluaran (Output) ..................................................... 38

BAB V. KESIMPULAN DAN SARAN ........................................................... 42

5.1 Kesimpulan ....................................................................................... 42

5.2 Saran ................................................................................................. 42

DAFTAR PUSTAKA ........................................................................................ 41

LAMPIRAN

Page 12: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

xi

DAFTAR GAMBAR

Gambar 2.1 : Tiga buah graf (a) graf sederhana,

(b) graf ganda, (c) graf semu ....................................................... 4

Gambar 2.2 : (a) Graf Berarah, (b) Graf-Ganda Berarah .................................. 7

Gambar 2.3 : Tiga buah graf, , , ........................................................... 8

Gambar 2.4 : Graf Tak-Berarah Tidak Terhubung............................................ 10

Gambar 2.5 : Graf Tak-Berarah dan Berbobot .................................................. 11

Gambar 3.1 : Digraf berbobot dengan 6 simpul ................................................ 19

Gambar 3.2 : Lintasan terpendek dari ke

dengan sebagai simpul perantara ............................................ 21

Gambar 3.3 : Flowchart Sistem ......................................................................... 25

Gambar 3.4 : Digraf berbobot dengan 6 simpul ................................................ 26

Gambar 4.2 : Tampilan Output Program ........................................................... 39

Page 13: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

xii

DAFTAR TABEL

Tabel 2 : Jenis-jenis Graf [1] .......................................................................... 8

Tabel 3.1 : Iterasi untuk k = 1 ........................................................................... 28

Tabel 3.2 : Iterasi untuk k = 2 ............................................................................ 29

Tabel 3.3 : Iterasi untuk k = 3 ............................................................................ 30

Tabel 3.4 : Iterasi untuk k = 4 ............................................................................ 31

Tabel 3.5 : Iterasi untuk k = 5 ............................................................................ 33

Tabel 3.6 : Iterasi untuk k = 6 ............................................................................ 34

Tabel 4.1 : Jarak antar Terminal Bus di Jakarta (dalam km)............................ 34

Tabel 4.2 : Jarak terpendek antara setiap pasang Terminal Bus (dalam km) ... 37

Tabel 4.3 : Terminal yang dilalui oleh lintasan dari terminal i ke terminal j ... 37

Page 14: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Menurut [2] teori graf adalah ilmu yang berkembang sangat pesat, bahkan

dalam perkembangannya dapat disejajarkan dengan ilmu aljabar yang lebih

dahulu berkembang. Graf digambarkan sebagai kumpulan simpul-simpul yang

dihubungkan oleh sisi. Keunikkan dari teori graf adalah terletak pada

kesederhanaan pokok pembahasan yang dipelajarinya. Secara kasar, graf adalah

suatu diagram yang memuat informasi tertentu jika diinterpretasikan secara tepat

[3].

Optimasi merupakan salah satu topik dalam teori graf. Salah satu

persoalan optimasi yang sering ditemui dalam kehidupan sehari-hari adalah

pencarian lintasan terpendek. Persoalan ini bisa dimodelkan ke dalam suatu graf

berbobot dengan nilai pada masing-masing sisi yang merepresentasikan persoalan

yang akan dipecahkan.

Penentuan lintasan terpendek dari satu titik ke titik yang lain adalah

masalah yang sering ditemui dalam kehidupan sehari-hari. Berbagai kalangan

menemui permasalahan serupa dengan variasi yang berbeda. Contohnya: Seorang

pengantar makanan cepat saji mencari jalur terpendek untuk mengantarkan

makanannya kepada pemesan, pengendara dan penumpang angkutan umum

mencari lintasan terpendek untuk mencapai lokasi yang ingin dituju.

Seiring dengan waktu yang berjalan dan juga perkembangan ilmu

pengetahuan dan teknologi, permasalahan pencarian lintasan terpendek ini telah

terpecahkan dengan berbagai algoritma. Algoritma merupakan urutan langkah-

langkah untuk menyelesaikan masalah secara sistematis. Langkah-langkah

tersebut dapat diterjemahkan secara bertahap dari awal hingga akhir. Beberapa

Page 15: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

2

algoritma populer yang memecahkan persoalan, salah satunya adalah Algoritma

Pemrograman Dinamis.

Pemrograman dinamis adalah metode penyelesaian masalah dengan

memecah permasalahan menjadi sub-permasalahan yang berkaitan sehingga

menghasilkan solusi optimal [6]. Hasil solusi optimal ini adalah informasi yang

akan digunakan sebagai penyelesaian permasalahan. Dan salah satu dari bentuk

Algoritma Pemrograman dinamis adalah Algoritma Floyd-Warshall.

Algoritma Floyd-Warshall adalah suatu metode yang melakukan

pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu

keputusan yang saling terkait. Artinya solusi-solusi tersebut dibentuk dari solusi

yang berasal dari tahap sebelumnya dan ada kemungkinan solusi lebih dari satu.

Algoritma Floyd-Warshall yang menerapkan pemrograman dinamis lebih

menjamin keberhasilan penemuan solusi optimum untuk kasus penentuan lintasan

terpendek.

Maka berdasarkan latar belakang tersebut, penulis membuat skripsi

dengan judul “Penerapan Metode Graf dan Algoritma Floyd-Warshall dalam

Menentukan Lintasan Terpendek”.

1.2 Permasalahan

Permasalahan yang akan dibahas pada skripsi ini bagaimana penerapan

Metode Graf dan Algoritma Floyd-Warshall dalam menemukan solusi optimal

pada lintasan terpendek untuk semua pasang simpul (all pair shortest path).

1.3 Pembatasan Masalah

Pembatasan masalah skripsi ini hanya dikhususkan mengkaji penerapan

pencarian lintasan terpendek untuk semua pasang simpul (all pair shortest path)

dengan menerapkan Metode Graf dan Algoritma Floyd-Warshall. Dimana D

didefinisikan sebagai sebuah graf berarah yang memiliki bobot bilangan bulat

positif.

Page 16: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

3

1.4 Tujuan Penulisan

Sebagai materi analisa untuk mengetahi, memahami, dan mengkaji kasus

pencarian lintasan dari semua pasang simpul (all pair shortest path) menggunakan

Metode Graf dan Algoritma Floyd-Warshall untuk menemukan solusi optimum.

1.5 Manfaat Penulisan

Adapun manfaat dari penulisan ini secara umum adalah untuk memahami

kajian mengenai Metode Graf dalam permasalahan optimasi penentuan lintasan

terpendek menggunakan Algoritma Floyd-Warshall. Bagi penulis sendiri,

penulisan skiripsi ini menambah ilmu pengetahuan bagi penulis mengenai

Algoritma pencarian lintasan terpendek dengan menggunakan metode ini

nantinya. Bagi peneliti lainnya, penulis berharap skripsi ini bisa menjadi referensi

baik untuk diimplementasikan maupun dikaji lebih jauh lagi.

Page 17: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

4

BAB II

LANDASAN TEORI

2.1 Konsep Dasar Graf

Secara matematis, [1] mendefinisikan Graf G sebagai pasangan himpunan

(V,E), ditulis dengan notasi G = (V,E). Dimana V adalah himpunan tidak kosong

dari simpul-simpul (vertex) dan E adalah kumpulan sisi (edges) yang

menghubungkan sepasang simpul.

Menurut definisi tersebut V tidak boleh kosong, sedangkan E boleh

kosong. Jadi, sebuah graf dimungkinkan tidak mempunyai sisi satu buah pun,

tetapi simpulnya harus ada, minimal satu. Graf yang hanya mempunyai sebuah

simpul tanpa satupun sisi disebut graf trifial.

Simpul pada graf dapat dilabeli dengan huruf, seperti a, b, c, ..., v, w, ...,

dengan bilangan asli 1, 2, 3, ... , atau dapat digabungkan keduanya. Sedangkan sisi

yang menghubungkan simpul u dengan simpul v dinyatakan dengan pasangan

(u,v) atau dengan lambang , , .... Dengan kata lain, jika e adalah sisi yang

menghubungkan simpul u dan v , maka e dapat ditulis e =(u,v).

Gambar 2.1 Tiga buah graf (a) graf sederhana, (b) graf ganda, (c) graf semu

Page 18: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

5

2.1.1 Jenis-jenis Graf

Menurut [1] graf dapat dikelompokkan menjadi beberapa kategori atau

jenis bergantung pada sudut pandang pengelompokkannya. Pengelompokkan graf

dapat dipandang berdasarkan ada tidaknya sisi ganda atau sisi gelang, berdasarkan

jumlah simpul, atau berdasarkan orientasi arah pada sisi.

Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf, maka

secara umum graf dapat digolongkan menjadi dua jenis:

1. Graf sederhana

Graf yang tidak mengandung gelang maupun sisi-ganda dinamakan graf

sederhana. pada Gambar 2.1(a) adalah contoh graf sederhana yang

merepresentasikan jaringan komputer. Simpul menyatakan komputer, sedangkan

sisi menyatakan saluran telepon untuk berkomunikasi. Saluran telepon dapat

beroperasi pada dua arah.

2. Graf tak-sederhana

Graf yang mengandung sisi ganda atau gelang dinamakan graf tak-

sederhana. Ada dua macam graf tak sederhana, yaitu graf ganda dan graf semu.

Graf ganda adalah graf yang mengandung sisi ganda. Sisi ganda yang

menghubungkan sepasang simpul bisa lebih dari dua buah. pada Gambar

2.1(b) adalah graf ganda. Sisi ganda dapat diasosiasikan sebagai pasangan tak-

terurut yang sama. Kita juga dapat mendefinisikan graf ganda G = (V(G), E(G))

terdiri dari himpunan tidak kosong simpul-simpul dan E adalah himpunan-ganda

yang mengandung sisi ganda. Pada jaringan telekomunikasi, sisi ganda pada

dapat diandaikan sebagai saluran telepon tambahan apabila beban komunikasi

data antar komputer sangat padat. Perhatikanlah bahwa setiap graf sederhana juga

merupakan graf ganda, tetapi tidak setiap graf ganda merupakan graf sederhana.

Graf semu adalah graf yang mengandung gelang. adalah graf semu

(termasuk bila memiliki graf ganda sekalipun). Sisi gelang pada dapat dianggap

Page 19: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

6

sebagai saluran telepon tambahan yang menghubungkan komputer dengan dirinya

sendiri. Graf semu lebih umum daripada graf ganda, karena sisi pada graf semu

dapat terhubung ke dirinya sendiri.

Jumlah simpul pada graf kita sebut sebagai kardinalitas graf, dan

dinyatakan dengan n = |V(G)| , dan jumlah sisi kita nyatakan dengan m = |E(G)| .

Pada contoh diatas, mempunyai n = 4, dan m = 4, sedangkan mempunyai n

= 3 dan m = 4.

Sisi pada graf dapat mempunyai orientasi arah. Berdasarkan orientasi arah

pada sisi, maka secara umum graf dibedakan menjadi 2 jenis:

1. Graf Tak-berarah (undirect graph)

Graf yang sisinya tidak mempunyai orientasi arah disebut graf tak

berarah. Pada graf tak berarah urutan pasangan simpul yang dihubungkan oleh sisi

tidak diperhatikan. Jadi ) = ) adalah sisi yang sama. Tiga buah graf pada

Gambar 2.1 adalah graf tak-berarah. Pada jaringan telepon, sisi pada graf berarah

menyatakan bahwa saluran telepon dapat beroperasi pada dua arah.

2. Graf Berarah (directed graph atau digraph)

Graf yang setiap sisinya diberi orientasi arah disebut graf berarah (digraf).

Pada graf berarah, sisi yang berarah disebut busur. Dimana ) dan )

menyatakan dua buah busur yang berbeda, dengan kata lain ) ≠ ). Untuk

busur ), simpul dinamakan simpul asal dan simpul dinamakan simpul

terminal. Pada Gambar 2.2(a) adalah contoh graf berarah. Pada dapat

dibayangkan sebagai saluran telepon yang tidak dapat beroperasi pada dua arah.

Saluran hanya beroperasi pada arah yang ditunjukkan oleh anak panah. Jadi

sebagai contoh, saluran telepon (1, 2) tidak sama dengan saluran telepon (2, 1).

Graf berarah sering dipakai untuk menggambarkan aliran proses, peta lalu lintas

suatu kota (jalan satu arah atau dua arah), dan sebagainya. Pada graf berarah,

gelang diperbolehkan tetapi sisi ganda tidak.

Page 20: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

7

Gambar 2.2 (a) Graf Berarah, (b) Graf-Ganda Berarah

Definisi graf dapat diperluas hingga mencakup graf-ganda berarah. Pada graf-

ganda berarah, gelang dan sisi ganda diperbolehkan ada. pada Gambar 2.3(b)

adalah contoh graf-ganda berarah. Tabel 2 meringkas perluasan definisi graf.

Tabel 2. Jenis-jenis graf [1]

Jenis Sisi Sisi ganda

diperbolehkan?

Sisi gelang

diperbolehkan?

Graf sederhana Tak-berarah Tidak Tidak

Graf ganda Tak-berarah Ya Tidak

Graf semu Tak-berarah Ya Ya

Graf berarah Berarah Tidak Ya

Graf-ganda berarah Berarah Ya Ya

2.1.2 Istilah Dasar

Menurut [1], pada Gambar 2.4 graf yang pertama adalah graf

sederhana, adalah graf semu yang mengandung sisi ganda maupun gelang,

sedangkan adalah graf dengan sebuah simpul yang terpisah dari simpul

lainnya. Ketiga graf ini adalah graf tidak-berarah.

Page 21: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

8

Gambar 2.3 Tiga buah graf, , ,

Dalam teori graf banyak istilah-istilah dasar mengenai graf yang perlu

diketahui, antara lain:

1. Bertetangga

Dua buah simpul pada graf tak-berarah dikatakan bertetangga jika

keduanya terhubung langsung dengan sebuah sisi. Dengan kata lain, u bertetangga

dengan v jika (u, v) adalah sebuah sisi pada gaf G. Pada Gambar 2.3(a), simpul 1

bertetangga dengan simpul 2 dan 3, tetapi simpul 1 tidak bertetangga dengan

simpul 4.

Pada graf berarah, sisi kita sebut busur. Jika (u, v) adalah busur maka u

dikatakan bertetangga dengan v dan v dikatakan tetangga dari u. Pada gambar

2.3(a), simpul 1 bertetangga dengan simpul 2, dan simpul 2 dikatakakn tetangga

dari simpul 1.

2. Bersisian

Untuk sembarang sisi e = (u, v), sisi e dikatakan bersisian dengan simpul u

dan simpul v. Pada Gambar 2.3(a), sisi (2, 3) bersisian dengan simpul 2 dan

simpul 3, sisi (2, 4) bersisian dengan simpul 2 dan simpul 4, tetapi sisi (1,2) tidak

bersisian dengan simpul 4.

Page 22: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

9

3. Derajat

Derajat suatu simpul adalah jumlah sisi yang bersisian pada simpul v.

Derajat tersebut dinotasikan dengan d(v). Simpul v dikatakan genap atau ganjil

tergantung dari nilai d(v) genap atau ganjil. Contohnya pada Gambar 2.3(a) yaitu

d(1) = 2, d(2) = 3. Bila simpul hanya memiliki derajat 1, maka simpul tersebut

disebut Simpul Pendan.

4. Lintasan

Lintasan yang panjangnya n dari simpul awal ke simpul tujuan

didalam graf G ialah barisan berselang-seling simpul-simpul dan sisi-sisi yang

berbentuk sedemikian sehingga ,

, ..., adalah sisi-sisi dari graf G.

Jika graf yang ditinjau adalah graf sederhana, maka kita cukup menuliskan

lintasan sebagai barisan simpul-simpul saja: , , , …, , , karena di

antara dua buah simpul berurutan di dalam lintasan tersebut hanya ada satu sisi.

Sebagai contoh pada Gambar 2.3(a), lintasan 1, 2, 4, 3 adalah lintasan dengan

barisan sisi (1, 2), (2, 4), (4, 3). Istilah lain untuk lintasan adalah jalur.

Pada graf yang mengandung sisi ganda, dinyatakan sebagai barisan

berselang-seling antara simpul dan sisi menghindari kerancuan sisi mana dari sisi-

sisi ganda yang dilalui. Misalnya pada Gambar 2.3(b), 1, , 2, , 3, , 3 adalah

lintasan dari simpul 1 ke simpul 3 yang melalui sisi , , dan .

5. Siklus atau Sirkuit

Lintasan yang berawal dan berakhir pada simpul yang sama disebut sirkuit

atau siklus. Pada Gambar 2.3 (a) 1, 2, 3, 1 adalah sirkuit. Panjang sirkuit adalah

jumlah sisi didalam sirkuit tersebut. Sirkuit 1, 2, 3, 1 pada Gambar 2.3 (a)

memiliki panjang 3. Sirkuit dikatakan sirkuit sederhana jika setiap sisi yang

dilalui berbeda.

Page 23: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

10

6. Terhubung

Graf tak-berarah G disebut graf terhubung jika untuk setiap pasang simpul

u dan v di dalam himpunan V terdapat lintasan dari u ke v (yang juga harus berarti

ada lintasan dari u ke v. Jika tidak, maka G disebut graf tak-terhubung.

dan pada Gambar 2.3 adalah graf terhubung, sedangkan tidak.

Graf pada Gambar 2.4 dibawah ini juga contoh graf tang tak terhubung.

Gambar 2.4 Graf Tak-Berarah Tidak Terhubung

6. Matriks Ketetanggaan

Matriks ketetanggaan adalah matriks yang yang mempresentasikan suatu

graf dimana banyak baris dan kolomnya sama dengan banyak titik dalam graf.

Misalkan G adalah graf tidak berarah dengan titik-titik { }. Matriks

ketetanggaan yang yang sesuai dengan graf G adalah matriks A = ( ) yang

didefinisikan.

{

Karena pada graf tak berarah banyak garis yang menghubungkan titik

dengan selalu sama dengan banyak garis yang menghubungkan dengan

maka jelaslah bahwa matriks ketetanggaannya selalu merupakan matriks yang

simetris [3].

Page 24: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

11

7. Graf Berbobot

Jika setiap busur mempunyai nilai yang menyatakan hubungan antara 2

buah titik, maka busur tersebut dinyatakan memiliki bobot. Dalam memodelkan

suatu masalah ke dalam graf, ada informasi yang disampaikan pada setiap sisi

graf. Misalnya pada graf yang menggambarkan lintasan bus, dapat ditambahkan

sebuah bilangan pada seiap sisi untuk menunjukkan jarak antara dua buah halte

yang dihubungkan oleh sisi tersebut.

Gambar 2.5 Graf Tak-Berarah dan Berbobot

Matriks berbobot dari Gambar 2.4 adalah :

edcba

e

d

c

b

a

(

0150810

15014110

014090

8119012

1000120

)

2.2 Lintasan Terpendek

Lintasan terpendek merupakan salah satu dari masalah yang dapat

diselesaikan dengan metode graf. Jika diberikan sebuah graf berbobot, masalah

lintasan terpendek adalah bagaimana kita mencari sebuah jalur pada graf yang

meminimalkan jumlah bobot sisi pembentuk jalur tersebut.

Dalam kehidupan sehari-hari, kita seringkali dihadapkan pada

permasalahan pencarian lintasan terpendek. Sebagai contohnya; ketika kita ingin

Page 25: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

12

berpergian dari satu tempat ke tempat lainnya, maka yang akan dicari adalah

lintasan mana yang jaraknya paling pendek dari tempat asal menuju tempat

tujuan. Jadi, kita dapat mengartikan lintasan terpendek sebagai jarak minimal dari

beberapa lintasan yang telah diketahui jaraknya masing-masing.

Oleh karena itu, permasalahan pencarian lintasan terpendek dalam graf

merupakan salah satu permasalahan optimasi [1]. Graf yang digunakan dalam

pencarian lintasan terpendek adalah graf berbobot, yaitu graf yang setiap sisinya

diberikan suatu data. Data pada sisi graf dapat menyatakan jarak, waktu, ongkos

dan sebagainya, sedangkan simpul pada graf menyatakan tempat asal atau

tujuan[10].

Permasalahan lintasan terpendek terdiri dari beberapa macam, antara lain :

a) Lintasan terpendek antara dua buah simpul tertentu (a pair shortest path).

b) Lintasan terpendek antara semua pasang simpul (all pair shortest path).

c) Lintasan terpendek dari simpul tertentu ke semua simpul yang lain (single-

source shortest path).

d) Lintasan terpendek antar dua buah simpul yang melalui beberapa simpul

tertentu (intermediate shortest path).

2.3 Algoritma

2.3.1 Definisi Algoritma

Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari

Uzbekistan Al Khawārizmi, sebagaimana tercantum pada terjemahan karyanya

dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Pada

awalnya kata algorisma adalah istilah yang merujuk kepada aturan-aturan

aritmatik untuk menyelesaikan persoalan dengan menggunakan bilangan numerik

arab. Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup

semua prosedur atau urutan langkah yang jelas dan diperlukan untuk

menyelesaikan suatu permasalahan. Masalah timbul pada saat akan menuangkan

bagaimana proses yang harus dilalui dalam suatu/sebuah sistem (program) bagi

Page 26: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

13

komputer sehingga pada saat eksekusinya, komputer dapat bekerja seperti yang

diharapkan. Programer komputer akan lebih nyaman menuangkan prosedur

komputasinya atau urutan langkah proses dengan terlebih dahulu membuat

gambaran (diagram alur) diatas kertas[8].

Menurut [7], Algoritma adalah urutan langkah-langkah untuk

memecahkan masalah. Algrotima dibutuhkan untuk memerintahkan komputer

mengambil langkah-langkah tertentu dalam menyelesaikan suatu masalah. Pada

umumnya algoritma kurang lebih sama dengan suatu prosedur yang sering

dilakukan setiap hari, misalnya prosedur untuk membuat kopi, atau memasak telur

dan lain-lain.

2.3.2 Konsep Dasar Algoritma

Menurut [7], Algoritma adalah kumpulan instruksi/perintah yang dibuat

secara jelas dan sistematis berdasarkan urutan yang logis (logika) untuk

penyelesaian suatu masalah. French,C.S. (1984) menyatakan sejumlah konsep

yang mempunyai relevansi dengan masalah rancangan program yaitu kemampuan

komputer, kesulitan dan ketepatan. Penerapan dari konsep tersebut biasanya

digunakan dalam rancangan algoritma.

Dalam merancang sebuah algoritma, Fletcher (1991) memberikan

beberapa cara atau metode yaitu kumpulan perintah, ekspresi, tabel instruksi,

program komputer, kode semu dan flow chart, sedangkan Knuth (1973)

menyarankan algoritma fundamental. Untuk keperluanmatematika dan program

komputer metode yang sering digunakan yaitu :

1. Diagram Alir (Flow Chart)

2. Kode Semu (Pseudo Code)

3. Algoritma Fundamental

Knuth (1973) menyatakan 5 komponen utama dalam algoritma yaitu

finiteness, definiteness, input, output dan effectiveness. Sehingga dalam

merancang sebuah algoritma ada 3 (tiga) komponen yang harus ada yaitu:

Page 27: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

14

1. Komponen Masukan (input)

Komponen ini biasanya terdiri dari pemilihan variable, jenis variable, tipe

variable, konstanta dan parameter (dalam fungsi).

2. Komponen Proses

Komponen ini merupakan bagian utama dan terpenting dalam merancang

sebuah algoritma. Dalam bagian ini terdapat logika masalah, logika algoritma

(sintaksis dan semantik), rumusan, metode (rekursi, perbandingan, penggabungan,

pengurangan dan lain-lain).

3. Komponen Keluaran (output)

Komponen ini merupakan tujuan dari perancangan algoritma dan program.

Permasalahan yang diselesaikan dalam algoritma dan program harus ditampilkan

dalam komponen keluaran. Karakteristik keluaran yang baik adalah menjawab

permasalahan dan tampilan yang ramah.

2.4 Pemrograman Dinamis

Dengan semakin berkembangnya Algoritma, maka metode-metode yang

ada pada algoritma kemudian diimplementasikan dalam kehidupan sehari-hari

dalam skala yang lebih besar. Salah satu dari implementasi algoritma adalah

pencarian lintasan terpendek. Pencarian lintasan terpendek merupakan materi

dalam teori graf. Didalam graf berbobot terdapat nilai-nilai yang dikenakan disisi-

sisinya, dan dan panjang dari sebuah lintasan merupakan jumlah dari bobot-bobot

sisinya. Misalkan ( , ) menyatakan bobot dari sisi dalam graf. Dalam graf

berbobot tersebut dapat dicari sebuah lintasan terpendek antara dua sisi yang

diketahui bobotnya. Beberapa algoritma bisa digunakan untuk menyelesaikan

permasalahan pencarian lintasan terpendek. Salah satu bentuk Algoritma

pencarian lintasan terpendek adalah Pemrograman Dinamis.

Pemrograman dinamis merupakan metode pemecahan masalah dengan

cara menguraikan solusi menjadi sekumpulan langkah atau tahapan sedemikian

Page 28: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

15

sehingga solusi dari persoalan dapat dipandang dari serangkaian keputusan yang

saling berkaitan [4]. Pemrograman dinamis merupakan strategi algoritma dengan

memanfaatkan sebuah prinsip penting, yaitu Prinsip Optimalitas. Prinsip ini

menyatakan bahwa “ suatu kebijakan optimal mempunyai sifat bahwa apapun

keadaan dan keputusan awal, keputusan selanjutnya harus membentuk suatu

kebijakan optimal yang berkaitan dengan keadaan yang dihasilkan dari

keputusan awal ”[5]. Dengan prinsip optimalitas ini, dijamin bahwa pengambilan

keputusan pada suatu tahap adalah keputusan yang benar untuk tahap-tahap

selanjutnya [4].

Pemrograman dinamis memiliki karakter diantaranya:

1. Persoalan dibagi menjadi beberapa tahapan, dimana setiap tahapnya hanya

akan diambil satu keputusan.

2. Masing-masing tahap terdiri atas status yang saling berhubungan dengan

status tersebut. Status yang dimaksud disini adalah berbagai kemungkinan

masukan yang ada pada tahap tersebut.

3. Ketika masuk pada suatu tahap, hasil kemudian akan dtransformasikan.

4. Biaya beban pada suatu tahap akan meningkat secara teratur seiring

bertambahnya jumlah tahapan.

5. Biaya yang ada pada suatu tahap tergantung pada biaya tahapan yang telah

berjalan dan biaya pada tahap itu sendiri.

6. Keputusan yang terbaik pada suatu tahap bersifat independen terhadap

keputusan pada tahap sebelumnya.

7. Terdapat hubungan rekursif yang menyatakan bahwa keputusan terbaik dalam

setiap status pada tahap k akan memberikan memberikan keputusan terbaik

untuk setiap status pada tahap k+1.

8. Prinsip Optimalisasi berlaku pada persoalan yang dimaksud.

Dalam proses penyelesaian menggunakan pemrograman dinamis

pendekatan yang dilakukan ada dua macam, yaitu pendekatan maju dan mundur.

Page 29: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

16

Misalkan menyatakan peubah keputusan yang harus dibuat masing-

masing untuk tahap 1, 2, …, n. Maka [4];

1. Pendekatan Maju

Pemrograman dinamis maju bekerja mulai dari tahap 1, terus maju ke

tahap 2, 3, dan seterusnya sampai tahap n. Runtunan peubah keputusan adalah

.

2. Pendekatan Mundur

Pemrograman dinamis mundur bekerja mulai dari tahap n, terus mundur

ke tahap n – 1, n – 2, dan seterusnya sampai tahap 1. Runtunan peubah keputusan

adalah .

2.5 Algoritma Floyd-Warshall

Algoritma Floyd-Warshall adalah suatu metode yang melakukan

pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu

keputusan yang saling terkait. Artinya solusi-solusi tersebut dibentuk dari solusi

yang berasal dari tahap sebelumnya dan ada kemungkinan solusi lebih dari satu.

Algoritma Floyd-Warshall yang menerapkan pemrograman dinamis lebih

menjamin keberhasilan penemuan solusi optimum untuk kasus penentuan lintasan

terpendek antara semua pasang simpul (all pair shortest path).

Dalam menentukan lintasan terpendek, algoritma Floyd-Warshall

melakukan langkah-langkah sebagai berikut;

1. Inisialisasikan simpul asal ke simpul tujuan.

2. Menuliskan jarak sisi dari simpul asal ke simpul berikutnya.

3. Menambahkan jarak sisi pada setiap simpul berikutnya sampai ke simpul

tujuan.

4. Membandingkan nilai sisi pada setiap kemungkinan lintasan yang ditemukan.

5. Memilih lintasan dengan nilai sisi yang paling optimal (kecil).

Page 30: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

17

Misalkan terdapat suatu graf G dengan simpul-simpul V yang masing-

masing bemomor 1 s.d. N (sebanyak N buah). Misalkan pula terdapat suatu

fungsi shortestPath (i, j ,k) yang mengembalikan kemungkinan jalur

terpendek dari i ke j dengan hanya memanfaatkan simpul 1 s.d. k sebagai

titik perantara.

Tujuan akhir penggunaan fungsi ini adalah untuk mencari jalur

terpendek dari setiap simpul i ke simpul j dengan perantara simpul 1 s.d.

k+1. Ada dua kemungkinan yang terjadi:

1. Jalur terpendek yang sebenamya hanya berasal dari simpul-simpul

yang berada antara 1 hingga k.

2. Ada sebagian jalur yang berasal dari simpul-simpul 1 hingga k+1 , dan

juga k+1 hingga j.

Perlu diketahui bahwa jalur terpendek dari i ke j yang hanya

melewati simpul 1 s.d. k telah didefinisikan pada fungsi shortestPath (i, j,

k) dan telah jelas bahwa jika ada solusi dari i s.d. k+1 hingga j, maka

panjang dari solusi tadi adalah jumlah dari jalur terpendek dari i s.d. k+1

(yang melewati simpul-simpul 1 s.d. k), dan jalur terpendek dari k+1 s.d.

j Guga menggunakan simpul-simpul dari 1 s.d. k).

Maka dari itu, rumus untuk fungsi shortestPath (i, j, k) bisa ditulis

sebagai suatu notasi rekursif sbb:

Basis-0

shortestPath (i,j, 0) = edgeCost(i,j);

Rekurens

shortestPath (i, j, k)= min(shortestPath (i, j, k-1), shortestPath

(i, k, k-1)+shortestPath (k, j, k-1));

Rumus ini adalah inti dari algoritma Floyd-Warshall. Algoritma ini

bekerja dengan menghitung shortestPath (i, j, 1) untuk semua pasangan (i, j),

kemudian hasil tersebut akan digunakan untuk menghitung shortestPath(i, j, 2)

untuk semua pasangan (i, j) dst. Proses ini akan terus berlangsung hingga k = n

dan kita telah menemukan jalur terpendek untuk semua pasangan (i, j)

menggunakan simpul-simpul perantara.

Page 31: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

18

BAB III

PENENTUAN LINTASAN TERPENDEK

Pada bab ini kan dipaparkan mengenai urutan langkah dalam menentukan

lintasan terpendek. Penentuan lintasan terpendek yang akan dibahas adalah

lintasan antar semua pasang simpul (all shortest path). Metode yang akan

digunakan terdiri dari Metode Graf dan Algoritma Floyd-Warshall.

Definisi 3.1 Misalkan ( , ) adalah sisi yang menghubungkan antara

simpul dan dengan arah dari simpul ke atau ( ) . Suatu

bilangan melambangkan bobot panjang, atau harga dari sisi ( , ), atau

( ). Hubungan ini dapat dilambangkan dengan fungsi

(dimana E merupakan himpunan sisi berarah, dan R himpunan bilangan real).

Digraf yang sisi-sisinya diberikan bobot disebut digraf berbobot (weighted

digraph).

3.1 Representasi Matriks Bobot

Definisi 3.2 Misalkan digraf dengan { } dan.

Bobot dari setiap sisi pada digraf D dapat direpresentasikan dengan matriks bobot

yang berukuran (n adalah banyaknya simpul pada digraf D),

dimana adalah bobot sisi berarah dari simpul ke , . Apabila

lintasan berawal dan berakhir pada simpul yang sama atau maka bobot

sisi tersebut adalah 0. Jika tidak terdapat sisi yang menghubungkan antara

dengan maka nilai bobot sisi tersebut adalah , atau ditulis sebagai berikut:

( ) {

( )

( )

(1)

Page 32: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

19

Sebagai contoh, diberikan digraf dengan

{ } berikut:

Gambar 3.1 Digraf berbobot dengan 6 simpul

Sesuai Persamaan (1), maka dapat ditentukan nilai . Sebagai contoh, simpul

dengan bobot = 7, maka bobot untuk matriksnya

. Pada kasus lainnya, dapat dilihat bahwa tidak ada sisi yang

secara langsung menghubungkan simpul , sehingga .. Pada

Gambar 3.1, kita berikan bobot 0 karena berawal dan

berakhir pada simpul yang sama.

Selanjutnya, dari digraf D yang diberikan dibentuk matriks bobot sebagai berikut:

[ ]

3.2 Teorema Lintasan Terpendek

Misalkan adalah sisi yang menghubungkan antara simpul dan

dengan arah dari simpul ke atau . Pada sisi tersebut diberikan

nilai ( ). Nilai ini bisa melambangkan bobot, panjang atau harga dari

sisi . Hubungan ini dapat dilambangkan dengan fungsi , dengan

R adalah himpunan bilangan real dan E himpunan sisi berarah.

Page 33: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

20

Misalkan digraf D = (V,E) dengan fungsi bobot . Untuk lintasan

, bobot lintasan ini adalah:

dimana W adalah fungsi yang memetakan bobot lintasan p ke suatu bilangan real

atau dilambangkan dengan .

Selanjutnya, didefinisikan bobot lintasan yang diketahui dari simpul u ke v

adalah bobot minimum dari semua kemungkinan lintasan p dari simpul u ke v,

jika terdapat lintasan pada simpul u ke v. Jika tidak, maka bobot lintasan

terpendek dari simpul u ke simpul v sama dengan atau dapat ditulis sebagai

berikut:

{

{ }

Berdasarkan Persamaan (2) dan (3), jika lintasan terpendek dari simpul u ke v,

maka lintasan p memiliki bobot [12].

3.2.1 Teorema Cormen

Misalkan digraf D = (V,E) dengan fungsi bobot dan

adalah lintasan terpendek dari simpul ke . Untuk setiap i dan j

sedemikian sehingga ( ) adalah sub-lintasan

dari lintasan p dari simpul ke , maka adalah lintasan terpendek dari

simpul ke [13].

Bukti: Karena p adalah lintasan terendek dari simpul ke dan untuk

setiap i dan j berlaku adalah sub-lintasan dari p yang dimulai

dari simpul sampai , sehingga lintasan p dapat diuraikan menjadi:

Page 34: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

21

Jika terdapat sub-lintasan lain dari ke , disebut dengan bobot

( ) ( ) maka terdapat lintasan lain dari ke disebut . Lintasan

dapat diuraikan menjadi :

Sehingga berdasarkan (3), maka bobot lintasan adalah :

( ( ) ( ))

( ( ) ( ))

Jadi p bukanlah lintasan terpendek karena ada lintasan lain yang bobotnya lebih kecil dari

lintasan p [ . Kontradiksi dengan p sebagai lintasan terpendek dari ke

[12].

3.3 Struktur Lintasan Terpendek

Misalkan diberikan digraf D = (V,E), dengan { } dan

{ } untuk sembarang k merupakan himpunan bagian dari V.

Andaikan setiap lintasan dari simpul ke mempunyai simpul antara yang

berada dalam himpunan dan p adalah lintasan yang mempunyai bobot

minimum diantara lintasan-lintasan tersebut.

Jika adalah simpul antara pada lintasan p, maka lintasan p dapat

diuraikan menjadi

→ , seperti yang ditunjukkan olehGambar 3.1

berikut.

Gambar 3.2 Lintasan terpendek dari ke dengan sebagai simpul perantara

Page 35: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

22

Didefinisikan

adalah panjang lintasan terpendek dari ke

sedemikian sehingga semua simpul perantara pada lintasan (jka ada) terdapat pada

himpunan { }. Maka terdapat dua kemungkinan:

1. Jika , maka lintasan dari ke tidak mempunyai simpul antara

sehingga

.

2. Jika , maka lintasan dari simpul ke dapat diuraikan dengan

sebagai simpul antara. Selanjutnya

ditentukan sebagai minimum dari

dan

Berdasarkan uraian tersebut, definisi rekursif

diberikan persamaan berikut :

{

{

}

3.3.1 Langkah-langkah Algoritma Floyd Warshall

Misalkan diberikan digraf berbobot , dengan

{ }. Didefinisikan matriks

adalah matriks berukuran

, dimana setiap elemennya merupakan bobot lintasan terpendek dari simpul

ke dengan semua simpul antara yang berada dalam himpunan

{ }. Untuk menentukan bobot lintasan terpendek dari sembarang dua

simpul pada digraf D, kita harus membentuk barisan terlebih

dahulu.

Matriks merupakan matriks yang elemennya memuat bobot sisi

berarah dari digraf sehingga [

] . Selanjutnya,

berdasarkan Persamaan (3), barisan matriks dapat ditentukan.

Bobot lintasan terpendek setiap pasang simpul pada digraf D diberikan oleh

matriks [

].

Page 36: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

23

Berdasarkan uraian tersebutl, prosedur untuk menentukan bobot lintasan

terpendek menggunakanjika diberikan digraf dengan

{ } adalah sebagai berikut:

1. Tentukan matriks [

] sebagai matriks bobot berukuran atau

dengan kata lain .

2. Tentukan [

] , untuk k = 1, 2, ..., n dengan

{

} untuk setiap i, j = 1, 2, ..., n.

3. Bobot lintasan terpendek dari simpul ke , adalah nilai dari

setiap elemen pada matriks [

].

3.3.2 Penentuan Lintasan Terpendek

Definisi 3.3 Misalkan diberikan digraf berbobot , dengan

{ }. Didefinisikan adalah simpul kedua pada lintasan dari

simpul ke dan matriks predecessor (simpul antara)

adalah

matriks yang berukuran yang setiap elemennya merupakan simpul kedua

pada lintasan dari simpul ke dengan semua simpul antara yang berada pada

{ }.

Matriks

adalah kondisi awal dari matriks predecessor yang

ditentukan dengan

= j, . Selanjutnya untuk k = 1, 2, 3, ..., n, nilai

ditentukan berdasarkan matriks , yaitu dengan membandingkan antara nilai

dengan nilai

sebagai berikut :

{

Page 37: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

24

Karena lintasan dari ke dengan sebagai simpul antara kemungkinan

memiliki lintasan yang lebih pendek dibandingkan tanpa . Hal ini disebabkan

karena

lebih kecil dari

.

Simpul antara pada lintasan dari simpul ke , diberikan

oleh matriks

. Berdasarkan matriks tersebut, penentuan lintasan

dilakukan sebagai berikut:

1. Jika simpul kedua sama dengan , maka tidak terdapat simpul antara pada

lintasan dari simpul ke . Sebaliknya jika simpul kedua tidak sama dengan

, sebut , maka selanjutnya tentukan simpul kedua pada lintasan dari

simpul ke dan dari simpul ke .

2. Jika simpul kedua pada lintasan dari simpul ke sudah sama dengan

dan simpul ke belum juga sama dengan (sebut ), maka tentukan

lagi simpul kedua pada lintasan tersebut (simpul ke ). Demikian

seterusnya sampai tidak lagi diperoleh lintasan keduanya (sampai lintasan

keduanya sama dengan ).

3. Lintasan yang dilalui oleh lintasan terpendek dari ke adalah barisan dari

simpul .

Page 38: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

25

Start

Tentukan n, Matriks bobot n x n

Matriks Predecessor

k<0, k<n, k++

i<0, i<n, i++

j<0, j<n, j++

Tidak Ya

Selesai

Gambar 3.3 Flowchart Algoritma Floyd-Warshall dan Penentuan Lintasan

Terpendek

Page 39: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

26

3.4 Contoh Kasus

Misal terdapat sebuah dgraf berbobot , dengan

{ } seperti gambar dibawah :

Gambar 3.4 Digraf berbobot dengan 6 simpul

Penyelesaian :

Langkah-langkah untuk menentukan jarak terpendek dari ke

dengan menggunakan algoritma Floyd-Warshall adalah

sebagai berikut:

1. Pada awalnya berikan bobot pada masing-masing sisi yang berhbungan.

Sesuai dengan Persamaan (1). Berikan bobot 0 (i = j) pada titik yang berawal

dan berakhir pada simpul yang sama. Perhatikan bahwa lintasan terpendek

tidak boleh mengandung dua buah simpul yang sama didalamnya. Dan

berikan bobot ’∞’ pada titik yang tidak saling berhubungan. Matriks digraf

awal berukuran yang dibentuk dari Gambar 3.2 adalah sebagai berikut:

[ ]

Page 40: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

27

2. Menentukan kondisi awal matriks predecessor

dimana

anggotanya merupakan simpul kedua pada lintasan dari ke , atau dengan

kata lain

= j, sesuai dengan Definisi 3.3. Maka matriks

predecessor awalnya adalah :

[ ]

3. Menentukan [

] untuk k = 1, 2, ..., n dengan

{

} untuk setiap i, j = 1, 2, ..., n.

4. Jika

maka nilai

=

Jika tidak

demikian, maka

Perhatikan pada langkah ke 3 dan 4, kita diharuskan menentukan bobot

lintasan terpendek dan menentukan lintasan terpendek yang dilalui oleh setiap

pasang titik dengan melakukan iterasi sebanyak n kali. Berikut adalah penjelasan

langkah-langkahnya :

Iterasi untuk k = 1

Pilih bobot terkecil dari titik-titik yang berhubungan

{

} untuk setiap i, j = 1, 2, ..., n. Kemudian tentukan simpul

lintasan terkecilnya sesuai dengan Persamaan (4).

{

} { }

, maka

= 3

Artinya adalah, simpul bukan simpul kedua yang menjadi solusi

lintasan terpendek dari simpul ke .

Page 41: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

28

{

} { }

Karena

, maka

Artinya adalah, simpul merupakan simpul kedua yang menjadi solusi

lintasan terpendek dari simpul ke . Sehingga lintasan terpendek dari

simpul ke adalah .

{

} { }

Karena

, maka

Sehingga lintasan terpendek dari simpul ke menjadi, .

Dengan cara yang sama bobot dan simpul pada matriks predecessor dihitung

untuk setiap i, dan j.

Tabel 3.1 Iterasi untuk k = 1

=0

= 7

= 2

{

}

=0 0 7 2

0 4 1

0 1

= 4 0 6

= 2 2 9 2 4 0 3

3 0

Didapatkan matriks digraf dan predecessor untuk iterasi k = 1 :

Page 42: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

29

Iterasi untuk k = 2

Iterasi untuk k = 2 dilakukan dengan cara yang sama seperti iterasi untuk

k = 1, hanya titik perantaranya adalah titik . Dengan cara yang sama pula

dilakukan iterasi untuk k = 3, 4, 5, 6.

{

} { }

Karena

, maka

Artinya adalah simpul merupakan simpul kedua antara simpul dan

simpul yang menjadi solusi lintasan terpendek. Sehingga lintasan terpendek

dari simpul ke menjadi .

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

Tabel 3.2 Iterasi untuk k = 2

=

= 0

= 4

= 2

= 1

{

}

=7 0 7 11 2 8

=0 0 4 1

0 1

= 4 4 8 0 5

= 9 2 9 2 4 0 3

3 0

Page 43: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

30

Didpatkan matriks digraf dan predecessor untuk iterasi k = 2 :

Iterasi untuk k = 3

Tabel 3.3 Iterasi untuk k = 3

=

=

= 0

=

= 1

{

}

=11 0 7 11 2 8

=4 0 4 1

= 0 0 1

= 8 4 8 0 5

= 2 2 9 2 4 0 3

3 0

Matriks digraf dan predecessor untuk iterasi k = 3 :

Page 44: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

31

Iterasi untuk k = 4

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

Tabel 3.4 Iterasi untuk k = 4

=0

= 4

= 8

= 0

= 5

{

}

=2 0 6 10 2 7

0 4 1

= 0 1

= 0 4 8 0 5

= 4 2 8 2 4 0 3

3 0

Matriks digraf dan predecessor untuk iterasi k = 4 :

Page 45: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

32

Iterasi untuk k = 5

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

Page 46: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

33

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

{

} { }

Karena

, maka

Tabel 3.5 Iterasi untuk k = 5

=2

= 8

= 2

= 4

= 0

= 3

{

}

=7 0 6 9 2 7 10

=1 3 0 3 5 1 4

= 1 3 9 0 5 1 4

= 5 7 4 7 0 5 8

= 0 2 8 2 4 0 3

= 3 5 11 5 7 3 0

Page 47: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

34

Matriks digraf dan predecessor untuk iterasi k = 5 :

Iterasi untuk k = 6

Tabel 3.6 Iterasi untuk k = 6

=5

=11

= 5

= 7

= 3

= 0

{

}

=10 0 6 9 2 7 10

=4 3 0 3 5 1 4

= 4 3 9 0 5 1 4

= 8 7 4 7 0 5 8

= 3 2 8 2 4 0 3

= 0 5 11 5 7 3 0

Matriks digraf dan predecessor untuk iterasi k = 6:

Bobot dari semua pasang lintasan terpendek direpresentasikan oleh

matriks , dan lintasannya direpresentasikan oleh . Sebagai contoh, lintasan

terpendek dari simpul yang diperoleh dari matriks . Perhatikan

Page 48: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

35

(baris 1, kolom 3 pada matriks ) = 5, artinya simpul kedua pada lintasan

adalah simpul . Maka didapat lintasan terpendeknya adalah :

.

Langkah selanjutnya adalah memeriksa apakah terdapat simpul kedua

(simpul antara) dari simpul ke dan dari simpul ke dengn memeriksa

matriks . Perhatikan

, dan

, yang artinya adalah terdapat

simpul kedua dari simpul ke yaitu simpul . Sedangkan dari simpul ke

melalui simpul (tidak ada simpul kedua yang dilalui simpul ke yang

merupakan solusi lintasan terpendeknya). Sehingga lintasan terpendeknya

menjadi :

Periksa kembali apakah terdapat simpul kedua yang menjadi solusi

lintasan terpendek antara simpul ke dan dari simpul ke . Perhatikan

bahwa

, dan

. Berarti tidak ada simpul kedua yang

menghubungkan simpul ke , sedangkan merupakan simpul kedua yang

menjadi solusi lintasan terpendek antara simpul ke . Sehingga lintasan

terpendeknya berubah menjadi :

Selanjutnya periksa kembali untuk memastikan apakah terdapat simpul kedua

antara simpul dan dari simpul . Perhatikan

, dan

Artinya adalah, tidak ada lagi simpul kedua dari simpul dan

dari simpul yang merupakan solusi lintasan terpendek dari simpul

awal ke simpul tujuan . Sehingga dapat diambil kesimpulan bahwa lintasan

merupakan solusi optimum lintasan terpendek dari

simpul ke dengan bobot atau panjang lintasan sebesar

(baris 1,

kolom 3, Matriks .

Page 49: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

36

BAB IV

ANALISIS DAN PEMBAHASAN

Berikut ini diberikan contoh penerapan Metode Graf dan Algoritma Floyd-

Warshall pada permasalahan transportasi, yaitu menentukan rute atau lintasan

terpendek antara terminal bus yang ada di kota Jakarta yang dilalui oleh angkutan

umum. Data diperoleh dari hasil pencarian di google map [maps.google.com].

Tabel 4.1 Jarak antar Terminal Bus di Jakarta (dalam km)

1 2 3 4 5 6 7 8 9 10

1 0 25 34 19 24 5 23 11 27 13

2 25 0 12 5 24 16 17 12 34 26

3 26 17 0 17 17 29 11 25 25 39

4 28 5 16 0 22 14 19 10 38 24

5 18 30 18 24 0 15 13 17 13 15

6 4 19 27 13 16 0 16 6 27 14

7 17 20 9 17 11 15 0 14 21 22

8 11 19 18 12 15 8 10 0 26 21

9 35 37 23 33 10 25 21 27 0 23

10 15 29 37 23 15 13 26 21 26 0

Keterangan :

1. Terminal Pulogadung

2. Terminal Kampung Rambutan

3. Terminal Lebak Bulus

4. Terminal Pinang Ranti

5. Terminal Grogol

6. Terminal Rawamangun

7. Terminal Blok-M

8. Terminal Kampung Melayu

9. Terminal Kalideres

10. Terminal Tanjung Priok

Page 50: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

37

4.1 Analisis

Proses analisis dibagi menjadi dua macam, yaitu analisis data dan

pembahasan data berdasarkan alur program yang dibuat menggunakan flow chart.

4.1.1 Data Masukan (Input)

Jika terminal-terminal yang ada di Kota Jakarta dianggap sebagai simpul,

dan jalur angkutan umum yang menghubungkan antara terminal-terminal tersebut

dianggap sebagai sisi berarah yang bobotnya sesuai dengan jarak antar terminal-

terminal tersebut. Sedangkan jarak dari lintasan yang berawal dan berakhir pada

simpul yang sama diberikan bobot 0.

Berdasarkan Tabel 4.1 dapat kita ketahui jarak mula-mula lintasan

angkutan uum antar terminal yang ada di kota Jakarta. Sebagai contoh, jarak dari

Terminal Pulogadung (1) ke Terminal Kampung Rambutan (2) adalah 25 km.

Begitupula sebaliknya, dari Terminal Kampung Rambutan ke Terminal

Pulogadung juga berjarak 25 km. Hal ini berarti lintasan yang menghubungkan

kedua terminal tersebut adalah sama, namun arahnya berlawanan.

Berikutnya, perhatikan bobot lintasan dari Terminal Lebak Bulus (3) ke

Terminal Rawamangun (6) sebesar 29 km. Berbeda bila kita mengambil rute

sebaliknya, yaitu sebesar 27 km. Hal itu bisa terjadi bila rute yang dilalui

angkutan umum antar kedua terminal tersebut berbeda. Dapat kita lihat contoh

lainnya dari Terminal Grogol (5) menuju Terminal Kampung Melayu (8) dengan

arah sebaliknya. Dari semua hal tersebut, terdapat 2 kemungkinan yang terjadi:

1. Lintasan yang yang terdaftar sudah optimal

Hal ini dapat terjadi bila tidak ada lintasan yeng lebih optimal dari lintasan

sebelumnya. Atau dengan kata lain, tidak ada terminal perantara yang

memberikan solusi optimal untuk lintasan dari terminal i ke terminal j.

2. Ada lintasan yang lebih optimal dari lintasan sebelumnya

Page 51: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

38

Kemungkinan yang ke-2 dapat terjadi bila terdapat terminal perantara yang

meghasilkan lintasan terpendek dan dapat dilalui oleh lintasan dari terminal i

ke terminal j.

4.1.2 Data Proses

Proses dalam sistem penentuan lintasan terpendek dilakukan dengan

melakukan langkah-langkah pada algorima floyd-warshall seperti yang telah

dibahas pada bab sebelumnya. Data yang telah diperoleh sebelumnya

direpresentasikan dalam bentuk matriks ketetanggaan, seperti yang terlihat pada

Tabel 4.1. Dari data tersebut kemudian akan ditentukan bobot lintasan terpendek

yang menghubungkan semua simpul yang ada, atau dalam kasus ini adalah

lintasan terpendek antar terminal di kota Jakarta.

Selain itu, pada proses penentuan lintasan terpendek juga akan ditentukan

simpul pendahulu. Dalam kasus ini simpul pendahulu merepresentasikan lintasan

mana saja yang dilalui dalam menentukan lintasan terpendek dari terminal i ke

terminal j.

4.1.3 Data Keluaran (Output)

Data keluaran yang diperoleh dari proses penentuan lintasan

terpendek ini adalah :

1. Matriks bobot yang merepresentasikan bobot optimum lintasan terpendek

yang dilalui antar semua pasang simpul dari terminal-terminal di kota Jakarta

yang telah ditentukan sebelumnya.

2. Matriks Pendahulu (predecessor) yang merepresentasikan terminal perantara

yang dilalui oleh lintasan dari terminal i ke terminal j bila terbukti simpul

tersebut terbukti memberikan solusi yang lebih optimal dalam menentukan

lintasan terpendek.

Tabel 4.2 dan Tabel 4.3 berikut berturut-turut merupakan matriks yang

merepresentasikan lintasan terpendek antara setiap pasang terminal di kota Jakarta

Page 52: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

39

dan terminal antara yang dilalui dalam satu lintasan antar terminal. Hasil ini

diperoleh dengan menggunakan metode graf dan algoritma Floyd-Warshall

(program terlampir).

Tabel 4.2 Jarak terpendek antara setiap pasang Terminal Bus (dalam km)

1 2 3 4 5 6 7 8 9 10

1 0 23 29 18 21 5 21 11 27 13

2 25 0 12 5 24 16 17 12 34 26

3 26 17 0 17 17 26 11 25 25 32

4 18 5 16 0 22 14 19 10 35 24

5 18 29 18 24 0 15 13 17 13 15

6 4 18 24 13 16 0 16 6 27 14

7 17 20 9 17 11 15 0 14 21 22

8 11 17 18 12 15 8 10 0 26 21

9 28 37 23 33 10 25 21 27 0 23

10 15 28 33 23 15 13 26 19 26 0

Tabel 4.3 Terminal yang dilalui oleh lintasan dari terminal i ke terminal j

1 2 3 4 5 6 7 8 9 10

1 1 6 8 6 6 6 6 8 9 10

2 6 2 3 4 5 6 7 8 9 10

3 1 2 3 4 5 7 7 8 9 5

4 6 2 3 4 5 6 7 8 5 10

5 1 4 3 4 5 6 7 8 9 10

6 1 4 8 4 5 6 7 8 9 10

7 1 2 3 4 5 6 7 8 9 10

8 1 4 3 4 5 6 7 8 9 10

9 5 2 3 4 5 6 7 8 9 10

10 1 4 5 4 5 6 7 6 9 10

Page 53: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

40

Berdasarkan Tabel 4.2, lintasan terpendek yang akan dilalui untuk

mencapai terminal yang menjadi tujuan dengan mudah dapat ditentukan. Sebagai

contoh, misalkan dari Pulogadung (1) kita ingin menuju ke Kampung Rambutan

(2). Berdasarkan tabel 2, didapatkan panjang lintasan terpendek yang dilalui

adalah 23 kilometer (lihat baris ke 1 kolom 2, Tabel 4.2).

Berdasarkan Tabel 4.3, perhatikan bahwa untuk menuju Kampung

Rambutan dari Pulogadung maka terminal yang harus dilalui adalah Rawamangun

(6) (lihat baris 1 kolom 2, Tabel 4.3). Sehingga lintasanan terpendeknya adalah :

Pulogadung (1)Rawamangun (6)Kampung Rambutan (2).

Selanjutnya periksa kembali apakah terdapat terminal kedua antara

Terminal Pulogadung ke Rawamangun, dan Terminal rawamangun ke Kampung

Rambutan. Perhatikan kembali Tabel 4.3, dari Terminal Pulogadung (1) menuju

Rawamangun (6) maka harus melalui Rawamangun (6) (lihat baris 1 kolom 6,

Tabel 4.3). Hal tersebut berarti tidak ada terminal kedua antara Pulogadung (1)

dengan Rawamangun yang merupakan solusi optimum rute terpendek. Sedangkan

dari Terminal Rawamangun (6) ke Kampung Rambutan (2), terdapat terminal

antara yang dilalui kedua terminal tersebut adalah Terminal Pinang Ranti (4)

(lihat baris 6 kolom 2, Tabel 4.3). Sehingga lintasan terpendeknya berubah

menjadi :

Pulogadung (1)Rawamangun (6)Pinang Ranti (4)Kampung Rambutan (2)

Lakukan langkah yang sama, yaitu memeriksa kembali apakah terdapat

terminal antara yang dilalui dari Terminal Rawamangun (6) ke Pinang Ranti (4),

dan Pinang Ranti (4) ke Kampung Rambutan (2). Perhatikan Tabel 4.3 pada baris

6 kolom 4, dan pada baris 4 kolom 2. Terlihat bahwa daiantara terminal-terminal

tersebut sudah tidak ada lagi terminal kedua yang dilalui yang merupakan solusi

optimal lintasan terpendek. Sehingga dapat diambil kesimpulan bahwa lintasan

yang terpilih apabila kita ingin pergi dari Pulogadung menuju Kampung

Rambutan untuk mendapatkan jarak terpendek adalah:

Page 54: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

41

Pulogadung Rawamangun Pinang Ranti Kampung Rambutan

Dari Tabel 4.3 juga terlihat pada baris ke 7 (Terminal Blok-M) tidak

terjadi perubahan lintasan. Tidak ada lintasan antara yang menghubungkan Blok-

M dengan terminal yang ada, itu artinya lintasan dari Blok-M ke semua terminal

sudah optimum sebelumnya.

Page 55: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

42

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Permasalahan perncarian lintasan terpendek, waktu dan biaya minimum

merupakan fenomena nyata yang ada dikehidupan sehari-hari. Ada banyak sekali

algoritma yang telah dikembangkan untuk menyelesaikan masalah ini, salah

satunya adalah Algoritma Floyd-Warshall yang termasuk dalam Permrograman

Dinamis. Prinsip yang dipegang oleh pemrograman dinamis adalah prinsip

optimalitas, yaitu jika solusi total optimal, maka bagian solusi sampai suatu tahap

juga optimal.

Ditinjau berdasarkan kasus terburuknya, algoritma Floyd-Warshall yang

menerapkan solusi optimum untuk kasus penentuan lintasan terpendek semua

pasang simpull (all pair sort path) pada simpul digraf (graf berarah) D dengan n

simpul membutuhkan waktu eksekusi dengan hasil yang akurat. Algoritma

ini sangat mudah dimengerti, dan sangat mudah untuk diimplementasikan dalam

kehidupan sehari-hari.

5.2 Saran

Tulisan ini hanya membahas mengenai sebagian kecil dari penerapan teori

graf untuk masalah lintasan terpendek dengan algoritma Floyd-Warshall. Ada

beberapa hal yang dapat dikembangkan lebih lanjut, yaitu dengan merancang

aplikasi untuk mengimplementasikan algoritma ini dalam kehidupan sehari-hari.

Selain itu juga ada beberapa hal yang dapat dikaji lebih lanjut, diantaranya adalah

membandingkan algoritma Floyd-Warshall dengan algoritma lainnya untuk

menyelesaiakan permasalahan pencarian lintasan terpendek.

Page 56: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

43

DAFTAR PUSTAKA

[1] Munir, Rinaldi. Matematika Diskrit Edisi Ketiga. Informatika,

Bandung, 2007.

[2] Ngurah, Anak Agung Gede. Ketotalsisiajaiban Graf Dan

Defisiensinya. Central Library Institute Technology Bandung,

2007.

[3] Jek Siang, Jong. Matematika Diskrit dan Aplikasinya Pada Ilmu

Komputer. Andi, Yogyakarta, 2002.

[4] Munir, Rinaldi, “Diktat Kuliah IF2251 Program Dinamis (Bagian

1)”. Informatika ITB, Bandung,

[5] Dynamic Programming : Universitas Oxford. Pada tanggal 15

September 2012 pukul 02.51 WIB. http://www.oxford-

mphil.com/images/c/.../Dynamic-programming-4-principle.pdf.

[6] Subagyo. Pangestu, Marwan Asri dan T. Hani Handoko. Dasar-

Dasar Operations Research Edisi Kedua. PTBPFE, Yogyakarta,

2000.

[7] “Buku Ajar Metode Numerik,” didanai oleh Proyek HEDS, 2002.

[8] Algoritma : Wikipedia. Pada tanggal 21 September 2012 pukul

20.35 WIB. http://id.wikipedia.org/wiki/Algoritma

[9] Cormen, Thomas H, et al. Introduction to Algorithm. McGraw-Hill

Book Company, New York, 1994.

[10] Nilanto, Gerdyandanu. “Sistem Informasi Pencarian Lintasan

Terpendek Menggunakan Pemrograman Dinamis,” skripsi, UIN

Syarif Hidayatullah, Jakarta, 2011.

[11] Hartsfield, Nora., Ringer, Gerhard. Pearls in graph theory a

comprehensive introduction. Academic press: San Diego. 1990

[12] Bahri, Syamsul, “Algoritma Penentuan Lintasan Terpendek Untuk

Semua Pasangan Simpul,” skripsi, Matematika IPB, Bogor, 1997.

Page 57: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

44

LAMPIRAN

Program untuk menentukan lintasan terpendek semua pasang simpul dari suatu

digraf berbobot menggunakan Algoritma Floyd-Warshall.

/*Nama Program : Floyd

Tujuan : Menentukan matriks bobot lintasan terpendek dan matriks

predecessor dari suatu digraf berbobot sesuai dengan

Algoritma Floyd-Warshall.

Catatan :

a. Data yang diinput berupa matriks bobot dari suatu digraf matriks bobot

yang disimpan dengan format file *.txt .

Sebagai contoh: Misalkan kita memiliki matriks bobot yang berukuran

3x3, dengan elemen berturut-turut:

Maka matriks tersebut diinput dalam susunan sebagai berikut:

3

Kemudian file tersebut disimpan satu folder dengan program aplikasi yang

telah dibuat.

b. Output yang dihasilakan berupa Matriks Bobot dan Matriks Predecessor

awal sampai pada iterasi ke-n (n adalah ukuran matriks).

#include <stdio.h>

int n; /* Jumlah simpul */

int dist[10][10];

int pred[10][10];

void printDist() {

int i, j ;

printf("W = \n");

printf(" ");

Page 58: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

45

for (i = 0; i < n; ++i)

printf("%4c", '1' + i);

printf("\n");

for (i = 0; i < n; ++i) {

printf("%4c", '1' + i);

for (j = 0; j < n; ++j)

printf("%4d", dist[i][j]);

printf("\n");

}

printf("\n");

{

printf("p = \n");

printf(" ");

for (i=0;i<n;++i)

printf("%4c", '1' + i);

printf("\n");

for (i = 0; i < n; ++i) {

printf("%4c", '1' + i);

for (j=0; j<n; ++j)

printf("%4d", pred[i][j]);

printf("\n");

}

}

printf("\n");

}

void floyd_warshall() {

int i, j, k;

for (k = 0; k < n; ++k) {

printf(" iterasi untuk k=%d \n",k);

printf("\n");

printDist();

Page 59: PENERAPAN METODE GRAF DAN ALGORITMA FLOYD-WARSHALL …

46

for (i = 0; i < n; ++i)

for (j = 0; j < n; ++j)

{

if ((dist[i][k] * dist[k][j] != 0) && (i != j))

if ((dist[i][k] + dist[k][j] < dist[i][j])||

(dist[i][j] == 0))

{

dist[i][j] = dist[i][k] + dist[k][j];

pred[i][j]=k+1;

}

}

}

printDist();

}

int main(int argc, char *argv[]) {

/* memanggil data berupa Matriks Bobot */

FILE *fin = fopen("Data.txt", "r");

fscanf(fin, "%d", &n);

int i, j;

for (i = 0; i < n; ++i)

for (j = 0; j < n; ++j)

fscanf(fin, "%d", &dist[i][j]);

printf("\n");

for (i=0; i<n;++i)

for (j=0;j<n;++j)

pred [i][j]=j+1;

fscanf(fin, "%d", &pred[i][j]);

fclose(fin);

floyd_warshall();

return 0;

}