download

Matakuliah
Tahun
Versi
: T0534/Struktur Data
: 2005
: September 2005
Pertemuan 12
B-Tree
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• menerangkan operasi pada B-Tree
• membuat representasi B-Tree
2
Outline Materi
•
•
•
•
Karakteristik
Pencarian elemen
Insert
Delete
3
Karakteristik
B-TREE adalah TREE yang setiap nodenya bisa berisi lebih
dari pada satu elemen.
Jumlah elemen dalam 1 node tergantung kepada order
(d) dari B-Tree tersebut.
Jumlah minimum elemen dalam setiap node (kecuali ROOT)
adalah d, dan jumlah maksimumnya adalah 2d, dimana d
adalah order. Untuk ROOT, jumlah minimum elemen 1,
dan jumlah maksimum adalah 2d.
Jumlah minimum children dari suatu node dalam B-TREE
adalah 0, dan jumlah maksimumnya adalah jumlah
elemen + 1.
4
Pencarian Elemen
Pencarian elemen pada B-tree hampir sama
dengan proses pencarian elemen pada
BST.
Proses pencarian hanya membutuhkan
single path dari ROOT hingga LEAF.
Contoh :
Cari 35
20, 40
10, 15
25, 35
45, 50
ditemukan
5
Operasi Insert
findkey
The leaf node where
the insertion is to
occur is full
The leaf node where
the insertion is to
occur has room
Insert 1
The parent
node exists
but is not
full
The node contains fewer
than 2d elements and so
has room to accommodate
an additional element. The
element is added so as to
maintain sorted order, and
the insertion process
terminates.
Insert 2
The parent
node exists
but is full
The parent
node does
not exist
The node is full (it contains 2d elements) so
a node split is a required. A new node is
created that receives the largest d elements
from the that is being split. The smallest d
elements remain in their original node, and
the middle element is passed to the parent
of split node.The insertion process
terminates.
end
The tree is
empty
Insert 3
The root node is split.
A new root node is
created, and the
element passed up
becomes its only
element. The insertion
process terminates.
6
Contoh Operasi Insert
Jika node belum penuh (jumlah elemen < 2d), maka elemen
bisa langsung diinsert.
Contoh :
23 30 35
insert (25)
23 25 30 35
7
Contoh Operasi Insert(2)
Jika node sudah penuh, maka perlu dilakukan Node
Split.
Langkah Node Split:
–
–
–
–
Split node menjadi 2.
Letakkan d elemen terkecil di node kiri.
Letakkan d elemen terkecil di node kanan.
Letakkan elemen tengah ke node parentnya.
Contoh :
10 30 40 50
30
insert (25)
10 25
40 50
8
Operasi Delete
•
•
Sebagaimana proses insert, proses
delete dimulai dari leaf node.
Jika elemen yang dihapus tidak ada di
dalam leaf node, akan diganti dengan :
– Elemen terkecil node paling kiri dari subtree
kanan, atau
– Elemen terbesar node paling kiri dari subtree
kiri
•
Pergantian elemen ini memerlukan
perpindahan elemen dari leaf node.
9
Mekanisme Delete
Target node adalah node dimana terdapat elemen yang akan dihapus.
•Delete 1 :
Target node memiliki lebih dari d elemen. Setelah penghapusan
elemen proses langsung selesai.
•Delete 2 :
Target node memiliki tepat d elemen, sehingga penghapusan
elemen akan menyebabkan underflow. Jika ada sibling yang
memiliki lebih dari d elemen, maka dilakukan peminjaman elemen
dari sibling tsb dengan melibatkan parent.
Jika tidak, maka target node bergabung dengan salah satunya
untuk membentuk node baru yang mengandung 2d elemen.
Salah satu elemennya tsb berasal dari parent.
Jika parent mengandung lebih dari d elemen maka proses
selesai, selain itu parent menjadi target node dan proses
berlanjut.
•Delete 3 :
Target node adalah root. Selama masih tersisa minimal 1 elemen,
tinggi dari tree tidak berubah. Jika lelemn terakhir dihapus, maka
anak yang tersisa (child node) menjadi root.
10
Contoh Operasi Delete
10
5 6 7
15 16 18
delete (6)
10
5 7
15 16 18
11
Contoh Operasi Delete(2)
10 20
5 7 9
15 16
25 27
delete(15)
9 20
5 7
10 16
25 27
12
Contoh Operasi Delete(3)
9 20
5 7
15 16
25 27
delete(15)
20
5 7 9 16
25 27
13
Selesai
14