Lompat ke isi

Algoritma Floyd-Warshall: Perbedaan antara revisi

Ensiklopedia Pengetahuan Universitas Islam Sultan Agung
Maintenance script (bicara | kontrib)
Impor teks terkontrol dari Wikipedia bahasa Indonesia; revisi 28365205; atribusi sumber disertakan.
 
Maintenance script (bicara | kontrib)
Presentation V4: sitasi, referensi, Math, Wikimedia Commons, dan atribusi
 
Baris 1: Baris 1:
[[File:Floyd-Warshall-Algorithm-Problem.png|thumb|right|280px|Masalah-Algoritma-Floyd-Warshall]]
'''Algoritma Floyd-Warshall''' adalah algoritma untuk mencari lintasan terpendek pada sebuah graf berbobot dengan bobot positif atau negatif (namun tidak memiliki siklus negatif).
'''Algoritma Floyd-Warshall''' adalah algoritma untuk mencari lintasan terpendek pada sebuah graf berbobot dengan bobot positif atau negatif (namun tidak memiliki siklus negatif).


Baris 7: Baris 9:


== Algoritma ==
== Algoritma ==
Algoritma Floyd-Warshall memiliki input graf berarah dan berbobot (''V'',''E''), yang berupa daftar titik (node/vertex ''V'') dan daftar sisi (edge ''E''). Jumlah bobot sisi-sisi pada sebuah jalur adalah bobot jalur tersebut. Sisi pada ''E'' diperbolehkan memiliki bobot negatif, akan tetapi tidak diperbolehkan memiliki siklus dengan bobot negatif. Algoritma ini menghitung bobot terkecil dari semua jalur yang menghubungkan sebuah pasangan titik, dan melakukannya sekaligus untuk semua pasangan titik. Algoritma ini berjalan dengan waktu Θ(|''V''|<sup>3</sup>).
Algoritma Floyd-Warshall memiliki input graf berarah dan berbobot (''V'',''E''), yang berupa daftar titik (node/vertex ''V'') dan daftar sisi (edge ''E''). Jumlah bobot sisi-sisi pada sebuah jalur adalah bobot jalur tersebut. Sisi pada ''E'' diperbolehkan memiliki bobot negatif, akan tetapi tidak diperbolehkan memiliki siklus dengan bobot negatif. Algoritma ini menghitung bobot terkecil dari semua jalur yang menghubungkan sebuah pasangan titik, dan melakukannya sekaligus untuk semua pasangan titik. Algoritma ini berjalan dengan waktu Θ(|''V''|<sup>3</sup>).


