Bab IX P O H O N.

Slides:



Advertisements
Presentasi serupa
Teori Graf.
Advertisements

Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009
STRUKTUR DATA (10) tree manipulation
Wibisono Sukmo Wardhono, ST, MT anyquestion?
Bahan Kuliah Matematika Diskrit
JULIAN ADINATA PAUL JHONATAN UKEU PUTRI ROMLI MAULANA
Matematika Diskrit Dr.-Ing. Erwin Sitompul
Matematika Diskrit Dr.-Ing. Erwin Sitompul
Matematika Diskrit Suryadi MT Tree.
Pertemuan 8 STRUKTUR POHON (TREE).
PERTEMUAN 14 POHON (TREE).
STRUKTUR DATA TREE (POHON)
7 POHON BINER BAB Definisi Pohon dan Pohon Biner
Algoritma Runut-balik (Backtracking)
Pertemuan 9 STRUKTUR POHON (TREE) IMAM SIBRO MALISI NIM :
Algoritma dan Struktur Data
Pengenalan Graph Disusun Oleh: Budi Arifitama Pertemuan 9.
Sumber : Rinaldi Munir, ITB
Waniwatining II. HIMPUNAN 1. Definisi
Kuliah ke-9 Struktur Data Pohon/Tree (Bab 6)
Stack (Tumpukan) Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
Graf Isomorfik (Isomorphic graph)
Algoritma Greedy (lanjutan)
Bab IX P O H O N waniwatining.
Bahan Kuliah IF2091 Struktur Diskrit
Graf.
BAB 9 POHON.
P O H O N.
P O H O N.
Algoritma Branch and Bound
Bahan Kuliah IF2120 Matematika Diskrit Oleh: Rinaldi Munir
STRUKTUR DATA GRAPH dan DIGRAPH
13. Graf berbobot (Weighted graph)
Bahan Kuliah Matematika Diskrit
Pohon.
Bahan Kuliah IF2120 Matematika Diskrit
PART 4 TREE (POHON) Dosen : Ahmad Apandi, ST
Pohon (bagian ke 6) Matematika Diskrit.
P OHON 1. D EFINISI Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit 2.
8. Pohon m-ary Pohon berakar yang setiap simpul cabangnya mempunyai paling banyak n buah anak disebut pohon m-ary. Jika m = 2 maka pohon disebut pohon.
Definisi Pohon (tree) adalah : Hutan (forest) adalah :
BAB 9 POHON.
4. Pohon (Tree) 4.1. Definisi Rekurens Dari Pohon
Tree. Tree (Pohon) Dalam dunia nyata, sebuah pohon memiliki : akar, cabang, daun. Dalam dunia komputer, pohon (tree) memiliki 3 (tiga) bagian tersebut.
Organisasi Berkas Sekuensial Berindeks
POHON (lanjutan 2).
Bab IX P O H O N.
POHON / TREE.
STRUKTUR DATA Chapt 6 : TREE Oleh : Yuli Praptomo PHS, S.Kom.
Pohon Matematika Diskrit
P O H O N ( T R E E ) Fitri Utaminingrum
Pohon dan Pohon Biner Anifuddin Azis.
Matematika Diskrit Kode Huffman Heru Nugroho, S.Si., M.T.
TERAPAN POHON BINER.
BAB 10: POHON DAN APLIKASINYA
Diagram Pohon (Tree Diagram)
POHON.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
STRUKTUR DATA 2014 M. Bayu Wibisono.
POHON (TREE) Pertemuan 6.
Oleh : Devie Rosa Anamisa
P O H O N ( T R E E ) Fitri Utaminingrum
Matematika Diskrit Revisi 2016
Pohon.
Matematika Diskrit Semester Ganjil TA Kode Huffman.
P O H O N ( T R E E ) Fitri Utaminingrum
TUGAS MATEMATIKA DISKRIT KELAS B (POHON) Engelinus Nana ( ) Eka Christy ( ) Engelinus Nana ( ) Eka Christy ( )
Pohon Rinaldi M/IF2120 Matdis.
Tree (Pohon).
POHON Pohon (Tree) merupakan graph terhubung tidak berarah dan tidak mengandung circuit. Contoh: (Bukan) (Bukan) (Bukan)
Transcript presentasi:

Bab IX P O H O N

Graf terhubung yang tidak mengandung sirkuit disebut pohon. akar cabang daun

1. DEFINISI POHON G1 a c d e f b a d b a c b d c f e e G2 G3 G4 pohon Pohon adalah graf yang khusus. Pohon adalah graf tak berarah terhubung yang tidak mengandung sirkuit. G1 a c d e f b a d b a c b d c f e e G2 G3 G4 pohon Gambar 9.1 bukan pohon

