Graf POHON
Dalam ilmu komputer, graf pohon (atau sering disebut pohon / tree) berperan penting dalam
membantu memahami struktur diskrit (graf) terutama dalam pemodelan struktur diskrit dan
pengembangan algoritma pengolah informasi. Mereka memerankan sebuah pusat pembicara-
an dalam perancangan dan analisis jejaring terhubung.
Sebuah graf hutan (forest) ialah sebuah graf tak terhubung dimana semua komponennya
berupa graf pohon. Beberapa graf pohon dan graf yang bukan graf pohon diperlihatkan
dalam Gambar-6.1. Graf (a) dan (b) adalah graf pohon karena tak berarah, terhubung dan
tidak memuat sirkuit; sedangkan graf (c) bukan sebuah graf pohon karena memuat sebuah
sirkuit c-e-g-f-c.
a b a b a b
c d c d c d
e f e f e f
g g g
Definisi-6.2. Dalam sebuah pohon tak berarah, sebuah daun (leaf) adalah sebuah verteks
yang berderajat 1.
Proposisi-6.1. Setiap pohon dengan sedikitnya satu edge mempunyai sedikitnya dua daun.
Bukti.
Untuk membuktikan ini kita lakukan induksi terhadap banyaknya edge.
Misalkan S(n) menyatakan banyaknya daun dari graf dengan n edge. Maka harus dibukti-
kan bahwa untuk maka
Basis induksi
Untuk n = 1 maka S(n) = 2 benar karena tepat sebuah edge insident dengan dua verteks
yang berderajat satu.
Hipotesa induksi
Andaikan untuk n = k, benar.
Step induksi
Untuk n = k + 1, penambahan sebuah edge pada sebuah graf pohon menghasilkan dua hal
yang mungkin yaitu: (i) sebuah edge yang insiden dengan sebuah cabang dalam graf pohon
dan (ii) sebuah edge yang insiden dengan sebuah daun dalam graf pohon. Untuk kasus yang
pertama, akan terjadi penambahan sebuah verteks berderajat 1 yang berarti penambahan
sebuah daun sehingga Untuk kasus yang kedua, tidak menye-
babkan terjadinya perubahan banyaknya verteks berderjat 1 yang berarti banyaknya daun
tetap sehingga Berarti step induksi benar. Karena step induksi benar
maka Proposisi-6.1 benar.
[Terbukti]
Corollary-6.2. Jika derajat dari setiap verteks dalam sebuah graf adalah sedikitnya 2, maka
graf itu harus memuat sebuah sirkel (cycle).
Bukti.
Disini kita akan lakukan induksi terhadap banyaknya verteks.
Basis induksi
Sebuah graf pohon yang berupa sebuah verteks adalah graf pohon trivial, dengan tanpa edge.
Hipotesa induksi
Asumsikan untuk suatu bilangan . Setiap graf pohon dengan k verteks mempunyai
tepat k – 1 edge.
Step induks
Perhatikan sambarang graf pohon T dengan k+1 verteks. Dengan Proposisi-6.1, T memuat
sebuah daun, katakan v. Kemudian graf T – v adalah asiklik, karena penghapusan bagian
dari sebuah graf asiklik tidak dapat mengkreasi sebuah sirkel. Selanjutnya, T-v terhubung,
karena verteks v mempunyai deratat 1 dalam T. Jadi, T-v adalah sebuah graf pohon dengan
k verteks, dan dengan hipotesa induksi T-v mempunyai k-1 edge. Tetapi, karena deg(v)=1,
dipenuhi bahwa T-v mempunyai satu edge lebih sedikit dari T. Karenanya, T mempunyai
k edge, yang melengkapi pembuktian.
[Terbukti]
Proposisi-6.5. Jika G adalah sebuah graf sederhana dengan n verteks dan k komponen,
maka
Bukti.
1-5 Karena T sebuah pohon maka T terhubung dan tidak memuat sirkel. Andaikan terda-
pat dua verteks dalam T yang dihubungkan oleh lebih dari satu lintasan, maka terdapat
sirkel dalam T yang berarti T bukan sebuah pohon. Pengandaian diingkar, jadi setiap
dua verteks dalam T dihubungkan tepat satu lintasan .
Pembuktian ekivalensi yang lain dalam Teorema-6.6 untuk latihan bagi para pembaca.
Teorema-6.7. Sebuah graf tak berarah adalah sebuah pohon jika dan hanya jika dapat di-
temukan sebuah lintasan tunggal antara sebarang dua verteksnya.
Contoh-6.1. Diberikan sebuah pohon T mempunyai dua verteks berderajat 2, sebuah ver-
teks berderajat 3, dan tiga verteks berderajat 4. Berapakah daun yang dimiliki oleh T ?
Pemecahan.
Misalkan T mempunyai k daun, maka:
Banyaknya verteks di T : v = k + 2 +1 +3 = k + 6
Jumlah derajat di T : d = k.1 + 2.2 + 1.3 + 3.4 = k + 19
Banyaknya edge di T : e = d/2 = (k + 1)/2
Karena T adalah sebuah pohon, maka e = v – 1. Akibatnya (k + 1)/2 = k + 5.
Jadi k = 9, (berarti banyaknya daun di pohon T adalah 9 daun).
Definisi-6.3. Suatu graf berarah disebut sebuah pohon berarah (directed tree), apabila
setelah arah dari setiap edge-nya diabaikan / dihapus graf tersebut merupakan sebuah pohon.
Disini, verteks dengan derajat keluar (out degree) 0 disebut sebuah daun (leaf) dan verteks
dengan derajat keluar tak 0 disebut cabang (branch). Sebagai contoh dari sebuah graf po-
hon berarah diperlihatkan dalam Gambar-6.2.
a e h
c d f
b g
Dalam graf pohon berarah (Gambar-6.2), verteks g dan h adalah daun sedangkan verteks
a, b, c, d, e, dan f adalah cabang.
Sebuah contoh untuk pohon berakar berarah diperlihatkan oleh Gambar-6.3. Verteks a adalah
akar pohon; verteks b dan c adalah cabang; sedangkan verteks d, e, f, g, dan h adalah daun.
b c
d e f g h
Contoh-6.2. Diketahui sebuah barisan bilangan bulat yang berlainan semua 4, 1, 13, 7, 2, 8.
Tentukan semua subbarisan monoton naik yang terpanjang dalam barisan tersebut.
Pemecahan.
Kita gambarkan semua barisan monoton naik dalam barisan tersebut kedalam struktur sebuah
pohon sebagaimana diperlihatkan oleh Gambar-6.4 berikut
4 1 13 7 2
13 7 13 7 2 8 8
8 8
Dalam Gambar-6.4 mudah dilihat bahwa subbarisan monoton naik terpanjang dalam barisan bilangan
diatas adalah barisan 4, 7, 8 dan 1, 7, 8.
Definisi-6.5. Sebuah pohon terurut (ordered rooted tree) ialah sebuah rooted tree dimana
anakan (children) dari semua internal vertex-nya terurut. (Biasanya terurut dari kiri ke
kanan).
f g c
d b a e
b c d
a e b d
f g e
c f g
Kalimat
1 2 3
1 2 1 2
Ket.
Subyek Obyek Ket. Obyek
Subyek
Definisi-6.6. Sebuah pohon berakar disebut sebuah pohon m-ari (m-ary tree) jika setiap
internal vertex-nya mempunyai tidak lebih dari m children. Sebuah pohon disebut pohon
m-ari beraturan (regular m-ary tree) jika setiap internal vertex-nya mempunyai tepat m
children.
Definisi-6.7. Sebuah pohon m-ari beraturan disebut pohon m-ari beraturan penuh (full
regular m-ary tree) jika internal vertex dengan level l mempunyai tepat children.
Teorema-6.8. Sebuah full m-ary tree dengan i internal vertex memuat n = m.i + 1 verteks.
Sebuah m-ary tree dengan tinggi h adalah seimbang (balanced) jika semua leaf berada pada
level h atau h-1.
Corollary-6.11.
(i) Jika sebuah m-ary tree dengan tinggi h mempunyai l leaf, maka h log m l .
(ii) Jika m-ary tree adalah full dan balanced, maka h log m l .
Definisi-6.8. Sebuah pohon biner (binary tree) adalah sebuah pohon 2-ari terurut dimana
setiap anakan (child) diperuntukkan sebagai sebuah anakan kiri atau anakan kanan.
* e
+ d
a *
b c
Dalam sebuah ordered rooted binary tree jika sebuah internal vertex mempunyai dua
children, maka first child-nya disebut left child dan second child-nya disebut right child.
Definisi-6.9. Left (atau Right) subtree dari sebuah vertex v dalam sebuah pohon biner
adalah subpohon biner (binary subtree) yang merentang (spanning) anakan kiri (left child)
atau anakan kanan (right child) dari v dan semua keturunannya.
b c i
i
d e h h k l
f g j k l j m
Gambar-6.8. Sebuah pohon biner dan subpohon kiri dan kanan dari verteks c.
Teorema-6.12. Pohon biner beraturan dengan verteks lebih dari 2 mempunyai tepat satu
verteks berderajat 2 dan verteks yang lainnya berderajat 1 atau 3.
Teorema-6.13. Banyaknya verteks dalam sebuah pohon biner beraturan selalu ganjil.
Bukti.
Dalam sebuah graf, banyaknya verteks berderajat ganjil adalah genap sedangkan dalam
sebuah pohon biner beraturan setiap verteks berderajat ganjil kecuali akarnya berderajat 2.
Bila n adalah banyak verteks dalam pohon biner T, maka n-1 genap. Jadi n adalah ganjil.
[Terbukti]
Teorema-6.14. Jika p adalah banyak daun dalam sebuah pohon biner beraturan T dengan
n verteks, maka berlaku .
Teorema-6.15. Sebuah pohon biner lengkap (complete binary tree) dengan tinggi h mem-
punyai verteks.
Definisi-6.10. Sebuah pohon biner seimbang (balanced binary tree) ialah sebuah pohon bi-
ner dimana kedalaman subpohon kiri dan subpohon kanan dari setiap verteks internalnya
berbeda paling banyak 1.
Sebuah pohon biner dengan n daun disebut pohon biner seimbang, jika :
(i) berakibat d = m.
(ii) berakibat d = m atau d = m+1.
dimana : d panjang lintasan dari akar ke daun dan m bilangan bulat tak negatif.
Contoh pohon biner seimbang dan pohon biner tak seimbang diperlihatkan oleh Gambar-6.9.
Latihan 6.2
3. a) Berapa banyaknya pohon tak berakar dengan 3 verteks yang tak isomorfik ?
b) Berapa banyaknya pohon berakar dengan 4 verteks yang tak isomorfik ?
4. Perlihatkan bahwa sebuah graf sederhana adalah sebuah graf pohon jika dan hanya jika
terhubung, tetapi penghapusan dari sebarang edge-nya menghasilkan sebuah graf yang tak
terhubung.
5. Misalkan G sebuah graf sederhana dengan n verteks. Tunjukkan bahwa G adalah sebuah
pohon jika dan hanya jika terhubung dan mempunyai n-1 edge.
6. Yang manakah graf bipartisi lengkap, dimana m dan n bilangan bulat positif adalah
sebuah pohon.
8. a) Berapakah banyaknya cabang dari sebuah pohon 3-ari penuh dengan 1000 verteks.
b) Berapakah banyaknya daun dari sebuah pohon 3-ari penuh dengan 1000 verteks.
9. Berapakah banyaknya verteks dari sebuah pohon 5-ari penuh dengan 100 cabang.
10. Berapakah banyaknya verteks dari sebuah pohon biner penuh dengan 100 cabang.
11. Kerjakan salah satu: (i) Gambarkan sebuah pohon m-ari penuh dengan 76 daun dan tinggi
3, dimana m adalah sebuah bilangan bulat positif; atau (ii) Tunjukan bahwa tidak ada
pohon seperti itu.
12. Kerjakan salah satu: (i) Gambarkan sebuah pohon m-ari penuh dengan 84 daun dan tinggi
3, dimana m adalah sebuah bilangan bulat positif; atau (ii) Tunjukan bahwa tidak ada
pohon seperti itu.
14. Konstruksikan: (i) sebuah pohon biner lengkap dengan tinggi 4; dan (ii) sebuah pohon
3-ari lengkap dengan tinggi 3.
15. a) Berapa banyaknya verteks dari sebuah pohon m-ari lengkap dengan tinggi h ?
b) Berapa banyaknya daun dari sebuah pohon m-ari lengkap dengan tinggi h ?
16. Tunjukkan bahwa sebuah pohon m-ari penuh dan seimbang dengan tinggi h mempunyai
lebih dari daun.
b c d
e f g h i
j k l m
n 0 p
Contoh-6.4. Left pre-order dari sebuah struktur pohon T dalam Gambar-6.10 diatas adalah
daftar label h, i.
Post-Order Traversal
Definisi-6.13. Post-order traversal dari sebuah pohon biner T didefinisikan secara rekursif
sebagai berikut:
- Lakukan sebuah post-order traversal sub pohon sebelah kiri dari T,
- Lakukan sebuah post-order traversal sub pohon sebelah kanan dari T,
- Daftar (proses) akar dari T.
Contoh-6.5. Post-order dari sebuah struktur pohon T dalam Gambar-6.10 diatas adalah
Algoritma-6.3. Post-Order
Input : sebuah pohon biner;
Output : sebuah daftar verteks dalam post-order;
push akar kedalam stack;
While stack tidak kosong
If top(stack) tidak bertanda
Then tandai ia, dan push anakannya dari kanan ke kiri kedalam stack;
Else v := pop(stack);
Daftar v;
Teorema-6.17. Sebuah graf tak berarah adalah sebuah pohon jika dan hanya jika dapat di-
temukan sebuah lintasan tunggal antara sebarang dua verteksnya.
In-Order Traversal
Definisi-6.14. In-order traversal dari sebuah pohon biner T didefinisikan secara rekursif
sebagai berikut:
- Lakukan sebuah in-order traversal sub pohon sebelah kiri dari T,
- Daftar (proses) akar dari T,
- Lakukan sebuah in-order traversal sub pohon sebelah kiri dari T,
Contoh-6.6. In-order dari sebuah struktur pohon T dalam Gambar-6.10 diatas adalah
daftar label
Algoritma-6.4. In-Order
Input : sebuah pohon biner;
Output : sebuah daftar verteks dalam in-order;
push akar kedalam stack;
While stack tidak kosong
v := top(stack);
While v mempunyai sebuah anakan kiri
push leftchild( v) kedalam stack;
v := leftchild(v);
v := pop(stack);
Daftar v;
If v mempunyai sebuah anakan kanan
Then push rightchild(v) kedalam stack;
v := rightchild(v);
Else While stack tidak kosong v tidak mempunyai anakan kanan
v := pop(stack);
Daftar v;
If v mempunyai sebuah anakan kanan
push rightchild(v) kedalam stack;
v := rightchild(v);
Definisi-6.15. Sebuah himpunan prefiks (prefix set) ialah sebuah himpunan string dimana
tidak memuat anggota himpunan yang merupakan awalan (prefix) dari anggota yang lain.
Contoh-6.7.
a) Himpunan adalah sebuah himpunan prefiks biner.
b) Himpunan bukan merupakan sebuah himpunan prefiks, karena
terdapat anggota himpunan, yaitu: aa dan abb, yang secara berurutan merupakan pre-
fiks dari anggota himpunan yang lain, yaitu: aaa dan abba.
Definisi-6.16. Sebuah kode biner (binary code) dari sebuah himpunan kata (ward), W, ialah
sebuah penunjukkan sebagai simbol (atau makna yang lain) terhadap sekumpulan string
biner (bitstring) untuk setiap anggota himpunan, dimana masing-masing string biner dirujuk
sebagai sebuah kode kata (codeward) dalam W.
Definisi-6.17. Sebuah kode prefiks biner (binary prefix code) dari sebuah himpunan kata,
W, ialah sebuah kode biner dengan sifat-sifat bahwa tidak terdapat kode kata yang merupa-
kan sebuah prefiks (initial substring) dari kode kata yang lain.
Sebuah kode prefiks biner dari sebuah himpunan kata, W, dapat digambarkan sebagai sebuah
graf pohon biner dimana setiap anakan kiri diberikan kode “ 0 ”, anakan kanan diberikan
kode “ 1 “, dan setiap daunya merupakan kata dalam W.
Contoh-6.9. Misal diberikan sebuah himpunan kata W = { kita, sedang, menghadapi, ujian }.
a) Himpunan kode { 00 , 01 , 10 , 11 } merupa-
kan sebuah kode prefiks biner dari W.
b) Himpunan kode { 00 , 001 , 10 , 101 } bukan
merupakan sebuah kode prefiks biner dari W.
Grafik kode prefiks biner dari Contoh-6.9.(a) diperlihatkan pada Gambar-6.11. berikut.
0 1
0 1 0 1
0 1 0 1
c a
0 1 0 1
d e
0 1 0 1
b b
0 1 0 1
a e c d
(a) (b)
Gambar-6.12. Contoh kode prefiks biner dari {a(50), b(30), c(20), d(25), e(35)}.
Dari graf pada Gambar-6.12, maka kedalaman terboboti rata-rata untuk kode prefiks biner (a)
adalah
sedangkan untuk kode prefiks biner (b)
Pohon biner yang dihasilkan dengan Algoritma-6.5 disebut pohon Huffman (Huffman tree)
untuk daftar simbol dan prefix code yang berhubungan disebut Kode Huffman (Huffman
code).
Sebagai contoh, kode Huffman dari himpunan karakter A pada Contoh-6.10 adalah
{11 a, 00 b,100 c, 101 d, 01 e}, graf kode Huffman dari A diperlihatkan pada
Gambar-6.13. Disini kedalaman terboboti rata-ratanya adalah 73.
0 1
0 1 0 1
b e a
0 1
c d
Latihan 6.3
1. Yang manakah dari kode berikut ini adalah kode prefiks (prefix code), jelaskan:
a) a : 11, e : 00, t : 10, s : 01
b) a : 0, e : 1, t : 01, s : 001
c) a : 101, e : 11, t : 001, s : 011, n : 010
d) a : 010, e : 11, t : 011, s : 1011, n : 1001, i : 10101
4. Gunakan kode Huffman untuk encode simbol yang mempunyai frekwensi berikut ini :
a : 0.20, b : 0.10, c : 0.15, d : 0.25, e : 0.30. Berapakah rata-rata banyaknya bit yang di-
perlukan untuk encode sebuah karakter ?
5. Gunakan kode Huffman untuk encode simbol yang mempunyai frekwensi berikut ini :
A : 0.10, B : 0.25, C : 0.05, D : 0.15, E : 0.30, F : 0.07, G : 0.08. Berapakah rata-rata ba-
nyaknya bit yang diperlukan untuk encode sebuah karakter ?
6. Konstruksikan dua kode Huffman berbeda untuk symbol yang dilengkapi dengan frekwen-
si berikut: t : 0.2, u : 0.3, v : 0.2, w : 0.3.
d) notasi infix
13. Gambarkan pohon berakar-berarah yang berhubungan dengan setiap ekspresi aritmatika
yang dituliskan dalam notasi prefix berikut. Kemudian tuliskan masing-masing ekspresi
menggunakan notasi infix.
a) + * + - 5 3 2 1 4
b) +23–51
c) * / 9 3 + * 2 4 – 7 6
Definisi-6.20. Sebuah pohon dari suatu graf G adalah sebuah subgraf T dari G yang
berupa sebuah pohon.
Definisi-6.21. Sebuah pohon T disebut pohon perentang (spanning tree) dari graf ter-
hubung G, bila T adalah sebuah subgraf perentang dari graf G .
Contoh pohon dan pohon perentang dari sebuah graf diperlihatkan pada Gambar-6.14.
a a a
b c b c b c
d e e d e
Teorema-6.18. Setiap graf terhubung mempunyai paling sedikit satu pohon perentang.
Bukti.
Jika G terhubung, maka :
(a) G tidak mempunyai sirkuit, berarti G adalah sebuah pohon perentang, atau
(b) G mempunyai sirkuit. Misalkan adalah sirkuit dari G. Dengan menghapus satu
edge di , subgraf yang tertinggal masih terhubung. Disini graf terhubung
dan tidak mempunyai sirkuit. Dst.
[Terbukti]
Edge yang ada pada sebuah pohon T dari graf G disebut cabang (branch) terhadap
T dan edge di G yang tidak di T disebut busur (chord) terhadap T.
Jika graf G tak terhubung, maka G mempunyai beberapa komponen. Himpunan po-
hon perentang dari semua komponen dari G disebut hutan perentang (spanning forest) dari
G.
Bukti.
Misalkan G mempunyai pohon perentang T, maka banyaknya verteks pohon sama dengan
n. Akibatnya banyaknya cabang (edge pohon) sama dengan n - 1. Banyaknya dalam graf G
busur = e – banyaknya cabang dalam G = e - (n - 1) = e – n + 1.
[Terbukti]
Definisi-6.22. Sebuah frontier edge untuk sebuah pohon yang diberikan T dalam sebuah
graf G adalah sebuah bukan edge pohon dengan titik ujung dalam T, disebut tree endpoint,
dan satu titik ujung tidak dalam T, disebut non-tree endpoint.
Proposisi-6.20. Misalkan T sebuah pohon dalam sebuah graf G, dan e sebuah frontier
edge untuk T. Maka subgraf dari G yang dibangun dengan menambahkan edge e ke
pohon T adalah sebuah pohon.
Bukti.
Karena edge e sebuah frontier, maka mempunyai satu titik ujung di T. Akibatnya, jika edge
e ditambahkan ke T tidak akan menimbulkan sirkuit dalam T yang baru. Jadi T yang baru
juga berupa sebuah pohon.
[Terbukti]
Definisi-6.23. Misalkan T sebuah pohon yang merupakan subgraf dari sebuah graf G, dan
S himpunan frontier-edge untuk T. Sebuah fungsi nextEdge(G,S) memilih dan mengem-
balikan nilai frontier-edge dalam S yang ditambahkan ke pohon T.
Definisi-6.24. Sebuah pohon perentang minimum dalam sebuah graf berbobot dan ter-
hubung G adalah sebuah pohon perentang dalam G yang mempunyai jumlah bobot yang
mungkin dari edgenya terkecil.
Untuk mendapatkan sebuah pohon perentang minimum dari sebuah graf G yang ter-
hubung dan berbobot, telah dikembangkan algoritma Prim dan algoritma Kruskal.
Algoritma Prim
Misalkan S himpunan frontier-edge saat ini. Fungsi Prim-nextEdge didefinisikan
sebagai berikut:
a b c d
2 3 1
3 1 2 5
f g
e 4 3 3 h
4 2 4 3
3 3 1
i j k l
Pemecahan.
Inisiaisasi : T = {e};
Inisialisasi : S = {{e,a},{e, f},{e,i}};
Pohon perentang hasil dari penerapan algoritma Prim diperlihatkan pada Gambar-6.16.
dengan total jumlah bobot 2 + 1 + 3 + 1 + 2 + 3 + 3 + 2 + 3 + 3 + 1 = 24.
a b c d
2 1
3 1 2
f g
e 3 3 h
3 3 1
i j k l
Gambar-6.16. Graf pohon hasil penerapan Algoritma Prim pada graf G, Gambar-6.15.
Proposisi-6.21. Misalkan pohon Prim setelah k iterasi dari Algoritma Prim pada sebuah
graf terhubung G, untuk Maka adalah sebuah subpohon dari sebuah
pohon perentang dari G.
Pohon perentang hasil dari penerapan algoritma Prim diperlihatkan pada Gambar-6.17.
dengan total jumlah bobot 2 + 1 + 3 + 1 + 2 + 3 + 3 + 2 + 3 + 3 + 1 = 24.
a b c d
2 1
3 1 2
f g
e 3 3 h
3 3 1
i j k l
Gambar-6.17. Sebuah pohon perentang hasil algoritma Prim dari graf G, pada Gambar-6.15.
Algoritma Kruskal
Contoh-6.13. Gunakan algoritma Kruskal untuk mendapatkan sebuah pohon perentang mini-
mum dalam graf G yang diperlihatkan pada Gambar-6.15.
Pemecahan.
Inisialisasi T = {};
Iterasai-1 : e = {b,f}; T = {{b, f}};
Iterasai-2 : e = {c,d}; T = {{b, f},{c, d}};
Iterasai-3 : e = {k,l}; T = {{b, f}, {c, d},{k,l}};
Iterasai-4 : e = {a,b}; T = {{a,b},{b, f}, {c, d},{k,l}};
Iterasai-5 : e = {f, j}; T = {{a,b},{b, f}, {c, d},{f, j},{k,l}};
Iterasai-6 : e = {c,g}; T = {{a,b},{b, f}, {c, d},{c,g},{f, j},{k,l}};
Iterasai-7 : e = {a,e}; T = {{a,b},{a,e},{b, f}, {c, d},{c,g},{f, j},{k,l}};
Iterasai-8 : e = {i, j}; T = {{a,b},{a,e},{b, f}, {c, d},{c,g},{f, j},{i,j},{k,l}};
Iterasai-9 : e = {j,k}; T = {{a,b},{a,e},{b, f}, {c, d},{c,g},{f, j},{i,j},{j,k},{k,l}};
Iterasai-10 : e = {b,c}; T = {{a,b}, {a,e},{b,c}{b, f}, {c,d},{c,g},{f, j},{i, j}, {j,k},{k,l}};
Iterasai-11 : e = {g,h}; T = {{a,b}, {a,e},{b,c}{b, f}, {c,d},{c,g},{f, j},{g,h},{i, j}, {j,k},{k,l}};
3 1 2
f g
e 3 h
3 3 1
i j k l
Gambar-6.18. Sebuah pohon perentang hasil algoritma Kruskal dari graf G, pada Gambar-6.15.
a b c d
2 3 1
f g
e 4 3 3 h
4 2 2
1
i j k l
Gambar-6.19. Graf pohon hasil penerapan Algoritma Dijkstraa pada graf G, Gambar-6.15.
Latihan 6.4
1. Berapa banyaknya edge yang harus di buang dari sebuah graf terhubung dengan n verteks
dan m edge untuk menghasilkan sebuah pohon perentang ?
3. Berapa banyak pohon perentang berbeda yang dimiliki dari masing-masing graf berikut ?
a) b)
c) d)
4. Berapa banyak pohon perentang tak isomorfik berbeda yang dimiliki dari masing-masing
graf sederhana berikut?
a) b)
c) d)
5. Tunjukkan bahwa setiap graf sederhana dan berhingga mempunyai sebuah hutan peren-
tang.
7. Berapa banyaknya edge yang harus di buang dari sebuah graf dengan n verteks, m edge
dan c komponen untuk menghasilkan sebuah hutan perentang ?
8. Rancanglah sebuah algoritma untuk mengkonstruksi hutan perentang dari sebuah graf ber-
dasar pada penghapusan edge yang membentuk sirkuit sederhana.
9. Rancanglah sebuah algoritma untuk mengkonstruksi hutan perentang dari sebuah graf ber-
dasar pada penelusuran depth-first.
10. Rancanglah sebuah algoritma untuk mengkonstruksi hutan perentang dari sebuah graf ber-
dasar pada penelusuran breadth-first.
11. Misalkan G adalah sebuah graf terhubung. Tunjukkan bahwa jika T adalah sebuah po-
hon perentang dari G yang dikonstruksi menggunakan depth-first search, maka sebuah
edge dari G yang tidak dalam T harus merupakan sebuah back edge, yaitu ia harus
menghubungkan sebuah verteks ke verteks ancestor-nya atau verteks descendant-nya da-
lam T.
12. Misalkan G adalah sebuah graf terhubung. Tunjukkan bahwa jika T adalah sebuah po-
hon perentang dari G yang dikonstruksi menggunakan breadth-first search, maka sebuah
edge dari G yang tidak dalam T harus harus menghubungkan verteks-verteks di level
yang sama atau verteks-verteks di level yang berbeda 1 dalam pohon perentang ini.
13.
Teorema-6.22. Banyaknya sirkuit dasar dari suatu graf G yang terhubung dengan n verteks
dan e edge terhadap suatu pohon perentang T adalah e – n + 1 buah.
Cyclic Interchange
Cyclic interchange ialah menambah satu chord ke pohon perentang awal, dan menghapus
satu cabang di sirkuit dasar yang terbentuk.
6.5.2 Cut-Sets
Definisi-6.27. Sebuah cut-set dari suatu graf adalah sebuah himpunan bagian C
dari E sehingga dengan dihapusnya semua edge di C subgraf yang terjadi akan mempunyai
komponen satu lebih banyak dari pada komponen di G. Dimana ini tidak terjadi apabila
yang dihapus hanya edge yang ada pada himpunan bagian sejati dari C.
v1
e1 e2
v2 e3 v3
e4 e5
v4 e6 v5
Teorema-6.25 . Suatu cut-set dan suatu pohon perentang dari suatu graf terhubung paling
sedikit mempunyai satu edge bersekutu.
Bukti.
Misalkan pohon perentang dari graf terhubung dan C adalah
cut-set dari G sehingga irisan dari E(T) dan C adalah kosong. Ini berarti
masih terhubung, karena T terhubung. Ini bertentangan dengan definisi cut-set. Jadi
[Terbukti]
Teorema-6.26. Dalam sebuah graf terhubung G, setiap himpunan minimal S dari edge-
edge yang memuat paling sedikit satu cabang dari setiap pohon perentang dari G adalah
suatu cut-set.
Bukti.
Perhatikan graf G – S, yaitu subgraf yang terjadi setelah S dihapus dari G, maka G – S tak
memuat suatu pohon perentang dari G. Jadi, G - S tak terhubung. Karena S himpunan
minimal, maka G - S + {e} terhubung untuk . Jadi S adalah cut-set.
[Terbukti]
Latihan 6.5
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DAFTAR PUSTAKA
ROSEN, K. H., “ Discrete Mathematics and Its Applictions “, Ed., McGraw-Hill Co. Inc.
2003.
GROSS, J.L. AND YELLEN, J., “ Graph Theory And Its Applications “, Chapman & Hall /
CRC, 2006.