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:
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:
{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:
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.
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():
fmt.Println("Apakah user dewasa?", user1.IsAdult())Bonus: Struct dalam Struct
Struct bisa juga di-nest. Misalnya:
type Address struct {
City string
Country string
}
type User struct {
Name string
Email string
Age int
Address Address
}Lalu di main():
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.
- 1Panduan Instalasi Golang di WSL 2 Ubuntu21 Mar 20252 min read
- 2Menginisiasi Project Golang23 Mar 20252 min read
- 3Memulai Program dengan Hello World23 Mar 20252 min read
- 4Tipe Data String, Boolean, dan Number di Golang26 Mar 20253 min read
- 5Tipe Data Array, Slice, dan Map di Golang27 Mar 20252 min read
- 6Panduan Lengkap If-Else dan Switch dalam Golang27 Mar 20253 min read
- 7Function di Golang30 Mar 20253 min read
- 8Panic, defer dan recovery di Golang10 Apr 20253 min read
- 9Struct dan Struct Method di Golang10 Apr 20252 min readCurrent article
- 10Interface dan Interface Kosong di Golang10 Apr 20253 min read
- 11Pointer di Golang14 Apr 20253 min read
- 12🧠Latihan Pointer di Golang14 Apr 20252 min read
- 13Package, Import, dan Access Modifier di Golang16 Apr 20253 min read