SlideShare a Scribd company logo
STRUKTUR DATA
STIMIK MARDIRA INDONESIA
2014
Tree
• Kumpulan node yang saling terhubung satu sama lain
dalam suatu kesatuan yang membentuk layakya 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.
Tree (2)
• Tree Statik : isi node-nodenya tetap
karena bentuk pohonnya sudah
ditentukan.
• Tree Dinamik : isi nodenya berubah-ubah
karena proses penambahan (insert) dan
penghapusan (delete)
Node Root
• Node root dalam sebuah tree adalah suatu node
yang memiliki hiarki tertinggi dan dapat juga
memiliki node-node anak. Semua node dapat
ditelusuri dari node root tersebut.
• Node root adalah node khusus yang tercipta
pertama kalinya.
• Node-node lain di bawah node root saling
terhubung satu sama lain dan disebut subtree
Implementasi Tree
• Contoh penggunaan struktur pohon :
• Silsilah keluarga
• Parse Tree (pada compiler)
• Struktur File
• Pertandingan
Tree Example
Tree Example
Tree Example
Representasi Tree
Representasi Tree
• Notasi Tingkat
• Notasi Kurung
• (A(B(D,E(I,J)),C(F,G,H)))
Latihan
• Buat diagram venn dan notasi kurung
XX
YY
RR SS
QQ
TT WWUU ZZ
PP
MM NN
Terminologi Tree
Sebuah Tree
Jenis Tree
• 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.
Binary Tree (2)
Binary Tree
Binary Tree
Binary Tree
Node pada binary tree
• Jumlah maksimum node pada setiap tingkat adalah 2n
• Node pada binary tree maksimum berjumlah 2n
-1
Implementasi Program
• Tree dapat dibuat dengan menggunakan linked
list secara rekursif.
• Linked list yang digunakan adalah double linked
list non circular
• Data yang pertama kali masuk akan menjadi
node root.
• Data yang lebih kecil dari data node root akan
masuk dan menempati node kiri dari node root,
sedangkan jika lebih besar dari data node root,
akan masuk dan menempati node di sebelah
kanan node root.
Implementasi Program
Operasi-operasi Tree
• Create: membentuk sebuah tree baru yang
kosong.
• pohon = NULL;
• Clear: menghapus semua elemen tree.
• pohon = NULL;
• Empty: mengetahui apakah tree kosong atau
tidak
• int isEmpty(Tree *pohon){
• if(pohon == NULL) return 1;
• else return 0;
• }
Operasi-operasi Tree
• Insert: menambah node ke dalam Tree secara rekursif. Jika data
yang akan dimasukkan lebih besar daripada elemen root, maka
akan diletakkan di node sebelah kanan, sebaliknya jika lebih kecil
maka akan diletakkan di node sebelah kiri. Untuk data pertama
akan menjadi elemen root.
• Find: mencari node di dalam Tree secara rekursif sampai node
tersebut ditemukan dengan menggunakan variable bantuan
ketemu. Syaratnya adalah tree tidak boleh kosong.
• Traverse: yaitu operasi kunjungan terhadap node-node dalam
pohon dimana masing-masing node akan dikunjungi sekali.
• Count: menghitung jumlah node dalam Tree
• Height : mengetahui kedalaman sebuah Tree
• Find Min dan Find Max : mencari nilai terkecil dan terbesar
pada Tree
• Child : mengetahui anak dari sebuah node (jika punya)
Jenis Transverse
• PreOrder: cetak node yang dikunjungi,
kunjungi left, kunjungi right
• InOrder: kunjungi left, cetak node yang
dikunjungi, kunjungi right
• PostOrder: kunjungi left, kunjungi right,
cetak node yang dikunjungi
Ilustrasi Insert
Ilustrasi Insert
• 4. insert(left,3)
Recursive Insert
• void tambah(Tree **root,int databaru){
• if((*root) == NULL){
• Tree *baru;
• baru = new Tree;
• baru->data = databaru;
• baru->left = NULL;
• baru->right = NULL;
• (*root) = baru;
• (*root)->left = NULL;
• (*root)->right = NULL;
• }
• else if(databaru < (*root)->data)
• tambah(&(*root)->left,databaru);
• else if(databaru > (*root)->data)
• tambah(&(*root)->right,databaru);
• else if(databaru == (*root)->data)
• printf("Data sudah ada!");
• }
Ilustrasi Kunjungan
Ilustrasi Kunjungan
Ilustrasi Kunjungan
Ilustrasi Kunjungan
Kunjungan LevelOrder
• Hasil kunjungan: “ABCDEFGHI”
• Algoritma:
• Siapkan antrian yang kosong
• Inisialisasi: masukkan root ke dalam antrian
• Iterasi: selama Antrian tidak kosong, lakukan:
• Kunjungi elemen pada antrian
• Masukkan node->kiri dan node->kanan ke dalam antrian
asal node tersebut tidak NULL.
• Keluarkan elemen pertama pada antrian
Level Order
1
2 3
4 5 6 7
-Masukkan root ke antrian
Antrian : 1
-Kunjungi root (1), masukkan node kiri dan kanan
Antrian : 1, 2, 3
-Keluarkan antrian terdepan (node 1)
Antrian : 2, 3
-Kunjungi node 2, masukkan 4 dan 5
Antrian : 2, 3, 4, 5
-Keluarkan node terdepan (node 2)
Antrian : 3, 4, 5
-Kunjungi node 3, masukkan 6 dan 7
Antrian : 3, 4, 5, 6, 7
-Keluarkan antrian terdepan (node 3)
Antrian : 4, 5, 6, 7
-Kunjungi node 4, tidak ada anak, keluarkan (4)
-Kunjungi node 5, tidak ada anak, keluarkan (5)
-Kunjungi node 6, tidak ada anak, keluarkan (6)
-Kunjungi node 7, tidak ada anak, keluarkan (7)
Level Order pseudocode
• void LevelOrder(Tree *root)
• {
• Queue queue;
• Enqueue(queue,root);
• while(isEmpty(queue) != 1)
• {
• Tree n = GetQueue(); //visit
• print(n->data);
if(n->left!=NULL)
Enqueue(n->left); //Enqueue if exists
• if(n->right!=NULL)
Enqueue(n->right); //Enqueue if exists
• Dequeue(queue); //out
• }
• }
Contoh implementasi
• Misalkan suatu ekspresi berikut: 3 + 2 * 5
– 4
Searching in Tree
• Tree *cari(Tree *root,int data){
• if(root==NULL) return NULL;
• else if(data < root->data) return (cari(root->left,data));
• else if(data > root->data) return (cari(root-
>right,data));
• else if(data == root->data) return root;
• }
• Pencarian dilakukan secara rekursif, dimulai dari node root, jika
data yang dicari lebih kecil daripada data node root, maka
pencarian dilakukan di sub node sebelah kiri, sedangkan jika data
yang dicari lebih besar daripada data node root, maka pencarian
dilakukan di sub node sebelah kanan, jika data yang dicari sama
dengan data suatu node berarti kembalikan node tersebut dan
berarti data ditemukan.
Ilustrasi Searching
Keterangan Searching
• Root = 6 dan 8 > 6, maka akan dicari di sub
node bagian kanan root.
• Root = 10 dan 8 < 10, maka akan dicari di sub
node bagian kiri root.
• Root = 7 dan 8 > 7, maka akan dicari di sub
node bagian kanan root.
• Root = 8, berarti 8 = 8, maka akan
dikembalikan node tersebut dan dianggap
ketemu!
Jumlah Node Tree
• int count(Tree *root)
• {
• if (root == NULL) return 0;
• return count(root->left) + count(root->right) + 1;
• }
• Penghitungan jumlah node dalam tree dilakukan dengan
cara mengunjungi setiap node, dimulai dari root ke
subtree kiri, kemudian ke subtree kanan dan masing-
masing node dicatat jumlahnya, dan terakhir jumlah
node yang ada di subtree kiri dijumlahkan dengan
jumlah node yang ada di subtree kanan ditambah 1
yaitu node root.
Kedalaman (height)
Node Tree
• int height(Tree *root)
• {
• if (root == NULL) return -1;
• int u = height(root->left), v = height(root-
>right);
• if (u > v) return u+1;
• else return v+1;
• }
• Penghitungan kedalaman dihitung dari setelah root, yang dimulai dari
subtree bagian kiri kemudian ke subtree bagian kanan. Untuk masing-
masing kedalaman kiri dan kanan akan dibandingkan, jika ternyata subtree
kiri lebih dalam, maka yang dipakai adalah jumlah kedalaman subtree kiri,
demikian sebaliknya. Hal ini didasarkan pada prinsip binary tree, dimana
tree-nya selalu memiliki maksimal 2 node anak.
Find Min Node
• Tree *FindMin(Tree *root)
• {
• if(root == NULL)
• return NULL;
• else
• if(root->left == NULL)
• return root;
• else
• return FindMin(root->left);
• }
• Penggunaan:
• Tree *t = FindMin(pohon);
Mencari Leaf (daun)
• void leaf(Tree *root){
• if(root == NULL) printf("kosong!");
• if(root->left!=NULL) leaf(root->left);
• if(root->right!=NULL) leaf(root->right);
• if(root->right == NULL && root->left == NULL)
printf("%d ",root->data);
• }
Konversi Tree Biasa ke Binary
Tree
Anak pertama menjadi anak kiri, anak ke-2 menjadi cucu kanan, ke-3
jadi cicit kanan dst
Pembentukan Tree dari
Preorder
• Baca hasil Preorder dari paling kanan ke
kiri untuk mencari node yang derajatnya
lebih dari 0, kemudian ambil node
sebanyak derajatnya ke kanan.
Hilangkan node yang terambil tersebut
dari hasil Preorder
• Lanjutkan langkah 1, dan seterusnya
sampai semua hasil traversal habis
Contoh
• Preorder: U V W X Y
• Derajat: 2 2 0 0 0
• Derajat bukan nol yang ditemukan
pertama dari kanan adalah V, ambil 2
node kekanan, W dan X, hilangkan.
• Lanjutkan, ketemu U berderajat 2, berarti
U punya anak V dan Y
Soal-soal
• Buatlah fungsi untuk menghapus suatu
node pada Tree!
• Buatlah program lengkap untuk
memanipulasi dan mensimulasikan tree
dengan berbasis menu!

