Setiap komunitas teknis menumbuhkan kosakata sendiri, dan ekosistem Go tidak terkecuali: kata seperti goroutine, shadowing, atau vendoring muncul di dokumentasi, forum, dan code review setiap hari. Kosakata ini bukan hiasan — setiap istilah merangkum satu perilaku teknis konkret yang pernah kita bahas di course ini. Glossary berikut merangkum 44 istilah dalam enam kelompok, masing-masing dengan definisi satu sampai dua kalimat dan tautan ke chapter yang membahasnya secara mendalam. Gunakan daftar ini sebagai peta cepat saat membaca dokumentasi resmi atau diskusi komunitas.

Bahasa dan Tipe #

Kelompok ini memuat istilah yang lahir dari aturan bahasa Go sendiri — dari cara variabel diisi hingga bagaimana compiler menempatkan data di memori.

IstilahDefinisiDibahas di
Zero valueNilai yang diisi compiler pada variabel tanpa nilai awal: 0 untuk angka, "" untuk string, nil untuk tipe referensiZero Value
Blank identifierIdentifier _ yang membuang nilai; pemakaiannya menetralkan error variabel tak terpakaiVariabel
ShadowingDeklarasi variabel bernama sama pada scope dalam sehingga menutupi variabel scope luarVariabel
IotaKonstanta penghitung yang bertambah satu pada tiap baris const dalam satu blokKonstanta
ClosureFungsi yang menangkap referensi variabel di sekitarnya sehingga variabel tersebut tetap hidup setelah scope asalnya berakhirClosure
ReceiverVariabel yang mengikat method ke tipe pemiliknya, ditulis di antara keyword func dan nama methodMethod
Method setHimpunan method yang melekat pada sebuah tipe; receiver nilai dan pointer memiliki himpunan yang berbedaMethod Set
EmbeddingMenyematkan struct atau interface ke dalam struct lain sehingga method-nya terpromosi otomatisEmbedded Struct
Interface satisfactionTipe memenuhi interface secara implisit dengan mengimplementasikan seluruh methodnya, tanpa kata implementsImplementasi Implisit
Type assertionOperasi mengambil kembali nilai konkret dari interface dengan bentuk v := i.(T)Type Assertion
Type switchPercabangan yang menguji tipe dinamis nilai interface pada tiap caseType Switch
Escape analysisAnalisis compiler yang menentukan variabel aman dialokasikan di stack atau harus dipindahkan ke heapEscape Analysis
Garbage collectionProses runtime yang mengklaim kembali memori tidak lagi dirujuk oleh programGarbage Collection

Concurrency #

Kelompok kedua adalah kosakata model konkurensi Go yang dibangun di atas dua primitif: goroutine sebagai unit eksekusi dan channel sebagai jalur komunikasinya. Slogan “jangan berkomunikasi dengan berbagi memori, bagikan memori dengan berkomunikasi” merangkum cara kerja seluruh istilah di tabel ini.

IstilahDefinisiDibahas di
GoroutineFungsi yang dijalankan ringan dan bersamaan oleh runtime, diawali keyword goGoroutine
ChannelSaluran bertipe untuk mengirim dan menerima nilai antar goroutineChannel
BufferPenyangga internal channel berkapasitas tertentu; pengiriman hanya menunggu bila penyangga penuhBuffered Channel
Race conditionDua goroutine mengakses memori yang sama tanpa sinkronisasi sehingga hasil bergantung urutan eksekusiRace Condition
DeadlockSekumpulan goroutine saling menunggu selamanya sehingga program berhenti tanpa kemajuanChannel
SelectStatement yang menunggu salah satu dari beberapa operasi channel siap dijalankanselect
Worker poolPola sejumlah goroutine pekerja tetap yang mengambil tugas dari sebuah channelWorker Pool
Context cancellationPenyebaran sinyal pembatalan dan timeout lintas pemanggilan melalui context.ContextCancellation dan Timeout

Error Handling #

Go memperlakukan error sebagai nilai biasa yang dikembalikan dan diperiksa, bukan exception yang melompat. Tiga istilah berikut adalah pola yang tumbuh di sekitar konvensi tersebut.

