SORTING
Sorting adalah metode dari Struktur data untuk mengurutkan data dari indeks yang terkecil hingga terbesar atau biasa disebut dengan Ascending ataupun dari besar hingga terkecil atau biasa disebut dengan Descending. Fungsi dari sorting hanyalah mengurutkan data hingga menjadi suatu informasi yang sesuai dengan yang diinginkan oleh sang programmer.
Nah, disini saya akan menjelaskan tentang Selection Sorting dan Insertion Sorting.
1. SELECTION SORTING
Selection sorting adalah metode pengurutan data dengan cara memilih elemen atau proses kerja dengan memilih elemen terkecil kemudian membandingkan dengan elemen selanjutnya, hingga menemukan data dari yang terkecil hingga terbesar. Prinsip kerja dari Selection Sorting yaitu :
• Pengecekan dimulai data ke-1 sampai dengan data ke-n.
• Carilah data terkecil dari seluruh data yang ada.
• Jika data lebih kecil, maka akan ditukarkan dengan data yang dibandingkan, jika tidak, maka akan dilakukan kembali pembandingan dengan data selanjutnya.
• Selection Sort akan mengulang perulangan ini hingga data ke-n telah habis dibandingkan dan telah menemukan urutan yang tepat.
Berikut adalah cara kerja dari Selection Sort.
SOURCE CODE SELECTION SORT
Berikut ini adalah Source Code atau Syntax Program dari Selection Sort pada Bahasa C++.
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
void input(int data[], int n)
{
int i;
for (i=0;i<n;i++)
cout<<data[i]<<” “;
cout<<endl<<endl;
}
void selection_sort(int data[], int n)
{
int posmin, posawal, j, tmp;
for(posawal=0;posawal<n-1;posawal++)
{
posmin=posawal;
for (j=posawal+1;j<n;j++)
if(data[posmin]>data[j])
posmin=j;
tmp=data[posawal];
data[posawal]=data[posmin];
data[posmin]=tmp;
cout<<“\n Hasil ketika Posawal = “<<posawal<<” : “;
input(data,n);
}
}
int main ()
{
int data[50], i,n;
cout<<” SIMULASI SELECTION SORT \n”;
cout<<“=========================================\n”;
cout<<” masukkan banyak data : “;
cin>>n;
cout<<“=========================================\n”;
for (int a=0;a<n;a++)
{
cout<<“\n masukkan data ke “<<a<<” : “;
cin>>data[a];
}
selection_sort(data,n);
cout<<“=========================================\n”;
cout<<“\n\n hasil pengurutan : \n\n”;
cout<<” “; input(data,n);
cout<<“\n SORTING SELESAI……………….”;
getch();
}
2. INSERTION SORTING
Salah satu algoritma sorting yang paling sederhana adalah insertion sort. Insertion Sort disebut-sebut sebagai metode pertengahan. Artinya, metode ini memiliki kecepatan rata-rata antara metode primitif (bubble dan selection) dan modern (merge dan quick). Metode ini, didasarkan pada sebuah kunci yang diambil pada elemen ke-2 pada sebuah larik, lalu menyisipkan elemen tersebut jika kondisi percabangan terpenuhi. Metode penyisipan (insertion) bertujuan untuk menjadikan bagian sisi kiri larik terurutkan sampai dengan seluruh larik berhasil diurutkan. Cara kerja dari Insertion Sort yaitu dengan menyisipkan data yang belum urut ke dalam bagian data yang telah diurutkan. Konsep seperti ini biasa dilakukan pada permainan kartu. Ketika sebuah kartu baru didapatkan (hasil pembagian dari pengocokan kartu) kartu akan disisipkan oleh pemain pada posisi yang tepat sehingga penambahan kartu tersebut membuat semua kartu terurutkan. Contoh :
Bila L adalah larik dengan n elemen, mula-mula L[0] (elemen pertama) dianggap kumpulan data yang telah diurutkan, yang terdiri atas 1 buah data. kemudian dilakukan penyisipan data dari L[1] sampai dengan 1≤ k < n. Dalam hal ini penyisipan dilakukan pada tempat yang tepat sehingga data L[0] sampai dengan L[k] menjadi urut.
SOURCE CODE INSERTION SORT
Berikut adalah Source Code Insertion Sort pada bahasa Pemrograman C++.
#include<stdio.h>
#include<stdlib.h>
const int MAX =10;
void bacaData (int a[], int n)
{
int i;
printf("Masukkan : \n");
for (i=0; i<n; i++)
{
printf("data ke -%d: ", i+1);
scanf("%d", &a[i]);
}
}
void cetakData(int a[], int n)
{
int i;
for (i=0; i<n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
}
void insertSort(int a[],
int n)
{
int i,j,x;
for(i=1; i<n; i++){
x=a[i];
j=i-1;
while((j>=0) && (x<a[j]))
{
a[j+1]=a[j];
j=j-1;
}
a[j+1]=x;
}
}
main()
{
int i, n, a[MAX];
printf("Jumlah data:");
scanf("%d", &n);
bacaData(a,n);
printf("Data sebelum di urutkan : \n");
cetakData(a,n);
insertSort(a,n);
printf("Data setelah di urutkan :\n");
cetakData(a,n);
}
SOURCE CODE INSERTION SORT DAN SELECTION SORT
Berikut adalah Source Code dari Insertion Sort dan Selection Sort jadi 1 dalam bahasa program C++.
#include <iostream>
#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 selection_sort()
{
int pos,i,j;
for(i=0;i<n-1;i++)
{
pos=i;
for(j=i+1;j<n;j++)
{
if(data[j]<data[pos])pos=j;
}
if(pos!=i) tukar(pos,i);
}
cout<<"selection sort selesai !"<<endl;
cout<<"Data : "<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}
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;
}
cout<<"insertion sort selesai ! "<<endl;
cout<<"Data : "<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}
void input()
{
cout<<"Masukkan jumlah data = ";
cin>>n;
for(int i=0;i<n;i++)
{
cout<<"Masukkan data ke - "<<(i+1)<<" = " ;
cin>>data[i];
data2[i]=data[i];
}
}
void main()
{
int pil;
clrscr();
do
{
clrscr();
cout<<"1. Input Data"<<endl;
cout<<"2. Selection Sort"<<endl;
cout<<"3. Insertion Sort"<<endl; //tambahkan
cout<<"4. Exit"<<endl;
cout<<"Masukkan Pilihan anda = ";
cin>>pil;
switch(pil)
{
case 1: input();break;
case 2: selection_sort();break;
case 3: insertion_sort();break; //tambahkan
}
getch();
}
while(pil!=4);
}
Referensi dari Buku Karya Adi Nugroho yang berjudul Algoritma & Struktur Data dengan C#
Sorting adalah metode dari Struktur data untuk mengurutkan data dari indeks yang terkecil hingga terbesar atau biasa disebut dengan Ascending ataupun dari besar hingga terkecil atau biasa disebut dengan Descending. Fungsi dari sorting hanyalah mengurutkan data hingga menjadi suatu informasi yang sesuai dengan yang diinginkan oleh sang programmer.
Nah, disini saya akan menjelaskan tentang Selection Sorting dan Insertion Sorting.
1. SELECTION SORTING
Selection sorting adalah metode pengurutan data dengan cara memilih elemen atau proses kerja dengan memilih elemen terkecil kemudian membandingkan dengan elemen selanjutnya, hingga menemukan data dari yang terkecil hingga terbesar. Prinsip kerja dari Selection Sorting yaitu :
• Pengecekan dimulai data ke-1 sampai dengan data ke-n.
• Carilah data terkecil dari seluruh data yang ada.
• Jika data lebih kecil, maka akan ditukarkan dengan data yang dibandingkan, jika tidak, maka akan dilakukan kembali pembandingan dengan data selanjutnya.
• Selection Sort akan mengulang perulangan ini hingga data ke-n telah habis dibandingkan dan telah menemukan urutan yang tepat.
Berikut adalah cara kerja dari Selection Sort.
SOURCE CODE SELECTION SORT
Berikut ini adalah Source Code atau Syntax Program dari Selection Sort pada Bahasa C++.
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
void input(int data[], int n)
{
int i;
for (i=0;i<n;i++)
cout<<data[i]<<” “;
cout<<endl<<endl;
}
void selection_sort(int data[], int n)
{
int posmin, posawal, j, tmp;
for(posawal=0;posawal<n-1;posawal++)
{
posmin=posawal;
for (j=posawal+1;j<n;j++)
if(data[posmin]>data[j])
posmin=j;
tmp=data[posawal];
data[posawal]=data[posmin];
data[posmin]=tmp;
cout<<“\n Hasil ketika Posawal = “<<posawal<<” : “;
input(data,n);
}
}
int main ()
{
int data[50], i,n;
cout<<” SIMULASI SELECTION SORT \n”;
cout<<“=========================================\n”;
cout<<” masukkan banyak data : “;
cin>>n;
cout<<“=========================================\n”;
for (int a=0;a<n;a++)
{
cout<<“\n masukkan data ke “<<a<<” : “;
cin>>data[a];
}
selection_sort(data,n);
cout<<“=========================================\n”;
cout<<“\n\n hasil pengurutan : \n\n”;
cout<<” “; input(data,n);
cout<<“\n SORTING SELESAI……………….”;
getch();
}
2. INSERTION SORTING
Salah satu algoritma sorting yang paling sederhana adalah insertion sort. Insertion Sort disebut-sebut sebagai metode pertengahan. Artinya, metode ini memiliki kecepatan rata-rata antara metode primitif (bubble dan selection) dan modern (merge dan quick). Metode ini, didasarkan pada sebuah kunci yang diambil pada elemen ke-2 pada sebuah larik, lalu menyisipkan elemen tersebut jika kondisi percabangan terpenuhi. Metode penyisipan (insertion) bertujuan untuk menjadikan bagian sisi kiri larik terurutkan sampai dengan seluruh larik berhasil diurutkan. Cara kerja dari Insertion Sort yaitu dengan menyisipkan data yang belum urut ke dalam bagian data yang telah diurutkan. Konsep seperti ini biasa dilakukan pada permainan kartu. Ketika sebuah kartu baru didapatkan (hasil pembagian dari pengocokan kartu) kartu akan disisipkan oleh pemain pada posisi yang tepat sehingga penambahan kartu tersebut membuat semua kartu terurutkan. Contoh :
Bila L adalah larik dengan n elemen, mula-mula L[0] (elemen pertama) dianggap kumpulan data yang telah diurutkan, yang terdiri atas 1 buah data. kemudian dilakukan penyisipan data dari L[1] sampai dengan 1≤ k < n. Dalam hal ini penyisipan dilakukan pada tempat yang tepat sehingga data L[0] sampai dengan L[k] menjadi urut.
SOURCE CODE INSERTION SORT
Berikut adalah Source Code Insertion Sort pada bahasa Pemrograman C++.
#include<stdio.h>
#include<stdlib.h>
const int MAX =10;
void bacaData (int a[], int n)
{
int i;
printf("Masukkan : \n");
for (i=0; i<n; i++)
{
printf("data ke -%d: ", i+1);
scanf("%d", &a[i]);
}
}
void cetakData(int a[], int n)
{
int i;
for (i=0; i<n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
}
void insertSort(int a[],
int n)
{
int i,j,x;
for(i=1; i<n; i++){
x=a[i];
j=i-1;
while((j>=0) && (x<a[j]))
{
a[j+1]=a[j];
j=j-1;
}
a[j+1]=x;
}
}
main()
{
int i, n, a[MAX];
printf("Jumlah data:");
scanf("%d", &n);
bacaData(a,n);
printf("Data sebelum di urutkan : \n");
cetakData(a,n);
insertSort(a,n);
printf("Data setelah di urutkan :\n");
cetakData(a,n);
}
SOURCE CODE INSERTION SORT DAN SELECTION SORT
Berikut adalah Source Code dari Insertion Sort dan Selection Sort jadi 1 dalam bahasa program C++.
#include <iostream>
#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 selection_sort()
{
int pos,i,j;
for(i=0;i<n-1;i++)
{
pos=i;
for(j=i+1;j<n;j++)
{
if(data[j]<data[pos])pos=j;
}
if(pos!=i) tukar(pos,i);
}
cout<<"selection sort selesai !"<<endl;
cout<<"Data : "<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}
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;
}
cout<<"insertion sort selesai ! "<<endl;
cout<<"Data : "<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}
void input()
{
cout<<"Masukkan jumlah data = ";
cin>>n;
for(int i=0;i<n;i++)
{
cout<<"Masukkan data ke - "<<(i+1)<<" = " ;
cin>>data[i];
data2[i]=data[i];
}
}
void main()
{
int pil;
clrscr();
do
{
clrscr();
cout<<"1. Input Data"<<endl;
cout<<"2. Selection Sort"<<endl;
cout<<"3. Insertion Sort"<<endl; //tambahkan
cout<<"4. Exit"<<endl;
cout<<"Masukkan Pilihan anda = ";
cin>>pil;
switch(pil)
{
case 1: input();break;
case 2: selection_sort();break;
case 3: insertion_sort();break; //tambahkan
}
getch();
}
while(pil!=4);
}
Referensi dari Buku Karya Adi Nugroho yang berjudul Algoritma & Struktur Data dengan C#
Komentar
Posting Komentar