Anda di halaman 1dari 5

TREE

PENJELASAN TENTANG STRUKTUR DATA


POHON (TREE)
Yoga yogi yana. Disusun untuk memenuhi tugas ujian tengah semester mata kuliah :
statistika Dosen : Eka Hidayat Nursobah S.Kom, SST. Program Studi teknik komputer,
politeknik sukabumi http: // www.polteksmi.sc.id Email: yoga.mfm@gmail.com
Abstrak - Makalah ini membahas tentang struktur data pohon biner. Pohon adalah graf tak
berarah terhubung yang tidak mengandung sirkuit. Pohon biner terurut dan pohon seimbang
adalah dua dari berbagai jenis pohon yang pernah kita pelajari. Kedua jenis pohon ini
memiliki manfaatnya masing-masing. Struktur pohon sangat penting dalam bidang
informatika, yang memungkinkan kita untuk mengorganisasi informasi berdasarkan suatu
struktur logic dan memungkinkan cara akses yang khusus terhadap suatu elemen. Kata

1|Page
TREE

1.PENDAHULUAN dalam pencarian ini? Pencarian


menggunakan struktur data pohon
Latar Belakang
inilah yang akan kita bahas lebih lanjut
Bagi orang yang berkecimpung dalam
dalam makalah ini. Rumusan Masalah
dunia keinformatikaan terutama
Sejauh mana kita mengerti tentang struktur
programmer, pemilihan jenis struktur data
pohon biner. Bagaimana kita
yang akan digunakan dalam program
menentukan jenis struktur data yang bisa
membawa dampak yang besar. Kesalahan
kita gunakan dalam menentukan suatu
pemilihan jenis struktur data dapat
masalah program.
mengakibatkan buruknya kinerja program,
program yang efisien menuntut pemilihan 2. LANDASAN TEORI
struktur data yang tepat. Salah satu hal
Tree merupakan salah satu bentuk struktur
yang paling sering dilakukan dalam suatu
data bukan linier yang menggambarkan
program adalah proses pencarian dan
bentuk hierarki antara elemen-elemen.
sorting. Struktur data yang berbeda tentu
Tree biasanya terdiri dari root (akar) dan
saja memerlukan teknik pencarian yang
node-node (simpul-simpul) yang berada di
berbeda. Hal ini mengakibatkan waktu
bawah root. Struktur seperti tree sangat
yang diperlukan untuk pencarian juga
banyak sekali dgunakan dalam dunia
berbeda. Struktur data ini dapat berupa
nyata, misalnya: struktur organisasi suatu
tabel list berkait, termasuk pohon. Kata
perusahaan, pengaturan filesystem, daftar
pohon pasti sudah tidak asing lagi di
isi sebuah buku, dan masih banyak lagi.
telinga kita namun, pohon sendiri memiliki
berbagai
pengertian tergantung konteks Ilustrasi struktur data tree :
pembicaraan yang ada. Pohon yang akan
di bahas disini bukanlah pohon yang
merupakan tumbuhan dengan batang kayu,
yang hidup dan dapat tumbuh. Pohon yang
dimaksud dalam makalah ini merupakan
salah satu dari aplikasi graf. Pohon ini
adalah graf tak berarah terhubung yang
tidak mengandung sirkuit. Pohon sendiri
dikelompokkan lagi menjadi berbagai
kategori, diantaranya pohon biner, pohon
biner terurut, pohon n-ary, dan pohon
seimbang. Masing - masing jenis pohon
memiliki kelebihan dan kekurangannya
sendiri. Untuk pencarian dan sorting yang
lebih cepat, umumnya di gunakan pohon
biner terurut. Namun, apakah pencarian
pada pohon biner terurut ini sudah
merupakan yang paling cocok? Jika tidak,
maka jenis pohon apa yang lebih efisien

2|Page
TREE

