Top Banner
STRUKTUR DATA By : Sri Rezeki Candra Nursari 2 SKS
103

SD C 12 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING & SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Feb 05, 2018

Download

Documents

doannhan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING & SEARCHING Untuk melakukan proses pengurutan tersebut dapat

STRUKTUR DATA

By : Sri Rezeki Candra Nursari

2 SKS

Page 2: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING & SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Literatur

• Sjukani Moh., (2007), “Struktur Data (Algoritma & Struktur Data 2) dengan C, C++”, Mitra Wacana Media

• Utami Ema. dkk, (2007),”Struktur Data (Konsep & Implementasinya Dalam Bahasa C & Free Pascal di GNU/Linux)”, Graha Ilmu

• Hubbard Jhon, R., Ph.D, (2000), “Schaum’s Outline Of Theory and Problems of Data Structures With C++” McGraw-Hill

• Bambangworawan Paulus., (2004), “Struktur Data Dengan C”, Andi Yogyakarta

Page 3: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING & SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Materi1. Data dan Struktur Data2. Array3. Struktur dan Record4. Pointer5. Linked List6. Stack (Tumpukan)7. Queue (Antrian)8. Tree (Pohon)9. AVL Tree10. Heap dan B-Tree11. Sorting12. Search13. Hashing14. Graph

Page 4: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING & SEARCHING Untuk melakukan proses pengurutan tersebut dapat

SORT

Pertemuan 12

2 SKS

Page 5: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING & SEARCHING Untuk melakukan proses pengurutan tersebut dapat

SORTING & SEARCHING

Sort adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut suatu aturan tertentuPada umumnya terdapat 2 jenis pengurutan, yaitu :

– Ascending (naik)– Descending (turun)

Page 6: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING & SEARCHING Untuk melakukan proses pengurutan tersebut dapat

SORTING & SEARCHING

Untuk melakukan proses pengurutan tersebut dapat digunakan berbagai macam cara/ metoda. Beberapa metoda diantaranya adalah :

– Selection Sort– Insertion Sort– Bubble/Exchange Sort– Shell Sort– Merge Sort– Heap Sort

– Quick Sort

Page 7: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING & SEARCHING Untuk melakukan proses pengurutan tersebut dapat

1. Selection Sort

Membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian ditukarkan

Page 8: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING & SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Selection Sort (Metode pengurutan seleksi)

Algoritmanya sebagai berikut :1. i 12. Selama (i <= N-1) kerjakan baris 3 s.d. 93. k i4. j i + 15. Selama (j <= N) kerjakan baris 6 s.d. 76. Jika (Data[k] > Data[j]) maka k j7. j j + 18. Tukar Data [i] dengan Data [k]9. i i + 1

Page 9: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Selection Sort - AscendingA: [ 23,17,14,6,13,10,1,5,7]

Iterasi

Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]Awal 23 17 14 6 13 10 1 5 7i=1 23 17 14 6 13 10 1 5 7i=2 1 17 14 6 13 10 23 5 7i=3 1 5 14 6 13 10 23 17 7i=4 1 5 6 14 13 10 23 17 7i=5 1 5 6 7 13 10 23 17 14i=6 1 5 6 7 10 13 23 17 14i=7 1 5 6 7 10 13 23 17 14i=8 1 5 6 7 10 13 14 17 23

Akhir 1 5 6 7 10 13 14 17 23

N/2 = 10/2 = 5

A’:[23,17,14,6,13]

A”:[10,1,5,7,12]

Page 10: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Selection Sort - AscendingA: [ 23,17,14,6,13,10,1,5,7]

Iterasi

Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

Awal 16 16 31 24 3 29 28 3 30 27

i=1 16 16 31 24 3 29 28 3 30 27

i=2 3 16 31 24 16 29 28 3 30 27

i=3 3 3 31 24 16 29 28 16 30 27

i=4 3 3 16 24 31 29 28 16 30 27

i=5 3 3 16 16 31 29 28 24 30 27

i=6 3 3 16 16 24 29 28 31 30 27

