IKI 20100: Struktur Data & Algoritma

dokumen-dokumen yang mirip
Struktur Data & Algoritme (Data Structures & Algorithms)

sistem basis data ti ti ukdw Indexing Materi Minggu ke-10 Teknik Informatika Universitas Kristen Duta Wacana Yogyakarta 04/07/13 budi susanto 1

Struktur Data & Algoritma

Struktur Data & Algoritma

Organisasi File Multi Key y( (Index)

Struktur Data dan Algoritma

Outline. Struktur Data & Algoritme (Data Structures & Algorithms) Pengantar. Definisi. 2-3 Trees

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

IKI 20100: Struktur Data & Algoritma

Sekumpulan field yang bergambung sebagai sebuah unit yang memiliki ukuran tertentu

Struktur Data dan Algoritma

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II

STRUKTUR POHON & KUNJUNGAN POHON BINER

Algoritma dan Struktur Data. Binary Tree & Binary Search Tree (BST)

Algoritma dan Struktur Data. Click to edit Master subtitle style Konsep Tree

Struktur Data dan Algoritma

IKI 20100: Struktur Data & Algoritma

Organisasi Berkas Sekuensial Berindeks

ORGANISASI FILE. Alif Finandhita, S.Kom

Pemrograman Algoritma Dan Struktur Data

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013

METODE AVL TREE UNTUK PENYEIMBANGAN TINGGI BINARY TREE

JAWABAN TUGAS MATRIKULASI STRUKTUR DATA. DOSEN Bpk. Krisna Adiyarta, M.Sc

Algoritma dan Struktur Data. Linear & Binary Search Tree

MODUL PRAKTIKUM STRUKTUR DATA

ALGORITMA DAN STRUKTUR DATA

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

TREE STRUCTURE (Struktur Pohon)

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit.

Tree (Struktur Data) Nisa ul Hafidhoh, MT

Politeknik Elektronika Negeri Surabaya

Penerapan Pohon Biner dalam Proses Pengamanan Peer to Peer

TREE ALGORITMA & STRUKTUR DATA. Materi ASD Fakultas Teknik Elektro & Komputer UKSW ( Download Dari :

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit.

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

File Organization. IKI20410 Basis Data Aniati Murni Fakultas Ilmu Komputer Universitas Indonesia

13/12/2013. Binary Tree. Contoh Tree

Pohon dan Pohon Biner

BINARY SEARCH TREE. TUJUAN UMUM Mahasiswa memahami binary search Tree

Tenia Wahyuningrum, S.Kom. MT Sisilia Thya Safitri, S.T.,M.T.

BAB IX TREE (POHON) ISTILAH DASAR

A. TUJUAN Mahasiswa diharapkan mampu : 1. Memahami Konsep Binary Search Tree 2. Mengimplementasaikan Binary Search Tree

Soal Pendahuluan Modul 3

Algoritma Pemrograman & Struktur Data

Operating System. File System. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Pemodelan dan Pengelolaan Data Klasifikasi Tanaman Menggunakan Pohon

KUM 6 IMPLEMENTASI BINARY TREE

Penerapan Pohon Dalam Heap Sort

Struktur Data & Algoritme (Data Structures & Algorithms)

Struktur Data dan Algoritme. Struktur Data & Algoritme (Data Structures & Algorithms) Struktur Data dan Algoritme. Objectives.

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

ALGORITMA DAN STRUKTUR DATA

Disk & Memory Semester Ganjil 2014 Fak. Teknik Jurusan Teknik Informatika.

Silsilah keluarga Hasil pertandingan yang berbentuk turnamen Struktur organisasi dari sebuah perusahaan. B.1 Pohon Biner (Binary Tree)

Penerapan Teknik Binary Search Tree Sebagai Alternatif Penyimpanan Data

SEARCHING & SORTING. Pendahuluan

B C D E F G H I J K L M N O P Q R S T. Tinaliah, S.Kom POHON BINER

Pemrosesan File. Jatnika 1. Kumpulan atau koleksi item yang tersimpan dalam media penyimpanan sekunder Processor.

Buku Ajar Struktur Data

Pengantar Hardware: Partisi dan Format Harddisk. Hanif Fakhrurroja, MT

ANALISIS ALGORITMA BINARY SEARCH

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

PENCARIAN KITAB BESERTA PASAL PADA ALKITAB BERDASARKAN KATA DENGAN MENGGUNAKAN STRUKTUR DATA TRIE

IMPLEMENTASI DAN ANALISIS STRUKTUR DATA INDEX SB-TREE PADA TEXT RETRIEVAL SYSTEM

Studi Digital Tree dan Aplikasinya pada Kamus

Red-Black Tree Deletion. Rules for BST Deletion. Tujuan Top-Down Deletion. Terminology. Men-delete X dari BST: Men-delete X dari RB Trees: No problem

SISTEM OPERASI. CSP 2702 Semester/SKS : 3/3 Program Studi : Sistem Komputer Kamis, Ruang : P-22

DESAIN DAN ANALISIS STRUKTUR DATA NON LINIER ROOTED TREE DINAMIS (Kata kunci: Graf, Struktur data, tree, LCA, pemrograman dinamis)

Tempat Penyimpanan dan Struktur File. by: Ahmad Syauqi Ahsan

Syarif Abdullah (G )

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

JARINGAN UNTUK MERGING

ORGANISASI BERKAS MULTI KEY STRUKTUR & ORGANISASI DATA 1

B-Tree dan Penerapan di Basis Data

Media Penyimpanan Berkas. Rudi Susanto

BAB VII POHON BINAR POHON

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

MANAGEMENT INFORMATION SYSTEMS Raymond McLeod, Jr. and George Schell

Termilogi Pada Pohon Berakar 10 Pohon Berakar Terurut

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

Tujuan Instruksional. Mahasiswa mampu :

Lecture Notes On Algorithms and Data Structures. Oleh Thompson Susabda Ngoen

(Binary) Heap. Binary tree yang menyimpan pasangan prioritas (atau prioritas elemen) pada node Property Heap :

PENGAKSESAN DAUN SECARA RANDOM PADA HASH TREE

MAKALAH STRUKTUR DATA HEAP SORT. Disusun Oleh :

TUGAS 4 Makalah Organisasi Berkas Indexed Sequential

BAB VII Tujuan 7.1 Deskripsi dari Binary Tree

ABSTRAK. Kata Kunci : Map, TreeMap, AVL tree. vii Universitas Kristen Maranatha

IKI20210 Pengantar Organisasi Komputer Kuliah no. 6c:Cache Memory. Bobby Nazief Johny Moningka

Bab 10. Implementasi Sistem File POKOK BAHASAN: TUJUAN BELAJAR: 10.1 STRUKTUR SISTEM FILE

DEFINISI. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon 2

Tree. Perhatikan pula contoh tree di bawah ini : Level. Level 2. Level 3. Level 4. Level 5

ORGANISASI FILE BASIS DATA I - DIAN DHARMAYANTI

Review : Sifat Implementasi Linear List dengan Array

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB IX LINKED LIST (SENARAI BERANTAI)

Tujuan Instruksional

IX. Implementasi ADT : Stacks & Queues. Operasi dasar Contoh kegunaan Implementasi Array-based dan linked list-based

Transkripsi:

IKI 20100: Struktur Data & Algoritma B Tree Ruli Manurung & Ade Azurat ( Setiawan (acknowledgments: Denny, Suryana Fasilkom UI Ruli Manurung & Ade Azurat Fasilkom UI - IKI20100 2007/2008 Ganjil Minggu 10 1

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. ( storage terlalu besar untuk disimpan dalam memory (primary ( storage perlu disimpan di disk (secondary 2

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. ( KB Misalnya 1 disk block 8.192 byte (8 Maka jumlah blok yang diperlukan: 1 GB / 8 KB per block = 125,000 blocks. Setiap blok menyimpan: 8,192 / 512 = 16 records. 3

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

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

B Tree B Tree dengan degree m memiliki 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 n cabang memiliki sejumlah n-1 keys. Setiap leaves berada pada level yang sama, (dengan kata lain, memiliki depth yang sama dari root. >= 1250 1291 0625 1000 1277 1282 1425 2000 6

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 value dapat muncul dua kali di dalam tree (sekali pada leaf sebagai reference thd data kedua sebagai indeks pada internal node). 7

B+Tree Leaf Nodes 1250 >= 0625 1000 1425 2000 0350 0625 1000 1250 1300 1425 1600 2000 8

Struktur: B+Tree Node ( node A high level node (internal P 1 K1 P 2 K2....... P n-1 K n-1 P n Pointer to Pointer to Pointer to subtree for subtree for subtree for keys K keys>= K & K keys>= K & Kn-1 ( node A leaf node (Every key value appears in a leaf....... P K P K P K P 1 1 2 2 n-1 n-1 n Pointer to subtree for keys>= K 1 1 2 n-2 n-1 Pointer to ( block ) record with key K 1 Pointer to ( block ) record with key K 2 Pointer to ( block ) record with key K n-1 Pointer to leaf with smallest key greater than K n-1 9

Contoh sebuah B+Tree (m=3) Leaf Nodes 1250 >= 0625 1000 1425 2000 0350 0625 1000 1250 1300 1425 1600 2000 0350 0625 1000 1250 1425 2000 1300 1600 Actual Data Records 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 K j, key terkecil pada node yang memenuhi syarat: K j > k, maka ikuti P i (rekursif terhadap node yang ditunjukkan oleh P i ) Jika tidak ditemukan dan k K m 1, serta ada m pointers pada node. Maka ikuti P m (rekursif terhadap node yang ditunjukkan oleh P i ) 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 i sehingga nilai key K i = k, maka ikuti pointer P i untuk mendapatkan record (atau bucket) yang diinginkan. Jika tidak, maka tidak ada data dengan nilai key k. 11

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 (P n ) untuk menuju leaf node selanjutnya. Bandingkan dengan proses yang sama pada binary search tree ( 2 (lihat soal quiz 12

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 seachkey), 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, terurut pointer) pada leaf node secara Bila tidak, split node tersebut bersama dengan pasangan (key-value, ( selanjutnya pointer) yang baru. (lihat slide 13

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

Building a B+Tree (m=4) 67, 123, 89, 18, 34, 87, 99, 104, 36, 55, 78, 9 18 root node promote but retain a copy 67 89 123 leaf node 18 67 89 123 data records split The split at leaf nodes 18 67 89 >= 89 123 root node mengapa 89, bukan 67? data records 15

67, 123, 89, 18, 34, 87, 99, 104, 36, 55, 78, 9 89 18 34 67 87 >= 89 123 root node split 67 89 root node >= 18 34 67 87 89 123 16

67, 123, 89, 18, 34, 87, 99, 104, 36, 55, 78, 9 18 34 67 89 67 87 root node >= 104 89 99 123 67 89 104 root node split 18 34 89 99 104 123 67 87 17

18 34 36 Split 1 67, 123, 89, 18, 34, 87, 99, 104, 36, 55, 78, 9 67 89 104 55 67 87 double node split 89 99 104 123 Split 2 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. 36 67 89 104 18 34 89 99 104 123 36 55 67 87 18

67, 123, 89, 18, 34, 87, 99, 104, 36, 55, 78, 9 promosikan dan hapus ( di-copy (tidak 89 36 67 89 104 The split at non-leaf nodes 36 67 104 104 123 18 34 89 99 36 55 67 87 19

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), m adalah degree B+ Tree. pertanyaan: Mengapa log m/2, bukan log m? 20

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 dapat digabungkan pada sebuah node, maka gabungkan kedua node tersebut hapus pasangan (K i 1, P i ), pada parent node-nya dimana P i adalah pointer terhadap node yang dihapus. Lakukan secara recursively hingga root. 21

Deletion on B+Trees jika jumlah pasangan pada node dan sibling-nya tidak dapat digabungkan 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. 22

Hapus 34 OK 67 89 104 18 34 36 89 99 104 123 67 87 67 89 104 18 36 89 99 104 123 67 87 23

Hapus 123 Merge 67 89 104 18 34 36 67 87 89 99 104 123 18 34 36 67 89 104 67 87 89 99 104 Merge 67 89 18 34 36 67 87 89 99 104 24

Hapus 87 Redistribute 67 89 104 18 34 36 67 87 89 99 104 123 67 89 104 18 34 36 104 123 Redistribute 67 89 99 36 89 104 18 34 36 67 89 99 104 123 25

Rangkuman B Tree biasanya digunakan sebagai struktur data external pada databases. B Tree dengan degree m memiliki 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 n cabang memiliki sejumlah n-1 keys. 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. 26

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 27