Algoritma Floyd Analisis dan Perbandingan Algoritma L-Queue dan Algoritma Floyd Dalam Penentuan Lintasan Terpendek Pada Graph

Algoritma Qdelete 1. if front := null , then underflow , Return 2. set item := queue[front] 3. [find new value of front] if front = rear , then set front := null and rear := null else if front = N, then set front := 1 else set front := front + 1 4. Return

2.5. Algoritma Floyd

Teknik untuk menghitung panjang jalan terpendek antara semua pasangan node dalam jaringan n-node yang tidak mengandung sirkuit panjang negatif merupakan teknik dari algoritma Floyd Douglas, 1981. Algoritma floyd 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. Artinya solusi- solusi tersebut dibentuk dari solusi yang berasal dari tahap sebelumnya dan ada kemungkinan solusi lebih dari satu Khan, 2014. Algoritma floyd juga dikenal sebagai metode penempatan vertex yang juga merupakan jenis pemrograman dinamis dan digunakan untuk menemukan jalur terpendek antara simpul dari graph berbobot Wei, 2010. Algoritma Floyd sangat efisien dari sudut pandang penyimpanan data karena dapat diimplementasikan dengan hanya pengubahan sebuah matriks jarak Rudi, 2014. Algoritma ini dapat digunakan untuk mencari jarak terpendek antara semua titik dalam graph. Bentuk algoritma untuk mencari R+ adalah sebagai berikut Aini, 2012. Step 1 : Jika antara i-j merupakan jalan edge, T[i,j] berisi panjang jalan. Jika tidak, T[i,j]= ∞. Step 2 : For k=1 to n do For i=1 to n do For j=1 to n do Universitas Sumatera Utara T[i,j]= min{ T[i,j] , T[i,j] · T[k,j] } Step 3 : R+=T. Gambar 2.3. Graph Berbobot untuk Algoritma Floyd Graph berbotot diatas dapat dijadikan sebagai matriks inisialiasi seperti pada Tabel 2.1. Tabel 2.1. Inisialisasi Matriks Dari matriks inisialisasi dapat dicari R0, R1, R2, R3 dan R4. Kotak abjad berwarna hijau disamping kiri adalah titik awal dan kotak abjad berwarna merah yang ada di atas adalah titik tujuan-nya. Sedangkan kotak angka hijau dan merah berfungsi untuk menentukan sebuah index. Dalam gambar graph 2.3 diatas terdapat 4 buah titik, yaitu A, B, C, D maka akan ada 5 proses yang akan dilewati yaitu R0, R1, R2, R3, dan R4 sebagai DARIKE A B C D A 3 ∞ ∞ B ∞ 4 1 C 2 ∞ ∞ D ∞ ∞ 1 Universitas Sumatera Utara hasil akhir, perlu diingat bahwa hasil dari sebuah proses akan digunakan untuk proses berikutnya. Dari proses perhitungan tersebut maka akan didapatkan hasil seperti pada gambar 2.4 berikut, Gambar 2.4. Matriks Hasil Proses Algoritma Floyd Universitas Sumatera Utara 2.5.1. PSEUDOCODE Pseudocode Algoritma Floyd Function fwint [1 .. n, 1 .. n] graph { inisialisasi Var int [1 .. n, 1 .. n] jarak := graph Var int [1 .. n, 1 .. n] sebelum For i from 1 to n For j from 1 to n If jarak[i,j] takhingga Sebelum[i,j] := i perulangan utama For k from 1 to n For i from 1 to n For j from 1 to n If jarak[i,j] jarak [i,k] + jarak[k,j] Jarak[i,j]=jarak[i,k] + jarak[k,j] Sebelum[i,j] = sebelum[k,j] Universitas Sumatera Utara BAB 1 PENDAHULUAN

1.1 Latar Belakang