• Tidak ada hasil yang ditemukan

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

N/A
N/A
Protected

Academic year: 2021

Membagikan "STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS"

Copied!
103
0
0

Teks penuh

(1)

STRUKTUR DATA

By : Sri Rezeki Candra Nursari

(2)

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

(3)

Materi

1. Data dan Struktur Data 2. Array

3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree

10. Heap dan B-Tree 11. Sorting

12. Search 13. Hashing 14. Graph

(4)

SORT

Pertemuan 12

(5)

SORTING & SEARCHING

Sort adalah proses pengurutan data yang

sebelumnya disusun secara acak sehingga

menjadi tersusun secara teratur menurut suatu

aturan tertentu

Pada umumnya terdapat 2 jenis pengurutan,

yaitu :

Ascending (naik)

(6)

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

(7)

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

(8)

Selection Sort

(Metode pengurutan seleksi)

Algoritmanya sebagai berikut :

1. i

1

2. Selama (i <= N-1) kerjakan baris 3 s.d. 9

3. k

i

4. j

i + 1

5. Selama (j <= N) kerjakan baris 6 s.d. 7

6. Jika (Data[k] > Data[j]) maka k

j

7. j

j + 1

8. Tukar Data [i] dengan Data [k]

9. i

i + 1

(9)

Selection Sort -

Ascending

A: [ 23,17,14,6,13,10,1,5,7]

Itera si

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 7 i=1 23 17 14 6 13 10 1 5 7 i=2 1 17 14 6 13 10 23 5 7 i=3 1 5 14 6 13 10 23 17 7 i=4 1 5 6 14 13 10 23 17 7 i=5 1 5 6 7 13 10 23 17 14 i=6 1 5 6 7 10 13 23 17 14 i=7 1 5 6 7 10 13 23 17 14 i=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]

(10)

Selection Sort -

Ascending

A: [ 23,17,14,6,13,10,1,5,7]

Itera si

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]

(11)

Selection Sort -

Descending

A: [ 23,17,14,6,13,10,1,5,7]

Itera si

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]

(12)

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

(13)

Insertion Sort

(Metode penyisipan)

Algoritmanya sebagai berikut :

1. i

2

2. Selama (i <= N) kerjakan baris 3 s.d. 10

3. x

data[i]

4. Data[0]

x

5. j

i -1

6. Selama (x < data[j]) kerjakan baris 7 s.d. 8

7. data[j+1] > data[j]

8. j

j - 1

9. data [j+1]

x

10.i

i + 1

(14)

Insertion Sort -

Ascending

A: [ 23,17,14,6,13,10,1,5,7]

Itera si

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 7 i=2 23 17 14 6 13 10 1 5 7 i=3 17 23 14 6 13 10 1 5 7 i=4 14 17 23 6 13 10 1 5 7 i=5 6 14 17 23 13 10 1 5 7 i=6 6 13 14 17 23 10 1 5 7 i=7 6 10 13 14 17 23 1 5 7 i=8 1 6 10 13 14 17 23 5 7 i=9 1 5 6 10 13 14 17 23 7 Akhir 1 5 6 7 10 13 14 17 23

(15)

N/2 = 10/2 = 5 A’:[23,17,14,6,13] A”:[10,1,5,7,12] Iter asi 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 20 i=3 16 16 31 24 3 29 28 3 30 27 20 21 4 27 20 i=4 16 16 31 24 3 29 28 3 30 27 20 21 4 27 20 i=5 16 16 24 31 3 29 28 3 30 27 20 21 4 27 20 i=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 20 i=8 3 16 16 24 28 29 31 3 30 27 20 21 4 27 20 i=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

(16)

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

(17)

Bubble Sort

(Metode Gelembung)

Algoritmanya sebagai berikut :

1. i

2

2. Selama (i <= N-1) kerjakan baris 3 s.d. 7

3. j

N

4. Selama (j >= i) kerjakan baris 5 s.d. 7

5. Jika (data[j-1] > data[j]) maka tukar data[j-1] dengan

data[j]

6. j

j - 1

7. i

i + 1

(18)

Bubble Sort -

Ascending

A: [ 23,17,14,6,13,10,1,5,7]

Itera si

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 7 i=2 23 17 14 6 13 10 1 5 7 j=9 23 17 14 6 13 10 1 5 7 j=8 23 17 14 6 13 10 1 5 7 j=7 23 17 14 6 13 1 10 5 7 j=6 23 17 14 6 1 13 10 5 7 j=5 23 17 14 1 6 13 10 5 7 j=4 23 17 1 14 6 13 10 5 7 j=3 23 1 17 14 6 13 10 5 7 j=2 1 23 17 14 6 13 10 5 7

(19)

Bubble Sort -

Ascending

A: [ 23,17,14,6,13,10,1,5,7, 12]