Pohon penyebaran gosip ● a d c b A D C B istri suami Gambar 9.2

Beberapa pohon dapat membentuk hutan. Hutan (forest) adalah kumpulan pohon yang saling lepas. ● ● ● Gambar 9.3 Hutan yang terdiri dari tiga pohon

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).

Contoh 9.1 : Sebuah pohon mempunyai 2n buah simpul berderajat 1, 3n buah simpul berderajat 2, dan n buah simpul berderajat 3. Tentukan banyaknya simpul dan sisi di dalam pohon itu.

Menurut Lemma Jabat Tangan, jumlah derajat semua simpul di dalam graf adalah 2 kali jumlah sisi di dalam graf tersebut. Jadi, Menurut teorema 9.1, jumlah sisi pada sebuah pohon adalah jumlah simpul minus satu, jadi Jadi jumlah simpul pada pohon = 6n = 6x2 = 12 dan jumlah sisi = 6n-1 = 11

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 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. G1 a c d e f b

4. Pohon Merentang Disebut pohon merentang karena semua simpul pada pohon T sama dengan semua simpul pada graf G 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.

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. cabang G T1 tali-hubung

Contoh Graf lengkap G dengan beberapa pohon merentangnya T Gambar 9.4 T4 Aplikasi pohon merentang misalnya pada pemeliharaan Jalan raya. Graf G gbr 9.4 adalah peta jaringan jalan raya yang menghubungkan 4 buah kota. Karena dana pemeliharaan terbatas, pemerintah daerah hanya memelihara jalan-jalan sesedikit mungkin sedemikian sehingga ke 4 kota masih tetap terhubung satu sama lain.

Gambar 9.5 ● ● (b) Pohon merentang multicast (a) Jaringan komputer subnetwork ● ● router (a) Jaringan komputer (b) Pohon merentang multicast

Menghitung jumlah cabang dan tali hubung Untuk graf terhubung dengan n buah simpul dan m buah sisi : Jumlah cabang = n – 1 Jumlah tali hubung = 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

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.

a a d d h h c ● c ● b b g g e e f f (b) (a) Gambar 9.6 45 30 30 55 25 Graf yang menyatakan jaringan jalur rel kereta api. Bobot pada tiap sisi menyatakan panjang rel KA (x 100 km). (b) Pohon merentang yang mempunyai jumlah jarak minimum. a a 45 d d 30 30 55 h h 25 25 c ● c ● b b 50 40 20 40 20 15 5 15 5 g g e e 35 10 10 f f (b) (a) Gambar 9.6

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.

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.

Contoh 9.2 : Bobot pohon merentang minimum adalah : 10+25+15+20+35 = 105 1 2 4 6 5 3 10 20 35 15 55 45 40 50 1 2 4 6 5 3 10 20 35 15 25 25 Gambar 9.7

10 1 2 1 (1,2) 10 1 2 6 10 25 2 (2,6) 25 10 1 2 3 3 (3,6) 15 25 15 6

10 1 2 4 (4,6) 20 3 25 ● 4 5 20 15 6 1 2 4 6 5 3 10 20 35 15 25 5 (3,5) 35

Contoh 9.3 :

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.

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.

Contoh 9.4 : 1 2 4 6 5 3 10 20 35 15 55 45 40 50 Sisi-sisi graf diurut menaik berdasarkan bobotnya : sisi (1,2) (3,6) (4,6) (2,6) (1,4) (3,5) (2,5) (1,5) (2,3) (5,6) bobot 10 15 20 25 30 35 40 45 50 55 Bobot pohon merentang minimum adalah : 10+25+15+20+35 = 105

● ● ● ● ● ● 1 2 3 4 5 6 ● ● 1 2 1 (1,2) 10 ● ● ● ● ● 1 2 3 4 5 ● 6 2 (3,6) 15 ● ● ● ● 1 2 3 5 ● 6 4 3 (4,6) 20

● ● ● ● 1 2 3 5 ● 6 4 4 (2,6) 25 5 (1,4) 30 ditolak ● ● 1 2 ● 6 (3,5) 35 3 ● 5 4 ● 6

Pohon Berakar

5. Pohon Berakar Definisi : Pohon yang sebuah simpulnya diperlakukan sebagai akar dan sisi-sisinya diberi arah menjauh dari akar dinamakan pohon berakar (rooted tree). Akar mempunyai derajat masuk sama dengan nol dan simpul-simpul lainnya berderajat masuk sama dengan satu. akar a cabang b d c daun e f g daun h i j daun

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.

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.

