Algoritma Bubble Sort Di Golang

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

Instalasi Golang di Ubuntu

Algoritma Bubble Sort Di Golang
Algoritma Bubble Sort Di Golang

Bubble Sort adalah salah satu algoritma pengurutan dimana melakukan penukaran data dengan sebelahnya secara berulang-ulang sampai semua terurut dengan benar. Untuk mengetahui proses pengurutan ada dibagian kesimpulan.

Langsung aja yuk kita lihat source code algoritma bubble sort di Golang..

Algoritma Bubble Sort Di Golang

Source Code :

package main

import "fmt"

func bubleSort(arr []int) {

  for {
    disortir := true

    for i := 0; i < len(arr)-1; i++ {
      if arr[i] > arr[i+1] {
        tmp := arr[i]
        arr[i] = arr[i+1]
        arr[i+1] = tmp
        disortir = false
      }
    }
    if disortir == true {
      break
    }
  }
}

func main() {
  arr := []int{10, 50, 20, 30, 15, 25, 12, 40, 45, 1}
  bubleSort(arr)
  for i := 0; i < len(arr); i++ {
    fmt.Print(arr[i], " ")
  }
  fmt.Print("\n")
}

Simpan source code dengan nama file bubblesort.go, tetapi sesuaikan aja dengan nama file yang dinginkan dan jangan lupa harus berektensi .go

Penjelasan :

Penjelasan source algoritma bubble sort di Golang setiap barisnya :

  • baris 1 : mendeklarasikan file dalam package main
  • baris 3 : mengimport library fmt
  • baris 5 : membuat fungsi bubbleSort yang menerima sebuah variable array
  • baris 7 : melakukan perulangan
  • baris 8 : mendeklarasi variable disortir dengan tipe data boolean yang berisi nilai true.
  • baris 10 : melakukan perulangan sebanyak isi element arrray
  • baris 11 : melakukan pengecekan jika element array ke i lebih besar dari element array ke i+1.
  • baris 12 : mendeklarasikan variable tmp diisikan dengan element array ke i.
  • baris 13 : element array ke i diganti isinya dengan element array ke i+1.
  • baris 14 : dan element array ke i+1 diganti isinya dengan nilai variable tmp.
  • baris 15 : variable disortir diisikan nilai false.
  • baris 16 : simbol tutup kurung kurawal dari pengecekan
  • baris 17 : simbol tutup kurung kurawal dari perulangan
  • baris 18 : melakukan pengecekan jika variable disortir sama dengan true
  • baris 19 : maka perulangan akan diberhentikan.
  • baris 20 : simbol tutup kurung kurawal dari pengecekan
  • baris 21 : simbol tutup kurung kurawal dari perulangan
  • baris 22 : simbol tutup kurung kurawal dari fungsi bubbleSort
  • baris 24 : membuat fungsi main
  • baris 25 : mendeklarasikan variable arr berupa tipe data array integer yang memiliki element array [10 50 20 30 15 25 12 40 45 1].
  • baris 26 : memanggil fungsi bubbleSort dengan nginput variable arr.
  • baris 27 : melakukan perulangan sebanyak jumlah element array dari variable arr.
  • baris 28 : akan menampilkan output dari isi element array dari variable arr.
  • baris 29 : simbol tutup kurung kurawal dari perulangan
  • baris 30 : menampilkan output baris baru.
  • baris 31 : simbol tutup kurung kurawal dari fungsi main

Compile & Run :

Untuk cara melakukan compile dan run source codenya sebagai berikut:

$ go build bubblesort.go

$ ./bubblesort

berikut hasil screenshot dari compile dan run source codenya:

Gambar Program Algoritma Bubble Sort di Golang
Gambar Program Algoritma Bubble Sort di Golang

Kesimpulan :

Dari hasil program, source code algoritma bubble 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, 50, 20, 30, 15, 25, 12, 40, 45, 1]