i=7 3 3 16 16 24 27 28 31 30 29

i=8 3 3 16 16 24 27 28 31 30 29

Akhir 3 3 16 16 24 27 28 29 30 31

N/2 = 10/2 = 5

A’:[23,17,14,6,13]

A”:[10,1,5,7,12]

Page 11: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Selection Sort - DescendingA: [ 23,17,14,6,13,10,1,5,7]

Iterasi

Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

Awal 16 16 31 24 3 29 28 3 30 27

i=1 16 16 31 24 3 29 28 3 30 27

i=2 31 16 16 24 3 29 28 3 30 27

i=3 31 30 16 24 3 29 28 3 16 27

i=4 31 30 29 24 3 16 28 3 16 27

i=5 31 30 29 28 3 16 24 3 16 27

i=6 31 30 29 28 27 16 24 3 16 3

i=7 31 30 29 28 27 24 16 3 16 3

i=8 31 30 29 28 27 24 16 3 16 3

Akhir 31 30 29 28 27 24 16 16 3 3

N/2 = 10/2 = 5

A’:[23,17,14,6,13]

A”:[10,1,5,7,12]

Page 12: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

2. Insertion Sort

• Pengurutan dilakukan dengan cara membandingkan data ke-i (dimana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya.

• Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai dengan posisi yang seharusnya

Page 13: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Insertion Sort (Metode penyisipan)

Algoritmanya sebagai berikut :1. i 22. Selama (i <= N) kerjakan baris 3 s.d. 103. x data[i]4. Data[0] x5. j i -16. Selama (x < data[j]) kerjakan baris 7 s.d. 87. data[j+1] > data[j] 8. j j - 19. data [j+1] x 10.i i + 1

Page 14: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Insertion Sort - AscendingA: [ 23,17,14,6,13,10,1,5,7]

Iterasi

Data Data Data Data Data Data Data Data Data[1] [2] [3] [4] [5] [6] [7] [8] [9]

Awal 23 17 14 6 13 10 1 5 7i=2 23 17 14 6 13 10 1 5 7i=3 17 23 14 6 13 10 1 5 7i=4 14 17 23 6 13 10 1 5 7i=5 6 14 17 23 13 10 1 5 7i=6 6 13 14 17 23 10 1 5 7i=7 6 10 13 14 17 23 1 5 7i=8 1 6 10 13 14 17 23 5 7i=9 1 5 6 10 13 14 17 23 7

Akhir 1 5 6 7 10 13 14 17 23

Page 15: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

N/2 = 10/2 = 5

A’:[23,17,14,6,13]

A”:[10,1,5,7,12]

Iterasi

Dt Dt Dt Dt Dt Dt Dt Dt Dt Dt Dt Dt Dt Dt Dt

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]

Awal 16 16 31 24 3 29 28 3 30 27 20 21 4 27 20

i=2 16 16 31 24 3 29 28 3 30 27 20 21 4 27 20i=3 16 16 31 24 3 29 28 3 30 27 20 21 4 27 20i=4 16 16 31 24 3 29 28 3 30 27 20 21 4 27 20i=5 16 16 24 31 3 29 28 3 30 27 20 21 4 27 20i=6 3 16 16 24 31 29 28 3 30 27 20 21 4 27 20

i=7 3 16 16 24 29 31 28 3 30 27 20 21 4 27 20i=8 3 16 16 24 28 29 31 3 30 27 20 21 4 27 20i=9 3 3 16 16 24 28 29 31 30 27 20 21 4 27 20

i=10 3 3 16 16 24 28 29 30 31 27 20 21 4 27 20

i=11 3 3 16 16 24 27 28 29 30 31 20 21 4 27 20

i=12 3 3 16 16 20 24 27 28 29 30 31 21 4 27 20

i=13 3 3 16 16 20 21 24 27 28 29 30 31 4 27 20

i=14 3 3 4 16 16 20 21 24 27 28 29 30 31 27 20

i=15 3 3 4 16 16 20 21 24 27 27 28 29 30 31 20

