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.
Kemudian kita jalankan project golang pertama kita dengan go run main.go
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.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
2. Deklarasi tanpa Menyebutkan Tipe (type inference)
Go bisa secara otomatis mengenali tipe variabel berdasarkan nilai awalnya.
3. Deklarasikan Banyak Variabel
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.
Underscore (_) adalah reserved variable yang bisa dimanfaatkan untuk menampung nilai yang tidak dipakai. Bisa dibilang variabel ini merupakan keranjang sampah.
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.
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.
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.
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.
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