Putaran ke 1 : [10 50 20 30 15 25 12 40 45 1]
Proses ke 1 [10 50 20 30 15 25 12 40 45 1]
Proses ke 2 [10 20 50 30 15 25 12 40 45 1]
Proses ke 3 [10 20 30 50 15 25 12 40 45 1]
Proses ke 4 [10 20 30 15 50 25 12 40 45 1]
Proses ke 5 [10 20 30 15 25 50 12 40 45 1]
Proses ke 6 [10 20 30 15 25 12 50 40 45 1]
Proses ke 7 [10 20 30 15 25 12 40 50 45 1]
Proses ke 8 [10 20 30 15 25 12 40 45 50 1]
Proses ke 9 [10 20 30 15 25 12 40 45 1 50]

Putaran ke 2 : [10 20 30 15 25 12 40 45 1 50]
Proses ke 1 [10 20 30 15 25 12 40 45 1 50]
Proses ke 2 [10 20 30 15 25 12 40 45 1 50]
Proses ke 3 [10 20 15 30 25 12 40 45 1 50]
Proses ke 4 [10 20 15 25 30 12 40 45 1 50]
Proses ke 5 [10 20 15 25 12 30 40 45 1 50]
Proses ke 6 [10 20 15 25 12 30 40 45 1 50]
Proses ke 7 [10 20 15 25 12 30 40 45 1 50]
Proses ke 8 [10 20 15 25 12 30 40 1 45 50]
Proses ke 9 [10 20 15 25 12 30 40 1 45 50]

Putaran ke 3 : [10 20 15 25 12 30 40 1 45 50]
Proses ke 1 [10 20 15 25 12 30 40 1 45 50]
Proses ke 2 [10 15 20 25 12 30 40 1 45 50]
Proses ke 3 [10 15 20 25 12 30 40 1 45 50]
Proses ke 4 [10 15 20 12 25 30 40 1 45 50]
Proses ke 5 [10 15 20 12 25 30 40 1 45 50]
Proses ke 6 [10 15 20 12 25 30 40 1 45 50]
Proses ke 7 [10 15 20 12 25 30 1 40 45 50]
Proses ke 8 [10 15 20 12 25 30 1 40 45 50]
Proses ke 9 [10 15 20 12 25 30 1 40 45 50]


Putaran ke 4 : [10 15 20 12 25 30 1 40 45 50]
Proses ke 1 [10 15 20 12 25 30 1 40 45 50]
Proses ke 2 [10 15 20 12 25 30 1 40 45 50]
Proses ke 3 [10 15 12 20 25 30 1 40 45 50]
Proses ke 4 [10 15 12 20 25 30 1 40 45 50]
Proses ke 5 [10 15 12 20 25 30 1 40 45 50]
Proses ke 6 [10 15 12 20 25 1 30 40 45 50]
Proses ke 7 [10 15 12 20 25 1 30 40 45 50]
Proses ke 8 [10 15 12 20 25 1 30 40 45 50]
Proses ke 9 [10 15 12 20 25 1 30 40 45 50]


Putaran ke 5 : [10 15 12 20 25 1 30 40 45 50]
Proses ke 1 [10 15 12 20 25 1 30 40 45 50]
Proses ke 2 [10 12 15 20 25 1 30 40 45 50]
Proses ke 3 [10 12 15 20 25 1 30 40 45 50]
Proses ke 4 [10 12 15 20 25 1 30 40 45 50]
Proses ke 5 [10 12 15 20 1 25 30 40 45 50]
Proses ke 6 [10 12 15 20 1 25 30 40 45 50]
Proses ke 7 [10 12 15 20 1 25 30 40 45 50]
Proses ke 8 [10 12 15 20 1 25 30 40 45 50]
Proses ke 9 [10 12 15 20 1 25 30 40 45 50]


