Sort adalah suatu proses pengurutan data yang sebelumnya disusun secara acak atau tidak teratur menjadi urut dan teratur menurut suatu aturan tertentu.
Biasanya pengurutan terbagi menjadi 2 yaitu :
Ascending (pengurutan dari karakter / angka kecil ke karakter / angka besar)
Descending (pengurutan dari karakter / angka besar ke karakter / angka kecil)
Ada banyak cara yang dapat dilakukan untuk melakukan proses pengurutan dari paling tinggi ke paling rendah atau sebaliknya.
Untuk masalah pengurutan pada array kita tidak dapat langsung menukar isi dari variabel yang ada, tetapi menggunakan metode penukaran (swap).
Contoh :
Data yang terdiri dari nilai dengan array, nilai[1] = 10 dan nilai[2] = 8 akan ditukar isi nilainya sehingga akan menghasilkan nilai[1] = 8 dan nilai[2] = 10.
Proses penukaran tidak dapat langsung dilakukan dengan cara :
nilai[1] = nilai[2];
nilai[2] = nilai[1];
Cara yang tepat adalah :
temp = nilai[1];
nilai[1] = nilai[2];
nilai[2] = temp;
Bubble sort adalah suatu metode pengurutan yang membandingkan elemen yang sekarang dengan elemen berikutnya. Apabila elemen yang sekarang lebih besar dari elemen yang berikutnya, maka posisinya akan ditukar, bila tidak maka posisi akan tetap
Contoh Soal:
Buatlah program untuk melakukan pengurutan data secara menurun (dari besar ke kecil) dengan menukar data berikut menggunakan Bubble Short.
Data :
21, 83, 42, 11, 10, 9, 3, 20, 102, 27, 15, 92, 2
Bila program dijalankan maka :
102, 92, 83, 42, 27, 21, 20, 15, 11, 10, 9, 3, 2
Jawab:
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int data[13]={21, 83, 42, 11, 10, 9, 3, 20, 102, 27, 15, 92, 2};
int temp;
cout<<"Data yang asli\t \n";
for(int i4=0;i4<13;i4++)
{
cout<<setw(5)<<data[i4];
}
cout<<"\n\n";
for(int i3=0;i3<13;i3++)
for(int i2=0;i2<13;i2++)
if(data[i2]>data[i2+1])
{
temp=data[i2];
data[i2]=data[i2+1];
data[i2+1]=temp;
}
cout<<"Data setela di tata discending\t \n";
for(int i1=12;i1>=0;i1--)
cout<<setw(5)<<data[i1];
cout<<endl;
getch();
}