Anda di halaman 1dari 8

Jusikom : Jurnal Sistem Komputer Musirawas

Vol 3 , No. 1 , Juni 2018 Nur Rachmat

PERBANDINGAN BUBBLE SORT, SHELL SORT


DAN KOMBINASI BUBBLE SORT DENGAN SHELL SORT

Nur Rachmat1
1
Program Studi Teknik Komputer, Akademi Manajemen Informatika dan Komputer MDP
nur.rachmat@mdp.ac.id

Abstrak
Data terurut diperlukan untuk pengolahan data. Penggunaan algoritma pengurutan yang
tepat dapat mempercepat waktu pengurutan. Shell Sort dan Bubble Sort dapat dikombinasikan
untuk mendapatkan algoritma dengan dengan waktu yang lebih baik. Kombinasi dilakukan
dengan cara menggunakan dua algoritma secara bergantian. Shell Sort digunakan pada tahap awal
kemudian dilanjutkan dengan dengan Bubble Sort. Algoritma pengurutan yang memiliki waktu
yang lebih baik dapat dikelompokan berdasarkan jumlah elemen data. Bubble Sort lebih cepat
dibandingkan Shell Sort untuk jumlah elemen acak sampai dengan 20. Sedangkan untuk elemen
acak 30 sampai dengan 9000, Shell Sort lebih cepat dibandingkan Bubble Sort dan Shell-Bubble
Sort untuk semua jumlah elemen acak. Kemudian algoritma Shell-Bubble Sort lebih cepat
dibandingankan algoritma Bubble Sort pada jumlah elemen acak 500 sampai dengan 9000.

Kata kunci— Bubble Sort, Kombinasi, Shell Sort

Abstract
Ordered Data used to data processing. Using a best sorting algorithm can be reduce
sorting time. Shell Sort and Bubble Sort can be combined to get algorithm with best time.
Combination do by use two algorithm one by one. Shell Sort use at first then Bubble Sort. Sorting
algorithm that has best time can be group based on amount of data. Bubble Sort faster than Shell
Sort for 20 data. For 30 until 9000 Shell Sort faster than Bubble Sort and Shell-Bubble Sort. Next
Shell-Bubble Sort faster than Bubble Sort in 500 until 9000 data.

Keywords— Bubble Sort, Combination, Shell Sort

STMIK MUSIRAWAS Lubuklinggau 64


Jusikom : Jurnal Sistem Komputer Musirawas
Vol 3 , No. 1 , Juni 2018 Nur Rachmat

I. PNDAHULUAN Terdapat penelitian yang membahas