Putaran ke 6 : [10 12 15 20 1 25 30 40 45 50]
Proses ke 1 [10 12 15 20 1 25 30 40 45 50]
Proses ke 2 [10 12 15 20 1 25 30 40 45 50]
Proses ke 3 [10 12 15 20 1 25 30 40 45 50]
Proses ke 4 [10 12 15 1 20 25 30 40 45 50]
Proses ke 5 [10 12 15 1 20 25 30 40 45 50]
Proses ke 6 [10 12 15 1 20 25 30 40 45 50]
Proses ke 7 [10 12 15 1 20 25 30 40 45 50]
Proses ke 8 [10 12 15 1 20 25 30 40 45 50]
Proses ke 9 [10 12 15 1 20 25 30 40 45 50]


Putaran ke 7 : [10 12 15 1 20 25 30 40 45 50]
Proses ke 1 [10 12 15 1 20 25 30 40 45 50]
Proses ke 2 [10 12 15 1 20 25 30 40 45 50]
Proses ke 3 [10 12 1 15 20 25 30 40 45 50]
Proses ke 4 [10 12 1 15 20 25 30 40 45 50]
Proses ke 5 [10 12 1 15 20 25 30 40 45 50]
Proses ke 6 [10 12 1 15 20 25 30 40 45 50]
Proses ke 7 [10 12 1 15 20 25 30 40 45 50]
Proses ke 8 [10 12 1 15 20 25 30 40 45 50]
Proses ke 9 [10 12 1 15 20 25 30 40 45 50]


Putaran ke 8 : [10 12 1 15 20 25 30 40 45 50]
Proses ke 1 [10 12 1 15 20 25 30 40 45 50]
Proses ke 2 [10 1 12 15 20 25 30 40 45 50]
Proses ke 3 [10 1 12 15 20 25 30 40 45 50]
Proses ke 4 [10 1 12 15 20 25 30 40 45 50]
Proses ke 5 [10 1 12 15 20 25 30 40 45 50]
Proses ke 6 [10 1 12 15 20 25 30 40 45 50]
Proses ke 7 [10 1 12 15 20 25 30 40 45 50]
Proses ke 8 [10 1 12 15 20 25 30 40 45 50]
Proses ke 9 [10 1 12 15 20 25 30 40 45 50]


Putaran ke 9 : [10 1 12 15 20 25 30 40 45 50]
Proses ke 1 [1 10 12 15 20 25 30 40 45 50]
Proses ke 2 [1 10 12 15 20 25 30 40 45 50]
Proses ke 3 [1 10 12 15 20 25 30 40 45 50]
Proses ke 4 [1 10 12 15 20 25 30 40 45 50]
Proses ke 5 [1 10 12 15 20 25 30 40 45 50]
Proses ke 6 [1 10 12 15 20 25 30 40 45 50]
Proses ke 7 [1 10 12 15 20 25 30 40 45 50]
Proses ke 8 [1 10 12 15 20 25 30 40 45 50]
Proses ke 9 [1 10 12 15 20 25 30 40 45 50]


Putaran ke 10 : [1 10 12 15 20 25 30 40 45 50]
Proses ke 1 [1 10 12 15 20 25 30 40 45 50]
Proses ke 2 [1 10 12 15 20 25 30 40 45 50]
Proses ke 3 [1 10 12 15 20 25 30 40 45 50]
Proses ke 4 [1 10 12 15 20 25 30 40 45 50]
Proses ke 5 [1 10 12 15 20 25 30 40 45 50]
Proses ke 6 [1 10 12 15 20 25 30 40 45 50]
Proses ke 7 [1 10 12 15 20 25 30 40 45 50]
Proses ke 8 [1 10 12 15 20 25 30 40 45 50]
Proses ke 9 [1 10 12 15 20 25 30 40 45 50]

Dari analisis proses pengurutan diatas terdapat 10 kali putaran dan setiap putaran memiliki 9 proses. Pada saat putaran ke 9 sudah selesai tetapi tetap melakukan putaran sampai ke 10 karena ini yang menjadikan kelemahan algoritma bubble sort yang masih kurang effisien.

Sekian tutorial cara membuat program algoritma bubble sort di bahasa pemograman Go Language, semoga bermanfaat 🙂

Share Post:

Add a Comment

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