SlideShare a Scribd company logo
1 of 18
Tree
Rakhmi Khalida
Binary Tree
 sebuah pengorganisasian secara hirarki dari
beberapa buah simpul, dimana masing-
masing simpul tidak mempunyai anak lebih
dari 2.
 Simpul yang berada di bawah sebuah simpul
dinamakan anak dari simpul tersebut.
 Simpul yang berada di atas sebuah simpul
dinamakan induk dari simpul tersebut.
Binary Tree
Istilah dalam Tree
Term Definition
Node Sebuah elemen dalam sebuah tree; berisi sebuah informasi
Parent Node yang berada di atas node lain secara langsung; B adalah
parent dari D dan E
Child Cabang langsung dari sebuah node; D dan E merupakan children
dari B
Root Node teratas yang tidak punya parent
Sibling Sebuah node lain yang memiliki parent yang sama; Sibling dari
B adalah C karena memiliki parent yang sama yaitu A
Leaf Sebuah node yang tidak memiliki children. D, E, F, G, I adalah
leaf. Leaf biasa disebut sebagai external node, sedangkan node
selainnya disebut sebagai internal node. B, A, C, H adalah
internal node
Level Semua node yang memiliki jarak yang sama dari root.
Alevel 0; B,Clevel 1; D,E,F,G,Hlevel 2; Ilevel 3
Depth Jumlah level yang ada dalam tree
Complete Semua parent memiliki children yang penuh
Balanced Semua subtree memiliki depth yang sama
Struktur Binary Tree
 Masing-masing simpul dalam binary tree
terdiri dari tiga bagian yaitu sebuah data
dan dua buah pointer yang dinamakan
pointer kiri dan kanan.
Deklarasi Tree
typedef char typeInfo;
typedef struct Node tree;
struct Node {
typeInfo info;
tree *kiri; /* cabang kiri */
tree *kanan; /* cabang kanan */
};
Pembentukan Tree
 Dapat dilakukan dengan dua cara : rekursif
dan non rekursif
 Perlu memperhatikan kapan suatu node akan
dipasang sebagai node kiri dan kapan
sebagai node kanan.
 Misalnya ditentukan, node yang berisi info
yang nilainya “lebih besar” dari parent akan
ditempatkan di sebelah kanan dan yang
“lebih kecil” di sebelah kiri.
 Sebagai contoh jika kita memiliki informasi
“HKACBLJ” maka pohon biner yang terbentuk
Pembentukan Tree
Metode Traversal
 Salah satu operasi yang paling umum dilakukan
terhadap sebuah tree adalah kunjungan (traversing)
 Sebuah kunjungan berawal dari root, mengunjungi
setiap node dalam tree tersebut tepat hanya sekali
 Mengunjungi artinya memproses data/info yang ada pada
node ybs
 Kunjungan bisa dilakukan dengan 3 cara:
1. Preorder
2. Inorder
3. Postorder
 Ketiga macam kunjungan tersebut bisa dilakukan
secara rekursif dan non rekursif
Preorder
 Kunjungan preorder, juga disebut
dengan depth first order, menggunakan
urutan:
Cetak isi simpul yang dikunjungi
Kunjungi cabang kiri
Kunjungi cabang kanan
Preorder
void preorder(pohon ph)
{
if (ph != NULL)
{
printf("%c ", ph->info);
preorder(ph->kiri);
preorder(ph->kanan);
}
}
Preorder
A
B C
D E F G
A B D E C F G
Inorder
 Kunjungan secara inorder, juga sering
disebut dengan symmetric order,
menggunakan urutan:
 Kunjungi cabang kiri
 Cetak isi simpul yang dikunjungi
 Kunjungi cabang kanan
Inorder
void inorder(pohon ph)
{
if (ph != NULL)
{
inorder(ph->kiri);
printf("%c ", ph->info);
inorder(ph->kanan);
}
}
Inorder
A
B C
D E F G
D B E A F C G
Postorder
 Kunjungan secara postorder
menggunakan urutan:
 Kunjungi cabang kiri
 Kunjungi cabang kanan
 Cetak isi simpul yang dikunjungi
Postorder
void postorder(pohon ph)
{
if (ph != NULL)
{
postorder(ph->kiri);
postorder(ph->kanan);
printf("%c ", ph->info);
}
}
Postorder
A
B C
D E F G
D E B F G C A

More Related Content

More from Rakhmi Khalida, M.M.S.I (20)

Pertemuan 1 Sistem Basis Data.pptx
Pertemuan 1 Sistem Basis Data.pptxPertemuan 1 Sistem Basis Data.pptx
Pertemuan 1 Sistem Basis Data.pptx
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Transport layer
Transport layerTransport layer
Transport layer
 
Modul 5 2-ip-address
Modul 5 2-ip-addressModul 5 2-ip-address
Modul 5 2-ip-address
 
Modul 5 1 network layer
Modul 5 1 network layerModul 5 1 network layer
Modul 5 1 network layer
 
Modul 4 1 data link layer
Modul 4 1 data link layerModul 4 1 data link layer
Modul 4 1 data link layer
 
Video
VideoVideo
Video
 
Chapter-audio-dan-suara
Chapter-audio-dan-suaraChapter-audio-dan-suara
Chapter-audio-dan-suara
 
Diferensial dan terapan
Diferensial dan terapanDiferensial dan terapan
Diferensial dan terapan
 