Perkembangan teknologi ikut bagaimana melakukan perbaikan algoritma-
mempengaruhi perkembangan informasi. algoritma pengurutan seperti yang dilakukan
Dengan berkembangnya informasi [3] dengan memperbaiki Bubble Sort, Shell
mengakibatkan jenis data yang beragam Sort dan Selection Sort. Hasil yang didapat
pula. Informasi diperoleh dengan melakukan bahwa algorima hasil perbaikan memiliki
pengolahan data. Pada pengolahan data kecepatan yang lebih baik. Pada penelitian
diperlukan tahapan yang sering disebut yang dilakukan [4] salah satunya juga
preprocessing salah satunya yaitu melakukan perbaikan terhadap Bubble Sort.
pengurutan data. Pengurutan data diperlukan Pada penelitian yang dilakukan [5] algoritma
untuk memudahkan pengolahan data. Quick Sort dan Merge Sort dikombinasikan
Algoritma yang digunakan untuk dengan Insertion Sort. Hasil penelitian
pengurutan data diantara lain yaitu Bubble tersebut menunjukkan bahwa hasil
Sort dan Shell Sort. kombinasi memiliki kecepatan yang lebih
Bubble Sort merupakan algoritma baik terhadap algoritma biasa. Di penelitian
yang terinspirasi dari prinsip gelembung. yang lain juga dilakukan [6] Merge Sort dan
Gelembung timbul kepermukaan air Quick Sort dikombinasikan dengan Insertion
dikarenakan mengandung udara. Sort, Merge Sort dan Selection Sort. Hasil
Gelembung memiliki massa yang lebih kecil penelitian menunjukkan bahwa hasil
sehingga naik ke permukaan. Hal ini yang kombinasi juga mengungguli algoritma
mendasari prinsip Bubble Sort. Elemen pengurutan biasa.
terkecil akan diletakkan di bagian teratas Pada penelitian yang dilakukan,
atau terbawah tergantung dari apakah algoritma Shell Sort dan Bubble Sort akan
diurutkan secara ascending atau descending. dikombinasikan untuk menghasilkan
Shell Sort merupakan hasil dari algoritma yang bisa memiliki kecepatan
generalisasi algoritma Insertion Sort. Shell yang lebih baik. Proses kombinasi dilakukan
Sort merupakan perbaikan dari Insertion dengan melakukan penggantian bagian akhir
Sort. Perbaikan yang dilakukan dengan dari Shell Sort dengan Bubble Sort. Pada
mengizinkan perbandingan dan penukaran langkah awal Shell Sort dipilih untuk
dilakukan pada bagian yang terjauh. mengurutkan data lalu dilanjutkan dengan
Langkah terakhir dari Shell Sort adalah Bubble Sort.
seperti Insertion Sort biasa.
Algoritma pengurutan memiliki II. TINJAUAN PUSTAKA
kelebihan dan kelemahan masing-masing. Algoritma pengurutan melakukan
Tidak semua algoritma bisa digunakan untuk sorting dari elemen terkecil ke terbesar atau
semua permasalahan pengurutan. Pada sebaliknya. Algoritma sorting menghasilkan
penelitian yang dilakukan [1] beberapa output daftar elemen yang terurut. Untuk
algoritma pengurutan dibandingkan mengurutkan elemen, dibutuhkan struktur
berdasarkan jumlah data. Shell Sort data yang digunakan untuk menyimpan
merupakan algoritma yang dapat digunakan elemen-elemen tersebut. Berbagai struktur
untuk mengurutkan data dalam jumlah data yang biasanya digunakan algoritma
besar. Pada penelitian yang dilakukan oleh pengurutan antara lain array, linked list,
[2] Bubble Sort dapat juga dipilih sebagai stack, dan lain-lain. Adapun algoritma
algoritma pengurutan yang memiliki pola- pengurutan yang dibahas pada penelitian ini
pola tertentu. antara lain Bubble Sort, Shell Sort dan

STMIK MUSIRAWAS Lubuklinggau 65


Jusikom : Jurnal Sistem Komputer Musirawas
Vol 3 , No. 1 , Juni 2018 Nur Rachmat

kombinasi antara Bubble Sort dengan Shell 2.2.1 Tahapan N/2


Sort.
Pada tahap ini, elemen yang
dibandingkan adalah elemen pertama
2.1 Bubble Sort
dengan elemen yang memiliki jarak (N/2).
Bubble sort merupakan algoritma
Dimana N adalah jumlah elemen yang ada.
pengurutan yang paling umum. Bubble Sort
Proses pada tahap ini berlangsung sampai
dikenal tidak efisien dikarenakan setiap
dengan elemen yang dibandingkan memiliki
elemen dibandingkan mulai dari elemen
jarak sama dengan N.
awal sampai dengan akhir elemen secara
berulang, sehingga Bubble Sort
membutuhkan waktu yang lebih lama untuk
mendapatkan hasil elemen yang terurut.
Contoh algoritma Bubble Sort dapat dilihat
pada Gambar 1. Jumlah elemen acak pada
contoh algoritma Bubble Sort adalah 8
elemen.

Gambar 2. Tahap N/2


Algoritma Shell Sort [7]

2.2.2 Tahapan N/4


Pada tahap ini, jarak elemen yang
dibandingkan diperkecil menjadi (N/4) atau
setengah dari jarak pada tahap 1. Sama
seperti tahap 1, proses pada tahap 2
berlangsung sampai dengan elemen yang
dibandingkan memiliki jarak sama dengan
Gambar 1. Contoh Algoritma Bubble N.
Sort

2.2 Shell Sort


