Algoritma dan Struktur Data

Slides:



Advertisements
Presentasi serupa
Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009
Advertisements

TURUNAN/ DIFERENSIAL.
STRUKTUR DATA (10) tree manipulation
Selamat Datang Dalam Kuliah Terbuka Ini
Pencarian ( Searching)
Sistem Kelistrikan & Instrumen
Pengendalian Proses : Seleksi (Conditional)
Mata Kuliah Teknik Digital TKE 113
Menempatkan Pointer Q 6.3 & 7.3 NESTED LOOP.
SOAL ESSAY KELAS XI IPS.
Algoritma dan Struktur Data
ALJABAR.
Metode Simpleks Diperbaiki (Revised Simplex Method)
TRANSFORMASI-Z Transformsi-Z Langsung Sifat-sifat Transformasi-Z
TUGAS STRUKTUR DATA D3 MI
Binary Trees adalah parent
Sistem Persamaan Diferensial
Linked List BEBERAPA CONTOH SOAL 6.3 & 7.3 NESTED LOOP.
TURUNAN DIFERENSIAL Pertemuan ke
STRUKTUR DATA TREE (POHON)
Algoritma dan Struktur Data
BAB 5 TREE (Pohon) 179.
SEARCHING ( PENCARIAN )
Muhammad Hamdani G
Mata kuliah: Struktur Data Created by 12.2G.12 1.Fungsi operasi yang digunakan untuk pengosongan antrian adalah … a. Pushc. ISFULL b. POPd. CLEAR 2.Operasi.
By : Fitroh Amaluddin & Galih Wasis W.
Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir
Luas Daerah ( Integral ).
Algoritma dan Struktur Data
PERTEMUAN KE 9 MENU TUNGGAL.
Bagian #1 Konsep, Editing & Formating
Implementasi Binary Tree
Pertemuan 5 P.D. Tak Eksak Dieksakkan
Tree.
ITK-121 KALKULUS I 3 SKS Dicky Dermawan
MATRIX.
Bahan Kuliah IF2091 Struktur Diskrit
Algoritma Branch and Bound
PD Tingkat/orde Satu Pangkat/derajat Satu
Kompleksitas Waktu Asimptotik
Bahan Kuliah IF2120 Matematika Diskrit
Pohon (bagian ke 6) Matematika Diskrit.
P OHON 1. D EFINISI Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit 2.
WISNU HENDRO MARTONO,M.Sc
Algoritma dan Struktur Data
Pertemuan 6 TREE & BINARY TREE
Algoritma dan Struktur Data
Binary Search Tree 2007/2008 – Ganjil – Minggu 9.
Tenia Wahyuningrum, S.Kom. MT
STRUKTUR DATA tree manipulation
BINARY TREE Universitas Ahmad Dahlan
1 Pertemuan Tree Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Algoritma dan Struktur Data
Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
Pertemuan 10 Binary Search Tree
1 Pertemuan 12 B-Tree Matakuliah: T0534/Struktur Data Tahun: 2005 Versi: September 2005.
Manipulasi Tree.
STRUKTUR DATA Tree (Struktur Pohon).
Pertemuan 24 Teknik Searching
Manipulasi Tree.
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
Algoritma dan Struktur Data
Oleh Shoffin Nahwa Utama, S.Kom
IT234 Algoritma dan Struktur Data
Binary Search Tree (BST)
IT234 Algoritma dan Struktur Data
Pohon Biner.
Algoritma dan Struktur Data
IT234 Algoritma dan Struktur Data
TREE Oleh : Neny silvia Nurhidayah Afny wilujeng Setyorini
Transcript presentasi:

Algoritma dan Struktur Data Linear & Binary Search Tree