a e f b d g c h b e d d a c f b e g h g h f a c b sebagai akar e sebagai akar

Terminologi pada Pohon Berakar x Orang tua 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. y anak Saudara kandung

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.

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.

Upapohon (Subtree) Pohon T dengan upapohon T’ pada bagian yang dilingkari. a b Pohon T dengan akar a dan upapohon T’ dengan akar b.

Derajat (degree) a b a berderajat 3 b berderajat 2 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. b a berderajat 3 b berderajat 2

Aras (level) atau Tingkat Akar mempunyai aras 0, sedangkan aras simpul lainnya = 1 + panjang lintasan dari akar ke simpul tersebut. 1 2 3 4

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.

7. Pohon Berakar 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.

Sebagai contoh, 2 buah pohon pada gambar 9.14 Urutan anak dari simpul 1 gbr 9.14 a adalah 2, 3, 4 Sedangkan urutan anak dari simpul 1 gbr 9.14 b adalah 3, 4, 2 Perbedaan ini menjadi penting bila kita merepresentasikan pohon di dalam komputer, karena penelusuran 2 buah pohon terurut yang berbeda akan menghasilkan urutan simpul yang berbeda pula.

1 1 4 2 4 2 3 3 5 6 7 8 9 8 9 6 5 7 10 (a) (b) 10 Gambar 9.14

Sistem yang universal dalam peng-alamat-an simpul-simpul pada pohon terurut adalah dengan memberi nomor setiap simpulnya seperti penomoran bab (beserta upababnya) di dalam sebuah buku. Gambar 9.15

1 2 3 2.2 1.1 1.2 2.1 2.3 3.1 3.2 3.3 3.4 Gambar 9.15 2.2.1 2.2.2

8. Pohon n-ary Pohon berakar yang setiap simpul cabangnya mempunyai paling banyak n buah anak disebut pohon n-ary. Jika n=2, pohon disebut pohon biner (binary tree). Pohon n-ary dikatakan teratur atau penuh jika setiap simpul cabangnya mempunyai tepat n buah anak (gambar 9.18).

Pohon n-ary biner Pohon 3-ary penuh

Contoh 9.5 : Pohon n-ary digunakan untuk merepresentasikan struktur kalimat dalam bahasa alami (natural language) maupun dalam bahasa pemrograman. Pohon penurunan kalimat itu disebut pohon parsing (parse tree). Gambar 9.16 memperlihatkan cara penurunan kalimat dalam Bahasa Inggris yang berbunyi A tall boy wears a red hat

Contoh 9.5 : Gambar 9.16 sentence verb object subject article noun phrase article noun phrase wears adjective noun adjective noun Gambar 9.16 A tall boy a red hat

Contoh 9.6 : Dalam sistem pengarsipan komputer (computer file system), arsip-arsip di dalam media penyimpanan sekunder (seperti floppy disk, compact disk, hard disk), disusun dalam bentuk direktori. Struktur direktori dimodelkan dalam pohon n-ary. Disini akar menyatakan sistem arsip keseluruhan, simpul dalam menyatakan upa-direktori, dan daun menyatakan arsip atau direktori kosong.

Contoh 9.6 : Gambar 9.17 C : / My Documents Program Files Windows My Pictures My Music Proposal. doc Borland Norton Utilities Webshots Winzip cookies Peta ITB.jpg Ibu.bmp Gambar 9.17

Jumlah daun pada pohon n-ary penuh Pohon n-ary penuh adalah pohon yang setiap simpulnya tepat mempunyai n buah anak. Pohon n-ary penuh dengan tinggi h, jumlah daun adalah nh.

Gambar 9.18 Pohon 3-ary penuh dengan jumlah daun = 32 = 9

Jumlah seluruh simpul pada pohon n-ary penuh Pohon n-ary penuh dengan tinggi h , aras 0  jumlah simpul = n0 = 1 n = 3  30 = 1 aras 1  jumlah simpul = n1 31 = 3 aras 2  jumlah simpul = n2 32 = 9 aras h  jumlah simpul = nh

Gambar 9.19 i = t - 1 Juara Pemenang putaran kedua Pemenang putaran 7 Juara Pemenang putaran kedua 5 6 Pemenang putaran pertama 1 2 3 4 Pemain 1 2 3 4 5 6 7 8

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.

d c b a Anak pertama dan anak kedua dari suatu simpul dalam disebut anak kiri (left child ) dan anak kanan (right child ) d c b a

