Program Bubble Sort bahasa C/C++

1 min read

Contoh Program Bubble Sort bahasa C/C++

gubuktekno.com – Berikut Contoh Program Bubble Sort bahasa C/C++ menggunakan fungsi dan prosedur.

Dalam materi sorting atau pengurutan nilai masukan. Kita bisa mengurutkan nilai masukan tersebut dari yang terbesar ke yang terkecil atau dari yang terkecil ke yang terbesar.

Jelasnya mengurutkan secara menaik (ascending) dan mengurutkan secara menurun (descending).

Dalam kasus ini kita bisa menggunakan Algoritma Buble Sort yaitu kita membandingkan sebuah elemen yang pertama dengan elemen berikutnya. Kemudian dipindahkan sesuai pengurutan angka tersebut.

Misalnya: [5] [2] [6] [7]

Kita akan mengurutkan angka diatas secara menaik (ascending) atau mengurutkan dari yang terkecil ke yang terbesar.

Caranya, kita bandingkan apakah 5 > 2 ? Jika ya, maka 2 pindah ke 5 dan 5 pindah ke 2 melalui temp, seperti ini: A: [5] B: [2] temp: [ ], A pindah ke temp, lalu B pindah ke A, temp pindah ke B.

Contoh Program Bubble Sort bahasa C/C++

Contoh Program Bubble Sort bahasa C/C++

Kurang lebih seperti itu sampai angka tersebut mengurut sesuai keinginan kita. Adapun source code dalam bahasa C sebagai berikut.

#include 
#define Mak 20

typedef struct {
	int T[Mak+1];
	int nEff;
}TabInt;

void CreateTab (TabInt *T);
void IsiTab (TabInt *T, int x);
void CetakTab (TabInt T);
void UrutBubble (TabInt *T);

int main() {
	int i,n;
	int x;
	TabInt MyTab;
	
	CreateTab(&MyTab);
	printf("Masukkan Jumlah Bilangan :"); scanf("%d", &n);
	for (i=1; i<=n; i++) {
		printf("Masukan Nilai :"); scanf("%d", &x);
		IsiTab (&MyTab, x);
	}
	printf("Isi Tabel Belum Terurut \n");
	CetakTab(MyTab);
	UrutBubble (&MyTab);
	printf("Isi Tabel Sesusdah Terurut \n");
	CetakTab(MyTab);
	getch();
	return 0;
}

void CreateTab (TabInt *T) {
	(*T).nEff = 0 ;
}

void IsiTab (TabInt *T, int x) {
	if ((*T).nEff < Mak) {
		(*T).nEff++;
		(*T).T[(*T).nEff] = x;
	}
}

void CetakTab (TabInt T) {
	int i;
	for (i=1; i<=T.nEff; i++) {
		printf("%d ", T.T[i]);
	}
	printf ("\n");
}

void UrutBubble (TabInt *T) {
	int i,j, tmp;
	int N, iterasi;
	
	N = (*T).nEff;
	iterasi = 1;
	for (i=N; i>1; i--) {
		for (j=2; j<=i; j++) {
			if ((*T).T[j-1]  > (*T).T[j]) {
			// pertukaran tempat
			tmp = (*T).T[j-1];
			(*T).T[j-1] = (*T).T[j];
			(*T).T[j] = tmp; 
			} 
			printf("\n Pass-%d : ", iterasi );
			iterasi = iterasi + 1;
			CetakTab(*T);
		}
	}
}

Copy dan pastekan source code tersebut di dev c/c++ Anda kemudian klik run dan uji aplikasinya.

Jika Anda males, download saja di link ini untuk mendownloadnya.

Download source code

Penjelasan Singkat Bubble Sort

Bubble Sort adalah salah satu algoritma untuk sorting data, atau kata lainnya mengurutkan data dari yang terbesar ke yang terkecil atau sebaliknya (Ascending atau Descending).

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

Algoritma bubble sort adalah salah satu algoritma pengurutan yang paling simple, baik dalam hal pengertian maupun penerapannya. Ide dari algoritma ini adalah mengulang proses pembandingan antara tiap-tiap elemen array dan menukarnya apabila urutannya salah.

Pembandingan elemen-elemen ini akan terus diulang hingga tidak perlu dilakukan penukaran lagi. Algoritma ini termasuk dalam golongan algoritma comparison sort, karena menggunakan perbandingan dalam operasi antar elemennya.

Kesimpulan

Kurang lebih itulah program bubble sort bahasa c menggunakan fungsi dan procedur, semoga dapat membantu.

GubukTekno

Tinggalkan Balasan