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
© Copyright 2024 Paperzz