Skip to content Skip to sidebar Skip to footer

Belajar C++ Part 7 (Sorting)

Metode Sorting Pada C++

Sorting berasal dari kata dasar "sort", dalam bahasa Indonesia berarti mengurutkan. Jadi, metode sorting pada C++ disini adalah mengurutkan data berdasarkan ascending (dari nilai terkecil ke nilai terbesar) ataupun descending (dari nilai terbesar ke nilai terkecil). Penggunaan sorting ini sangat berguna ketika di dalam program kita terdapat metode searching, dimana salah satu metode searching yang bernama binary searching. Membutuhkan metode sorting agar metode binary searching dapat berjalan dengan semestinya.


Di sekitar kita, banyak sekali contohnya. Seperti kamus bahasa, diurutkan berdasarkan abjad mulai dari A hingga Z. Selain itu, folder atau file pada komputer kita dimana diurutkan berdasarkan atribut tanggal, nama, hingga ukuran file atau folder tersebut. Jadi, metode sorting ini tentunya sangat berguna untuk pembuatan program dari bahasa C++. Menggunakan metode sorting ini dapat mempersingkat waktu kita dalam membuat program dan menghemat baris kode.

Jenis - Jenis Metode Sorting

Ternyata, jenis - jenis metode sorting ini ada banyak sekali. Lebih banyak di banding jenis - jenis metode searching. Dibawah ini beberapa jenis - jenis metode sorting yang dapat kalian ketahui.
  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Quick Sort
  • Merge Sort
  • Heap Sort
  • Binary Sort
Tetapi, kita hanya akan membahas 3 jenis metode sorting saja, yaitu bubble sort, selectionsort, dan insertion sort. Karena ketiga jenis ini adalah yang paling umum digunakan.

Metode Bubble Sort

Jenis - Jenis Metode Sorting Pada C++

Metode ini terinspirasi dari gelembung air, jadi metode ini dinamakan bubble sort. Cara kerjanya seperti di atas, dimana data pertama dan kedua akan dibandingkan terlebih dahulu. Apabila dari kedua lebih besar maka, tidak terjadi pergeseran dan akan dilanjutkan dengan perbandingan data ketiga dan selanjutnya. Apabila data yang dibandingkan lebih kecil dari data yang berada disampingnya. Maka data terkecil hasil perbandingan akan digeser pada sisi kiri dan perbandingan akan terus berlanjut.


Contoh Kode Program dan Demo Program Metode Bubble Sort

Jenis - Jenis Metode Sorting Pada C++

Kode Program :


#include <iostream>
#include <conio.h>

using namespace std;

void prosesPerpindahan(int data[],int y){
int x;
for(x=0;x<y;x++){
cout<<data[x]<<" ";
}
cout<<endl;
}

void prosesSorting(int data[],int y){
int proses,x,tampung;
for(proses=1;proses<y;proses++){
for(x=0;x<y-proses;x++){
if(data[x]>data[x+1]){
tampung=data[x];
data[x]=data[x+1];
data[x+1]=tampung;
}
}
cout<<"Tahap Ke-"<<proses<<" : ";
prosesPerpindahan(data,y);
}
}

int main(){
int data[]={6,10,15,12,11};
int x;
const int jumlahdata=5;
prosesSorting(data,jumlahdata);
cout<<endl;
cout<<"Setelah Di Urutkan : "<<endl;
prosesPerpindahan(data,jumlahdata);
}

Metode Selection Sort

Jenis - Jenis Metode Sorting Pada C++
Kalau untuk metode selection sort ini, berbeda dengan bubble sort. Perbedaannya terletak pada dimana data terbesar berhenti. Metode selection sort, data 1 pertama akan di bandingkan dengan data kedua, apabila data tersebut bernilai lebih besar di banding data pertama. Maka, data tersebut akan bergeser dan akan berhenti hingga data n+1 lebih besar dari data tersebut.

Contoh Kode Program dan Demo Program Metode Selection Sort

Jenis - Jenis Metode Sorting Pada C++

Kode Program :

#include <iostream>

using namespace std;

int main()
{
    int data[]={3,20,2,12,11};
int n=5,i,j,x,posisi,tampung;

cout<<"Sebelum Di Urutkan : ";
    for (int i=0; i<n; i++){
    cout<<data[i]<<" ";
    }
   
    cout<<endl;
    cout<<endl;
    
for (int i=0;i<n-1;++i){
  posisi=i;
  for (int j=i+1;j<n;++j){
    if (data[j]<data[posisi]){
        posisi=j;   
    }
  }

 
  if (posisi!=i){
        tampung=data[posisi];
    data[posisi]=data[i];
    data[i]=tampung;
    }
    
  cout<<"Tahap Ke-"<<i+1<<" : ";
  for (int x=0;x<n;++x){
  cout<<data[x]<<" ";
  }
  cout<<endl;
  }
 
  cout<<endl;
 
    cout<<"Setelah Di Urutkan Menggunakan Metode Selection Sort : ";
  for (int i=0;i<n;++i){
  cout<<data[i]<<" ";
  }  

}


Metode Insertion Sort

Jenis - Jenis Metode Sorting Pada C++

Metode insertion sort ini cara kerjanya, seperti gambar di atas. Dimana data terkecil akan di kelompokkan ke sisi kiri sehingga terjadi pergeseran pada sisi kanan. Data ini selalu dibandingkan setelah pergeseran. Contoh, Pada gambar terdapat angka 2 dimana akan dibandingkan dengan 6 selanjutnya terjadi pergeseran. Setelah itu, dibandingkan kembali dengan 5 dan 6 lalu hasilnya lebih kecil maka terjadi pergeseran dimana 5 lebih besar dari 2. Selanjutnya, 2 dibandingkan dengan 1 dan 5 nah di sini sudah tidak ada data lagi karena data terkecil adalah 1. Jadi, 2 akan berhenti setelah angka 1.

Contoh Kode Program dan Demo Program Metode Insertion Sort

Jenis - Jenis Metode Sorting Pada C++

Kode Program :

#include<iostream>

using namespace std;

int main()
{
int x=5,i,tampung,j,k;
int data[]={4,12,3,30,1};
   
    cout<<"Data Sebelum Di Urutkan :";
    for(i=0;i<x;i++){
    cout<<"  "<<data[i];
    }
    cout<<endl;
    for(i=0;i<x;i++){
    for(j=0;j<i;j++){
        if(data[i]<data[j]){
          tampung=data[i];
            data[i]=data[j];
            data[j]=tampung;
}
      }
      cout<<"\n Tahap Ke-"<<i+1<<" : ";
      for(k=0;k<x;k++){
        cout<<"  "<<data[k];
      }
    }
    cout<<"\n\n Data Setelah Di Urutkan : ";
    for(i=0;i<x;i++){
    cout<<"  "<<data[i];
    }

}


Post a Comment for "Belajar C++ Part 7 (Sorting)"