Assalamualaikum W W,
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).
Misalkan kita mempunyai sebuah array dengan. Elemen-elemen “4 2 5 3 9”. Proses yang akan
terjadi apabila digunakan algoritma bubblesort adalah sebagai berikut.
step 1 : 4 2 5 3 9 ( 4 > 2 ) maka tukar posisi jadi 2 4 5 3 9.
step 2 : 2 4 5 3 9 ( 4 > 5 ) maka tetap.
step 3 : 2 4 5 3 9 ( 5 > 3 ) maka tukar posisi jadi 2 4 3 5 9.
step 4 : 2 4 3 5 9 ( 5 > 9 ) maka tetap.
step 5 : 2 4 3 5 9 ( 2 > 4 ) maka tetap.
step 6 : 2 4 3 5 9 ( 4 > 3 ) maka tukar posisi jadi 2 3 4 5 9.
step 7 : 2 3 4 5 9 ( end)
step 1 : 4 2 5 3 9 ( 4 > 2 ) maka tukar posisi jadi 2 4 5 3 9.
step 2 : 2 4 5 3 9 ( 4 > 5 ) maka tetap.
step 3 : 2 4 5 3 9 ( 5 > 3 ) maka tukar posisi jadi 2 4 3 5 9.
step 4 : 2 4 3 5 9 ( 5 > 9 ) maka tetap.
step 5 : 2 4 3 5 9 ( 2 > 4 ) maka tetap.
step 6 : 2 4 3 5 9 ( 4 > 3 ) maka tukar posisi jadi 2 3 4 5 9.
step 7 : 2 3 4 5 9 ( end)
Berikut Adalah Alur Algoritmanya
Algoritma :
Procedure
Bubble_Sort (input/output
x : larik, input n : byte)
Deklarasi
larik = array [1..100] of integer
i, a : byte
k : larik
j, bantu : integer
Deskripsi
for i <-- 1
to n-1 do
for j <-- i+1
to n do
if x[i] > x[j] then
tukar(x[i], x[j])
endif
endfor
endfor
Berikut ini adalah Gambar Program Flowchart yang
menggunakan Aplikasi RAPTOR :
Output/hasil
compiler dari program tersebut :
Dan yang ini Gambar Program C++ yang Menggunakan
Aplikasi Dev C++ :
#include <iostream>
#include <cstdlib>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void baca_data(int A[], int n) {
int i;
for (i = 0; i < n; i++){
cout<<"Data ke-" <<i+1<< " : ";
cin>>A[i];
}
}
void cetak_data(const int A[], int n) {
int i;
for (i = 0; i < n; i++)
cout<<A[i]<< " ";
cout<<"\n";
}
void tukar (int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void buble_sort (int x[], int n){
int i, j;
for (i = 0; i<n-1; i++)
for (j = i+1; j<n; j++)
if (x[i] > x[j]) tukar(&x[i], &x[j]);
}
int main(int argc, char** argv) {
int data[10], n;
cout<<"Banyak data : ";
cin>>n;
baca_data(data,n);
cetak_data(data,n);
buble_sort(data,n);
cetak_data(data,n);
return 0;
}
#include <iostream>
#include <cstdlib>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void baca_data(int A[], int n) {
int i;
for (i = 0; i < n; i++){
cout<<"Data ke-" <<i+1<< " : ";
cin>>A[i];
}
}
void cetak_data(const int A[], int n) {
int i;
for (i = 0; i < n; i++)
cout<<A[i]<< " ";
cout<<"\n";
}
void tukar (int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void buble_sort (int x[], int n){
int i, j;
for (i = 0; i<n-1; i++)
for (j = i+1; j<n; j++)
if (x[i] > x[j]) tukar(&x[i], &x[j]);
}
int main(int argc, char** argv) {
int data[10], n;
cout<<"Banyak data : ";
cin>>n;
baca_data(data,n);
cetak_data(data,n);
buble_sort(data,n);
cetak_data(data,n);
return 0;
}
Output/hasil
compiler dari program tersebut :
Semoga Bermanfaat artikel ini bagi pengunjungnya Amin...
jika anda ingin Melihat teknik Sorting lainya bisa buka Link di bawah ini :
1. Selection Sort : Klik Here
2. Insertion Sort : Klik Here