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 11053340697 1 3. Setia Putri 110533406992 PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS NEGERI MALANG Maret 2012

Algoritma 8.17 (Finish)

Embed Size (px)

Citation preview

Page 1: Algoritma 8.17 (Finish)

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

Page 2: Algoritma 8.17 (Finish)

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

Page 3: Algoritma 8.17 (Finish)

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:

Page 4: Algoritma 8.17 (Finish)

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

Page 5: Algoritma 8.17 (Finish)

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:

Page 6: Algoritma 8.17 (Finish)

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.

Page 7: Algoritma 8.17 (Finish)

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?

Page 8: Algoritma 8.17 (Finish)

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.

Page 9: Algoritma 8.17 (Finish)

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.

Page 10: Algoritma 8.17 (Finish)

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.

Page 11: Algoritma 8.17 (Finish)

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).

Page 12: Algoritma 8.17 (Finish)

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

Page 13: Algoritma 8.17 (Finish)

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.

Page 14: Algoritma 8.17 (Finish)

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 

Page 15: Algoritma 8.17 (Finish)

5/16/2018 Algoritma 8.17 (Finish) - slidepdf.com

http://slidepdf.com/reader/full/algoritma-817-finish 15/20

15

  Cara Penggunaan

Page 16: Algoritma 8.17 (Finish)

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

Page 17: Algoritma 8.17 (Finish)

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.

Page 18: Algoritma 8.17 (Finish)

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).

Page 19: Algoritma 8.17 (Finish)

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 

Page 20: Algoritma 8.17 (Finish)

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.