Anda di halaman 1dari 16

GRAF BERLABEL

Hubungan antara titik-titik dalam graf kadang perlu diperjelas. Hubungannya tidak
cukup hanya menunjukkan titik-titik mana yang berhubungan langsung, tetapi juga seberapa
kuatlah hubungan itu. Sebagai contoh, andaikata suatu graf menyatakan “peta,’ suatu daerah.
Titik-titik graf menyatakan kota-kota di daerah tersebut. Garis-garis dalam graf menyatakan
jalan yang menghubungkan kota-kota tersebut. Informasi tentang peta daerah sering kali perlu
diperjelas dengan mencantumkan juga jarak (yang dinyatakan dengan angka pada garisnya)
antara 2 kota yang berhubungan. Informasi tentang jarak itu dibutuhkain karena dalam graf
letak titik dan panang garìsnya tidak menyatakan jarak 2 kota yang sebenamya seperti halnya
dengan peta. Jadi, setiap garis dalam graf berhubungan dengan suatu label yang menyatakan
bobot garis tersebut.
Dalam aplikasinya bobot suatu garis lebih tepat dibaca sebagai “jarak” “biaya”,
“panjang”, “kapasitas”, dan lain-lain. Label suatu garis dapat diberikan pada graf berarah
maupun tidak berarah. Jika diberikan pada graf tak berarah, maka graf nya disebut graf
berlabel.Sedangkan jika diberikan pada graf berarah, maka graf nya disebut graf berarah
berlabel

Pohon Rentang Minimum

Definisi 8.26
Graf Berlabel (weighted graph) adalah suatu graf tanpa garis pararel di mana setiap garisnya
berhubungan dengan suatu bilangan riil tak negatif yang menyatakan bobot garis tersebut.
Bobot garis e biasanya diberi simbol w(e). Jumlah bobot semua garis disebut Total Bobot.

Matriks yang bersesuaian dengan graf berlabel G adalah matrik hubung A = (a ij) dengan ajj =
bobot garis yang menghubungkan titik vi dengan titik vj. Jika titik vi tidak berhubungan
langsung dengan titik vj, maka aij = ∞, dan aij = 0 jika i =j.

Contoh 8.40
Dalam suatu propinsi, ada 8 kota (v1, v2, ..., v8) yang akan dihubungkan dengan jaringan listrik.
Biaya pemasangan jaringan listrik yang mungkin dibuat antara 2 kota adalah sebagai berikut:
Garis Kota yang dihubungkan Biaya per satuan
e4 V2-V3 3
e7 V4-V6 4
e2 V1-V7 5
e8 V3-V4 5
e9 V3-V5 5
e1 V1-V2 15
e3 V1-V4 15
e10 V6-V8 15
e5 V7-V8 15
e11 V5-V6 15
e6 V6-V7 18

a. Nyatakan masalah tersebut dalam suatu graf berbabel.


b. Buatlah matriks hubung yang sesuai untuk menyatakan masalah tersebut.

Penyelesaian
a. Graf berlabel untuk menyatakan jaringan listrik di 8 kota digambarkan pada Gambar
8.58. Angka dalam kurung menyatakan bobot garis yang bersangkutan. Bobot tersebut
menyatakan biaya pengadaan jaringan listrik per satuan.

Gambar 8.58
.
b. Matriks hubung untuk menyatakan graf berlabel pada Gambar 8.58 adalah matrik A =
(aij) dengan ajj =
 Jarak titik vi dengan vi jika ada garis yang menghubungkan titik vi dengan titik vj.
 ∞ jika tidak ada garis yang menghubungkan titik vi dengan vj
 O jika i=j.

Dalam program komputer, sel dengan harga ∞ diisi dengan suatu bilangan yang harganya jauh
lebih besar dibandingkan dengan harga elemen-elemen yang bukan ∞.

