Mengenal Function pada bahasa Golang

Mengenal Function pemrograman Golang

Mengenal Function pemrograman Golang


Function pada bahasa pemrograman golang merupakan inti yang wajib di pelajari, Mengapa ?.

Bahasa pemrograman golang sendiri merupakan bahasa pemrograman bertipe function, atau functional programming language.

Mayoritas program yang di buat dengan menggunakan bahasa pemrograman golang berisi fungsi.

Function merupakan beberapa statement yang dikelompokan menjadi satu yang berperan untuk melakukan aktivitas tertentu.

Dengan mempelajari function, kamu bisa membuat suatu blok kode yang dapat digunakan berkali – kali. Tentunya dengan melakukan hal tersebut, kamu dapat lebih mudah membuat program. Beberapa manfaat function :

  • Kode dapat di reuse ( digunakan kembali ).
  • Lebih mudah melakukan testing kode, kamu bisa melakukan test pada function.
  • Function dapat digunakan dengan input yang berbeda.
  • Mengurangi duplikasi kode.
  • Menyembunyikan Informasi

Perlu kamu ketahui, bahwasanya ketika kamu membuat program menggunakan golang, secara tidak langsung kamu telah menggunakan sebuah function, yaitu function main.

Suatu function pada bahasa pemrograman golang ditandai dengan adanya keyword func pada awalan kodenya.

Jenis function pada Golang

Bahasa pemrograman golang mempunyai beberapa jenis function, diantaranya adalah :

  1. Tanpa parameter dan return
  2. Dengan parameter dan return
  3. Function Stack ( Anonim )
  4. Variadic
  5. Closure

Fungsi tanpa parameter dan return

Seperti namanya, fungsi ini tidak memuat suatu parameter dan juga tidak mengembalikan nilai tertentu. Jadi apa kegunaan fungsi (function) jenis ini ?.

jenis tanpa parameter dan return biasa digunakan untuk mencetak data, tanpa meminta suatu input tertentu, contoh :

Function pada bahasa pemrograman golang
Fungsi tanpa parameter dan return

Fungsi dengan parameter dan return

Sebuah fungsi juga dapat menerima suatu parameter yang dikirim ketika fungsi dipanggil. Parameter disini dapat menampung suatu nilai yang akan kita olah pada body fungsi, contoh sederhananya adalah, fungsi untuk menjumlahkan angka.

Ketika menjumlahkan suatu angka, maka fungsi yang kita buat mungkin akan menerima parameter angka 1 dan angka 2.

func main(){
    log.Println(sum(5,37))
}

func sum(angka1, angka2 int) hasil int {
    hasil = angka1 + angka2
    return hasil
}

Fungsi sum diatas menerima 2 buah parameter yaitu angka1 dan angka2 yang bertipe data integer, kemudian fungsi sum mereturn hasil dengan tipe data integer

Fungsi Stack

Stack merupakan jenis function pada bahasa pemrograman golang, yang mana ia akan memanggil fungsi lain ketika mengolah data. Agar dapat lebih jelas memahaminya, kita akan mencoba membuat dua buah fungsi yang akan saling berhubungan.

func sum(nilai1, nilai2 int){
  hasil := nilai1 + nilai2
  log.Println("Hasil Penjumlahannya adalah : ", hasil)
  average(hasil)
}

func average(total int){
  hasil := total/2
  log.Println("Hasil Rata-ratanya adalah : ", hasil)
}

func main(){
  sum(50,73)
}

Pada contoh di atas, fungsi sum memanggil fungsi lain yaitu fungsi average untuk menampilkan hasil rata-rata dari nilai yang di inputkan.

Variadic

Variadic function dapat mengconvert banyak data yang dikirim ke function menjadi sebuah array. contoh :

func sum(angka...int) int {
   total := 0
   for _, val := range angka {
     total += val
   }
return total
}

func main() {
   log.Println(sum(77,52,67,83,12))
}

Dapat kita lihat pada kode diatas, deretan input data yang kita kirim tidak memerlukan banyak parameter pada functionnya. Cukup dengan menggunakan variadic maka deret angka tersebut akan dianggap sebagai array.

baca juga : Mengenal Array pada bahasa pemrograman Golang

Closure

Closure adalah suatu function yang disimpan didalan sebuah variable. Dengan kata lain, kamu dapat memasukan function didalam function. contoh :

func main() {
   sum := func (angka...int) int {
          total := 0
          for _, val := range angka {
          total += val
      }
      return total
   }
log.Println(sum(77,52,67,83,12))
}

Rekursi

Fungsi rekursi merupakan sebuah fungsi yang memanggil fungsi itu sendiri. Contoh sederhana dalam penggunaan function ini adalah saat membuat program menghitung faktorial suatu angka.

contoh :

5! = 5 * 4 * 3 * 2 * 1 = 24
func faktorial(angka int) int {
    if angka == 0 {
        return 1
    }
    return angka * faktorial(angka-1)
}

func main() {
    log.Println(faktorial(5))
}