Skip to content

Golang Dasar

Hello world

Dalam memulai belajar golang , kita mulai dengan membuat hello world. Buatlah file main.go dalam folder project kita. dan tulislah kode seperti berikut.

main.go
package main

import "fmt"

func main() {
    fmt.Println("Hello World")
}

alt text

Kemudian kita jalankan project golang pertama kita dengan go run main.go

  1. Package adalah unit dasar untuk mengorganisasi dan mengelompokkan kode. Package memungkinkan pengembang untuk membagi aplikasi menjadi beberapa modul kecil, yang lebih mudah dikelola, digunakan ulang, dan diuji. Setiap file Go harus menjadi bagian dari satu package, dan package ini bisa berisi fungsi, tipe data, variabel, serta kode lain yang relevan.
  2. import digunakan untuk meng-import atau memasukan package lain ke dalam file program, agar isi dari package yang di-import bisa dimanfaatkan. Package fmt merupakan salah satu package bawaan yang disediakan oleh Go, isinya banyak fungsi untuk keperluan I/O yang berhubungan dengan text.

Variabel

Dalam Go, variabel adalah tempat penyimpanan data dengan tipe tertentu. Variabel di Go bisa dideklarasikan dengan beberapa cara, dan Go adalah bahasa yang statically typed, artinya setiap variabel harus memiliki tipe data yang jelas, meskipun Go mendukung inferensi tipe secara otomatis.

1. Deklarasi Eksplisit dengan Tipe

kita bisa mendeklarasikan variable dengan menyebutkan tipe datanya

main.go
var nama string
    nama = "Ihsan"

 var sekolah string = "SMK MADINATULQURAN"   

2. Deklarasi tanpa Menyebutkan Tipe (type inference)

Go bisa secara otomatis mengenali tipe variabel berdasarkan nilai awalnya.

main.go
var usia = 25
nama := "ihsan"
alamat := "bogor"

3. Deklarasikan Banyak Variabel

main.go
var x, y int = 1,2
x,y :=1,2

var nama, alamat string = "ihsan", "bogor"

4. Variabel Underscore _

Go memiliki aturan unik yang jarang dimiliki bahasa lain, yaitu tidak boleh ada satupun variabel yang menganggur. Artinya, semua variabel yang dideklarasikan harus digunakan. Jika ada variabel yang tidak digunakan tapi dideklarasikan, error akan muncul pada saat kompilasi dan program tidak akan bisa di-run.

alt text

Underscore (_) adalah reserved variable yang bisa dimanfaatkan untuk menampung nilai yang tidak dipakai. Bisa dibilang variabel ini merupakan keranjang sampah.

main.go
package main

import (
    "fmt"
)

func myFunction() (int, string) {
    return 42, "hello"
}

func main() {
    // Abaikan string yang dikembalikan
    num, _ := myFunction()
    fmt.Println(num) // Output: 42
}

Dalam contoh di atas, nilai kedua dari myFunction diabaikan dengan menggunakan _, sehingga hanya num yang digunakan.

Tipe Data

Di Golang, terdapat beberapa tipe data dasar yang digunakan untuk menyimpan berbagai jenis data. Berikut adalah tipe-tipe data utama di Golang:

Tipe Data Numerik Non-Desimal

Di Golang, tipe data numerik non-desimal mengacu pada tipe-tipe bilangan bulat (integer) yang tidak memiliki nilai pecahan atau desimal. Golang menyediakan beberapa tipe integer dengan perbedaan dalam ukuran bit dan tanda (signed atau unsigned). Berikut adalah tipe-tipe numerik non-desimal yang tersedia:

Tipe Integer Signed(Bertanda) Tipe signed dapat menampung bilangan negatif dan positif.

  • int : Ukuran integer bergantung pada platform (32-bit atau 64-bit).

  • int8 : Bilangan bulat 8-bit, rentang nilai dari -128 hingga 127.

  • int16 : Bilangan bulat 16-bit, rentang nilai dari -32,768 hingga 32,767.
  • int32 : Bilangan bulat 32-bit, rentang nilai dari -2,147,483,648 hingga 2,147,483,647.
  • int64 : Bilangan bulat 64-bit, rentang nilai dari -9,223,372,036,854,775,808 hingga 9,223,372,036,854,775,807.
main.go
var a int32 = -50 

Tipe Integer Unsigned(Tanpa Tanda)

Tipe unsigned hanya dapat menampung bilangan positif (termasuk nol).

  • uint : Ukuran unsigned integer bergantung pada platform (32-bit atau 64-bit).
  • uint8 : Bilangan bulat unsigned 8-bit, rentang nilai dari 0 hingga 255.
  • uint16 : Bilangan bulat unsigned 16-bit, rentang nilai dari 0 hingga 65,535.
  • uint32 : Bilangan bulat unsigned 32-bit, rentang nilai dari 0 hingga 4,294,967,295.
  • uint64 : Bilangan bulat unsigned 64-bit, rentang nilai dari 0 hingga 18,446,744,073,709,551,615.
main.go
var a uint16 = 300 

Tipe data non-desimal (integer) di Golang disesuaikan dengan kebutuhan penyimpanan nilai bilangan bulat, baik yang bertanda maupun tanpa tanda, serta ukuran bit yang berbeda-beda untuk efisiensi memori.

Tipe Data Numerik Desimal

Di Golang, tipe data numerik desimal digunakan untuk menyimpan bilangan dengan nilai pecahan atau desimal (floating-point). Golang menyediakan dua tipe data numerik desimal utama yang berbeda dalam presisi dan ukuran:

Float32 (Floating-Point 32-bit)

  • Menyimpan bilangan desimal dengan presisi 32-bit.
  • Rentang nilai dari sekitar 1.18e-38 hingga 3.4e+38 dengan presisi sekitar 6-7 digit desimal.
main.go
var x float32 = 3.14

Float64 (Floating-Point 64-bit)

  • Menyimpan bilangan desimal dengan presisi 64-bit.
  • Rentang nilai dari sekitar 2.23e-308 hingga 1.8e+308 dengan presisi sekitar 15 digit desimal.
main.go
var y float64 = 3.141592653589793

Perbedaan float32 dan float64:

  • Presisi: float64 memiliki presisi lebih tinggi dan mampu menyimpan lebih banyak angka desimal dibandingkan float32.
  • Ukuran Memori: float32 menggunakan 4 byte, sedangkan float64 menggunakan 8 byte.

Kesimpulan

Tipe data numerik desimal (float32 dan float64) digunakan di Golang untuk menangani bilangan dengan nilai pecahan. Gunakan float32 untuk kebutuhan yang memprioritaskan memori, dan float64 untuk presisi yang lebih tinggi.

**Tipe Data bool Boolean

Di Golang, tipe data boolean (logika) digunakan untuk menyimpan nilai true atau false. Tipe data ini hanya memiliki dua kemungkinan nilai, yaitu:

  • true