MINIMUM
ALGORITMA KRUSKAL
ALGORITMA PRIM
Graf berlabel (weighted graph) adalah suatu graf tanpa garis paralel dimana setiap garisnya
berhubungan dengan suatu bilangan riil tak negarif yang menyatakan bobot garis tersebut.
Bobot garis e biasanya diberi symbol w(e). Jumlah bobot semua garis disebut Total Bobot.
Matriks yang bersesuaian dengan graf berlabel G adalah matrik hubung A=(𝑎𝑖𝑗 ) dengan 𝑎𝑖𝑗
= bobot garis yang menghubungkan titik 𝑣𝑖 dengan titik 𝑣𝑗 . Jika titik 𝑣𝑖 tidak berhubungan lan
gsung dengan titik 𝑣𝑗 , maka 𝑎𝑖𝑗 = ∞, dan 𝑎𝑖𝑗 = 0 jika 𝑖 = 𝑗.
Pohon Rentang Minimum
Aplikasi yang sering dipakai dalam graf berlabel adalah mencari pohon
rentang dengan total bobot seminimum mungkin (sering disebut pohon
rentang minimum).
Pohon Rentang Minimum
Contoh
Garis Kota yang dihubungkan Biaya per satuan
𝑒4 𝑣2 - 𝑣3 3
Dalam suatu provinsi, ada 8 kota 𝑒7 𝑣4 - 𝑣6 4
𝑒2 𝑣1 - 𝑣7 5
( 𝑣1 , 𝑣2 , … … , 𝑣8 ) yang akan dihubungkan 𝑒8 𝑣3 - 𝑣4 5
𝑒9 𝑣3 - 𝑣5 5
dengan jaringan listrik. Biaya pemasangan jari 𝑒1 𝑣1 - 𝑣2 15
𝑒3 𝑣1 - 𝑣4 15
ngan listrik yang mungkin dibuat antra 2 kota 𝑒10 𝑣6 - 𝑣8 15
𝑒5 𝑣7 - 𝑣8 15
adalah sebagai berikut :
𝑒11 𝑣5 - 𝑣6 15
𝑒6 𝑣6 - 𝑣7 18
b. Matriks hubung untuk menyatakan graf berlabel pada Gambar 8.58 adalah matriks A=
(𝑎𝑖𝑗 ) dengan 𝑎𝑖𝑗 =
• Jarak titik 𝑣𝑖 dengan 𝑣𝑗 jika ada garis yang menghubungkan titik 𝑣𝑖 dengan 𝑣𝑗 .
• jika tidak ada garis yang menghubungkan titik 𝑣𝑖 dengan 𝑣𝑗 .
• 0 jika i = j.
𝑣1 𝑣2 𝑣3 𝑣4 𝑣5 𝑣6 𝑣7 𝑣8
𝑣1 0 15 15 5
𝑣2 15 0 3
𝑣3 3 0 5 5
𝑣 15 5 0 4
A = 𝑣4
5 5 0 15
𝑣6 4 15 0 18 15
𝑣7 5 18 0 15
𝑣8 15 15 0
Pohon Rentang Minimum
Pada tahun 1956, Kruskal dan Prim yang bekerja secara terpisah, masing-
masing berhasil menyusun algoritma untuk membuat pohon rentang
minimum secara efisien.
Algoritma Kruskal
Untuk mencari pohon rentang minimum dari graf G dengan algoritma
yang ditemukan Kruskal, mula-mula semua garis dalam G diurutkan
berdasarkan bobotnya dari kecil ke besar.
Kemudian, pilih garis dengan bobot terkecil diantara garis-garis sisanya.
Pada setiap langkah, dipilih garis dengan bobot terkecil, tetapi tidak
membentuk loop dengan garis-garis yang sudah dipilih terdahulu.
Algoritma Kruskal
Misalkan G adalah graf mula-mula dengan n titik, T adalah Pohon Rentang
Minimum.
E adalah himpunan semua garis G.
Secara formal, algoritma yang ditemukan Kruskal dapat dinyatakan sebagai
berikut :
Algoritma Kruskal
1. Isi T dengan semua titik-titik g tanpa garis
2. m = 0
3. Selama m < (n-1) lakukan :
a. Tentukan garis e ∈ E dengan bobot minimum. Jika ada beberapa e
dengan sifat tersebut, pilih salah satu secara sembarang
b. Hapus e dari E
c. jika e ditambahkan ke T mengahsilkan sirkuit maka
i. Tambahkan e ke T
ii. m = m + 1
Algoritma Kruskal
Contoh:
Misalkan dari 4 garis yang meimiliki bobot sisanya adalah 15, dipilih garis e3.
Jika garis e3 ditambahkan pada T, maka akan membentuk sirkuit v1 v2 v3 v4 v1.
Dengan demikan, garis e3 tidak boleh dipilih. Selanjutnya, ada 3 garis yang
memiliki bobot terkecil (=15) lainnya, misalkan dipilih garis e10 Dengan graf
penambahan garis e10, maka T menjadi graf seperti :
Algoritma Kruskal
Penyelesaian
Algoritma Kruskal
Penyelesaian
Misalkan G adalah graf mula-mula seperti yang tampak pada Gambar 8.58, dan T adalah
pohon rentang minimum yang akan dibuat. Mula-mula V(T) = {𝑣1 } dan E(T) = { }.
Pada iterasi pertama, pilih garis 𝑒𝑖 ∈ E(G) dan 𝑒𝑖 ∉ E(T) yang berhubungan dengan 𝑣1
dengan bobot terkecil. Ada 3 garis yang berhubungan dengan 𝑣, masing-masing garis 𝑒1 (
dengan bobot 15), 𝑒2 (bobot 5) dan 𝑒3 (bobot 15). Pilih garis dengan bobot terkecil, yaitu
𝑒2 . Tambahkan 𝑒2 ke E(T) dan titik ujung 𝑒2 (= 𝑣7 ) ke V(T).
Sekarang, V(T) = {𝒗𝟏 , 𝒗𝟕 } dan E(T) = {𝒆𝟐 }.
Algoritma Prim
Penyelesaian
Pada iterasi kedua, pilih garis 𝑒𝑗 ∈ E(G) dan 𝑒𝑗 ∉ E(T) yang berhubungan dengan titik-titik d
alam V(T) dengan bobot terkecil. Garis-garis di luar E(T) yang berhubungan dengan titik-titik
dalam V(T) adalah 𝑒1 (dengan bobot 15), 𝑒3 (bobot 15) dan 𝑒5 (bobot 15) dan 𝑒6 (bobot
18). Ada 3 garis dengan bobot terkecil yang sama, yaitu 15. Pilih salah satu sembarang, misal
𝑒1 . Tambahkan 𝑒1 ke E(T) dan titik ujung 𝑒1 (= 𝑣2 ) ke V(T).
Sekarang, V(T) = {𝒗𝟏 , 𝒗𝟕 , 𝒗𝟐 } dan E(T) = {𝒆𝟐 , 𝒆𝟏 }.
Proses iterasi yang sama diulang-ulang hingga V(T) memuat semua titik dalam G (atau
jumlah iterasi adalah (n-1), dengan n adalah jumlah titik dalam G). didapatkan hasil seba
gai berikut (angka di dalam kurung pada kolom kedua menyatakan bobot garis yang terpilih):
Algoritma Prim
Penyelesaian