
Setelah memahami dasar penggunaan package fmt, kini kita lanjut ke tiga package penting lainnya dalam standard library Golang: errors, os, dan flag. Ketiganya sering digunakan dalam pembuatan aplikasi CLI (Command Line Interface) dan sangat berguna untuk menangani error, akses sistem operasi, dan parsing argumen dari command line.
1. Package errors – Membuat dan Menangani Error
Go menggunakan pendekatan eksplisit dalam menangani error, bukan exception seperti di banyak bahasa lain. Untuk membuat error baru, kita bisa menggunakan package errors.
📦 Import
import "errors"
🧪 Contoh Penggunaan
package main
import (
"errors"
"fmt"
)
func bagi(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("tidak bisa membagi dengan nol")
}
return a / b, nil
}
func main() {
hasil, err := bagi(10, 0)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Hasil:", hasil)
}
}
✅ Penjelasan
errors.New()membuat objek error baru.Biasanya error dikembalikan dari fungsi dan dicek dengan
if err != nil.
2. Package os – Akses Sistem Operasi
Package os digunakan untuk:
Mengakses environment variable
Membaca/menulis file
Keluar dari program
Menangani argumen command line (
os.Args)
📦 Import
import "os"
🧪 Contoh: Membaca Argumen
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Argumen command line:", os.Args)
}
os.Argsadalah slice[]stringyang berisi argumen saat program dijalankan. Index 0 adalah nama program itu sendiri.
🧪 Contoh: Keluar dari Program
os.Exit(1) // Keluar dari program dengan kode status 1
3. Package flag – Parsing Argumen Command Line
Package flag digunakan untuk membaca dan memproses argumen dari command line dengan cara yang lebih terstruktur. Ini sangat berguna saat kamu membuat aplikasi CLI yang menerima input seperti --port=8080, --debug=true, dan sebagainya.
📦 Import
import "flag"
🎯 Fungsi-Fungsi Utama
flag.String(name, default, description)
Untuk membuat flag berupa string.flag.Int(name, default, description)
Untuk membuat flag berupa integer.flag.Bool(name, default, description)
Untuk membuat flag berupa boolean (true/false).flag.Parse()
Digunakan untuk membaca flag setelah didefinisikan.
Nilai dari flag disimpan dalam pointer, jadi perlu diakses dengan
*flagVariable.
🧪 Contoh Penggunaan
package main
import (
"flag"
"fmt"
)
func main() {
// Definisi flags
nama := flag.String("nama", "Guest", "Nama pengguna")
umur := flag.Int("umur", 0, "Umur pengguna")
debug := flag.Bool("debug", false, "Mode debug")
// Parsing input dari CLI
flag.Parse()
// Menggunakan hasilnya
fmt.Println("Nama:", *nama)
fmt.Println("Umur:", *umur)
fmt.Println("Debug mode:", *debug)
}
🚀 Cara Menjalankan
Misalkan kamu menyimpan file di main.go, jalankan seperti ini di terminal:
go run main.go --nama=Fardan --umur=25 --debug=true
Output:
Nama: Fardan
Umur: 25
Debug mode: true
Kalau kamu tidak memberikan nilai, maka akan dipakai default value yang ditentukan saat flag.String, flag.Int, atau flag.Bool.
✅ Kenapa Harus Pakai flag?
Tanpa flag, kamu harus parsing argumen secara manual dari os.Args. Dengan flag, kamu bisa:
Menentukan tipe data
Menambahkan deskripsi yang muncul otomatis saat pakai
--helpMenghindari kesalahan parsing sendiri
Kesimpulan
Tiga package ini sangat penting dalam membuat aplikasi Go yang berbasis terminal:
| Package | Fungsi Utama |
errors | Membuat dan mengembalikan error |
os | Akses ke sistem operasi, argumen CLI, dan environment |
flag | Parsing argumen CLI dengan struktur yang jelas |
Dengan menguasai ketiganya, kamu sudah bisa mulai membuat aplikasi CLI yang interaktif dan lebih “siap produksi”.
Comments
Join the discussionNo comments yet. Be the first to comment.
Golang Standard Library
Golang Standard Library adalah seri tutorial singkat yang membahas paket-paket bawaan Go secara praktis, lengkap dengan contoh dan penjelasan sederhana. Cocok untuk pemula yang ingin menguasai fitur-fitur inti Golang.