Akhir 3 3 4 16 16 20 20 21 24 27 27 28 29 30 31

Page 16: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Bubble/Exchange Sort

Membandingkan elemen yang sekarang dengan elemen yang berikutnya, jika elemen sekarang > elemen berikutnya, maka ditukar. Metode pengurutan gelembung (Bubble Sort) , menginginkan larik terurut menaik, maka elemen larik yang berharga paling kecil, dipindahkan ke ujung kiri larik melalui proses pertukaran. Proses metode ini dilakukan sebanyak N-1 langkah(pass) dengan N adalah ukuran larik. Pada akhir setiap langkah ke-I, larik L[1..N] akan terdiri atas dua bagian yaitu bagian yang sudah terurut, yaitu L[1..I], dan bagian yang belum terurut L[I+1..N]. Sedangkan langkah terakhir, diperoleh larik L[1..N] yang terurut menaik

Page 17: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Bubble Sort (Metode Gelembung)

Algoritmanya sebagai berikut :1. i 22. Selama (i <= N-1) kerjakan baris 3 s.d. 73. j N4. Selama (j >= i) kerjakan baris 5 s.d. 75. Jika (data[j-1] > data[j]) maka tukar data[j-1] dengan

data[j] 6. j j - 17. i i + 1

Page 18: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Bubble Sort - AscendingA: [ 23,17,14,6,13,10,1,5,7]

Iterasi

Data Data Data Data Data Data Data Data Data[1] [2] [3] [4] [5] [6] [7] [8] [9]

Awal 23 17 14 6 13 10 1 5 7i=2 23 17 14 6 13 10 1 5 7j=9 23 17 14 6 13 10 1 5 7j=8 23 17 14 6 13 10 1 5 7j=7 23 17 14 6 13 1 10 5 7j=6 23 17 14 6 1 13 10 5 7j=5 23 17 14 1 6 13 10 5 7j=4 23 17 1 14 6 13 10 5 7j=3 23 1 17 14 6 13 10 5 7j=2 1 23 17 14 6 13 10 5 7

Page 19: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Bubble Sort - AscendingA: [ 23,17,14,6,13,10,1,5,7, 12]

Iterasi

Data Data Data Data Data Data Data Data Data[1] [2] [3] [4] [5] [6] [7] [8] [9]

i=3 1 23 17 14 6 13 10 5 7j=9 1 23 17 14 6 13 10 5 7

j=8 1 23 17 14 6 13 5 10 7

j=7 1 23 17 14 6 5 13 10 7

j=6 1 23 17 14 5 6 13 10 7

j=5 1 23 17 5 14 6 13 10 7

j=4 1 23 5 17 14 6 13 10 7

j=3 1 5 23 17 14 6 13 10 7

Page 20: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Bubble Sort - AscendingA: [ 23,17,14,6,13,10,1,5,7, 12]

Iterasi

Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]i=4 1 5 23 17 14 6 13 10 7j=9 1 5 23 17 14 6 13 7 10j=8 1 5 23 17 14 6 7 13 10j=7 1 5 23 17 14 6 7 13 10j=6 1 5 23 17 6 14 7 13 10j=5 1 5 23 6 17 14 7 13 10j=4 1 5 6 23 17 14 7 13 10

Page 21: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Bubble Sort - AscendingA: [ 23,17,14,6,13,10,1,5,7, 12]

Iterasi

Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

i=5 1 5 6 23 17 14 7 13 10

j=9 1 5 6 23 17 14 7 10 13

j=8 1 5 6 23 17 14 7 10 13

j=7 1 5 6 23 17 7 14 10 13

j=6 1 5 6 23 7 17 14 10 13

j=5 1 5 6 7 23 17 14 10 13

Page 22: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

N/2 = 10/2 = 5

A’:[23,17,14,6,13]

A”:[10,1,5,7,12]

Iterasi

Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]i=6 1 5 6 7 23 17 14 10 13

j=9 1 5 6 7 23 17 14 10 13

j=8 1 5 6 7 23 17 10 14 13

j=7 1 5 6 7 23 10 17 14 13