More Related Content

What's hot

Algoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur DataAlgoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur Data
AndiNurkholis1
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur data
Asep Jaenudin
 
Linked List
Linked ListLinked List
Linked List
said zulhelmi
 
Algoritma - prosedur dan fungsi
Algoritma - prosedur dan fungsiAlgoritma - prosedur dan fungsi
Algoritma - prosedur dan fungsiZombie Black
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
ahmad haidaroh
 
Bab 2 Aljabar Relasional
Bab 2   Aljabar RelasionalBab 2   Aljabar Relasional
Bab 2 Aljabar RelasionalRatzman III
 
Data Base Tiket Pesawat
Data Base Tiket PesawatData Base Tiket Pesawat
Data Base Tiket Pesawat
naufals11
 
Graph dalam Struktur Data
Graph dalam Struktur DataGraph dalam Struktur Data
Graph dalam Struktur Data
Made Aditya
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquer
ohohervin
 
Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)
eka pandu cynthia
 
Pushdown Automata
Pushdown Automata Pushdown Automata
Pushdown Automata
Frestiany Regina Putri
 
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
4.1 Operasi Dasar Singly Linked List  1 (primitive list)4.1 Operasi Dasar Singly Linked List  1 (primitive list)
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
Kelinci Coklat
 
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLLaporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Shofura Kamal
 