Itera si

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 7 j=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

(20)

Bubble Sort -

Ascending

A: [ 23,17,14,6,13,10,1,5,7, 12]

Itera si

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 7 j=9 1 5 23 17 14 6 13 7 10 j=8 1 5 23 17 14 6 7 13 10 j=7 1 5 23 17 14 6 7 13 10 j=6 1 5 23 17 6 14 7 13 10 j=5 1 5 23 6 17 14 7 13 10 j=4 1 5 6 23 17 14 7 13 10

(21)

Bubble Sort -

Ascending

A: [ 23,17,14,6,13,10,1,5,7, 12]

Itera si

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

(22)

N/2 = 10/2 = 5 A’:[23,17,14,6,13] A”:[10,1,5,7,12]

Itera si

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 Itera si

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

(23)

Bubble Sort -

Ascending

A: [ 23,17,14,6,13,10,1,5,7, 12]

Itera si

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

(24)

Bubble Sort -

Ascending

A: [ 23,17,14,6,13,10,1,5,7, 12]

Itera si

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

(25)

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

(26)

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)

(27)

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

(28)

Shell Sort

(Metode pengurutan penambahan menurun)

Algoritmanya sebagai berikut :

1. i  2

2. Selama (i > 1) kerjakan baris 3 s.d. 10 3. i  i/2

4. Selesai  false

5. Kerjakan baris 5 s.d. 9 sampai (Selesai=true) 6. Selesai  true

7. j  1

8. Selama (j <= N – i) kerjakan baris 9 dan 10

9. Jika (Data[j] > Data[j+i] maka tukar Data[j], Data[j+i], Selesai

 false 10. j  j + 1

(29)

Shell Sort -

Ascending

A: [ 23,17,14,6,13,10,1,5,7]

Itera si

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 7 jrk=4 23 17 14 6 13 10 1 5 7 j=1 23 17 14 6 13 10 1 5 7 j=2 13 17 14 6 23 10 1 5 7 j=3 13 10 14 6 23 17 1 5 7 j=4 13 10 1 6 23 17 14 5 7 j=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]

(30)

Shell Sort -

Ascending

A: [ 23,17,14,6,13,10,1,5,7]

Itera si

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 23 j=1 13 10 1 5 7 17 14 6 23 j=2 1 10 13 5 7 17 14 6 23 j=3 1 5 13 10 7 17 14 6 23 j=4 1 5 7 10 13 17 14 6 23 j=5 1 5 7 10 13 17 14 6 23 j=6 1 5 7 10 13 17 14 6 23 j=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]

(31)

Shell Sort -

Ascending

A: [ 23,17,14,6,13,10,1,5,7]

Itera si

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 23 j=1 1 5 7 10 13 6 14 17 23 j=2 1 5 7 10 13 6 14 17 23 j=3 1 5 7 10 13 6 14 17 23 j=4 1 5 7 10 13 6 14 17 23 j=5 1 5 7 6 13 10 14 17 23 j=6 1 5 7 6 13 10 14 17 23 j=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]

(32)

Shell Sort -

Ascending

A: [ 23,17,14,6,13,10,1,5,7]

Itera si

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 23 j=1 1 5 7 6 13 10 14 17 23 j=2 1 5 7 6 13 10 14 17 23 j=3 1 5 7 6 13 10 14 17 23 j=4 1 5 6 7 13 10 14 17 23 j=5 1 5 6 7 13 10 14 17 23 j=6 1 5 6 7 10 13 14 17 23 j=7 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 N/2 = 10/2 = 5 A’:[23,17,14,6,13] A”:[10,1,5,7,12]

(33)

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

(34)

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, 65

T2

3, 5, 12, 22

(35)

Merge Sort

(Metode Penggabungan)

Misalnya : T1

65, 44, 26, 19, 2

T2

22, 12, 5, 3

(36)

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 2

4. Data yang lebih besar, yaitu 3, kemudian dibandingkan dengan data kedua dari T1, yaitu 19

5. Karena lebih kecil, maka 3 diletakkan sebagai data kedua dari T3

(37)

Merge Sort

• Algoritmanya sebagai berikut :

1. i  1 2. j  1 3. J3  1

4. Kerjakan baris 5 s.d. 7 sampai (i > J1) atau (j > J2) 5. J3  J3 +1

6. Jika (T1[j] <T2[j]) maka T3[J3]  T1[i], i  i+1 7. Jika (T1[j] >=T2[j]) maka T3[J3]  T2[j], j  j+1

8. Jika (i > J) maka kerjakan baris 9, jika tidak dikerjakan baris 15 9. i  j

10. Selama (i <= J2) kerjakan baris 11 s.d. 13 11. J3  J3 + 1

12. T3[J3]  T2[i] 13. i  i + 1