pert - 3 Jaringan dasar
pert - 3 Jaringan dasarpert - 3 Jaringan dasar
pert - 3 Jaringan dasar
 
pert - 1 Jaringan dasar
pert - 1 Jaringan dasarpert - 1 Jaringan dasar
pert - 1 Jaringan dasar
 
Pert 1 - Rekayasa Komputasional
Pert 1 - Rekayasa KomputasionalPert 1 - Rekayasa Komputasional
Pert 1 - Rekayasa Komputasional
 
Sistem multimedia-teknik-informatika
Sistem multimedia-teknik-informatikaSistem multimedia-teknik-informatika
Sistem multimedia-teknik-informatika
 
10.kompresi citra
10.kompresi citra10.kompresi citra
10.kompresi citra
 
9.kompresi teks
9.kompresi teks9.kompresi teks
9.kompresi teks
 
8.animasi
8.animasi8.animasi
8.animasi
 
7.video
7.video7.video
7.video
 
6.suara
6.suara6.suara
6.suara
 
3.proses produksi konten multimedia
3.proses produksi konten multimedia3.proses produksi konten multimedia
3.proses produksi konten multimedia
 
2. konten multimedia
2. konten multimedia2. konten multimedia
2. konten multimedia
 

Binary Tree Traversal

  • 2. Binary Tree  sebuah pengorganisasian secara hirarki dari beberapa buah simpul, dimana masing- masing simpul tidak mempunyai anak lebih dari 2.  Simpul yang berada di bawah sebuah simpul dinamakan anak dari simpul tersebut.  Simpul yang berada di atas sebuah simpul dinamakan induk dari simpul tersebut.
  • 4. Istilah dalam Tree Term Definition Node Sebuah elemen dalam sebuah tree; berisi sebuah informasi Parent Node yang berada di atas node lain secara langsung; B adalah parent dari D dan E Child Cabang langsung dari sebuah node; D dan E merupakan children dari B Root Node teratas yang tidak punya parent Sibling Sebuah node lain yang memiliki parent yang sama; Sibling dari B adalah C karena memiliki parent yang sama yaitu A Leaf Sebuah node yang tidak memiliki children. D, E, F, G, I adalah leaf. Leaf biasa disebut sebagai external node, sedangkan node selainnya disebut sebagai internal node. B, A, C, H adalah internal node Level Semua node yang memiliki jarak yang sama dari root. Alevel 0; B,Clevel 1; D,E,F,G,Hlevel 2; Ilevel 3 Depth Jumlah level yang ada dalam tree Complete Semua parent memiliki children yang penuh Balanced Semua subtree memiliki depth yang sama
  • 5. Struktur Binary Tree  Masing-masing simpul dalam binary tree terdiri dari tiga bagian yaitu sebuah data dan dua buah pointer yang dinamakan pointer kiri dan kanan.
  • 6. Deklarasi Tree typedef char typeInfo; typedef struct Node tree; struct Node { typeInfo info; tree *kiri; /* cabang kiri */ tree *kanan; /* cabang kanan */ };
  • 7. Pembentukan Tree  Dapat dilakukan dengan dua cara : rekursif dan non rekursif  Perlu memperhatikan kapan suatu node akan dipasang sebagai node kiri dan kapan sebagai node kanan.  Misalnya ditentukan, node yang berisi info yang nilainya “lebih besar” dari parent akan ditempatkan di sebelah kanan dan yang “lebih kecil” di sebelah kiri.  Sebagai contoh jika kita memiliki informasi “HKACBLJ” maka pohon biner yang terbentuk
  • 9. Metode Traversal  Salah satu operasi yang paling umum dilakukan terhadap sebuah tree adalah kunjungan (traversing)  Sebuah kunjungan berawal dari root, mengunjungi setiap node dalam tree tersebut tepat hanya sekali  Mengunjungi artinya memproses data/info yang ada pada node ybs  Kunjungan bisa dilakukan dengan 3 cara: 1. Preorder 2. Inorder 3. Postorder  Ketiga macam kunjungan tersebut bisa dilakukan secara rekursif dan non rekursif
  • 10. Preorder  Kunjungan preorder, juga disebut dengan depth first order, menggunakan urutan: Cetak isi simpul yang dikunjungi Kunjungi cabang kiri Kunjungi cabang kanan
  • 11. Preorder void preorder(pohon ph) { if (ph != NULL) { printf("%c ", ph->info); preorder(ph->kiri); preorder(ph->kanan); } }
  • 12. Preorder A B C D E F G A B D E C F G
  • 13. Inorder  Kunjungan secara inorder, juga sering disebut dengan symmetric order, menggunakan urutan:  Kunjungi cabang kiri  Cetak isi simpul yang dikunjungi  Kunjungi cabang kanan
  • 14. Inorder void inorder(pohon ph) { if (ph != NULL) { inorder(ph->kiri); printf("%c ", ph->info); inorder(ph->kanan); } }
  • 15. Inorder A B C D E F G D B E A F C G
  • 16. Postorder  Kunjungan secara postorder menggunakan urutan:  Kunjungi cabang kiri  Kunjungi cabang kanan  Cetak isi simpul yang dikunjungi
  • 17. Postorder void postorder(pohon ph) { if (ph != NULL) { postorder(ph->kiri); postorder(ph->kanan); printf("%c ", ph->info); } }
  • 18. Postorder A B C D E F G D E B F G C A