Bagan terstruktur
Bagan terstrukturBagan terstruktur
Bagan terstruktur
iimpunya3
 
Pertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon BinerPertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon Biner
Endang Retnoningsih
 
Himpunan matematika diskrit
Himpunan matematika diskritHimpunan matematika diskrit
Himpunan matematika diskrit
Zuhri Patria Siregar
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
Banta Cut
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsi
Siti Khotijah
 

What's hot (20)

Algoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur DataAlgoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur Data
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur data
 
Linked List
Linked ListLinked List
Linked List
 
Algoritma - prosedur dan fungsi
Algoritma - prosedur dan fungsiAlgoritma - prosedur dan fungsi
Algoritma - prosedur dan fungsi
 
Pertemuan 10
Pertemuan 10Pertemuan 10
Pertemuan 10
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
 
Bab 2 Aljabar Relasional
Bab 2   Aljabar RelasionalBab 2   Aljabar Relasional
Bab 2 Aljabar Relasional
 
Data Base Tiket Pesawat
Data Base Tiket PesawatData Base Tiket Pesawat
Data Base Tiket Pesawat
 
Graph dalam Struktur Data
Graph dalam Struktur DataGraph dalam Struktur Data
Graph dalam Struktur Data
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquer
 
Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)
 
Pushdown Automata
Pushdown Automata Pushdown Automata
Pushdown Automata
 
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
4.1 Operasi Dasar Singly Linked List  1 (primitive list)4.1 Operasi Dasar Singly Linked List  1 (primitive list)
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLLaporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
 