j=6 1 5 6 7 10 23 17 14 13

Iterasi

Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

i=7 1 5 6 7 10 23 17 14 13

j=9 1 5 6 7 10 23 17 13 14

j=8 1 5 6 7 10 23 13 17 14

j=7 1 5 6 7 10 13 23 17 14

Page 23: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Bubble Sort - AscendingA: [ 23,17,14,6,13,10,1,5,7, 12]

Iterasi

Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

i=8 1 5 6 7 10 13 23 17 14

j=9 1 5 6 7 10 13 23 14 17

j=8 1 5 6 7 10 13 14 23 17

Page 24: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Bubble Sort - AscendingA: [ 23,17,14,6,13,10,1,5,7, 12]

Iterasi

Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

i=8 1 5 6 7 10 13 14 23 17

j=9 1 5 6 7 10 13 14 17 23

j=8 1 5 6 7 10 13 14 17 23

Akhir 1 5 6 7 10 13 14 17 23

Page 25: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Shell Sort• Metode Shell sering disebut juga metode

pertambahan menurun. • Metode ini mengurutkan data dengan cara

membandingkan suatu data dengan data lain yang memiliki jarak tertentu, kemudian dilakukan penukaran jika diperlukan.

Page 26: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Shell Sort

• Pada metode ini pertama-tama adalah menentukan jarak mula-mula dari data yang akan dibandingkan, yaitu N/2.

• Setelah itu, dilakukan pengulangan dari 1 sampai dengan N/2. • Pada masing-masing pengulangan dilakukan pembandingan antara

data ke-j dengan data ke-(j+N/2). • Apabila data ke-j lebih besar dari data ke-(j+N/2) maka kedua data

tersebut ditukar. • Pengulangan dari 1 sampai dengan N/2 ini dilakukan sampai semua

data ke-j selalu lebih kecil dari data ke-(j+N/2)

Page 27: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Shell Sort• Pada proses berikutnya, digunakan jarak (N/2)/2 atau N/4• Kemudian dilakukan pengulangan dari 1 s.d. (N-N/4) atau 3N/4• Pada masing-masing pengulangan dilakukan pembandingan antara

data ke-j dengan data ke-(j+N/4)• Apabila diperlukan, kedua data tersebut ditukar• Pengulangan dari 1 s.d. 3N/4 ini dilakukan sampai semua data ke-j <

dari pada data ke-(j+N/4)• Pada proses berikutnya, digunakan jarak (N/4)/2 atau N/8• Demikian seterusnya sampai jarak yang digunakan adalah 1

Page 28: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Shell Sort (Metode pengurutan penambahan menurun)

