minimum mempunyai terapan yang luas dalam praktek. Misalkan Pemerintah akan membangun jalur kereta api yang menghubungkan sejumlah kota, membangun jalur
rel kereta api biaya nya mahal, karena itu pembangunan jalur ini tidak perlu menghubungkan langsung dua buah kota, tetapi cukup membangun jalur kereta
seperti pohon merentang. Karena di dalam graf mungkin saja terdapat lebih dari satu pohon merentang, harus dicari pohon merentang yang mempunyai jumlah jarak
terpendek, dengan kata lain harus dicari pohon merentang minimum.
d
2.8 Aplikasi Minimum Spanning Tree
Aplikasi yang sering dipakai dalam graf berlabel adalah mencari pohon rentang dengan total bobot seminimum mungkin atau disebut pohon merentang minimum.
Jika semua jaringan listrik dibuat terlalu banyak maka biaya akan boros. Beberapa
15 20
30 55
5 35
10 50
5 40
20
10 15
b e
f g
h c
c h
e f
g 25
25 30
a
45
Gambar 2.2 a Graf yang menyatakan jaringan jalur rel kereta api. Bobot pada tiap sisi
menyatakan panjang rel kereta api x 100 km b Pohon merentang yang mempunyai jumlah jarak minimum
Universitas Sumatera Utara
jalur yang menghubungkan 2 kota secara langsung tidak perlu dibuat karena kota- kota tersebut tetap dapat teraliri listrik secara tidak langsung, yaitu dengan melalui
kota lain sedemikian hingga total biaya pemasangan jaringan listrik seminimum mungkin. Atau dengan kata lain, mencari pohon rentang dengan total bobot
seminimum mungkin. Cara yang paling sederhana adalah dengan mendaftarkan semua pohon rentang yang mungkin dibuat dan menghitung total bobot tiap-tiap
pohon rentang. Selanjutnya dipilih pohon rentang dengan total bobot yang paling kecil. Metode itu tidak efisien, terutama pada graf yang cukup besar karena terdapat
banyak sekali pohon rentang yang dapat dibuat.
2.9 Algoritma Kruskal
Algoritma Kruskal adalah algoritma dalam teori graph yang menemukan suatu pohon rentang minimum untuk terhubung dalam graf berbobot . Ini berarti menemukan
subset dari tepi yang membentuk sebuah pohon yang mencakup setiap titik , di mana berat total dari semua tepi di atas pohon diminimalkan.. Jika grafik tidak terhubung,
maka menemukan hutan rentang minimum pohon rentang minimum untuk setiap komponen terhubung . Algoritma Kruskal adalah contoh dari algoritma rakus .
Algoritma ini pertama kali muncul dalam Prosiding American Mathematical Society , hal 1956. Algoritma lain untuk masalah ini termasuk Algoritma Prim , Reverse-
Hapus algoritma , dan algoritma Borůvkas.
Pada Algoritma Kruskal, sisi-sisi di dalam graf diurut terlebih dahulu berdasarkan bobotnya dari kecil ke besar. Sisi yang dimasukkan ke dalam himpunan
Universitas Sumatera Utara
T adalah sisi graf G sedemikian sehingga T adalah pohon. Pada keadaan awal, sisi- sisi sudah diurut berdasarkan bobot membentuk hutanforest, masing-masing pohon
di hutan hanya berupa satu buah simpul. Hutan tersebut dinamakan hutan merentang spanning forest. Sisi dari graf G ditambahkan ke T jika ia tidak membentuk siklus
di T. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. Sisi-sisi dari graf sudah diurut menaik berdasarkan bobotnya, yaitu :
1. T masih kosong 2. Pilih sisi
e
dengan bobot minimum yang tidak membentuk sirkuit di T. Masukkan
e
ke dalam T. 3. Ulangi langkah 2 sebanyak n-1 kali.
Contoh 2.1
Carilah pohon merentang minimumnya dengan algoritma Kruskal.
Penyelesaian: Sisi-sisi graf diurut menaik berdasarkan bobotnya:
Langkah-langkah pembentukan pohon merentang minimum diperlihatkan pada Tabel 2.1.
Bobot pohon merentang minimum ini adalah 10 + 25 + 15 + 20 + 25 = 105 Sisi
1,2 3,6
4,6 2,6
1,4 3,5
2,5 1,5
2,3 5,6
Bobot 10
15 20
25 30
35 40
45 50
55
Universitas Sumatera Utara
Langkah Sisi
Bobot Pohon Merentang
1 1,2 10
2 3,6 15
3 4,6 20
4 2,6 25
5 1,4 30
6 3,5 35
Tabel 2.1 Pembentukan pohon merentang minimum dengan algoritma Kruskal
1 2
3 4
5 6
1 2
1 2
3 4 5
6
1 2
3 4
5
6
1 3
2 5
4 6
1 2
3 5
4 6
ditolak
Universitas Sumatera Utara
Ada satu lagi algoritma yang membangun pohon merentang minimum yang hampir mirip dengan algoritma Kruskal yaitu algoritma Prim. Dibawah ini akan dijelaskan
tentang algoritma Prim.
2.10 Algoritma Prim