Bagan terstruktur
Bagan terstrukturBagan terstruktur
Bagan terstruktur
 
Pertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon BinerPertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon Biner
 
Himpunan matematika diskrit
Himpunan matematika diskritHimpunan matematika diskrit
Himpunan matematika diskrit
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsi
 

Similar to Struktur Data Tree

Struktur affif
Struktur affifStruktur affif
Struktur affif
Sejahtera Affif
 
Bab 9 tree
Bab 9 treeBab 9 tree
Bab 9 treearii_manroe
 
Biner
BinerBiner
Biner
Ayu_lestari
 
Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)
Citra Kapindo
 
Tree
TreeTree
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Setia Juli Irzal Ismail
 
Algorithms and Data Structures
 Algorithms and Data Structures Algorithms and Data Structures
Algorithms and Data Structures
Noval C. Kesuma
 
Bab 5 linked list
Bab 5 linked listBab 5 linked list
Bab 5 linked list
Fahuda E
 
Asd sesi searching part1
Asd sesi searching part1Asd sesi searching part1
Asd sesi searching part1
BintangWijaya5
 
Tree
TreeTree
Bab 6 singly_linked_list
Bab 6 singly_linked_listBab 6 singly_linked_list
Bab 6 singly_linked_list
arii_manroe
 
Asd sesi tree part1
Asd sesi tree part1Asd sesi tree part1
Asd sesi tree part1
BintangWijaya5
 
Asd sesi searching part 2
Asd sesi searching part 2Asd sesi searching part 2
Asd sesi searching part 2
BintangWijaya5
 
Asd sesi tree part2
Asd sesi tree part2Asd sesi tree part2
Asd sesi tree part2
BintangWijaya5
 
Buku struktur data pages-111-122
Buku struktur data pages-111-122Buku struktur data pages-111-122
Buku struktur data pages-111-122
BintangWijaya5
 
Bab 10 tree_lanjutan
Bab 10 tree_lanjutanBab 10 tree_lanjutan
Bab 10 tree_lanjutan
arii_manroe
 
Algoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohonAlgoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohon
Georgius Rinaldo
 

Similar to Struktur Data Tree (20)

Struktur affif
Struktur affifStruktur affif
Struktur affif
 
Tistrukdat10
Tistrukdat10Tistrukdat10
Tistrukdat10
 
Bab 9 tree
Bab 9 treeBab 9 tree
Bab 9 tree
 
Biner
BinerBiner
Biner
 
Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)
 
Tree
TreeTree
Tree
 
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
 
Algorithms and Data Structures
 Algorithms and Data Structures Algorithms and Data Structures
Algorithms and Data Structures
 
Bab 5 linked list
Bab 5 linked listBab 5 linked list
Bab 5 linked list
 
8
88
8
 
Asd sesi searching part1
Asd sesi searching part1Asd sesi searching part1
Asd sesi searching part1
 
Tree
TreeTree
Tree
 
Bab 6 singly_linked_list
Bab 6 singly_linked_listBab 6 singly_linked_list
Bab 6 singly_linked_list
 
Asd sesi tree part1
Asd sesi tree part1Asd sesi tree part1
Asd sesi tree part1
 
Pertemuan 4 revisijan2013-mhs
Pertemuan 4 revisijan2013-mhsPertemuan 4 revisijan2013-mhs
Pertemuan 4 revisijan2013-mhs
 
Asd sesi searching part 2
Asd sesi searching part 2Asd sesi searching part 2
Asd sesi searching part 2
 
Asd sesi tree part2
Asd sesi tree part2Asd sesi tree part2
Asd sesi tree part2
 
Buku struktur data pages-111-122
Buku struktur data pages-111-122Buku struktur data pages-111-122
Buku struktur data pages-111-122
 
Bab 10 tree_lanjutan
Bab 10 tree_lanjutanBab 10 tree_lanjutan
Bab 10 tree_lanjutan
 
Algoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohonAlgoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohon
 

More from Siti Khotijah

