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
 
 
 

1 komentar:
mantaap....
Posting Komentar