Ada beberapa cara atau algoritma untuk mengurutkan data.
Bubble Sort
Bubble Sort adalah Cara pengurutan data atau file dengan cara saling menukar tempat dalam urutan, mirip dengan gelembung dalam air. Metode ini adalah cara terbaik untuk mengurutkan data/file dengan jumlah sedikit. Untuk file yang lebih besar terdapat metode lainnya.
Selection Sort
Algoritma ini mudah diterjemahkan ke dalam program computer tetapi memiliki kekurangan yaitu sort dengan menggunakan metode Seleksi membutuhkan ruang di memori untuk meyimpan 2 daftar lengkap.
Jika memiliki satu daftar nama dan meletakkan dalam urutan berdasarkan huruf bisa menggunakan pemdekatan umum sebagai berikut :
1. Temukan atau cari nama yang pertama kali datang dalam urutan huruf dan tulis di sheet kedua
2. Tandai nama yang keluar dari daftar asli
3. Lanjutkan perputaran ini sampai semua nama di daftar semula telah di coret dan ditulis di daftar kedua dimana di bagian daftar yang kedua ini nama-nama sudah terurut berdasarkan huruf
Quick Sort
Ide dasar quick sort (pengurutan cepat) yaitu membandingkan hasil setiap perbandingan sebagai penunjuk ke perbandinga berikutnya. Selama perbandingan, kunci dipertukarkan setelah dilengkapi, daftar kemudian dibagi menjadi nilai kunci pada satu partisi (tidak terurut) semuanya kurang dari nilai kunci yang dipilih dan nilai kunci di partisi yang lain semuanya lebih besar dari nilai kunci.
Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua bagian, yang belum diurutkan (meja pertama), dan yang telah diurutkan (meja kedua). Elemen pertama yang diambil dari bagian array yang belum diurutkan dan kemudian diletakkan pada posisinya sesuai dengan bagian lain dari array yang telah diurutkan. langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan.
Berikut contoh program sorting paling komplit.
contoh program c++ :
#include <iostream.h>
#include <conio.h>
int data[100],data2[100];
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-1;j>=i;j–)
{
if(data[j]<data[j-1]) tukar(j,j-1);
}
}
cout<<“bubble sort selesai!”<<endl;
}
void exchange_sort()
{
for (int i=0; i<n-1; i++)
{
for(int j = (i+1); j<n; j++)
{
if (data [i] > data[j]) tukar(i,j);
}
}
cout<<“exchange sort selesai!”<<endl;
}
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;
}
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;
}
void QuickSort(int L, int R) //the best sort i’ve ever had 🙂
{
int i, j;
int mid;
i = L;
j = R;
mid = data[(L+R) / 2];
do
{
while (data[i] < mid) i++;
while (data[j] > mid) j–;
if (i <= j)
{
tukar(i,j);
i++;
j–;
};
} while (i < j);
if (L < j) QuickSort(L, j);
if (i < R) QuickSort(i, R);
}
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 Tampil()
{
cout<<“Data : “<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<” “;
}
cout<<endl;
}
void AcakLagi()
{
for(int i=0;i<n;i++)
{
data[i] = data2[i];
}
cout<<“Data sudah teracak!”<<endl;
}
void main()
{
int pil;
clrscr();
do
{
clrscr();
cout<<“Program Sorting Komplit!!!”<<endl;
cout<<“*********************************************”<<endl;
cout<<” 1. Input Data”<<endl;
cout<<” 2. Bubble Sort”<<endl;
cout<<” 3. Exchange Sort”<<endl;
cout<<” 4. Selection Sort”<<endl;
cout<<” 5. Insertion Sort”<<endl;
cout<<” 6. Quick Sort”<<endl;
cout<<” 7. Tampilkan Data”<<endl;
cout<<” 8. Acak Data”<<endl;
cout<<” 9. Exit”<<endl;
cout<<” Pilihan Anda = “; cin>>pil;
switch(pil)
{
case 1:Input(); break;
case 2:bubble_sort(); break;
case 3:exchange_sort(); break;
case 4:selection_sort(); break;
case 5:insertion_sort(); break;
case 6:QuickSort(0,n-1);
cout<<“quick sort selesai!”<<endl;
break;
case 7:Tampil(); break;
case 8:AcakLagi(); break;
}
getch();
}while(pil!=9);
}
kok di compiule eror ya?
perbaiki dunk..sengaja itu..jangan maen copas aja..hhaha (tulisan’a sudah bener tu..cuma font’a yg membuat dy eror ketika di copas..mending di print dulu trus ketik ulang..hha)
coro maen ganti hurup buakakakakaka
kok di compile eror ya?
matamu raiso ndes
belajar yg giat lg mas
wewkkwkw @celulux orng2 gk tau standard nya kalo orng mau nge copy sintak xD dikira langsung main copas aja xD awkawkawkakakwka
malam… bs bntu coding iterasi bubble sort untuk tiap tapilan seleksi nya,
misalnya untuk ascnding:
bil awal : 321
swapping 1 hasilnya : 231
swapping 2 hasilnya : 213
swapping 3 hasilnya : 123
makasih bwt infonya, tolg dibantu yah 🙂
tinggal tambahin output disetiap perulangan saja mas + tampilin hasilnya..beres sudah..
Kalo radix sort ada gak..?
itu aja yg ada sob 🙂
thanks banget sob. bantu tugas gue banget nih post. . (y)
wooke 😀
gan,
sukses di run, tapi setelah input gamau kembali ke menu untuk melakukan sort
solusinya?
tambahin programnya gan 😀
Sangat Membantu gan ..
mantap
sipp..
makasih sudah mampir gan 🙂
gk ada algoritma dan flowchartnya?
buat aja sendiri gan..gampang
thx banget bli program nya lengkap banget! izin boomark yaa hehe
silahkan bli..
program gw kok eror ya
??
no such or file directory katanya bg
itu knapa ya ???
ketik ulang jangan kopi paste
klo inputnya ada nama sama umur gimana?? diurut berdasarkan umur, bisa gk?? nanti outputnya ada nama dan umur…..
apa sih yg ga bisa untuk kamu..
outputnya apanih bang
saran kasih lihat outputnya…
coba aja dulu sendiri.. males bet lu