twitter
rss


1.      Pengaturan Gelembung (Bubble  Sort)

Algoritma Bubble Sort ini merupakan proses pengurutan yang secara berangsur-angsur berpindah ke posisi yang tepat karena itulah dinamakan Bubble yang artinya gelembung. Algoritma ini akan mengurutkan data dari yang terbesar ke yang terkecil (ascending) atau sebaliknya (descending
Secara sederhana, bisa didefenisikan algoritma Bubble Sort adalah pengurutan dengan cara pertukaran data dengan data disebelahnya secara terus menerus sampai dalam satu iterasi tertentu tidak ada lagi perubahan.
·         Ilustrasi
Diberikan sebuah data : [8,4,7,3,1,2,6,5]
Mengurutkan bilangan atau data di atas dengan bubble sort sebagaimana cara kerjanya seperti di bawah ini :






·         Kode program bubble sort:

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

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 bubble_sort()
{
  for(int i=1;i<=n;i++){
   for(int j=n; j>=i; j--){
    if(data[j] < data[j-1]) tukar(j,j-1);
   }
  }
}

void main()
{
 cout<<"===PROGRAM BUBBLE SORT==="<<endl;
 cout<<"Masukkan Jumlah Data : ";
 cin>>n;
 for(int i=1;i<=n;i++)
 {
  cout<<"Masukkan data ke "<<i<<" : ";
  cin>>data[i];
  data2[i]=data[i];
 }

 bubble_sort();
 cout<<"\n\n";
 cout<<"Data Setelah di Sort : ";
 for(int i=1; i<=n; i++)
 {
  cout<<" "<<data[i];
 }
 cout<<"\n\nSorting dengan bubble sort Selesai";
 getch();
}





2.      Pengaturan Seleksi (Selection Sort)

Selection sort adalah suatu metode pengurutan yang membandingkan elemen yang sekarang dengan elemen berikut sampai ke elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan langsung ditukar.

·         Ilustrasi :

Diberikan sebuah data : [8,4,7,3,1,2,6,5]
Mengurutkan bilangan atau data di atas dengan selection sort sebagaimana cara kerjanya seperti di bawah ini :






·         Kode Program:

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

using namespace std;

int data[100];
int n;

void tukar(int a, int b)
{
    int t;
   t=data[b];
   data[b]=data[a];
   data[a]=t;
}

int main()
{
    //Pendeklarasian variabel
    int i,j,temp;

    cout<<"Menetukan Jumlah Indeks Array Maksimal 100"<<endl;
    cout<<"=========================================="<<endl;
    cout<<"Masukan Jumlah Data Array: ";
    cin>>n;
    cout<<endl;

    cout<<"Menginputkan Nilai Kedalam Indeks Array"<<endl;
    cout<<"======================================="<<endl;
    for(i=0;i<n;i++)
    {
        cout<<"Masukan Nilai Untuk Indeks ke- "<<i<<" : ";
        cin>>data[i];
    }
    cout<<endl;

    cout<<"Menampilkan Nilai Array Sebelum Di Urutkan"<<endl;
    cout<<"=========================================="<<endl;
    for(i=0;i<n;i++)
    {
        cout<<"Indeks ke-"<<i<<" : "<<data[i]<<endl;
    }
    cout<<endl;
    cout<<"Menampilkan Nilai Setelah Di Urutkan!!"<<endl;
    cout<<"======================================"<<endl;

   for(i=0;i<n-1;i++)
   {
       temp=i;
      for(j=i+1;j<n;j++)
      {
          if(data[j]<data[temp])temp=j;
      }
      if(temp!=i)
      {
          tukar(temp,i);
      }
   }
   for(int i=0;i<n;i++)
   {
       cout<<"Indeks ke-"<<i<<" : "<<data[i]<<endl;
   }
 getch();
 return 0;
}




3.      Pengaturan Sisipan (Insertion Sort)

Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan membandingkannya dengan elemen data yang telah diurutkan. Karena algoritma ini bekerja dengan membandingkan elemen-elemen data yang akan diurutkan, algoritma ini termasuk pula dalam comparison-based sort. Ide dasar dari algoritma Insertion Sort ini adalah mencari tempat yang "tepat" untuk setiap elemen array, dengan cara sequential search. Proses ini kemudian menyisipkan sebuah elemen array yang diproses ke tempatnya ang seharusnya. Proses dilakukan sebanyak N-1 tahapan (dalam sorting disebut sebagai "pass"), dengan indeks dimulai dari 0. Proses pengurutan dengan menggunakan algoritma Insertion Sort dilakukan dengan cara membandingkan data ke-i (dimana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai dengan posisi yang seharusnya.

·         Ilustrasi :

Diberikan sebuah data : [8,4,7,3,1,2,6,5]
Mengurutkan bilangan atau data di atas dengan insertion sort sebagaimana cara kerjanya seperti di bawah ini : 



·        
Kode program:

#include<iostream>
#include<conio.h>
using namespace std;
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();
}



Reference :