p9 2,3 tree dan a,b tree

34
2,3 tree dan a,b tree 2,3 tree dan a,b tree Disadur dari Materi Kuliah: Annisa, Dept. Ilmu Komputer FMIPA IPB

Upload: nelsonrumuy

Post on 23-Dec-2015

38 views

Category:

Documents


9 download

DESCRIPTION

materi b tree

TRANSCRIPT

2,3 tree dan a,b tree2,3 tree dan a,b treeDisadur dari Materi Kuliah: Annisa, Dept. Ilmu Komputer FMIPA IPB

Balanced Tree = AVL Tree?Balanced Tree = AVL Tree?

AVL Tree menjamin tree selalu berada dalam keadaan (minimal) complete binary tree atau almost balanced tujuan utama perfect binary tree

Good performance in searches, insertion, deletion

AVL-tree tetap saja masih punya perbedaan level.

Rearranged method to keep balanced tree high cost

2, 3 Tree main idea2, 3 Tree main idea

maintaining perfect balanced tree without rearranged like AVL-tree.

mengizinkan jumlah key yang dapat ditampung oleh sebuah node bervariasi.

2,3 tree2,3 tree

Each node in 2,3 tree is permitted to contain either one or two search key and to have either two or three descendants

Semua leaves adalah subtree kosong dan berada tepat satu level dibawahnya.

2,3 Tree Rule of placement2,3 Tree Rule of placement

Degree 2 (node berderajat 2)◦key subtree kiri < keyroot <keysubtree

kanan◦A < B < C

Degree 3 (node berderajat 3)◦ key subtree kiri < key root1 < key subtree tengah <

key root2 < key subtree kanan◦ A < B < C < D < E

B

A C

B D

A EC

2,3 tree example2,3 tree example

H

D J N

A E F I K L O P

2,3 Tree Insertion2,3 Tree Insertion

• Insert pada node dengan 1 elemen, langsung masuk

• Insert pada node dengan 2 elemen, urutkan search key, dan key yang di tengah naik menjadi parent.

A A B A B C B

A C

ExampleExample

Masukkan ke dalam sebuah 2,3 tree masukan berikut:

10, 20, 4, 8, 15, 30, 1, 2, 9, 610, 20, 4, 8, 15, 30, 1, 2, 9, 6

10, 20, 4, 8, 15, 30, 1, 2, 9, 610, 20, 4, 8, 15, 30, 1, 2, 9, 6

10 1020

10

4 20

10

4 208

10

4 208 15

10

4 308 15

20 4

1 308 15

20

10

4

1 308 15

20

10

2

4

1 308 15

20

10

2 9

10

4 8

6 91 2

20

15 30

ExampleExample

Masukkan 16Masukkan 31Masukkan 7 10

4 8

6 91 2

20

15 3016 317

2,3 tree deletion2,3 tree deletion

◦Jika pada leaf dengan 2 elemen langsung hapus

◦Jika pada leaf dengan 1 elemen lihat sibling Jika sibling ada dua elemen:

Jika sibling berderajat hanya 1 elemen:

X1

X3X2 D

X3

X2 X1

X1

X2 D

X2X1

ExampleExample

Delete 7, 16Delete 6Delete 20 10

4 8

6 91 2

20

15 30 31

10

4

8 91 2

20

15 30 31

10

4

8 91 2 15

30

31

ExampleExample

Delete 30

104

8 91 2 15 31

B-trees dan (A,b)-treesB-trees dan (A,b)-trees

2,3 tree is an a,b tree2,3 tree is an a,b tree

Generalization of 2, 3 treeMenjamin tree menjadi pendek Menjamin tree berada dalam keadaan

perfect balanced tree

Rule of a,b treeRule of a,b tree

Setiap leaf berada pada level yang samaRoot memiliki paling sedikit 1 key dan

paling banyak m-1 key (memiliki 2 sampai m subtree)

M adalah branching factor dari a,b tree (m=3 untuk 2,3 tree)

