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:
cukup bagus penjelasannya, lanjutkan menulis
Posting Komentar