Algoritma Selection Sort Di Golang
|Algoritma Selection Sort Di Golang – Hallo sobat kopi coding, pada postingan ini kita akan mempelajari membuat program algoritma selection sort di bahasa pemograman Go Language. Sebelumnya, komputer kita harus terinstall dengan bahasa Golang, untuk tutorial instalasi golang ada di postingan :

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 ditukara 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 Golang. .
Algoritma Selection Sort Di Golang
Source Code :
package main import "fmt" func selectionSort(arr []int) { for i := 0; i < len(arr)-1; i++ { minIndex := i for j := i + 1; j < len(arr); j++ { if arr[minIndex] > arr[j] { minIndex = j } } tmp := arr[i] arr[i] = arr[minIndex] arr[minIndex] = tmp } } func main() { arr := []int{10, 7, 34, 97, 2, 43, 23, 13, 9, 1} selectionSort(arr) for i := 0; i < len(arr); i++ { fmt.Print(arr[i], " ") } fmt.Print("\n") }
Simpan source code dengan nama file selectionsort.go, tetapi sesuaikan aja dengan nama file yang dinginkan dan jangan lupa harus berektensi .go
Penjelasan :
Penjelasan source algoritma selection sort di Golang setiap barisnya :
- baris 1 : mendeklarasikan file dalam package main
- baris 3 : mengimport library fmt untuk formatting
- baris 5 : membuat fungsi selectionSort yang menerima sebuah variable array
- baris 7 : melakukan perulangan i sebanyak isi element arrray variable arr – 1.
- baris 8 : mendeklarasikan variable minIndex dengan diisikan variable i.
- baris 9 : melakukan perulangan j sebanyak isi element arrray variable arr.
- baris 10 : melakukan pengecekan jika isi element array ke minIndex lebih besar dari isi element array ke j.
- baris 11 : maka minIndex diisikan dengan variable j.
- baris 12 : simbol tutup kurung kurawal dari pengecekan.
- baris 13 : simbol tutup kurung kurawal dari perulangan j.
- baris 14 : mendeklarasikan variable tmp diisikan dengan isi element array ke i.
- baris 15 : isi element array dari variable arr ke i diisikan dengan isi element array dari variable arr ke minIndex.
- baris 16 : dan isi element array dari variable arr index ke minIndex diisikan dengan isi variable tmp.
- baris 17 : simbol tutup kurung kurawal dari perulangan i
- baris 18 : simbol tutup kurung kurawal dari fungsi selectionSort
- baris 20 : membuat fungsi main
- baris 21 : mendeklarasikan variable arr berupa tipe data array integer yang memiliki element array [10, 7, 34, 97, 2, 43, 23, 13, 9, 1].
- baris 22 : memanggil fungsi selectionSort dengan menginputkan variable arr.
- baris 23 : melakukan perulangan sebanyak jumlah element array dari variable arr.
- baris 24 : akan menampilkan output dari isi element array dari variable arr.
- baris 25 : simbol tutup kurung kurawal dari perulangan
- baris 26 : menampilkan output baris baru.
- baris 27 : simbol tutup kurung kurawal dari fungsi main.
Compile & Run :
Untuk cara melakukan compile dan run source codenya sebagai berikut:
$ go build selectionsort.go
$ ./selectionsort
berikut hasil screenshot dari compile dan run source codenya:

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 Go Language, semoga bermanfaat 🙂