Aplikasi yang sering dipakai dalam graf berlabel adalah mencari pohon rentang dengan
total bobot seminimum mungkin (sering disebut pohon rentang minimum). Dalam Contoh
8.39, jika semua jaringan listrik dibuat (sehingga jaringannya seperti pada Gambar 8.58), maka
biaya akan boros. Beberapa 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. Sebagai contoh, jalur yang menghubungkan v6 dan v7 secara langsung (garis
e6) dapat dihapus. Dengan penghapusan jalur tersebut, v6 dan v7 tetap terhubung melalui v8.
Masalahnya adalah mencari jalur yang menghubungkan semua kota (dengan menghapus
beberapa garis dalam graf) 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 Pada tahun 1956,
Kruskal dan Prim yang bekerja secara terpisah, masing-masing berhasil menyusun algoritma
untuk membuat pohon rentang minimum secara efisien.
Contoh:

Perhatikan Graf berlabel di atas. Graf tersebut merepresentasikan desa-desa yang ada di
Kecamatan Gambut Kabupaten Banjar beserta jarak antar desa nya.
Misalkan:
V1 : Kayu Bawang
V2 : Malintang Baru
V3 : Malintang Lama
V4 : Guntung Papuyu
V5 : Guntung Ujung
V6 : Babirik
V7 : Banyu Hirang
Nyatakan Graf berlabel tersebut kedalam matriks!
Penyelesaian:
Matriks hubung untuk menyatakan graf berlabel pada Gambar adalah matrik A = (a ij) dengan
ajj =
 Jarak titik vi dengan vi jika ada garis yang menghubungkan titik vi dengan titik vj.
 ∞ jika tidak ada garis yang menghubungkan titik vi dengan vj
 0 jika i=j.
𝑣1 𝑣2 𝑣3 𝑣4 𝑣5 𝑣6 𝑣7
0 2 ∞ ∞ ∞ ∞ ∞
𝑣1 2 0 4 ∞ ∞ ∞ ∞
𝑣2 ∞ 4 0 5 ∞ ∞ ∞
𝑣3 ∞ ∞ 5 0 7 ∞ ∞
𝑣4 ∞ ∞ ∞ 7 0 10 ∞
𝑣5 ∞ ∞ ∞ ∞ 10 0 3
𝑣6 ∞ ∞ ∞ ∞ ∞ 3 0
𝑣7
1. 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 di antara garis-garis sisanya. Pada setiap langkah,
dipilih garis dengan bobot terkecil, tetapi tidak membentuk loop dengan garis-garis yang sudah
dipilih terdahulu. 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
(i) Isi T dengan semua titik-titik G tanpa garis.
(ii) m=0
(iii) 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 tidak menghasilkan sirkuit, maka
i. tambahkan e ke T
ii. m = m + 1

Contoh 8.41
Carilah pohon rentang minimum Contoh 8.40 menggunakan algoritma Kruskal. Berapa bobot
minimum totalnya?

Penyelesaian
G mula-mula tampak pada Gambar 8.58. Himpunan semua garis dalam G (= E) dalam keadaan
urut (kecil ke besar) tampak pada Contoh 8.40. Ambil garis dalam E dengan bobot minimum.
Diperoleh garis e4 dengan bobot = 3. Pohon rentang T yang mula-mula tanpa garis menjadi
graf seperti Gambar 8.59.

Gambar 8.59
Dalam iterasi selanjutnya ditambahkan garis satu per satu pada T selama penambahan garis
tersebut tidak membentuk loop dengan garis yang sudah ada sebelumnya. Tambahkan garis e7
(bobot 4).

Gambar 8.60

Selanjutnya, ada 3 garis dengan bobot terkecil, yaitu 𝑒2 , 𝑒8 , dan 𝑒9 yang semuanya memiliki
bobot = 5. Pilih sembarang garis, misalnya berturut-turut 𝑒2 , 𝑒8 , dan 𝑒9 . Oleh karena
penambahan ketiga garis tersebut tidak menghasilkan loop, maka ketiganya ditambahkan
dalam graf T. didapatkan graf pada Gambar 8.60. Selanjutnya, ada 5 garis yang memiliki bobot
sama, yaitu 15. Pilih salah satu sembarang, misal 𝑒1 . Dengan penambahan garis 𝑒1 , maka T
menjadi graf seperti pada Gambar 8.61

