SlideShare a Scribd company logo
1 of 27
Download to read offline
Ruli Manurung & Ade Azurat 
(acknowledgments: Denny, Suryana Setiawan) 
1 
Fasilkom UI 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
IKI 20100: Struktur Data & Algoritma 
2007/2008 –Ganjil –Minggu 10 
B Tree
2 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Motivasi 
Perhatikan kasus berikut ini: 
Kita harus membuat program basisdata untuk menyimpan data di yellow pages daerah Jakarta, misalnya ada 2.000.000 data. 
Setiap entry terdapat nama, alamat, nomor telepon, dll. Asumsi setiap entry disimpan dalam sebuah record yang besarnya 512 byte. 
Total file size = 2,000,000 * 512 byte = 1 GB. 
•terlalu besar untuk disimpan dalam memory (primary storage) 
•perlu disimpan di disk (secondary storage)
3 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Motivasi 
Jika kita menggunakan disk untuk penyimpanan, kita harus menggunakan struktur blok pada disk untuk menyimpan basis data tsb. 
Secondary storage dibagi menjadi blok-blok yang ukurannya sama. Umumnya 512 byte, 2 KB, 4 KB, 8 KB. 
Block adalah satuan unit transfer antar disk dengan memory. Walaupun program hanya membaca 10 byte dari disk, 1 block akan dibaca dari disk dan disimpan ke memory. 
Misalnya 1 disk block 8.192 byte (8 KB) 
Maka jumlah blok yang diperlukan: 1 GB / 8 KB per block = 125,000 blocks. 
Setiap blok menyimpan: 8,192 / 512 = 16 records.
4 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Motivasi 
Karena keterbatasan mekanik, sebuah akses ke harddisk (storage) membutuhkan waktu yang relatif sangat lama. 
Akses ke disk diperkirakan 10,000 kali lebih lambat dari pada akses ke main memory. 
Sebuah akses ke disk dapat disetarakan dengan 200,000 buat instruksi. 
Dengan demikian jumlah akses ke disk akan mendominasi running time. 
Kita membutuhkan: 
Sebuah teknik pencarian “multiway search tree” yang dapat meminimalkan jumlah akses ke disk.
5 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
B-Tree 
B-tree banyak digunakan untuk external data structure. 
Setiap node berukuran sesuai dengan ukuran block pada disk, misalnya 1 block = 8 KB. 
Tujuannya: meminimalkan jumlah block transfer. 
Ada beberapa variasi dari B-Trees, salah satu contoh yang banyak di gunakan adalah B+Tree.
6 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
B Tree 
B Tree dengan degree mmemiliki karakteristik sebagai berikut: 
Setiap non-leaf (internal) nodes (kecuali root) jumlah anaknya (yang tidak null) antara m/2dan m. 
Sebuah non-leaf (internal) node yang memiliki ncabang memiliki sejumlah n-1keys. 
Setiap leaves berada pada level yang sama, (dengan kata lain, memiliki depth yang sama dari root. 
1250 
0625 1000 
1277 1282 
< 
>= 
1291 
1425 2000
7 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
B+Tree 
B+Tree adalah variant dari B-tree, dengan aturan: 
semua key value sebagai reference terhadap data disimpan dalam leaf. 
disertakan suatu pointer tambahan untuk menghubungkan setiap leaf node tersebut sebagai suatu linear linked-list. 
•Struktur ini memungkinkan akses sikuensial data dalam B-tree tanpa harus turun-naik pada struktur hirarkisnya. 
node internal digunakan sebagai „indeks‟ (dummy key). 
beberapa key valuedapat muncul dua kali di dalam tree (sekali pada leaf sebagai reference thd data kedua sebagai indeks pada internal node).
8 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
B+Tree 
1250 
0625 1000 
1425 2000 
1250 1300 
1425 1600 
2000 
0350 
0625 
1000 
Leaf 
Nodes 
>= 
<
9 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Struktur: B+Tree Node 
P 
K 
P 
K 
P 
K 
P 
1 
1 
2 
2 
n-1 
n-1 
n 
P 
K 
P 
K 
P 
K 
P 
1 
1 
2 
2 
n-1 
n-1 
n 
.. . . . . . 
. . . . . . . 
A high level node (internal node) 
A leaf node (Every key value appears in a leaf node) 
Pointer to 
subtree for 
keys>= K & < K 
Pointer to 
subtree for 
keys>= K 
1 
n-2 
n-1 
Pointer to 
subtree for 
keys>= K & < K 
1 
2 
Pointer to 
subtree for 
keys< K 
n-1 
Pointer to 
record (block) 
with key K 
Pointer to 
record (block) 
with key K 
Pointer to leaf 
with smallest 
key greater than 
K 
Pointer to 
record (block) 
with key K 
1 
2 
n-1 
n-1
10 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Contoh sebuah B+Tree (m=3) 
1250 
0625 1000 
1425 2000 
0350 
0625 
1300 
1250 1300 
1425 1600 
2000 
0350 
0625 
1000 
1600 
1425 
2000 
1000 
1250 
Leaf 
Nodes 
Actual Data Records 
>= 
<
11 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Proses pada B+Trees 
Mencari records dengan search-key value: k. 
1.Mulai dari root. 
•Periksa node tersebut, dan tentukan nilai key terkecil pada node tersebut yang lebih besar dari k. 
•Jika key tersebut ditemukan, ada Kj, key terkecil pada node yang memenuhi syarat: Kj> k, maka ikuti Pi(rekursif terhadap node yang ditunjukkan oleh Pi) 
•Jika tidak ditemukan dan kKm–1, serta ada mpointers pada node. Maka ikuti Pm(rekursif terhadap node yang ditunjukkan oleh Pi) 
•Bila node yang ditunjukkan oleh pointer tersebut di atas internal node (non-leaf node), ulangi prosedure a-c. 
•Bila mencapai sebuah leaf node. Jika ada isehingga nilai key Ki= k, maka ikuti pointer Piuntuk mendapatkan record (atau bucket) yang diinginkan. Jika tidak, maka tidak ada data dengan nilai key k.
12 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Proses pada B+Trees: Range Query 
Mencari seluruh record yang berada diantara k dan l (range query). 
Mencari record dengan search-key value = k. 
selama nilai search-key value selanjutnya yang ditunjukkan oleh pointer lebih kecil dari l, ikuti pointer untuk mendapatkan records yang diinginkan 
•jika search-key yang ditemukan adalah search-key yang terakhir dalam node, ikuti pointer yang terakhir (Pn) untuk menuju leaf node selanjutnya. 
Bandingkan dengan proses yang sama pada binary search tree (lihat soal quiz 2)
13 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Insertion on B+Trees 
Cari posisi leaf node yang sesuai agar nilai search-key yang baru dapat diletakkan secara terurut. 
jika search-key telah berada pada leaf node (non-unique seach- key), 
record ditambahkan pada data file, dan 
jika perlu, search-key dan pointer yang berkesesuaian ditambahkan pada leaf node 
jika search-key tidak ditemukan, maka tambahkan record kedalam data file: 
jika masih ada tempat pada leaf node, tambahkan pasangan (key-value, pointer) pada leaf node secara terurut 
Bila tidak, split node tersebut bersama dengan pasangan (key-value, pointer) yang baru. (lihat slide selanjutnya)
14 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Insertion on B+Trees 
Proses Splitting pada sebuah node: 
ambil pasangan (search-key value, pointer) termasuk yang baru ditambahkan. letakkan search-key n/2yang pertama pada node awal, dan pindahkan sisanya pada sebuah node baru. 
ketika melakukan splitting pada sebuah leaf, promosikan middle/median key dari node yang akan di split kepada parent node, tanpa menghapus pada leaf tersebut (meng-copy). 
ketika melakukan splitting pada internal node, promosikan the middle/median key dari node yang akan displit kepada parent node, dan hapus pada node sebelumnya (tidak membuat copy). 
Jika hasil promosi membuat parent menjadi full, lakukan proses splitting serupa secara rekursif.
15 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
67 
Building a B+Tree (m=4) 
67, 123, 89, 18, 34, 87, 99, 104, 36, 55, 78, 9 
< 
data records 
leaf node 
root node 
18 
89 
123 
The split at leaf nodes 
67 
89 
123 
promote but retain 
a copy 
< 
data records 
root node 
18 
67 
89 
89 
123 
>= 
split 
mengapa 89, bukan 67? 
18
16 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
87 
67, 123, 89, 18, 34, 87, 99, 104, 36, 55, 78, 9 
89 
123 
< 
root node 
18 
34 
67 
89 
>= 
67 
87 
< 
root node 
18 
34 
67 
89 
>= 
89 
123 
split
17 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
104 
104 
67, 123, 89, 18, 34, 87, 99, 104, 36, 55, 78, 9 
67 
87 
< 
root node 
18 
34 
67 
89 
>= 
89 
99 
123 
67 
87 
< 
root node 
18 
34 
67 
89 
89 
99 
104 
123 
split
18 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
55 
Split 2 
67, 123, 89, 18, 34, 87, 99, 104, 36, 55,78, 9 
67 
87 
< 
18 
34 
36 
67 
89 
104 
89 
99 
104 
123 
67 
87 
< 
18 
34 
89 
99 
104 
123 
36 
55 
double 
node split 
Split 1 
Proses splitting diteruskan ke atas hingga node tersebut tidak full. Pada worst case, root node bisa juga di-split sehingga menambah tinggi tree 1 satuan. 
67 
89 
104 
36
19 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
67, 123, 89, 18, 34, 87, 99, 104, 36, 55,78, 9 
67 
87 
< 
18 
34 
36 
67 
89 
99 
104 
123 
36 
55 
104 
89 
67 
36 
89 
104 
The split at non-leaf nodes 
promosikan dan hapus(tidak di-copy)
20 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Observasi mengenai B+Trees 
B+Tree umumnya memiliki jumlah levels yang rendah (logarithmic pada jumlah data), sehingga proses pencarian dapat dilakukan dengan effisien. 
Saat memproses sebuah query, sebuah jalur (path) dijalani pada tree dari root hingga leaf node. 
jika terdapat sejumlah K search-key pada sebuah file, maka jalur pencarian tidak akan lebih besar dari logm/2(K), madalah degree B+ Tree. 
•pertanyaan: Mengapa “logm/2”, bukan “logm” ?
21 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Deletion on B+Trees 
hapus pasangan (search-key value, pointer) dari leaf node 
jika node ternyata memiliki pasangan yang terlalu sedikit (minimum requirement: m/2children), dan jika jumlah pasangan pada node dan sibling-nya dapatdigabungkan pada sebuah node, maka 
gabungkan kedua node tersebut 
hapus pasangan (Ki–1, Pi), pada parent node-nya dimana Piadalah pointer terhadap node yang dihapus. 
Lakukan secara recursively hingga root.
22 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Deletion on B+Trees 
jika jumlah pasangan pada node dan sibling-nya tidak dapatdigabungkan pada sebuah node, maka 
re-distribusikan pointers diantara node tersebut dan sibling-nya sehingga mereka memiliki jumlah element yang lebih dari minimum. 
Update search-key yang berkesesuain pada parent . 
proses ini dapat terus berlaku rekursif ke parent hingga ditemukan node yang memiliki pasangan sejumlah n/2 atau lebih.
23 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Hapus34 OK 
67 
87 
< 
18 
34 
36 
67 
89 
104 
89 
99 
104 
123 
67 
87 
< 
18 
36 
67 
89 
104 
89 
99 
104 
123
24 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Hapus123 Merge 
67 
87 
< 
18 
34 
36 
67 
89 
104 
89 
99 
104 
123 
67 
87 
< 
18 
34 
67 
89 
89 
99 
104 
67 
87 
18 
34 
36 
89 
99 
104 
Merge 
< 
67 
89 
104 
36
25 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Hapus87 Redistribute 
67 
87 
< 
18 
34 
36 
67 
89 
104 
89 
99 
104 
123 
67 
18 
34 
36 
89 
99 
104 
Redistribute 
< 
67 
89 
104 
123 
36 
18 
34 
89 
99 
104 
< 
36 
89 
104 
123 
67
26 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Rangkuman 
B Tree biasanya digunakan sebagai struktur data external pada databases. 
B Tree dengan degree mmemiliki aturan seperti berikut: 
Setiap non-leaf (internal) nodes (kecuali root) jumlah anaknya (yang tidak null) antara m/2dan m. 
Sebuah non-leaf (internal) node yang memiliki ncabang memiliki sejumlah n-1keys. 
Setiap leaves berada pada level yang sama, (dengan kata lain, memiliki depth yang sama dari root. 
B+Tree adalah variant dari B Tree dimana seluruh key terletak pada leaves.
27 
Ruli Manurung & Ade Azurat 
Fasilkom UI -IKI20100 
2007/2008 –Ganjil –Minggu 10 
Tambahan informasi dan latihan 
applet simulasi B+Tree 
http://slady.net/java/bt/view.php?w=600&h=450 
http://www.macs.hw.ac.uk/flex/BScCS/ds1/activity15.html 
http://www.cs.msstate.edu/~cs2314/global/BTreeAnimation/visualization.html

More Related Content

Recently uploaded

Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMmulyadia43
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfDimanWr1
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxRezaWahyuni6
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAKDEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAKirwan461475
 
Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5KIKI TRISNA MUKTI
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfElaAditya
 
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docxLK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docxPurmiasih
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfSitiJulaeha820399
 
Keterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTKeterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTIndraAdm
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxRizkyPratiwi19
 
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..ikayogakinasih12
 
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxKontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxssuser50800a
 
442539315-ppt-modul-6-pend-seni-pptx.pptx
442539315-ppt-modul-6-pend-seni-pptx.pptx442539315-ppt-modul-6-pend-seni-pptx.pptx
442539315-ppt-modul-6-pend-seni-pptx.pptxHendryJulistiyanto
 
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxBAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxJamhuriIshak
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDNurainiNuraini25
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdfsdn3jatiblora
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAAndiCoc
 
tugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajarantugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajarankeicapmaniez
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptArkhaRega1
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BAbdiera
 

Recently uploaded (20)

Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptx
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAKDEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
 
Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
 
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docxLK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
 
Keterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTKeterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UT
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
 
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
 
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxKontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
 
442539315-ppt-modul-6-pend-seni-pptx.pptx
442539315-ppt-modul-6-pend-seni-pptx.pptx442539315-ppt-modul-6-pend-seni-pptx.pptx
442539315-ppt-modul-6-pend-seni-pptx.pptx
 
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxBAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
 
tugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajarantugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajaran
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
 

Featured

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 

Featured (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

13 btree tutorial

  • 1. Ruli Manurung & Ade Azurat (acknowledgments: Denny, Suryana Setiawan) 1 Fasilkom UI Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 IKI 20100: Struktur Data & Algoritma 2007/2008 –Ganjil –Minggu 10 B Tree
  • 2. 2 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Motivasi Perhatikan kasus berikut ini: Kita harus membuat program basisdata untuk menyimpan data di yellow pages daerah Jakarta, misalnya ada 2.000.000 data. Setiap entry terdapat nama, alamat, nomor telepon, dll. Asumsi setiap entry disimpan dalam sebuah record yang besarnya 512 byte. Total file size = 2,000,000 * 512 byte = 1 GB. •terlalu besar untuk disimpan dalam memory (primary storage) •perlu disimpan di disk (secondary storage)
  • 3. 3 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Motivasi Jika kita menggunakan disk untuk penyimpanan, kita harus menggunakan struktur blok pada disk untuk menyimpan basis data tsb. Secondary storage dibagi menjadi blok-blok yang ukurannya sama. Umumnya 512 byte, 2 KB, 4 KB, 8 KB. Block adalah satuan unit transfer antar disk dengan memory. Walaupun program hanya membaca 10 byte dari disk, 1 block akan dibaca dari disk dan disimpan ke memory. Misalnya 1 disk block 8.192 byte (8 KB) Maka jumlah blok yang diperlukan: 1 GB / 8 KB per block = 125,000 blocks. Setiap blok menyimpan: 8,192 / 512 = 16 records.
  • 4. 4 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Motivasi Karena keterbatasan mekanik, sebuah akses ke harddisk (storage) membutuhkan waktu yang relatif sangat lama. Akses ke disk diperkirakan 10,000 kali lebih lambat dari pada akses ke main memory. Sebuah akses ke disk dapat disetarakan dengan 200,000 buat instruksi. Dengan demikian jumlah akses ke disk akan mendominasi running time. Kita membutuhkan: Sebuah teknik pencarian “multiway search tree” yang dapat meminimalkan jumlah akses ke disk.
  • 5. 5 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 B-Tree B-tree banyak digunakan untuk external data structure. Setiap node berukuran sesuai dengan ukuran block pada disk, misalnya 1 block = 8 KB. Tujuannya: meminimalkan jumlah block transfer. Ada beberapa variasi dari B-Trees, salah satu contoh yang banyak di gunakan adalah B+Tree.
  • 6. 6 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 B Tree B Tree dengan degree mmemiliki karakteristik sebagai berikut: Setiap non-leaf (internal) nodes (kecuali root) jumlah anaknya (yang tidak null) antara m/2dan m. Sebuah non-leaf (internal) node yang memiliki ncabang memiliki sejumlah n-1keys. Setiap leaves berada pada level yang sama, (dengan kata lain, memiliki depth yang sama dari root. 1250 0625 1000 1277 1282 < >= 1291 1425 2000
  • 7. 7 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 B+Tree B+Tree adalah variant dari B-tree, dengan aturan: semua key value sebagai reference terhadap data disimpan dalam leaf. disertakan suatu pointer tambahan untuk menghubungkan setiap leaf node tersebut sebagai suatu linear linked-list. •Struktur ini memungkinkan akses sikuensial data dalam B-tree tanpa harus turun-naik pada struktur hirarkisnya. node internal digunakan sebagai „indeks‟ (dummy key). beberapa key valuedapat muncul dua kali di dalam tree (sekali pada leaf sebagai reference thd data kedua sebagai indeks pada internal node).
  • 8. 8 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 B+Tree 1250 0625 1000 1425 2000 1250 1300 1425 1600 2000 0350 0625 1000 Leaf Nodes >= <
  • 9. 9 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Struktur: B+Tree Node P K P K P K P 1 1 2 2 n-1 n-1 n P K P K P K P 1 1 2 2 n-1 n-1 n .. . . . . . . . . . . . . A high level node (internal node) A leaf node (Every key value appears in a leaf node) Pointer to subtree for keys>= K & < K Pointer to subtree for keys>= K 1 n-2 n-1 Pointer to subtree for keys>= K & < K 1 2 Pointer to subtree for keys< K n-1 Pointer to record (block) with key K Pointer to record (block) with key K Pointer to leaf with smallest key greater than K Pointer to record (block) with key K 1 2 n-1 n-1
  • 10. 10 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Contoh sebuah B+Tree (m=3) 1250 0625 1000 1425 2000 0350 0625 1300 1250 1300 1425 1600 2000 0350 0625 1000 1600 1425 2000 1000 1250 Leaf Nodes Actual Data Records >= <
  • 11. 11 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Proses pada B+Trees Mencari records dengan search-key value: k. 1.Mulai dari root. •Periksa node tersebut, dan tentukan nilai key terkecil pada node tersebut yang lebih besar dari k. •Jika key tersebut ditemukan, ada Kj, key terkecil pada node yang memenuhi syarat: Kj> k, maka ikuti Pi(rekursif terhadap node yang ditunjukkan oleh Pi) •Jika tidak ditemukan dan kKm–1, serta ada mpointers pada node. Maka ikuti Pm(rekursif terhadap node yang ditunjukkan oleh Pi) •Bila node yang ditunjukkan oleh pointer tersebut di atas internal node (non-leaf node), ulangi prosedure a-c. •Bila mencapai sebuah leaf node. Jika ada isehingga nilai key Ki= k, maka ikuti pointer Piuntuk mendapatkan record (atau bucket) yang diinginkan. Jika tidak, maka tidak ada data dengan nilai key k.
  • 12. 12 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Proses pada B+Trees: Range Query Mencari seluruh record yang berada diantara k dan l (range query). Mencari record dengan search-key value = k. selama nilai search-key value selanjutnya yang ditunjukkan oleh pointer lebih kecil dari l, ikuti pointer untuk mendapatkan records yang diinginkan •jika search-key yang ditemukan adalah search-key yang terakhir dalam node, ikuti pointer yang terakhir (Pn) untuk menuju leaf node selanjutnya. Bandingkan dengan proses yang sama pada binary search tree (lihat soal quiz 2)
  • 13. 13 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Insertion on B+Trees Cari posisi leaf node yang sesuai agar nilai search-key yang baru dapat diletakkan secara terurut. jika search-key telah berada pada leaf node (non-unique seach- key), record ditambahkan pada data file, dan jika perlu, search-key dan pointer yang berkesesuaian ditambahkan pada leaf node jika search-key tidak ditemukan, maka tambahkan record kedalam data file: jika masih ada tempat pada leaf node, tambahkan pasangan (key-value, pointer) pada leaf node secara terurut Bila tidak, split node tersebut bersama dengan pasangan (key-value, pointer) yang baru. (lihat slide selanjutnya)
  • 14. 14 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Insertion on B+Trees Proses Splitting pada sebuah node: ambil pasangan (search-key value, pointer) termasuk yang baru ditambahkan. letakkan search-key n/2yang pertama pada node awal, dan pindahkan sisanya pada sebuah node baru. ketika melakukan splitting pada sebuah leaf, promosikan middle/median key dari node yang akan di split kepada parent node, tanpa menghapus pada leaf tersebut (meng-copy). ketika melakukan splitting pada internal node, promosikan the middle/median key dari node yang akan displit kepada parent node, dan hapus pada node sebelumnya (tidak membuat copy). Jika hasil promosi membuat parent menjadi full, lakukan proses splitting serupa secara rekursif.
  • 15. 15 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 67 Building a B+Tree (m=4) 67, 123, 89, 18, 34, 87, 99, 104, 36, 55, 78, 9 < data records leaf node root node 18 89 123 The split at leaf nodes 67 89 123 promote but retain a copy < data records root node 18 67 89 89 123 >= split mengapa 89, bukan 67? 18
  • 16. 16 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 87 67, 123, 89, 18, 34, 87, 99, 104, 36, 55, 78, 9 89 123 < root node 18 34 67 89 >= 67 87 < root node 18 34 67 89 >= 89 123 split
  • 17. 17 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 104 104 67, 123, 89, 18, 34, 87, 99, 104, 36, 55, 78, 9 67 87 < root node 18 34 67 89 >= 89 99 123 67 87 < root node 18 34 67 89 89 99 104 123 split
  • 18. 18 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 55 Split 2 67, 123, 89, 18, 34, 87, 99, 104, 36, 55,78, 9 67 87 < 18 34 36 67 89 104 89 99 104 123 67 87 < 18 34 89 99 104 123 36 55 double node split Split 1 Proses splitting diteruskan ke atas hingga node tersebut tidak full. Pada worst case, root node bisa juga di-split sehingga menambah tinggi tree 1 satuan. 67 89 104 36
  • 19. 19 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 67, 123, 89, 18, 34, 87, 99, 104, 36, 55,78, 9 67 87 < 18 34 36 67 89 99 104 123 36 55 104 89 67 36 89 104 The split at non-leaf nodes promosikan dan hapus(tidak di-copy)
  • 20. 20 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Observasi mengenai B+Trees B+Tree umumnya memiliki jumlah levels yang rendah (logarithmic pada jumlah data), sehingga proses pencarian dapat dilakukan dengan effisien. Saat memproses sebuah query, sebuah jalur (path) dijalani pada tree dari root hingga leaf node. jika terdapat sejumlah K search-key pada sebuah file, maka jalur pencarian tidak akan lebih besar dari logm/2(K), madalah degree B+ Tree. •pertanyaan: Mengapa “logm/2”, bukan “logm” ?
  • 21. 21 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Deletion on B+Trees hapus pasangan (search-key value, pointer) dari leaf node jika node ternyata memiliki pasangan yang terlalu sedikit (minimum requirement: m/2children), dan jika jumlah pasangan pada node dan sibling-nya dapatdigabungkan pada sebuah node, maka gabungkan kedua node tersebut hapus pasangan (Ki–1, Pi), pada parent node-nya dimana Piadalah pointer terhadap node yang dihapus. Lakukan secara recursively hingga root.
  • 22. 22 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Deletion on B+Trees jika jumlah pasangan pada node dan sibling-nya tidak dapatdigabungkan pada sebuah node, maka re-distribusikan pointers diantara node tersebut dan sibling-nya sehingga mereka memiliki jumlah element yang lebih dari minimum. Update search-key yang berkesesuain pada parent . proses ini dapat terus berlaku rekursif ke parent hingga ditemukan node yang memiliki pasangan sejumlah n/2 atau lebih.
  • 23. 23 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Hapus34 OK 67 87 < 18 34 36 67 89 104 89 99 104 123 67 87 < 18 36 67 89 104 89 99 104 123
  • 24. 24 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Hapus123 Merge 67 87 < 18 34 36 67 89 104 89 99 104 123 67 87 < 18 34 67 89 89 99 104 67 87 18 34 36 89 99 104 Merge < 67 89 104 36
  • 25. 25 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Hapus87 Redistribute 67 87 < 18 34 36 67 89 104 89 99 104 123 67 18 34 36 89 99 104 Redistribute < 67 89 104 123 36 18 34 89 99 104 < 36 89 104 123 67
  • 26. 26 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Rangkuman B Tree biasanya digunakan sebagai struktur data external pada databases. B Tree dengan degree mmemiliki aturan seperti berikut: Setiap non-leaf (internal) nodes (kecuali root) jumlah anaknya (yang tidak null) antara m/2dan m. Sebuah non-leaf (internal) node yang memiliki ncabang memiliki sejumlah n-1keys. Setiap leaves berada pada level yang sama, (dengan kata lain, memiliki depth yang sama dari root. B+Tree adalah variant dari B Tree dimana seluruh key terletak pada leaves.
  • 27. 27 Ruli Manurung & Ade Azurat Fasilkom UI -IKI20100 2007/2008 –Ganjil –Minggu 10 Tambahan informasi dan latihan applet simulasi B+Tree http://slady.net/java/bt/view.php?w=600&h=450 http://www.macs.hw.ac.uk/flex/BScCS/ds1/activity15.html http://www.cs.msstate.edu/~cs2314/global/BTreeAnimation/visualization.html