Basic Golang

Bab ini membahas dasar-dasar pemrograman golang

Installasi

Anda dapat membaca dokumentasi instalasi golang

Membuat Projek Baru

  • Buat folder baru untuk memulai project

  • go mod init golang-latihan

  • Buat file main.go yang berisi kode berikut

  • Jalankan go run main.go

package main

func main(){
  println("Hello World")
}

Fundamental

Package

  • Setiap program GO terdiri paket-paket.

  • Program mulai berjalan dari paket utama (main package).

  • Dalam satu project hanya boleh ada satu package main

  • Selain paket main, nama paket harus sama dengan nama folder.

Type

  • Go is a statically typed programming language

  • Setiap variabel, konstanta dan lain-lain memiliki type

  • tipe dasar :

  • Ada tipe turunan seperti array, slice, map, interface, struct, dan function

Konstanta

Variabel

Siklus hidup variabel

Pengoptimalan penggunaan memori dalam siklus hidup variabel

  • Jika ingin membuat variabel global dalam satu paket, sebaiknya pertimbangkan kembali, karena siklus hidupnya ada di seluruh kode dalam paket tersebut

  • Untuk menghemat memori, deklarasikan variabel sesuai dengan kebutuhan siklus hidupnya

Package, Export dan Import

  • Semua type, var, const, func dalam suatu paket yang sama bisa dipanggil di manapun (meskipun berbeda file)

  • Untuk bisa dipanggil di paket lain, type, var, const, func harus diexport terlebih dahulu

  • Cara export dilakukan dengan memberi nama var, type, const, fungsi dll yang diawali dengan huruf besar

  • Jika suatu paket ingin menggunakan kode dari paket lainnya, harus mengimport terlebih dahulu

Type Casting

  • Untuk mengubah suatu tipe menjadi tipe lain, bisa melalui fungsi bawaan golang maupun menggunakan paket strconv.

  • Lebih jauh tentang strconv bisa melihat langsung ke paket strconv

Pointer

Function

  • fungsi juga merupakan sebuah tipe

  • Format fungsi : func NAMA (argument type) type_return

Variadic Function

  • Merupakan fungsi dengan jumlah argumen yang dinamis.

  • Bisa dipanggil dengan cara biasa dengan argumen individual

  • Bisa dipanggil secara dinamis dengan melempar argumen slice...

Flow Control

if

switch

for

defer

  • Perintah defer menunda eksekusi dari sebuah fungsi sampai fungsi yang melingkupinya selesai.

  • Argumen untuk pemanggilan defer dievaluasi langsung, tapi pemanggilan fungsi tidak dieksekusi sampai fungsi yang melingkupinya selesai.

  • Jika ada tumpukan perintah defer, maka akan dieksekusi secara LIFO (last In First Out)

Array, Slice dan Map

Array

Slice

  • Merupakan potongan dari sebuah array

Map

  • kalau di PHP ini seperti assosiatif array.

  • index otomatis disort secara alpabet

Common Operation

  • mengunakan potongan array (slice) sehingga tidak dideklarasikan kapasitasnya

  • untuk menambahkan anggota dengan menggunakan fungsi append

Last updated

Was this helpful?