P. 1
Bab 7 Tree Binary Tree

Bab 7 Tree Binary Tree

|Views: 83|Likes:
Published by sahriar_hamza
sddddddd
sddddddd

More info:

Published by: sahriar_hamza on Jul 06, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/18/2012

pdf

text

original

Bab 7 – Tree/Binary Tree___________________

45

BAB 7 TREE / BINARY TREE
TUJUAN PRAKTIKUM 1. Praktikan mengenal Struktur data Tree. 2. Praktikan mengenal jenis-jenis tree, seperti binary tree. 3. Praktikan mengenal istilah-istilah yang terdapat di dalam tree, serta kunjungan antar simpul (traversal) apa saja yang terdapat di dalam tree. 4. Praktikan diharapkan mampu membuah sebuah program binary tree sederhana.

TEORI PENUNJANG Tree bisa didefinisikan sebagai suatu kumpulan elemen salah satu elemennya disebut dengan akar (root), dan sisa elemen lainnya (yang disebut simpul) terpecah menjadi sejumlah himpunan yang paling tidak berhubungan satu sama lain, yang disebut dengan subpohon (subtree), atau disebut juga cabang. Jika kita melihat pada subpohon, maka subpohon inipun juga mempunyai akar dan sub-subpohonnya masing-masing. Dalam kehidupan sehari-hari, tree dapat dilihat dari pohon silsilah keluarga. Tingkat yang tertinggi disebut juga sebagai root. Untuk lebih jelasnya lihat gambar 7.1 merupakan contoh dari sebuah tree.
Tingkat / Level A B D I J E K F L N C G M O H 1 2 3

4 5

Gambar 7.1 Contoh Tree dengan 15 simpul

Modul Praktikum Struktur Data – IT045329

Bab 7 – Tree/Binary Tree___________________

46

Jika kita memperhatikan gambar di atas, sebenarnya yang disebut dengan simpul (node atau vertex) adalah elemen pohon yang berisi informasi / data dan petunjuk percabangan. Pada pohon diatas memiliki 15 simpul yang berisi informasi berupa huruf A, B, C, D sampai O lengkap dengan percabangannya. Akar / Root dari pohon diatas berisi huruf A. Tingkat (level) suatu simpul ditentukan dengan pertama kali menentukan akar sebagai bertingkat 1. jika suatu simpul dinyatakan sebagai tingkat N, maka simpul-simpul yang merupakan anaknya dikatakan berada dalam tingkat N+1. pada pohon diatas merupakan tree dengan 5 level. Selain tingkat, dikenal juga istilah derajad (degree) dari suatu simpul. Derajad suatu simpul dinyatakan sebagai banyaknya anak atau turunan dari simpul tersebut. Contoh, dari gambar 7.1 simpul A mempunyai derajad 2, simpul B mempunyai derajad 2, simpul C berderajad 3. simpul-simpul F, H, I, J, K, L, N, O yang semuanya berderajad nol, disebut dengan daun (leaf).

A B D I J E K F L N C G M O H

Gambar 7.2 Simpul-simpul yang disebut daun

Tinggi (Height) atau Kedalaman (Depth) dari suatu pohon adalah tingkat maksimum dari suatu pohon dikurangi dengan satu. Dengan demikian pohon di atas mempunyai tinggi atau kedalaman sama dengan 4.

Modul Praktikum Struktur Data – IT045329

Bab 7 – Tree/Binary Tree___________________

47

Hutan (Forest) adalah kumpulan sejumlah pohon yang tidak saling berhubungan. Dari gambar di atas jika kita menghapus simpul A maka akan terbentuk sebuah hutan.

7.1. Pohon Biner (Binary Tree) Pohon biner bisa didefinisikan sebagai suatu kumpulan simpul yang mungkin kosong atau mempunyai akar dan dua subpohon yang saling terpisah yang disebut dengan subpohon kiri dan sub pohon kanan. Subpohon disebut juga sebagai cabang. Karakteristik dari pohon biner ialah bahwa setiap simpul paling banyak hanya mempunyai dua buah anak. Dengan kata lain derajat tertinggi dari sebuah pohon biner adalah dua. Pengertian daun, root, level, tinggi dan derajad yang berlaku pada pohon juga berlaku pada binary tree. Penyajian binary tree pada komputer di gunakan double link list.

7.2. Deklarasi Pohon Biner Setiap simpul pada pohon biner selalu berisi dua buah pointer yang menunjuk ke cabang kiri dan cabang kanan dengan melihat hal tersebut maka struktur double link list sangat cocok untuk di terapkan di dalam tree ini. Gambar 7.3 merupakan penyajian pohon biner menggunakan double link list.

Deklarasi Double Linked List di dalam Pascal : Type Tree = ^Simpul Simpul = Record Info : Tipe Data; Kiri : Tree; Kanan : Tree; End;

Modul Praktikum Struktur Data – IT045329

Bab 7 – Tree/Binary Tree___________________

48

Akar A

B

C

D

E

F

G

H

I

J

K

Gambar 7.3 Penyajian Pohon Biner dengan Double Link List

7.3. Membuat Pohon Biner Untuk membuat pohon biner, terdapat aturan dalam penempatan simpulnya. Berikut ini merupakan algoritma penempatan sebuah simpul dalam pohon biner : “Simpul yang berisi informasi yang nilainya lebih besar dari simpul diatasnya akan ditempatkan sebagai cabang kanan dan jika lebih kecil akan ditempatkan di cabang kiri.” Sebagai contoh jika kita akan membentuk pohon biner dari untai ‘HKACBLJ’ maka pohon biner yang dihasilkan adalah sebagai berikut :

H A C B J K L

Gambar 7.4 Pohon Biner Untai ‘HKACBLJ’ Proses untuk memperoleh pohon biner diatas adalah sebagai berikut : Karakter pertama ‘H’ ditempatkan sebagai Akar. Karakter ‘K’ karena lebih besar

Modul Praktikum Struktur Data – IT045329

Bab 7 – Tree/Binary Tree___________________

49

dari ‘H’ diletakkan dicabang kanan. Karakter ‘A’ karena lebih kecil dari ‘H’ akan menempati cabang kiri dari ‘H’. kemudian, karena karakter ‘C’ lebih kecil dari ‘H’ dan lebih besar dari ‘A’ maka ia di letakkan sebagai cabang kanan dari ‘A’. demikian seterusnya sampai semua masukkan di proses. Untuk mengalokasikan simpul baru seperti diatas biasanya digunakan fungsi rekursif, untuk itu ada baiknya jika kita membuat fungsi baru agar proses rekursif untuk simpul dapat berlangsung sukses. Fungsi untuk mengalokasikan simpul baru tersaji di bawah ini : Function BARU(Hrf : Char) : Tree; Var Temp : Tree; Begin New(Temp); Temp^.Info := Hrf; Temp^.Kiri := NIL; Temp^.Kanan := NIL; BARU := Temp; End; Setelah simpul kita alokasikan, saatnya kita tempatkan di dalam pohon biner dengan menggunakan prosedur di bawah ini : Procedure MASUK(Var Pohon : Tree; Hrf : Char); Begin If Pohon = NIL Then {Jika pohon masih kosong} Pohon := BARU(Hrf) Else Begin If Pohon^.Info > Hrf {Jika Hrf lebih kecil, cabang kiri} MASUK(Pohon^.Kiri,Hrf) Else If Pohon^.Info < Hrf {Jika Hrf lebih besar, cabang kanan} MASUK(Pohon^.Kanan,Hrf) Else Writeln(‘Karakter’, Hrf, ‘Sudah ada di Tree’); End; End;

Modul Praktikum Struktur Data – IT045329

Bab 7 – Tree/Binary Tree___________________

50