Algoritmanya sebagai berikut :1. i 22. Selama (i > 1) kerjakan baris 3 s.d. 103. i i/2 4. Selesai false5. Kerjakan baris 5 s.d. 9 sampai (Selesai=true)6. Selesai true7. j 18. Selama (j <= N – i) kerjakan baris 9 dan 109. Jika (Data[j] > Data[j+i] maka tukar Data[j], Data[j+i], Selesai false

10. j j + 1

Page 29: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Shell Sort - AscendingA: [ 23,17,14,6,13,10,1,5,7]

Iterasi

Data Data Data Data Data Data Data Data Data[1] [2] [3] [4] [5] [6] [7] [8] [9]

Awal 23 17 14 6 13 10 1 5 7jrk=4 23 17 14 6 13 10 1 5 7j=1 23 17 14 6 13 10 1 5 7j=2 13 17 14 6 23 10 1 5 7j=3 13 10 14 6 23 17 1 5 7j=4 13 10 1 6 23 17 14 5 7j=5 13 10 1 5 23 17 14 6 7

N/2 = 10/2 = 5

A’:[23,17,14,6,13]

A”:[10,1,5,7,12]

Page 30: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Shell Sort - AscendingA: [ 23,17,14,6,13,10,1,5,7]

Iterasi

Data Data Data Data Data Data Data Data Data[1] [2] [3] [4] [5] [6] [7] [8] [9]

jrk=2 13 10 1 5 7 17 14 6 23j=1 13 10 1 5 7 17 14 6 23j=2 1 10 13 5 7 17 14 6 23j=3 1 5 13 10 7 17 14 6 23j=4 1 5 7 10 13 17 14 6 23j=5 1 5 7 10 13 17 14 6 23j=6 1 5 7 10 13 17 14 6 23j=7 1 5 7 10 13 6 14 17 23

N/2 = 10/2 = 5

A’:[23,17,14,6,13]

A”:[10,1,5,7,12]

Page 31: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Shell Sort - AscendingA: [ 23,17,14,6,13,10,1,5,7]

Iterasi

Data Data Data Data Data Data Data Data Data[1] [2] [3] [4] [5] [6] [7] [8] [9]

jrk=2 1 5 7 10 13 6 14 17 23j=1 1 5 7 10 13 6 14 17 23j=2 1 5 7 10 13 6 14 17 23j=3 1 5 7 10 13 6 14 17 23j=4 1 5 7 10 13 6 14 17 23j=5 1 5 7 6 13 10 14 17 23j=6 1 5 7 6 13 10 14 17 23j=7 1 5 7 6 13 10 14 17 23

N/2 = 10/2 = 5

A’:[23,17,14,6,13]

A”:[10,1,5,7,12]

Page 32: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Shell Sort - AscendingA: [ 23,17,14,6,13,10,1,5,7]

Iterasi

Data Data Data Data Data Data Data Data Data[1] [2] [3] [4] [5] [6] [7] [8] [9]

jrk=1 1 5 7 6 13 10 14 17 23j=1 1 5 7 6 13 10 14 17 23j=2 1 5 7 6 13 10 14 17 23j=3 1 5 7 6 13 10 14 17 23j=4 1 5 6 7 13 10 14 17 23j=5 1 5 6 7 13 10 14 17 23j=6 1 5 6 7 10 13 14 17 23j=7 1 5 6 7 10 13 14 17 23j=8 1 5 6 7 10 13 14 17 23

Akhir 1 5 6 7 10 13 14 17 23

N/2 = 10/2 = 5

A’:[23,17,14,6,13]

A”:[10,1,5,7,12]

Page 33: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Merge Sort

Metode ini sering digunakan pada pengurutan berkas. Mula-mula diberikan dua kumpulan data yang sudah dalam keadaan terurut. Kedua kumpulan data tersebut harus dijadikan satu tabel sehingga dalam keadaan terurut

Page 34: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Merge Sort (Metode Penggabungan)

• Penggabungan ini digunakan pada pengurutan berkas

• Syaratnya ada dua kumpulan data yang sudah dalam keadaan urut

• Kedua kumpulan data tersebut harus dijadikan satu tabel sehingga dalam keadaan urut

• Misalnya : T1 2, 19, 26, 44, 65T2 3, 5, 12, 22

Page 35: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Merge Sort (Metode Penggabungan)

• Misalnya : T1 65, 44, 26, 19, 2T2 22, 12, 5, 3

Page 36: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Merge Sort (Metode Penggabungan)

• Proses pengurutan dengan metode penggabungan :

1. Mula-mula diambil data pertama dari T1, 2, dan data pertama dari T2, yaitu 3

2. Data ini dibandingkan, kemudian yang lebih kecil diletakkan sebagai data pertama hasil hasil pengurutan, misalnya T3

3. Jadi T3 akan memiliki satu data, yaitu 24. Data yang lebih besar, yaitu 3, kemudian dibandingkan

dengan data kedua dari T1, yaitu 195. Karena lebih kecil, maka 3 diletakkan sebagai data kedua dari

T3

Page 37: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Merge Sort• Algoritmanya sebagai berikut :

1. i 1 2. j 13. J3 14. Kerjakan baris 5 s.d. 7 sampai (i > J1) atau (j > J2)5. J3 J3 +16. Jika (T1[j] <T2[j]) maka T3[J3] T1[i], i i+17. Jika (T1[j] >=T2[j]) maka T3[J3] T2[j], j j+18. Jika (i > J) maka kerjakan baris 9, jika tidak dikerjakan baris 15 9. i j10. Selama (i <= J2) kerjakan baris 11 s.d. 1311. J3 J3 + 112. T3[J3] T2[i]13. i i + 114. Selesai15. j i16. Selama (j <= J1) kerjakan baris 17 s.d. 1917. J3 J3 + 118. T3[J3] T1[j]19. j j + 1

Page 38: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Pengurutan Merge SortData Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

Tahap : 1

T1 2 19 26 44 65T2 3 5 12 22T3 2

Tahap : 2

T1 19 26 44 65T2 3 5 12 22T3 2 3

Page 39: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Pengurutan Merge SortData Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

Tahap : 3

T1 19 26 44 65T2 5 12 22T3 2 3 5

Tahap : 4

T1 19 26 44 65T2 12 22T3 2 3 5 12

Page 40: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Pengurutan Merge SortData Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

Tahap : 5

T1 19 26 44 65T2 22T3 2 3 5 12 19

Tahap : 6

T1 26 44 65T2

T3 2 3 5 12 19 22 26

Page 41: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Pengurutan Merge SortData Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

Tahap : 7

T1 44 65T2

T3 2 3 5 12 19 22 26 44Akhir

T3 2 3 5 12 19 22 26 44 65

Page 42: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap SortSeperti metode struktur organisasi, nilai ditukar-kan dari root ke level yang paling rendah

Page 43: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

23

17 14

6 13 10 1

5 7 12

Page 44: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

23

17 14

6 13 10 1

5 7 12

i=5

i=5

Page 45: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

23

17 14

7 13 10 1

5 6 12

i=4

i=4

Page 46: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

23

17 14

7 13 10 1

5 6 12

i=3

i=3

Page 47: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

23

17 14

7 13 10 1

5 6 12

i=2

i=2

Page 48: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

23

17 14

7 13 10 1

5 6 12

i=1i=1

Page 49: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

17

13 14

7 12 10 1

5 6 23

Page 50: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

14

13 10

7 12 6 1

5 17 23

Page 51: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

13

12 10

7 5 6 1

14 17 23

Page 52: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

12

7 10

1 5 6 13

14 17 23

Page 53: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

10

7 6

1 5 12 13

14 17 23

Page 54: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

7

5 6

1 10 12 13

14 17 23

Page 55: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

6

5 1

7 10 12 13

14 17 23

Page 56: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

1

5 6

7 10 12 13

14 17 23

Page 57: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

1

5 6

7 10 12 13

14 17 23

Page 58: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

17 14

6 13 10 1

5 7 12

Page 59: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

17 14

6 13 10 1

5 7 12

i=5

i=5

Page 60: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

17 14

6 12 10 1

5 7 13

i=4

i=4

Page 61: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

17 14

5 12 10 1

6 7 13

i=3i=3

Page 62: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

17 1

5 12 10 14

6 7 13

i=2i=2

Page 63: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

5 1

17 12 10 14

6 7 13

i=1i=1

Page 64: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

1

5 8

17 12 10 14

6 7 13

Page 65: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

5

12 8

17 13 10 14

6 7 1

Page 66: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

5

12 8

17 13 10 14

6 7 1

Page 67: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

7

12 8

17 13 10 14

6 5 1

Page 68: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

7

12 8

17 13 10 14

6 5 1

Page 69: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

12 14

17 13 10 7

6 5 1

Page 70: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort-Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

10

12 14

17 13 8 7

6 5 1

Page 71: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

12

13 14

17 10 8 7

6 5 1

Page 72: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort-Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

13

17 14

12 10 8 7

6 5 1

Page 73: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

14

17 13

12 10 8 7

6 5 1

Page 74: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort-Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

17

14 13

12 10 8 7

6 5 1

Page 75: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

22

61 15

66 18 25 34

87 55 45 10

Page 76: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

22

61 15

66 18 25 34

87 55 45 10

i=5

i=5

Page 77: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

22

61 15

66 45 25 34

87 55 18 10

i=4

i=4

Page 78: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

22

61 15

87 45 25 34

66 55 18 10

i=3

i=3

Page 79: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

22

61 34

87 45 25 15

66 55 18 10

i=2

i=2

Page 80: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

22

87 34

61 45 25 15

66 55 18 10

i=1

i=1

Page 81: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

87

22 34

61 45 25 15

66

55 1810

Page 82: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

87

22 34

61

45 25 15

6655

18

10

Page 83: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

87

22 34

61

45 25 15

66

55

18

10

Page 84: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

87

22 34

61

45

25 15

6655

18 10

Page 85: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

87

22

34

61

4525

15

6655

18 10

Page 86: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

87

22

34

61

45

25

15

6655

18 10

Page 87: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

87

22

34

61

4525

15

6655

18

10

Page 88: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

87

22 34

61

4525

15

6655

18

10

Page 89: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

87

22 34

61

4525

15

6655

1810

Page 90: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Heap Sort -Max/DescendingA: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10]

