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:
- Pilih element terkecil dalam array dengan cara membandingkan element satu per satu (menggunakan perulangan).
- Tukar posisi element terkecil dengan element pertama.
- Ulangi langkah 1 dan 2 untuk elemen-elemen berikutnya.
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; }
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.