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