Bab IX P O H O N waniwatining
1. DEFINISI POHON Pohon adalah graf yang khusus. Pohon adalah graf tak berarah terhubung yang tidak mengandung sirkuit. b a a d b a c b c d d c (ii) f e (iv) f e e (iii) (i) dan (ii) pohon, (iii) dan (iv) bukan pohon waniwatining
2. Sifat-sifat Pohon G adalah pohon. Setiap pasang simpul di dalam G terhubung dengan lintasan tunggal. G terhubung dan memiliki m = n – 1 buah sisi. G tidak mengandung sirkuit. Penambahan satu sisi pada graf akan membuat hanya 1 sirkuit. G terhubung dan semua sisinya adalah jembatan (jembatan adalah sisi yang bila dihapus menyebabkan graf terpecah menjadi dua komponen). waniwatining
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. waniwatining
Pewarnaan pohon T dilakukan dengan cara berikut : Petakan warna pertama pada sembarang simpul. Petakan warna kedua pada simpul-simpul yang bertetangga dengan simpul pertama. Petakan kembali warna pertama pada semua simpul yang bertetangga dengan simpul-simpul yang telah diberi warna kedua. Ulangi proses, sampai semua simpul diwarnai. waniwatining
4. Pohon Merentang Setiap graf terhubung mempunyai paling sedikit satu buah pohon merentang. Graf yang tidak mengandung sirkuit adalah pohon merentang itu sendiri. Pada graf yang mempunyai sirkuit, pohon merentangnya diperoleh dengan cara memutuskan sirkuit yang ada. waniwatining
Cabang adalah sisi pada pohon merentang, merupakan sisi dari graf semula. Tali hubung dari pohon adalah sisi dari graf yang tidak terdapat di dalam pohon merentang. Pada graf terhubung dengan m buah sisi dan n buah simpul terdapat n – 1 buah cabang dan m – n + 1 buah tali hubung. Himpunan tali hubung beserta simpul yang bersisian disebut komplemen pohon. waniwatining
Contoh Graf lengkap G dengan beberapa pohon merentangnya T waniwatining
Menghitung jumlah cabang dan tali hubung Untuk graf terhubung dengan n buah simpul dan m buah sisi : Jumlah cabang = n – 1 Jumlah tali cabang = m – n + 1 Untuk graf tidak terhubung dengan k komponen, m buah sisi dan n buah simpul : Jumlah cabang = n – k Jumlah tali hubung m – n + k waniwatining
Pohon Merentang Minimum. Di antara semua pohon merentang di G, pohon merentang yang berbobot minimum dinamakan pohon merentang minimum yang merupakan pohon merentang yang paling penting. Terdapat 2 buah algoritma membangun pohon merentang minimum, yaitu : Algoritma Prim. Algoritma Kruskal. waniwatining
3.1. Algoritma Prim Algoritma Prim membentuk pohon merentang minimum langkah per langkah. Pada setiap langkah diambil sisi dari graf G yang mempunyai bobot minimum namun terhubung dengan pohon merentang minimum T yang telah terbentuk. waniwatining
Langkah-langkah Algoritma Prim Ambil sisi dari graf G yang berbobot minimum, masukkan ke dalam T. Pilih sisi (u, v), yang mempunyai bobot minimum dan bersisian dengan simpul di T, tetapi (u, v) tidak membentuk sirkuit di T. Tambahkan (u, v) ke dalam T. Ulangi langkah ke 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 merentang dengan n buah simpul. waniwatining
3.2. Algoritma Kruskal Pada Algoritma Kruskal, sisi-sisi graf diurutkan terlebih dahulu berdasarkan bobotnya dari kecil ke besar. Perbedaan prinsip antara algoritma Prim dan Kruskal adalah : Jika pada algoritma Prim, sisi yang dimasukkan ke dalam T harus bersisian dengan sebuah simpul di T, maka pada algoritma Kruskal sisi yang dipilih tidak perlu bersisian dengan sebuah simpul di T asalkan penambahan sisi tersebut tidak membentuk sirkuit. waniwatining
Langkah-langkah Algoritma Kruskal Sisi-sisi dari graf diurutkan menaik berdasarkan bobotnya, dari bobot kecil ke bobot besar. T masih kosong. Pilih sisi (u, v) dengan bobot minimum yang tidak membentuk sirkuit di T. Tambahkan (u, v) ke dalam T. Ulangi langkah ke 2 sebanyak n – 1 kali. waniwatining
5. Pohon Berakar Definisi : Pohon yang sebuah simpulnya diperlakukan sebagai akar dan sisi-sisinya diberi arah sehingga menjadi graf berarah. Akar mempunyai derajat masuk sama dengan nol dan simpul-simpul lainnya berderajat masuk sama dengan satu. waniwatining
Simpul yang mempunyai derajat keluar sama dengan nol disebut daun atau simpul terminal. Simpul yang mempunyai derajat keluar tidak sama dengan nol disebut simpul dalam atau simpul cabang. Setiap simpul di pohon dapat dapat dicapai dari akar dengan sebuah lintasan tunggal. waniwatining
Sembarang pohon tak berakar dapat diubah menjadi pohon berakar dengan memilih sebuah simpul sebagai akar. Pemilihan simpul yang berbeda akan menghasilkan pohon berakar yang berbeda. Arah sisi di dalam pohon dapat dibuang, karena setiap simpul di pohon harus dicapai dari akar, maka lintasan di dalam pohon berakar selalu dari atas ke bawah. waniwatining
6. Terminologi pada Pohon Berakar Anak dan Orang tua. Misalkan x adalah simpul di dalam pohon berakar, simpul y dikatakan anak simpul x jika ada sisi dari simpul x ke simpul y dan simpul x disebut orang tua simpul y. x z y waniwatining
Lintasan (path) Lintasan dari simpul v1 ke simpul vk adalah runtunan simpul-simpul v1, v2, v3,…., vk sedemikian sehingga vi adalah orangtua dari vi+1 untuk 1 i k. Panjang lintasan adalah jumlah sisi yang dilalui dalam suatu lintasan, yaitu k – 1. waniwatining
Keturunan dan Leluhur Saudara Kandung Jika terdapat lintasan dari simpul x ke simpul y di dalam pohon, maka x adalah leluhur dari simpul y, dan y adalah keturunan simpul x. Saudara Kandung Simpul yang berorangtua sama adalah saudara kandung satu sama lain. waniwatining
Upapohon (Subtree) Pohon T dengan upapohon T’ pada bagian yang dilingkari. a b Pohon T dengan akar a dan upapohon T’ dengan akar b. waniwatining
Derajat (degree) Derajat sebuah simpul pada pohon berakar adalah jumlah upapohon atau jumlah anak pada simpul tersebut Derajat maksimum dari semua simpul merupakan derajat pohon itu sendiri. waniwatining
Aras (level) atau Tingkat Akar mempunyai aras 0, sedangkan aras simpul lainnya = 1 + panjang lintasan dari akar ke simpul tersebut. Tinggi (height) atau Kedalaman (depth) Aras maksimum dari suatu pohon disebut tinggi atau kedalaman, atau tinggi pohon adalah panjang maksimum lintasan dari akar ke daun. waniwatining
7. Pohon Terurut Pohon berakar yang urutan anak-anaknya penting disebut pohon terurut (ordered tree) Pada pohon terurut, urutan anak-anak dari simpul dalam dispesifikasikan dari kiri ke kanan. waniwatining
8. Pohon n-ary Pohon berakar yang setiap simpul cabangnya mempunyai paling banyak n buah anak disebut pohon n-ary. Pohon n-ary dikatakan teratur atau penuh jika setiap simpul cabangnya mempunyai tepat m buah anak. waniwatining
9. Pohon Biner Pohon biner merupakan kasus khusus pohon n-ary jika n = 2 Pohon biner adalah pohon yang setiap simpul cabangnya mempunyai paling banyak 2 buah anak. waniwatining
Pohon biner penuh Pohon biner penuh adalah pohon biner yang setiap simpulnya mempunyai tepat dua buah anak. waniwatining
Bila tinggi upapohon kiri dan kanan berbeda maksimal 1 tingkat. Pohon biner seimbang. Bila tinggi upapohon kiri dan kanan berbeda maksimal 1 tingkat. waniwatining
10. Pohon Terapan Biner Terapan pohon biner di dalam ilmu komputer sangat banyak, diantaranya yang disebutkan dibawah ini : Pohon ekspresi Pohon keputusan Kode Prefiks Kode Huffman Pohon pencarian biner waniwatining
10.1. Pohon Ekspresi Pohon ekspresi ialah pohon biner dengan daun berupa operand dan simpul dalam juga akar berupa operator. Tanda kurung tidak diperlukan bila suatu ekspresi aritmetik direpresentasikan sebagai pohon biner. waniwatining
Infix, Prefix dan Postfix operator berada di antara dua buah operand. Prefix : operator mendahului dua buah operand. Postfix : Kedua operand mendahului operatornya. waniwatining
10.2. Pohon Keputusan Pohon keputusan digunakan untuk memodelkan persoalan yang terdiri dari serangkaian keputusan yang mengarah ke solusi. Tiap simpul dalam menyatakan keputusan, sedangkan daun menyatakan solusi. waniwatining
10.3. Kode Awalan Kode awalan (prefix code) adalah himpunan kode, misalnya kode biner, sedemikian sehingga tidak ada anggota kumpulan yang merupakan awalan dari anggota yang lain. Contoh : {000, 001, 01, 10, 11 } adalah kode awalan. {1, 00, 000, 0001} bukan kode awalan, sebab 00 adalah prefix dari 000 dan 0001. waniwatining
Kode awalan ditulis pada daun. Kode awalan mempunyai pohon biner yang bersesuaian. Sisi diberi label 0 atau 1. Pelabelan harus sama, jika sisi kiri diberi label 0 maka semua sisi kiri harus berlabel 0 dan semua sisi kanan harus berlabel 1. Barisan sisi-sisi yang dilalui lintasan dari akar ke daun menyatakan kode awalan. Kode awalan ditulis pada daun. waniwatining
10.4. Kode Huffman waniwatining
10.5. Pohon Pencarian Biner Pohon pencarian biner digunakan pada persoalan yang banyak melakukan operasi pencarian, penyisipan, dan penghapusan elemen. Pohon pencarian biner adalah pohon biner yang setiap kuncinya diatur dalam suatu urutan tertentu. R T1 T2 Kunci (T1) < Kunci R Kunci (T2) > Kunci R waniwatining
11. Penelusuran Pohon Biner Operasi dasar yang sering dilakukan pada pohon biner ialah mengunjungi setiap simpul tepat satu kali. Ada 3 macam skema penelusuran pohon biner T, yaitu : Preorder. Inorder. Postorder. waniwatining
Preorder, Inorder dan Postorder Kunjungi R Telusuri T1 Telusuri T2 Inorder Postorder Telusuri T1 Telusuri T2 Kunjungi R R T1 T2 waniwatining
waniwatining