14. Selesai 15. j  i

16. Selama (j <= J1) kerjakan baris 17 s.d. 19 17. J3  J3 + 1

18. T3[J3]  T1[j] 19. j  j + 1

(38)

Pengurutan Merge Sort

Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Tahap : 1 T1 2 19 26 44 65 T2 3 5 12 22 T3 2 Tahap : 2 T1 19 26 44 65 T2 3 5 12 22 T3 2 3

(39)

Pengurutan Merge Sort

Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Tahap : 3 T1 19 26 44 65 T2 5 12 22 T3 2 3 5 Tahap : 4 T1 19 26 44 65 T2 12 22 T3 2 3 5 12

(40)

Pengurutan Merge Sort

Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Tahap : 5 T1 19 26 44 65 T2 22 T3 2 3 5 12 19 Tahap : 6 T1 26 44 65 T2 T3 2 3 5 12 19 22 26

(41)

Pengurutan Merge Sort

Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Tahap : 7 T1 44 65 T2 T3 2 3 5 12 19 22 26 44 Akhir T3 2 3 5 12 19 22 26 44 65

(42)

Heap Sort

Seperti metode struktur organisasi,

nilai ditukar-kan dari root ke level

yang paling rendah

(43)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

23 17 14 6 13 10 1 5 7 12

(44)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

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

(45)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

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

(46)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

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

(47)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

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

(48)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

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

(49)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

17 13 14 7 12 10 1 5 6 23

(50)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

14 13 10 7 12 6 1 5 17 23

(51)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

13 12 10 7 5 6 1 14 17 23

(52)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

12 7 10 1 5 6 13 14 17 23

(53)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

10 7 6 1 5 12 13 14 17 23

(54)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

7 5 6 1 10 12 13 14 17 23

(55)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

6 5 1 7 10 12 13 14 17 23

(56)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

1 5 6 7 10 12 13 14 17 23

(57)

Heap Sort -

Max/Descending

A: [ 23,17,14,6,13,10,1,5,7, 12]

1 5 6 7 10 12 13 14 17 23

(58)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

8 17 14 6 13 10 1 5 7 12

(59)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

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

(60)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

8 17 14 6 12 10 1 5 7 13 i=4 i=4

(61)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

8 17 14 5 12 10 1 6 7 13 i=3 i=3

(62)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

8 17 1 5 12 10 14 6 7 13 i=2 i=2

(63)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

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

(64)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

1 5 8 17 12 10 14 6 7 13

(65)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

5 12 8 17 13 10 14 6 7 1

(66)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

5 12 8 17 13 10 14 6 7 1

(67)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

7 12 8 17 13 10 14 6 5 1

(68)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

7 12 8 17 13 10 14 6 5 1

(69)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

8 12 14 17 13 10 7 6 5 1

(70)

Heap Sort-

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

10 12 14 17 13 8 7 6 5 1

(71)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

12 13 14 17 10 8 7 6 5 1

(72)

Heap Sort-

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

13 17 14 12 10 8 7 6 5 1

(73)

Heap Sort -

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

14 17 13 12 10 8 7 6 5 1

(74)

Heap Sort-

Min/Ascending

A: [ 8,17,14,6,13,10,1,5,7, 12]

17 14 13 12 10 8 7 6 5 1

(75)

Heap Sort -

Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 22 61 15 66 18 25 34 87 55 45 10

(76)

Heap Sort -

