Kamis, 04 Juni 2015

MATERI SORTING DAN CONTOH PROGRAMNYA

1.    SORTING

Sorting merupakan suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan tertentu. Sorting disebut juga sebagai suatu algoritma untuk meletakkan kumpulan elemen data kedalam urutan tertentu berdasarkan satu atau beberapa kunci dalam tiap-tiap elemen. Pada dasarnya ada dua macam urutan yang biasa digunakan dalam suatu proses sorting: 

1. Urutan Naik

Mengurutkan dari data yang mempunyai nilai paling kecil sampai besar.

2. Urutan Turun

Mengurutkan dari data yang mempunyai nilai paling besar sampai paling kecil.

Ada banyak alasan dan keuntungan dengan mengurutkan data. Data yang terurut mudah untuk dicari, mudah untuk diperiksa, dan mudah untuk dibetulkan jika terdapat kesalahan. Data yang terurut dengan baik juga mudah untuk dihapus jika sewaktu-waktu data tersebut tidak diperlukan lagi. Selain itu, dengan mengurutkan data maka kita semakin mudah untuk menyisipkan data atapun melakukan penggabungan data.

Insertion Sort (Metode Penyisipan) 
Straight Insertion Sort (Metode Penyisipan langsung)  Proses pengurutan dengan metode penyisipan langsung dapat dijelaskan sebagai berikut Data dicek satu per satu mulai dari yang kedua sampai dengan yang terakhir. Apabila ditemukan data yang lebih kecil daripada data sebelumnya, maka data tersebut disisipkan pada posisi yang sesuai. Akan lebih mudah apabila membayangkan pengurutan kartu. Pertama-tama anda meletakkan kartu-kartu tersebut di atas meja, kemudian melihatnya dari kiri ke kanan. Apabila kartu di sebelah kanan lebih kecil daripada kartu di sebelah kiri, maka ambil kartu tersebut dan sisipkan di tempat yang sesuai.


CONTOH PROGRAM

#include<iostream.h>
#include<conio.h>
main()
{
 int x,a[100],i,t,j,k;

 cout<<"Insertion Sort - Desc\n";
   cout<<"Masukkan banyak bilangan = ";cin>>x;
   for(i=1;i<=x;i++)
   {
    cout<<"\n Bilangan ke-"<<i<<" : ";cin>>a[i];
   }
   cout<<"\n\n data Sebelum diurutkan :";
   for(i=1;i<=x;i++)
   {
    cout<<"  "<<a[i];
   }
   cout<<endl;
   for(i=1;i<=x;i++)
   {
    for(j=1;j<=i;j++)
    {
       if(a[i]>a[j])
         {
          t=a[i];
            a[i]=a[j];
            a[j]=t;
         }
      }
      cout<<"\n # "<<i<<" : ";
      for(k=1;k<=i;k++)
      {
       cout<<"  "<<a[k];
      }
   }
   cout<<"\n\n data Setelah diurutkan secara descending : ";
   for(i=1;i<=x;i++)
   {
    cout<<"  "<<a[i];
   }
 getch();

}



Selection Sort (Metode Seleksi)




     Metode seleksi melakukan pengurutan dengan cara mencari data yang terkecil kemudian menukarkannya dengan data yang digunakan sebagai acuan atau sering dinamakan pivot. Proses pengurutan dengan metode seleksi dapat dijelaskan sebagai berikut :


Langkah pertama dicari data terkecil dari data pertama sampai data terakhir. Kemudian data terkecil ditukar dengan data pertama. Dengan demikian, data pertama sekarang mempunyai nilai paling kecil dibanding data yang lain. Langkah kedua, data terkecil kita cari mulai dari data kedua sampai terakhir. Data terkecil yang kita peroleh ditukar dengan data kedua dan demikian seterusnya sampai semua elemen dalam keadaan terurutkan. 

CONTOH PROGRAM



#include <iostream.h>
#include <conio.h>

int main(){
int a[10];
int cur,z,temp,cur2,temp2;

cout<<"Banyak Data: ";
cin>>z;
cout<<endl;
for(int i=0;i<z;i++){
cout<<"Data ["<<i+1<<"]: ";
cin>>a[i];
}
cout<<"\nData Awal  :";
for(int i=0;i<z;i++)
cout<<a[i]<<" ";
cout<<endl;

for(int i=0;i<z;i++){
cur=i;
cur2=z;
for(int k=i+1;k<z;k++){
if(a[cur]>a[k]){
cur=k;
}}
for(int t=z;t<z;t--){
if(a[cur2]<a[t]){
cur2=t;
}
temp2=a[t];
a[t]=a[cur2];
a[cur2]=temp2;
}
temp=a[i];
a[i]=a[cur];
a[cur]=temp;
}
cout<<"\nData Akhir :";
for(int i=0;i<z;i++){
cout<<" "<<a[i];
}

cout<<endl;

getch ();
return 0;
}




Tidak ada komentar:

Posting Komentar