Mohon tunggu...
Reza Afdal Nasution
Reza Afdal Nasution Mohon Tunggu... Mahasiswa - Mahasiswa

Merupakan Mahasiswa Teknik Informatika

Selanjutnya

Tutup

Ilmu Alam & Tekno

Sorting Menggunakan C++ Beserta Contohnya

28 Juni 2022   17:11 Diperbarui: 28 Juni 2022   18:39 8615
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.
Lihat foto
Ilmu Alam dan Teknologi. Sumber ilustrasi: PEXELS/Anthony

Sorting adalah sebuah konsep yang mengurutkan elemen-elemen array yang acak mulai dari yang terkecil ke terbesar atau sebaliknya. Sorting dari yang terkecil ke terbesar disebut Ascending, sedangkan dari yang terbesar ke terkecil disebut Descending. Kedua jenis sorting ini dapat anda gunakan sesuai dengan kebutuhannya. Terdapat banyak metode sorting tetapi saya akan jelaskan dua saja untuk artikel ini.

Metode Sorting

1. Bubble Sort

Bubble Sort merupakan suatu metode sorting dengan proses membandingkan elemen sekarang dengan elemen selanjutnya. Perbandingan dapat dimulai dari awal sampai akhir atau sebaliknya. Jika elemen sekarang lebih besar dari yang berikutnya atau jika elemen sekarang lebih kecil dari yang berikutnya (tergantung syarat yang digunakan) maka posisi akan ditukar. Proses tersebut akan berlangsung berulang kali sampai nilai elemennya berurutan.

2. Selection Sort

 Selection Sort ialah suatu metode sorting yang membandingkan elemen array mulai dari elemen awal sampai elemen yang terakhir. Saat proses dimulai elemen array akan dicek untuk mencari elemen mana yang paling kecil atau paling besar. Ketika elemen tersebut sudah ditemukan, posisi elemen tersebut akan dipindahkan ke paling awal. Setelah itu proses akan diulang lagi dengan mencari elemen terkecil atau terbesar lainnya dan diurutkan posisinya hingga terbentuk suatu urutan yang sesuai dengan syarat yang ditentukan.

Contoh Program :

1. Contoh Program Menggunakan Metode Bubble Sort

#include
using namespace std;
void bubble_sort (int array[],int size);
void tampilkan(int array[],int size);
main(){
    int array[10] = {5,1,3,5,7,9,4,8,2,10};
    int size = sizeof(array)/sizeof(array[0]);
    cout << "Data Sebelum disort : \n";
    tampilkan(array,size);
    bubble_sort(array,size);
    cout << "Data Setelah disort : \n";
    tampilkan(array,size);
}
void bubble_sort (int array[],int size){
for(int i = 0; i < size-1; i++){
for(int j = i+1; j < size; j++){
if (array[i] > array[j]){
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
void tampilkan(int array[],int size){
for(int i = 0; i < size; i++){
cout << array[i] << " ";
} cout << "\n";
}

Output :

Data Sebelum disort :
5 1 3 5 7 9 4 8 2 10
Data Setelah disort :
1 2 3 4 5 5 7 8 9 10

2. Contoh Program Menggunakan Selection Sort

#include
using namespace std;
void selection_sort(int array[], int size);
void tampilkan(int array[],int size);
main(){
int array[10] = {30,45,10,94,39,24,10,80,100,50};
int size = sizeof(array)/sizeof(array[0]);
    cout << "Data Sebelum disort : \n";
    tampilkan(array,size);
    cout << "Data Setelah disort : \n";
    selection_sort(array,size);
    tampilkan(array,size);
}
void selection_sort(int array[], int size){
    for (int step = 0; step < size - 1; step++) {
    int min_idx = step;
    for (int i = step + 1; i < size; i++) {
     if (array[i] < array[min_idx])
        min_idx = i;
      }
    int temp = array[min_idx];
  array[min_idx] =  array[step];
  array[step] = temp;
}
}
void tampilkan(int array[],int size){
for(int i = 0; i < size; i++){
cout << array[i] << " ";
} cout << "\n";
}
Data Sebelum disort :
30 45 10 94 39 24 10 80 100 50
Data Setelah disort :
10 10 24 30 39 45 50 80 94 100

Jika anda ingin mengubah proses sorting menjadi Descending (dari yang terbesar ke terkecil), caranya ialah mengubah kondisi dalam perintah if dari ">" (lebih besar) menjadi "<" (lebih kecil) untuk Bubble Sort dan sebaliknya untuk Selection Sort

Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H

HALAMAN :
  1. 1
  2. 2
Mohon tunggu...

Lihat Konten Ilmu Alam & Tekno Selengkapnya
Lihat Ilmu Alam & Tekno Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun