Latihan Kode Program C++: Mengurutkan Angka dengan Algoritma Selection Sort

Latihan kode program C++ kali ini akan membahas cara mengurutkan angka menggunakan algoritma selection sort. Algoritma sorting banyak dipakai dalam pembahasan materi algoritma dasar di kampus-kampus IT.


Soal Mengurutkan Angka dengan Algoritma Selection Sort

Buatlah kode program C++ untuk mengurutkan angka menggunakan algoritma selection sort. Program meminta 1 nilai input untuk menentukan jumlah angka yang akan diurutkan, kemudian user memasukkan angka tersebut satu per satu. Setelah itu program menampilkan hasil urutan dari nilai terkecil ke terbesar (ascending).

Soal bonus: buat juga dalam bentuk function.

Berikut contoh tampilan akhir yang diinginkan (1):

##  Program C++ Mengurutkan Angka (Selection Sort) ##
=====================================================

Input jumlah element array: 6

Input 6 angka (dipisah dengan enter):
Angka ke-1: 21
Angka ke-2: 90
Angka ke-3: 45
Angka ke-4: 91
Angka ke-5: 38
Angka ke-6: 55

Array setelah diurutkan: 21 38 45 55 90 91

Berikut contoh tampilan akhir yang diinginkan (2):

##  Program C++ Mengurutkan Angka (Selection Sort) ##
=====================================================

Input jumlah element array: 9

Input 9 angka (dipisah dengan enter):
Angka ke-1: 532
Angka ke-2: 654
Angka ke-3: 123
Angka ke-4: 765
Angka ke-5: 111
Angka ke-6: 534
Angka ke-7: 987
Angka ke-8: 345
Angka ke-9: 344

Array setelah diurutkan: 111 123 344 345 532 534 654 765 987

Silahkan coba sebentar membuat kode program ini.


Tips Membuat Kode Program Mengurutkan Angka

Soal ini melatih pemahaman terkait array dan algoritma sorting. Berikut tutorial pendahuluan yang bisa diikuti:

Setiap angka yang akan diurutkan perlu di simpan ke dalam sebuah array. Array inilah yang akan kita proses menggunakan algoritma selection sort.

# Pengertian Algoritma Selection Sort

Selection sort adalah algoritma pengurutan yang bekerja dengan cara memilih element terkecil dalam array, dan menukar posisinya dengan elemen pertama. Proses ini diulangi sebanyak n – 1 kali, dimana n adalah jumlah total element array.

Algoritma selection sort memiliki langkah-langkah sebagai berikut:

  1. Pilih element terkecil dalam array dengan cara membandingkan element satu per satu (menggunakan perulangan).
  2. Tukar posisi element terkecil dengan element pertama.
  3. Ulangi langkah 1 dan 2 untuk elemen-elemen berikutnya.

Ilustrasi cara kerja algoritma selection sort

Kelebihan algoritma selection sort:

  • Algoritma selection sort relatif sederhana dan mudah dipahami.
  • Algoritma selection sort dapat digunakan untuk mengurutkan array dengan berbagai ukuran.

Kekurangan algoritma selection sort:

  • Algoritma selection sort memiliki kompleksitas waktu O(n2), yang artinya waktu eksekusi algoritma akan meningkat secara kuadrat seiring dengan bertambahnya ukuran array.
  • Algoritma selection sort kurang efisien untuk mengurutkan array yang sudah terurut atau hampir terurut.

Secara umum, algoritma selection sort cocok digunakan untuk mengurutkan array kecil atau array yang tidak perlu diurut dengan cepat.


Kode Program C++ Mengurutkan Angka dengan Algoritma Selection Sort

Berikut salah satu solusi dari soal mengurutkan angka array dengan algoritma selection sort menggunakan bahasa pemrograman C++:

#include <iostream>
using namespace std;

int main() {
  cout << "##  Program C++ Mengurutkan Angka (Selection Sort) ##" << endl;
  cout << "=====================================================" << endl;
  cout << endl;

  int i, j, n;

  // Baca angka input dari user
  cout << "Input jumlah element array: ";
  cin >> n;
  cout << endl;

  int arr[n];
  cout <<  "Input "<< n << " angka (dipisah dengan enter): ";
  cout << endl;

  for(i = 0; i < n; i++){
    cout << "Angka ke-" << i+1 <<": ";
    cin >> arr[i];
  }

  // Urutkan array dengan algoritma selection sort
  for (i = 0; i < n - 1; i++) {
    int minIndex = i;
    for (j = i + 1; j < n; j++) {
      if (arr[j] < arr[minIndex]) {
        minIndex = j;
      }
    }
    // Tukar posisi element terkecil dengan element pada indeks i
    int temp = arr[i];
    arr[i] = arr[minIndex];
    arr[minIndex] = temp;
  }

  // Tampilan hasil pengurutan
  cout << endl;
  cout << "Array setelah diurutkan: ";
  for (i = 0; i < n; i++) {
    cout << arr[i] << " ";
  }
  cout << endl;

  return 0;
}

Latihan Kode Program Cpp - Mengurutkan Angka dengan Algoritma Selection Sort

Pada awal kode program di baris 9 terdapat deklarasi 3 variabel: i, j dan n dengan tipe data integer. Variabel i dan j nantinya akan kita pakai di dalam perulangan sebagai variabel counter, sedangkan variabel n dipakai untuk menyimpan jumlah angka.

Lalu di baris 12-13 user diminta untuk menginput jumlah angka yang ingin diurutkan. Angka ini akan disimpan ke dalam variabel n.

Kode program lalu membuat array sejumlah n dengan perintah int arr[n] di baris 16. Perulangan for dipakai untuk membaca setiap data dan disimpan ke dalam variabel arr.

Algoritma selection sort ada di baris 26-37. Algoritma ini bekerja dengan membandingkan element-element array secara berdampingan, lalu menukar posisinya jika element sebelumnya lebih besar dari element sesudahnya.

Algoritma ini diulangi sebanyak n – 1 kali, dengan n adalah jumlah element dalam array. Dalam setiap perulangan, cari nilai terkecil di antara angka-angka array arr yang belum terurut dan tukar posisi angka terkecil tersebut dengan angka pada indeks i.

Hasilnya, variabel arr akan berisi array yang sudah terurut, untuk selanjutnya ditampilkan dengan perulangan for di baris 42-44.


Kode Program C++ Algoritma Selection Sort dengan Function

Sebagai bonus latihan, kita bisa membuat function terpisah untuk algoritma selection sort. Berikut modifikasi dari kode program sebelumnya:

#include <iostream>
using namespace std;

// Buat function dengan algoritma selection sort
void selectionSort(int arr[], int n) {
  for (int i = 0; i < n - 1; i++) {
    int minIndex = i;
    for (int j = i + 1; j < n; j++) {
      if (arr[j] < arr[minIndex]) {
        minIndex = j;
      }
    }
    // Tukar posisi element terkecil dengan element pada indeks i
    int temp = arr[i];
    arr[i] = arr[minIndex];
    arr[minIndex] = temp;
  }
}

int main() {
  cout << "##  Program C++ Mengurutkan Angka (Selection Sort) ##" << endl;
  cout << "=====================================================" << endl;
  cout << endl;

  int i, n;

  // Baca angka input dari user
  cout << "Input jumlah element array: ";
  cin >> n;
  cout << endl;

  int arr[n];
  cout <<  "Input "<< n << " angka (dipisah dengan enter): ";
  cout << endl;

  for(i = 0; i < n; i++){
    cout << "Angka ke-" << i+1 <<": ";
    cin >> arr[i];
  }

  // Urutkan array dengan algoritma selection sort
  selectionSort(arr, n);

  // Tampilan hasil pengurutan
  cout << endl;
  cout << "Array setelah diurutkan: ";
  for (i = 0; i < n; i++) {
    cout << arr[i] << " ";
  }
  cout << endl;

  return 0;
}

Sekarang di baris 5-16 terdapat pendefinisian function selectionSort(). Function ini memiliki 2 parameter arr[] dan n yang dipakai untuk menampung array asal dan jumlah element array yang akan diurutkan.

Kode yang diperlukan kurang lebih sama seperti versi sebelumnya.

Pemanggilan function ini dilakukan di baris 40 dengan perintah selectionSort(arr, n). Hasilnya, isi variabel arr akan langsung terurut.


Itulah bahasan kita tentang implementasi algoritma sorting selection sort dalam bahasa pemrograman C++. Untuk lebih memahami cara kerjanya, silahkan ambil kertas lalu buat tabel dan tulis apa saja isi variabel arr, i dan n dalam setiap iterasi.

Untuk algoritma sorting lain seperti bubble sort dan insertion sort akan kita bahas di tutorial terpisah. Semoga bisa bermanfaat.

Add Comment