Program Algoritma Selection Sort Bahasa C

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.

Program Algoritma Selection Sort 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.

Program Algoritma Selection Sort Bahasa C

Source Code :

#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

Penjelasan :

Berikut penjelasan source algoritma selection sort di bahasa C :

  • baris 1 : mengimport library input output.
  • baris 3 : mendeklarasikan prosedur selection sort dengan tipe int yang menerima masukkan array integer dan nilai jumlah banyaknya angka yang bertipe integer.
  • baris 4: mendeklarasikan variable i, j, posisi dan swap yang bertipe integer.
  • baris 5 : melakukan perulangan i sebanyak n – 1.
  • baris 6 : memasukkan nilai posisi dengan nilai i.
  • baris 7 : melakukan perulangan j dimana j adalah i + 1 dan sampai kurang dari n.
  • baris 8 – 10 : kondisi dimana array pada index dengan nilai variable posisi lebih besar dari array pada index dengan nilai varible j maka nilai posisi dimasukkan dengan nilai j.
  • baris 12 : kondisi dimana nilai posisi tidak sama dengan nilai i.
  • baris 13 : memasukkan nilai swap dengan nilai array pada index ke i.
  • baris 14 : mengganti nilai array pada index ke i dengan nilai array pada index ke posisi.
  • baris 15 : mengganti nilai array pada index ke posisi dengan nilai swap.
  • baris 21 : mendeklarasikan variable array dengan ukuran 100, n, i, dan j yang bertipe integer.
  • baris 23-24: melakukan input nilai dan dimasukkan kedalam variable n.
  • baris 26-29 : melakukan input nilai untuk setiap anggota array.
  • baris 30 : memanggil prosedur selectionSort untuk melakukan pengurutan dengan algoritma selection sort.
  • baris 32-35 : menampilkan hasil pengurutan selection sort.

Compile & Run :

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:

Gambar Program Algoritma Selection Sort di Bahasa C
Gambar Program Algoritma Selection Sort di Bahasa C

Kesimpulan :

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 sorting array [10, 7, 34, 97, 2, 43, 23, 13, 9, 1]

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 🙂

Share Post:

Add a Comment

Your email address will not be published. Required fields are marked *