Skip to main content

Package errors, os, dan flag di Golang

Updated 3 min readMarkdown
Part of seriesGolang Standard Library
Package errors, os, dan flag di Golang

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.Args adalah slice []string yang 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 --help

  • Menghindari kesalahan parsing sendiri


Kesimpulan

Tiga package ini sangat penting dalam membuat aplikasi Go yang berbasis terminal:

PackageFungsi Utama
errorsMembuat dan mengembalikan error
osAkses ke sistem operasi, argumen CLI, dan environment
flagParsing argumen CLI dengan struktur yang jelas

Dengan menguasai ketiganya, kamu sudah bisa mulai membuat aplikasi CLI yang interaktif dan lebih “siap produksi”.


No comments yet. Be the first to comment.

Golang Standard Library

Part 2 of 5

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.

Up nextPackage strings dan strconv di GolangSetelah sebelumnya membahas fmt, errors, os, dan flag, kali ini kita akan membahas dua package penting lainnya dalam standard library Go, yaitu strings dan strconv. Keduanya sangat berguna untuk memproses dan memanipulasi string dan konversi data — k...