Jika Anda baru mengenal gRPC atau sedang membangun arsitektur sistem yang scalable dan efisien, memulai dengan setup yang benar adalah fondasi penting. Dalam artikel ini, saya akan memandu Anda melakukan instalasi dan setup gRPC di Go (Golang), dari nol hingga siap digunakan untuk membuat layanan RPC.
Sebagai seorang software engineer yang sudah beberapa kali menangani sistem berbasis microservices, saya menyadari betapa pentingnya tooling dan setup awal yang benar agar tidak menjadi “utang teknis” di masa depan. Yuk, kita mulai dengan langkah yang bersih dan terstruktur.
sequenceDiagram participant Client participant gRPC Stub participant Server Client->>gRPC Stub: Call SayHello() gRPC Stub->>Server: Send Protobuf via HTTP/2 Server->>gRPC Stub: Return Protobuf response gRPC Stub->>Client: Deserialize and return message
Prasyarat
Sebelum kita masuk ke tahap instalasi, pastikan Anda sudah memiliki:
- ✅ Go versi terbaru (minimal Go 1.20+)
- ✅
protoc
(Protocol Buffers Compiler) - ✅ Akses ke terminal/bash
- ✅ GOPATH dan environment Go telah dikonfigurasi dengan benar
Jika belum menginstal Go, Anda bisa mengunduhnya dari https://go.dev/dl/.
1. Instalasi Protocol Buffers Compiler (protoc)
Protocol Buffers (protobuf) adalah format serialization yang digunakan gRPC untuk mendefinisikan kontrak antara client dan server.
a. Unduh dari GitHub
Kunjungi halaman releases: 👉 https://github.com/protocolbuffers/protobuf/releases
Pilih sesuai sistem operasi Anda (Windows/Linux/macOS), lalu ekstrak dan simpan ke direktori sistem (/usr/local/bin
atau set PATH sesuai lokasi protoc
).
b. Cek versi
protoc --version
# libprotoc 3.x.x
Jika versi sudah muncul, berarti instalasi berhasil.
2. Instalasi Plugin gRPC untuk Go
gRPC membutuhkan plugin protoc-gen-go
dan protoc-gen-go-grpc
agar file .proto
bisa diubah menjadi kode Go secara otomatis.
a. Instal protoc-gen-go
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
b. Instal protoc-gen-go-grpc
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
c. Tambahkan $GOPATH/bin ke PATH (jika belum)
export PATH="$PATH:$(go env GOPATH)/bin"
Atau tambahkan ke ~/.bashrc
atau ~/.zshrc
agar permanen.
3. Struktur Direktori Proyek
Buat struktur direktori awal seperti ini:
grpc-example/
├── proto/
│ └── hello.proto
├── server/
└── client/
proto/
: Menyimpan definisi layanan dan pesan dalam.proto
server/
: Implementasi server gRPCclient/
: Implementasi client gRPC
4. Contoh File .proto Awal
Buat file proto/hello.proto
:
syntax = "proto3";
package hello;
option go_package = "santekno.com/grpc-example/proto/hello;hello";
service HelloService {
rpc SayHello (HelloRequest) returns (HelloResponse);
}
message HelloRequest {
string name = 1;
}
message HelloResponse {
string message = 1;
}
5. Generate File Go dari Proto
Setelah plugin terinstal dan file .proto
dibuat, generate kode Go dengan perintah:
protoc --go_out=. --go-grpc_out=. proto/hello.proto
Ini akan menghasilkan dua file:
proto/hello.pb.go
proto/hello_grpc.pb.go
File ini adalah kode hasil generate otomatis dan jangan dimodifikasi secara manual.
6. Verifikasi Setup
Coba buat program Go sederhana di server/main.go
dan client/main.go
untuk memastikan semuanya berjalan lancar.
Kita akan membuatnya di tutorial selanjutnya. Namun jika perintah protoc
sukses dan file Go berhasil digenerate, maka instalasi Anda sudah berhasil.
Troubleshooting Umum
❌ Error: protoc-gen-go: program not found or is not executable
✅ Solusi: Pastikan $(go env GOPATH)/bin
sudah ditambahkan ke $PATH
❌ Error: option go_package = ...
tidak dikenali
✅ Solusi: Pastikan menggunakan syntax = "proto3";
dan struktur package sesuai.
Mengapa Instalasi yang Benar Penting?
Pengalaman saya menunjukkan bahwa banyak masalah di fase pengembangan gRPC justru berasal dari setup awal yang kurang presisi: PATH tidak dikenali, versi plugin tidak sesuai, atau struktur direktori yang membingungkan.
Dengan mengikuti panduan ini secara teliti, Anda sudah selangkah lebih dekat membangun layanan gRPC yang robust, testable, dan maintainable.
Penutup
Instalasi dan setup gRPC memang tidak seinstan REST atau GraphQL, namun hal ini sepadan dengan performansi dan efisiensi komunikasi yang akan Anda peroleh. Dengan sistem kontrak yang eksplisit melalui .proto
, Anda dapat membangun sistem yang scalable, stabil, dan lintas platform.
Jangan lupa untuk commit semua file .proto
dan file hasil generate ke dalam VCS Anda — karena kontrak adalah bagian dari dokumentasi sistem Anda.
Ingin membangun microservices modern? Mari kita lanjut ke tahap berikutnya!
---
Struktur Proyek gRPC Sederhana di Go
Artikel Terhangat
Struktur Proyek gRPC Sederhana di Go
06 Jun 2025
Instalasi gRPC di Go Langkah demi Langkah
06 Jun 2025
Perbandingan gRPC dengan REST dan GraphQL
06 Jun 2025
Apa itu gRPC dan Mengapa Perlu Dipelajari?
06 Jun 2025

Struktur Proyek gRPC Sederhana di Go

Instalasi gRPC di Go Langkah demi Langkah

Perbandingan gRPC dengan REST dan GraphQL
