Di Golang, Struct adalah tipe data yang memungkinkan Anda untuk mengelompokkan beberapa data ke dalam satu unit. Struct sangat mirip dengan “template” atau “blueprint” untuk membuat objek dalam bahasa pemrograman lain seperti Python atau Java. Dengan struct, Anda dapat menyimpan data yang lebih kompleks yang terdiri dari berbagai tipe data.
Kenapa Struct Itu Penting?
Struct sangat penting untuk:
- Mengorganisasi Data: Struct mempermudah pengelolaan data yang memiliki atribut yang saling terkait.
 - Meningkatkan Readability: Kode Anda akan lebih rapi dan mudah dipahami.
 - Mengurangi Kerumitan: Anda bisa menggantikan banyak variabel dengan satu struct.
 
Membuat Struct di Golang
Membuat struct di Golang sangatlah sederhana. Berikut adalah sintaks dasarnya:
type NamaStruct struct {
    Field1 TipeData
    Field2 TipeData
    // Tambahkan field lainnya di sini
}Contoh Sederhana Struct
Mari kita buat contoh struct bernama Mahasiswa:
package main
import "fmt"
// Membuat struct Mahasiswa
type Mahasiswa struct {
    Nama   string
    NIM    string
    Jurusan string
    Umur   int
}
func main() {
    // Membuat instance dari struct Mahasiswa
    mhs := Mahasiswa{
        Nama:    "Gilang Pratama",
        NIM:     "123456",
        Jurusan: "Teknik Informatika",
        Umur:    20,
    }
    // Menampilkan data
    fmt.Println("Data Mahasiswa:")
    fmt.Println("Nama:", mhs.Nama)
    fmt.Println("NIM:", mhs.NIM)
    fmt.Println("Jurusan:", mhs.Jurusan)
    fmt.Println("Umur:", mhs.Umur)
}Output:
Data Mahasiswa:
Nama: Gilang Pratama
NIM: 123456
Jurusan: Teknik Informatika
Umur: 20Cara Mengakses dan Memodifikasi Struct
Setelah membuat struct, Anda bisa mengakses atau memodifikasi nilai field-nya seperti ini:
mhs.Nama = "Fajar Santoso" // Mengubah nama
fmt.Println(mhs.Nama)      // Output: Fajar SantosoStruct dalam Struct (Nested Struct)
Anda juga bisa menyematkan struct di dalam struct lainnya. Misalnya:
type Alamat struct {
    Kota    string
    Provinsi string
}
type Mahasiswa struct {
    Nama   string
    NIM    string
    Alamat Alamat
}Menggunakannya:
mhs := Mahasiswa{
    Nama: "Andi",
    NIM:  "654321",
    Alamat: Alamat{
        Kota:    "Bandung",
        Provinsi: "Jawa Barat",
    },
}
fmt.Println("Kota:", mhs.Alamat.Kota) // Output: Kota: BandungMetode pada Struct
Golang memungkinkan Anda menambahkan fungsi ke struct menggunakan metode. Contoh:
func (m Mahasiswa) TampilkanInfo() {
    fmt.Printf("Nama: %s, NIM: %s\n", m.Nama, m.NIM)
}
func main() {
    mhs := Mahasiswa{
        Nama: "Siti",
        NIM:  "789123",
    }
    mhs.TampilkanInfo() // Output: Nama: Siti, NIM: 789123
}Struct vs Class
Jika Anda berasal dari latar belakang OOP (Object-Oriented Programming), struct di Golang mirip dengan class, tetapi tanpa konsep inheritance. Golang lebih menekankan pada komposisi daripada pewarisan.
Tips Kreatif Menggunakan Struct
1. Gunakan Struct untuk API Response
Struct sering digunakan untuk memetakan data JSON dari API.
Contoh:
type Response struct {
    Status  string `json:"status"`
    Message string `json:"message"`
}2. Struct untuk Validasi Formulir
Anda bisa membuat struct untuk merepresentasikan data yang diinputkan pengguna.
Kesimpulan
Struct adalah alat yang sangat kuat di Golang untuk menyimpan data yang kompleks dengan cara yang terorganisasi. Dengan memahami dan memanfaatkan struct, Anda bisa membuat kode yang lebih rapi, mudah dipahami, dan efisien. Ingat, struct bukan hanya sekadar kumpulan data, tetapi juga fondasi untuk membangun aplikasi yang lebih kompleks di Golang.
Selamat belajar dan bereksperimen dengan struct! 🚀