Insertion Sort Di Golang – Hallo sobat kopi coding, pada postingan ini kita akan mempelajari membuat program algoritma insertion sort di bahasa pemograman Go Language. Sebelumnya, komputer kita harus terinstall dengan bahasa Golang, untuk tutorial instalasi golang ada di postingan :
Insertion Sort merupakan salah satu algoritma pengurutan yang dimana melakukan perbandingkan elemen array dengan elemen array dengan memiliki nilai tertinggi dalam array. Jika elemen array pembanding memiliki nilai lebih tinggi, maka elemen array tersebut akan tukar posisi dengan elemen array yang memiliki nilai lebih rendah dan elemen array yang memiliki nilai lebih rendah akan menjadi elemen pembanding sampai posisi yang tepat ditemukan. Untuk mengetahui proses pengurutan ada dibagian kesimpulan.
Pada contoh insertion sort kali ini kita mencoba untuk mengurutkan 10 bilangan yang secara acak, dengan angka yang akan diurutkan sebagai berikut: 6, 9, 21, 14, 3, 52, 107, 99, 5, 1. Langsung aja yuk kita lihat source code algoritma insertion sort di Golang..
package main import "fmt" func insertionSort(arr []int) { for i := 0; i < len(arr); i++ { tmp := arr[i] j := i for j > 0 && arr[j-1] > tmp { arr[j] = arr[j-1] j-- } arr[j] = tmp } } func main() { arr := []int{6, 9, 21, 14, 3, 52, 107, 99, 5, 1} fmt.Print("Isi Element Array: ", arr, "\n", "Hasil Pengurutan: [ ") insertionSort(arr) for i := 0; i < len(arr); i++ { fmt.Print(arr[i], " ") } fmt.Print("]\n") }
Simpan source code dengan nama file insertionsort.go, tetapi sesuaikan aja dengan nama file yang dinginkan dan jangan lupa harus berektensi .go
Penjelasan source algoritma insertion sort di Golang setiap barisnya :
Untuk cara melakukan compile dan run source codenya sebagai berikut:
$ go build insertionsort.go
$ ./insertionsort
berikut hasil screenshot dari compile dan run source codenya:
Dari hasil program, source code algoritma insertion sort tersebut berhasil dapat dijalankan tanpa ada error dan menampilkan hasil pengurutan yang sesuai. berikut ada langkah-langkah proses pengurutan yang dilakukan program:
Putaran ke- 1 [6 9 21 14 3 52 107 99 5 1]
elemen pembanding: 6
Hasil Pemindahan: [6 9 21 14 3 52 107 99 5 1]
Putaran ke- 2 [6 9 21 14 3 52 107 99 5 1]
elemen pembanding: 9
Hasil Pemindahan: [6 9 21 14 3 52 107 99 5 1]
Putaran ke- 3 [6 9 21 14 3 52 107 99 5 1]
elemen pembanding: 21
Hasil Pemindahan: [6 9 21 14 3 52 107 99 5 1]
Putaran ke- 4 [6 9 21 14 3 52 107 99 5 1]
elemen pembanding: 14
Proses perbandingan: 21 dengan 14 : tukar posisi
Hasil Pemindahan: [6 9 14 21 3 52 107 99 5 1]
Putaran ke- 5 [6 9 14 21 3 52 107 99 5 1]
elemen pembanding: 3
Proses perbandingan: 21 dengan 3 : tukar posisi
Proses perbandingan: 14 dengan 3 : tukar posisi
Proses perbandingan: 9 dengan 3 : tukar posisi
Proses perbandingan: 6 dengan 3 : tukar posisi
Hasil Pemindahan: [3 6 9 14 21 52 107 99 5 1]
Putaran ke- 6 [3 6 9 14 21 52 107 99 5 1]
elemen pembanding: 52
Hasil Pemindahan: [3 6 9 14 21 52 107 99 5 1]
Putaran ke- 7 [3 6 9 14 21 52 107 99 5 1]
elemen pembanding: 107
Hasil Pemindahan: [3 6 9 14 21 52 107 99 5 1]
Putaran ke- 8 [3 6 9 14 21 52 107 99 5 1]
elemen pembanding: 99
Proses perbandingan: 107 dengan 99 : tukar posisi
Hasil Pemindahan: [3 6 9 14 21 52 99 107 5 1]
Putaran ke- 9 [3 6 9 14 21 52 99 107 5 1]
elemen pembanding: 5
Proses perbandingan: 107 dengan 5 : tukar posisi
Proses perbandingan: 99 dengan 5 : tukar posisi
Proses perbandingan: 52 dengan 5 : tukar posisi
Proses perbandingan: 21 dengan 5 : tukar posisi
Proses perbandingan: 14 dengan 5 : tukar posisi
Proses perbandingan: 9 dengan 5 : tukar posisi
Proses perbandingan: 6 dengan 5 : tukar posisi
Hasil Pemindahan: [3 5 6 9 14 21 52 99 107 1]
Putaran ke- 10 [3 5 6 9 14 21 52 99 107 1]
elemen pembanding: 1
Proses perbandingan: 107 dengan 1 : tukar posisi
Proses perbandingan: 99 dengan 1 : tukar posisi
Proses perbandingan: 52 dengan 1 : tukar posisi
Proses perbandingan: 21 dengan 1 : tukar posisi
Proses perbandingan: 14 dengan 1 : tukar posisi
Proses perbandingan: 9 dengan 1 : tukar posisi
Proses perbandingan: 6 dengan 1 : tukar posisi
Proses perbandingan: 5 dengan 1 : tukar posisi
Proses perbandingan: 3 dengan 1 : tukar posisi
Hasil Pemindahan: [1 3 5 6 9 14 21 52 99 107]
Dari analisa proses pengurutan diatas terdapat 10 kali putaran dan setiap putaran melakukan satu per satu perbandingan dari elemen kiri index array sampai kanan index array dengan tentangga kiri index dan berurutan tanpa mengulang dari awal sebelah kiri indexnya.
Sekian tutorial cara membuat program algoritma insertion sort di bahasa pemograman Go Language, semoga bermanfaat 🙂