Sitemap
Arif Dwi Prasetya

Arif Dwi Prasetya

Go — Struct (Indonesia)

2 min readMay 12, 2026

--

Press enter or click to view image in full size

Hari ke 28 mencoba konsisten menulis, hari ini kita akan membahas struct di Go lang, lets go langsung saja

main.go

type Person struct {
Name string
Age int
Email string
}

struct itu seperti class di java atau Python

Get Arif Dwi Prasetya’s stories in your inbox

Join Medium for free to get updates from this writer.

Membuat dan mengakses struct:

// cara 1 — sebut field-nya
p1 := Person{Name: "Budi", Age: 25, Email: "budi@gmail.com"}

// cara 2 — urutan field
p2 := Person{"Ani", 30, "ani@gmail.com"}

// cara 3 — var, isi belakangan
var p3 Person
p3.Name = "Citra"
p3.Age = 22

fmt.Println(p1.Name) // Budi
fmt.Println(p2.Age) // 30

Struct bisa punya method:

type Rectangle struct {
Width float64
Height float64
}

func (r Rectangle) Area() float64 {
return r.Width * r.Height
}

rect := Rectangle{Width: 10, Height: 5}
fmt.Println(rect.Area()) // 50

Pointer receiver — untuk mengubah nilai struct:

func (r *Rectangle) Scale(factor float64) {
r.Width *= factor // mengubah nilai aslinya
r.Height *= factor
}

rect.Scale(2)
fmt.Println(rect.Width) // 20

Struct di dalam struct (embedding):

type Address struct {
City string
Country string
}

type Employee struct {
Name string
Age int
Address Address // nested struct
}

emp := Employee{
Name: "Budi",
Age: 25,
Address: Address{
City: "Jakarta",
Country: "Indonesia",
},
}

fmt.Println(emp.Address.City) // Jakarta
Press enter or click to view image in full size

Note :

Di Go, kalau nama field atau method huruf besar berarti public, huruf kecil berarti private — sesederhana itu tanpa keyword tambahan.

Sekian artikel yg sederhana ini ye kan semoga bisa bermanfaat. Terima kasih

— Arif Dwi Prasetya

--

--