Degree (derajat) adalah jumlah edge yang terpisah, atau dengan kata lain tiap node
keluar dan masuk dari sebuah node. dalam binary tree hanya boleh memiliki
Contoh : node E memiliki in degree 1 dan paling banyak 2 child.
out degree 2
Binary tree terdiri dari :
Root (akar) adalah node yang memiliki
derajat keluar >=0 dan derajat masuk = 0. 1. Full Binary Tree : semua node (kecuali
Contoh : node A adalah root leaf pasti memiliki 2 anak dan tiap
Subtree / child adalah bagian salah satu subtree memiliki panjang path yang
node dibawah root sampai ke bawah.
sama).
Contoh : tree C adalah right subtree dari A
dan tree B merupakan left subtree dari A
node G dan F merupakan child dari node
C
node F merupakan parent dari node J dan
K
Ancestor adalah Node yang berada di atas
node lain.
Contoh : node B adalah ancestor dari node
E
Descendant adalah node yang berada di
bawah node lain.
Contoh : node E adalah descendant dari
node A. 2. Complete Binary Tree : mirip
Leaf (daun) adalah semua node yang dengan full binary tree, tetapi tiap
derajat masuknya 1 dan derajat keluarnya subtree boleh memiliki panjang
0. path yang berbeda dan tiap node
Contoh : node D, H, I, J, K, dan G adalah (kecuali leaf memiliki 2 anak)
leaf
Sibling adalah node yang mempunyai
level yang sama dan parent yang sama.
Contoh : node D adalah sibling dari node
A
Height (ketinggian) adalah level tertinggi
dari tree ditambah 1.
Contoh : height dari tree A adalah 3 + 1 =
4
Weight (bobot) adalah jumlah leaf(daun)
pada tree.
Contoh : weight dari tree A adalah 6
3. Skewed Binary Tree : binary tree
BINARY TREE yang semua nodenya (kecuali leaf)
Sebuah tree dengan syarat bahwa tiap node hanya memiliki satu anak
hanya boleh memiliki maksimal 2 subtree
yang disebut sebagai subpohon kiri(left
subtree) dan subpohon kanan (right
subtree) dan kedua subtree tersebut harus

3|Page
TREE

{
// set static data members
BINARY SEARCH TREE a = theArray;
Binary tree dengan sifat bahwa nilai dari
last = theLast;
semua left child harus lebih kecil daripada
nilai dari right child dan parentnya.
Contoh :
if(!isEmpty())
{
// start the recursive traversal method at the
root
theInOrder(1);
}
else
System.out.println("Binary Tree Kosong");
}
/** actual method to do the inorder
traversal */
3.IMPLEMENTASI
static void theInOrder(int i)
Contoh Implementasi Binary Search Tree :
{// traverse subtree rooted at a[i]
public class ABTree {
if (i <= last && a[i]!=null)
// data members
{// root exists
static Object [] a; // array that contains the
tree theInOrder(2 * i); // do left subtree
static int last=0; // position of last element visit(i); // visit tree root
in array a
theInOrder(2 * i + 1); // do right subtree
static int size=0;
}
/** visit method that prints the element in
a[i] */ }

public static void visit(int i) static boolean isEmpty()

{System.out.print(a[i] + " ");} {


return (size==0);

/** inorder traversal */ }

public static void inOrder(Object [] static void addNode(int i, int isi)


theArray, int theLast) {

4|Page
TREE

a[i] = new Integer(isi); }


size++;
last = i; 4. KESIMPULAN
} Untuk membangun sebuah pohon biner
terurut seimbang dan terus menjaga
keseimbangannya. diperlukan suatu
public static void preOrder(Object [] prosedur untuk mempertahankannya, yaitu
theArray, int theLast) rotasi pohon dengan terlebih dahulu
dilakukan penghitungan faktor
{ keseimbangan sebuah simpul. Pohon
// set static data members biner terurut seimbang memiliki kelebihan
dibanding pohon biner terurut biasa, yaitu
a = theArray; kompleksitas algoritma pencarian,
last = theLast; penyisipan, dan penghapusan data
semuanya memiliki kompleksitas O(log
n)
if(!isEmpty()) baik pada kasus rata-rata maupun kasus
{ terburuk, sehingga strktur data pohon biner
terurut seimbang dapat dijadikan alternatif
// start the recursive traversal method at the jika seseorang menginginkan kecepatan
root komputasi yang lebih baik.
thePreOrder(1);
} 5.DAFTAR PUSTAKA
else http://ipank05018240.blogspot.com/
System.out.println("Binary Tree Kosong"); 2010/10/struktur-data-tree- pohon.html

} http://cintaprogramming.com/2010/
08/01/struktur_data
http://id.wikipedia.org/wiki/Pohon_ biner
static void thePreOrder(int i)
{// traverse subtree rooted at a[i]
if (i <= last && a[i]!=null)
{// root exists

visit(i); // visit tree root


thePreOrder(2*i); // do left subtree
thePreOrder(2 * i +1); // do right subtree
}

5|Page

Anda mungkin juga menyukai