algoritma 8.17 (finish)
TRANSCRIPT
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 1/20
TUGAS
Sub BAB 8.17. 2-3-4 TREES
disusun untuk memenuhi Tugas dalam Mata Kuliah
Algoritma dan Struktur Data
dibina oleh I Made Wirawan, S.T., S.S.T.
oleh :
1. Ainun Fikri 110533406993
2. Indri Widyarti 110533406971
3. Setia Putri 110533406992
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS NEGERI MALANG
Maret 2012
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 2/20
2
A. Ringkasan
Sebuah pohon 2-3-4 adalah perluasan dari pohon 2-3. Setiap node dalam
pohon 2-3-4 dapat memiliki maksimal 4 anak. Sebuah pohon 2-3-4 khas
ditunjukkan pada Gambar. 8,57.
Sebuah pohon 2-3-4 adalah pohon pencarian yang baik kosong atau memenuhi
sifat berikut.
1. Setiap simpul dalam adalah node 2, 3, atau 4. Node 2 memiliki satu
elemen, node 3 memiliki dua elemen dan node 4 memiliki tiga elemen.
2. Mari LeftChild dan RightChild menunjukkan anak-anak dari simpul 2 danData menjadi elemen di node ini. Semua elemen di LeftChild memiliki
unsur-unsur kurang dari data, dan semua unsur di RightChild memiliki
elemen lebih besar dari Data.
3. Mari LeftChild, MidChild dan RightChild menunjukkan anak-anak dari
node 3 dan LeftData dan RightData menjadi unsur di node ini. Semua
elemen di LeftChild memiliki unsur-unsur kurang dari LeftData, semua
elemen dalam MidChild memiliki elemen lebih besar dari LeftData tetapi
kurang dari RightData, dan semua elemen di RightChild memiliki elemen
lebih besar dari data Kanan.
4. Mari LeftChild, LeftMidChild, RightMidChild, dan RightChild
menunjukkan anak-anak dari node 4. Mari LeftData, MidData dan
RightData menjadi tiga unsur dalam node. Kemudian LeftData kurang dari
MidData dan kurang dari RightData. Semua elemen dalam LeftChild
kurang dari LeftData, semua elemen dalam MidChild Kiri kurang dari
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 3/20
3
MidData tapi lebih besar dari LeftData, semua elemen dalam
RightMidChild kurang dari RightData tapi lebih besar dari MidData, dan
semua elemen dalam RightChild lebih besar dari RightData.
5. Semua node eksternal berada pada tingkat yang sama. Pertimbangkan
pohon pada Gambar. 8,58. Jika kita ingin memasukkan elemen, 77, atas-
bawah penyisipan metode yang digunakan dengan memisahkan akar,
Gambar. 8,59.
Jika pohon 2-3-4 h tertinggi hanya memiliki 2 node,
kemudian mengandung 2h-1 elemen. Jika hanya
berisi 4 node, maka jumlah elemen adalah 4h-1.
Sebuah pohon 2-3-4 adalah h tinggi dengan
campuran node 2, 3 dan 4, memiliki antara 2h-1 dan
4h-1 elemen. Dengan kata lain, tinggi suatu 2-3-4
dengan n elemen adalah antara log4 (n + 1) dan log2
(n + 1). Sebuah pohon 2-3-4 dapat diwakili efisien sebagai pohon biner disebut
pohon merah-hitam, yang akan dibahas dalam bagian berikutnya.
Sebuah pohon 2-3-4 (juga disebut pohon 2-4) adalah self-balancing
struktur data yang umum digunakan untuk mengimplementasikan kamus. Angka-
angka berarti sebuah pohon dimana setiap simpul dengan anak-anak (simpul
dalam) memiliki baik dua anak (2-node) dan satu elemen data atau tiga anak (3-
node) dan dua data elemen atau empat anak (4-node) dan tiga data elemen.
Nama 2-3-4
Untuk non-leaf nodes (non-leaf adalah nodes yg paling bawah dan tidak
punya children), berikut properties-nya:
a. Node dgn 1 data item selalu punya 2 children.b. Node dgn 2 data item selalu punya 3 children.
c. Node dgn 3 data item selalu punya 4 children.
2-3-4 tree
Tiap node memiliki 3 data item. Jika 3 data item ini terisi semua, maka
akan ada 4 node children dibawahnya. Contohnya untuk gambar 4-node diatas:
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 4/20
4
(27|33) lebih kecil dari 40, (51|55) diantara 40-62, (70|75w) diantara 62-80, dan
(90|99) lebih besar dari 80.
Sifat
Setiap daun yang tidak adalah 2-node, 3-node atau node 4-.
A 2-node berisi satu item data dan memiliki dua anak.
A 3-node berisi dua item data dan memiliki 3 anak.
A 4-node yang berisi 3 item data dan memiliki 4 anak.
Semua daun pada tingkat yang sama (tingkat bawah)
Semua data disimpan dalam rangka diurutkan.
Setiap node non-daun akan berisi bidang 1, 2 atau 3.
Ciri - ciri :
1. Tiap nodenya maksimun terisi 3 elemen ( Jumlah child tiap node PASTI
= jumlah elemennya + 1).
2. Tiap Leaf terletak pada level yang sama.
3. Terurut (mirip BST).
Jadi jenis node yang mungkin ada adalah : 2-node, 3-node dan 4-
node .
Dalam syntax C++ nya, node 2-3 tree didefinisikan sbb:
Struct node_2_3_4
{ int ele_L, ele_M, ele_R;
struct node_2_3_4 *LC, *MLC,
*MRC, *RC;
}
Keterangan :
ele_M itu singkatan dari elemen
Middle.
MLC itu singkatan dari Middle
LeftChild.
Misal tipe elemennya integer.
B. Algoritma (the algorithm)
Struktur utamanya masih sama seperti binary tree, data yang lebih
kecil diletakkan pada sebelah kiri dan data yang lebih besar diletakkan pada
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 5/20
5
sebelah kanan. Yang berbeda, pada saat suatu node sudah terisi 3 data dan
akan ditambah dengan data baru maka akan ada pergeseran data pada node.
Demikian pula jika suatu data dihapus dan menyebabkan tree tidak seimbang
maka akan ada pergeseran posisi data pada tree. Ada 3 operasi untuk
menggeser data, yaitu split, tranfer dan fusion.
a) Split : apabila ada 3 data pada suatu node dan data tengah ditarik
ke node parent
b) Transfer : apabila ada 2 data atau lebih pada suatu node, salah satu
data ditarik ke node parent dan data pada node parent
bergeser ke node anak yang lain
c) Fusion : apabila node anak dari suatu node parent (yang hilang)
digabung menjadi satu node
Ada beberapa cara dalam algoritma 2-3-4 trees, antara lain :
1) Penyisipan
Untuk memasukkan nilai, kita mulai pada akar pohon 2-3-4:
1. Jika node saat ini adalah node-4: Menghapus dan menyimpan nilai
tengah untuk mendapatkan node 3-. Split tersisa 3-simpul menjadisepasang 2-node (nilai tengah sekarang hilang ditangani pada langkah
berikutnya). Jika ini adalah node root (yang tentunya memiliki orang
tua tidak): nilai tengah menjadi akar baru 2-node dan peningkatan
tinggi pohon dengan 1. Naik ke akar. Jika tidak, mendorong nilai
tengah menjadi node induk. Naik ke node induk. Cari anak yang
interval yang berisi nilai yang akan dimasukkan. Jika anak yang daun,
masukkan nilai ke node saat ini dan selesai.Jika tidak, turun ke anak
dan ulangi dari langkah 1. [1] [2]
Contoh penyisipan :
Untuk memasukkan nilai "25" ke dalam pohon 2-3-4:
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 6/20
6
2-3-4 pohon insert 1.svg
Mulailah pada akar (10, 20) dan turun terhadap anak paling kanan (22, 24, 29).
(Interval Its (20, ∞) berisi 25.)
Node (22, 24, 29) adalah 4-node, sehingga elemen tengahnya 24 didorong ke
dalam node induk.
2-3-4 pohon insert 2.svg
Sisanya 3-simpul (22, 29) dibagi menjadi sepasang 2-node (22) dan (29). Mendaki
kembali ke orang tua baru (10, 20, 24).
Turun terhadap anak paling kanan (29). (Interval Its (24, ∞) berisi 25.)
2-3-4 pohon insert 3.svg
Node (29) tidak memiliki anak paling kiri. (Anak untuk interval (∞, 29) kosong.)
Berhenti di sini dan masukkan angka 25 ke node ini.
2-3-4 pohon insert 4.svg
Operasi Insert pada 2-3-4 Tree
Langkah-langkahnya :
1. Cek dulu elemen tersebut sudah ada belum. Kalo sudah ada maka gagal,
kalo belum ada maka lanjut ke langkah berikutnya.
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 7/20
7
2. Telusuri tree untuk mencari posisi leaf yang sesuai, sambil mengecek jenis
tiap node yang dilalui. Jika node tsb berupa 4-node (sudah pas penuh),
maka lakukan split.
3. Jadi pada sampai di posisi leaf yang sesuai, sudah tidak perlu lagi
melakukan split.
CATATAN :
Split pada 2-3-4 tree dilakukan saat pointer bergerak turun mencari posisi
leaf. Hal ini dikenal dengan istilah Top-Down Split, sedangkan split pada 2-3
tree dilakukan saat pointer bergerak naik dari leaf. Hal ini dikenal denganistilah Bottom-Up Split.
Pada saat split di 2-3-4 tree, elemen tengah yang akan dijadikan parent
ditentukan sebelum elemen baru diinsert. sedangkan split di 2-3 tree, elemen
tengahnya ditentukan setelah elemen baru diinsert.
Contoh :
Jika suatu 2-3-4 tree
sedang berbentuk seperti
gambar di samping,
kemudian diberikan
perintah insert(6). Maka,
jadi seperti apa hasilnya?
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 8/20
8
Jawab: Pengecekan
dimulai dari root. Ternyata
dideteksi bahwa node tsb
(si root) merupakan 4-
node (sudah terisi 3
elemen), jadi langsung aja
node tsb di-split !
Elemen 40 akan naik,
membentuk node baru
(kalau bingung, lihatkembali cara split 2-3
tree).
Pengecekan dilanjutkan ke
node berikutnya sesuai
urutan besar / kecilnya.
Karena elemen 6 (yang
akan diinput) lebih kecildari 10, maka lanjut ke
node kirinya. Kemudian
sampai di node yang berisi
elemen 2, dan node
tersebut berupa leaf, maka
perjalanan kita sudah
sampai.
Insert 6 ke node tersebut.
Sudah. Selesai Jangan
lupa ya harus terurut.
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 9/20
9
2) Penghapusan
Menemukan elemen yang akan dihapus. Jika unsur tersebut tidak ada
dalam simpul daun ingat lokasi dan terus mencari sampai daun, yang akan berisi
penerus elemen, tercapai. Kemudian menukar elemen daun dengan yang akan
dihapus, dan menghapus node elemen. Hal ini paling sederhana untuk melakukan
penyesuaian ke pohon dari atas ke bawah, sebagai elemen yang akan dihapus
dikejar jaminan bahwa bahwa node daun ditemukan bukan dua node, sehingga
kita dapat menghapus sesuatu dari itu dan meninggalkannya di sana.
Penyesuaian kita buat dalam perjalanan ke daun adalah sebagai berikut:
Asumsikan, tanpa kehilangan umum, bahwa anak kita akan pergi ke adalah paling
kiri.
Jika kita berada di akar
Jika akar dan kedua anak-anak adalah dua node, menggabungkan ketiga
unsur ke dalam akar, membuat 4-node dan memperpendek pohon, Jika tidak, jika
akar dan anak kiri adalah dua node, anak kanan bukan dua-node. Lakukan rotasi
kiri untuk membuat kiri saudara kandung 3-node, dan pindah ke anak kiri.
Mulai sekarang, kita dapat yakin bahwa kita berada di node yang bukan
merupakan simpul 2-. Jika anak paling kiri tidak a 2-node, hanya pindah ke sana.
Jika saudara berdekatan bukan 2-node, melakukan rotasi kiri menggunakan
elemen paling kiri untuk membuat anak kiri node 3-.
Jika tidak, tambahkan elemen paling kiri dari induk dan elemen tunggal
dari saudara ke node kiri, membuatnya menjadi 4-node, dan membuang saudara
kosong. Pergi ke anak paling kiri.
Penghapusan pada pohon 2-3-4 adalah O (log n), dengan asumsi transfer
dan menjalankan fusi dalam waktu konstan (O (1)) [1] [3]. Operasi Delete pada 2-3-4 Tree
Seperti halnya pada 2-3 tree, proses delete pada 2-3-4 tree dapat
difokuskan pada delete elemen di leaf. Jika ternyata elemen yang akan didelete
tidak terletak di leaf, maka gantikan dulu posisinya dengan elemen leaf.
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 10/20
10
Delete pada Leaf
Pedoman yang perlu diingat pada proses ini adalah harus bisa dijamin
bahwa child yang akan dikunjungi bukan berupa 2-node. Untuk itu diperlukan
restrukturisasi yang dilakukan ketika child yang akan dikunjungi tsb berupa 2-
node.
Jadi langkah-langkahnya adalah sbb:
1. Dimulai dari root.
2. Cek apakah child yang akan dikunjungi berupa 2-node.
3. Jika iya berupa 2-node, maka :
a. Cek sibling terdekat.
b. Jika sibling tsb berupa 2-node, maka lakukan merge / combine.
c. Jika sibling tsb bukan berupa 3-node, maka lakukan rotasi.
4. Ulangi langkah 2 sampai ke leaf.
Contoh :
Untuk kemudahan penjelasan maka tiap node pada 2-3-4 tree di atas tsb saya
berikan nama, yaitu: a, b, c, d, e, f, g, h, i, j, k .
Jika pada 2-3-4 tree di atas dilakukan delete(38), maka setelah memastikan bahwa
elemen 38 ada di leaf, lakukan pengecekan mulai dari root. Posisi pengecekan ini
saya lambangkan dengan posisi curr.
Langkahnya sbb:
Saat curr berada di a, kita tahu bahwa nilai 38 terletak di antara 20 dan 40,
maka nantinya kita akan melangkah ke c. Sebelum melangkah, cek c tsb dulu.
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 11/20
11
Karena c berupa 2-node dan mempunyai sibling terdekat (yaitu si d ) yang
bukan 2-node maka lakukan rotasi antara c dengan d .
Ingat cara rotasi! Elemen 44 akan turun, digantikan elemen 59.
Perhatikan bahwa ada beberapa pointer yang mungkin akan ikut bergeser.
Jangan lupa untuk menempatkan elemen di sebelah kiri.
Sekarang curr berada di c.
Lihat! Nilai 38 terletak di antara 35 dan 44, maka nantinya kita akan
melangkah ke h. Sebelum melangkah, cek h tsb dulu.
Karena h berupa 2-node dan sibling terdekatnya semua berupa 2-node maka
lakukan combine antara g dengan h. ( Ingat! Kalo mau combine, usahakan
dengan sibling kiri dulu, kalo nggak mungkin, baru ke sibling kanan).
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 12/20
12
Seperti biasa, untuk combine maka parent yang sesuai (dalam contoh ini
elemen 35) harus turun dulu.
Misalkan node hasil combine tsb saya sebut ‘m’.
Sekarang curr berada di m. Karena sudah leaf, maka 38 dihapus aja langsung.
Selesai deh.
Perhatikan lagi deh, saat curr sampai di leaf, maka leaf tersebut tidak mungkin
berupa 2-node, karena sudah kita cegah duluan, sehingga tidak perlu lagi
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 13/20
13
dilakukan restrukturisasi bottom-up.
Beberapa Metode Algoritma 2-3-4 Trees
a) Search 2-3-4
Searching di 2-3-4 Tree mirip dgn search di BINARY TREE. Contoh
untuk gambar 4-node diatas, kita akan mencari 75:
1. Masuk ke node (40|62|80). 75 tidak ditemukan.
2. Karena 75 diantara 62-80, kita masuk ke node (70|75). Disini 75
ditemukan.
b) Insert 2-3-4 (Tanpa Split)
Jika node belum full (ingat, maksimum 3 data item), maka data dapat
dimasukkan di posisi yang sesuai. Lihat gambar di bawah:
c) Insert 2-3-4 (Dgn Split)
Jika node sudah full ketika mencari insertion point, maka split diperlukan
agar tree tetap balance:
1. Node baru dibuat di sebelah kanan node yg di-split.
2. Data item C dari (A|B|C) pindah ke node baru.
3. Data item B dari (A|B|C) pindah ke parent.
4. Data item A dari (A|B|C) tetap.
5. Children ketiga dan keempat dari node yg di-split dipindahkan ke node
baru.
d) Insert 2-3-4 (Dgn Split di Root)
Jika root sudah full ketika mencari insertion point, maka dibutuhkan root
baru pada waktu split agar tree tetap balance:
1. Node baru dibuat dan menjadi parent node yg di-split.2. Node baru dibuat di sebelah kanan node yg di-split.
3. Data item C dari (A|B|C) pindah ke node baru.
4. Data item B dari (A|B|C) pindah ke root baru.
5. Data item A dari (A|B|C) tetap.
6. Children ketiga dan keempat dari node yg di-split dipindahkan ke node
baru yg di-kanan.
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 14/20
14
Ide utama algoritma ini adalah menjaga keseimbangan tree sehingga
kedalaman tree pada semua jalur dari root ke leaf sama. Untuk itu diperlukan
modifikasi dari binary tree. Sesuai namanya, 2-3-4 memiliki arti sebuah node pada
tree boleh memiliki 2 hingga 4 anak. Dengan demikian maka keadaan tree dapat
dibuat selalu seimbang.
dg d g
d g d f gf
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 15/20
15
Cara Penggunaan
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 16/20
16
C. Penggunaan Algoritma
2-3-4 pohon B-pohon order 4; seperti B-pohon secara umum, mereka
dapat mencari, menyisipkan dan menghapus dalam O (log n) waktu. Salah satu
properti dari pohon 2-3-4 adalah bahwa semua node eksternal berada pada
kedalaman yang sama.
2-3-4 pohon merupakan isometri dari pohon merah-hitam, yang berarti
bahwa mereka setara struktur data. Dengan kata lain, untuk setiap pohon 2-3-4,
terdapat setidaknya satu merah-hitam pohon dengan elemen data dalam urutan
yang sama. Selain itu, penyisipan dan penghapusan operasi pada 2-3-4 pohon
yang menyebabkan ekspansi node, membagi dan gabungan setara dengan warna-
flipping dan rotasi di pohon merah-hitam. Introduksi ke pohon merah-hitam
biasanya memperkenalkan 2-3-4 pohon pertama, karena mereka secara konseptual
sederhana. 2-3-4 pohon, namun, bisa sulit untuk menerapkan dalam kebanyakan
bahasa pemrograman karena banyaknya kasus-kasus khusus yang terlibat dalam
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 17/20
17
operasi di pohon. Merah-hitam pohon lebih sederhana untuk menerapkan
,sehingga cenderung digunakan sebagai gantinya.
2-3-4 tree adalah B-tree di mana tiap simpul internal mempunyai
minimal dua dan maksimal empat simpul anak. 2-3-4 tree biasanya
digunakan untuk mengimplementasikan larik asosiatif. Pohon ini
mempunyai properti dan algoritma penambahan, pengurangan, serta
pencarian yang sama dengan B-tree pada umumnya. 2-3-4 tree adalah
struktur data yang ekivalen dengan red-black tree. Namun karena red-black
tree lebih sederhana untuk diimplementasikan, struktur data tersebut lebih
sering digunakan daripada 2-3-4 tree.
Dalam mengaplikasikan suatu struktur data ke dalam sebuah basis
data, ada beberapa hal yang harus diperhatikan. Hal-hal tersebut antara
adalah :
Lama pencarian sebuah elemen. Untuk data yang sangat besar,
pencarian bisa memakan waktu yang lama. Waktu pencarian bisa
menjadi lebih lama lagi apabila data tidak disimpan secara
terurut, dan berada dalam media penyimpanan dengan kecepatan
tulis lambat.
Pengindeksan data. Dengan memberi indeks pada blok-blok
tertentu data, kita dapat memangkas waktu pencarian dengan
hanya mencari di blok tertentu, dan bukannya di seluruh data.
Penghapusan dan Penambahan data. Kedua operasi tersebut membuat
manajemen data dan indeksnya menjadi lebih rumit. Penambahan
data bisa berbahaya karena harus mengalokasikan tempat untuk data
yang baru, yang berarti harus menggeser data-data yang sudah ada
sebelumnya. Salah satu cara mengatasinya adalah dengan sengaja
membiarkan sebagian memori tetap kosong, dan dipakai hanya
jika ingin menambahkan elemen baru. B-tree menangani semua masalah
di atas dengan cara-cara berikut :
Menjaga data tetap terurut untuk akses sekuensial.
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 18/20
18
Menggunakan indeks hierarki untuk meminimalisir akses ke media
penyimpanan.
Menggunakan blok penuh-parsial untuk mempercepat penambahan
dan penghapusan data.
Indeks disesuaikan secara elegan menggunakan algoritma rekursif.
Meminimalisir proses yang terbuang dengan memastikan semua
simpul setidaknya setengah penuh.
Karena dapat mengatasi masalah-masalah tersebut,itulah maka B-tree
kerap dipakai dalam sistem manajemen basis data. Kelebihan lain dari B-tree
adalah kemampuan untuk menangani operasi penambahan dan penghapusandata dalam jumlah yang tak terhingga, selama masih ada tempat di media
penyimpanan. Variasi B-tree yang paling banyak digunakan dalam basis data
adlah B+ tree.
Berkas Sistem
Selain dalam basis data, B-tree juga digunakan pada berkas
sistem. B-tree digunakan karena memungkinkan akses acak ke blok mana pun
pada sebuah berkas tertentu. Selain itu, B-tree juga mengatasi masalah
mengubah alamat blok berkas menjadi alamat blok fisik.B-tree digunakan
dalam berkas sistem HFS dari Apple, NTFS dari Microsoft, dan beberapa
berkas sistem Linux. Variasi dari B-tree yang juga banyak dipakai dalam berkas
sistem adalah B*-tree. Selain itu, beberapa sistem operasi seperti TOPS-20 dan
TENEX menggunakan struktur data serupa B-tree di dalamnya.
2-3-4 Tree dalam worst-case-scenario memberikan:
Search = O(logN)
Insert = O(logN)
Delete = O(logN)
Tentunya dibandingkan Linked List [Search O(N), Insert O(1), Delete
O(N)] lebih baik. Namun masih kalah dibandingkan dengan Hashtable (yg
memiliki O(1) untuk Search, Insert, Delete). Tapi 2-3-4 Tree ini berguna untuk
sesuatu (lihat Point 3).
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 19/20
19
2-3-4 Tree adalah multiway tree, artinya dalam 1 node bisa lebih dari 1
data item, dan 1 node bisa memiliki lebih dari 2 children.
Salah satu spesies special dari multiway tree adalah B-Tree. B-Tree ini
sangat bagus untuk external storage.
Oleh karena sifat O (logN) nya dlm semua aspek, B-Tree digunakan untuk
filesystem. Contoh filesystem yg implementasinya menggunakan B-Tree:
- Apple HFS
- ReiserFS
- Windows NTFS
5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com
http://slidepdf.com/reader/full/algoritma-817-finish 20/20
20
DAFTAR RUJUKAN
Anonymous. 2007. Data Structure. (Online),
(http://netindonesia.net/blogs/zeddy/archive/2007/08/07/2_2D00_3_2D0
0_4-Tree-My-Fave-Data-Structure.aspx). Diakses pada tanggal 28 maret
2012 pukul 16.18.
Ford, William; Topp, William (2002), Data Structures with C++ Using STL (2nd
ed.), New Jersey: Prentice Hall, pp. 683, ISBN 0-13-085850-1.
Goodrich, Michael T; Tamassia, Roberto; Mount, David M (2002), Data
Structures and Algorithms in C++, Wiley, ISBN 0-471-20208-8.
Grama, Ananth (2004). "(2,4) Trees". CS251: Data Structures Lecture Notes.
Department of Computer Science, Purdue University. Retrieved 2008-04-
10.
Wikipedia. 2-3-4 Tree. (Online), (http://en.wikipedia.org/wiki/2-3-4_tree).
Diakses pada tanggal 28 maret 2012 pukul 16.18.