Professional Documents
Culture Documents
Abstrak
Pengurutan data merupakan salah satu algoritma dasar yang cukup sering digunakan. Algoritma ini digunakan
sebagai dasar untuk membangun sebuah aplikasi yang melibatkan pemrosesan data. Algoritma Quick Sort dan
Heap Sort merupakan dua buah algoritma pengurutan data yang terbaik saat ini dengan kelebihannya masing-
masing. Namun, algoritma apapun pastinya memiliki kelemahan. Dalam makalah ini, kami akan mencoba
memaparkan keunggulan dan kelemahan dari algoritma Heap Sort dan Quick Sort dalam pemrosesan data-data
berjumlah besar.
Kata kunci: heap sort, quick sort, pengurutan data, simpul, pohon biner
5
2. Algoritma Heap Sort dan Quick Sort
2.1 Heap Sort
Heapsort merupakan salah satu bentuk dari selection (a) Nilai dari akar dimasukkan ke ke dalam tabel
sort yang memiliki kompleksitas algorima O(n penyimpanan.
log(n)) yang menggunakan struktur data heap.
Algoritma ini bekerja dengan menentukan elemen
terbesar (atau terkecil) dari sebuah daftar elemen,
dan diletakkan pada akhir (atau awal) dari daftar
tersebut. Heap sort menyelesaikan sebuah 5
pengurutan menggunakan struktur data yang disebut
heap.
1
Salah satu hal yang menentukan keoptimalan
5
algoritma quick sort adalah pemilihan elemen tabel
yang akan dijadika pivot.
Cara pemilihan pivot :
1. Pivot = elemen pertama/elemen terakhir/elemen
(c) Bandingkan nilai simpul akar dengan nilai tengah tabel
simpul anak kiri dan kanannya, bila nilai akar kiri 2. Pivot dipilih secara acak dari salah satu elemen
atau kanan lebih besar, maka nilai simpul akar dan tabel.
nilai simpul yang lebih besar tadi ditukar. 3. Pivot = elemen median tabel
Kompleksitas Algoritma:
Penyelesaian:
(f) Ulangi langkah (a) dan seterusnya 3. Kasus rata-rata (average case)
Kasus ini terjadi jika pivot dipilih secara acak dari
Gambar a-b-c-d-e: Menghapus elemen terbesar elemen tabel, dan peluang setiap elemen dipilih
(namun tetap menjaga struktur heap) dan kemudian menjadi pivot adalah sama.
disimpan di-array yang baru (terurut menurun)
Kompleksitas waktunya: Tavg(n) = O(n 2log n).
2.2 Quick Sort
Quick sort adalah algoritma yang menggunakan 3. Perbandingan Heap Sort dan Quick Sort
metode divide and qonquer yaitu dengan mempartisi Setiap algoritma pastinya memiliki kelebihan dan
tabel dengan acuan elemen tabel yang dijadikan kekurangannya masing-masing. Dalam menganalisa
sebagai pivot. Tabel dipartisi menjadi tabel dengan kelebihan dan kekurangan dari 2 (dua) buah
elemen pivot, < pivot dan > pivot, hingga elemen algoritma sorting, dapat dilakukan dengan meneliti
tersebut terurut. beberapa hal berikut ini :
2
pengurutan hanya dengan 1 kali pass saja. Namun dimana elemen parent selalu lebih besar dari kedua
sampai saat ini, belum ada algoritma yang mampu anaknya, merupakan sebuah struktur data yang tidak
untuk mencapai keadaan ini. terlalu memakan memori, karena pemrosesan
datanya dilakukan bagian per bagian.
Kompleksitas waktu dari kedua algoritma ini, secara
rata-rata adalah sama, yaitu O(n log n). Saat ini, 3.3 Kestabilan
kompleksitas waktu O(n log n) merupakan
kompleksitas algoritma sorting yang paling Stabil yang dimaksudkan di sini memiliki pengertian
mendekati algoritma pengurutan ideal yaitu O(n). yang berbeda dari yang kita ketahui sehari-hari.
Hal inilah yang menyebabkan kedua buah algoritma Algoritma pengurutan data disebut stabil apabila
ini dipandang sebagai yang terbaik saat ini. dalam pemrosesannya, bila sebelum diurutkan
terdapat dua atau lebih data dengan nilai
Walaupun memiliki kompleksitas algoritma yang pembandingnya yang sama, maka setelah diurutkan
sama yaitu O(n log n), dalam praktiknya, algoritma data-data tersebut haruslah berada dengan urutan
quicksort memiliki kecepatan pemrosesan yang lebih yang sama.
baik dari heap sort. Penyebabnya adalah algoritma
heapsort membutuhkan tahapan-tahapan yang lebih Kedua buah algoritma ini, merupakan algoritma
banyak daripada quicksort. yang tidak stabil. Penyebabnya adalah dalam
masing-masing algoritma, terdapat suatu proses
Namun untuk quicksort, pada kasus terburuknya dimana seluruh elemen diubah posisinya, sehingga
memiliki kompleksitas O(n2). Sedangkan, pada heap setelah proses tersebut terjadi, urutan awal sudah
sort, kompleksitas untuk kasus terburuknya sama tidak diketahui lagi.
dengan kasus rata-rata, yaitu O(n log n). Jadi pada
kasus terburuk, algoritma heap sort lebih baik
daripada algoritma quicksort. 4. Kesimpulan
Dari penjelasan yang kami sebutkan di atas, kami
Untuk lebih jelasnya, berikut ini ditampilkan tabel mengambil beberapa kesimpulan sebagai berikut:
kompleksitas untuk kedua algoritma :
a. Kedua algoritma pengurutan ini merupakan
algoritma pengurutan terbaik karena
memiliki kompleksitas algoritma O(n log n)
Algoritma Terbaik Rata-rata Terburuk
yang mendekati kompleksitas waktu ideal.
Heapsort O(nlog(n)) — O(nlog(n))
b. Untuk pengurutan data di lingkungan
Quicksort O(nlog(n)) O(nlog(n)) O(n2)
implementasi yang memiliki memori
berkapasitas kecil, heap sort lebih baik
3.2 Penggunaan Memori karena menggunakan memori yang lebih
sedikit, karena pemrosesan datanya yang
Dalam penerapannya, seringkali penggunaan dibagi-bagi, tidak seperti quicksort yang
algoritma pengurutan memerlukan aras (array) yang mengambil langsung seluruh senarai.
sangat besar. Untuk komputer dengan memori yang
cukup tinggi, penggunaan aras yang besar mungkin 5. Kamus
tidak terlalu menjadi masalah. Namun, untuk Pohon biner hampir sempurna : pohon biner
komputer dengan memori yang kecil, yang hanya mengharuskan nilai pada simpul
ketidakcukupan memori yang dimilikinya haruslah ayah lebih besar dari simpul anak, peletakan pada
ditanggung dengan menggunakan memori dari disk simpul anak kiri atau kanan tidak berpengaruh.
atau swap space, sehingga pemrosesannya menjadi
jauh lebih lambat. Isi simpul atau nilai simpul : nilai yang ada
dalam simpul berupa elemen data yang akan
Algoritma quicksort, memiliki kelemahan dalam hal diurutkan.
ini. Algoritma ini memang memiliki performa yang
cukup bagus ketika memori komputernya cukup.
6. Referensi
Namun karena metodanya yang menggunakan [www.wikipedia.com]
metoda rekursif untuk mengopi sebagian atau
seluruh aras, menyebabkan algoritma ini menjadi [linux.wku.edu]
tidak efisien ketika dijalankan di dalam komputer [http://www.inf.fh-flensburg.de]
dengan memori yang relatif kecil.
[Rinaldi Munir. Diktat Kuliah Strategi
Algoritmik. Departemen teknik Informatika ITB :
Sebaliknya, algoritma pengurutan data dengan heap
2004.]
sort justru memiliki keunggulan. Struktur data heap,
yang secara merupakan struktur data pohon biner