87

22 34

61

4525

15

6655

18

10

Page 91: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Quick Sort

Membandingkan suatu elemen (disebut pivot) dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga elemen-elemen lain yang lebih kecil daripada pivot tersebut terletak di sebelah kirinya dan elemen-elemen lain yang lebih besar daripada pivot tersebut terletak di sebelah kanannya. Sehingga dengan demikian telah terbentuk dua sublist, yang terletak di sebelah kiri dan kanan dari pivot. Lalu pada sublist kiri dan sublist kanan kita anggap sebuah list baru dan kita kerakan proses yang sama seperti sebelumnya. Demikian seterusnya sampai tidak terdapat sublist lagi. Sehingga di dalamnya telah terjadi proses Rekursif

Page 92: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Quick Sort (Metode Pengurutan Cepat)

• Suatu metode pengurutan yang membandingkan suatu elemen (pivot) dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga elemen yang lain yang lebih kecil daripada pivot terletak disebelah kiri pivot sedangkan elemen yang lebih besar dari pivot diletakkan disebelah kanan pivot

• Sehingga dengan demikian terbentuk dua sub list yaitu yang terletak disebelah kiri pivot dan sebelah kanan pivot

Page 93: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Quick Sort (Metode Pengurutan Cepat)

• List yang sebelah kiri pivot juga diterapkan aturan seperti pivot, yaitu membandingkan elemen yang lainnya lagi, kalau lebih kecil diletakkan sebelah kiri, kalau lebih besar diletakkan disebelah kanan. Hal ini juga berlaku untuk list yang letaknya disebelah kanan