Baris 15: Baris 16:
(Ketiadaan sisi yang menghubungkan sebuah pasangan dilambangkan dengan Tak-hingga)
(Ketiadaan sisi yang menghubungkan sebuah pasangan dilambangkan dengan Tak-hingga)


 
   '''function''' fw('''int'''[1..n,1..n] graph) {
   '''function''' fw('''int'''[1..n,1..n] graph) {
     ''// Inisialisasi''
     ''// Inisialisasi''
Baris 40: Baris 41:
== Implementasi ==
== Implementasi ==
* Implementasi Algoritma Floyd-Warshall dalam [[Perl]], yaitu [http://search.cpan.org/~jhi/Graph-0.67/ Graph Module]
* Implementasi Algoritma Floyd-Warshall dalam [[Perl]], yaitu [http://search.cpan.org/~jhi/Graph-0.67/ Graph Module]
* Implementasi Algoritma Floyd-Warshall dalam [[JavaScript]] di [http://alexle.net/stuff/floyd-algorithm/ Alex Le's Blog]
* Implementasi Algoritma Floyd-Warshall dalam [[JavaScript]] di [http://alexle.net/stuff/floyd-algorithm/ Alex Le's Blog]  
 
== Referensi ==
 
*
** Section 26.2, "The Floyd-Warshall algorithm", pp.&nbsp;558–565;
** Section 26.4, "A general framework for solving path problems in directed graphs", pp.&nbsp;570–576.
*
*
*


== Pranala luar ==
== Pranala luar ==
* [http://www.pms.informatik.uni-muenchen.de/lehre/compgeometry/Gosper/shortest_path/shortest_path.html#visualization Interactive animation of Floyd-Warshall algorithm]
* [http://www.pms.informatik.uni-muenchen.de/lehre/compgeometry/Gosper/shortest_path/shortest_path.html#visualization Interactive animation of Floyd-Warshall algorithm]


== Sumber dan atribusi ==


Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=Algoritma+Floyd-Warshall&oldid=28365205 Wikipedia bahasa Indonesia], revisi 28365205 (2025-11-07T03:39:47Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Gambar pada artikel ini bersumber dari Wikimedia Commons dan mengikuti ketentuan lisensi masing-masing berkas. Mohon gunakan konten dan media secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.


== Sumber dan atribusi ==
<!-- WIKI_UNISSULA_PRESENTATION_V4 -->
 
Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=Algoritma+Floyd-Warshall&oldid=28365205 Wikipedia bahasa Indonesia], revisi 28365205 (2025-11-07T03:39:47Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.

Revisi terkini sejak 23 Agustus 2026 04.08

Masalah-Algoritma-Floyd-Warshall

Algoritma Floyd-Warshall adalah algoritma untuk mencari lintasan terpendek pada sebuah graf berbobot dengan bobot positif atau negatif (namun tidak memiliki siklus negatif).

Sejarah

Algoritma Floyd-Warshall merupakan sebuah contoh penerapan dari pemrograman dinamis yang diperkenalkan oleh Robert Floyd pada tahun 1962. Namun, pada dasarnya memiliki kesamaan dengan algoritma yang pernah diperkenalkan sebelumnya oleh Bernard Roy pada tahun 1959 dan juga Stephen Warshall pada 1962.

Algoritma Floyd Warshall juga dikenal dengan Algoritma Floyd, Algoritma Roy-Warshall, Algoritma Roy-Floyd, dan algoritma WFI.

Algoritma

Algoritma Floyd-Warshall memiliki input graf berarah dan berbobot (V,E), yang berupa daftar titik (node/vertex V) dan daftar sisi (edge E). Jumlah bobot sisi-sisi pada sebuah jalur adalah bobot jalur tersebut. Sisi pada E diperbolehkan memiliki bobot negatif, akan tetapi tidak diperbolehkan memiliki siklus dengan bobot negatif. Algoritma ini menghitung bobot terkecil dari semua jalur yang menghubungkan sebuah pasangan titik, dan melakukannya sekaligus untuk semua pasangan titik. Algoritma ini berjalan dengan waktu Θ(|V|3).

Dasar algoritma ini adalah observasi berikut:

--belum diterjemahkan—Implementasi algoritma ini dalam pseudocode:

(Graf direpresentasikan sebagai matrix keterhubungan, yang isinya ialah bobot/jarak sisi yang menghubungkan tiap pasangan titik, dilambangkan dengan indeks baris dan kolom) (Ketiadaan sisi yang menghubungkan sebuah pasangan dilambangkan dengan Tak-hingga)


 function fw(int[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] < Tak-hingga
                sebelum[i,j]:= i
    // Perulangan utama pada algoritma
    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]
    return jarak
}

Aplikasi dan Generalisasi

  • Jalur terpendek dalam graf berarah (Algoritma Floyd).
  • Perhitungan cepat untuk menemukan rute terpendek dalam jaringan.

Implementasi

Pranala luar

Sumber dan atribusi

Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 28365205 (2025-11-07T03:39:47Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Gambar pada artikel ini bersumber dari Wikimedia Commons dan mengikuti ketentuan lisensi masing-masing berkas. Mohon gunakan konten dan media secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.