Anda di halaman 1dari 6

Binary Search Tree

LUH PUTU SRI ARDIYANI


Binary search tree
Salah satu algoritma pencarian data yang menggunakan struktur
tree yang terurut dalam proses pencarian.
struktur data yang mengadopsi konsep Binary Tree.
Binary tree dapat didefinisikan sebagai pohon yang mempunyai akar
dengan jumlah cabang (anak) maksimum dua, yang saling terpisah
yang nantinya disebut dengan cabang kiri dan cabang kanan.
namun BST terdapat aturan yang harus dipenuhi yaitu.
– semua data dibagian kiri subtree dari node x selalu lebih kecil dari
data dalam node x itu sendiri.
– semua data dibagian kanan subtree dari node x selalu lebih besar
atau sama dengan data dalam node x.
membuat BST
Algoritma addBST(root, newNode)
if (empty tree) {
a. Jika tree kosong, maka node baru
Set root to newNode sebagai root node
Return newNode
End if b. Jika tidak kosong nilai node
If (newNode<root)
return addBST(left subnode, newNode) dibandingkan dengan nilai root
Else
return addBST(right subnode, newNode) c. Jika lebih kecil buat node di
end addBST
subtree kiri, bila lebih besar buat
node di subtree kanan.

Contoh Diketahui deret bilangan :


15 6 18 17 20 3 7 2 4 13 9
Pencarian pada BST
Algoritma searchBST (x,k) Pencarian data dilakukan secara
If (empty tree)
Not Found
rekursif, dimulai dari node root (x).
return Null Jika data yang dicari (k) lebih kecil
End if
if (k < x) daripada data node root (x), maka
return searchBST(x.left, k)
else if (k > x) pencarian dilakukan disebelah data
else
return searchBST(x.right, k)
subtree sebelah kiri, sedangkan jika
found k data yang dicari lebih besar daripada
return x
end if data node root, maka pencarian
end TreeSearch
dilakukan di subtree sebelah kanan.
Jika data yang dicari sama dengan
data suatu node berarti data
ditemukan
Contoh BST
• Sebagai contoh dilakukanlah pencarian nilai
k=4 dari tree
Running Time
•  
Running time dari fungsi Tree-Search adalah O(h) dimana h adalah tinggi atau height dari tree.
Dalam operasi pencarian nilai di dalam BST akan menghasilkan best case, worst case dan average
case sebagai berikut:
1. Best Case
Kompleksitas untuk kasus terbaik dari algoritma ini terjadi ketika node pertama berisi elemen
yang dicari. Sehingga dapat dinotasikan dengan 𝑶(𝟏). .
2. Worst Case
Kompleksitas untuk kasus terburuk dari algoritma ini terjadi ketika node pada sisi kiri dan kanan
tidak seimbang, misalnya node-node hanya terletak di sebelah kiri dan sebelah kanan kosong (BST
membentuk seperti linked list). Sehingga dapat dinotasikan dengan 𝑶(𝒏).
3. Average Case
Kompleksitas untuk kasus rata- rata dari algoritma ini terjadi ketika node di sisi kiri dan kanan
seimbang. Ketika hal itu terjadi maka akan didapatkan persamaan seperti berikut:
𝑻(𝒏)=(𝒏−𝟏)+ (𝑻(𝟎)+𝑻(𝟏)+⋯+𝑻(𝒏−𝟏)) .....(1)
Dari persamaan diatas, dapat disimpulkan bahwa kompleksitas pada kasus rata-rata dapat
dinotasikan dengan 𝑶(𝒍𝒐𝒈𝒏).

Anda mungkin juga menyukai