Shell Sort diusulkan oleh Donald L.
Shell. Shell Sort hampir sama dengan
Insertion Sort, yang membedakan antara
Shell Sort dengan Insertion Sort adalah
jumlah perbandingan elemen. Perbandingan
elemen pada Shell Sort dibagi menjadi
beberapa tahap. Tahapan yang diusulkan
oleh Donald L. Shell antara lain sequence
[N/2], [N/4], dan [N/8]. [7]

STMIK MUSIRAWAS Lubuklinggau 66


Jusikom : Jurnal Sistem Komputer Musirawas
Vol 3 , No. 1 , Juni 2018 Nur Rachmat

III. METODOLOGI PENELITIAN


Pada bagian ini dilakukan
pembahasan mengenai kombinasi algoritma
Shell Sort dengan Bubble sort. Pada
kombinasi algoritma Shell Sort dengan
Bubble Sort ini dilakukan 2 tahapan yaitu
diawali dengan pengurutan menggunakan
Shell Sort dan dilanjutkan pengurutan
menggunakan Bubble Sort. Data yang
digunakan dalam eksperimen ini diperoleh
dari hasil pengacakan.

3.1 Tahap 1 Pengurutan Shell Sort


Pada tahap ini pengurutan elemen
Gambar 3. Tahap N/4 acak menggunakan algoritma Shell Sort
Algoritma Shell Sort [7] dengan jarak elemen yang dibandingkan
adalah 3 elemen, lebih sedikit daripada
2.2.3 Tahapan N/8 algoritma Shell Sort yang diusulkan oleh
Pada tahap ini, jarak elemen yang Donald L. Shell yang membandingkan
dibandingkan diperkecil kembali menjadi elemen dengan jarak N/2 elemen pada
setengah dari jarak pada tahap sebelumnya pengurutan tahap 1. Pengurangan jarak
yaitu (N/8). elemen yang dibandingkan ini dengan tujuan
dapat mempercepat proses pengurutan
elemen acak. Berikut adalah ilustrasi
pengurutan elemen menggunakan algoritma
Shell Sort dengan perbandingan memiliki
jarak 3 elemen.

Gambar 5. Tahap 1 Pengurutan Elemen


dengan Jarak 3 Elemen

Berikut ini adalah algoritma dari Shell Sort


dengan jarak 3 elemen yang ditampilkan
Gambar 4. Tahap N/8 pada algoritma 1.
Algoritma Shell Sort [7]

STMIK MUSIRAWAS Lubuklinggau 67


Jusikom : Jurnal Sistem Komputer Musirawas
Vol 3 , No. 1 , Juni 2018 Nur Rachmat

public static void shellBubbleSort(int[] A)


{
//Shell Sort k=3
int n, c, d, swap;
int incr = 3;
while (incr > 0)
{
Gambar 6. Tahap 2 Pengurutan dengan
for (int i = incr; i < A.length; i++)
Bubble Sort
{
int j = i;
Berikut ini adalah algoritma dari Bubble
int temp = A[i];
Sort yang ditampilkan pada algoritma 2.
while (j >= incr && A[j -
incr] > temp)
public static void bubbleSort(int[] A)
{
{
A[j] = A[j - incr];
int n, c, d, swap;
j = j - incr;
n = A.length;
}
c = 0;
A[j] = temp;
}
for (c = 0; c < ( n - 1 ); c++) {
for (d = 0; d < n - c - 1; d++) {
if (incr == 2)
if (A[d] > A[d+1])
incr = 1;
{
else
swap = A[d];
incr *= 2;
}
A[d] = A[d+1];
// bubbleSort(A)
A[d+1] = swap;
}
}
}
Algoritma 1. Algoritma Shell Sort k=3
}
}
3.2 Tahap 2 Pengurutan dengan
Bubble Sort Algoritma 2. Algoritma Bubble Sort

Pada tahap sebelumnya, elemen acak Setelah dilakukan kombinasi


yang diurutkan menggunakan algoritma algoritma Shell Sort dan Bubble Sort, untuk
Shell Sort dengan jarak 3 elemen yang menghitung waktu pengurutan algoritma
dibandingkan sudah hampir terurut. digunakan fungsi nanoTime() yang tersedia
Kemudian pada tahap ini dilakukan di bahasa pemrograman Java. Adapun
pengurutan kembali menggunakan langkah untuk menghitung waktu
algoritma Bubble Sort untuk mendapatkan pengurutan algoritma pada bahasa
elemen yang terurut. Berikut adalah ilustrasi pemrograman Java adalah sebagai berikut:
pengurutan elemen menggunakan algoritma
Bubble Sort. 1. Inisialisasi waktu mulai

STMIK MUSIRAWAS Lubuklinggau 68


Jusikom : Jurnal Sistem Komputer Musirawas
Vol 3 , No. 1 , Juni 2018 Nur Rachmat

Sebelum pengurutan dimulai, set inisialisasi 100 750.104 182.181


waktu mulai untuk mendapatkan waktu 500 24.471.206 1.182.035
dimulainya proses algoritma dengan cara 1000 40.353.841 1.906.908
menambahkan kode berikut. 5000 1.912.810.797 13.315.856
long mulai = System.nanoTime(); 9000 5.670.408.495 23.396.084
2. Lakukan pengurutan menggunakan
algoritma Shell-Bubble Sort Tabel 1 menunjukkan kecepatan
3. Hitung waktu selesai pengurutan algoritma Bubble Sort. Jumlah elemen 10
Setelah algoritma shell-bubble sort selesai dan 20 memiliki waktu proses lebih cepat
diproses, catat waktu selesai dengan cara daripada algoritma Shell Sort. Sedangkan
menambahkan kode berikut. untuk jumlah elemen 30 sampai dengan
long selesai = System.nanoTime() – 9000, algoritma Shell Sort lebih cepat
mulai; daripada algoritma Bubble Sort.
4. Tampilkan waktu pengurutan
Untuk menampilkan waktu pengurutan Tabel 2. Hasil Pengujian Algoritma Bubble
algoritma Shell-Bubble Sort menggunakan Sort dan Shell-Bubble Sort
kode system.out.println(selesai); Shell-
Jumlah Bubble Sort
Bubble Sort
Elemen (ns)
IV. HASIL DAN PEMBAHASAN (ns)
Pada tahap ini dilakukan pengujian 10 12.830 48.325
algoritma Bubble Sort, Shell Sort dan 20 32.930 74.840
kombinasi dari Shell-Bubble Sort. Pengujian 30 82.964 122.736
dilakukan pada notebook dengan prosessor 40 115.466 153.955
Intel(R) Core(TM) i5-4210U CPU @ 50 257.020 345.544
1.70GHz (4 CPUs), memori 4096 MB RAM, 100 750.104 936.134
sistem operasi Windows 8.1 Pro 64-bit dan 500 24.471.206 17.624.896
menggunakan software NetBeans IDE 8.0.2. 1000 40.353.841 29.188.655
Adapun cara pengujian algoritma Bubble 5000 1.912.810.797 111.313.582
Sort, Shell Sort dan kombinasi dari Shell- 9000 5.670.408.495 316.921.406
Bubble Sort adalah dengan memberikan
elemen acak yang berjumlah 10, 20, 30, 40, Tabel 2 menunjukkan kecepatan
50, 100, 500, 1000, 5000 dan 9000. Dari algoritma Bubble Sort. Jumlah elemen 10
pengujian yang dilakukan didapat hasil sampai dengan 100 memiliki waktu proses
sebagai berikut: lebih cepat daripada algoritma Shell-Bubble
Sort. Sedangkan untuk jumlah elemen 500
Tabel 1. Hasil Pengujian Algoritma Bubble sampai dengan 9000, algoritma Shell-
Sort dan Shell Sort Bubble Sort lebih cepat daripada algoritma
Jumlah Bubble Sort Shell Sort Bubble Sort.
Elemen (ns) (ns)
10 12.830 22.238 Tabel 3. Hasil Pengujian Algoritma Shell
20 32.930 37.206 Sort dan Shell-Bubble Sort
30 82.964 53.457 Jumlah Shell Sort Shell-Bubble
40 115.466 69.707 Elemen (ns) Sort (ns)
50 257.020 90.235 10 22.238 48.325

STMIK MUSIRAWAS Lubuklinggau 69


Jusikom : Jurnal Sistem Komputer Musirawas
Vol 3 , No. 1 , Juni 2018 Nur Rachmat