• Disebut juga dengan metode partisi• Pada metode quick jarak dari kedua elemen yang

ditukarkan dibuat cukup besar dengan tujuan untuk mempertinggi efektifitasnya.

Page 94: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Quick Sort (Metode Pengurutan Cepat)

• Proses pengurutan dengan metode pengurutan cepat :

1. Pilih data tertentu yang dinamakan pivot, misalnya x.

2. Pivot ini harus diletakkan pada posisi ke-j sedemikian hingga data antara 1 s.d. (j-1) lebih kecil daripada x, sedangkan data pada posisi ke (j+1) s.d. N lebeih besar dari pada x

3. Cara pengaturannya adalah menukarkan data diantara posisi 1 s.d. (j-1) yang lebih besar daripada x dengan data diantara posisi (j+1) s.d. N yang lebih kecil daripada x

Page 95: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Quick Sort• Algoritmanya sebagai berikut :

1. x Data[(L+R)/2)]2. i L3. j R4. Selama (i <= j) kerjakan baris 5 s.d. 125. Selama (Data[i] < x) kerjakan i i+16. Selama (Data[i] > x) kerjakan j j-17. Jika (I <= j) maka kerjakan baris 8 s.d. 10; jika tidak

dikerjakan baris 11 8. Tukar Data [i] dengan Data [j]9. i i + 110.j j – 111.Jika (L < j) kerjakan lagi baris 1 dengan R=j12.Jika (i < R) kerjakan lagi baris 1 dengan L=i

