Chapter 1 of 10
Setelah bab ini, Anda mampu:
Unduh distribusi resmi yang sesuai sistem operasi, ikuti petunjuk pemasangan, lalu buka terminal baru. Verifikasi instalasi:
go version
go env GOROOT GOPATH GOMOD
GOROOT menunjuk instalasi Go. GOPATH adalah workspace global untuk cache module dan alat yang dipasang; kode aplikasi modern tidak perlu ditempatkan di dalamnya. GOMOD menunjukkan file go.mod aktif atau /dev/null ketika terminal berada di luar module.
Pastikan direktori biner Go tersedia pada PATH. Jangan mengubah GOROOT secara manual kecuali Anda memang mengelola instalasi khusus.
| Perintah | Kegunaan |
|---|---|
go run . | Mengompilasi sementara dan menjalankan package utama |
go build . | Memeriksa kompilasi dan menghasilkan biner bila package adalah main |
go test ./... | Menjalankan pengujian seluruh package di module |
go fmt ./... | Memformat kode dengan gaya standar Go |
go vet ./... | Mendeteksi pola kode yang mencurigakan |
go mod tidy | Menyelaraskan dependensi di go.mod dan go.sum |
go doc fmt.Println | Membaca dokumentasi simbol |
Alur kerja sederhananya:
Module adalah unit versi dan distribusi yang berisi satu atau lebih package. Buat proyek di direktori kosong:
mkdir halo-go
cd halo-go
go mod init example.com/halo-go
Perintah terakhir membuat go.mod:
module example.com/halo-go
go 1.23
Direktif go mengikuti versi bahasa yang dipilih toolchain Anda dan dapat berbeda dari contoh. Untuk proyek yang diterbitkan, path module biasanya sama dengan lokasi repositori. Untuk latihan lokal, path contoh tetap valid.
Buat main.go:
package main
import "fmt"
func main() {
fmt.Println("Halo, Go!")
}
Jalankan dan bangun:
go fmt ./...
go run .
go build .
package main dan fungsi main menandai program yang dapat dieksekusi. import "fmt" memakai package pustaka standar. Nama package berlaku per direktori: file .go biasa dalam satu direktori harus memakai nama package yang sama.
Struktur kecil yang wajar:
halo-go/
├── go.mod
├── main.go
└── salam/
└── salam.go
Isi salam/salam.go:
package salam
func Pesan(nama string) string {
return "Halo, " + nama + "!"
}
Huruf awal kapital mengekspor Pesan agar dapat dipakai package lain. Ubah main.go:
package main
import (
"fmt"
"example.com/halo-go/salam"
)
func main() {
fmt.Println(salam.Pesan("Ayu"))
}
Import menggunakan path module ditambah subdirektori package, bukan path filesystem absolut.
Ketika kode mengimpor module eksternal, perintah Go dapat mengunduh versinya dan mencatatnya di go.mod; checksum konten tersimpan di go.sum. Jalankan:
go mod tidy
go test ./...
Commit go.mod dan go.sum untuk aplikasi. Jangan mengedit go.sum manual. Cache dependensi bukan bagian proyek dan tidak perlu disalin.
go run main.go pada proyek multifile. Gunakan go run . agar seluruh package dipertimbangkan.GOPATH sebagai lokasi wajib proyek. Module modern dapat berada di direktori mana pun.module di go.mod. Gunakan path module sebagai awalan.go fmt ./...; format standar adalah bagian dari budaya Go.go test atau go vet. Keduanya menangkap masalah sebelum biner didistribusikan.example.com/profil yang mencetak nama dan pekerjaan Anda.teks dengan fungsi publik Judul(s string) string, lalu panggil dari main.go fmt ./..., go test ./..., go vet ./..., dan go build .. Catat fungsi setiap perintah.go doc strings.ToUpper untuk membaca kontrak fungsi tanpa peramban.Go menyediakan toolchain terpadu untuk format, kompilasi, pengujian, dokumentasi, dan dependensi. go.mod menetapkan identitas module; direktori membentuk package; dan package main menghasilkan program. Siklus aman untuk proyek pemula adalah format, test, vet, lalu build.