melakukan penukaran data dengan tepat disebelahnya secara terus menerus.
2. Menentukan Input dan Output
Input: A[i]=i, A[i+1]=j
Output: A[i]= A[i+1], A[i+1]=A[i]
3. Membuat Flowchart
4. Tes Menggunakan Data
input banyak data : 6
Input data ke 1 : 9
Input data ke 2 : 8
Input data ke 3 : 7
Input data ke 4 : 6
Input data ke 5 : 5
Input data ke 6 : 4
Output : Data setelah diurutkan : 4 5 6 7 8 9
Hasil diperoleh dari :
For I ← 1 to n-1
If A[i]>A[i+1] then
Tukarkan (A[i], A[i+1])
Jika elemen kiri > elemen kanan maka kita tukarkan.
Data awal : 9 8 7 6 5 4
Step 1 : 8 9 7 6 5 4 (9>8)
Step 2 : 8 7 9 6 5 4 (9>7)
Step 3 : 8 7 6 9 5 4 (9>5)
Step 4 : 8 7 6 5 9 4 (9>4)
Step 5 : 8 7 6 5 4 9 (8>7)
Step 6 : 7 8 6 5 4 9 (8>6)
Step 7 : 7 6 8 5 4 9 (8>5)
Step 8 : 7 6 5 8 4 9 (8>4)
Step 9 : 7 6 5 4 8 9 (7>6)
Step 10 : 6 7 5 4 8 9 (7>5)
Step 11 : 6 5 7 4 8 9 (7>4)
Step 12 : 6 5 4 7 8 9 (6>5)
Step 13 : 5 6 4 7 8 9 (6>4)
Step 14 : 5 4 6 7 8 9 (5>4)
Step 15 : 4 5 6 7 8 9
5.Implementasi
#include <iostream>
#include <conio.h>
using namespace std;
int data[10],data2[10];
int n;
void tukar(int a,int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void Input(){
cout<<"Masukkan jumlah data = ";cin>>n;
cout<<"__________________________________"<<endl;
for(int i=0;i<n;i++){
cout<<"Masukkan data ke-"<<(i+1)<<" = ";cin>>data[i];
data2[i] = data[i];
}
cout<<endl;
}
void Tampil(){
for(int i=0;i<n;i++){
cout<<data[i]<<" ";
}
cout<<endl;
}
void bubble_sort(){
for(int i=1;i<n;i++){
for(int j=n-1;j>=i;j--){
if(data[j]<data[j-1]) tukar(j,j-1);
}
Tampil();
}
cout<<endl;
}
main()
{
cout<<"+_______________________________+"<<endl;
cout<<" Bubble Sort "<<endl;
cout<<"+_______________________________+"<<endl;
Input();
cout<<"Proses Bubble Sort"<<endl;
cout<<"_________________________________"<<endl;
Tampil();
bubble_sort();
cout<<"-------------------------------------"<<endl;
cout<<" THANKS "<<endl;
cout<<"-------------------------------------"<<endl;
getch();
}
6.Execusi
waktu mengerjakan : 3jam