Standard library Go termasuk yang paling lengkap di industri: format teks, I/O berkas, jaringan, kriptografi, hingga testing tersedia tanpa satu pun dependensi eksternal. Filosofi batteries included inilah yang membuat program Go biasa selesai hanya dengan standard library. Chapter ini memetakan package yang paling sering dipakai, dikelompokkan per kategori, dan menghubungkan setiap package ke chapter course yang membahasnya secara mendalam. Gunakan peta ini sebagai daftar isi teknis: cari kebutuhan Anda di kategori yang sesuai, lalu lanjut ke chapter terkait.

Format dan I/O #

Kategori ini menangani interaksi paling dasar: mencetak teks dan mengakses berkas. Package io mendefinisikan dua interface legendaris — io.Reader dan io.Writer — yang menjadi bahasa bersama bagi seluruh utilitas I/O di Go.

PackageKegunaanDibahas di
fmtCetak terformat, Sprintf, baca input dengan verb %v, %s, %dPackage fmt
osAkses berkas, argument program (os.Args), environment variable, prosesPackage os
ioAbstraksi Reader, Writer, utilitas seperti io.Copy dan io.EOFio dan Utilitas io
bufioPembungkus buffered untuk scanner dan pembacaan efisienPackage bufio
path/filepathManipulasi path berkas yang portabel antar sistem operasifilepath dan path
embedMenyematkan berkas statis ke dalam binary saat kompilasiPackage embed
flagParsing opsi dan argumen command linePackage flag

String dan Teks #

Go menyimpan string sebagai byte UTF-8 immutable, sehingga pengolah teksnya bekerja presisi di level byte maupun karakter. Kategori ini menutup 90% kebutuhan pengolahan teks sehari-hari.

PackageKegunaanDibahas di
stringsPemotongan, pencarian, penggabungan (Builder, Contains, Split)Package strings
strconvKonversi string ke angka dan sebaliknya (Atoi, Itoa)Package strconv
bytesOperasi ala strings untuk data bytePackage bytes
regexpPencocokan pola regular expressionRegular Expression
unicode/utf8Dekode dan hitung rune pada string UTF-8UTF-8 dan Unicode

Encoding dan Serialisasi #

Ketika data harus meninggalkan proses — dikirim lewat jaringan atau disimpan ke berkas — kategori ini mengubah struct menjadi bytes dan sebaliknya. Format JSON dibahas paling dalam karena menjadi bahasa pertukaran data paling umum di web.

PackageKegunaanDibahas di
encoding/jsonMarshal dan unmarshal JSON, termasuk struct tagJSON
encoding/xmlEncoding data ke bentuk XMLXML
encoding/csvBaca dan tulis berkas CSVCSV
encoding/gobEncoding biner khusus nilai Go, efisien antar proses GoEncoding gob
encoding/base64Enkode data ke teks base64umum; dibahas singkat di kelas encoding

Waktu, Matematika, dan Koleksi #

PackageKegunaanDibahas di
timeWaktu, durasi, timer, dan parsing formatPackage time
mathKonstanta dan fungsi matematika (Sqrt, MaxInt64)math dan math/rand
math/rand/v2Bilangan acak deterministik dan acak amanmath dan math/rand
slicesUtilitas slice generik: Sort, Contains, Concatsort dan slices
sortPengurutan klasik sebelum era genericssort dan slices
mapsUtilitas map generik: Keys, Values, EqualPackage maps

Concurrency dan Konteks #

PackageKegunaanDibahas di
syncMutex, RWMutex, WaitGroup, Once untuk sinkronisasisync.Mutex dan RWMutex
sync/atomicOperasi atomik tanpa lock untuk counter dan flagAtomic Operation
contextPembatalan, timeout, dan penyebaran nilai lintas goroutineContext

Jaringan dan Web #

PackageKegunaanDibahas di
net/httpHTTP client dan server, ServeMux berpolanet/http Server
net/http/httptestServer dan response tiruan untuk pengujianhttptest
database/sqlAntarmuka SQL generik dengan connection pooldatabase/sql

Testing dan Logging #

PackageKegunaanDibahas di
testingUnit test, benchmark, fuzzing, dan example testUnit Test
logLogging klasik berbasis tekslog dan log/slog
log/slogStructured logging dengan level dan handlerlog/slog
text/templateTemplate berbasis teks untuk hasilkan dokumentext/template
html/templateTemplate HTML dengan pelindung XSS otomatishtml/template
errorsMembuat, membungkus, dan memeriksa errorError Interface

Membaca Dokumentasi Resmi #

Dokumentasi kanonik seluruh package berada di pkg.go.dev : setiap package, fungsi, dan tipe dilengkapi contoh yang dapat dijalankan. Dari terminal, perintah go doc menampilkan dokumentasi yang sama tanpa membuka peramban — go doc fmt.Println langsung menampilkan penjelasan fungsi di terminal. Penggunaan go doc dibahas pada chapter go doc .

Satu alasan kuat memaksimalkan standard library adalah janji kompatibilitas Go 1: API yang sudah dirilis tidak akan dipecahkan pada rilis berikutnya, sehingga kode yang hanya bergantung padanya dapat dibangun bertahun-tahun tanpa perombakan. Ketika kebutuhan melebihi standard library — ORM khusus, framework CLI, driver database — barulah dependensi eksternal masuk, dan pengelolaannya dibahas pada chapter Dependency Management .

Referensi #

  • pkg.go.dev — indeks dokumentasi resmi seluruh standard library.
  • Tutorial resmi Go — tutorial bertahap yang memakai package-package di atas.

Dari fungsi bawaan hingga package, rujukan berikutnya turun ke level perkakas: seluruh perintah go beserta contoh pemakaiannya dirangkum pada chapter Perintah go .