Selasa, 17 Mei 2016

Sorting (Bubble Sort)


Bubble Sort

permasalah

mengurutkan data acak menggunakan metode bubble sort

metodenya jika nilai sebelah kanan lebih kecil tukar pisisi keduanya.misal:4 5 6  → (4,5) tak perlu di tukar6 4 → tukar(6,4) sudah di akhir mulai dari depan lagi5 4 6 → tukar(5,4)4 5 6→ selesai

1. Problem : Menggurutkan Sejumlah data dalam array dari yang terkecil ke yang terbesar2. Input : data sejumlah n yang tidak urut3. Output : data urut dari kecil ke besar4. Penjelana Program :

Procedure Bubble_Sort (input/output x : larik, input n : byte)Deklarasilarik = array [1..100] of integeri, a : bytek : larikj, bantu : integer

Deskripsifor i <-- 1 to n-1 dofor j <-- i+1 to n doif x[i] > x[j] thentukar(x[i], x[j])endifendforendfor



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];
}
}

//penjelasan dalam void baca_data di atas. memakai int A[] dan in n, kenapa int A[] ini memakai array, agar bisa menyimpan suatu nilai. dalam void ini ada for untuk memasukan banyak data yg ingin di masukan dengan banyak n.

void cetak_data(const int A[], int n) {
int i;
for (i = 0; i < n; i++)
cout<<A[i]<< " ";
cout<<"\n";
}

//penjelasan void cetak_data adalah untuk mencetak data yang sama dari data yang dimasukan tadi dengan variabel yang sam seperti variabel diatas dan fornya sebanyak n perulangan.

void tukar (int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}

//penjelasan void tukar ini hanya untuk menukar angkanya menjadi urut dan memakai variabel *a dan int *b ditambah variabel temp untuk pemindahan sementara.

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]);
}
//penjelasan void bubble_sort ini memakai parameter yang bisa memakai variael yang berbeda  yang berbeda menggunakan int x[] dan int n. dalan program void bubble_sort ini untuk mengurutkan data yang dimasukan tadi dari nilai kecil hingga ke nilai yang besar.dengan menggunakan dua for dan perbndingan if.

 
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;
}



Tidak ada komentar:

Posting Komentar