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:

bash
go

Output yang Dihasilkan:

text
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 #

PerintahFungsiContoh
go buildMengompilasi paket menjadi binarygo build -o server ./cmd/server
go runMengompilasi lalu langsung menjalankan programgo run main.go
go testMenjalankan test dalam paketgo test ./...
go vetMelaporkan kesalahan yang dicurigai dari analisis statisgo vet ./...
go fmtMemformat seluruh berkas paket dengan gofmtgo fmt ./...
go getMenambah atau memutakhirkan dependensi modulego get github.com/google/[email protected]
go installMengompilasi dan memasang binary ke GOBINgo install golang.org/x/tools/cmd/goimports@latest
go generateMenjalankan directive //go:generate di dalam kodego generate ./...
go docMenampilkan dokumentasi paket atau simbolgo doc fmt.Println
go listMendaftar paket atau module yang cocok dengan polago list ./...
go envMenampilkan dan mengubah environment variable Gogo env GOPATH
go versionMenampilkan versi toolchain aktifgo version
go toolMenjalankan tool bawaan seperti cover dan pprofgo tool cover
go workMengelola workspace multi-modulego work init ./layanan-a
go modPengelolaan module (lihat tabel berikutnya)go mod tidy
go cleanMenghapus berkas objek dan cachego clean -cache
go fixMenerapkan perbaikan API usang yang disarankango fix ./...
go telemetryMengelola pengaturan telemetri toolchaingo telemetry
go bugMembuka formulir laporan bug di browsergo bug

Sebagai pembuktian versi, perintah paling sederhana berikut dijalankan sungguhan pada mesin situs ini:

bash
go version

Output yang Dihasilkan:

text
go version go1.27.2 linux/amd64

Pola 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 :

SubperintahFungsiContoh
go mod initMembuat module baru dengan go.modgo mod init contoh.com/layanan
go mod tidyMenambah dependensi yang hilang, membuang yang tak terpakaigo mod tidy
go mod getAlias go get untuk kebutuhan modulego get contoh.com/[email protected]
go mod vendorMembuat salinan dependensi ke direktori vendor/go mod vendor
go mod downloadMengunduh dependensi ke cache lokalgo mod download
go mod editMengedit go.mod dari skrip atau perkakasgo mod edit -go=1.27
go mod graphMencetak graf kebutuhan modulego mod graph
go mod verifyMemverifikasi dependensi sesuai checksum go.sumgo mod verify
go mod whyMenjelaskan mengapa sebuah paket dibutuhkango mod why fmt

Opsi yang Sering Dipakai #

OpsiBerlaku padaFungsi
-o namabuild, installMenentukan nama berkas keluaran binary
-racebuild, test, runMengaktifkan race detector
-vbuild, test, listMode verbose; menampilkan paket yang diproses
-count=1testMenonaktifkan cache hasil test agar selalu dijalankan ulang
-covertestMengukur cakupan kode oleh test
-trimpathbuildMenghapus path mesin pembangun dari binary
-ldflags "-s -w"buildMenghapus 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 #

Perintah go membaca konfigurasi dari berkas go.mod — arti setiap directive di dalamnya dirangkum pada chapter Directive go.mod .