BAB 2
LANDASAN TEORI
2.1 Graph Graf adalah struktur data yang terdiri dari atas kumpulan vertex (V) dan edge (E), biasa ditulis sebagai G=(V,E), di mana vertex adalah node pada graf, dan edge adalah rusuk / jaring yang menghubungkan dua node. Jaring terdefenisi melalui pasangan node (v,w), di mana v disebut tail dan w disebut head dari jaring tersebut. (Dr.Suarga,2012.) Beberapa istilah yang sering digunakan dalam masalah graf antara lain : 1. Adjacent vertex: adalah dua node berdekatan, terhubung langsung oleh vertex. 2. Path: jalur melalui edge yang menghubungkan suatu vertex ke vertex yang lain, panjang suatu jalur ditentukan oleh jumlah jaring (edge) yang menghubungkan dua vertex. 3. Complete graph: adalah graf di mana semua vertex terhubung langsung satu dengan yang lain. 4. Weighted graph: graf yang setiap edgenya memiliki bobot/ nilai. 5. Cycle: adalah jalur yang mulai dari suatu vertex dan berakhir pada vertex yang sama.( Dr.Suarga,2012.)
Universitas Sumatera Utara
8
v
e4
v2
1
e1
e5
v4 e2
e3
v3
Gambar 2.1 Graph dengan 4 verteks dan 5 edge. Pada gambar 2.1 diatas graph G = (V, E) dimana: 1. V adalah himpunan titik, simpul, verteks atau nodes dari G, yaitu V = {v1, v2, v3, v4} 2. E adalah himpunan rusuk, edges, atau sisi dari G, yaitu E = {e1, e2, e3, e4, e5} 2.1.1 Macam – macam Graph Menurut Arah dan Bobotnya Menurut arah dan bobotnya, graph dibagi menjadi enam bagian, yaitu : 1. Pada gambar 2.2 menjelaskan Graph berarah (digraph) dan berbobot: setiap edges mempunyai arah (yang ditunjukkan dengan anak panah) dan bobot.
Gambar 2.2 Graph Berarah Dan Berbobot.
Universitas Sumatera Utara
9
2. Pada gambar 2.3 menjelaskan Graph tidak berarah dan berbobot: setiap edges tidak mempunyai arah tetapi mempunyai bobot.
Gambar 2.3 Graph Tidak Berarah Dan Berbobot.
3. Pada gambar 2.4 menjelaskan Graph berarah (digraph) dan tidak berbobot: setiap edges mempunyai arah tetapi tidak mempunyai bobot.
Gambar 2.4 Graph Berarah Dan Tidak Berbobot
Universitas Sumatera Utara
10
4. Pada gambar 2.5 menjelaskan Graph tidak berarah dan tidak berbobot: setiap edges tidak mempunyai arah dan tidak mempunyai bobot
Gambar 2.5 Graph Tidak Berarah Dan Tidak Berbobot
5.
Pada gambar 2.6 menjelaskanGraph sederhana : Graph yang tidak memiliki garis paralel ataupun loop. Titik-titik pada Graph sederhana dihubungkan tepat dengan satu garis ke setiap titik yang lain dan tidak ada garis yang titik awal dan akhirnya sama (Adelina, 2014).
Gambar 2.6 Graph Sederhana (Adelina,2014) 6.
Pada gambar 2.7 menjelaskanGraph tidak sederhana : Graph yang memiliki loop atau garis paralel. Graph tidak sederhana kemudian terbagi lagi menjadi Graph semu (pseudoGraph) dan multiple Graph (Adelina, 2014).
a. Graph Semu (pseudo Graph)
b. MultipleGraph
Gambar 2.7 Graph Tidak Sederhana(Adelina,2014)
Universitas Sumatera Utara
11
2.2 Lintasan Terpendek (Shortest Path)
Persoalan mencari lintasan terpendek di dalam Graph merupakan salah satu persoalan optimasi.Graph yang digunakan dalam pencarian lintasan terpendek adalah Graph suatu nilai atau bobot. Bobot pada sisi Graph dapat menyatakan jarak antar kota, waktu pengiriman pesan, ongkos pembangunan, dan sebagainya. Asumsi yang digunakan disini adalah bahwa semua bobot bernilai positif. Kata “terpendek” jangan selalu diartikan secara fisik sebagai panjang minimum, sebab kata “terpendek” berbeda-beda maknanya tergantung pada tipikal persoalan yang akan diseleseikan. Namun secara umum “terpendek” berarti meminimisasi bobot pada suatu lintasan di dalam Graph. (Anik Andriani, 2014) Ada beberapa macam persoalan lintasan terpendek, antara lain : a. Lintasan terpendek antara dua buah simpul tertentu. b. Lintasan terpendek antara semua pasangan simpul. c. Lintasan terpendek dari simpul tertentu ke semua simpul yang lain. d. Lintasan terpendek antara dua buah simpul yang melalui beberapa simpul tertentu.
2.3 Algoritma 2.3.1
Pengertian Algoritma
Ahli sejarah matematika menemukan kata algoritma berasal dari nama penulis buku Arab terkenal, yaitu Abu Abdullah Muhammad Ibnu Musa Al-Khuwarizmi seorang ahli matematika, astrologi, astronomi, geoGraphi.
Algoritma adalah sekumpulan langkah (tahapan) logis untuk menyelesaikan suatu pekerjaan ( permasalahan).
Universitas Sumatera Utara
12
Terdapat beberapa defenisi dari algoritma: 1. Algoritma adalah teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas tetapi tersusun seccara logis dan sitematis. 2. Algoritma adalah suatu proses yang jelas untuk menyelesaikan suatu persoalan degan menggunakan langkah-langkah tertentu dan terbatas jumlahnya. 3. Algoritma adalah susunan langkah yang pasti, yang bila diikuti maka akan mentrasformasikan data input menjadi output yang berupa informasi (Indrawoko Kurniadi,2011). Suatu Algoritma yang terbaik “Suatu algoritma harus menghasilkan output yang tepat guna (efektif) dalam waktu yang relative singkat dan penggunaan memori yang relative sedikit (efesien) dengan langkah yang berhingga dan prosedurnya berakhir baik dalam keadaan diperoleh suatu solusi ataupun tidak ada solusinya”.
Algoritma yang baik harus mampu memberikan hasil yang optimal. Dalam pemilihan algoritma ada beberapa hal yang perlu dipertimbangkan yaitu : 1. Algoritma haruslah benar. Algoritma harus bisa memberikan hasil sesuai dengan yang dikehendaki dari sejumlah masukan yang diberikan 2. Seberapa baik hasil yang dicapai. Artinya algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai sebenarnya. 3. Efisiensi algoritma. Efisiensi algoritma ditinjau dari dua hal yaitu : a. Efisiensi waktu. Mampu memberikan keluaran atau hasil yang cepat. b. Efisiensi memori. Semakin banyak memori yang dibutuhkan sebuah algoritma untuk memecahkan suatu masalah maka makin buruklah algoritma itu (Siang, 2006).
Universitas Sumatera Utara
13
Harga perangkat keras saat ini cenderung menurun.Maka efisiensi waktu lebih diutamakan daripada efisiensi memori. Hal-hal
yang berhubungan dengan
kompleksitas waktu yang digunakan oleh sebuah algoritma adalah : 1. Perancangan. Yang termasuk dalam bagian perancangan adalah : a. Deskripsi algoritma pada suatu tingkatan yang memiliki arti bahasa semu (pseudo) b. Pembuktian kebenaran bahwa sebuah algoritma bisa menyelesaikan masalah yang diberikan. 2. Analisis. Memberikan evaluasi kinerja algoritma terhadap permasalahan yang diberikan (Purwanto, 2008)
2.3.2
Algoritma Floyd Warshall
Algoritma Floyd Warshall adalah salah satu varian dari pemrograman dinamis, yaitu suatu metode yang melakukan pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait. (Thomas H. Cormen,2003). if k = 0 , if k ≥ 1 Keterangan :
menyatakan nilai jalur terpendek dari i ke j yang melalui titik ke 1 ,...., k (Thomas H. Cormen,2003).
Algoritma ini bekerja dengan menghitung shortest path (i,j,k) untuk semua pasangan (i,j), kemudian hasil tersebut akan digunakan untuk menghitung shortest path (i,j,k) untuk semua pasangan (i,j), dst. Proses ini akan terus berlangsung hingga k=n dan kita telah menemukan jalur terpedek untuk semua pasangan (i,j) menggunakan simpul-simpul perantara. (Thomas H. Cormen,2003).
Salah satu algoritma Graph yaitu algoritma Floyd Warshall.Algoritma Floyd Warshall menghitung jalur terpendek antara semua simpul dengan menghitung dari
Universitas Sumatera Utara
14
satu sumber simpul sampai simpul tujuan melalui beberapa jalur (Baras & Theodorakopoulos, 2010).Algoritma Floyd Warshall dapat digunakan untuk mencari panjang lintasan terpendek antara semua pasangan simpul dalam Graph sederhana yang terhubung tetapi algoritma Floyd Warshall tidak dapat digunakan untuk membuat lintasan terpendek (Rosen, 2011).
Cara kerja dari algoritma Floyd Warshall adalah dengan membandingkan semua lintasan yang mungkin terjadi dalam Graph untuk setiap pasang simpul dan melakukan pengujian dari setiap kombinasi simpul yang diperoleh.Misalkan adalah matriks ketetanggaan awal Graph berarah berbobot. ketetanggaan berbobot terpendek dengan ke
adalah matriks
sama dengan path terpendek dari titik
(Siang, 2009).
Beberapa karakteristik yang dimiliki oleh algoritma Floyd Warshall antara lain: 1. Persoalan dibagi atas beberapa tahap, yang setiap tahapnya hanya akan diambil satu keputusan. 2. Masing-masing tahap terdiri atas sejumlah status yang saling berhubungan dengan status tersebut. Status yang dimaksud disini adalah berbagai kemungkinan masukan yang ada pada tahap tersebut. 3. Ketika masuk ke suatu tahap, hasil keputusan akan ditransformasi. 4. Bobot pada suatu tahap akan meningkat secara teratur seiring bertambahnya jumlah tahapan. 5. Bobot yang ada pada suatu tahap tergantung dari bobot tahapan yang telah berjalan dan bobot pada tahap itu sendiri. 6. Keputusan 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 keputusan terbaik untuk setiap status pada tahap k+1. 8. Prinsip optimalitas berlaku pada persoalan yang dimaksud.
Universitas Sumatera Utara
15
Kelebihan dari algoritma Floyd Warshall antara lain (Adams, 2012): 1. Algoritma Floyd Warshall dapat digunakan untuk mencari jarak terpendek (shortest path) dari setiap pasangan node 2. Algoritma Floyd Warshall menggunakan matriks bobot n x n sebagai masukan, dimana n merupakan jumlah node 3. Algoritma Floyd Warshall dapat mentolerir negative edge.
Dari beberapa penelitian tentang perbandingan algoritma Floyd Warshall dengan algoritma Djikstra adalah pada algoritma Dijkstra hanya memikirkan solusi terbaik yang akan diambil pada setiap langkah tanpa memikirkan konsekuensi ke depan. Dan hasil yang diberikan tidak selalu memberikan hasil yang optimal.sedangkan algoritma Floyd warshall memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait sehingga lebih menjamin keberhasilan penemuan solusi optimum untuk kasus penentuan lintasan terpendek (Sondang, 2011).
2.3.3 Analisis Algoritma Floyd Warshall
Dalam iterasinya untuk mencari lintasan terpendek, algoritma Floyd-Warshall membentuk n matriks sesuai dengan iterasi-k. Algoritma Floyd-Warshall sering dipergunakan
untuk
menghitung
lintasan
terpendek
karena
kesederhanaan
algoritmanya. Algoritma ini menghitung bobot terkecil dari semua jalur yang menghubungkan sebuah pasangan titik, dan melakukannya sekaligus untuk semua pasangan titik. Dengan kata lain pada saat perhitungan rute optimum yang akan dilalui terlebih dahulu. Algoritma Floyd-Warshall bekerja berdasarkan formulasi dinamic programming. Setiap langkahnya akan memeriksa lintasan antara vi dan vjapakah bisa lebih pendek jika melalui vi-vk dan vk-vj.
Universitas Sumatera Utara
16
Proses Penentuan Nilai Minimum Algoritma Floyd-Warshalldapat dituliskan sebagai berikut: 1. Pada iterasi ke-1, setiap sel matriks dilakukan pengecekan apakah jarak antar dua titik mula mula lebih besar dari penjumlahan antar jarak titik asal ke titik tujuan (titik tujuan=iterasi ke-1) dengan jarak titik asal (titik asal=iterasi ke-1) ke titik tujuan. Dengan kata lain apakah W[i,j] > W[i,k] + W[k,j]. 2. Jika iya maka jarak antar dua titik mula mula diganti dengan penjumlahan antar jarak titik asal ke titik tujuan (titik tujuan=iterasi ke-1) dengan jarak titik asal (titik asal=iterasi ke-1) ke titik tujuan (W[i,k] + W[k,j]). 3. Jika tidak, maka jarak yang digunakan yaitu jarak antar dua titik mula mula (W[i,j]). 4. Proses iterasi dilakukan hingga pada iterasi terakhir (jumlah iterasi=jumlah total titik).
Universitas Sumatera Utara