Pengertian dan contoh sorting di dalam C++
Pada kali ini saya akan membahas mengenai sorting didalam c++,
di dalam kehidupan sehari-hari sorting ditemukan dalam kamus yang
hurufnya berurutan untuk mempermudah pengguna dalam pencarian. Mengapa
kita harus melakukan sorting data? Ada banyak alasan dan keuntungan
dengan mengurutkan data. Data yang terurut mudah untuk dicari, mudah
untuk diperiksa, dan mudah untuk dibetulkan jika terdapat kesalahan.
Data yang terurut dengan baik juga mudah untuk dihapus jika
sewaktu-waktu data tersebut tidak diperlukan lagi. Selain itu, dengan
mengurutkan data maka kita semakin mudah untuk menyisipkan data atapun
melakukan penggabungan data. Selanjutnya apa itu pengertian dari sorting
di dalam bahasa pemrograman c++?
PENEGERTIAN SORTING
Sorting adalah proses mengatur sekumpulan
objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat
menaik atau disebut juga ascending (dari data kecil ke data lebih
besar) ataupun menurun/descending(dari data besar ke data kecil).
Metode Sorting :
- Bubble Sort / Pengurutan Gelembung
- Selection Sort/Pengurutan Maksimum-minimum
- Insertion Sort/Pengurutan sisip
1. Bubble sort / pengurutan gelembung ini
merupakan suatu metode pengurutan gelembung yang diinspirasi oleh
gelembung sabun yang ada di dalam permukaan air, karena berat jenis
gelembung sabun lebih ringan daripada berat jenis air maka gelembung
sabun akan selalu megapung. Prinsip pengapungan ini juga dipakai pada
pengurutan gelembung. Elemen yang berharga paling kecil “diapungkan”,
yang artinya diangkat ke atas (atau ke ujung paling kiri) melalui
pertukaran. Proses pengapungan ini dilakukan N kali langkah. Pada
langkah ke 1, Larik[1….N] akan terdiri dari 2 bagian yaitu :
a. Bagian yang sudah terurut yaitu L[1]…L[i]b. Bagian yang belum terurut L[i+1]..L[n]
Untuk contoh program ini adalah
#include <iostream.h>
#include <conio.h>
main(){
int nilai[‘n’];
int temp;
int n;
cout<<“Banyak Data: “;
cin>>n;
cout<<endl;
for (int a=1; a<=n; a++){
cout<<“nilai[“<<a<<“]: “;
cin>>nilai[a];
}
cout<<“\n\n”;
cout<<“Data Sebelum diurutkan”<<endl;
for(int a=1; a<=n; a++){
cout<<nilai[a]<<” “;
}
for(int a=n-1; a>=1; a–){
for(int b=1; b<=a; b++){
if(nilai[b]>nilai[b+1]){
temp=nilai[b+1];
nilai[b+1]=nilai[b];
nilai[b]=temp;
}
}
}
cout<<“\n\nData Setelah Diurutkan (Ascending)”<<endl;
for (int a=1; a<=n; a++){
cout<<nilai[a]<<” “;}
cout<<“\n\n”;
cout<<“\n\nData Setelah Diurutkan (Descending)”<<endl;
for (int a=n; a>=1; a–){
cout<<nilai[a]<<” “;}
getch();
}
Outputnya :
2. Selection Sort / Pengurutan Maksimum-Minimum
Metode pengurutan ini didasarkan pada
pemilihan elemen maksimum atau minimum kemudian mempertukarkan elemen
maksimum-minimum tersebut dengan elemen terujung larik (elemen ujung
kiri atau elemen ujung kanan), selanjutnya elemen terujung itu kita
“isolasi” dan tidak diikut sertakan pada proses selanjutnya. Karena
proses utama dalam pengurutan adalah pemilihan elemen maksimum/minimum,
maka metode ini disebut metode pemilihan ( selection)
Contoh programnya adalah :#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int main(){
//deklarasi array dengan 7 elemen
int A[7];
int j,k,i,temp;
int jmax,u=6;
//memasukkan nilai sebelum diurutkan
cout<<“Masukkan nilai pada elemen array :”<<endl;
for(i=0;i<7;i++)
{
cout<<“A[“<<i<<“]=”;
cin>>A[i];
}
//Proses pengurutan secara menaik (Ascending)
for(j=0;j<7;j++)
{
jmax=0;
for(k=1;k<=u;k++)
if (A[k] > A[jmax])
jmax=k;
temp=A[u];
A[u]=A[jmax];
A[jmax]=temp;
u–;
}
//menampilkan nilai setelah diurutkan
cout<<“\nNilai setelah diurutkan =”<<endl;
for(i=0;i<7;i++)
cout<<A[i]<<” “;
getch();
}
Outputnya :
3. Insertion Sort/pengurutan sisip adalah
metode pengurutan dengan cara menyisipkan elemen larik pada posisi yang
tepat. Pencarian posisi yang tepat dilakukan dengan pencarian beruntun.
Selama pencarian posisi yang tepat dilakukan pergeseran elemen larik.
Contoh program insertion sorting :
#include <iostream.h>#include <stdio.h>
#include <conio.h>
main (){
int i,j, b, k, m, n,x,z,ketemu=0;
int data[‘n’], temp[100];
cout<<“\n======================\n”<<endl;
cout<<“\n—-BELAJAR SORTING—\n”;
cout<<“\n======================\n”<<endl;
cout<<“Inputkan Banyak Data: “;
cin>>n;
for(i=0; i<n; i++){
cout<<“Data Ke-“<<i<<” : “;
cin>>data[i];
}
cout<<“\n\n”;
cout<<“Data Sebelum diurutkan”<<endl;
for(int i=0; i<n; i++){
cout<<i+1<<“.”;
cout<<data[i]<<” “;
cout<<endl;
}
for (i=0; i<n; i++){
for (j=0; j<=i; j++)
{
if(data[i]<data[j])
{
m=data[i];
data[i]=data[j];
data[j]=m;
}
}
cout<<“\n#”<<i<<“: “;
for(k=0; k<=i; k++)
{
cout<<” “<<data[k];
}
}
cout<<“\n\n”;
cout<<“\nData Setelah Diurutkan (Ascending):”<<endl;
for(i=0; i<n; i++){
cout<<i+1<<” “;
cout<<data[i]<<” “<<endl;}
for (i=0; i<n; i++){
for (j=0; j<=i; j++)
{
if(data[i]>data[j])
{
m=data[i];
data[i]=data[j];
data[j]=m;
}
}
cout<<“\n#”<<i<<“: “;
for(k=0; k<=i; k++)
{
cout<<” “<<data[k];
}
}
cout<<“\n\n”;
cout<<“\nData Setelah Diurutkan (Descending):”<<endl;
for(i=0; i<n; i++){
cout<<i+1<<“.”;
cout<<data[i]<<” “<<endl;
}
getch();
}
outputnya :
Selesai sudah pembahasan kita mengenai Sorting di dalam c++, jangan lupa juga belajar mengenai array, percabangan, dan juga perulangan ya .. semangat coding <3<3 …..