Struct di Go: Panduan Praktis dengan Contoh
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 Copy 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 Copy p.Age = 31 fmt.Println(p.Age) // 31 Struct dengan Metode Copy 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 Copy func celebrateBirthdayPtr(p *Person) { p.Age++ } celebrateBirthdayPtr(&p) fmt.Println(p.Age) // 31 Struct Bersarang Copy 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.