Anda di halaman 1dari 10

Perbandingan Algoritma Pengurutan Bubble sort, Heap Sort, dan Radix

Sort dilihat dari Kompleksitas Waktu

Siti Saadah
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS NEGERI SURABAYA
JL. KETINTANG WIYATA, GAYUNGAN, SURABAYA
e-mail: saadah.siti8796@gmail.com

Abstrak
Bentuk pengembangan dan aplikasi dari kemajuan teknologi yang terus meningkat
yaitu semakin cepatnya proses pengolahan data. Kecepatan proses mengolah data tidak lain
dipengaruhi oleh algoritma yang bekerja dalam sistem tersebut Ada berbagai macam
algoritma pengurutan diantaranya Bubble sort, Heap Sort, dan Radix Sort. Dari ketiga
algoritma pengurutan tersebut, dimungkinkan untuk dicari sebuah algoritma terbaik dengan
waktu tercepat dalam proses pengurutan. Maka dari itu dalam penelitian ini akan dilakukan
sebuah pengujian terhadap ketiga algoritma tersebut menggunakan aplikasi java eclipse.
Perbandingan akan dilakukan sebanyak 10 kali percobaan dengan data yang sama bertipe
integer. Berdasarkan hasil percobaan terhadap ketiga algoritma tersebut, disimpulkan bahwa
algoritma Heap Sort adalah algoritma yang terbaik diantara ketiganya. Hal ini karena
penggunaan waktu yang relative lebih cepat dibandingkan dua algoritma sorting lainnya.

Keywords : sorting, Bubble sort, Heap Sort, Radix Sort, kecepatan.

I. PENDAHULUAN data yang akan dicari telah terurut

Perkembangan teknologi yang sebelumnya. Dengan demikian diperlukan

semakin pesat mengakibatkan setiap hal proses pengurutan terlebih dahulu terhadap

dalam kehidupan menjadi lebih mudah. semua data, sebelum dilakukannya proses

Salah satu kemudahan yang dialami yaitu pencarian. Proses pengurutan data menjadi

dalam proses pencarian data yang cepat. hal penting yang banyak dipertimbangkan

Pencarian yang cepat dapat terwujud jika untuk mengolah suatu data menjadi lebih
cepat dan mudah. Dalam kehidupan sehari 2013). Ada berbagai macam algoritma
- hari sering kali dijumpai permasalahan- pengurutan data yang sampai saat ini terus
permasalahan yang harus diselesaikan mengalami perkembangan. Diantara
dengan melibatkan operasi pengurutan berbagai macam algoritma pengurutan
data. Contohnya dalam penentuan yang ada yaitu Bubble sort, Heap Sort,
peringkat tertinggi nilai siswa, yang dan Radix Sort.
melibatkan proses pengurutan nilai bertipe Setiap algoritma pengurutan
numerik dari semua siswa. Selain itu, memiliki kelebihan dan kekurangan
dalam pemilihan umum untuk menentukan masing-masing. Namun efisiensi waktu
calon terpilih dengan perolehan suara dari algoritma pengurutan tetap harus
terbanyak dapat dilakukan dengan dipertimbangkan. Algoritma yang baik dan
mengurutkan hasil suara dari masing- mangkus adalah algoritma yang dapat
masing calon. Pembuatan absensi meminimumkan waktu dan ruang
karyawan atau siswa yang datanya (Atrinawati n.d.). Untuk menentukan
diurutkan berdasarkan abjad, dapat algoritma yang mangkus, maka perlu
memanfaatkan proses pengurutan data dilakukan suatu perbandingan terhadap
bertipe string (Mardhanie 2013). algoritma pengurutan. Perbandingan
Pengurutan atau sorting merupakan tersebut dapat dilihat dari kompleksitas
proses penyusunan elemen data acak algoritma pengurutan yang dihasilkan.
menjadi data yang tersusun urut (Arief Kompleksitas waktu dinyatakan oleh T(n),
Hendra Saptadi and Sari 2012). Selain hal ini diukur dari jumlah tahapan
banyak diterapkan dalam kehidupan komputasi yang dibutuhkan untuk
sehari-hari, proses pengurutan data banyak menjalankan algoritma sebagai fungsi
pula digunakan dalam dunia masukan. Sedangkan kompleksitas ruang
pemrograman. Banyaknya kebutuhan akan S(n), diukur dari memori yang dibutuhkan
pengurutan data melahirkan berbagai oleh struktur data yang terdapat didalam
macam algoritma pengurutan. Setiap algoritma sebagai fungsi dari masukan n.
algoritma sorting dapat dilakukan dengan Proses pengurutan menjadi hal
dua cara yaitu secara menaik (ascending) dasar dalam studi algoritma disebabkan
dan secara menurun (descending). beberapa hal diantaranya kebutuhan untuk
Dalam ilmu komputer, algoritma memilah informasi yang melekat pada
pengurutan merupakan algoritma yang beberapa aplikasi, algoritma sering
menempatkan elemen suatu data kedalam menggunakan proses penyortiran sebagai
urutan tertentu secara urut (Mardhanie subrountine kunci, dalam beberapa desain
algoritma ada beberapa teknik penting angka. Penelitian ini bertujuan untuk
yang memerlukan proses penyortiran mengetahui algoritma tercepat dalam
(Mundra and Pal 2015). mengurutkan data. Hasil dari penelitian ini
Ada beberapa penelitian yang telah didapatkan bahwa algoritma Quick Sort
dilakukan terkait perbandingan macam- memiliki waktu yang lebih cepat dan
macam algoritma pengurutan yang Bubble Sort membutuhkan waktu
mendukung penelitian ini. Penelitian yang komputasi yang paling lama dalam
dilakukan oleh Kumalasari (2017) dalam mengurutkan data.
perbandingan algoritma dengan dilakukan Penelitian serupa juga dilakukan
analisa terhadap algoritma Bubble sort, Rao and Ramesh (2012), terhadap
Cocktail Sort, dan Comb Sort. Penelitian algoritma insertion sort, bubble sort,
ini dilakukan dengan menggunakan bahasa selection sort, quick sort, counting sort,
C++ terhadap 1000 sampai 100.000 data shell sort, gnome sort, cocktail sort,radix
dengan tipe interger. Hasil dari penelitian sort dan merge sort. Penelitian ini
ini dinyatakan bahwa algoritma Comb Sort dilakukan menggunakan data bertipe
merupakan algoritma dengan kompleksitas integer dengan size input dan jenis urutan
waktu terbaik dibandingkan dua algoritma input yang berbeda-beda. Dalam penelitian
sorting lainnya. ini dihasilkan bahwa algoritma
Penelitian lain yang dilakukan oleh radix,counting sort, quick sort, shell and
Yahya (2014) untuk mengetahui algoritma merge, dan shell sort adalah yang terbaik,
tercepat dalam mengurutkan data. Dalam dari semua jenis sorting tradisional
penelitian ini metode yang digunakan lainnya.
untuk melakukan perbandingan yaitu Berdasarkan penelitian – penelitian
metode eksponensial terhadap algoritma yang telah dilakukan sebelumnya, maka
Bubble sort, dan Selection sort . Hasil dari dalam penelitian ini akan dilakukan
penelitian ini menyatakan bahwa algoritma perbandingan kompleksitas waktu
Selection sort lebih cepat dalam terhadap algoritma Bubble sort, Heap Sort,
mengurutkan data dibandingkan algoritma dan Radix Sort. Algoritma yang akan
Bubble sort. ditetapkan sebagai yang terbaik adalah
Selanjutnya Sonita dan Nurtaleo algoritma yang dapat menghasilkan hasil
(2015) melakukan penelitian terhadap sorting secara akurat dan membutuhkan
perbandingan algoritma bubble sort, merge waktu seminimal mungkin. Perbandingan
sort, dan quick sort . Dalam penelitian ini, terhadap ketiga algoritma sorting tersebut
data yang digunakan berupa data huruf dan
akan dilakukan menggunakan aplikasi java sehingga disebut sebagai kondisi terbaik
eclipse. (Base Case). Algoritma yang seperti inilah
yang paling disukai untuk digunakan
II. KAJIAN TEORI dalam menyelesaikan masalah.
Berdasarkan kondisi dari
1. Algoritma kompleksitas algoritma, ada 3 kondisi
Algoritma adalah sekumpulan yang dibagi berdasarkan kasus, yaitu :
instruksi yang diciptakan semata-mata
untuk menyelesaikan suatu masalah yang a. Best Case
dirancang kedalam bahasa pemrograman Yaitu suatu keadaan terbaik dari
(Kumalasari 2017). Selain itu, algoritma proses penyelesaian masalah dalam
juga dapat di artikan sebagai kumpulan algoritma dengan waktu yang
intruksi terbatas, yang apabila dijalankan dibutuhkan seminimal mungkin.
dapat menyelesaikan tugas tertetu (Yahya b. Worst Case
2014). Yaitu suatu keadaan terburuk dari
proses penyelesaian masalah dalam
2. Kompleksitas Algoritma algoritma dengan waktu yang
Kompleksitas merupakan suatu digunakan semaksimal mungkin.
ukuran banyaknya komputasi yang c. Average Case
diperlukan algoritma dalam menyelesaikan Yaitu suatu keadaan rata-rata dari
masalah (Kumalasari 2017). Sedangkan proses penyelesaian masalah dalam
kompleksitas waktu dari suatu program algoritma.
merupakan jumlah waktu yang diperlukan
komputer untuk menjalankan suatu Berdasarkan waktu eksekusi untuk
perintah hingga selesai (Rajalakshmi and melakukan proses pengurutan, algoritma
Durai 2015). sorting dibedakan menjadi 2 bagian yaitu :
Algoritma yang mampu a. algoritma sorting yang memiliki
menyelesaikan permasalahan dalam waktu kompleksitas O(n2), yang terdiri
singkat memiliki kompleksitas rendah. dari algoritma bubble sort,
Sementara algoritma yang mampu insertion sort, selection sort, dan
menyelesaikan dengan waktu lama shell sort.
memiliki kompleksitas tinggi. Semakin b. algoritma sorting yang memiliki
kecil suatu kompleksitas, maka kompleksitas O(n log n), yang
algoritmanya lebih efektif dan efisien, terdiri atas Heap Sort, Merge Sort,
dan Quick Sort, algoritma ini d. Diteruskan dengan melakukan
memiliki kompleksitas waktu yang langkah ke-b.
lebih cepat dari yang lain. e. Mengulangi langkah ke- a,b, dan c
terhadap semua data, hingga posisi
Hal–hal yang mempengaruhi semua data urut berdasarkan data
Kompleksitas Waktu adalah : terkecil dan terbesar.
1. Jumlah masukkan data untuk suatu
algoritma (n). Algoritma Bubble sort merupakan
2. Waktu yang dibutuhkan untuk algoritma yang paling tidak mangkus
menjalankan algoritma tersebut. dibandingkan algoritma sorting yang lain
3. Ruang memori yang dibutuhkan dalam kondisi umum. Dalam keadaan
untuk menjalankan algoritma yang terbaik yaitu semua data telah terurut
berkaitan dengan struktur data dari kompleksitas algoritmanya dinyatakan
program. dengan O(n). Sedangkan dalam kasus
umum kompleksitas algoritmanya yaitu
3. Bubble Sort O(n2) (Atrinawati n.d.).
Bubble sort merupakan algoritma  Kelebihan Bubble Sort
sorting yang paling sederhana, dengan cara  Algoritma yang simpel.
membandingkan elemen data sekarang  Mudah untuk diubah menjadi
dengan elemen data selanjutnya. kode.
Perbandingan data atau elemen dilakukan  Definisi terurut terdapat
dengan cara melakukan pergeseran data dengan jelas dalam algoritma.
posisi pertama atau terakhir hingga semua  Cocok untuk pengurutan data
data terurut (Yahya 2014) . Langkah dengan elemenkecil yang
urutan algoritma Bubble sort yaitu : telah terurut.

a. Membandingkan data ke- i dan  Kelemahan Bubble Sort


data ke- j  Tidak efektif dalam
b. Jika data ke- i lebih besar dari data pengurutan data
ke- j, maka data ke- i tukar posisi berskalabesar.
dengan data ke- j.  Langkah pengurutan yang
c. Melakukan perbandingan data ke- i terlalu panjang.
dengan data ke- k.
Kekurangan terbesar dari proses a. Jika (tipe heap = “S” dan tipe
bubble sort adalah kompleksitas algoritma urutan = “A”) maka
yang terlalu besar, baik dalam average i. Jika urut <> “” maka set urut =
case maupun worst case, yaitu O(n2), urut & “”.

sehingga seringkali disebut sebagai ii. Set urut = urut & A(1).

algoritma primitif (Rheinadi 2009). b. Jika tidak, maka set urut = A(1) &
IIf(urut <> “”,””,””) & urut.
4. Heap Sort c. Tukarkan data pada A(1) dan
Heap sort merupakan algoritma A(j)
sorting dengan kompleksitas waktu d. Kurangi ukuran array A
terbaik. Dalam menyelesaikan masalah, dengan 1
algoritma heap sort menggunakan e. Jika tipe Heap = “S”, maka
heaptree yaitu mengurutkan data elemen panggil prosedur Heapify S
kedalam array atau pohon heap (Wijaya (A,1)
and Feter 2015). Proses kerja dari heap 4. Jika (tipe Heap = “S” dan tipe
sort yaitu dimulai dengan mengambil data urutan = “A”). maka
atau elemen dari node akar dan i. Jika urut <> “” maka set
menggantinya dengan elemen pada node urut = urut & “”.
paling akhir. Setelahnya, node terakhir ii. Set urut = urut & A(1).
dihapus dan heap sort memanggil prosedur 5. Jika tidak, maka set urut = A(1) &
heapify agar setelah proses penggantian IIf(urut <> “”,””,””) & urut.
data, pohon masih memenuhi properti Algoritma heap dimulai dengan
heap. Data-data yang telah terurut baik membangun sebuah heap dari kumulan
secara ascending maupun descending elemen yang akan diurutkan. Kemudian
selanjutnya dikeluarkan. data yang memiliki nilai tertinggi dihapus
Algoritma heap sort diilustrasikan dan ditempatkan dalam baris terakhir
sebagai berikut : elemen yang telah terurut. Proses ini
1. Memanggil prosedur Buil-Heap berlanjut hingga semua elemen terurut.
2. Set urut = “” Dalam penggunaannya, dibutuhkan 2 larik
3. Untuk j = ukuran array A sampai 2 dalam peneraan algoritma heap sort yaitu
dengan pengurangan nilai 1 setiap satu digunakan untuk menyimpan heap
looping. Melakukan algoritma dan yang satunya digunakan untuk
dibawah ini : menyimpan data yang telah terurut (Mulia
n.d.).
terkait ketiga algoritma yaitu
5. Radix Sort algoritma Bubble sort, Heap Sort,
Radix sort merupakan algoritma dan Radix Sort. Metode ini
sorting yang melakukan pengurutan dilakukan dengan membaca
elemen tanpa dilakukannya perbandingan literatur dari berbagai sumber baik
terhadap semua elemen (Alfatwa, P, and jurnal, buku, artikel, dan lain-lain.
Ahsan n.d.). Kelebihan dari algoritma ini b. Pengembangan perangkat lunak,
adalah proses pengurutan yang mudah, dengan membuat suatu aplikasi
cepat dan efektif. Sedangkan kekurangan menggunakan bahasa java eclipse.
dalam algoritma ini adalah proses
pengurutan yang tidak dapat diterapkan IV. HASIL DAN PEMBAHASAN
jika elemennya berupa bilangan pecahan,
bilangan negatif dan elemen bertipe string. Tabel 1. Perbandingan CPU Time
Beberapa kelebihan algoritma radix sort
HasilPerhitungan CPU
adalah sebagai berikut :
Banyak Time ( MiliSecond)
a. Algoritma sangat mangkus. Hal ini
Percobaan Bubble Heap Radix
dapat dilihat dari kompleksitas waktu
Sort Sort Sort
asimptotiknya yang sangat kecil
1 33 29 25
(O(dN)). Hal ini mengakibatkan
2 25 18 15
algoritma radix sort sangat efektif
3 22 15 17
untuk data dalam jumlah yang sangat
4 27 16 21
besar sekalipun.
5 19 13 18
b. Konsep algoritma mudah dipahami.
6 23 13 13
Algoritma radix sort mengurutkan
7 17 13 13
data berdasarkan digit, tidak melalui
8 28 14 17
proses perbandingan yang cenderung
9 27 11 17
sulit dipahami.
10 20 15 16
Jumlah 241 157 172
III. METODE PENELITIAN
Rata-rata 24,1 15,7 17,2

Metode penelitian yang digunakan


Dari Tabel 1. menunjukkan
dalam penelitian ini yaitu:
perbandingan CPU Time dari ketiga
a. Studi literatur, digunakan untuk
algoritma sorting, yaitu Bubble, Heap, dan
memperoleh informasi dan data
Radix Sort. Hasil perhitungan tersebut Heap sort merupakan algortima
didapat dari data awal [67, 45, 37, 89, 69, pembanding (comparison sort), seperti
12, 43, 26, 90, 84] dengan jumlah yang halnya bubble sort. Perbedaannya heap
sama, serta diulangi sebanyak 10 kali sort memiliki kompleksitas waktu sama
maka dihasilkan perbandingan CPU Time untuk best, average, dan worst case yaitu
seperti pada tabel 1. O(n log n). Pada program ini rata – rata
CPU time heap sort adalah 15,7. Meskipun
Dengan pengulangan sebanyak 10
kompleksitas heap sort untuk semua kasus
kali dan jumlah serta nominal data yang
O(n log n) tapi heap sort merupakan
sama didapat hasil perhitungan CPU time
algoritma sorting yang efisien digunakan
yang berbeda dari ketiganya. Dari tabel 1
dengan jumlah data yang banyak
di dapat bahwa Heap Sort merupakan
dikarenakan kompleksitas waktu dari heap
metode sorting dengan CPU Time tercepat,
sort O(n log n) ini sangat cocok untuk data
yaitu dengan rata – rata CPU Time 15,7.
yang berukuran besar.
Bubble sort merupakan algoritma
Radix Sort merupakan algoritma
sorting pembanding (comparison sort)
sorting tanpa perbandingan (Non-
yang hanya mengandalkan perbandingan
Comparison Sorting). Dalam proses
nilai elemen untuk mengoperasikan
penyortingan, radix sort Untuk kasus
elemennya. Bubble sort memiliki
bilangan bulat (integer), algoritma ini akan
kompleksitas best case (O(n)) dan
mengurutkan data dengan
kompleksitas average dan worst case
mengelompokkan data-data berdasarkan
adalah O(n2). Pada program ini rata – rata
digit yang memiliki significant position
CPU time untuk 10 data dan 10 kali
dan value yang sama. Kelompok digit ini
pengulang bubble sort adalah 24,1. Bubble
ditampung dalam suatu variable “bucket”.
sort baik digunakan pada bagian sorting
Sehingga Radix sort tergolong algoritma
dengan data kecil. Sedangkan dengan data
sorting yang cepat karena tanpa proses
yang besar maka bubble sort kurang cocok
perbandingan. Akan tetapi dalam
untuk metode sorting. Karena proses
prakteknya, Radix sort mengelompokkan
sorting bubble sort yang mengandalkan
data berdasarkan posisi, sehingga setiap
perbandingan nilai elemen untuk
data di kelompokkan berdasarkan digit-
mengoperasikan elemennya. Dengan
digitnya terlebih dahulu. Dan hal ini
melakukan secara berulang–ulang
tergolong memakan waktu untuk data yang
(looping) terhadap elemen–elemen struktur
mempunyai banyak digit.
data yang belum terurut.
V. KESIMPULAN Pemrograman C++.” 8(November):
1–8.
Dari hasil penelitian untuk Atrinawati, L. H. “Analisis Kompleksitas
perbandingan elemen dengan besar list (n) Algoritma Untuk Berbagai Macam
didapat bahwa Heap sort dengan Metode Pencarian Nilai (Searching)
kompleksitas waktu O(n log n) untuk Dan Pengurutan Nilai (Sorting) Pada
semua kasus menghasilkan waktu Tabel.” Program Studi Teknik
komputasi yang lebih cepat dibandingkan Informatika,: 1–13.
dengan bubble dan radix sort. Hal ini Kumalasari, Devy. 2017. “Analisa
dikarenakan heap sort merupakan Perbandingan Kompleksitas
algoritma pengurutan yang efisien Algoritma Bubble Sort , Cocktail Sort
digunakan dengan jumlah data yang Dan Comb Sort Dengan Bahasa
banyak dikarenakan kompleksitas waktu Pemrograman C ++.” 5(1): 14–20.
dari heap sort O(n log n) ini sangat cocok Mardhanie, Afif Bizrie. 2013. V Inersia
untuk data yang berukuran besar. Maka Vol. V No. 1, Maret 2013.
heap sort sangat baik untuk pengurutan Mulia, Firdi. “Penerapan Pohon Dalam
dengan data yang lebih besar, akan tetapi Heap Sort.”
juga baik untuk data yang kecil karena Mundra, Ms Jyoti, and B L Pal. 2015.
kompleksitas waktu heap sort untuk “Minimizing Execution Time of
semua kasus sama yaitu O(n log n). Bubble Sort Algorithm.” 4(9): 173–
81.
Rajalakshmi, C, and C Durai. 2015.
DAFTAR PUSTAKA “Performance Analysis of Sorting
Algorithm.” International Journal of
Alfatwa, Dean Fathony, Eriek Rahman Computer Science and Mobile
Syah P, and Fahris Mumtaza Ahsan. Computing 4(1).
“Implementasi Algoritma Radix Sort Rao, D T V Dharmajee, and B Ramesh.
Dalam Berbagai Kasus Bilangan 2012. “Experimental Based Selection
Dibandingkan Algoritma Pengurutan of Best Sorting Algorithm.” 2(4):
Yang Lain.” : 1–5. 2908–12.
Arief Hendra Saptadi, and Desi Windi Rheinadi, Ryan. 2009. “Analisis Algoritma
Sari. 2012. “Analisis Algoritma Bubble Sort.” (1): 1–5.
Insertion Sort, Merge Sort Dan Wijaya, Ardi, and Noris Feter. 2015.
Implementasinya Dalam Bahasa “Aplikasi Simulasi Pengurutan Data
Menggunakan Algoritma Heap Sort.”
II(2): 2355–5920.
www.ejournal.unib.ac.id.
Yahya, Sofyansyah Yusari. 2014. “Analisa
Perbandingan Algoritma Bubble Sort
Dan Selection Sort Dengan Metode
Perbandingan Eksponensial.” Pelita
Informatika Budi Darma, (April):
135. http://pelita-
informatika.com/berkas/jurnal/28.
Sofyansayah.pdf.

Anda mungkin juga menyukai