Seluruh alur kerja Go — kompilasi, pengujian, pengelolaan dependensi, hingga dokumentasi — digerakkan oleh satu executable bernama go. Perintah ini bertindak sebagai front end bagi pulasan subperintah, sehingga menguasai daftarnya sama pentingnya dengan menguasai bahasanya. Chapter ini merangkum perintah-perintah go yang dipakai sehari-hari beserta contoh pemakaiannya, lalu melengkapi subperintah go mod dan opsi-opsi yang paling sering dibutuhkan. Daftar perintah di bawah ditangkap langsung dari keluaran asli perintah go versi 1.27.2.
Menampilkan Daftar Perintah #
Menjalankan go tanpa argumen menampilkan ringkasan seluruh perintah yang tersedia:
goOutput yang Dihasilkan:
Go is a tool for managing Go source code.
Usage:
go <command> [arguments]
The commands are:
bug start a bug report
build compile packages and dependencies
clean remove object files and cached files
doc show documentation for package or symbol
env print Go environment information
fix apply fixes suggested by static checkers
fmt gofmt (reformat) package sources
generate generate Go files by processing source
get add dependencies to current module and install them
install compile and install packages and dependencies
list list packages or modules
mod module maintenance
run compile and run Go program
telemetry manage telemetry data and settings
test test packages
tool run specified go tool
version print Go version
vet report likely mistakes in packages
work workspace maintenance
Use "go help <command>" for more information about a command.
Additional help topics:
buildconstraint build constraints
buildjson build -json encoding
buildmode build modes
c calling between Go and C
cache build and test caching
environment environment variables
filetype file types
goauth GOAUTH environment variable
go.mod the go.mod file
gopath GOPATH environment variable
goproxy module proxy protocol
importpath import path syntax
modules modules, module versions, and more
module-auth module authentication using go.sum
packages package lists and patterns
private configuration for downloading non-public code
testflag testing flags
testfunc testing functions
vcs controlling version control with GOVCS
Use "go help <topic>" for more information about that topic.Perintah tersebut keluar dengan kode 2 karena memang menampilkan bantuan penggunaan, bukan menjalankan pekerjaan. Daftar di bawah The commands are: adalah seluruh subperintah, sedangkan bagian Additional help topics merinci topik bantuan lanjutan yang bisa dibuka dengan go help <topic>, misalnya go help modules.
Tabel Perintah Utama #
| Perintah | Fungsi | Contoh |
|---|---|---|
go build | Mengompilasi paket menjadi binary | go build -o server ./cmd/server |
go run | Mengompilasi lalu langsung menjalankan program | go run main.go |
go test | Menjalankan test dalam paket | go test ./... |
go vet | Melaporkan kesalahan yang dicurigai dari analisis statis | go vet ./... |
go fmt | Memformat seluruh berkas paket dengan gofmt | go fmt ./... |
go get | Menambah atau memutakhirkan dependensi module | go get github.com/google/[email protected] |
go install | Mengompilasi dan memasang binary ke GOBIN | go install golang.org/x/tools/cmd/goimports@latest |
go generate | Menjalankan directive //go:generate di dalam kode | go generate ./... |
go doc | Menampilkan dokumentasi paket atau simbol | go doc fmt.Println |
go list | Mendaftar paket atau module yang cocok dengan pola | go list ./... |
go env | Menampilkan dan mengubah environment variable Go | go env GOPATH |
go version | Menampilkan versi toolchain aktif | go version |
go tool | Menjalankan tool bawaan seperti cover dan pprof | go tool cover |
go work | Mengelola workspace multi-module | go work init ./layanan-a |
go mod | Pengelolaan module (lihat tabel berikutnya) | go mod tidy |
go clean | Menghapus berkas objek dan cache | go clean -cache |
go fix | Menerapkan perbaikan API usang yang disarankan | go fix ./... |
go telemetry | Mengelola pengaturan telemetri toolchain | go telemetry |
go bug | Membuka formulir laporan bug di browser | go bug |
Sebagai pembuktian versi, perintah paling sederhana berikut dijalankan sungguhan pada mesin situs ini:
go versionOutput yang Dihasilkan:
go version go1.27.2 linux/amd64Pola Pemakaian Sehari-hari #
Belasan perintah pada tabel di atas menutup hampir seluruh siklus pengembangan. Saat menulis kode, go run mengompilasi dan menjalankan program dalam satu langkah tanpa meninggalkan berkas binary. Sebelum commit, pasangan go test ./... dan go vet ./... memverifikasi perilaku dan melaporkan pola berbahaya; saat merilis, go build menghasilkan binary siap distribusi. Perintah-perintah ini berbagi cache build (GOCACHE) sehingga eksekusi berulang hanya mengompilasi ulang paket yang berubah — itulah sebabnya go test ./... pada proyek besar terasa cepat setelah eksekusi pertama.
Sisanya adalah perintah situasional: go doc saat membaca API, go mod dan go get saat mengelola dependensi, go work saat mengembangkan beberapa module sekaligus, serta go tool saat menangani coverage dan profil. Perintah telemetry, fix, dan bug jarang dipakai sehari-hari tetapi tetap tercantum karena keluaran go di atas memuatnya.
Subperintah go mod #
Pengelolaan dependensi sehari-hari justru dilakukan lewat go get, karena dukungan module menyatu di semua perintah go. Subperintah go mod menangani operasi struktural pada berkas go.mod — dari membuat module baru hingga memverifikasi integritas dependensi. Arti setiap directive yang ditulis subperintah ini dirangkum pada chapter Directive go.mod
:
| Subperintah | Fungsi | Contoh |
|---|---|---|
go mod init | Membuat module baru dengan go.mod | go mod init contoh.com/layanan |
go mod tidy | Menambah dependensi yang hilang, membuang yang tak terpakai | go mod tidy |
go mod get | Alias go get untuk kebutuhan module | go get contoh.com/[email protected] |
go mod vendor | Membuat salinan dependensi ke direktori vendor/ | go mod vendor |
go mod download | Mengunduh dependensi ke cache lokal | go mod download |
go mod edit | Mengedit go.mod dari skrip atau perkakas | go mod edit -go=1.27 |
go mod graph | Mencetak graf kebutuhan module | go mod graph |
go mod verify | Memverifikasi dependensi sesuai checksum go.sum | go mod verify |
go mod why | Menjelaskan mengapa sebuah paket dibutuhkan | go mod why fmt |
Opsi yang Sering Dipakai #
| Opsi | Berlaku pada | Fungsi |
|---|---|---|
-o nama | build, install | Menentukan nama berkas keluaran binary |
-race | build, test, run | Mengaktifkan race detector |
-v | build, test, list | Mode verbose; menampilkan paket yang diproses |
-count=1 | test | Menonaktifkan cache hasil test agar selalu dijalankan ulang |
-cover | test | Mengukur cakupan kode oleh test |
-trimpath | build | Menghapus path mesin pembangun dari binary |
-ldflags "-s -w" | build | Menghapus simbol debug untuk binary lebih kecil |
Opsi -race dan -count=1 dibahas praktisnya pada chapter Race Detector
, sedangkan kombinasi -trimpath dan -ldflags untuk rilis produksi dibahas pada chapter Build Flags
.
Referensi #
- Dokumentasi perintah go — rujukan resmi seluruh subperintah dan opsi.
- Go modules reference
— perilaku module yang menopang subperintah
go mod.
Perintah go membaca konfigurasi dari berkas go.mod — arti setiap directive di dalamnya dirangkum pada chapter Directive go.mod
.