Gambar 8.61

Misalkan dari 4 garis yang memiliki bobot sisanya adalah 15, dipilih garis 𝑒3 . Jika garis 𝑒3
ditambahkan pada T, maka akan terbentuk loop 𝑣1 𝑣2 𝑣3 𝑣4 𝑣1 . Dengan demikian, garis 𝑒3 tidak
boleh dipilih. Selanjutnya, dari 3 garis yang memiliki bobot terkecil (=15) lainnya, misalkan
dipilih garis 𝑒10 . Dengan graf penambahan garis 𝑒10 , maka T menjadi graf seperti pada Gambar
8.62

Gambar 8.62

Oleh karena graf G terdiri dari 8 titik dan 7 garis, maka iterasi dihentikan dan T yang tampak
pada Gambar 8.62 adalah pohon rentang minimumnya.
𝐵𝑜𝑏𝑜𝑡 𝑡𝑜𝑡𝑎𝑙 = 3 + 4 + 5 + 5 + 5 + 15 + 15 = 52
Perhatikan bahwa mungkin ada beberapa pohon rentang minimum berbeda untuk suatu graf
tertentu. Akan tetapi, semua pohon rentang minimum memiliki total bobot yang sama. Seperti
pada Contoh 8.40, jika pada langkah terakhir ditambahkan garis 𝑒5 (bukan 𝑒10 seperti pada
penyelesaian Contoh 8.40), maka didapatkan pohon rentang minimum yang berbeda, tetapi
dengan bobot total yang sama, yaitu 52.

Contoh
Carilah pohon rentang minimum dibawah ini menggunakan algoritma Kruskal. Berapa bobot
minimum totalnya?

Keterangan:
A = Masjid Jami
B = Jembatan Sei Alalak
C = Hotel Pesona Banjarmasin
D = ULM
E = Makan Sultan Suriansyah
F = Kawasan Wisata Pasar Terapung
G = SMAN 8 Banjarmasin
H = Princess Kacamata
I = Chicken Strip Banjarmasin
Penyelesaian
Data yang diperoleh dari G
Garis Tempat Bobot
e1 (A,I) 15
e2 (I,B) 5
e3 (G,H) 10
e4 (B,C) 5
e5 (A,F) 15
e6 (F,E) 13
e7 (E,H) 4
e8 (H,C) 5
e9 (C,D) 7
e10 (I,C) 10
e11 (E,D) 15
e12 (A,G) 2

