Algoritma dan Struktur Data - PowerPoint PPT Presentation

About This Presentation
Title:

Algoritma dan Struktur Data

Description:

Title: PowerPoint Presentation Author: fayad Last modified by: LENOVO Created Date: 5/1/2000 6:01:31 PM Document presentation format: On-screen Show (4:3) – PowerPoint PPT presentation

Number of Views:127
Avg rating:3.0/5.0
Slides: 45
Provided by: fay63
Category:
Tags: algoritma | dan | data | struktur

less

Transcript and Presenter's Notes

Title: Algoritma dan Struktur Data


1
Algoritma dan Struktur Data
  • Linear Binary Search Tree

2
Linear Search
struct int key int data table100 int
n int search(int key) int i i0 while (i
lt n) if(tablei.keykey) return(tablei.d
ata) i return -1
statement
(1)
(2)
(3)
(4)
(5)
(6)
3
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
4
Cara kerja Linear Search
key
data
search(18)
i0
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
5
Cara kerja Linear Search
key
data
search(18)
i1
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
6
Cara kerja Linear Search
key
data
search(18)
i2
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
7
Cara kerja Linear Search
key
data
search(18)
i3
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
8
Cara kerja Linear Search
key
data
search(18)
i4
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
9
Cara kerja Linear Search
key
data
search(18)
i5
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
10
Cara kerja Linear Search
key
data
search(18)
i6
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
11
Cara kerja Linear Search
key
data
search(18)
i6
1
3
4
8
13
14
18
20
21
130

10
12
14
16
18
20
22
24
26
26
return(table6.data) 22
12
Binary Search
int binary_search(int key) int low, high,
middle low 0 high n-1 while (low lt
high) middle (lowhigh) / 2 if (key
tablemiddle.key) return(tablemiddle.data)
else if(key lt tablemiddle.key) high
middle 1 else low middle
1 return -1
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
13
Cara kerja Binary Search
key
data
binary_search(14)
n10
low0
high9
middle4
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)
14
Cara kerja Binary Search
key
data
binary_search(14)
n10
high9
low5
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)
15
Cara kerja Binary Search
key
data
binary_search(14)
n10
high9
middle7
low5
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)
16
Cara kerja Binary Search
key
data
binary_search(14)
n10
high
low
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)
17
Cara kerja Binary Search
key
data
binary_search(14)
n10
high
low 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
Syarat Binary Search Data harus sudah terurut
(sorted)
18
Cara kerja Binary Search
key
data
binary_search(14)
n10
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(table5.data) 20
Syarat Binary Search Data harus sudah terurut
(sorted)
19
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
20
Penambahan Data pada Binary Search
Data yang ingin ditambahkan
17
Mencari tempat menaruh data
31
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
21
Penambahan Data pada Linear Search
Data yang ingin ditambahkan
17
Mencari tempat menaruh data
31
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
17
10
12
14
16
18
20
22
24
26
26
31
22
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

23
Operasi pada BST
  • Traversals
  • Searches
  • Insertion
  • Deletion

24
Example of a binary search tree
25
Traversals
  • Preorder 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
26
Proses Pencarian (contoh SUKSES)
search(7)
7lt13
7gt5
77 Data yang dicari BERHASIL ditemukan
13?5 ?7
27
Proses Pencarian (contoh GAGAL)
search(8)
8lt13
8gt5
8gt7
Data tidak ada
Data yang dicari GAGAL ditemukan
28
Proses Pencarian
6
search(7)
5
21
2
15
6?21 ?15?13 ?7
13
7
8
29
(No Transcript)
30
Find the smallest node
31
Find the smallest node
32
Find the largest node
right subtree not empty
right subtree not empty
right subtree empty return
33
Proses Penambahan (INSERTION)
insert(8)
8lt13
8gt5
8gt7
Data tidak ada
Data yang dicari GAGAL ditemukan disitulah
data ditambahkan (insertion)
34
Penambahan Data pada Binary Search Tree
Tambahkan node
6
5
21
2
15
13
7
8
35
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
36
(No Transcript)
37
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
38
Penghapusan Data pada Binary Search Tree
9
9
hapus 5
5
14
14
3
3
1
4
1
4
39
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

40
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
41
Menghapus node dengan nilai terkecil
node yang dihapus leaf (tidak mempunyai anak)
13
13
hapus 2
5
20
5
20
2
7
7
42
Menghapus node dengan nilai terkecil
node yang mempunyai 1 anak
13
13
hapus 5
5
20
20
10
10
7
11
7
11
43
/ dltKey root /
44
(continued)
Write a Comment
User Comments (0)
About PowerShow.com