GPRS: Komunikasi Data Melalui Jaringan Komunikasi Bergerak
GPRS: Komunikasi Data Melalui Jaringan Komunikasi BergerakGPRS: Komunikasi Data Melalui Jaringan Komunikasi Bergerak
GPRS: Komunikasi Data Melalui Jaringan Komunikasi Bergerak
Siti Khotijah
 
Global System for Mobile Communication (GSM)
Global System for Mobile Communication (GSM)Global System for Mobile Communication (GSM)
Global System for Mobile Communication (GSM)
Siti Khotijah
 
Matematika diskrit tree
Matematika diskrit  treeMatematika diskrit  tree
Matematika diskrit tree
Siti Khotijah
 
Matematika Diskrit graf
Matematika Diskrit grafMatematika Diskrit graf
Matematika Diskrit graf
Siti Khotijah
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
Siti Khotijah
 
Analisis Perangkat PDA (Personal Digital Assistant)
Analisis Perangkat PDA (Personal Digital Assistant)Analisis Perangkat PDA (Personal Digital Assistant)
Analisis Perangkat PDA (Personal Digital Assistant)
Siti Khotijah
 
Aplikasi Mobile
Aplikasi MobileAplikasi Mobile
Aplikasi Mobile
Siti Khotijah
 
Aljabar rev
Aljabar  revAljabar  rev
Aljabar rev
Siti Khotijah
 
Modul visual basic
Modul visual basicModul visual basic
Modul visual basic
Siti Khotijah
 
Matematika diskrit Aplikasi Graf / Graf
Matematika diskrit  Aplikasi Graf / GrafMatematika diskrit  Aplikasi Graf / Graf
Matematika diskrit Aplikasi Graf / Graf
Siti Khotijah
 

More from Siti Khotijah (10)

GPRS: Komunikasi Data Melalui Jaringan Komunikasi Bergerak
GPRS: Komunikasi Data Melalui Jaringan Komunikasi BergerakGPRS: Komunikasi Data Melalui Jaringan Komunikasi Bergerak
GPRS: Komunikasi Data Melalui Jaringan Komunikasi Bergerak
 
Global System for Mobile Communication (GSM)
Global System for Mobile Communication (GSM)Global System for Mobile Communication (GSM)
Global System for Mobile Communication (GSM)
 
Matematika diskrit tree
Matematika diskrit  treeMatematika diskrit  tree
Matematika diskrit tree
 
Matematika Diskrit graf
Matematika Diskrit grafMatematika Diskrit graf
Matematika Diskrit graf
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
 
Analisis Perangkat PDA (Personal Digital Assistant)
Analisis Perangkat PDA (Personal Digital Assistant)Analisis Perangkat PDA (Personal Digital Assistant)
Analisis Perangkat PDA (Personal Digital Assistant)
 
Aplikasi Mobile
Aplikasi MobileAplikasi Mobile
Aplikasi Mobile
 
Aljabar rev
Aljabar  revAljabar  rev
Aljabar rev
 
Modul visual basic
Modul visual basicModul visual basic
Modul visual basic
 
Matematika diskrit Aplikasi Graf / Graf
Matematika diskrit  Aplikasi Graf / GrafMatematika diskrit  Aplikasi Graf / Graf
Matematika diskrit Aplikasi Graf / Graf
 

Recently uploaded

SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docxSOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
MuhammadBagusAprilia1
 
ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_
setiatinambunan
 
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERILAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
PURWANTOSDNWATES2
 
PPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptxPPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptx
Kurnia Fajar
 
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docxForm B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
EkoPutuKromo
 
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdfRHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
asyi1
 
Laporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdfLaporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdf
yuniarmadyawati361
 
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docxINSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
lindaagina84
 
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogortugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
WILDANREYkun
 
Program Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdfProgram Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdf
erlita3
 
Patofisiologi Sistem Endokrin hormon pada sistem endokrin
Patofisiologi Sistem Endokrin hormon pada sistem endokrinPatofisiologi Sistem Endokrin hormon pada sistem endokrin
Patofisiologi Sistem Endokrin hormon pada sistem endokrin
rohman85
 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
DataSupriatna
 
Seminar: Sekolah Alkitab Liburan (SAL) 2024
Seminar: Sekolah Alkitab Liburan (SAL) 2024Seminar: Sekolah Alkitab Liburan (SAL) 2024
Seminar: Sekolah Alkitab Liburan (SAL) 2024
SABDA
 
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
MirnasariMutmainna1
 