Linear Search struct { int key; int data; } table[100]; int n; int search(int key) { int i; i=0; while (i < n){ if(table[i].key==key) return(table[i].data); i++; } return -1; statement (1) (2) (3) (4) (5) (6)

Cara kerja Linear Search key data 1 3 4 8 13 14 18 20 21 130 … 10 12 14 16 18 20 22 24 26 26 table  0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=0 1 3 4 8 13 14 18 20 21 130 … 10 12 14 16 18 20 22 24 26 26 table  0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=1 1 3 4 8 13 14 18 20 21 130 … 10 12 14 16 18 20 22 24 26 26 table  0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=2 1 3 4 8 13 14 18 20 21 130 … 10 12 14 16 18 20 22 24 26 26 table  0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=3 1 3 4 8 13 14 18 20 21 130 … 10 12 14 16 18 20 22 24 26 26 table  0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=4 1 3 4 8 13 14 18 20 21 130 … 10 12 14 16 18 20 22 24 26 26 table  0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=5 1 3 4 8 13 14 18 20 21 130 … 10 12 14 16 18 20 22 24 26 26 table  0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=6 1 3 4 8 13 14 18 20 21 130 … 10 12 14 16 18 20 22 24 26 26 table  0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=6 1 3 4 8 13 14 18 20 21 130 … 10 12 14 16 18 20 22 24 26 26 return(table[6].data) = 22

Binary Search int binary_search(int key) { int low, high, middle; high = n-1; while (low <= high){ middle = (low+high) / 2; if (key == table[middle].key) return(table[middle].data) else if(key < table[middle].key) high = middle – 1; else low = middle + 1; } return -1; (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)

Cara kerja Binary Search key data binary_search(14) n=10 low=0 middle=4 high=9 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 9 Syarat Binary Search: Data harus sudah terurut (sorted)

Cara kerja Binary Search key data binary_search(14) n=10 low=5 high=9 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 9 Syarat Binary Search: Data harus sudah terurut (sorted)

Cara kerja Binary Search key data binary_search(14) n=10 low=5 middle=7 high=9 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 9 Syarat Binary Search: Data harus sudah terurut (sorted)

Cara kerja Binary Search key data binary_search(14) n=10 low high 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 9 Syarat Binary Search: Data harus sudah terurut (sorted)

Cara kerja Binary Search key data binary_search(14) n=10 low middle high 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 9 Syarat Binary Search: Data harus sudah terurut (sorted)

Cara kerja Binary Search key data binary_search(14) n=10 middle 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 9 return(table[5].data) = 20 Syarat Binary Search: Data harus sudah terurut (sorted)

Penambahan Data pada Linear Search Data yang ingin ditambahkan 17 31 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 Ditaruh di paling belakang 1 3 4 8 13 14 18 20 21 25 17 10 12 14 16 18 20 22 24 26 26 31

Penambahan Data pada Binary Search Data yang ingin ditambahkan 17 31 Mencari tempat menaruh data 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 Menggeser data dengan nilai lebih besar ke belakang

Penambahan Data pada Linear Search Data yang ingin ditambahkan 17 31 Mencari tempat menaruh data 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 1 3 4 8 13 14 17 18 20 21 25 10 12 14 16 18 20 31 22 24 26 26

Apakah Binary Search Tree itu ? Pemakaian tree structure dalam proses pencarian (search) Sifat Binary Tree: Pada sebuah node x, elemen yang berada di LEFT sub-tree selalu lebih KECIL daripada x elemen yang berada di RIGHT sub-tree selalu lebih BESAR Atau SAMA DENGAN daripada x Binary Search Tree: proses pencarian (SEARCHING) berbasis binary tree

Operasi pada BST Traversals Searches Insertion Deletion

Example of a binary search tree

Traversals Preorder traversal 23 18 12 20 44 35 52 Postorder traversal 23 18 12 20 44 35 52 Postorder traversal 12 20 18 35 52 44 23 Inorder traversal 12 18 20 23 35 44 52 Inorder traversal pada BST menghasilkan nilai yang terurut dari kecil ke besar

Proses Pencarian (contoh SUKSES) search(7) 7<13 7>5 7==7 Data yang dicari BERHASIL ditemukan 13→5 →7

Proses Pencarian (contoh GAGAL) search(8) 8<13 8>5 8>7 Data tidak ada Data yang dicari GAGAL ditemukan

Proses Pencarian 6 search(7) 5 21 2 15 6→21 →15→13 →7 13 7 8

Find the smallest node

Find the smallest node

Find the largest node right subtree not empty right subtree not empty right subtree empty return

Proses Penambahan (INSERTION) 8<13 8>5 8>7 Data tidak ada Data yang dicari GAGAL ditemukan = disitulah data ditambahkan (insertion)

Penambahan Data pada Binary Search Tree Tambahkan node: 6 5 21 2 15 13 7 8

Penambahan Data pada Binary Search Tree 6 5 21 2 15 13 8 7 (b) Perhatikan: (b) lebih bercabang/panjang daripada (a), akibatnya proses pencarian pada (b) lebih lama daripada (a) 8

Penghapusan Data pada Binary Search Tree Proses penghapusan data pada binary search tree lebih rumit daripada proses searching maupun proses insertion Tahapan: Carilah node yang akan dihapus Apabila node tersebut leaf (tidak mempunyai anak), hapuslah node tersebut Bila node tersebut memiliki 1 anak, setelah node dihapus, anaknya menggantikan posisi orangtuanya (node yang dihapus) 9 9 hapus “1” 5 5 1 7 7

Penghapusan Data pada Binary Search Tree 9 9 hapus “5” 5 14 3 14 3 1 4 1 4

Penghapusan Data pada Binary Search Tree Proses penghapusan data pada binary search tree lebih rumit daripada proses searching maupun proses insertion Tahapan: Carilah node yang akan dihapus Apabila node tersebut leaf (tidak mempunyai anak), hapuslah node tersebut Bila node tersebut memiliki 1 anak, setelah node dihapus, anaknya menggantikan posisi orangtuanya (node yang dihapus) Bila node tersebut memiliki 2 anak, setelah node dihapus, gantikan node tersebut dengan elemen terkecil dari right sub-tree ATAU elemen terbesar dari left sub-tree

Penghapusan Data pada Binary Search Tree 20 20 hapus “7” 7 23 10 23 29 29 4 4 18 18 2 5 2 5 10 15 15

Menghapus node dengan nilai terkecil node yang dihapus leaf (tidak mempunyai anak) Menghapus node dengan nilai terkecil 13 13 hapus “2” 5 20 5 20 2 7 7

Menghapus node dengan nilai terkecil node yang mempunyai 1 anak Menghapus node dengan nilai terkecil 13 13 hapus “5” 5 20 20 10 10 7 11 7 11

/* dltKey = root */

(continued)