MAKALAH MATEMATIKA DISKRIT “POHON”
Syarat Untuk Memenuhi Tugas Kelompok Mata Kuliah Matematika Diskrit Dosen pengampu : Rika Mulyati Mustika Sari, M. Pd
Disusun Oleh : Kelompok 6 Aulia Fitri Ghoniyah
(1510631050014) (1510631050014)
Ayu Dias Safitri
(1510631050015) (1510631050015)
Dwi Ariyanti
(1510631050034) (1510631050034)
Sriharyati
(1510631050115) Kelas : 6E
PROGRAM STUDI PENDIDIKAN MATEMATIKA FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN UNIVERSITAS SINGAPERBANGSA KARAWANG 2018
GRAF POHON (TREE)
Graf terhubung yang tidak mengandung sirkuit disebut pohon. Di antara sekian banyak konsep dalam teori graf, konsep pohon (tree) mungkin merupakan konsep yang sangat penting, karena terapannya yang luas dalam berbagai bidang ilmu. Banyak terapan, baik dalam bidang ilmu komputer maupun di luar bidang ilmu komputer, yang telah mengkaji pohon secara intensif sebagai objek matematika. Dalam kehidupan sehari-hari, orang telah lama menggunakan pohon untuk menggambarkan hirarkhi. Misalnya, pohon silsilah keluarga, struktur organisasi, organisasi pertandingan, dan lain-lain. Para ahli bahasa menggunakan pohon untuk menguraikan kalimat, yang disebut pohon pasing ( parse tree). Pohon sudah lama digunakan sejak tahun 1857, ketika matematikawan inggris Arthur Cayley menggunakan pohon untuk menghitung jumlah senyawa kimia. Bab ini membahas pohon dari sudut pandang teori graf. Pohon sebagai struktur data rekursif merupakan bagian dari perkuliahan Struktur Data. 1. DEFINISI POHON Definisi 9.1. Pohon (tree) merupakan graf tak-berarah yang terhubung dan tidak memiliki sirkuit.
Ada dua sifat penting pada pohon: terhubung dan tidak mengandung sirkuit. Pada Gambar dibawah, hanya G 1 dan G2 yang pohon, sedangkan G 3 dan G4 bukan pohon. G 3 bukan pohon karena ia mengandung sirkuit a,d,f,a sedangkan G4 bukan pohon karena ia tidak terhubung(dengan persilangan dua buah sisi – dalam hal ini sisi(a,f ) dan sisi (b,e) – karena titik silangnya bukan menyatakan simpul). a
b
a
b
a
b
a
b
c
d
c
d
c
d
c
d
e
f
e
G1
f
G2
pohon
pohon
e
f
e
G3
bukan pohon
f
G4
bukan pohon
Gambar 9.1 contoh graf pohon dan graf bukan pohon Contoh pohon lainnya:
Misalkan himpunan V={a, A, b, B, c, C, d, D } adalah empat pasangan suami-istri tukang gosip, dengan a,b,c, dan d para suami, dan A, B, C, D para istri. Misalkan a menceritakan gosip lewat telpon kepada istrinya A, yang kemudian A menelpon para istri lainnya untuk menyebarkan gosip itu, dan setiap istri itu menelpon dan menceritakan gosip
kepada suami masing-masing. Pohon pada Gambar menunjukkan bagaimana gosip tersebut tersebar, dengan simpul menyatakan istri/suami dan sisi menyatakan panggilan telpon.
Gambar 9.2 pohon penyebaran gosip
Karena definisi pohon diacu dari teori graf, maka sebuah pohon dapat mempunyai hanya sebuah simpul tanpa sebuah sisipun. Dengan kata lain, jika G=(V,E) adalah pohon, maka V tidak boleh berupa himpunan kosong, namun E boleh kosong. Pada sebagian literatur, pohon yang dimaksudkan oleh Definisi 9.1. sering disebut juga pohon bebas ( free tree) untuk membedakannya dengan pohon berakar (rooted tree). Hutan (forest) adalah Kumpulan pohon yang saling lepas, atau Graf tidak terhubung yang tidak mengandung sirkuit. Setiap komponen di dalam graf terhubung tersebut adalah pohon. Gambar 9.3.Berikut ini adalah hutan yang terdiri dari 3 pohon
Gambar 9.3 hutan yang terdiri dari tiga buah pohon
Pohon juga sering didefinisikan sebagai graf tak-berarah dengan sifat bahwa hanya terdapat sebuah lintasan unik antara setiap pasangan simpul. Tinjau kembali graf pada gambar 9.1.setiap simpul di terhubung dengan lintasan tunggal. Sebagai contoh dari b ke f hanya ada satu lintasan, yaitu b, d, a, d. Dari c ke a hanya ada satu lintasan, yaitu c, d, a. Demikian juga untuk setiap pasangan simpul manapun di
2. SIFAT - SIFAT (PROPERTI) POHON Sifat – sifat pohon dinyatakan dengan teorema 9.1 dibawah ini : Teorema 9.1. Misalkan G = (V, E) adalah graf tak-berarah sederhana dan jumlah simpulnya n. Maka, semua pernyataan di bawah ini adalah ekivalen: 1) G adalah pohon. 2) Setiap pasang simpul di dalam G terhubung dengan lintasan tunggal. 3) G terhubung dan memiliki m = n – 1 buah sisi. 4) G tidak mengandung sirkuit dan memiliki m = n – 1 buah sisi. 5) G tidak mengandung sirkuit dan penambahan satu sisi pada graf akan membuat hanya satu sirkuit. 6) G terhubung dan semua sisinya adalah jembatan.
Teorema 9.1 dapat dikatakan sebagai definisi lain dari pohon. Contoh 1 : Tentukan mana diantara graf – graf dibawah ini yang merupakan pohon atau hutan!
Penyelesaian : a. Gambar (a) merupakan Pohon, karena gambar tersebut tidak memiliki sirkuit dan merupakan graf yang terhubung; b. Gambar (b) merupakan pohon; c. Gambar (c) bukan merupakan pohon maupun hutan, karena terdapat sirkuit yakni dari titik V3, V4, V5, V3, dan juga merupakan graf terhubung. d. Gambar (d) merupakan Hutan, karena bukan merupakan Graf terhubung.
Contoh 2: Tentukan daun dan titik cabang pohon pada gambar di bawah ini.
Penyelesaian : - Titik V4, V5, V6, V7, V8 derajatnya = 1, jadi titik – titik tersebut merupakan Daun. - Titik V1, V2, V3 derajatnya masing – masing >1, maka titik – titik tersebut merupakan titik cabang. Contoh 3:
Sebuah pohon mempunyai buah simpul berderajat 1, 3n buah simpul berderajat 2, dan n buah simpul berderajat 3. Tentukan simpul dan sisi di dalam pohon itu. Penyelesaian:
Menurut Lemma Jabat tangan, jumlah derajat semua simpul di dalam graf adalah 2 jumlah sisi di dalam graf tersebut. Jadi,
( ) ( ) ( ) | | | | Menurut Teorema 9.1, jumlah sisi pada sebuah pohon adalah jumlah simpul minus satu. Jadi
| | ( ) Dengan menyulihkan persamaan terakhir ke persamaan pertama,
( ) Jadi, jumlah simpul pada pohon dan jumlah sisi 3. PEWARNAAN POHON
Ditinjau dari teori pewarnaan graf, maka pohon mempunyai bilangan kromatik 2. Dengan kata lain, dua buah warna sudah cukup mewarnai simpul – simpul di pohon sedemikian sehingga tidak ada dua buah simpul bertetangga mempunyai warna sama. Pewarnaan pada pohon T dilakukan dengan cara berikut: petakan warna pertama pada sembarang sebuah simpul. Kemudian , petakan warna kedua simpul tersebut yang bertetangga dengan simpul pertama tadi. Selanjutnya, petakan warna pertama kesemua
simpul yang bertetangga dengan simpul – simpul yang telah diberi warna kedua. Ulangi proses ini sampai semua simpul telah diwarnai. Contoh 1:
Tinjau G1 pada gambar 9.1 simpul – simpul pada G1 akan diwarnai dengan warna kuning dan biru. Simpul a di pilih pertama kali untuk di beri warna kuning. Kemudian simpul – simpul tetangga a yaitu b dan c diberi warna biru. Selanjutnya simpul – simpul yang bertetngga dengan c yaitu d dan e diberi warna kuning. Selanjutnya simpul yang berteangga dengan e yaitu f berwarna biru. Kuning : a,c, e dan f
Biru : b dan d
a
b
c
d
e
f
Contoh 2 :
Penyelesaian: 1) Berilah pada Gambar pohon di atas G1 pada simpul a diberi warna kuning dan pada simpul bertetangga (b,c) diberi warna biru, sedangkan pada simpul c berwarna biru maka yeng bertetangga (d,e) diberi warna kuning, kemudian pada simpul e berwarna kuning, yang bertetangga ( f ) di beri warna biru. a
b
c
d
e
f
2. Contoh pada Gambar G 2 pada simpul a di beri warna merah dan pada simpul bertetangga (b,f ) diberi warna hijau, sedangkan pada simpul b berwarna hijau maka simpul yang bertetangga (d,e) berwarna merah, dan pada simpul e berwarna merah maka simpul yang bertetangga (c) berwarna hijau. a
b
c
d
e
f
4. POHON MERENTANG (SPANN I NG TR E E ) Pohon merentang dari graf terhubung adalah upagraf merentang yang berupa pohon. Pohon merentang diperoleh dengan memutus sirkuit di dalam graf. Tiap komponen dari graf tak-terhubung mempunyai satu buah pohon mere ntang. Graf tak-terhubung dengan k komponen mempunyai hutan merentang ( spanning forest) yang terdiri dari k buah pohon merentang. Pohon merentang pada sebuah graf yang tidak mempunyai sirkuit adalah pohon itu sendiri. Sisi pada pohon merentang disebut cabang ( branch) Sisi dari graf yang tidak terdapat di dalam pohon merentang disebut tali hubung ( chord atau link ). Teorema 9.2 Setiap graf terhubung mempunyai paling sedikit satu buah pohon merentang. Menghitng jumlah cabang dan jumlah tali-hubung
G = {V, E } adalah graf dengan n buah simpul dan m buah sisi.
Untuk graf terhubung G : Jumlah cabang = n – 1 Jumlah tali-hubung = m - n + 1 Untuk graf tak-terhubung G dengan k komponen : Jumlah cabang = n – k Jumlah tali-hubung = m - n + k
Jumlah cabang pada pohon merentang dari sebuah graf disebut rank graf G, dan jumlah talihubung pada graf G disebut nullity graf G. Dapat dilihat bahwa rank + nullity = jumlah sisi graf G
Sirkuit yang terbentuk dengan penambahan sebuah tali-hubung pada pohon merentang disebut sirkuit fundamental ( fundamental circuit ). Jumlah sirkuit fundamental pada sebuah graf sama dengan jumlah tali-hubung. Contoh 1 :
Misalkan G = {V, E } adalah graf tak-berarah terhubung yang bukan pohon, artinya di G terdapat beberapa sirkuit. G dapat diubah menjadi pohon T = (V 1 , E 1) dengan cara memutuskan sirkuit – sirkuit yang ada. T disebut pohon merentang karena semua simpul pada pohon T sama dengan semua simpu pada graf G, dan sisi – sisi pada pohon T ⊆ sisi – sisi pada graf G.
Aplikasi Pohon Merentang
1. Jumlah ruas jalan seminimum mungkin yang menghubungkan semua kota sehingga setiap kota tetap terhubung satu sama lain. 2. Perutean (routing ) pesan pada jaringan komputer.
(a)
(b) Router Subnetwork
Gambar 9.5 (a) Jaringan Komputer, (b) Pohon merentang multicast Contoh 2 : Carilah semua pohon merentang yang mungkin dibuat dari graf G yang tampak pada gambar dibawah ini!
Penyelesaian : Di dalam graf tersebut terdapat satu buah sirkuit, yakni sirkuit dari titik V1, V 2, V 5, V 4, V 1, karena pohon merupakan graf yang tidak memiliki sirkuit dan pohon merentang adalah subgraf yang harus melibatkan semua titik dalam G, jadi pohon merentang dari Graf tersebut di atas adalah sebagai berikut: v1
v2
v3
v1
v2
v3
v4
v5
v6
v4
v5
v6
v1
v2
v3
v1
v2
v3
v4
v5
v6
v4
v5
v6
4.1 Pohon Merentang Minimum Graf terhubung-berbobot mungkin mempunyai lebih dari 1 pohon merentang. Pohon merentang yang berbobot minimum – dinamakan pohon merentang minimum (minimum spanning tree ).
Jika G adalah graf berbobot, maka bobot pohon merentang T dari G didefinisikan sebgai jumlah bobot semua sisi T. Diantara semua pohon merentang minimum di G, pohon merentang minimum merupahan pohon yang paling penting. Pohon merentang minimum mempunyai terapan yang luas dalam praktek. Misalkan Pemerintah akan membangun jalur rel kereta api yang menghubungkan sejumlah kota seperti yang di gambarkan pada grad di bawah. Membangun rel kereta api biayanya mahal, karena itu pembangunan jalur ini tidak perlu menghubungkan langsung dua kota; tetapi cukup membangun jalur kereta seperti pohon merentang. Karena di dalam sebuah graf mungkin saja terdapat lebih dari satu pohon merentang, harus dicari pohon merentang yang mempunyai jumlah jarak pendek, dengan kata lain harus dicari pohon merentang minimum.
a 55
d
25 c
b
a
45 30
h b
40
20
5
40
50 15
g
e 35
d
25 c
5
h
20 15
g
e
10 f
30
10 f
Algoritma Prim
Misalkan T adalah pohon merentang yang sisi-sisinya diambil dari graf G. Algoritma Prim membentuk pohon merentang minimum langkah per langkah.pada setiap langkah kita mengambil sisi dari graf G yang mempunyai bobot minimum dan bersisian dengan simpulsimpul di dalam T tetapi tidak membentuk sirkuit di dalam T. Algoritma Prim : Langkah 1 : ambil sisi dari graf G yang berbobot minimum, masukkan ke dalam T. Langkah 2 : pilih sisi (u, v) yang mempunyai bobot minimum dan bersisian dengan simpul di T, tetapi (u, v) tidak membentuk sirkuit di T. Masukkan (u, v) ke dalam T. Langkah 3 : ulangi langkah 2 sebanyak n – 2 kali. Jumlah langkah seluruhnya di dalam algoritma Prim adalah • 1 + (n – 2) = n – 1 • yaitu sebanyak jumlah sisi di dalam pohon rentang dengan n buah simpul. Dalam notasi pseudo-code, algoritma Prim kita tuliskan sebagai berikut : procedure Prim(input G : graf, output T : pohon) { Membentuk pohon merentang minimum T dari graf terhubungberbobot G. Masukan: graf-berbobot terhubung G = (V, E), dengan Keluaran: pohon rentang minimum T = (V, E’) } Deklarasi i, p, q, u, v : integer
V =
Algoritma Cari sisi (p,q) dari E yang berbobot terkecil T
{(p,q)}
for i1 to n-2 do Pilih sisi (u,v) dari E yang bobotnya terkecil namun bersisian dengan simpul di T T T endfor
{(u,v)}
n
contoh soal :
Kita akan mencari pohon merentang minimum pada graf yang ditunjukkan pada Gambar 9.7 algoritma Prim. Penyelesaian: Langkah-langkah pembentukan pohon merentang minimum diperlihatkan pada Tabel 9.1. pohon merentang minimum dari graf pada Gambar 9.7(a) adalah seperti yang ditunjukkan oleh Gambar 9.7(b). Bobot pohon merentang minimum ini adalah
1
10
1
2
10
2
50 30
45
40
45
3
3 35
35
4
4
25
25
5
5 55
20
15
6
55
20
15
6
Gambar 9.7 (a) Contoh graf untuk algoritma Prim dan Kruskal. (b) Pohon merentang minimum dari graf pada Gambar.
Tabel pembentukan pohon merentang minimum dengan algoritma Prim Langkah
1
Sisi
(1, 2)
(2, 6)
2
Bobot
Pohon rentang 1
10
2
1
10
2
10
25
25
3
(3, 6)
6
1
15
10 3
25
15 6
4
1
(4, 6)
10
2
20 3 4 25 20 15 6
5
(3, 5)
1
10
2
35 45
3 35
4 25 5 55
20
15 6
Pohon merentang yang dihasilkan tidak selalu unik meskipun bobotnya tetap sama. - Hal ini terjadi jika ada beberapa sis iyang akan dipilih berbobot sama. -
Contoh Soal : a
b
3
c
4 3
2
4
f
5
e 5
4
h 4
5
j
6
k
4
6
g
4
3
i
d
2
l
2
Gambarkan 3 buah pohon mrentang minimum yang berbeda beserta bobotnya untuk graf pada Gambar 9.8 dengan menggunakkan algoritma Prim. Penyelesaian: Graf di atas memiliki beberapa sisi yang berbobot sama, maka ada kemungkinan pohon merentang minimumnya lebih dari satu. Tiga buah di antaranya adalah seperti di bawah ini : a
b
3
4
c 2
a
3
b
3
4
g
f
e
d
2
h
c 2
3
i
j
4
4
k
2
l
3
i
j
4
4
k
2
l
c
4
2
d
2
3
g
f
e
4
5
b
3
4
h
4 5
a
3
f
e
d
2
h 4
5
3
i
j
4
k
2
l
Ketiga buah pohon merentang minimum di atas sama hanya bentuknya yang berbeda, namun jumlah bobot seluruh sisinya tetap sama, yaitu 36.
Algoritma Kruskal ( Langkah 0: sisi-sisi dari graf sudah diurut menaik berdasarkan bobotnya – dari bobot kecil ke bobot besar) .
Langkah 1 : T masih kosong Langkah 2 : pilih sisi (u, v) dengan bobot minimum yang tidak membentuk sirkuit di T. Tambahkan (u, v) ke dalam T. Langkah 3 : ulangi langkah 2 sebanyak n – 1 kali
procedure Kruskal(input G : graf, output T : pohon) { Membentuk pohon merentang minimum T dari graf terhubung berbobot G. Masukan: graf-berbobot terhubung G = (V, E), dengan Keluaran: pohon rentang minimum T = (V, E’) } Deklarasi i, p, q, u, v : integer
V =
– n
Algoritma ( Asumsi: sisi-sisi dari graf sudah diurut menaik berdasarkan bobotnya – dari bobot kecil ke bobot besar) T {} while jumlah sisi T < n-1 do Pilih sisi (u,v) dari E yang bobotnya terkecil if (u,v) tidak membentuk siklus di T then T T endif endfor
{(u,v)}
contoh soal 4:
Tinjau kembali graf pada Gambar 9.7 (a) di atas. Carilah pohon merentang minimumnya dengan algoritma Kruskal. Penyelesaian: Sisi-sisi graf diurut menaik menaik berdasarkan bobotnya: 1
10
2 50
30
45
40
3 35
4 25 5 55
20
15
6
Sisi-sisi diurut menaik: Sisi Bobot
(1,2) 10
Langkah
(3,6) 15
(4,6) 20
Sisi
(2,6) 25
(1,4) 30
(3,5) 35
Bobot
0
1
(1, 2)
10
2
(3, 6)
15
(2,5) 40
(1,5) 45
(2,3) 50
Hutan merentang
1
2
1
2
1
2
3
3
4
5
4
5
6
6 3
(4, 6)
20
1
2
3
5
4 6
4
(2, 6)
25
1
2
3
5
4
5
(1, 4)
30
6
(3, 5)
35
ditolak
1
2 5
4 6
3
(5,6) 55
5. POHON BERAKAR
Pohon yang satu buah simpulnya diperlakukan sebagai akar dan sisi-sisinya diberi arah sehingga menjadi graf berarah dinamakan pohon berakar (rooted tree). a
a
b c e
h
f
i
b
d
e
g
j
d
c
h
f
i
g
j
Gambar 9.8 (a) Pohon Berakar (b) sebagai konvensi, arah panah pada sisi dapat dibuang
b e
a b
e
f
d g
a
d
c
d
f
c h
e
g
f b sebagai
Gambar 9.9
h
b g
h
a
akar
e sebagai
c
akar
Pohon dan dua buah pohon berakar yang dihasilkan dari pemilihan dua simpul berbeda sebagai akar
Contoh 1 :
Graph pada Gambar 9.10 (a) adalah pohon berakar dengan akar A karena (1) bila arah pada sisinya diabaikan, graph hasilnya merupakan pohon, dan (2) A berderajat masuk 0, dan semua titik lainnya berderajat masuk 1. Cara biasa untuk menggambarkan graf itu ditunjukkan pada Gambar 9.10 (b).
Titik-titik D, H, E, dan B disebut titik terminal , yaitu titik dengan derajat keluar 0. Sedangkan titik-titik A, C, F, dan G disebut titik internal , yaitu titik yang memiliki derajat keluar yang tidak nol. Contoh 2 : Perhatikan gambar di samping ini! a. Tentukan tingkat tiap – tiap titik jika akarnya adalah V2! b. Berapa tinggi pohon jika akarnya adalah V 2? c. Tentukan anak, orang tua, dan saudara titik V1 jika akarnya adalah V2. d. Apakah pertanyaan a – c memiliki jawaban yang berbeda jika akarnya adalah v1? Penyelesaian: Gambar Pohon dengan akar V 2 adalah sebagai berikut : v2
v1
v4
v5
v3
v7
v8
a. Tingkat titik V1 = V4 = V5 = V6 = 1 Tingkat titik V3 = 2 Tingkat titik V7 = V8 = 3 b. Tinggi pohon = 3 c. Anak V1 = V3 ; orang tua V 1 = V2; saudara V1 = V4 V5 V6 d. Gambar pohon dengan akar V 1
v1
v2
v4
v5
v3
v6
v7
v8
Tingkat titik V2 = V3 = 1 Tingkat titik V4=V5=V6=V7=V8=2 Tinggi pohon = 2 Anak V1 = V2, V3 orang tua dan saudara V1 tidak ada karena V 1 merupakan akar. DAFTAR PUSTAKA Kusniati, Harni. Matematika Diskrit .dalam www.pohon m-ary. Munir, Rinaldi.2005. Buku Teks Ilmu Komputer Matematika Diskrit edisi ketiga. Bandung: Informatika. Priatna, Nanang. Pohon.dalam file.upi.edu/.../JUR...MATEMATIKA/.../Pohon.pdf.