Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

Struct di Go: Panduan Praktis dengan Contoh

1 min read .
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

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.

Lihat Juga

chevron-up