package main

import (
	"errors"
	"fmt"
	"strings"
)

type Akun struct {
	nama  string
	saldo int
	aktif bool
}

func NewAkun(nama string, saldoAwal int) (Akun, error) {
	if strings.TrimSpace(nama) == "" {
		return Akun{}, errors.New("nama tidak boleh kosong")
	}
	if saldoAwal < 0 {
		return Akun{}, fmt.Errorf("saldo awal %d tidak boleh negatif", saldoAwal)
	}
	return Akun{nama: nama, saldo: saldoAwal, aktif: true}, nil
}

func (a Akun) Ringkasan() string {
	return fmt.Sprintf("Akun %q (aktif: %v) saldo %d", a.nama, a.aktif, a.saldo)
}

func main() {
	a, err := NewAkun("Budi", 500000)
	if err != nil {
		fmt.Println("galat:", err)
		return
	}
	fmt.Println(a.Ringkasan())

	_, err = NewAkun("   ", 100)
	fmt.Println("galat:", err)

	_, err = NewAkun("Siti", -1)
	fmt.Println("galat:", err)
}