20 37.206 74.840
30 53.457 122.736 VI SARAN
40 69.707 153.955 Adapun saran yang ingin penulis
50 90.235 345.544 sampaikan yaitu dengan menambahkan
100 182.181 936.134 jumlah elemen > 9.000 dan jarak spasi
500 1.182.035 17.624.896 pertukaran elemen pada pengujian untuk
1.000 1.906.908 29.188.655 melihat kinerja dari algoritma Bubble Sort,
5.000 13.315.856 111.313.582 Shell Sort dan Shell-Bubble Sort dengan
9.000 23.396.084 316.921.406 jumlah elemen > 9.000.

Tabel 3 menunjukkan kecepatan VII DAFTAR PUSTAKA


algoritma Shell Sort. Jumlah elemen 10 [1] D. T. V. D. Rao and B. Ramesh,
sampai dengan 9000 memiliki waktu proses “Experimental Based Selection of
lebih cepat daripada algoritma Shell-Bubble Best Sorting Algorithm,” Int. J. Mod.
Sort. Eng. Res., vol. 2, no. 4, pp. 2908–
Dari hasil pengujian algoritma Bubble 2912, 2012.
Sort, Shell Sort dan Shell-Bubble Sort yang [2] Y. Yang, P. Yu, and Y. Gan,
menggunakan elemen acak dengan jumlah “Experimental study on the five sort
input yang sama, menunjukkan bahwa algorithms,” 2011 2nd Int. Conf.
algoritma Bubble Sort lebih cepat daripada Mech. Autom. Control Eng. MACE
Shell Sort pada jumlah elemen acak 10 2011 - Proc., pp. 1314–1317, 2011.
sampai 20 dan Shell-Bubble sort pada [3] J. Alnihoud and R. Mansi, “An
jumlah elemen acak 10 sampai 100. enhancement of major sorting
Sedangkan pada jumlah elemen acak 30 algorithms,” Int. Arab J. Inf.
sampai 9.000, algoritma Shell Sort lebih Technol., vol. 7, no. 1, pp. 55–62,
cepat dibandingkan algoritma Bubble Sort 2010.
dan algoritma Shell-Bubble Sort pada semua [4] M. Khairullah, “Enhancing Worst
jumlah elemen acak. Algoritma Shell- Sorting Algorithms,” Int. J. Adv. Sci.
Bubble Sort lebih cepat dari elemen Bubble Technol., vol. 56, pp. 13–26, 2013.
Sort pada jumlah elemen acak 500 sampai [5] M. E. Al Rivan, “Perbandingan
dengan 9.000. Performa Kombinasi Algoritma
Pengurutan Quick-Insertion Sort dan
V KESIMPULAN Merge-Insertion Sort,” in ANNUAL
Dari pengujian yang telah dilakukan RESEARCH SEMINAR 2016, 2016,
dapat disimpulkan bahwa algoritma Bubble vol. 2, no. 1, pp. 6–10.
Sort lebih cepat dibandingkan Shell Sort [6] M. E. Al Rivan, “Perbandingan
untuk jumlah elemen acak sampai dengan Kecepatan Gabungan Algoritma
20. Sedangkan untuk elemen acak 30 sampai Utama Quick Sort dan Merge Sort
dengan 9000, Shell Sort lebih cepat dengan Algoritma Tambahan
dibandingkan Bubble Sort dan Shell-Bubble Insertion Sort , Bubble Sort dan
Sort untuk semua jumlah elemen acak. Selection Sort,” J. Tek. Inform. dan
Kemudian algoritma Shell-Bubble Sort lebih Sist. Inf., vol. 3, no. 2, pp. 319–331,
cepat dibandingankan algoritma Bubble Sort 2017.
pada jumlah elemen acak 500 sampai [7] A. Azeta and C. Ayo, “Improved
dengan 9.000. Shellsort for the Worst-Case , the

STMIK MUSIRAWAS Lubuklinggau 70


Jusikom : Jurnal Sistem Komputer Musirawas
Vol 3 , No. 1 , Juni 2018 Nur Rachmat

Best- Case and a Subset of the


Average-Case Scenarios,” J.
Comput. Sci. Its Appl., vol. 14, no. 2,
2007.

STMIK MUSIRAWAS Lubuklinggau 71

Anda mungkin juga menyukai