Prensentasi Visi Misi Sekolah dalam rangka observasi pengawas
Prensentasi Visi Misi Sekolah dalam rangka observasi pengawasPrensentasi Visi Misi Sekolah dalam rangka observasi pengawas
Prensentasi Visi Misi Sekolah dalam rangka observasi pengawas
suprihatin1885
 
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptxPRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
muhammadyudiyanto55
 
MATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdf
MATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdfMATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdf
MATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdf
ssuser289c2f1
 
Koneksi Antar Materi Modul 1.4.ppt x
Koneksi Antar Materi Modul 1.4.ppt           xKoneksi Antar Materi Modul 1.4.ppt           x
Koneksi Antar Materi Modul 1.4.ppt x
johan199969
 
Sapawarga - Manual Guide PPDB Tahun 2024.pdf
Sapawarga - Manual Guide PPDB Tahun 2024.pdfSapawarga - Manual Guide PPDB Tahun 2024.pdf
Sapawarga - Manual Guide PPDB Tahun 2024.pdf
TarkaTarka
 
INDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdf
INDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdfINDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdf
INDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdf
NurSriWidyastuti1
 

Recently uploaded (20)

SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docxSOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
 
ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_
 
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERILAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
 
PPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptxPPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptx
 
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docxForm B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
 
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdfRHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
 
Laporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdfLaporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdf
 
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docxINSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
 
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogortugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
 
Program Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdfProgram Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdf
 
Patofisiologi Sistem Endokrin hormon pada sistem endokrin
Patofisiologi Sistem Endokrin hormon pada sistem endokrinPatofisiologi Sistem Endokrin hormon pada sistem endokrin
Patofisiologi Sistem Endokrin hormon pada sistem endokrin
 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
 
Seminar: Sekolah Alkitab Liburan (SAL) 2024
Seminar: Sekolah Alkitab Liburan (SAL) 2024Seminar: Sekolah Alkitab Liburan (SAL) 2024
Seminar: Sekolah Alkitab Liburan (SAL) 2024
 
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
 
Prensentasi Visi Misi Sekolah dalam rangka observasi pengawas
Prensentasi Visi Misi Sekolah dalam rangka observasi pengawasPrensentasi Visi Misi Sekolah dalam rangka observasi pengawas
Prensentasi Visi Misi Sekolah dalam rangka observasi pengawas
 
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptxPRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
 
MATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdf
MATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdfMATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdf
MATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdf
 
Koneksi Antar Materi Modul 1.4.ppt x
Koneksi Antar Materi Modul 1.4.ppt           xKoneksi Antar Materi Modul 1.4.ppt           x
Koneksi Antar Materi Modul 1.4.ppt x
 
Sapawarga - Manual Guide PPDB Tahun 2024.pdf
Sapawarga - Manual Guide PPDB Tahun 2024.pdfSapawarga - Manual Guide PPDB Tahun 2024.pdf
Sapawarga - Manual Guide PPDB Tahun 2024.pdf
 
INDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdf
INDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdfINDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdf
INDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdf
 

