menu

Minggu, 15 Mei 2016

Algoritma mengurutkan deret bilangan dengan metode buble sort


Algoritma mengurutkan deret bilangan dengan metode buble sort


Masalah :

Mengurutkan data acak dengan metode buble sorting
 awal        [ 4 5 3 2 1 ]  
 fase 1      [ 1 5 4 3 2 ]   
 fase 2      [ 1 2 5 4 3 ]   
 fase 3      [ 1 2 3 5 4 ]  
 fase 4      [ 1 2 3 4 5 ]


Analisa :

data awal ----> fungsi buble sort -----> hasil

1.Membandingkan data
 Saat data pertama , lalu membandingkan data pertama
jika lebih besar maka ditukar  dengan kedua dan seterusnya

2. mencari data pada indeks ke berapa
misal data [ 4 5 3 2 1 ]   data 4 indeks 1 dibndingkan dengan data 3 indeks kedua
karena lebih besar maka ditukar


3.Menukar data


misal sebagai ilustrasi
 awal        [ 4 5 3 2 1 ]   4<-->3 3<-->2 2<-->1
 fase 1      [ 1 5 4 3 2 ]   5<-->4  4<-->3 3<-->2
 fase  2     [ 1 2 5 4 3 ]   5<-->4 4<-->3
 fase 3      [ 1 2 3 5 4 ]   5<-->4
 fase 4      [ 1 2 3 4 5 ]


program c++

#include <iostream>
using namespace std;

// " dalam program ini ada 4 prosedur yg digunakan "//

//prosedur pertama ini digunakan untuk input data
//prosedur ini memiliki 2 parameter yaitu " int A[], int n "
//nilai untuk prameter untuk int n didapat dari inputan dalam fungsi main
//nilai untuk parameter int A[] didapat dari deklarasi dalam fungsi main
// parameter A[] sebagai varibale untuk menampung inputan dan n untuk bts perulngan
void baca_data(int A[], int n) {
int i;
for (i = 0; i < n; i++)
{ cout << "Data ke-" << i+1 << " : ";
cin >> A[i];
}
}

//prosedur kedua ini digunakan untuk menampilkan data yg telah di input tadi
//prosedur ini memiliki 2 parameter yaitu " int A[], int n "
//nilai untuk prameter untuk int n didapat dari inputan dalam fungsi main
//nilai untuk parameter int A[] didapat dari deklarasi dalam fungsi main
void cetak_data( int A[], int n) {
int i;
for (i = 0; i < n; i++)
cout << A[i] << " ";
cout << "\n";
}

//prosedur ketiga ini digunakan untuk penukaran nilai a <--> b
//prosedur ini memiliki 2 parameter int *a dan int *b
//nilai prameter  int *a dan int *b ini didapat ketika prosdur ini dipanggil
//--- ke prosedur empat
//parameter int *a dan int *b digunkan sebagai variable untuk terjadi tempt penukaran
void tukar (int *a, int *b)
{ int temp;
temp = *a;
*a = *b;
*b = temp;
}

//prosedur keempat ini merupakan proses untuk mengurutkan nilai / angka yg di inputkan
//prosedur ini memiliki 2 parameter yaitu " int x[], int n "
//nilai untuk prameter untuk int n didapat dari inputan dalam fungsi main
//nilai untuk parameter int x[] didapat dari deklarasi dalam fungsi main
//dalam prosedur ini dia memangil prosedur ketiga untuk mebntu proses pengurutn data secara buble sorting
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]);
}


 main() {
//  nilai variable " nilai[100], n " disni digunakan untuk mengisi nilai parameter dalm prosedur    
int nilai[100], n;
cout << "Banyak data : ";
cin >> n;
baca_data(nilai,n);    //  pemgilan prosedur
cout<<endl;
cout<<"data awal"<<endl;
cetak_data(nilai,n);   //  pemgilan prosedur
buble_sort(nilai,n);   //  pemgilan prosedur
cout<<"data stelah diurutkan"<<endl;
cetak_data(nilai,n);   //  pemgilan prosedur
}




flow chart :




                                                           































Tidak ada komentar:

Posting Komentar