Anda di halaman 1dari 13

KONSEP DAN PRAKTIK

QUICKSORT
(1908-SD-S05-02)
TUJUAN PEMBELA JARAN
Setelah mempelajari bagian ini,
Anda diharapkan telah mampu:

Menjelaskan logika quicksort dan


mempraktikkan dengan contoh kasus.

1908SD05
PENGANTAR QUICKSORT
3

• Metode quick sering disebut juga metode partisi (partition


exchange sort).
• Metode ini diperkenalkan pertama kali oleh C.A.R. Hoare
pada tahun 1962.
• Untuk mempertinggi efektivitas dari metode ini, digunakan
teknik menukarkan dua elemen dengan jarak yang cukup
besar.
• Algoritme quicksort adalah metode pengurutan yang
cepat dengan tipe penyelesaian divide-and-conquer.

1908SD05
4

DIVIDE-AND-CONQUER METHOD

Divide-and-conquer method adalah metode pemecahan


masalah yang bekerja dengan membagi (divide) masalah
menjadi beberapa sub-masalah yang sama atau
berhubungan, sehingga masalah tersebut menjadi
sederhana untuk dipecahkan (conquer) secara langsung.
1908SD05
5

LANGKAH-LANGKAH QUICKSORT (1)


Berikut adalah langkah-langkah mengurutkan data dengan
quicksort.
1 Pilih nilai indeks (bebas) sebagai pivot.

2 Ambil dua variabel kiri dan kanan dari array


yang tidak termasuk pivot.

3 Poin kiri untuk bernilai rendah.

4 Poin kanan untuk bernilai tinggi.

1908SD05
6

LANGKAH-LANGKAH QUICKSORT (2)


5 Jika nilai kiri < pivot, pindah ke kanan.

6 Jika nilai kanan > pivot, pindah ke kiri.

7 Jika Langkah 5 dan Langkah 6 tidak cocok,


maka swap (tukar) kiri dan kanan.

8 Jika kiri ≥ kanan (titik di mana mereka bertemu)


kembali tentukan pivot baru.

1908SD05
7

ILUSTRASI TAHAPAN QUICKSORT (1)


Step 1 1 12 5 26 7 14 3 7 2 Unsorted

Step 2 1 12 5 26 7 14 3 7 2 Pivot value= 7

i Pivot value i

Step 3 1 12 5 26 7 14 3 7 2 12 ≥ 7 ≥ 2, swap 12 and 2

i i

Step 4 1 2 5 26 7 14 3 7 12 26 ≥ 7 ≥ 7, swap 26 and 7

1908SD05 i i
8

ILUSTRASI TAHAPAN QUICKSORT (2)


Step 5 1 2 5 7 7 14 3 26 12 7 ≥ 7 ≥ 3, swap 7 and 3

i i

Step 6 1 2 5 7 3 14 7 26 12 i > j, stop partition

i i

Run quicksort
Step 7 1 2 5 7 3 14 7 26 12
recursively

....

1908SD05
ALGORITME QUICKSORT
9

01 QuickSort(L,Kiri,Kanan): 14 Partisi(L,Kiri,Kanan):
02 //L adalah array yang berisi data yang 15 //L adalah array yang berisi data
03 //akan diurutkan 16 //yang akan diurutkan
04 //Kiri: Indeks terkiri dari data yang 17 //Kiri: Indeks terkini dari data
05 // akan diurutkan 18 // yang akan diurutkan
06 //Kanan: Indeks terkanan dari data 19 //Kanan: Indeks terkanan dari
07 // yang akan diurutkan 20 // data yang akan diurutkan
08 21 X ←L[Kanan] //Pivot
09 IF Kiri<Kanan 22 I ←Kiri-1;
10 Batas ←Partisi(PtrData, Kiri, Kanan); 23 FOR J←Kiri TO Kanan-1
11 QuickSort(PtrData, Kiri, Batas); 24 IF L[J]≤X
12 QuickSort(PtrData,Batas+1,Kanan); 25 I ← I+1
13 END-IF 26 Tukarkan(L[i],L[j])
27 END-IF
28 END-FOR
29 Tukarkan(L[I+1],L[Kanan])
30
31 Return I+1

1908SD05
10

KINERJA ALGORITME QUICKSORT

Worst-case pada quicksort terjadi ketika data


sudah dalam keadaan terurut. Pada keadaan
itu perbandingan yang dilakukan sebanyak:

n(𝐧 − 𝟏)Τ𝟐 = 𝐎(𝒏𝟐 )

1908SD05
🔑 DAFTAR PUSTAKA
GeeksforGeeks. Retrieved June 26, 2019 from
https://www.geeksforgeeks.org/
Kadir, A. (2015). Teori dan aplikasi struktur data menggunakan Java.
Yogyakarta: Andi.

1908SD05
© KREDIT
Lecturer
Harfebi Fryonanda, M.Kom.

Subject Matter Expert


Arfika Nurhudatiana, Ph.D.

Instructional Design Reviewer


Renata Marelene, S.Kom., M.M.

Instructional Designer
Puspa Tanjung Sari, S.Kom.
1908SD05

Anda mungkin juga menyukai