Graf tak-berarah terhubung yang tidak mengandung sirkuit Hutan (forest) adalah : Graf tak terhubung yang tidak mengandung sirkuit, dalam hal ini setiap komponen di dalam graf terhubung tersebut adalah pohon Sifat-sifat Pohon Misalkan G = (V,) adalah graf tak-berarah sederhana dan !umlah simpulnya n, maka : "# G adalah pohon $# %etiap pasang simpul di dalam G terhubung dengan lintasan tunggal &# G terhubung dan memiliki m = n -" buah sisi '# G tidak mengandung sirkuit dan memiliki m = n ( " buah sisi )# G tidak mengandung sirkuit dan penambahan satu sisi pada graf akan membuat hanya satu sirkuit *# G terhubung dan semua sisinya adalah !embatan (!embatan adalah sisi yang bila dihapus menyebabkan graf terpe+ah men!adi dua komponen) ,ika hutan - dengan k komponen mempunyai m = n ( " buah sisi Contoh %ebuah pohon mempunyai $n buah simpul berdera!at ", &n buah simpul berdera!at $ dan n buah simpul berdera!at &# .entukan banyaknya simpul dan sisi di dalam pohon tersebut / Penyelesaian : 0erdasarkan lemma jabat tangan : !umlah semua simpul di dalam graf adalah $ kali !umlah sisi di dalam graf tersebut ($n 1 ") 2 (&n 1 $) 2 (n 1 &) = $ 33 ""n = $ 33 44(") ,umlah sisi pada sebuah pohon adalah !umlah simpul minus satu, sehingga : 33 = ($n 2 &n 2 ") ( " = *n ( " 44 ($) Persamaan (") dan ($) men!adi : ""n = $ (*n ( ") ""n = "$n ( $ n = $ ,adi : ,umlah simpul pada pohon *n = * 1 $ = "$ buah simpul ,umlah sisi *n ( " = "" buah sisi Pohon Merentang (Spanning Tree) Pohon merentang adalah : %ubgraf dari graf terhubung berbentuk pohon %etiap graf terhubung mempunyai paling sedikit " buah pohon merentang 5abang (bran+h) adalah : %isi dari graf semula (sisi pada pohon merentang) .ali-hubung (+hord atau link) dari pohon adalah : %isi dari graf yang tidak terdapat di dalam pohon merentang 6omplemen pohon adalah : Himpunan tali-hubung beserta simpul yang bersisian dengannya ,ika n buah simpul dan m buah sisi maka : 7ntuk graf terhubung : ,umlah +abang : n ( " ,umlah tali hubung : m ( n 2 " 7ntuk graf tak-terhubung dengan k komponen : ,umlah +abang : n ( k ,umlah tali-hubung : m ( n 2 k 8ank graf G adalah : ,umlah +abang pada pohon merentang dari sebuah graf G 9ullity graf G adalah : ,umlah tali hubung pada graf G %ehingga : !umlah sisi graf G = rank 2 nullity 9ullity graf sering dia+u sebagai bilangan siklomatik atau bilangan Betti pertama %irkuit fundamental (fundamental +ir+uit) adalah : %irkuit yang terbentuk dengan penambahan sebuah tali-hubung pada pohon merentang Pohon Merentang Minimum (Minimum Spanning Tree) :dalah pohon merentang yang berbobot minimum :plikasi misalnya pada : ,alur rel kereta api yang menghubungkan se!umlah kota :lgoritma yang digunakan : "# :lgoritma Prim $# :lgoritma 6ruskal Pohon Merentang Minimum Graf yang menyatakan !aringan !alur rel kereta api :lgoritma Prim
; :mbil sisi dari graf G yang berbobot minimum, masukkan ke dalam . ; Pilih sisi e yang mempunyai bobot minimum dan bersisian dengan simpul di ., tetapi e tidak membentuk sirkuit di .# Masukkan e ke dalam . ; 7langi langkah-$ sebanyak n ( $ kali Contoh 0obot pohon merentang minimum yang diperoleh dengan menggunakan algoritma Prim : "< 2 $) 2 ") 2 $< 2 &) = "<) Tabel Pembentukan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim :lgoritma 6ruskal (:sumsi : sisi-sisi dari graf sudah diurut menaik berdasarkan bobotnya) "# . masih kosong $# Pilih sisi e yang mempunyai bobot minimum yang tidak membentuk sirkuit di .# Masukkan e ke dalam . &# 7langi langkah-$ sebanyak n ( " kali Contoh %elesaikan dengan menggunakan algoritma 6ruskal %isi-sisi graf diurut menaik berdasarkan bobotnya : Tabel Pembentukan Pohon Merentang Minimum Dengan Menggunakan Algoritma Kruskal 0obot pohon merentang minimum yang diperoleh dengan menggunakan algoritma 6ruskal : "< 2 $) 2 ") 2 $< 2 &) = "<) Pohon Berakar (Roote Tree) ; :dalah pohon yang sebuah simpulnya diperlakukan sebagai akar dan sisi-sisinya diberi arah men!auh dari akar ; :kar mempunyai dera!at masuk dan dera!at keluar sama dengan nol dan simpul-simpul lainnya berdera!at masuk sama dengan satu ; =aun atau simpul terminal adalah : %impul yang mempunyai dera!at keluar sama dengan nol ; %impul dalam atau simpul +abang adalah : %impul yang mempunyai dera!at keluar tidak sama dengan nol ; %embarang pohon tak-berakar dapat diubah men!adi pohon berakar dengan memilih sebuah simpul sebagai akar ; Pemilihan simpul yang berbeda men!adi akar menghasilkan pohon berakar yang berbeda pula Terminologi paa Pohon Berakar 5hild atau +hildren (:nak) dan parent (orangtua) 5hild dari simpul 1 !ika ada sisi dari simpul 1 ke y Parent dari simpul y adalah simpul 1 Pada gambar di samping : %impul b,+ dan d +hildren dari simpul a %impul e dan f +hildren dari simpul b %impul a parent dari simpul b,+ dan d %impul b parent dari simpul e dan f Path (lintasan) >intasan dari simpul ? i ke simpul ? k adalah runtunan simpul-simpul ? " , ? $ ,4, ? k sedemikian hingga ? i adalah parent dari ? i2" untuk " i k Pan!ang lintasan adalah !umlah sisi yang dilalui dalam suatu lintasan, yaitu k ( "# Pada gambar di samping : >intasan dari a ke ! adalah a,b,e dan ! Pan!ang lintasan dari a ke ! adalah & =es+endant (6eturunan) dan an+estor (leluhur) 1 adalah an+estor dari simpul y !ika terdapat lintasan dari simpul 1 ke simpul y di dalam pohon =es+endant dari simpul 1 adalah simpul y Pada gambar di samping : %impul b adalah an+estor dari simpul h %impul h adalah des+endant dari simpul b %ibling (saudara kandung) %ibling satu sama lain adalah simpul yang mempunyai parent sama Pada gambar di samping : %impul f sibling dari e %impul g bukan sibling dari e karena parent berbeda %ubtree (subpohon) %ubtree dengan 1 sebagai akarnya adalah subgraf .@ = (V@,@) sedemikian hingga V@ mengandung 1 dan semua keturunannyaA @ mengandung sisi-sisi dalam semua lintasan yang berasal dari 1 Pada gambar di samping : V@ = Bb,e,f,h,i,!C @ = B(b,e), (b,f), (e,h), (e,i), (e,!)C b : simpul akar =egree (dera!at) =era!at sebuah simpul pohon berakar adalah !umlah subtree (!umlah +hild) pada simpul tersebut =era!at pohon berakar merupakan dera!at keluar Pada gambar di samping : =era!at simpul a : &, simpul b : $, simpul + : < dan simpul d : " =era!at tertinggi (maksimum) : & >eaf (daun) :dalah simpul yang berdera!at nol (tidak mempunyai +hild) Pada gambar di samping : Merupakan leaf : simpul +,f,h,i,!,l dan m Dnternal nodes (simpul dalam) :dalah simpul yang mempunyai +hild Pada gambar di samping : Merupakan internal nodes : simpul b,d,e,g dan k >e?el (tingkat) :kar mempunyai le?el = < >e?el simpul lainnya = " 2 pan!ang lintasan dari akar ke simpul tersebut Height (tinggi) atau depth (kedalaman) :dalah le?el maksimum dari suatu pohon 9ama lain : pan!ang maksimum lintasan dari akar ke daun Pada gambar di samping : Pohon mempunyai height atau depth : ' !rere Tree (Pohon Berakar Terurut) ; :dalah pohon berakar yang urutan +hildren penting ; %istem uni?ersal dalam pengalamatan simpul-simpul pada pohon terurut adalah dengan memberi nomor setiap simpulnya seperti penomoran bab (beserta subbab) di dalam sebuah buku Pohon m-ar" ; :dalah pohon berakar yang setiap simpul +abangnya mempunyai banyak n buah +hild (anak) ; ,ika m = $ Pohon biner (binary tree) ; Pohon m-ary dikatakan pohon penuh (full) atau pohon teratur !ika setiap simpul +abangnya mempunyai tepat m buah +hild ; Penggunaan pohon m-ary Penurunan kalimat (dalam bidang bahasa) =irektori arsip di dalam komputer %truktur organisasi %ilsilah keluarga (dalam bidang genetika) %truktur bab atau daftar isi di dalam buku 0agan pertandingan antara beberapa tim sepak bola =ll %truktur direktori arsip di dalam sistem operasi EindoFs #umlah Daun paa Pohon m-ar" Penuh ; Pada pohon m-ary penuh dengan tinggi (height) h, !umlah daun (leaf) adalah : m h
; ,ika . bukan pohon m-ary penuh !umlah daun m h ; ,umlah seluruh simpul pohon m-ary pada pohon m-ary penuh dengan tinggi h : le?el < !umlah simpul = m < = " le?el " !umlah simpul = m "
le?el $ !umlah simpul = m $
4 le?el h !umlah simpul = m h
sehingga !umlah seluruh simpul adalah : ; %ehingga !umlah seluruh simpul untuk . bukan pohon m-ary penuh : $ubungan #umlah Daun an Simpul Dalam paa Pohon m-ar" Penuh Misalkan : i = banyaknya simpul dalam t = banyaknya simpul daun di dalam pohon biner penuh m = banyaknya simpul +hild %ehingga : (m ( ") i = t ( Contoh ; 6ita akan menyambungkan "G buah lampu pada satu stop kontak dengan menggunakan se!umlah kabel ekstensi yang masing-masing mempunyai ' outlet# Penyelesaian : =iketahui : t = "G banyaknya simpul daun m = ' pohon '-ary 6arena penyambungan merupakan pohon '-ary dengan stop kontak sebagai akar pohon, maka : (m ( ") i = t ( " (' ( ") i = "G -" i = * ,adi dibutuhkan * buah kabel ekstensi Pohon Biner ; :dalah pohon yang setiap simpul +abangnya mempunyai paling banyak $ buah +hild (anak) ; >eft subtree (sub pohon kiri) adalah : Pohon yang akarnya adalah left +hild (anak kiri) ; 8ight subtree (sub pohon kanan) adalah : Pohon yang akarnya adalah right +hild (anak kanan) ; %keFed tree (pohon +ondong) adalah : Pohon yang semua simpulnya terletak di bagian kiri sa!a atau bagian kanan sa!a ; %keF left (pohon +ondong kiri) adalah : Pohon yang +ondong ke kiri ; %keF right (pohon +ondong kanan) adalah : Pohon yang +ondong ke kanan ; -ull binary tree (pohon biner penuh) adalah : Pohon biner yang setiap simpulnya mempunyai tepat $ buah +hild (anak), kiri dan kanan, ke+uali simpul pada le?el baFah ; Pohon biner penuh dengan tinggi h memiliki !umlah daun sebanyak $ h , dan !umlah seluruh simpul adalah : Balan%e Binar" Tree (Pohon Biner Seimbang) ; :dalah pohon biner yang perbedaan tinggi antara subpohon kiri dan subpohon kanan maksimal " ; Pada pohon biner seimbang dengan tinggi h, semua daun berada pada le?el h atau h ( " ; 7ntuk membuat pohon seimbang, tinggi pohon se+ara keseluruhan harus dibuat seminimal mungkin ; 7ntuk memperoleh tinggi minimum, setiap le?el harus mengandung !umlah simpul sebanyak mungkin Pohon &kspresi ; :dalah pohon biner dengan daun menyatakan operand dan simpul dalam (termasuk akar) menyatakan operator ; .anda kurung tidak lagi diperlukan bila suatu ekspresi aritmetik direpresentasikan sebagai pohon biner ; Pohon ekspresi digunakan oleh +ompiler bahasa tingkat tinggi untuk menge?aluasi ekspresi yang ditulis dalam notasi : Dnfi1 Hperator berada di antara $ buah operand Prefi1 (polish notation) Hperator mendahului $ buah operand-nya Postfi1 (in?erse polish notation) 6edua operand mendahului operatornya ; 5ontoh : (a 2 b)I(+J(d 2 e)) infi1 I 2 a b J + 2 d e prefi1 a b 2 + d e 2 J I postfi1 Contoh Pembentukan pohon ekspresi (a 2 b)I(+J(d 2 e)) 7rutan prioritas penger!aan operator : "# Perkalian (I) dan pembagian (J) lebih tinggi $# Pen!umlahan (2) dan pengurangan (-) Pembentukan Pohon &kspresi ari 'otasi Postfi( "# %etiap elemen (operand dan operator) dari notasi postfi1 yang pan!angnya n disimpan di dalam tabel sebagai elemen P " , P $ , 4, P n
$# .umpukan % menyimpan pointer ke simpul pohon biner (tumpukan tumbuh dari kiri ke kanan) Algoritma pembentukan pohon ekspresi ari notasi postfi( Contoh ()) .erapkan algoritma 0angunPohonkspresi=ariPostfi1 untuk membangun pohon ekspresi dari : notasi postfi1 a b 2 + d e 2 J I "# Mulai dari elemen postfi1 pertama, P " , karena P " = Ka@ = operand, buat simpul untuk P " , push pointer-nya ke dalam tumpukan % $# 0a+a P $ , karena P $ = Kb@ = operand, buat simpul untuk P $ , push pointer-nya ke tunpukan % &# 0a+a P & , karena P & = K2@ = operator, buat pohon . dengan Ka@ dan Kb@ sebagai +hild (anak) '# 0a+a P ' , P ) , P * , karena P ' , P ) , P * = operand, buat pohon P ' , P ) , P * Push pointer-nya ke dalam tumpukan % )# 0a+a P L , karena P L = K2@ = operator, buat pohon . dengan Kd@ dan Ke@ sebagai +hild (anak) *# 0a+a P M , karena P M = KJ@ = operator, buat pohon . dengan K+@ dan K2@ sebagai +hild (anak) L# 0a+a P G , karena P G = KI@ = operator, buat pohon . dengan K2@ dan KI@ sebagai +hild (anak) Contoh (*) ?aluasi pohon ekspresi berikut : Penyelesaian : Pohon ekspresi die?aluasi mulai dari baFah, tahapan e?aluasi sbb : Pohon Keputusan ; =igunakan untuk memodelkan persoalan yang terdiri dari serangkaian keputusan yang mengarah ke solusi ; .iap simpul dalam menyatakan keputusan ; =aun menyatakan solusi Contoh =iketahui M buah koin uang logam# %atu dari delapan koin ternyata palsu# 6oin yang palsu mungkin lebih ringan atau lebih berat daripada koin yang palsu# Misalkan tersedia sebuah timbangan nera+a yang sangat teliti# 0uatlah pohon keputusan untuk men+ari uang palsu dengan +ara menimbang paling banyak hanya & kali sa!a Penyelesaian : Misalkan M koin itu dinamai a,b,+,d,e,f,g,h# =aun menyatakan koin yang palsu# Pohon keputusan untuk men+ari koin yang palsu ditun!ukkan sbb : Prefi( Coe (Koe A+alan) ; :dalah himpunan kode (misalnya kode biner) sedemikian hingga tidak ada anggota kumpulan yang merupakan aFalan dari anggota yang lain ; Mempunyai pohon biner yang bersesuaian ; %isi diberi label < atau ", semua sisi kiri diberi label < sa!a (atau " sa!a) sedangkan sisi kanan diberi label " sa!a (atau < sa!a) ; 0arisan sisi-sisi yang dilalui oleh lintasan dari akar ke daun menyatakan kode aFalan (ditulis di daun) ; 6egunaan untuk : mengirim pesan pada komunikasi data %etiap karakter di dalam pesan direpresentasikan dengan barisan angka < dan " 7ntuk pembentukan kode Huffman dalam pemampatan data (data +ompression) Koe $uffman ; Pemampatan data dilakukan dengan mengkodekan setiap karakter di dalam pesan atau di dalam arsip dikodekan dengan kode yang lebih pendek ; %istem kode yang banyak digunakan adalah kode :%5DD (setiap karakter dikodekan dalam M bit biner) ; 5ara pembentuka kode Huffman dengan membentuk pohon biner (dinamakan dengan pohon Huffman) yaitu : "# Pilih $ simbol dengan peluang (probability) paling ke+il sebagai +hild kemudian kedua simbol tersebut dikombinasikan sebagai parent peluang pen!umlahan dari kedua simbol tersebut $# Pilih $ simbol berikutnya termasuk simbol baru yang mempunyai peluang ke+il sebagai +hild kemudian kedua simbol tersebut dikombinasikan sebagai parent peluang pen!umlahan dari kedua simbol tersebut &# Prosedur yang sama dilakukan pada $ simbol berikutnya yang mempunyai peluang terke+il sebagai +hild kemudian kedua simbol tersebut dikombinasikan sebagai parent peluang pen!umlahan dari kedua simbol tersebut ; 6ode Huffman tidak bersifat unik, artinya kode untuk setiap karakter berbeda-beda pada setiap pesan bergantung pada kekerapan kemun+ulan karakter tersebut di dalam pesan ; 6eputusan apakah suatu simpul pada pohon Huffman diletakkan di kiri atau di kanan menentukan kode yang dihasilkan (tetapi tidak mempengaruhi pan!ang kodenya) Contoh ()) 8epresentasikan string K:0:55=:@ dalam kode :%5DD dan kode Huffman ; 6ode :%5DD %tring K:0:55=:@ direpresintasikan men!adi rangkaian : <"<<<<<"<"<<<<"<<"<<<<<"<"<<<<""<"<<<<""<"<<<"< <<"<<<<<" 8epresentasi L huruf tersebut membutuhkan L 1 M bit = )* bit (L byte) ; 6ode Huffman 5ara pembentukan kode Huffman : "# Pilih $ simbol dengan peluang paling ke+il, yaitu simbol 0 dan =# %imbol tersebut dikombinasikan men!adi simbol 0= dengan peluang "JL 2 "JL = $JL $# Pilih $ simbol dengan peluang paling ke+il, yaitu simbol 5 dan 0=# %imbol tersebut dikombinasikan men!adi simbol 50= dengan peluang $JL 2 $JL = 'JL &# Pilih $ simbol dengan peluang paling ke+il, yaitu simbol : dan 50=# %imbol tersebut dikombinasikan men!adi simbol :50= dengan peluang 'JL 2 &JL = LJL = " %tring K:0:55=:@ direpresintasikan men!adi rangkaian : <""<<"<"<"""< 8epresentasi L huruf tersebut membutuhkan "& bit Binar" Sear%h Tree (Pohon Pen%arian Biner) ; :dalah pohon biner yang setiap key diatur dalam suatu urutan tertentu ; =igunakan untuk melakukan operasi Pen+arian Penyisipan Penghapusan elemen ; %impul pada pohon pen+arian berupa field kun+i (key) pada : =ata re+ord atau =ata itu sendiri ; 6ey (kun+i) adalah : 9ilai yang membedakan setiap simpul dengan simpul yang lainnya ; 6ey harus unik, karena itu tidak ada $ buah simpul atau lebih yang mempunyai kun+i yang sama ; ,ika 8 adalah akar dan semua key yang tersimpan pada setiap simpul tidak ada yang sama maka : : %emua simpul pada subpohon kiri mempunyai key lebih ke+il dari key 8 %emua simpul di subpohon kanan mempunyai key nilai lebih besar dari key 8 Contoh Gambarkan ke dalam pohon biner pen+arian untuk data masukan dengan urutan sbb : )<, &$, "M, '<, *<, )$, ), $), L< ; %impul di subpohon kiri )< mempunyai key lebih ke+il dari )< dan simpul di subpohon kanan mempunyai key lebih besar dari )< ; Pen+arian selalu dimulai dari simpul akar ; %impul di akar dibandingkan dengan nilai yang di+ari (1)# ; ,ika kun+i di simpul akar tidak sama dengan 1, pen+arian dilan!utkan di subpohon kiri atau subpohon kanan, bergantung pada nilai 1 lebih ke+il dari key di akar atau 1 lebih besar dari key di akar ; Pembandingan dilakukan sampai nilai 1 sama dengan nilai suatu key atau ter+apai sebuah daun Tra,ersal Pohon Biner ; Misalkan . adalah pohon biner, akarnya 8, subpohon kiri . " dan subpohon kanan . $ maka ada skema mengun!ungi simpul-simpul di dalam pohon biner . : "# Preorder 6un!ungi 8 (sekaligus memproses simpul 8) 6un!ungi . " se+ara preorder 6un!ungi . $ se+ara preorder $# Dnorder 6un!ungi . " se+ara inorder 6un!ungi 8 (sekaligus memproses simpul 8) 6un!ungi . $ se+ara inorder &# Postorder 6un!ungi . " se+ara postorder 6un!ungi . $ se+ara postorder 6un!ungi 8 (sekaligus memproses simpul 8) ; Proses yang dilakukan terhadap simpul yang dikun!ungi misalnya men+etak informasi yang disimpan di dalam simpul Memanipulasi nilai, dll Skema Mengun-ungi Pohon Biner Penulusuran Pohon m-ar" Preorder : 6un!ungi 8 6un!ungi . " , . $ , 4, . n se+ara preorder Dnorder : 6un!ungi . " se+ara inorder 6un!ungi 8 6un!ungi .$, .&, 4, . n se+ara inorder Postorder : 6un!ungi . " , . $ , 4, . n se+ara postorder 6un!ungi 8 Contoh ()) .in!au pohon biner . di baFah ini : >intasan : ; Preorder : :, 0, 5, =, , -, G, H, D, , ; Dnorder : =, 0, H, , :, -, 5, D, G, , ; Postorder : =, H, , 0, -, D, ,, G, 5, : Contoh (*) .in!au pohon biner . di baFah ini : >intasan : ; Preorder : I 2 a J b + ( d I e f (prefi1) ; Dnorder : a 2 b J + I d - e I f (infi1) ; Postorder : a b + J 2 d e f I - I (postfi1) Contoh (.) .entukan hasil kun!ungan preorder, indorder dan postorder pada pohon '-ary berikut : >intasan : ; Preorder : a,b,e,n,o,f,g,+,h,i,d,!,k,l,p,N,m ; Dnorder : n,e,o,b,f,g,a,h,+,i,!,d,k,p,l,N,m ; Postorder : n,o,e,f,g,b,h,i,+,!,k,p,N,l,m,d,a Baru Pohon keputusan (Munir, $<<') S!A/ "# 0uat sketsa graf biner (pohon ekspresi) yang merepresentasikan ekpresi : a# p J (N ( r )I(s 2 t) b# (p 2 N) J r ( (s 2 t I u)
$# .entukan hasil penelusuran dari pohon ekspresi pada soal no# & dalam bentuk preorder, inorder, dan postorder# &# Pada graf dibaFah ini, himpunan simpul mendefinisikan himpunan desa pada suatu ke+amatan# =alam rangka pembuatan !alan antar desa dibuatlah anggaran pembiayaan seperti tertulis sebagai bobot (dalam satuan !uta rupiah) setiap sisi# .entukan biaya minimum yang harus disiapkan dalam pembangunan !alan antar desa tersebut sehingga setiap desa pada ke+amatan tersebut terhubung (ingat definisi terhubung pada suatu graf)#