Program Algoritma Selection Sort Bahasa C – Hallo sobat kopi coding, pada postingan ini kita akan mempelajari cara membuat program algoritma selection sort di bahasa C.
Selection Sort merupakan salah satu algoritma pengurutan yang pengunaannya sangat efisien dan sederhana, dimana melakukan pencarian index dengan isi nilai terkecil setelah itu ditukar dengan isi index yang lebih besar dari index dengan nilai terkecil itu, selanjutnya index terkecil kedua akan disimpan pada variable tmp (sementara) lalu ditukar dengan index kedua dan berulang terus sampai semua selesai terurut. Untuk mengetahui proses pengurutan ada dibagian kesimpulan.
Pada contoh selection sort kali ini kita mencoba untuk mengurutkan 10 bilangan yang secara acak, dengan angka yang akan diurutkan sebagai berikut: 10, 7, 34, 97, 2, 43, 23, 13, 9, 1. Langsung aja yuk kita lihat source code algoritma selection sort di bahasa C.
#include <stdio.h> int selectionSort(int arr[], int n){ int i, j, posisi, swap; for(i = 0; i < (n-1); i++){ posisi = i; for (j = i + 1; j < n; j++){ if(arr[posisi] > arr[j]){ posisi = j; } } if(posisi != i){ swap = arr[i]; arr[i] = arr[posisi]; arr[posisi] = swap; } } } int main(){ int array[100], n, i, j; printf("Masukkan banyaknya jumlah data: "); scanf("%d", &n); printf("Masukkan data sebanyak %d :\n", n); for(i = 0; i < n; i++){ scanf("%d", &array[i]); } selectionSort(array, n); printf("Hasil pengurutan sebagai berikut:\n"); for(i = 0; i < n; i++){ printf("%d ", array[i]); } printf("\n"); }
Simpan source code dengan nama file selectionsort.c, tetapi sesuaikan aja dengan nama file yang dinginkan dan jangan lupa harus berektensi .c
Berikut penjelasan source algoritma selection sort di bahasa C :
Berikut cara melakukan compile dan run source code bahasa C secara manual:
$ gcc -o selectionsort selectionsort.c
$ ./selectionsort
berikut hasil screenshot dari compile dan run source codenya:
Dari hasil program, source code algoritma selection sort tersebut berhasil dapat dijalankan tanpa ada error dan menampilkan hasil pengurutan yang sesuai. berikut ada langkah-langkah proses pengurutan yang dilakukan program:
Proses ke 1 : [10 7 34 97 2 43 23 13 9 1]
membandingkan 10 > 7 : tukar index
membandingkan 7 = 7 : index tetap
membandingkan 7 < 34 : index tetap
membandingkan 7 < 97 : index tetap
membandingkan 7 > 2 : tukar index
membandingkan 2 = 2 : index tetap
membandingkan 2 < 43 : index tetap
membandingkan 2 < 23 : index tetap
membandingkan 2 < 13 : index tetap
membandingkan 2 < 9 : index tetap
membandingkan 2 > 1 : tukar index
membandingkan 1 = 1 : index tetap
Hasil Proses Penukaran ke 1 [1 7 34 97 2 43 23 13 9 10]
Proses ke 2 [1 7 34 97 2 43 23 13 9 10]
membandingkan 7 < 34 : index tetap
membandingkan 7 < 97 : index tetap
membandingkan 7 > 2 : tukar index
membandingkan 2 = 2 : index tetap
membandingkan 2 < 43 : index tetap
membandingkan 2 < 23 : index tetap
membandingkan 2 < 13 : index tetap
membandingkan 2 < 9 : index tetap
membandingkan 2 < 10 : index tetap
Hasil Proses Penukaran ke 2 [1 2 34 97 7 43 23 13 9 10]
Proses ke 3 [1 2 34 97 7 43 23 13 9 10]
membandingkan 34 < 97 : index tetap
membandingkan 34 > 7 : tukar index
membandingkan 7 = 7 : index tetap
membandingkan 7 < 43 : index tetap
membandingkan 7 < 23 : index tetap
membandingkan 7 < 13 : index tetap
membandingkan 7 < 9 : index tetap
membandingkan 7 < 10 : index tetap
Hasil Proses Penukaran ke 3 [1 2 7 97 34 43 23 13 9 10]
Proses ke 4 [1 2 7 97 34 43 23 13 9 10]
membandingkan 97 > 34 : tukar index
membandingkan 34 = 34 : index tetap
membandingkan 34 < 43 : index tetap
membandingkan 34 > 23 : tukar index
membandingkan 23 = 23 : index tetap
membandingkan 23 > 13 : tukar index
membandingkan 13 = 13 : index tetap
membandingkan 13 > 9 : tukar index
membandingkan 9 = 9 : index tetap
membandingkan 9 < 10 : index tetap
Hasil Proses Penukaran ke 4 [1 2 7 9 34 43 23 13 97 10]
Proses ke 5 [1 2 7 9 34 43 23 13 97 10]
membandingkan 34 < 43 : index tetap
membandingkan 34 > 23 : tukar index
membandingkan 23 = 23 : index tetap
membandingkan 23 > 13 : tukar index
membandingkan 13 = 13 : index tetap
membandingkan 13 < 97 : index tetap
membandingkan 13 > 10 : tukar index
membandingkan 10 = 10 : index tetap
Hasil Proses Penukaran ke 5 [1 2 7 9 10 43 23 13 97 34]
Proses ke 6 [1 2 7 9 10 43 23 13 97 34]
membandingkan 43 > 23 : tukar index
membandingkan 23 = 23 : index tetap
membandingkan 23 > 13 : tukar index
membandingkan 13 = 13 : index tetap
membandingkan 13 < 97 : index tetap
membandingkan 13 < 34 : index tetap
Hasil Proses Penukaran ke 6 [1 2 7 9 10 13 23 43 97 34]
Proses ke 7 [1 2 7 9 10 13 23 43 97 34]
membandingkan 23 < 43 : index tetap
membandingkan 23 < 97 : index tetap
membandingkan 23 < 34 : index tetap
Hasil Proses Penukaran ke 7 [1 2 7 9 10 13 23 43 97 34]
Proses ke 8 [1 2 7 9 10 13 23 43 97 34]
membandingkan 43 < 97 : index tetap
membandingkan 43 > 34 : tukar index
membandingkan 34 = 34 : index tetap
Hasil Proses Penukaran ke 8 [1 2 7 9 10 13 23 34 97 43]
Proses ke 9 [1 2 7 9 10 13 23 34 97 43]
membandingkan 97 > 43 : tukar index
membandingkan 43 = 43 : index tetap
Hasil Proses Penukaran ke 9 [1 2 7 9 10 13 23 34 43 97]
Dari analisa proses pengurutan diatas terdapat 9 kali proses dan setiap proses melakukan perbandingan yang berbeda-beda sesuai isi indexnya dan berurutan tanpa mengulang dari awal indexnya. Pada saat putaran ke 9 pengurutan dengan 10 isi element array sudah selesai.
Sekian tutorial cara membuat program algoritma selection sort di bahasa pemograman C, semoga bermanfaat..
Happy Coding 🙂