Anda di halaman 1dari 53

STRUKTUR DATA

POHON/TREE
{
D. CAHYADI, S. Kom, M. Kom
Pertemuan XI
{ dccahyadi@yahoo.com
STMIK Prantan Indonesia
I. TREE/POHON

 Kumpulan node yang saling terhubung satu sama


lain dalam suatu kesatuan yang membentuk seperti
struktur sebuah pohon.
 Struktur pohon adalah suatu cara
merepresentasikan suatu struktur hirarki (one-to-
many) secara grafis yang mirip sebuah pohon,
walaupun pohon tersebut hanya tampak sebagai
kumpulan node-node dari atas ke bawah.
 Suatu struktur data yang tidak linier yang
menggambarkan hubungan yang hirarkis (one-to-
many) dan tidak linier antara elemen-elemennya
POHON / TREE
Struktur data yang terdiri dari akar (root), dan
subpohon-subpohon dalam susunan berhirarki

ROOT/AKAR

Simpul
/ Node /
Vertex
DERAJAT SIMPUL
Derajat = jumlah anak yang dimiliki sebuah simpul

Derajat 2

Derajat 3
Derajat 2

Derajat 0
NODE INTERNAL & EKSTERNAL
Node Internal = node yang memiliki anak
Node eksternal = node yang tidak memiliki anak (daun)

Node
Interna
l

Node
Internal

Node
Eksternal
NOTASI
Diagram Pohon
NOTASI
Diagram Venn
NOTASI

Notasi Kurung

(A(B(D,E(I,J)),C(F,G,H)))

atau

(A (B(D)(E(I)(J))) (C(F)(G)(H)))
NOTASI
Notasi Tingkat
Tugas 1 :
 Kasus Dibawah Ini Adalah Notasi Pohon
 Rubah Dari Notasi Pohon ke Diagram Venn, Notasi
Kurung dan Notasi Tingkat

Y R S

Q T U W Z

P M N
Tugas 2 :
 Kasus Dibawah Ini Adalah Notasi Tingkat
 Rubah Dari Notasi Tingkat Diagram Venn, Notasi Kurung dan
Notasi Pohon
Istilah Tree / Pohon
Istilah Tree
II. BINARY TREE
 Suatu tree dengan syarat bahwa tiap node
hanya boleh memiliki maksimal dua subtree dan
kedua subtree tersebut harus terpisah.
 Tiap node dalam binary tree hanya boleh
memiliki paling banyak dua child.
POHON BINER TREE
Struktur Data Pohon Biner maksimal memiliki 2 anak.
Jenis-jenis Binary Tree
Complete Binary Tree
Skewed Binary Tree
KAMUS DATA POHON BINER

Kamus Data
Type BTree = record <
Kiri : BTree
Kiri Info Kanan
Info : char
Kanan : BTree >
P : BTree
OPERASI DASAR

1. Create, berguna untuk membentuk sebuah tree baru


yang kosong. pohon = NULL;
2. Search adalah tree yang terurut dimana aturannya
Semua data dibagian kiri sub-tree Dari node t selalu
lebih kecil dari data dalam node t itu sendiri dan
semua datadibagian kanan sub-tree dari node t selalu
lebih besar atau sama dengan datadalam node t .
3. Clear, berguna untuk menghapus semua elemen tree.
pohon = NULL
4. Empty, berguna untuk mengetahui apakah tree
kosong atau tidak int isEmpty(Tree *pohon) {if(pohon
== NULL) return else return 0;}

5. Insert, digunakan untuk menambah node ke dalam


Tree secara rekursif. Jika datayang akan dimasukkan
lebih besar daripada elemen root, maka akan
diletakkan dinode sebelah kanan, sebaliknya jika lebih
kecil maka akan diletakkan di nodesebelah kiri. Untuk
data pertama akan menjadi elemen root.

6. Find, digunakan untuk mencari node di dalam Tree


secara rekursif sampai nodetersebut ditemukan
dengan menggunakan variable bantuan ketemu.
Syaratnya adalah tree tidak boleh kosong.
7. Traverse, yaitu operasi kunjungan terhadap node-node
dalam pohon dimanamasing-masing node akan
dikunjungi sekali.

8. Count, digunakan untuk menghitung jumlah node


dalam Tree.

9. Height, digunakan untuk mengetahui kedalaman


sebuah Tree.

10. Find Min dan Find Max, digunakan untuk mencari nilai
terkecil dan terbesar pada Tree.

11. Child, digunakan untuk mengetahui anak dari sebuah


node (jika punya)
A. Binary Search Tree

Binary Search Tree adalah tree yang terurut (ordered


Binary Tree). Aturan yang harus dipenuhi untuk
membangun sebuah BST adalah sebagai berikut:
1. Semua data dibagian kiri sub-tree dari node t selalu
lebih kecil dari data dalam node t itu sendiri.

2. Semua data dibagian kanan sub-tree dari node t selalu


lebih besar atau sama dengandata dalam node t .
POHON BINER TERURUT
12 22 8 19 10 9 20 4 2 6
ALGORITMA POHON BINER TERURUT
menyisipkan simpul dgn aturan : simpul yang lebih
kecil diletakkan di sebelah kiri simpul

Procedure SisipUrutBTree(input/output P:BTree, input N:integer)


If EmptyTree(P) then
CreateTree(P)
InsertTree(P,N) {untuk info(P)}
Else If N < info(P) then
SisipUrutBTree(P.kiri,N)
else
SisipUrutBTree(P.kanan,N)
Endif
Endif
Tugas 3 :
Buat Pohon Biner Terurut/ Binary Search Tree

a. 7, 2, 8, 5, 9, 6, 4, 3, 1

b. 2, 3, 4, 5, 50, 10, 15, 13, 20, 12, 10, 5, 7

c. 30 10 12 5 27 7 23 9 25 20 21 22

d. 12 90 45 10 5 20 27 7 9 11 30 100 50 12 13

e. 50 35 70 60 40 20 80 50 90 60 15 45 75 25 35
100 10 85 37 65 17 55 62
Pohon Binar Lengkap atau Hampir Lengkap

Pohon binar lengkap (complete binary tree) adalah


pohon binar yang setiap simpulnya memiliki 0
atau 2 cabang, dan penggambarannya urut dari
atas ke bawah, dan dari kiri ke atas. Berikut contoh
pohon binar :
 Jika ‘ditarik’ garis semu secara horisontal di angka 1,
maka node 1 tersebut berada di tingkat (level) 0, nodes 2
dan 3 berada di tingkat (level) 1, nodes 4, 5, 6, dan 7
berada di tingkat 2, dan nodes 8 sampai 15 berada di
tingkat 3.
 Pohon binar hampir lengkap (almost complete) adalah

pohon binar lengkap yang nodes akhirnya tidak ada, atau


secara mudahnya dikatakan bahwa penggambaran nodes
tersebut lengkap (urut dari atas ke bawah dan dari kiri
ke kanan meskipun di bagian akhirnya tidak lengkap).
Berikut contoh pohon binar tersebut:
 Di Gambar 6, pohon (a) adalah pohon lengkap,
sedangkan pohon (b) dan (c) adalah pohon hampir
lengkap, dan pohon (d) bukan pohon lengkap maupun
hampir lengkap karena posisi nodes-nya tidak urut.
Pohon Binar Similar atau Pohon Binar Copies

 Pohon binar similar adalah pohon binar yang


strukturnya sama dengan pohon binar lainnya,
sedangkan pohon binar copies adalah pohon binar yang
struktur maupun isinya sama dengan pohon binar
lainnya. Berikut gambarannya:

Pohon (a), (b), dan (c) adalah similar


Pohon (a) dan (c) adalah copies
B. TRANSVERSAL/PENELUSURAN
DALAM BINARY TREE

Transversal dalam binary tree adalah proses


menelusuri suatu Binary Tree sehingga
sedemikian rupa setiap simpul dikunjungi hanya
1 kali.
3 aktivitas dalam Binary tree Transversal :
1. Kunjungi Root / Akar
2. Telusuri Simpul Kiri / Left
3. Telusuri Simpul Kanan / Right
Tiga macam yang dapat digunakan untuk
mengakses node-node di dalam Binary Tree

INORDER : LEFT – ROOT - RIGHT

PREORDER : ROOT – LEFT – RIGHT

POSTORDER : LEFT – RIGHT - ROOT


Beberapa macam pola penelusuran dalam
Binary Tree Transversal :
1. Pre – Order-Transversal
Pre order Transversal adalah penelusuran yang dimulai
dari semua simpul induk kemudian melajutkan
penelusuran pada anak simpul yang dimulai dari
anak simpul kiri kemudian anak simpul kanan.

{
Kasus : Urutkan Binary Tree Diatas Menjadi Pre Order
Jawaban urutan LEVEL ORDER : 1,2,3,4,5,6,7,8,9
Tugas 4 :
Buat Tranversal.Penelusuran dari gambar struktur
pohon dibawah dengan : Prefix Order, Infix Order, Post
Order dan Level order
III. POHON UMUM
Di mata kuliah Struktur Data atau Teori Graph, ada juga
istilah pohon umum (general tree), yaitu pohon yang di
setiap simpulnya boleh tidak memiliki cabang atau
memiliki cabang berapapun. Berikut contoh skema pohon
umum:
KONVERSI POHON UMUM KE POHON BINER
Anak pertama menjadi anak kiri, anak ke-2 menjadi cucu
kanan, ke-3 jadi cicit kanan dst
Jawaban : Hasil Konversi
Tugas 5 :

KONVERSI POHON UMUM INI KE POHON BINER

Y R S

Q T U W Z

P M N
Tugas 6 :
KONVERSI POHON BINER INI KE POHON UMUM

C
X

Y D

I E
X

J
Tugas Kumpulkan
 18 10 23 5 14 21 33 3 7 17 40 10 19 45 12 18 35
1. Buat Binary Search Tree nya atau Urutan Pohon Binary
Tree
2. Buat Diagram Venn, Notasi Kurung dan Notasi
Tingkat
3. Buat Tranversal/Penelusuran dari gambar struktur
pohon diatas dengan Prefix, Infix, Postfix dan Level
order.
4. Konversi pohon umum ini ke pohon biner

 Buat Tranversalnya dengan perintah Preorder,


Inorder, Postorder dan level order

Anda mungkin juga menyukai