Lompat ke isi

Pohon B+: Perbedaan antara revisi

Ensiklopedia Pengetahuan Universitas Islam Sultan Agung
Maintenance script (bicara | kontrib)
Impor teks terkontrol dari Wikipedia bahasa Indonesia; revisi 28456763; atribusi sumber disertakan.
 
Maintenance script (bicara | kontrib)
Presentation V4: sitasi, referensi, Math, Wikimedia Commons, dan atribusi
 
Baris 1: Baris 1:
'''Pohon B+''' merupakan salah satu varian dari Pohon B-. Pohon B- aksesnya akan lebih cepat dibandingkan dengan pohon AVL  jika ketinggiannya dijaga seminimal mungkin. Operasi dasar pohon B- antara lain ''Searching , Insection,'' dan ''Deletion''. Pencarian data dalam [[Pangkalan data|database]] yang besar membutuhkan banyak waktu, tetapi hal ini dapat di tingkatkan dengan menggunakan Pohon B+ dalam mengindeks [[data]]. Pohon B+ terdiri dari internal ''[[Node (computer science)|node]]'' dan ''leaf'' atau eksternal ''node''. Indeks ''node'' merupakan sebutan dari internal ''node'' pohon B+.  Perbedaan antara pohon B- dan pohon B+ adalah jika pohon B- kunci dan rekord dapat disimpan sebagai internal maupun daun ''node'', sedangkan untuk pohon B+ pada rekord disimpan sebagai daun ''node'' dan kunci hanya dapat disimpan sebagai internal ''node''.
'''Pohon B+''' merupakan salah satu varian dari Pohon B-. Pohon B- aksesnya akan lebih cepat dibandingkan dengan pohon AVL  jika ketinggiannya dijaga seminimal mungkin. Operasi dasar pohon B- antara lain ''Searching , Insection,'' dan ''Deletion''. Pencarian data dalam [[Pangkalan data|database]] yang besar membutuhkan banyak waktu, tetapi hal ini dapat di tingkatkan dengan menggunakan Pohon B+ dalam mengindeks [[data]]. Pohon B+ terdiri dari internal ''[[Node (computer science)|node]]'' dan ''leaf'' atau eksternal ''node''. Indeks ''node'' merupakan sebutan dari internal ''node'' pohon B+.  Perbedaan antara pohon B- dan pohon B+ adalah jika pohon B- kunci dan rekord dapat disimpan sebagai internal maupun daun ''node'', sedangkan untuk pohon B+ pada rekord disimpan sebagai daun ''node'' dan kunci hanya dapat disimpan sebagai internal ''node''.<ref>[https://www.softwaretestinghelp.com/b-tree-data-structure-cpp/ B Tree And B+ Tree Data Structure In C++]. ''Software Testing Help''.</ref>


Keuntungan dari pohon B+ antara lain untuk mengambil rekord dibutuhkan jumlah akses ''[[disk]]'' yang sama ; Dalam pohon B+ data dapat diakses secara berurutan dan langsung; pohon B+ memiliki level yang lebih rendah dan sangat cepat sekaligus efisien dalam mengakses [[rekord]] dari ''disk.''
Keuntungan dari pohon B+ antara lain untuk mengambil rekord dibutuhkan jumlah akses ''[[disk]]'' yang sama ; Dalam pohon B+ data dapat diakses secara berurutan dan langsung; pohon B+ memiliki level yang lebih rendah dan sangat cepat sekaligus efisien dalam mengakses [[rekord]] dari ''disk.'' <ref>[https://www.geeksforgeeks.org/introduction-of-b-tree/ Introduction of B+ Tree]. ''GeeksforGeeks''. 2018-04-04.</ref>


== Algoritma Pohon B+ ==
== Algoritma Pohon B+ ==
=== Searching ===
=== Searching ===
Langkah-langkah mencari rekord dengan kunci pencarian'':k''
Langkah-langkah mencari rekord dengan kunci pencarian'':k''<ref>[https://www.programiz.com/dsa/b-plus-tree B+ Tree]. ''www.programiz.com''.</ref>


1.      Mulai dari akar ''node'' . Bandingkan ''k'' dengan ''kunci'' pada akar ''node'' [ ''k1, k2, k3,….. k m-1'']
1.      Mulai dari akar ''node'' . Bandingkan ''k'' dengan ''kunci'' pada akar ''node'' [ ''k1, k2, k3,….. k m-1'']
Baris 21: Baris 20:


=== Insertion ===
=== Insertion ===
Hal-hal yang perlu diperhatikan dalam sebelum ''insertion'':
Hal-hal yang perlu diperhatikan dalam sebelum ''insertion'':<ref>[https://www.programiz.com/dsa/insertion-on-a-b-plus-tree Insertion on a B+ Tree]. ''www.programiz.com''.</ref>


1.      Akar setidaknya memiliki 2 anak
1.      Akar setidaknya memiliki 2 anak
Baris 29: Baris 28:
3.      Setiap ''node'' dapat berisi maksimal ''m - 1 kunci'' dan minimal ''⌈m/2⌉ - 1'' kunci.
3.      Setiap ''node'' dapat berisi maksimal ''m - 1 kunci'' dan minimal ''⌈m/2⌉ - 1'' kunci.


Untuk memasukkan elemen maka dapat diikuti langkah yang pertama yakni setiap elemen dimasukkan ke dalam daun ''node'' dan buka daun ''node'' yang sesuai, kemudian masukkan kunci pada daun ''node''. Jika kunci tidak ''full'' maka msukkan kunci ke dalam daun ''node'' dengan urutan meningkat, tetapi jika daun sudah penuh, masukkan kunci ke daun ''node'' dengan urutan meningkat dan seimbangkan pohon dengan menghancurkan ''node'' pada posisi ''m/2'' dan tambhakan juga kunci ''m/2'' ke ''node'' induk.
Untuk memasukkan elemen maka dapat diikuti langkah yang pertama yakni setiap elemen dimasukkan ke dalam daun ''node'' dan buka daun ''node'' yang sesuai, kemudian masukkan kunci pada daun ''node''. Jika kunci tidak ''full'' maka msukkan kunci ke dalam daun ''node'' dengan urutan meningkat, tetapi jika daun sudah penuh, masukkan kunci ke daun ''node'' dengan urutan meningkat dan seimbangkan pohon dengan menghancurkan ''node'' pada posisi ''m/2'' dan tambhakan juga kunci ''m/2'' ke ''node'' induk. <ref>[https://www.programiz.com/dsa/insertion-on-a-b-plus-tree Insertion on a B+ Tree]. ''www.programiz.com''.</ref>


=== Deleting ===
=== Deleting ===
Menghapus pada pohon B+ memiliki 3 hal utama antara lain mencari ''node'' di mana ada kunci yang akan dihapus, menghapus kunci dan menyeimbangkan pohon jika diperlukan, dan ''underflow'' yakni ketika jumlah kunci dalam sebuah ''node'' lebih sedikit dari jumlah minimum kunci yang harus dipegang. Untuk menghapus kunci, kunci pada ''node'' internal (indeks) harus dijaga karena nilainya berlebihan di pohon B+''.''
Menghapus pada pohon B+ memiliki 3 hal utama antara lain mencari ''node'' di mana ada kunci yang akan dihapus, menghapus kunci dan menyeimbangkan pohon jika diperlukan, dan ''underflow'' yakni ketika jumlah kunci dalam sebuah ''node'' lebih sedikit dari jumlah minimum kunci yang harus dipegang. Untuk menghapus kunci, kunci pada ''node'' internal (indeks) harus dijaga karena nilainya berlebihan di pohon B+''.''<ref>[https://www.programiz.com/dsa/deletion-from-a-b-plus-tree Deletion from a B+ Tree]. ''www.programiz.com''.</ref>


== Referensi ==
== Referensi ==
 
<references />
 


== Sumber dan atribusi ==
== Sumber dan atribusi ==


Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=Pohon+B%2B&oldid=28456763 Wikipedia bahasa Indonesia], revisi 28456763 (2025-11-13T09:39:21Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.
Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=Pohon+B%2B&oldid=28456763 Wikipedia bahasa Indonesia], revisi 28456763 (2025-11-13T09:39:21Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.
<!-- WIKI_UNISSULA_PRESENTATION_V4 -->

Revisi terkini sejak 23 Agustus 2026 04.09

Pohon B+ merupakan salah satu varian dari Pohon B-. Pohon B- aksesnya akan lebih cepat dibandingkan dengan pohon AVL jika ketinggiannya dijaga seminimal mungkin. Operasi dasar pohon B- antara lain Searching , Insection, dan Deletion. Pencarian data dalam database yang besar membutuhkan banyak waktu, tetapi hal ini dapat di tingkatkan dengan menggunakan Pohon B+ dalam mengindeks data. Pohon B+ terdiri dari internal node dan leaf atau eksternal node. Indeks node merupakan sebutan dari internal node pohon B+. Perbedaan antara pohon B- dan pohon B+ adalah jika pohon B- kunci dan rekord dapat disimpan sebagai internal maupun daun node, sedangkan untuk pohon B+ pada rekord disimpan sebagai daun node dan kunci hanya dapat disimpan sebagai internal node.[1]

Keuntungan dari pohon B+ antara lain untuk mengambil rekord dibutuhkan jumlah akses disk yang sama ; Dalam pohon B+ data dapat diakses secara berurutan dan langsung; pohon B+ memiliki level yang lebih rendah dan sangat cepat sekaligus efisien dalam mengakses rekord dari disk. [2]

Algoritma Pohon B+

Searching

Langkah-langkah mencari rekord dengan kunci pencarian:k[3]

1. Mulai dari akar node . Bandingkan k dengan kunci pada akar node [ k1, k2, k3,….. k m-1]

2. Jika k < k 1, pergi ke anak kiri dari akar node

3. Beda jika k = k1, bandingkan k2. Jika k < k2, k terletak antara k1 dan k2. Jadi, cari di anak kiri k2.

4. Jika k > k2, pilih k3, k4,...km-1 seperti pada langkah 2 dan 3.

5. Ulangi langkah di atas sampai daun node tercapai.

6. Jika k ada di daun node, kembalikan true jika tidak kembalikan false.

Insertion

Hal-hal yang perlu diperhatikan dalam sebelum insertion:[4]

1. Akar setidaknya memiliki 2 anak

2. Setiap node kecuali akar dapat memiliki maksimal m anak dan setidaknya m/2 anak

3. Setiap node dapat berisi maksimal m - 1 kunci dan minimal ⌈m/2⌉ - 1 kunci.

Untuk memasukkan elemen maka dapat diikuti langkah yang pertama yakni setiap elemen dimasukkan ke dalam daun node dan buka daun node yang sesuai, kemudian masukkan kunci pada daun node. Jika kunci tidak full maka msukkan kunci ke dalam daun node dengan urutan meningkat, tetapi jika daun sudah penuh, masukkan kunci ke daun node dengan urutan meningkat dan seimbangkan pohon dengan menghancurkan node pada posisi m/2 dan tambhakan juga kunci m/2 ke node induk. [5]

Deleting

Menghapus pada pohon B+ memiliki 3 hal utama antara lain mencari node di mana ada kunci yang akan dihapus, menghapus kunci dan menyeimbangkan pohon jika diperlukan, dan underflow yakni ketika jumlah kunci dalam sebuah node lebih sedikit dari jumlah minimum kunci yang harus dipegang. Untuk menghapus kunci, kunci pada node internal (indeks) harus dijaga karena nilainya berlebihan di pohon B+.[6]

Referensi

  1. B Tree And B+ Tree Data Structure In C++. Software Testing Help.
  2. Introduction of B+ Tree. GeeksforGeeks. 2018-04-04.
  3. B+ Tree. www.programiz.com.
  4. Insertion on a B+ Tree. www.programiz.com.
  5. Insertion on a B+ Tree. www.programiz.com.
  6. Deletion from a B+ Tree. www.programiz.com.

Sumber dan atribusi

Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 28456763 (2025-11-13T09:39:21Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.