Advertisements
latihan C++

Latihan C++ #43: Membuat Selection Sort

Anak Males – Artikel ini akan memberikan cara untuk membuat sebuah program dengan bahasa C++ yang mengaplikasikan pengurutan Selection sort.

Siapapun yang pernah belajar pemrograman pasti pernah mendengar tentang algoritma pengurutan. Salah satu metode pengurutan yang paling sederhana adalah selection sort.

Dalam artikel ini, kami akan memberikan panduan lengkap tentang bagaimana membuat program dengan bahasa C++ yang mengaplikasikan pengurutan Selection sort.

Kami akan menjelaskan mekanisme dari algoritma ini, serta memberikan contoh implementasinya yang mudah dipahami.

Meskipun efisiensi selection sort lebih rendah dibandingkan algoritma lain seperti quicksort atau mergesort, namun ia masih sering digunakan dalam situasi tertentu karena kemudahannya dalam implementasi dan pemahaman.

Jadi, mari kita mulai belajar tentang bagaimana mengurutkan data dengan selection sort.

Baca : Latihan C++ #23 : Program C++ Pembalik Angka Rekursif

Algoritma c++ Selection Sort

Selection sort adalah algoritma pengurutan yang digunakan untuk mengurutkan data dari yang terkecil ke yang terbesar atau sebaliknya. Algoritma ini bekerja dengan cara mencari nilai terkecil dari data yang belum diurutkan, kemudian menempatkannya pada posisi pertama dari data yang sudah diurutkan. Proses ini dilakukan berulang-ulang hingga semua data terurut.

Langkah-langkah dari Selection sort adalah:

  • Pertama-tama, tentukan posisi elemen pertama sebagai elemen terkecil.
  • Kemudian bandingkan elemen terkecil dengan elemen-elemen lainnya yang ada di data.
  • Jika ditemukan elemen yang lebih kecil dari elemen terkecil yang sudah ditentukan, maka ganti elemen terkecil dengan elemen yang lebih kecil tersebut.
  • Setelah itu, tukar posisi elemen terkecil dengan elemen pertama.
  • Kemudian lanjutkan dengan mengulangi proses dari langkah 2 sampai 4 untuk sub-data yang belum diurutkan.
  • Ulangi proses ini sampai seluruh data terurut.

Selection sort merupakan algoritma yang sederhana dan mudah dipahami, namun memiliki efisiensi yang rendah dibandingkan dengan algoritma pengurutan lainnya seperti quicksort atau mergesort.

Namun, ia masih sering digunakan dalam situasi-situasi tertentu karena kemudahannya dalam implementasi dan pemahaman.

Baca : Latihan C++ #27 : Program C++ Mencari Nilai Rata Rata

Kelebihan c++ Selection Sort

Ada beberapa kelebihan dari algoritma pengurutan Selection Sort:

  • Sederhana dan mudah dipahami: Algoritma ini sangat sederhana dan mudah dipahami, karena hanya melibatkan proses pembandingan dan pertukaran data yang relatif sederhana.
  • Dapat digunakan untuk data dari berbagai jenis: Algoritma ini dapat digunakan untuk mengurutkan data dari berbagai jenis, seperti data numerik, data alfabet, dan data kustom.
  • Dapat digunakan dalam situasi-situasi tertentu: Selection sort dapat digunakan dalam situasi-situasi tertentu, misalnya ketika data yang akan diurutkan hanya memiliki jumlah elemen yang sangat kecil.
  • Stabil: Selection sort merupakan algoritma pengurutan yang stabil, yang berarti tidak akan mengubah urutan dari elemen yang memiliki nilai yang sama.
  • In-place: Selection sort adalah sebuah algoritma yang mengurutkan data tanpa memerlukan memori ekstra.

Baca : Latihan C++ #30 : Program C++ Mencari Nilai Mahasiswa

Kekurangan c++ Selection Sort

Beberapa kekurangan dari algoritma pengurutan Selection Sort adalah:

  • Efisiensi yang rendah: Algoritma ini memiliki efisiensi yang rendah dibandingkan dengan algoritma pengurutan lainnya, seperti quicksort atau mergesort.
  • Memerlukan banyak operasi pertukaran: Selection sort memerlukan banyak operasi pertukaran untuk mengurutkan data, yang dapat menyebabkan overhead pada sistem.
  • Memerlukan waktu yang cukup lama untuk mengurutkan data dengan jumlah elemen yang besar.
  • Memerlukan banyak operasi pembandingan: Selection sort memerlukan banyak operasi pembandingan untuk mengurutkan data, yang dapat menyebabkan overhead pada sistem.
  • Tidak cocok untuk data yang sudah hampir terurut.

Itu adalah beberapa kekurangan dari algoritma Selection Sort. Namun, ia masih sering digunakan dalam situasi-situasi tertentu karena kemudahannya dalam implementasi dan pemahaman.

Baca : Latihan C++ #42: Membuat Insertion Sort

Program C++ Membuat Selection Sort

Berikut ini adalah contoh program C++ untuk mengurutkan data menggunakan algoritma Selection Sort :

#include <iostream>
using namespace std;

