Bubble Sort dalam Bahasa C

Mahir Koding – Bubble Sort merupakan salah satu dari sekian banyaknya algoritma sorting (pengurutan) data yang sangat sering digunakan karena simple dan mudah diimplementasikan walaupun Bubble Sort bukanlah algoritma sorting yang terbaik dari segi kecepatan. Algoritma pengurutan ini membandingkan dua buah elemen yang bersebelahan lalu dilakukan penukaran jika urutannya tidak sesuai.

https://en.wikipedia.org/wiki/Bubble_sort

https://en.wikipedia.org/wiki/Bubble_sort

Jika diperhatikan dari animasi diatas, kita dalam mengimplementasikannya ke dalam 2 buah for (nested for). 

#include <stdio.h>

//inisialisasi array angka sebanyak 15 data
int angka[]={7,7,4,6,8,2,5,9,4,5,3,1,1,7,8};

//fungsi bubble sort ascending
void bubbleSortAsc(){
	//mengulang sebanyak 14 kali sebanyak n-1 data
	for(int i=0; i<15-1; i++){
		for(int j=0; j<15-1; j++){
			//jika angka index x+1 lebih kecil dari angka index x
			if(angka[j+1]<angka[j]){
				//tampung angka index x ke temp
				int temp=angka[j];
				//ubah angka index x menjadi angka index x+1
				angka[j]=angka[j+1];
				//ubah angka index x+1 menjadi angka temp
				angka[j+1]=temp;
			}
		}
	}
}

void bubbleSortDesc(){
	//mengulang sebanyak 14 kali sebanyak n-1 data
	for(int i=0; i<15-1; i++){
		for(int j=0; j<15-1; j++){
			//jika angka index x+1 lebih besar dari angka index x
			if(angka[j+1]>angka[j]){
				//tampung angka index x ke temp
				int temp=angka[j];
				//ubah angka index x menjadi angka index x+1
				angka[j]=angka[j+1];
				//ubah angka index x+1 menjadi angka temp
				angka[j+1]=temp;
			}
		}
	}
}

int main(){
	printf("Sebelum Sorting : \n");
	for(int i=0; i<15; i++){
		printf("%d ", angka[i]);
	}
	bubbleSortAsc();
	printf("\n\nSetelah Sorting Ascending : \n");
	for(int i=0; i<15; i++){
		printf("%d ", angka[i]);
	}
	bubbleSortDesc();
	printf("\n\nSetelah Sorting Descending : \n");
	for(int i=0; i<15; i++){
		printf("%d ", angka[i]);
	}
	getchar();
	return 0;
}

Bubble Sort akan melakukan looping sebanyak n-1 kali (n=banyak data). Karena, data terakhir sudah pasti adalah angka terkecil/terbesar, sehingga kita tidak perlu melakukan looping lagi.

Tahapan Bubble Sort Ascending (Kecil ke Besar) :

Tahap pertama adalah pembandingan bilangan yang pertama dengan n bilangan yang lainnya. Apabila ditemukan bilangan yang lebih kecil daripada bilangan yang pertama tadi, maka bilangan tersebut akan ditukar tempatnya sehingga sekarang bilangan yang lebih kecil tersebut akan menempati posisi pertama. Proses pembandingan tersebut akan berlangsung n kali sesuai jumlah data yang ada. Pada akhir proses pembandingkan, maka pada posisi yang pertama akan didapatkan bilangan yang nilainya paling kecil.

Tahapan Bubble Sort Descending(Besar ke Kecil) :

Tahap pertama adalah pembandingan bilangan yang pertama dengan n bilangan yang lainnya. Apabila ditemukan bilangan yang lebih besar daripada bilangan yang pertama tadi, maka bilangan tersebut akan ditukar tempatnya sehingga sekarang bilangan yang lebih besar tersebut akan menempati posisi pertama. Proses pembandingan tersebut akan berlangsung n kali sesuai jumlah data yang ada. Pada akhir proses pembandingkan, maka pada posisi yang pertama akan didapatkan bilangan yang nilainya paling besar.

Jika ada pertanyaan yang kurang jelas silahkan berkomentar di bawah. Atau, jika ingin request tutorial juga dapat ke halaman ini. Dukung terus Mahir Koding agar dapat selalu mengupdate artikel dengan share dan like artikel ini. Terima Kasih.