Insertion Sort Di Golang

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 :

Instalasi Golang di Ubuntu

Insertion Sort Di Golang

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..

Insertion Sort Di Golang

Source Code :

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 :

Penjelasan source algoritma insertion sort di Golang setiap barisnya :

  • baris 1 : mendeklarasikan file dalam package main
  • baris 3 : mengimport library fmt untuk formatting
  • baris 5 : membuat fungsi insertionSort yang menerima sebuah variable array
  • baris 7 : melakukan perulangan i sebanyak isi element arrray variable arr.
  • baris 8 – 9 : mendeklarasikan variable tmp dengan diisikan element array variable arr ke i dan variable j diisikan nilai dari variable i. Fungsinya untuk menyimpan sebuah isi element array yang disisi sebelah kiri yang akan dipergunakan untuk memeriksa posisi yang tepat.
  • baris 10 : melakukan perulangan dengan kondisi apakah element array disisi sebelah kiri lebih besar atau lebih kecil daripada element array posisi pembanding.
  • baris 11 – 12 : melakukan penggeseran element array disisi kiri sebanyak satu kali.
  • baris 14 : memindahkan posisi element array ke posisi yang tepat.
  • baris 18 : membuat fungsi main
  • baris 19 : mendeklarasikan variable arr berupa tipe data array integer yang memiliki element array [6, 9, 21, 14, 3, 52, 107, 99, 5, 1].
  • baris 20 : menampilkan isi element array.
  • baris 21 : memanggil fungsi insertionSort dengan menginputkan variable arr.
  • baris 22 : melakukan perulangan sebanyak jumlah element array dari variable arr.
  • baris 23 : akan menampilkan output dari isi element array dari variable arr.
  • baris 25 : menampilkan output baris baru.

Compile & Run :

Untuk cara melakukan compile dan run source codenya sebagai berikut:

$ go build insertionsort.go

$ ./insertionsort

berikut hasil screenshot dari compile dan run source codenya:

Gambar Program Algoritma Insertion Sort di Golang

Kesimpulan :

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:

Proses sorting array [10, 7, 34, 97, 2, 43, 23, 13, 9, 1]

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 🙂

Artikel Algoritma Pengurutan Golang Lainnya:

Algoritma Bubble Sort Di Golang

Algoritma Selection Sort Di Golang

Share Post:
Ari Bambang Kurniawan

Media belajar Bahasa Pemograman Indonesia yang gratis dan lengkap dengan konten yang mudah dipahami. "Everybody in this country should learn to program a computer, because it teaches you how to think" - Steve Jobs