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