Page 96: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Quick Sort• Atau algoritmanya yang lain mengatakan :

1. Tentukan data-data yang akan diurutkan dan disimpan dalam array

2. Lakukan pengulangan dari data-data tersebut3. Data-data yang ada dibagi menjadi 2 bagian dimana bagian

yang satu dengan yang lain dilakukan proses pengecekan4. Pada bagian yang pertama, lakukan pembandingan antara data

yang satu dengan data yang lain, dimana kalau data yang satu lebih kecil dari data yang lain, maka posisinya ditukar. Kalau datanya lebih kecil diletakkan disebelah kiri, kalai datanya lebih besar diletakkan disebelah kanan. Hal ini berlaku pada bagian yang kedua

5. Tampilkan data hasil pembandingan6. Ulangi langkah 4, sampai semua data dibandingkan7. Selesai

Page 97: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Pengurutan Quick SortIterasi Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

Awal 65 2 44 26 19 22 5 3 12L=1, R=9 65 2 44 26 19 22 5 3 12L=1, R=5 12 2 44 26 19 22 5 3 65L=1, R=4 12 2 44 26 19 22 5 3 65L=1, R=3 12 2 44 26 19 22 5 3 65L=1, R=2 12 2 44 26 19 22 5 3 65

Page 98: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Pengurutan Quick SortIterasi Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

Awal 2 12 44 26 19 22 5 3 65L=2, R=9 2 12 44 26 19 22 5 3 65L=2, R=8 2 12 44 26 19 22 5 3 65L=2, R=5 2 3 44 26 19 22 5 12 65L=2, R=4 2 3 44 26 19 22 5 12 65L=2, R=3 2 3 44 26 19 22 5 12 65

Page 99: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Pengurutan Quick Sort

Iterasi Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

Awal 2 3 44 26 19 22 5 12 65L=3, R=9 2 3 44 26 19 22 5 12 65L=3, R=8 2 3 44 26 19 22 5 12 65L=3, R=7 2 3 12 26 19 22 5 44 65L=3, R=5 2 3 5 26 19 22 12 44 65L=3, R=4 2 3 5 26 19 22 12 44 65

Page 100: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Pengurutan Quick SortIterasi Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

Awal 2 3 5 26 19 22 12 44 65L=4, R=9 2 3 5 26 19 22 12 44 65L=4, R=8 2 3 5 26 19 22 12 44 65L=4, R=7 2 3 5 26 19 22 12 44 65L=4, R=6 2 3 5 12 19 22 26 44 65L=4, R=5 2 3 5 12 19 22 26 44 65

Iterasi Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

Akhir 2 3 5 12 19 22 26 44 65

Page 101: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Pengurutan Quick SortIterasi Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

Awal 2 3 5 12 19 22 26 44 65L=5, R=9 2 3 5 12 19 22 26 44 65L=5, R=8 2 3 5 12 19 22 26 44 65L=5, R=7 2 3 5 12 19 22 26 44 65L=5, R=6 2 3 5 12 19 22 26 44 65L=5, R=5 2 3 5 12 19 22 26 44 65

Iterasi Data Data Data Data Data Data Data Data Data

[1] [2] [3] [4] [5] [6] [7] [8] [9]

Akhir 2 3 5 12 19 22 26 44 65

Page 102: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

SOAL

1. 2, 50, 11, 7, 38, 87, 14, 26, 31, 9, 422. 10, 13, 9, 7, 16, 19, 15, 5, 3, 20, 143. 3, 58, 10, 70, 11, 12, 90, 1, 7, 13, 24. 95, 1, 20, 35, 11, 7, 50, 8, 81, 9, 105. 1,82,4,11,29,5,20,11,8,10,36. 87,5,8,48,2,38,25,3,6,68,10

Page 103: SD C 12 -   · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. ... SORTING &amp; SEARCHING Untuk melakukan proses pengurutan tersebut dapat

Tugas

1. Bubble Sort2. Shell Short3. Merge Sort4. Heap Sort5. Quick Sort