Rabu, 10 Desember 2014

Algoritma Sorting (Insertion Sort)


Insertion sort adalah sebuah metode pengurutan data dengan menempatkan setiap elemen data pada pisisinya dengan cara melakukan perbandingan dengan data – data yang ada. Inde algoritma dari metode insertion sort ini dapat dianalogikan sama seperti mengurutkan kartu, dimana jika suatu kartu dipindah tempatkan menurut posisinya, maka kartu yang lain akan bergeser mundur atau maju sesuai kondisi pemindahanan kartu tersebut. Dalam pengurutan data, metode ini dipakai bertujuan untuk menjadikan bagian sisi kiri array terurutkan sampai dengan seluruh array diurutkan.


Proses yang terjadi pada pengurutan dengan menggunakan metode Insertion Sort adalah dimulai dari data ke-2 kemudian disisipkan pada tempat yang sesuai. Data pada posisi pertama diandaikan memang sudah pada tempatnya. Ilustrasinya mirip seperti saat menyisipkan kartu di permainan kartu.

Contoh source code insertion sort

#include <iostream>
#include <conio.h>
using namespace std ;
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 insertion_sort()
{
 int temp,i,j;
 for(i=1;i<=n;i++)
 {
  temp = data[i];
  j = i -1;
  while(data[j]>temp && j>=0)
  {
   data[j+1] = data[j];
   j--;
  }
 data[j+1] = temp;
 }
}
int main()
{
 cout<<"\t\t\t===PROGRAM INSERTION SORT===\n\n"<<endl;

 //Input Data
 cout<<"Masukkan Jumlah Data : ";
 cin>>n;
 cout<<"\n";
 for(int i=1;i<=n;i++)
 {
  cout<<"Masukkan data ke "<<i<<" : ";
  cin>>data[i];
  data2[i]=data[i];
 }

 insertion_sort();

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

}

Penjelasan dari program di atas

#include <iostream>
#include <conio.h>
using namespace std ;
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 insertion_sort()
{
 int temp,i,j;
 for(i=1;i<=n;i++)
 {
  temp = data[i];
  j = i -1;
  while(data[j]>temp && j>=0)
  {
   data[j+1] = data[j];
   j--;
  }
 data[j+1] = temp; // temp sebagai tempat penyimpanan sementara saat menukar nilai.
 }
}
// code program di atas ini merupakan rumus.
// dan di bawah merupakan code penginputannya.
int main()
{
 cout<<"\t\t\t===PROGRAM INSERTION SORT===\n\n"<<endl;

 //Input Data
 cout<<"Masukkan Jumlah Data : "; // di samping ini code untuk memasukkan data.
 cin>>n;
 cout<<"\n";
 for(int i=1;i<=n;i++) // untuk n kurang sama dengan i=1 maka i akan ++.
 {
  cout<<"Masukkan data ke "<<i<<" : "; // ini merupakan code setelah kita memasukkan angka di kode atas tadi " masukkan jumlah data " misalkan kita memasukkan 10 maka code program ini akan berulang 10x.
  cin>>data[i];
  data2[i]=data[i];
 }

 insertion_sort();

 cout<<"\n\n";
 //tampilkan data
 cout<<"Data Setelah di Sort : "; // merupakan code untuk mengurutkan angka.
 for(int i=1; i<=n; i++) 
 {
  cout<<" "<<data[i];
 }
 cout<<"\n\nSorting Selesai";
 getch(); // ini hanya digunakan untuk menghentikan suatu proses yang berjalan.
}


Hasil Output ketika program dijalankan


Tugas ini di kerjakan oleh :
Andi Muhammad Rifqi Muskar ( 14102050)
Deprilana Ego Prakarsa ( 14102055)
Muhammad Syahri ( 14102078)

Sekolah Tinggi Telematika Telkom Purwokerto



1 komentar:

tenia mengatakan...

cukup bagus penjelasannya, lanjutkan menulis

Posting Komentar

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | fantastic sams coupons