Pohon yang semua simpulnya terletak di bagian kiri saja atau di bagian kanan saja disebut pohon condong (skewed tree ). Pohon yang condong ke kiri disebut pohon condong-kiri (skew left ), Pohon yang condong ke kanan disebut pohon condong-kanan (skew right ) a b c d Pohon condong-kiri Pohon condong-kanan

Pohon biner penuh Pohon biner penuh adalah pohon biner yang setiap simpulnya mempunyai tepat dua buah anak. height 1 2 3

Pohon biner seimbang. Bila tinggi upapohon kiri dan kanan berbeda maksimal 1 tingkat.

T1 T2 T3 T1 dan T2 adalah pohon seimbang, sedangkan T3 bukan pohon seimbang

10. Pohon Terapan Biner Terapan pohon biner di dalam ilmu komputer sangat banyak, diantaranya yang disebutkan dibawah ini : Pohon ekspresi Pohon keputusan Prefiks Code (kode Awalan) Kode Huffman Pohon pencarian biner

10.1. Pohon Ekspresi Pohon ekspresi ialah pohon biner dengan daun menyatakan operand dan simpul dalam (termasuk akar) menyatakan operator. Tanda kurung tidak diperlukan bila suatu ekspresi aritmetik direpresentasikan sebagai pohon biner. Sebagai contoh, ekspresi (a+b)*(c/(d+e)) dinyatakan dalam pohon biner. Daun menyatakan operand a, b, c, d, dan e, sedangkan simpul dalam termasuk akar menyatakan operator +, *, dan / .

b + * / e a c d ( a + b ) * ( c / ( d + e ))

a. b. + / z x y x y z / +

c. / * v x - y z u +

Infix, Prefix dan Postfix operator berada di antara dua buah operand. ( a+b )*( c / ( d+e )) Prefix : operator mendahului dua buah operand. * + a b / c + d e Postfix : Kedua operand mendahului operatornya. a b + c d e + / *

Contoh 9.7 : * ( a + b ) * ( c / ( d + e )) (iv) (ii) (iii) (i) b + a

Pembentukan Pohon Ekspresi dari Notasi Postfix Setiap elemen (operand dan operator) dari notasi postfix yang panjangnya n disimpan di dalam tabel sebagai elemen P1, P2 …, Pn 1 2 3 4 5 6 7 8 n = 9 a b + c d e / * 2. Tumpukan S menyimpan pointer ke simpul pohon biner (bayangkanlah tumpukan tumbuh dari kiri ke kanan) Arah pertumbuhan tumpukan

Contoh 9.8 : a b a b a +

b a + c d e b a + e d c

b a + / c d e b a + c d e / *

Contoh 9.9 : * / + + 3 4 24 Evaluasi pohon ekspresi berikut : 8 4

4 8 + * / 3 24 4 + * / 3 24 12 * 2 7 14

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.

a > b a : b b > a a > b > c a > c > b b > c > a b > a > c c > b > a c > a > b a : c a > c c > a b : c b > c c > b

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, 01, 000, 0001} bukan kode awalan, sebab 00 adalah prefix dari 0001.

Kode awalan mempunyai pohon biner yang bersesuaian 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.

1 000 001 01 10 11

10.4. Kode Huffman Simbol Kode ASCII A 01000001 B 01000010 C 01000011 01000100

Dengan mengikuti pengkodean diatas, string ‘ABACCDA’ direpresentasikan menjadi rangkaian bit : 01000001 01000010 01000001 01000011 01000011 01000100 01000001 Simbol Kekerapan Peluang Kode Huffman A 3 3/7 B 1 1/7 110 C 2 2/7 10 D 111

ABCD, 7/7 CBD, 4/7 A, 3/7 BD, 2/7 C, 2/7 B, 1/7 D, 1/7 1 B = 110

Dengan membuat lintasan dari akar ke daun, akan dihasilkan kode untuk setiap simbol. A = 0, B = 110, C = 10, D = 111 Simbol Kekerapan Peluang Kode Huffman A 3 3/7 B 1 1/7 110 C 2 2/7 10 D 111 Dengan menggunakan kode Huffman di dalam tabel, pesan ‘A B AC C D A’ menjadi rangkaian bit : 0110010101110

Contoh 9.11 : Simbol Kekerapan Peluang Kode Huffman A 15 15/91 111 B 6 6/91 0101 C 7 7/91 1101 D 12 12/91 011 E 25 25/91 10 F 4 4/91 01001 G 1100 H 1 1/91 01000 I 00

