download

B-Trees
m-way search tree
Adalah tree yang memiliki batasan s.b.b:

Root memiliki maksimum m subtrees dan memiliki struktur
n, A0, (K1,A1), (K2,A2),...,(Kn,An) dimana
Ai, 0 ≤ i ≤ n < m adalah pointer ke substrees dan
Ki, 1 ≤ i ≤ n < m merupakan nilai Key.

Ki < Ki+1, 1 ≤ i < n

Seluruh nilai Key pada subtree Ai lebih kecil dari Ki+1 dan lebih besar dari
Ki, 0 < i < n.

Seluruh nilai Key pada subtree An lebih besar dari Kn dan yang di A0 lebih
lebih kecil dari K1.

Seluruh subtree Ai, 0 ≤ i ≤ n juga merupakan m-way search tree
20, 40
T
b
10, 15
node schematic format
a
c
d
25, 30
45, 50
e
35
3-way search tree
a
2,b,(20,c),(40,d)
b
2,0,(10,0),(15,0)
c
2,0,(25,0),(30,e)
d
2,0,(45,0),(50,0)
e
1,0,(35,0)
T0026-Data Structure-D1789
Searching
Pencarian pada m-way search tree dimulai dari root (top down)

Jika target elemen ditemukan, maka poses selesai.

Jika target tidak ditemukan maka dilanjutkan ke subtree Ai.

Proses pencarian key dalam node bisa menggunakan metode
sequential search ataupun binary search tergantung pada
jumlah key yang ada dalam node.
Cari 35
20, 40
10, 15
25, 30
45, 50
ditemukan
35
B-Tree
B-Tree dengan order m adalah m-way search tree tree yang memiliki batasan
s.b.b:

Root memiliki minimum 2 children.

Seluruh node kecuali root node dan failure node memiliki minimum [m/2]
children.

Seluruh failure node berada pada level yang sama.
Dengan demikian, 2-3 tree adalah B-tree dengan order 3 sedangkan 2-3-4 tree
adalah B-tree dengan order 4. Disamping itu, B-tree dengan order 2
merupakan Full Binary Tree.
Jumlah Key dalam B-tree

B-tree dengan order m dan level tertinggi l, memiliki jumlah key
maksimum sebanyak m l- 1.
Insertion
•
•
Proses insert pada B-tree merupakan generalisasi proses insert pada
2-3 tree.
Untuk m>3 menggunakan pendekatan top down sebagaimana insert
pada 2-3-4 tree.
Insertion
3-way ( order 3 )
Insert (30)
Insert (10)
30
10
Insert (40)
30
30
10
Insert (50)
30
10
40
Insert (60)
30
40
10
Insert (70)
50
30
60
10
40
40
60
Insert (80)
50
50
60
70
30
10
40
70
60
80
Deletion
•
•
•
•
Proses delete pada B-tree juga merupakan generalisasi proses delete
pada 2-3 tree.
Pertama yang dilakukan adalah mencari target key, misal x.
Jika x ditemukan pada nonleaf node, maka dilakukan transformasi key
dari leaf node.
Terdapat 4 kasus/kondisi jika x ditemukan pada leaf node, misal p:
•
p merupakan root node, ada kemungkinan B-tree menjadi kosong.
•
p paling tidak memilki key sebanyak [m/2] – 1 setelah didelete, proses
delete langsung dilakukan tanpa ada transformasi.
•
p paling tidak memilki key sebanyak [m/2] – 2 dan sibling terdekat
misal q memiliki key sebanyak [m/2], proses delete akan diikuti oleh
rotasi satu key dari q ke p melalui parent misal r.
•
p paling tidak memilki key sebanyak [m/2] – 2 dan sibling terdekat
misal q memiliki key sebanyak [m/2] – 1, proses delete akan diikuti
oleh penggabungan node pdang q sehingga menghasilkan single
node.
Deletion
30
10
20
40
60
10
20
10
60
Delete (40)
10
20
Delete (40)
30
...
10
20
20
Delete (60)
40
Delete (30)
40
60
40
30
10
20
60
Latihan
Untuk B-tree order 3 dilakukan opersai berturut-turut s.b.b. :
+60 +20 +30 +10 +50 +80 +40 +25 -35