Buble Sort

Pengertian/Konsep Buble Sort

Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang berada

dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air,

maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada

pengurutan gelembung.

Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara

melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa

dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan

berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan

dengan lambat menggelembung ke posisinya yang tepat.
Kelebihan Bubble Sort

* Metode Buble Sort merupakan metode yang paling simpel
* Metode Buble Sort mudah dipahami algoritmanya

Kelemahan Bubble Sort

Meskipun simpel metode Bubble sort merupakan metode pengurutanyang paling tidak efisien.

Kelemahan buble sort adalah pada saat mengurutkan data yang sangat besar akan mengalami

kelambatan luar biasa, atau dengan kata lain kinerja memburuk cukup signifikan ketika data

yang diolah jika data cukup banyak. Kelemahan lain adalah jumlah pengulangan akan tetap

sama jumlahnya walaupun data sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap

data dibandingkan dengan setiap data yang lain untuk menentukan posisinya.
Algoritma Bubble Sort

1. Membandingkan data ke-i dengan data ke-(i+1) (tepat bersebelahan). Jika tidak sesuai

maka tukar (data ke-i = data ke-(i+1) dan data ke-(i+1) = data ke-i). Apa maksudnya tidak

sesuai? Jika kita menginginkan algoritme menghasilkan data dengan urutan ascending (A-Z)

kondisi tidak sesuai adalah data ke-i > data ke-i+1, dan sebaliknya untuk urutan descending

(A-Z).
2. Membandingkan data ke-(i+1) dengan data ke-(i+2). Kita melakukan pembandingan ini

sampai data terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3 dgn 4; 4 dgn 5 … ; n-1 dgn n.
3. Selesai satu iterasi, adalah jika kita sudah selesai membandingkan antara (n-1) dgn n.

Setelah selesai satu iterasi kita lanjutkan lagi iterasi berikutnya sesuai dengan aturan

ke-1. mulai dari data ke-1 dgn data ke-2, dst.
4. Proses akan berhenti jika tidak ada pertukaran dalam satu iterasi.

Contoh Kasus Bubble Sort

Misalkan kita punya data seperti ini: 6, 4, 3, 2 dan kita ingin mengurutkan data ini

(ascending) dengan menggunakan bubble sort. Berikut ini adalah proses yang terjadi:

Iterasi ke-1: 4, 6, 3, 2 :: 4, 3, 6, 2 :: 4, 3, 2, 6 (ada 3 pertukaran)

Iterasi ke-2: 3, 4, 2, 6 :: 3, 2, 4, 6 :: 3, 2, 4, 6 (ada 2 pertukaran)

Iterasi ke-3: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 1 pertukaran)

Iterasi ke-4: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 0 pertukaran) -> proses selesai
Analisis Algoritma Bubble Sort

Tujuan dari analisis algoritma adalah untuk mengetahui efisiensi dari algoritma. Dalam hal

ini dilakukan pembandingan antara dua atau lebih algoritma pengurutan.Tahap analisis adalah

melakukan pengecekan program untuk memastikan bahwa program telah benar secara logika maupun

sintak (tahap tracing atau debugging). Tahap selanjutnya yaitu menjalankan program untuk

mengetahui running time atau waktu komputasi dalam hal ini
termasuk jumlah langkah. Data uji yang digunakan adalah data yang tidak terurut atau data

random, terurut membesar/, dan terurut mengecil.

Salah satu cara untuk menganalisa kecepatan algoritma sorting saat running time adalah

dengan menggunakan notasi Big O. Algoritma sorting mempunyai kompleksitas waktu terbaik,

terburuk, dan rata-rata. Dengan notasi Big O, kita dapat mengoptimalkan penggunaan

algoritma sorting. Sebagai contoh, untuk kasus dimana jumlah masukan untuk suatu pengurutan

banyak, lebih baik digunakan algoritma sorting seperti quick sort, merge sort, atau heap

sortkarena kompleksitas waktu untuk kasuk terburuk adalah O(n log n). Hal ini tentu akan

sangatberbeda jika kita menggunakan algoritma sorting insertion sort atau bubble sort dimana

waktu yang dibutuhkan untuk melakukan pencarian akan sangat lama. Hal ini disebabkan

kompleksitas waktu terburuk untuk algoritma sorting tersebut dengan jumlah masukan yang

banyak adalah O(n2).

Dari grafik dibawah dapat diketahui buble sort adalah metode yang paling lambat dari yang

lambat-lambat..heheheh..
Implementasi Bubble Sort dalam Bahasa C/C++

Berikut ini listing program atau kode program metode bubble sort
dalam bahasa C/C++

#include
void bubbleSort(int data[], int n){
int i, j=0, temp, flag = 1;
while(flag){
flag = 0;
for(i=0; idata[i+1]){
temp = data[i];
data[i] = data[i+1];
data[i+1] = temp;
flag++;
}
}
}
}
main(){
int data[1000];
int n, i;
printf("________.:: BUBBLE SORT :.________\n");
printf("Enter numbers of data(maks 1000): ");
scanf("%d", &n);
printf("Data (separate by space): ");
for(i=0; i scanf("%d", &data[i]);
bubbleSort(data, n);
printf("\nOutput after sort:\n");
for(i=0; i printf("%d ", data[i]);
getch();
return 0;}