Max/Descending A: [ 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

(77)

Heap Sort -

Max/Descending A: [ 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

(78)

Heap Sort -

Max/Descending A: [ 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

(79)

Heap Sort -

Max/Descending A: [ 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

(80)

Heap Sort -

Max/Descending A: [ 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

(81)

Heap Sort -

Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 87 22 34 61 45 25 15 66 55 18 10

(82)

Heap Sort -

Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 87 22 34 61 45 25 15 66 55 18 10

(83)

Heap Sort -

Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 87 22 34 61 45 25 15 66 55 18 10

(84)

Heap Sort -

Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 87 22 34 61 45 25 15 66 55 18 10

(85)

Heap Sort -

Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 87 22 34 61 45 25 15 66 55 18 10

(86)

Heap Sort -

Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 87 22 34 61 45 25 15 66 55 18 10

(87)

Heap Sort -

Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 87 22 34 61 45 25 15 66 55 18 10

(88)

Heap Sort -

Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 87 22 34 61 45 25 15 66 55 18 10

(89)

Heap Sort -

Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 87 22 34 61 45 25 15 66 55 18 10

(90)

Heap Sort -

Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 87 22 34 61 45 25 15 66 55 18 10

(91)

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

(92)

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

(93)

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.

(94)

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

(95)

Quick Sort

Algoritmanya sebagai berikut :

1. x

Data[(L+R)/2)]

2. i

L

3. j

R

4. Selama (i <= j) kerjakan baris 5 s.d. 12

5. Selama (Data[i] < x) kerjakan i

i+1

6. Selama (Data[i] > x) kerjakan j

j-1

7. 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 + 1

10.j

j – 1

11.Jika (L < j) kerjakan lagi baris 1 dengan R=j

12.Jika (i < R) kerjakan lagi baris 1 dengan L=i

(96)

Quick Sort

Atau algoritmanya yang lain mengatakan :

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

2. Lakukan pengulangan dari data-data tersebut

3. Data-data yang ada dibagi menjadi 2 bagian dimana bagian yang satu dengan yang lain dilakukan proses pengecekan

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

6. Ulangi langkah 4, sampai semua data dibandingkan 7. Selesai

(97)

Pengurutan Quick Sort

Iterasi 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 12 L=1, R=9 65 2 44 26 19 22 5 3 12 L=1, R=5 12 2 44 26 19 22 5 3 65 L=1, R=4 12 2 44 26 19 22 5 3 65 L=1, R=3 12 2 44 26 19 22 5 3 65 L=1, R=2 12 2 44 26 19 22 5 3 65

(98)

Pengurutan Quick Sort

Iterasi 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 65 L=2, R=9 2 12 44 26 19 22 5 3 65 L=2, R=8 2 12 44 26 19 22 5 3 65 L=2, R=5 2 3 44 26 19 22 5 12 65 L=2, R=4 2 3 44 26 19 22 5 12 65 L=2, R=3 2 3 44 26 19 22 5 12 65

(99)

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 65 L=3, R=9 2 3 44 26 19 22 5 12 65 L=3, R=8 2 3 44 26 19 22 5 12 65 L=3, R=7 2 3 12 26 19 22 5 44 65 L=3, R=5 2 3 5 26 19 22 12 44 65 L=3, R=4 2 3 5 26 19 22 12 44 65

(100)

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 5 26 19 22 12 44 65 L=4, R=9 2 3 5 26 19 22 12 44 65 L=4, R=8 2 3 5 26 19 22 12 44 65 L=4, R=7 2 3 5 26 19 22 12 44 65 L=4, R=6 2 3 5 12 19 22 26 44 65 L=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]

(101)

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 5 12 19 22 26 44 65 L=5, R=9 2 3 5 12 19 22 26 44 65 L=5, R=8 2 3 5 12 19 22 26 44 65 L=5, R=7 2 3 5 12 19 22 26 44 65 L=5, R=6 2 3 5 12 19 22 26 44 65 L=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]

(102)

SOAL

1. 2, 50, 11, 7, 38, 87, 14, 26, 31, 9, 42

2. 10, 13, 9, 7, 16, 19, 15, 5, 3, 20, 14

3. 3, 58, 10, 70, 11, 12, 90, 1, 7, 13, 2

4. 95, 1, 20, 35, 11, 7, 50, 8, 81, 9, 10

5. 1,82,4,11,29,5,20,11,8,10,3

6. 87,5,8,48,2,38,25,3,6,68,10

(103)

Tugas

1. Bubble Sort

2. Shell Short

3. Merge Sort

4. Heap Sort

5. Quick Sort

Referensi

Dokumen terkait

Pengukuran parameter kualitas air seperti suhu, kecerahan, kedalaman, pH oksigen terlarut dan karbondioksida bebas yang ditemukan selama penelitian menunjukkan bahwa

Lingkungan keluarga juga dikatakan lingkungan yang paling utama, karena sebagian besar kehidupan anak berada di dalam keluarga, sehingga pendidikan yang paling banyak diterima

Tabel 3.1 Membandingkan tingkat kepentingan elemen-elemen tujuan dibawah ini berdasarkan aktor Pelaku Industri Elemen Tujuan A Elemen Tujuan B Peningkatan Pendapatan

Hasil penelitian menunjukkan bahwa strategi harga yang dilakukan dalam menetapkan harga pada industri ulos di Kota Pematang Siantar yaitu dengan menggunakan

Jenis penelitian ini adalah penelitian kualitatif, yaitu penelitian dengan tujuan untuk mengetahui faktor-faktor penyebab keterlambatan pengiriman laporan bulanan KIA

Berdasarkan uraian di atas, penulis tertarik untuk membahas mengenai tanggung jawab keperdataan dari pihak PT KAI atas kecelakaan yang terjadi saat mengangkut penumpang

Berdasarkan grafik pada Gambar 4.2 terlihat bahwa tren grafik Q th berubah terhadap besarnya laju aliran massa yang diberikan, semakin besar laju aliran massa yang

Berdasarkan Gambar 1 dapat diperoleh informasi bahwa kemampuan literasi kimia pada aspek pengetahuan dalam pernyataan pengetahuan kimia yang berkaitan dengan pencemaran