Struct

Membuat tipe sendiri dengan beberapa field.

Part 16 dari 23 ± 35 menit Gratis

Struct = tipe buatan sendiri

Struct mengelompokkan beberapa data (field) menjadi satu tipe — seperti formulir dengan beberapa kolom.

type Produk struct {
    Nama  string
    Harga int
    Stok  int
}

Membuat nilai struct

p1 := Produk{Nama: "Pensil", Harga: 2000, Stok: 10}   // dengan nama field (disarankan)
p2 := Produk{"Buku", 15000, 5}                         // urutan posisi
var p3 Produk                                          // semua field zero value

Mengakses dan mengubah field

fmt.Println(p1.Nama)
p1.Stok = 8

Struct disalin saat di-assign

a := Produk{Nama: "A", Stok: 1}
b := a        // salinan
b.Stok = 99
fmt.Println(a.Stok)   // 1 (tidak berubah)

Gunakan pointer (&a) untuk berbagi data yang sama.

Pointer ke struct

pp := &Produk{Nama: "Penghapus"}
pp.Harga = 1000       // otomatis (*pp).Harga

Struct di dalam struct & embedding

type Alamat struct{ Kota string }
type Pelanggan struct {
    Nama string
    Alamat           // embedding: p.Kota langsung bisa diakses
}

Struct tag dan JSON

Field bisa diberi tag untuk pengkodean JSON:

type User struct {
    Nama  string `json:"nama"`
    Email string `json:"email,omitempty"`
}

Hanya field berawalan huruf kapital yang ikut di-encode (exported).

Mencetak struct

fmt.Printf("%v", p) → {Pensil 2000 10}, %+v → {Nama:Pensil Harga:2000 Stok:10}.

Slice of struct

Pola paling umum untuk data nyata:

daftar := []Produk{{Nama: "A"}, {Nama: "B"}}
for _, p := range daftar { fmt.Println(p.Nama) }

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X