Anda di halaman 1dari 34

ALGORITMA

DAN
STRUKTUR DATA

TREE

Tri Afirianto, S.T., M.T. | tri.afirianto@ub.ac.id


FILKOM | UB
Jenis Struktur Data
• Struktur Data Linier
• Array
• LinkedList
• Stack
• Queue
• Struktur Data Non-Linier
• Tree
• Graph
Tree (Pohon)
• Dalam dunia nyata, sebuah pohon memiliki :
• akar,
• cabang,
• daun
• Dalam dunia komputer, pohon (tree) memiliki 3 (tiga) bagian
tersebut namun dalam definisi yang lain
Linear List dan Tree
• Linear list  digunakan untuk data yang terurut secara serial
• Contoh : nama mahasiswa satu kelas, nama hari dalam minggu, nama bulan
dalam tahun, dll
• Tree  digunakan untuk data yang terurut secara hirarki (one to
many)
• Contoh : tingkatan pegawai dalam perusahaan (direktor, manager, kepala
divisi, dst), tingkatan class di Java, dll
Contoh Tree
• Struktur organisasi sebuah perusahaan
Contoh Tree
• Isi sebuah buku
Contoh Tree
• File system
Definisi
• Kumpulan element yang saling terhubung secara hirarki (one to many)
• Element pada tree disebut node

Aturan :
• Sebuah node hanya boleh memiliki satu induk/parent. Kecuali root,
tidak memiliki induk/parent.
• Setiap node dapat memiliki nol atau banyak cabang anak (one to
many).
• Node yang tidak memiliki cabang anak disebut daun.
Contoh Tree
• Terdiri dari 8 node/element.
A
• Root?
• Daun? B C

D E F

G H

Root : Node A
Daun : Node G, Node H, Node F
Contoh: Class Java

Object root

Number Throwable OutputStream


children of root

Integer Double Exception FileOutputStream


grand children of root
RuntimeException
great grand child of root
Root
• Root (Node Root)
• node yang memiliki hirarki tertinggi
• Node yang pertama kali dibentuk
• sehingga tidak memiliki parent (node induk)
• Penelusuran path tiap node dimulai dari root
Subtrees
• Node-node lain di bawah root yang saling terhubung satu sama lain
secara hirarki
Object root

Number Throwable OutputStream

Integer Double Exception FileOutputStream

Subtree 1 RuntimeException Subtree 3

Subtree 2
Height
• Jumlah jalur terpanjang dari suatu node hingga node leaf
Object 3

1 Number Throwable OutputStream


1
2

Integer Double Exception FileOutputStream


0 0 1
0
RuntimeException
0
Depth
• Jumlah jalur dari suatu node ke node root.

Object 0

Number Throwable OutputStream 1

Integer Double Exception FileOutputStream 2

RuntimeException 3
Level
• Posisi hirarki dari sebuah node.

Object Level 1

Number Throwable OutputStream Level 2

Integer Double Exception FileOutputStream


Level 3

RuntimeException
Level 4
Istilah pada Tree
Contoh Tree

B C

F
D E

H I
Latihan
Ancestor (F)?
Descendant (B)?
Parent (I)?
Child (C)?
Sibling (G)?
Size?
Height?
Root?
Leaf?
Degree (C)?
Latihan
• Gambarkan tree dari representasi berikut:
• DF
• DB
Tentukan :
• KJ
• KL 1. Root
• BA 2. Leaf
• BC 3. Height
• H D
• HK 4. Child H
• FE 5. Parent A
• FG
• JI
Representasi Tree
Representasi Tree?
• Database, file xml
• Paling mudah menggunakan database
Operasi pada Tree
1. Deklarasi
2. Inisialisasi
3. Cek Kosong
4. Penambahan
5. Pengaksesan
6. Jumlah Node
7. Tampil Parent
8. Tampil Child
9. Jumlah Anak
(1) Deklarasi
• Proses yang harus dilakukan pertama kali adalah
deklarasi/menyiapkan tempat
• Langkah yang harus dilakukan adalah
• Deklarasi class
• Deklarasi struktur data
Deklarasi dan Kontruktor Class Node
Deklarasi dan Konstruktor Class Tree
(2) Inisialisasi
• Proses inisialisasi dilakukan dengan memberikan nilai awal pada
variabel root dengan nilai null.
• Pada bahasa pemrograman Java, nilai default dari object adalah null,
sehingga tanpa perlu dilakukan inisialisasi, nilai dari root adalah null.
(3) Cek Kosong
• Operasi yang digunakan untuk mengecek kondisi tree dalam keadaan
kosong
• Operasi ini harus dapat mengembalikan nilai true jika tree kosong dan
false jika sebaliknya
• dapat menggunakan pengecekan root jika nilainya null berarti tree kosong
Cek Kosong suatu Tree
(4) Penambahan
• Karena sifat dari tree adalah one to many, maka penambahan dapat
dilakukan berdasarkan node parent-nya
• Diasumsikan pada tree yang dibangun tidak ada nilai node yang sama
• Penambahan node baru dilakukan dengan cara mencari node parent
• Jika node parent ketemu, maka node baru ditambahkan sebagai child-nya
• Jika tidak ketemu, maka menampilkan pesan bahwa node parent tidak
ditemukan.
• Pencarian node parent dilakukan secara rekursif dimulai dari node
root
Penambahan Node Baru
(5) Pengaksesan
• Digunakan untuk menampilkan seluruh node dari tree
• Dilakukan secara rekursif dimulai dari node root
Pengaksesan Seluruh Node pada Tree
PERTANYAAN???
PERTANYAAN???

Anda mungkin juga menyukai