Tuesday, May 17, 2016

SELECTION SORT

Assalamuallaikum wr. wb.

     Kali ini saya akan membahas tentang selection sort. Dimana selection sort merupakan algoritma pengurutan dengan metode penyeleksian.
Langsung saja ke pengembangan masalah dari selection sort :
1. Identifikasi masalah
     Mengurutkan angka dengan metode selection sort.
2. Menentukan input dan output
     Input n, A[]
     Ouput A[] = 4,5,6,7,8,9
3. Membuat flowchart
     






4. Test menggunakan data
     Input n=6, A[] = 9 8 7 6 5 4
        Data ke-1 = 9
        Data ke-2 = 9
        Data ke-3 = 9
        Data ke-4 = 9
        Data ke-5 = 9
        Data ke-6 = 9
      Output data setelah diurutkan = 4 5 6 7 8 9
     Dengan beberapa steps :
       step 1 [9, 8, 7, 6, 5, 4] 4 terkecil, 9 > 4
       step 2 [4, 8, 7, 6, 5, 9] 5 terkecil, 8 > 5
       step 3 [4, 5, 7, 6, 8, 9] 6 terkecil, 7 > 6
       step 4 [4, 5, 6, 7, 8, 9] 7 terkecil, 7 = 7
       step 5 [4, 5, 6, 7, 8, 9] 8 terkecil, 8 = 8
       step 6 [4, 5, 6, 7, 8, 9] 9 terkecil, 9 = 9
       step 7 [4, 5, 6, 7, 8, 9]
5. Implementasi C++
     #include <iostream>

     /* 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<<endl;
    }
    void tukar(int*a,int *b){
    int temp;
    temp=*a;
    *a=*b;
    *b=temp;
    }
    void minimum(int A[], int dari, int n, int*tempat){
    int i, min;
    min=A[dari];
    *tempat=dari;
    for(i=dari+1; i<n; i++){
    if(A[i]<min)
   {
    min=A[i];
    *tempat=i;
    }
    }
    }
    void selection_sort(int A[], int n){
    int i,t;
    for(i=0; i<n; i++){
    minimum(A,i,n,&t);
    tukar(&A[i], &A[t]);
    }
    }
    main(){
    int data[10],n;
    cout<<"\t\tPROGRAM SELECTION SORT\n\n";
    cout<<"Masukan banyak data = ";
    cin>>n;
    baca_data(data,n);
    cout<<endl;
    cout<<"Data sebelum diurutkan :"<<endl;
    cetak_data(data, n);
    selection_sort(data,n);
    cout<<endl;
    cout<<"Data setelah diurutkan :"<<endl;
    cetak_data(data,n);
    return 0;
    }

6. Eksekusi
   
     Pertama masukkan banyak data merupakan nilai n dimana n merupakan batasan array yang akan   saya inputkan. Kemudian mulai memasukkan data. Setelah itu akan muncul data sebelum terurut yaitu 9, 8, 7, 6, 5, 4. Dan setelah itu muncul juga data setelah terurut yaitu 4, 5, 6, 7, 8, 9.

Program ini saya selesaikan dalam waktu 3.30 jam

Tersedia : 1. Bubble Sort
                   2.  Insertion Sort

Semoga bermanfaat !
Wassalamuallaikum wr. wb.

0 comments :

Post a Comment