Semua node kecuali root mempunyai paling banyak m-1 search key (m anak), atau sedikitnya m/2-1 search key (m/2 anak.

•Jumlah key pada masing-masing node adalah satu lebih kecil daripada jumlah anak yang tidak kosong.

Jika jumlah anak minimum m/2 , maka jumlah key untuk setiap node adalah key ≥ m/2 - 1 dan minimum sebanyak key = m/2 - 1.Jika m =5, maka jumlah anak minimum adalah 5/2, maka jumlah key minimum adalah sama dengan 5/2 - 1.

•Root mempunyai paling banyak m children, tapi diperbolehkan sedikitnya mempunyai 2 children atau 0 children jika tree terdiri dari dari root saja.

TerminologiTerminologiKey Masukan pada node-node, baik root maupun children dan leaf.Branching factorFaktor percabangan nodeTree KurusJika banyaknya cabang dari suatu node m/2Tree GemukJika banyaknya cabang dari suatu node m

DefinisiDefinisi

a,b tree merupakan generalisasi dari tree, terutama 2,3 tree

B D

A C E

2,3 tree adalah juga a,b tree dengan ordo atau m=3

• Semua leaf berada pada level yang sama

• Semua node internal kecuali root mempunyai paling banyak m anak, atau sedikitnya m/2 anak. Misal : Jika m = 3, maka jumlah anak paling banyak adalah 3, dan paling

sedikit adalah 3/2

◦ Jumlah key pada masing-masing node adalah satu lebih kecil daripada jumlah anak yang tidak kosong.

Jika jumlah anak minimum m/2 , maka jumlah key untuk setiap node adalah key ≥ m/2 - 1 dan minimum sebanyak key = m/2 - 1.Jika m =5, maka jumlah anak minimum adalah 5/2, maka jumlah key minimum adalah sama dengan 5/2 - 1.

◦ Root mempunyai paling banyak m children, tapi diperbolehkan sedikitnya mempunyai 2 children atau 0 children jika tree terdiri dari dari root saja.

Contoh (A,b)-tree dengan Order 5Contoh (A,b)-tree dengan Order 5Yang key-nya adalah 26 huruf dalam Yang key-nya adalah 26 huruf dalam abjadabjad

L

H I J K

E F A B C

C S W D G

M N X Y Z T U V P Q R

Proses pada A,b TreeProses pada A,b Tree

Inserting atau penyisipan1. Key baru tersebut ditambahkan pada “leaf node”

yang sesuai. 2. Jika node sebelumnya tidak penuh , maka proses

penyisipan dapat diselesaikan. 3. Jika setelah ditambahkan nodenya menjadi penuh

(key ≥ m), maka node tersebut pecah menjadi dua node pada level yang sama , kemudian median key disisipkan pada parent node.

4. Jika parent menjadi penuh juga, ulangi langkah diatas untuk parent.

Misalkan untuk a,b tree m=3Misalkan untuk a,b tree m=3

10

4 8 20 30

Insert 40

404 8

10 30

20

Insert 21

404 8

10 30

20 21

Insert 2221

10 30

20 22 404 8

##Contoh inserting pada B- Tree ordo 5Contoh inserting pada B- Tree ordo 5##

1. INSERT A, G, F, B

A G F B

2. INSERT K

F

G K A B

3. INSERT D, H, M

F

G H K M A B D

4. INSERT J

F J

K M G H A B D

5. INSERT E, S, I, R

KMRS

K M G H I

A B D E

F J 6. INSERT X

F J R

S X

K M G H I

A B C D DD

7. INSERT C, L, N, T, U C F J R

S T U X K L M N G H I D E A B

8. INSERT P J

S T U X N P K L G H I D E A B

M R C F

Deletion atau penghapusanDeletion atau penghapusanLangkah-langkahnya,sbb:1. Jika entri yang akan dihapus tidak berada pada sebuah

leaf, maka cari successor atau predecessornya untuk menggantikan tempat (seperti dalam BST).

2. Jika berisi key sebanyak ≥ m/2 - 1, maka satu di antaranya dapat dihapus secara langsung.

3. Jika berisi kurang dari jumlah minimum entri (jumlah key < m/2 - 1) maka pinjam dari sibling kiri atau sibling kanan, yang mempunyai

key > m/2 - 1. 4. Jika kedua sibling hanya memiliki jumlah key minimum,

maka ambil sebuah key dari parent, kemudian gabungkan dengan salah satu sibling menjadi node baru.

5. Jika parent jadi kekurangan key, ulangi langkah diatas.

100

30 50 200 300

31 2011011 51 52 301 302

delete 51

100

30 50 200 300

31 2011011 52 301 302

delete 201

100

30 50 200 301

31 3001011 52 302

delete 31

100

30 200 301

3001011 50 52 302

##Contoh penghapusan B-tree Contoh penghapusan B-tree orderorder 55##

1. HAPUS H, R

J

N P S T U X K L G H I D E A B

M R C F

G I T U X

2. HAPUS P

J

N P T U X K L D E A B

M S C F

G I

3. HAPUS D

J

N S SP

U X K L D E A B

M T C F

G I

J

N S U X K L A B C E

M T F

G I

Rumus-rumus pada a,b treeRumus-rumus pada a,b tree

Jika T adalah sebuah B-tree dengan order m (dimana setiap node internalnya penuh dan mempunyai m anak) berisi n key dan p node, maka

p = n/(m-1) ………………(1)dengan m-1 adalah isi dari setiap node yang ada di T.Pada umumnya ada satu node (root) pada level 0 dan m node pada level 1, m2 node pada level 2, …, mk node pada level k, sehingga total jumlah node (p) pada tree merupaka penjumlahan dari deret geometri

p = 1+ m+m2+…+mk atau p = (mk+1 – 1)/(m-1) ……..(2)

Hasil gabungan antara persamaan (1) dan (2) adalah sebagai berikut:

k = mlog (n+1) – 1di manak = tinggi tree (nomor level dari leaf terbawah)m = banyaknya cabang node (branching factor)n = banyaknya node

##Contoh KasusContoh Kasus##Diketahui : m1 = 100 n1 = 1000000

m2 = 10 n2 = 1000000Ditanya : tinggin tree dan bandingkan keduanyaJawab: k = mlog (n+1)-1

k1 = 100log (1000000+1)-1 = 3-1

= 2k2 = 10log (1000000+1) -1

= 6-1 = 5Kesimpulan:Sebuah B-tree dengan order 100 dapat menyimpan 1000000 record pada 3 level (0,1,dan 2). Hal ini hanya perlu mengakses 3 node untuk menemukan key yang dicari. Sedangkan pada B-tree dengan order 10 dapat menyimpan 1000000 record pada 6 level dengan mengakses sebanyak 6 node yang berbeda untuk menemukan sebuah key.