Struct di Go: Panduan Praktis dengan Contoh
1
min read .
Updated on
struct di Go itu lifesaver buat memodelkan data kompleks. Gini deh, daripada ribet nyimpen tiap variabel terpisah, kita bisa gabungin semuanya jadi satu unit.
Membuat Struct
type Person struct {
Name string
Age int
Address string
}
// Instance
p := Person{Name: "Alice", Age: 30, Address: "123 Main St"}
fmt.Println(p.Name, p.Age, p.Address)
Cara Membuat Instance
- Literal struct:
p := Person{Name:"Alice", Age:30}
- Fungsi
new
:p := new(Person); p.Name="Bob"
- Nilai nol:
p := Person{}
Mengakses & Memodifikasi
p.Age = 31
fmt.Println(p.Age) // 31
Struct dengan Metode
func (p Person) Display() {
fmt.Printf("%s, %d, %s\n", p.Name, p.Age, p.Address)
}
func (p *Person) HaveBirthday() {
p.Age++
}
p.Display()
p.HaveBirthday()
p.Display()
Struct sebagai Argumen Fungsi
- By value → salinan dibuat
- By pointer → fungsi bisa ubah data asli
func celebrateBirthdayPtr(p *Person) { p.Age++ }
celebrateBirthdayPtr(&p)
fmt.Println(p.Age) // 31
Struct Bersarang
type Address struct { Street, City, Zip string }
type Person struct { Name string; Age int; Address Address }
p := Person{Name:"Alice", Age:30, Address:Address{Street:"123 Main St", City:"Wonderland", Zip:"12345"}}
fmt.Printf("%s lives at %s, %s, %s.\n", p.Name, p.Address.Street, p.Address.City, p.Address.Zip)
Refleksi Singkat
Pada akhirnya, struct bikin kode Go lebih rapi dan fleksibel. Dari entitas sederhana sampai data kompleks bersarang, semua bisa diatur dengan elegan.