BUBBLE SORT
1. Mengidentifikasi Masalah
Menukar data dengan data di sebelahnya dari kiri ke sebelah kanan yang lebih kecil secara terus menerus sampai data terurut dari yang terkecil hingga yang terbesar.
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. Test 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 Menggunakan C++
#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;
getch();
}
6. Eksekusi (output)
Diselesaikan dalam waktu 1 jam 41 menit 32 detik..
Menukar data dengan data di sebelahnya dari kiri ke sebelah kanan yang lebih kecil secara terus menerus sampai data terurut dari yang terkecil hingga yang terbesar.
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. Test 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 Menggunakan C++
#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;
getch();
}
6. Eksekusi (output)
Diselesaikan dalam waktu 1 jam 41 menit 32 detik..
0 komentar:
Posting Komentar