IHFBDEGCA, 91/91 IHFBD, 38/91 EGCA, 53/91 E, 25/91 GCA, 28/91 GC, 13/91 A, 15/91 G, 6/91 C, 7/91 HFBD, 23/91 I, 15/91 D, 12/91 HFB, 11/91 B, 6/91 HF, 5/91 H, 1/91 F, 4/91 1

10.5. Pohon Pencarian Pohon pencarian biner (binary search tree – BST) 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 Kunci (T1) < Kunci R Kunci (T2) > Kunci R T1 T2 Jika R adalah akar, dan semua kunci yang tersimpan pada simpul tidak ada yang sama, maka : (a) Semua simpul pada upapohon kiri mempunyai kunci lebih kecil dari Kunci (R) (b) Semua simpul di upapohon kanan mempunyai kunci nilai lebih besar dari Kunci (R) R T1 T2 Kunci (T1) < Kunci R Kunci (T2) > Kunci R

Contoh 9.12 : Sebuah pohon pencarian untuk data masukkan dengan urutan sebagai berikut : 50, 32, 18, 40, 60, 52, 5, 25, 70. 50 32 60 40 18 52 70 5 25

11. Traversal Pohon Biner Operasi dasar yang sering dilakukan pada pohon biner ialah mengunjungi (traversal ) setiap simpul tepat satu kali. Ada 3 macam skema mengunjungi/penelusuran simpul-simpul di dalam pohon biner T, yaitu : Preorder. Inorder. Postorder.

Preorder Kunjungi R Telusuri T1 Telusuri T2 Inorder Postorder R T1 T2

Contoh 9.13 : Tinjau pohon biner T di bawah ini : F B D E C A H G J I Lintasan preorder, inorder dan postorder dari T adalah : preorder : A, B, D, E, H, C, F, G, I, J inorder : D, B, H, E, A, F, C, I, G, J postorder : D, H, E, B,F, I, J, G, C, A

F B D E C A H G J I preorder : A, B, D, E, H, C, F, G, I, J

Korespondensi antara ketiga cara mengunjungi pohon biner dengan notasi prefix, infix dan postfix. d + a / - * b f e c preorder : * + a / b c – d * e f (prefix) inorder : a + b / c * d – e * f (infix) postorder : a b c / + d e f * - * (postfix)

R ● ● ● T1 T2 T3

Lintasan hasil traversal adalah : Contoh 9.14 : Tentukan hasil kunjungan preorder, inorder dan postorder pada pohon 4-ary berikut ini : a b c d e l f g h i j k m n o p q Lintasan hasil traversal adalah : preorder : a, b, e, n, o, f, g, c, h, i, d, j, k, l, p, q, m inorder : n, e, o, b, f, g, a, h, c, i, j, d, k, p, l, q, m postorder : n, o, e, f, g, b, h, i, c, j, k, p, q, l, m, d, a

Lintasan hasil traversal adalah : b c d e l f g h i j k m n o p q Lintasan hasil traversal adalah : preorder : a, b, e, n, o, f, g, c, h, i, d, j, k, l, p, q, m

Pernyataan aritmatik 2x3+4x2-1+5 dapat dijelaskan dengan diagram pohon dibawah. x 2 3 - + 4 5 1 (2x3) + (4x2) – (1+5) = 8

* Pohon berurut berakar (orderd rootes tree) Lexicographic order. _ (A+B) x C – ((D/E) + F) / * + C _ D F B A E Susunan Lukasiwicz yaitu bentuk prefix dan postfix prefix : - * + A B C + / D E F postfix : A B + C * D E / F + -

REVIEW

Contoh : Bangunlah pohon Huffman untuk string “ makan malam di mana “ (tidak termasuk tanda petik) dengan ketentuan : simbol dengan peluang lebih kecil sebagai anak kiri dan simbol dengan peluang lebih besar sebagai anak kanan, sisi kiri di labeli dengan 0 dan sisi kanan dengan 1. Tentukan kode Huffman untuk setiap karakter, dan tentukan representasi biner dari string yang telah di mampatkan itu!

MAKAN MALAM DIMANA M 4 111 A 6 K 1 1010 N 2 110 L 1011 D 1000 I 1001 KL DI DIKL A NM ADIKLNM DIKLNM 1 MAKAN MALAM DIMANA M 4 111 A 6 K 1 1010 N 2 110 L 1011 D 1000 I 1001 16 111 O 1010 0 110 111 0 1011 0 111 1000 1001 111 0 110 0 = 40

Contoh : Buatlah pohon Huffman untuk string : SAYA AKAN WISUDA TAHUN DEPAN dan tentukan kode Huffman untuk setiap karakternya!