Lalu setelah itu kita urutkan dari yang bilangan terkecil ke terbesar
Garis Tempat Bobot
e12 (A,G) 2
e7 (E,H) 4
e4 (B,C) 5
e8 (H,C) 5
e2 (I,B) 5
e9 (C,D) 7
e10 (I,C) 10
e3 (G,H) 10
e6 (F,E) 13
e1 (A,I) 15
e5 (A,F) 15
e11 (E,D) 15
*ps :
Garis yang berwarna merah adalah garis yang tidak dimasukkan
Garis yang berwarna abu adalah garis yang dipakai
Bobot yang diambil adalah bobot yang hanya dicoret dengan garis
8.6.1.2 Algoritma Prim
Metode lain untuk mencari pohon rentang minimum ditemukan oleh Robert C.Prim. Berbeda
dengan algoritma Kruskal yang dimulai dengan graf tanpa garis, algoritma Prim dimulai dari
graf yang kosong sama sekali. Untuk mencari pohon rentang minimum T dari Graf G dengan
algoritma Prim, mula-mula dipilih satu titik sembarang (misal 𝑣1 ). Kemudian ditambahkan satu
garis yang berhubungan dengan 𝑣1 dengan bobot yang paling minimum (misal 𝑒1 ) dan titik
ujung lainnya ke T sehingga T terdiri dari sebuah garis 𝑒1 dan 2 buah titik-titik ujung garis 𝑒1
(salah satunya adalah 𝑣1 ). Pada setiap langkah selanjutnya, dipilih sebuah garis dalam E(G)
yang bukan anggota E(T) dengan sifat:
a. Garis tersebut berhubungan dengan salah satu titik ∈ V(T)
b. Garis tersebut memiliki bobot yang paling kecil.
Langkah tersebut diulang-ulang hingga diperoleh (n-1) garis dalam E(T) (n adalah jumlah titik
dalam G).
Misalkan G adalah graf berlabel dengan n titik dan T adalah Pohon Rentang Minimum yang
akan dibentuk (mula-mula kosong).
Secara formal, algoritma Prim adalah sebagai berikut:
0. Inisialisasi: mula-mula T adalah graf kosong.
1. Ambil sembarang v ∈ V(G). Masukkan v ke dalam V(T)
2. V(G) = V(G) – {v}
3. Untuk i = 1, 2, …, n-1, lakukan:
a. Pilihlah garis e ∈ E(G) dan e ∉ E(T) dengan syarat:
(i) e berhubungan dengan satu titik dalam T
(ii) e memiliki bobot terkecil dibandingkan dengan semua garis yang
berhubungan dengan titik-titik dalam T. Misalkan w adalah titik ujung e
yang tidak berada dalam T
b. tambahkan e ke E(T) dan w ke V(T)
c. V(G) = V(G) – {w}
Algoritma Prim mungkin menghasilkan pohon rentang yang berbeda dengan pohon rentang
yang dihasilkan melalui algoritma Kruskal. Akan tetapi, pohon rentang yang dihasilkan kedua
algoritma tersebut merupakan pohon rentang minimum yang memiliki jumlah bobot yang
sama.
Contoh 8.42
Gunakan algoritma Prim untuk mencari pohon rentang minimum Contoh 8.40, dimulai dari
titik 𝑣1 .

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 gais yang berhubungan dengan v, 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 ujungnya 𝑒2 (= 𝑣7 ) ke V(T).
Sekarang, V(T) = {𝑣1 , 𝑣7 } dan E(T) = {𝑒2 }
Pada iterasi kedua, pilih garis 𝑒𝑖 ∈ E(G) dan 𝑒𝑖 ∉ E(T) yang berhubungan dengan titik-titik
dalam V(T) dengan bobot terkecil. Garis-garis diluar E(T) yang berhubungan dengan titik-titik
dalam V(T) adalah 𝑒1 (bobot 15), 𝑒3 (bobot 15), 𝑒5 (bobot 15), dan 𝑒6 (bobot 18). Ada 3 garis
dengan bobot terkecil yang sama, yaitu 15. Pilih salah satu sembarang, misalnya 𝑒1 .
Tambahkan 𝑒1 ke E(T) dan titik ujung 𝑒1 (= 𝑣2 ) ke V(T).
Sekarang, V(T) = {𝑣1 , 𝑣7 , 𝑣2 } dan E(T) = {𝑒2 , 𝑒1 }
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 sebagai berikut
(angka di dalam kurung pada kolom kedua menyatakan bobot garis yang terpilih):
Iterasi Garis yang terpilih Titik yang ditambahkan Keterangan
Mula-mula - 𝑣1 -
1 𝑒2 (5) 𝑣7 -
2 𝑒1 (15) 𝑣2 Pilih antara 𝑒1 , 𝑒3 , 𝑒5
3 𝑒4 (3) 𝑣3 -
4 𝑒8 (5) 𝑣4 Pilih antara 𝑒8 dan 𝑒9
5 𝑒7 (4) 𝑣6 -
6 𝑒9 (5) 𝑣5 -
7 𝑒10 (15) 𝑣8 Pilih antara 𝑒5 dan 𝑒10

Pohon rentang yang terbentuk setelah semua iterasi dilalui adalah pohon rentang minimum
yang sama dengan pohon rentang minimum hasil algoritma Kruskal yang tampak pada Gambar
8.62. Namun secara umum, pohon rentang yang dihasilkan oleh kedua metode tersebut berbeda
meskipun bobot totalnya sama.

Contoh

Anda mungkin juga menyukai