7.4. Kunjungan Pada Pohon Biner Sebuah pohon biner memiliki operasi traversal yaitu suatu kunjungan pada suatu simpul tepat satu kali. Dengan melakukan kunjungan lengkap kita akan memperoleh urutan informasi secara linier yang tersimpan di dalam pohon biner. Terdapat tiga jenis kunjungan pada pohon biner, yaitu : 1. PREORDER Kunjungan jenis ini mempunyai urutan kunjungan sebagai berikut : - Cetak isi simpul yang dikunjungi. - Kunjungi cabang kiri. - Kunjungi cabang kanan. Dari gambar 7.4 jika kita melakukan traversal secara PREORDER pada pohon biner tersebut maka akan menghasilkan untai : ‘HACBKJL’. Prosedur untuk melakukan traversal secara PREORDER adalah sebagai berikut : Procedure PREORDER(Temp : Tree); Begin If Temp <> NIL Then Begin Write(Temp^.Info,’ ‘); PREORDER(Temp^.Kiri); PREORDER(Temp^.Kanan); End; End; 2. INORDER Kunjungan jenis ini mempunyai urutan kunjungan sebagai berikut : - Kunjungi cabang kiri. - Cetak isi simpul yang dikunjungi. - Kunjungi cabang kanan. Dari gambar 7.4 jika kita melakukan traversal secara INORDER pada pohon biner tersebut maka akan menghasilkan untai : ‘ABCHJKL’.

{Cetak isi simpul} {Kunjungi cabang kiri} {Kunjungi cabang kanan}

Modul Praktikum Struktur Data – IT045329

Bab 7 – Tree/Binary Tree___________________

51

Prosedur untuk melakukan traversal secara INORDER adalah sebagai berikut: Procedure INORDER(Temp : Tree); Begin If Temp <> NIL Then Begin INORDER(Temp^.Kiri); Write(Temp^.Info,’ ‘); INORDER(Temp^.Kanan); End; End; 3. POSTORDER Kunjungan jenis ini mempunyai urutan kunjungan sebagai berikut : - Kunjungi cabang kiri. - Kunjungi cabang kanan. - Cetak isi simpul yang dikunjungi. Dari gambar 7.4 jika kita melakukan travarsal secara POSTORDER pada pohon biner tersebut maka akan menghasilkan untai : ‘BCAJLKH’. Prosedur untuk melakukan traversal secara POSTORDER adalah sebagai berikut: Procedure POSTORDER(Temp : Tree); Begin If Temp <> NIL Then Begin POSTORDER(Temp^.Kiri); POSTORDER(Temp^.Kanan); Write(Temp^.Info,’ ‘); End; End;

{Kunjungi cabang kiri} {Cetak isi simpul} {Kunjungi cabang kanan}

{Kunjungi cabang kiri} {Kunjungi cabang kanan} {Cetak isi simpul}

Dalam pengembangan nantinya, tiga jenis kunjungan ini dapat digunakan sebagai pencarian notasi infix, postfix dan prefix. Kunjungan Preorder untuk

Modul Praktikum Struktur Data – IT045329

Bab 7 – Tree/Binary Tree___________________

52

mencari prefix, kunjungan Inorder untuk mencari postfix dan kunjungan Postorder untuk mencari infix.

LAPORAN PENDAHULUAN 1. Jelaskan pengertian Tree serta perbedaannya dengan Binary Tree. 2. Jelaskan istilah-istilah pada Tree: a. Daun b. Root c. Level d. Tinggi e. Derajad. 3. Sebutkan dan jelaskan jenis kunjungan yang terdapat pada binary tree. 4. Bagaimana kunjungan secara Preorder, Inorder dan Postorder? Jelaskan dan beri contoh!

LAPORAN AKHIR 1. Buat Algoritma dari kunjungan secara Preorder, Inorder dan Postorder dari sebuah tree (ditambah dengan ringkasan tentang operasi Queue). 2. Buat program parkir mobil dengan menggunakan teori antrian yang telah diajarkan menggunakan single linked list.

Modul Praktikum Struktur Data – IT045329

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->