void selectionSort(int arr[], int n) {
    int i, j, minIndex, temp;
    for (i = 0; i < n-1; i++) {
        minIndex = i;
        for (j = i+1; j < n; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j;
            }
        }
        temp = arr[minIndex];
        arr[minIndex] = arr[i];
        arr[i] = temp;
    }
}

int main() {
    int n, i;
    cout << "Masukkan jumlah elemen: ";
    cin >> n;
    int arr[n];
    cout << "Masukkan elemen: ";
    for (i = 0; i < n; i++) {
        cin >> arr[i];
    }
    selectionSort(arr, n);
    cout << "Data setelah diurutkan: ";
    for (i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    return 0;
}

Berikut ini adalah penjelasan satu per satu dari kode program Selection Sort di C++:

#include <iostream>
using namespace std;

Pada baris ini, program menyertakan library iostream dan menggunakan namespace std. Library iostream digunakan untuk memungkinkan program untuk melakukan operasi input-output, seperti menampilkan output dan menerima input dari user.

void selectionSort(int arr[], int n) {
    int i, j, minIndex, temp;

Pada baris ini, program mendeklarasikan fungsi selectionSort yang menerima 2 parameter, yaitu array yang akan diurutkan dan jumlah elemen dari array tersebut. Fungsi ini tidak mengembalikan nilai apapun (void).

Dalam fungsi terdapat 4 variabel yang digunakan yaitu i, j, minIndex, dan temp. Variabel i dan j digunakan untuk perulangan, minIndex digunakan untuk menyimpan index elemen terkecil, dan temp digunakan untuk menyimpan sementara nilai elemen saat melakukan pertukaran.

Baca : Latihan C++ #28 : Program C++ Piramida Bintang

    for (i = 0; i < n-1; i++) {
        minIndex = i;

Pada baris ini, program menjalankan perulangan dengan mengisi variabel i dengan 0, dan perulangan dilakukan sebanyak n-1 kali. Pada setiap iterasi, minIndex diinisialisasikan dengan i.

        for (j = i+1; j < n; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j;
            }
        }

Pada baris ini, program menjalankan perulangan lagi dengan mengisi variabel j dengan i+1, dan perulangan dilakukan sebanyak n kali.

Pada setiap iterasi, program membandingkan elemen pada index j dengan elemen pada index minIndex. Jika elemen pada index j lebih kecil dari elemen pada index minIndex, maka minIndex diisi dengan j.

        temp = arr[minIndex];
        arr[minIndex] = arr[i];
        arr[i] = temp;
    }
}

Pada baris ini, program melakukan pertukaran elemen pada index minIndex dengan elemen pada index i. Elemen pada index minIndex disimpan dahulu ke dalam variabel temp, kemudian elemen pada index i disimpan ke dalam index minIndex dan elemen dari variabel temp disimpan ke dalam index i.

int main() {
    int n, i
    cout << "Masukkan jumlah elemen: ";
    cin >> n;

Pada baris ini, program menampilkan pesan “Masukkan jumlah elemen: ” ke layar dan menerima input dari user dan menyimpannya ke dalam variabel n.

    int arr[n];
    cout << "Masukkan elemen: ";
    for (i = 0; i < n; i++) {
        cin >> arr[i];
    }

Pada baris ini, program mendeklarasikan array dengan jumlah elemen sesuai dengan input dari user. Kemudian, program menampilkan pesan “Masukkan elemen: ” ke layar dan mengisi array dengan input dari user melalui perulangan.

    selectionSort(arr, n);

Pada baris ini, program menjalankan fungsi selectionSort yang sudah dideklarasikan sebelumnya dengan mengirimkan array dan jumlah elemen sebagai parameter.

    cout << "Data setelah diurutkan: ";
    for (i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }

Pada baris ini, program menampilkan pesan “Data setelah diurutkan: ” ke layar dan menampilkan elemen-elemen dari array yang sudah diurutkan melalui perulangan.

    return 0;
}

Pada baris ini, program mengembalikan nilai 0 yang menandakan bahwa program berjalan dengan baik.

Baca : Latihan C++ #22 : Program C++ Konvert Huruf Kapital

Output Program C++ Membuat Selection Sort

Contoh output dari program Selection Sort di C++ yang menerima inputan dari user akan terlihat seperti ini:

Masukkan jumlah elemen: 5
Masukkan elemen: 3 2 1 4 5
Data setelah diurutkan: 1 2 3 4 5

Dalam contoh diatas, user memasukkan jumlah elemen sebanyak 5 dan elemen-elemen 3, 2, 1, 4, 5. Program kemudian mengurutkan elemen-elemen tersebut menjadi 1, 2, 3, 4, 5 dan menampilkan hasilnya.

Penutup

Program yang telah ditunjukkan diatas memberikan contoh bagaimana algoritma Selection Sort diterapkan dalam bahasa C++ dengan inputan dari user.

Dengan mengerti dan dapat mengimplementasikan algoritma pengurutan Selection Sort, diharapkan dapat membantu dalam menyelesaikan masalah pengurutan data.

Sekian untuk tutorial C++ kali ini, sampai jumpa di tutorial C++ lainnya.

You may also like...

Popular Posts

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *