Salah satu bagian penting dari struktur data adalah sorting atau pengurutan data. Ada banyak sekali Algoritma pengurutan data di dunia komputer, yatu: bubble sort, selection sort, insertion sort, exchange sort, quick sort, merge sort, dll
Pengurutan arat terbagi dalam 2, yaitu pengurutan yang dimulai dari nilai terkecil ascending dan yang kedua pengurutan yang dimulai dari nilai terbesar descending. sedangkan metode metode dalam pengurutan data aray terbagi dalam 4 :
#. pengurutan berdasarkan perbandingan (bubble sort, exchange sort)
#. pengurutan berdasarkan prioritas (selection sort, heap sort)
#. pengurutan berdasarkan penyisipan dan penjagaan terurut (insertion sort, tree sort)
#. pengurutan berdasarkan pembagian dan penguasaan (quick sort, marge sort)
#. pengurutan berkurang menurun (shellsort)
kali ini hanya akan memberikan sedikit penjelasan lebih lanjut mengenai Bubble Sort -- Selection Sort -- Insertion Sort -- Exchange Sort.
Bubble Sort
Exchange Sort
Selection Sort
Insertion Sort
Contoh 1:
menggunakan metode Bubble Sort.
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
int main()
{
int data;
cout<<"Masukkan banyak data : ";cin>>data;
int A[data],i,j,tampung;
cout<<endl;
for(i=0;i<data;i++)
{
cout<<"Masukkan data : ";cin>>A[i];
}
cout<<"\nSebelum sorting :\n";
for(i=0;i<data;i++)
{
cout<<A[i]<<" ";
}
cout<<endl;
cout<<"\nproses sorting :";//awal logika yang digunakan
for(int i=0;i<data;i++)
{
tampung=A[i];
j=i-1;
while(A[j]>tampung && j>=0)
{
A[j+1]=A[j];
j--;
}
A[j+1]=tampung;
getch ();
cout<<endl;
for(int v=0;v<data;v++)//awal logika untuk menampilkan proses
{
cout<<A[v]<<" ";
}
//akhir lgika yang digunakan untuk menampilkan proses
}//akhir logika yang digunakan
getch ();
cout<<endl;
cout<<"\nsetelah sorting : ";
for (i=0; i<5; i++)//menampilkan hasil sortiran yang digunakan
{
cout<<A[i]<<" ";
}
return 0;
getch ();
}
Contoh 2:
menggunakan metode Exchange Sort
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
int main()
{
int data;
cout<<"Masukkan banyak data : ";cin>>data;
int A[data],i,j,tampung;
cout<<endl;
for(int x=0;x<data;x++)
{
cout<<"Masukkan data : ";cin>>A[x];
}
cout<<endl;
cout<<"Sebelum sorting:\n";
for(i=0;i<data;i++)
{
cout<<A[i]<<" ";
}
cout<<endl;
cout<<"\nproses sorting : \n";
for (int i=0;i<data-1;i++)//awallogika pensortingan
{
for(int j=i+1;j<data;j++)
{
if(A[i]<A[j])
{
tampung=A[i];
A[i]=A[j];
A[j]=tampung;
}
getch();
for(int v=0;v<data;v++)//untuk menampilkan proses sortingan
{
cout<<A[v]<<" ";
}
cout<<endl;
}
}//akhir logika pensortingan
getch();
cout<<"\nsetelah sorting : ";
for (i=0; i<5; i++)
{
cout<<A[i]<<" ";
}
getch ();
return 0;
}
Contoh 3:
menggunakan metode Selection Sort
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
int main()
{
int data;
cout<<"Masukkan banyak data : ";cin>>data;
int A[data],i,j,tampung,pos;
cout<<endl;
for(int x=0;x<data;x++)
{
cout<<"Masukan data : ";cin>>A[x];
}
cout<<endl;
cout<<"Sebelum sorting:\n";
for(i=0;i<data;i++)
{
cout<<A[i]<<" ";
}
cout<<endl;
cout<<"\nproses sorting : \n";
for(int i=0; i<data-1; i++)//awal logika yang digunakan untuk mensorting
{
pos=i;
for(int j=i+1; j<data; j++)
{//mencari data terkecil
if(A[j]<A[pos])
{
pos=j;
}
}
if (pos!=i)//jika data yang terkecil tidak sama dengan data yang pertama.
{
tampung=A[pos];
A[pos]=A[i];
A[i]=tampung;
}
getch ();
for(int v=0;v<data;v++)//untuk menampilkan proses sortingan
{
cout<<A[v]<<" ";
}
cout<<endl;
}//akhir logika yang digunakan
getch();
cout<<"\nsetelah sorting : ";
for (i=0; i<data; i++)
{
cout<<A[i]<<" ";
}
getch ();
return 0;
}
Contoh 4:
menggunakan metode Insertion Sort
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
int main()
{
int data;
cout<<"Masukkan banyak aray : ";cin>>data;
int A[data],i,j,tampung;
cout<<endl;
for (i=0; i<data; i++)
{
cout<<"Masukkan data : ";cin>>A[i];
}
cout<<endl;
cout<<"Sebelum sorting :\n";
for(i=0; i<data; i++)
{
cout<<A[i]<<" ";
}
cout<<endl;
cout<<"\nProses sorting : \n";
for(int i=1; i<data; i++)
{
for(int j=data-1; j>=1; j--)
{
if(A[j]<A[j-1])
{
tampung=A[j];
A[j]=A[j-1];
A[j-1]=tampung;
}
}
getch ();
for(int v=0; v<data; v++)
{
cout<<A[v]<<" ";
}
cout<<endl;
}
getch();
cout<<endl;
cout<<"Setelah sorting : ";
for (i=0; i<data; i++)
{
cout<<A[i]<<" ";
}
getch ();
return 0;
}
untuk mengetahui bagaimana hasil dari logika ini silahkan copy codingan diatas dan runing menggunakan compailer apapun yang mendukung bahasa C++.
Jika ada yang tidak dimengerti silahkan bertanya di kolom komentar
Tidak ada komentar:
Posting Komentar