IstilahDefinisiDibahas di
Sentinel errorNilai error pra-dideklarasi sebagai penanda kondisi tertentu, misalnya io.EOFSentinel Error
Error wrappingMembungkus error asli dengan konteks tambahan memakai verb %w agar bisa diurai dengan errors.IsError Wrapping
Panic dan recoverMekanisme darurat menghentikan goroutine dan menangkapnya kembali dari dalam deferred functionPanic dan Recover

Module dan Build #

Sejak Go 1.16, seluruh proyek hidup dalam module yang berversi semantik dan diunduh lewat proxy terverifikasi. Kelompok ini merangkum kosakata rantai pasok dependensi tersebut hingga binary akhir yang dihasilkannya.

IstilahDefinisiDibahas di
ModuleUnit distribusi berisi kumpulan package, satu go.mod, dan satu nomor versigo.mod
WorkspaceKumpulan module lokal yang dikerjakan bersama melalui satu berkas go.workgo work
Module proxyServer penampung salinan module agar unduhan cepat, tercache, dan terverifikasi checksumDependency Management
VendoringMenyalin seluruh dependensi ke direktori vendor/ agar build tidak bergantung unduhan jaringanDependency Management
Cross-compilationMembangun binary untuk sistem operasi atau arsitektur lain hanya dengan menyetel GOOS dan GOARCHCross Compilation
Static binaryBinary mandiri yang menautkan seluruh dependensi sehingga berjalan tanpa pustaka sistem tambahanBuild Binary

Testing #

Testing menyatu di dalam toolchain: perintah go test menjalankan unit test, benchmark, dan fuzzing dengan satu konvensi penamaan. Istilah berikut muncul begitu kita menulis berkas _test.go pertama.

IstilahDefinisiDibahas di
CoveragePersentase baris atau cabang kode yang dieksekusi oleh testCoverage
FuzzingPengujian otomatis yang memutasi input secara acak untuk menemukan panic tak terdugaFuzzing
BenchmarkFungsi berprefix Benchmark yang mengukur kinerja lewat go test -benchBenchmark
Race detectorMode toolchain -race yang mendeteksi akses memori bersama tanpa sinkronisasi saat runtimeRace Detector
Table-driven testPola test berupa tabel kasus input–ekspektasi yang diiterasi satu per satuTable-Driven Test

Web dan Operasional #

Kelompok penutup memuat istilah yang muncul saat aplikasi Go meninggalkan meja pengembang menuju produksi.

IstilahDefinisiDibahas di
MiddlewareFungsi pembungkus handler yang menambah perilaku seperti logging atau autentikasi tanpa mengubah handler intiMiddleware
Health checkEndpoint pelaporan kesehatan proses yang dipantau orkestrator seperti KubernetesHealth, Readiness, Liveness
Graceful shutdownPenutupan server yang menyelesaikan permintaan berjalan sebelum proses keluarGraceful Shutdown
Structured loggingLogging berformat pasangan kunci-nilai yang mudah disaring dan diolah mesinStructured Logging
Distributed tracingPencatatan jejak satu permintaan lintas layanan dalam bentuk pohon spanDistributed Tracing
MetricsPengukuran numerik perilaku sistem — counter, gauge, histogram — yang dikumpulkan berkalaMetrics
Connection poolKumpulan koneksi database siap pakai yang dipinjam dan dikembalikan antar queryConnection Pool
Exit codeStatus keluar proses yang dibaca skrip dan supervisor; nol berarti suksesExit Code
ProfilingPengambilan profil CPU atau memori memakai pprof untuk menemukan titik lambat programCPU Profiling

Dari 44 istilah di atas, satu benang merah terlihat jelas: Go menamai setiap mekanismenya secara eksplisit agar percakapan teknis tetap presisi. Saat satu istilah terasa asing, tautan pada kolom terakhir membawa kita kembali ke chapter yang membahas konsepnya secara utuh — dari definisi dua kalimat di sini menuju contoh kode yang dapat dijalankan di sana.

Referensi #

  • Effective Go — gaya idiomatik yang menjadi latar sebagian besar istilah di atas.
  • FAQ Go — penjelasan desain di balik goroutine, interface, dan garbage collection.

Section Referensi dengan ini lengkap: sepuluh tabel rujukan mulai dari keyword hingga glossary siap dipakai setiap kali kita menulis, menguji, dan merilis program Go.