Está en la página 1de 17

Matakuliah Tahun Versi

: T0026/Struktur Data : 2005 : 1/1

Pertemuan 16

B-Tree

Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :

Mahasiswa dapat merumuskan program modular untuk mengimplementasikan ADT B-tree

Outline Materi

pengertian dan kegunaan B-Tree Contoh B-Tree Operasi - operasi B-Tree implementasi program B-Tree

Balanced Multiway Search Tree

B-Tree

Data sangat banyak biasa disimpan di disk eksternal. Waktu akses disk lebih panjang. Perlu tree dengan height terbatas, dan node yang berisi beberapa data/key. Sekali akses node, membaca beberapa key sekaligus. Balanced Multiway Tree:
1. tidak ada subtree kosong di atas leaf 2. seluruh leaf berada dalam satu level (rata) 3. tiap node mempunyai beberapa anak, kecuali leaf
4

B-Tree:

Balanced Multiway Search Tree

Kriteria B-Tree dengan orde m: 1. Tiap node mempunyai subtree/child maksimal m, dengan notasi n, Ao, (K1, A1), (K2, A2), , (Kn, An)
K1 K2 Kn
N<m
Ai : child I Ki < Key di node Ai < Ki+1 Kriteria ini berlaku untuk semua node di sembarang level

A0

A1

A2

An

B-Tree:

Balanced Multiway Search Tree

2. Tiap node mempunyai child minimal m/2, kecuali ROOT minimal 2 3. Tiap node berisi key maksimal m-1 4. Tiap node berisi key minimal m/2, kecuali ROOT boleh kurang dari m/2 atau 0(empty) 5. B-Tree dengan level tertinggi l, jumlah node dalam tree maksimal ml-1

B-tree: Contoh orde m=5


Ascending order

20
Root sebagai leaf
20 10 15 25 27

10 15 20 25
Jumlah key maksimal dalam satu node m-1

Jumlah key minimal dalam satu node m/2

20

40

78

90

10 15

25 27

57 63 Jumlah child maksimal m

79 80 81

95 99

B-Tree: Insert
Tree tumbuh ke atas Algoritma Insert (newkey) 1. Search leaf p yang sesuai untuk newkey 2. Cek jumlah node di p
a) If p not full (n< m-1), newkey langsung masuk, selesai b) If (n=m-1), SPLIT p menjadi 2, yaitu
Node p: m/2-1, Ao, (K1,A1), , (K m/2-1, A m/2-1) Node q: m-m/2, Am/2, (Km/2+1,Am/2+1), , (K m, A m)
(lihat notasi di slide 3)

Dan key Km/2 masuk ke node parent p dan q. Cek apakah n<m-1 pada node parent (ulang langkah 2). SPLITing dapat menjalar ke node-node ancestor.
8

Contoh Insert order 5 (1)


Insert (a)

a a b

Insert (k)

split

a b
Insert (b)

g k
f g k f g h k m
9

Insert (d)
Insert (f)

a b f
a b d a b f g

Insert (g)

Insert (h) Insert (m) a b d

FULL ! n=m-1

Contoh Insert order 5 (2)


f

a b d
+j

g h k m
f j

a b d

g h

k m

+e, +s, +i, +r a b d e

f j
g h i k m r s
10

Contoh Insert order 5 (3)


f j

a b d e

g h i

k m r s

+x a b d e +c, +l, +n, +t, +u a b d e g h i

f j r k m c f j r g h i k l m n s t u x
11

s x

Contoh Insert order 5 (4)


c f j r

a b

d e

g h i

k l m n

s t u x

+p
c f a b d e g h i

j
m r k l n p s t u x

12

B-Tree: Delete (1)


Algoritma: 1. Search key x yang akan di-delete
If x berada pada node bukan leaf, maka x akan diganti oleh salah satu key pada leaf descendant, key terkecil atau terbesar (ikut aturan binary tree), menjadi problem delete key di leaf
2.

Cek target leaf p


a)

If p merupakan ROOT,

If n>1, langsung delete x If n=1, tree menjadi empty


13

B-Tree: Delete (2)

b) If p bukan root
If n(p)>m/2: langsung delete If n(p)=m/2: cek jumlah key di node sibling terdekat kiri atau kanan (node q)
If jumlah key q diatas minimum n(q)>m/2: rotasi key (yang melibatkan 3 node: q, parent dan p) Hasil rotasi, jumlah key di q menjadi n(q)-1, jumlah key di p setelah dilete menjadi m/2 If jumlah key q minimum n(q)=m/2: p dan q gabung (melibatkan satu key di parent) Hasil gabung setelah delete, jumlah node n(p)=m-1 Cek jumlah key di node parent (ulang langkah b). Rotasi atau penggabungan dapat menjalar ke node-node ancestor pada path menuju Root.
14

Contoh Delete (1)

-h, -r j
Digantikan key dari leaf

c f
n>m/2

m r
g h i g i k l n p

m s
s t u x t u x

a b

d e

15

Contoh Delete (2)

Jumlah key = m/2 : rotasi


j

-p

m t

c f
a b d e g i k l

m s
n p n s t u x u x

16

Contoh Delete (3)

Jumlah key = m/2, tetapi jumlah key di sibling terdekat juga minimum (m/2): gabung
-d c f a b a b c e d e g i j f j m t k l m t n s u x

f j m t
a b c e g i k l n s u x
17

También podría gustarte