Struktur Data Tree

  • 2. Tree • Kumpulan node yang saling terhubung satu sama lain dalam suatu kesatuan yang membentuk layakya 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.
  • 3. Tree (2) • Tree Statik : isi node-nodenya tetap karena bentuk pohonnya sudah ditentukan. • Tree Dinamik : isi nodenya berubah-ubah karena proses penambahan (insert) dan penghapusan (delete)
  • 4. Node Root • Node root dalam sebuah tree adalah suatu node yang memiliki hiarki tertinggi dan dapat juga memiliki node-node anak. Semua node dapat ditelusuri dari node root tersebut. • Node root adalah node khusus yang tercipta pertama kalinya. • Node-node lain di bawah node root saling terhubung satu sama lain dan disebut subtree
  • 5. Implementasi Tree • Contoh penggunaan struktur pohon : • Silsilah keluarga • Parse Tree (pada compiler) • Struktur File • Pertandingan
  • 10. Representasi Tree • Notasi Tingkat • Notasi Kurung • (A(B(D,E(I,J)),C(F,G,H)))
  • 11. Latihan • Buat diagram venn dan notasi kurung XX YY RR SS QQ TT WWUU ZZ PP MM NN
  • 14. Jenis Tree • 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.
  • 19. Node pada binary tree • Jumlah maksimum node pada setiap tingkat adalah 2n • Node pada binary tree maksimum berjumlah 2n -1
  • 20. Implementasi Program • Tree dapat dibuat dengan menggunakan linked list secara rekursif. • Linked list yang digunakan adalah double linked list non circular • Data yang pertama kali masuk akan menjadi node root. • Data yang lebih kecil dari data node root akan masuk dan menempati node kiri dari node root, sedangkan jika lebih besar dari data node root, akan masuk dan menempati node di sebelah kanan node root.
  • 22. Operasi-operasi Tree • Create: membentuk sebuah tree baru yang kosong. • pohon = NULL; • Clear: menghapus semua elemen tree. • pohon = NULL; • Empty: mengetahui apakah tree kosong atau tidak • int isEmpty(Tree *pohon){ • if(pohon == NULL) return 1; • else return 0; • }
  • 23. Operasi-operasi Tree • Insert: menambah node ke dalam Tree secara rekursif. Jika data yang akan dimasukkan lebih besar daripada elemen root, maka akan diletakkan di node sebelah kanan, sebaliknya jika lebih kecil maka akan diletakkan di node sebelah kiri. Untuk data pertama akan menjadi elemen root. • Find: mencari node di dalam Tree secara rekursif sampai node tersebut ditemukan dengan menggunakan variable bantuan ketemu. Syaratnya adalah tree tidak boleh kosong. • Traverse: yaitu operasi kunjungan terhadap node-node dalam pohon dimana masing-masing node akan dikunjungi sekali. • Count: menghitung jumlah node dalam Tree • Height : mengetahui kedalaman sebuah Tree • Find Min dan Find Max : mencari nilai terkecil dan terbesar pada Tree • Child : mengetahui anak dari sebuah node (jika punya)
  • 24. Jenis Transverse • PreOrder: cetak node yang dikunjungi, kunjungi left, kunjungi right • InOrder: kunjungi left, cetak node yang dikunjungi, kunjungi right • PostOrder: kunjungi left, kunjungi right, cetak node yang dikunjungi
  • 26. Ilustrasi Insert • 4. insert(left,3)
  • 27. Recursive Insert • void tambah(Tree **root,int databaru){ • if((*root) == NULL){ • Tree *baru; • baru = new Tree; • baru->data = databaru; • baru->left = NULL; • baru->right = NULL; • (*root) = baru; • (*root)->left = NULL; • (*root)->right = NULL; • } • else if(databaru < (*root)->data) • tambah(&(*root)->left,databaru); • else if(databaru > (*root)->data) • tambah(&(*root)->right,databaru); • else if(databaru == (*root)->data) • printf("Data sudah ada!"); • }
  • 31. Ilustrasi Kunjungan Kunjungan LevelOrder • Hasil kunjungan: “ABCDEFGHI” • Algoritma: • Siapkan antrian yang kosong • Inisialisasi: masukkan root ke dalam antrian • Iterasi: selama Antrian tidak kosong, lakukan: • Kunjungi elemen pada antrian • Masukkan node->kiri dan node->kanan ke dalam antrian asal node tersebut tidak NULL. • Keluarkan elemen pertama pada antrian
  • 32. Level Order 1 2 3 4 5 6 7 -Masukkan root ke antrian Antrian : 1 -Kunjungi root (1), masukkan node kiri dan kanan Antrian : 1, 2, 3 -Keluarkan antrian terdepan (node 1) Antrian : 2, 3 -Kunjungi node 2, masukkan 4 dan 5 Antrian : 2, 3, 4, 5 -Keluarkan node terdepan (node 2) Antrian : 3, 4, 5 -Kunjungi node 3, masukkan 6 dan 7 Antrian : 3, 4, 5, 6, 7 -Keluarkan antrian terdepan (node 3) Antrian : 4, 5, 6, 7 -Kunjungi node 4, tidak ada anak, keluarkan (4) -Kunjungi node 5, tidak ada anak, keluarkan (5) -Kunjungi node 6, tidak ada anak, keluarkan (6) -Kunjungi node 7, tidak ada anak, keluarkan (7)
  • 33. Level Order pseudocode • void LevelOrder(Tree *root) • { • Queue queue; • Enqueue(queue,root); • while(isEmpty(queue) != 1) • { • Tree n = GetQueue(); //visit • print(n->data); if(n->left!=NULL) Enqueue(n->left); //Enqueue if exists • if(n->right!=NULL) Enqueue(n->right); //Enqueue if exists • Dequeue(queue); //out • } • }
  • 34. Contoh implementasi • Misalkan suatu ekspresi berikut: 3 + 2 * 5 – 4
  • 35. Searching in Tree • Tree *cari(Tree *root,int data){ • if(root==NULL) return NULL; • else if(data < root->data) return (cari(root->left,data)); • else if(data > root->data) return (cari(root- >right,data)); • else if(data == root->data) return root; • } • Pencarian dilakukan secara rekursif, dimulai dari node root, jika data yang dicari lebih kecil daripada data node root, maka pencarian dilakukan di sub node sebelah kiri, sedangkan jika data yang dicari lebih besar daripada data node root, maka pencarian dilakukan di sub node sebelah kanan, jika data yang dicari sama dengan data suatu node berarti kembalikan node tersebut dan berarti data ditemukan.
  • 37. Keterangan Searching • Root = 6 dan 8 > 6, maka akan dicari di sub node bagian kanan root. • Root = 10 dan 8 < 10, maka akan dicari di sub node bagian kiri root. • Root = 7 dan 8 > 7, maka akan dicari di sub node bagian kanan root. • Root = 8, berarti 8 = 8, maka akan dikembalikan node tersebut dan dianggap ketemu!
  • 38. Jumlah Node Tree • int count(Tree *root) • { • if (root == NULL) return 0; • return count(root->left) + count(root->right) + 1; • } • Penghitungan jumlah node dalam tree dilakukan dengan cara mengunjungi setiap node, dimulai dari root ke subtree kiri, kemudian ke subtree kanan dan masing- masing node dicatat jumlahnya, dan terakhir jumlah node yang ada di subtree kiri dijumlahkan dengan jumlah node yang ada di subtree kanan ditambah 1 yaitu node root.
  • 39. Kedalaman (height) Node Tree • int height(Tree *root) • { • if (root == NULL) return -1; • int u = height(root->left), v = height(root- >right); • if (u > v) return u+1; • else return v+1; • } • Penghitungan kedalaman dihitung dari setelah root, yang dimulai dari subtree bagian kiri kemudian ke subtree bagian kanan. Untuk masing- masing kedalaman kiri dan kanan akan dibandingkan, jika ternyata subtree kiri lebih dalam, maka yang dipakai adalah jumlah kedalaman subtree kiri, demikian sebaliknya. Hal ini didasarkan pada prinsip binary tree, dimana tree-nya selalu memiliki maksimal 2 node anak.
  • 40. Find Min Node • Tree *FindMin(Tree *root) • { • if(root == NULL) • return NULL; • else • if(root->left == NULL) • return root; • else • return FindMin(root->left); • } • Penggunaan: • Tree *t = FindMin(pohon);
  • 41. Mencari Leaf (daun) • void leaf(Tree *root){ • if(root == NULL) printf("kosong!"); • if(root->left!=NULL) leaf(root->left); • if(root->right!=NULL) leaf(root->right); • if(root->right == NULL && root->left == NULL) printf("%d ",root->data); • }
  • 42. Konversi Tree Biasa ke Binary Tree Anak pertama menjadi anak kiri, anak ke-2 menjadi cucu kanan, ke-3 jadi cicit kanan dst
  • 43. Pembentukan Tree dari Preorder • Baca hasil Preorder dari paling kanan ke kiri untuk mencari node yang derajatnya lebih dari 0, kemudian ambil node sebanyak derajatnya ke kanan. Hilangkan node yang terambil tersebut dari hasil Preorder • Lanjutkan langkah 1, dan seterusnya sampai semua hasil traversal habis
  • 44. Contoh • Preorder: U V W X Y • Derajat: 2 2 0 0 0 • Derajat bukan nol yang ditemukan pertama dari kanan adalah V, ambil 2 node kekanan, W dan X, hilangkan. • Lanjutkan, ketemu U berderajat 2, berarti U punya anak V dan Y
  • 45. Soal-soal • Buatlah fungsi untuk menghapus suatu node pada Tree! • Buatlah program lengkap untuk memanipulasi dan mensimulasikan tree dengan berbasis menu!