Back to Blog
Go Language

Struct dan Struct Method di Golang

10 April 20252 min read
Struct dan Struct Method di Golang

Halo teman-teman, kali ini kita bakal bahas salah satu fitur penting di Golang yang sering banget dipakai di dunia backend, yaitu struct dan struct method.

Kalau kamu udah pernah pakai OOP di bahasa lain kayak Java atau Python, kamu bisa nganggep struct itu kayak "class" versi Golang, tapi lebih ringan dan tanpa inheritance. Nah, yuk kita kupas satu-satu.


Apa Itu Struct?

Struct adalah kumpulan dari beberapa field (atau properti) yang didefinisikan di dalam satu tipe data. Cocok banget buat ngegambarin entitas dalam aplikasi kamu. Misalnya, kita bikin struct User:

go
package main

import "fmt"

type User struct {
    Name  string
    Email string
    Age   int
}

func main() {
    user1 := User{
        Name:  "Fardan",
        Email: "fardan@example.com",
        Age:   25,
    }

    fmt.Println(user1)
}

Output:

plaintext
{Fardan fardan@example.com 25}

Struct ini kayak blueprint untuk objek. Kamu bisa bikin banyak user dari struct User.


Access Field di Struct

Mau ambil data tertentu? Gampang:

go
fmt.Println("Nama:", user1.Name)
fmt.Println("Email:", user1.Email)

Struct Method: Bikin Struct Jadi Lebih Hidup

Struct method adalah function yang "nempel" ke struct tertentu. Jadi kayak method di dalam class.

Contoh: kita mau bikin method IsAdult() di struct User.

go
func (u User) IsAdult() bool {
    return u.Age >= 18
}

Penjelasan:

* (u User) artinya kita bikin method yang receiver-nya bertipe User.

* Nama variabel u bebas, tapi biasanya huruf pertama dari nama struct.

Lalu di main():

go
fmt.Println("Apakah user dewasa?", user1.IsAdult())

Bonus: Struct dalam Struct

Struct bisa juga di-nest. Misalnya:

go
type Address struct {
    City    string
    Country string
}

type User struct {
    Name    string
    Email   string
    Age     int
    Address Address
}

Lalu di main():

go
user2 := User{
    Name:  "Ajitama",
    Email: "ajitama@example.com",
    Age:   30,
    Address: Address{
        City:    "Jakarta",
        Country: "Indonesia",
    },
}

fmt.Println("Kota user:", user2.Address.City)

Kesimpulan

Struct dan struct method itu fondasi penting dalam pemrograman Go. Mereka menggantikan konsep class dan object-oriented programming dengan cara yang lebih simpel dan langsung. Setelah kamu ngerti ini, kamu bakal lebih pede bikin model untuk aplikasi, handle request, atau bahkan desain arsitektur REST API.


*Challege:*

* Coba bikin struct Product dan method IsAvailable() yang return true kalau stok > 0

Article Series

Golang Basic

Lanjutkan membaca seri ini untuk melihat perjalanan lengkapnya.

  1. 1
  2. 2
    Menginisiasi Project Golang
    23 Mar 20252 min read
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
    Function di Golang
    30 Mar 20253 min read
  8. 8
  9. 9
    Struct dan Struct Method di Golang
    10 Apr 20252 min readCurrent article
  10. 10
  11. 11
    Pointer di Golang
    14 Apr 20253 min read
  12. 12
  13. 13