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 :
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 :