Struct

Pada sesi ini akan di bahas apa itu Struct pada Go

Go tidak memiliki class seperti yang ada di bahasa-bahasa strict OOP lain. Tapi Go memiliki tipe data struktur yang disebut dengan Struct.

Struct adalah kumpulan definisi variabel (atau property) dan fungsi (atau method), yang dibungkus sebagai tipe data baru dengan nama tertentu. Property dalam struct, tipe datanya bisa bervariasi. Mirip seperti map, hanya saja key-nya sudah didefinisikan di awal, dan tipe data tiap itemnya bisa berbeda.

Konsep struct di GO mirip dengan konsep class pada OOP, meski sebenarnya berbeda

Dengan memanfaatkan struct, grouping data akan lebih mudah dan tidak sulit untuk di-maintain.

Keyword type digunakan untuk mendeklarasikan sebuah struct:

type Person struct {
    Name string
    Age int
}
package main

import "fmt"

type Person struct {
	Name string
	Age  int
}

func main() {
	fmt.Println(Person{"David", 26})
}

Pada kode di atas kita membuat sebuah struct bernama person yang berisi property name dengan tipe string dan age dengan tipe int .

Output program menampilkan nilai dari variabel person bertipe struct

Membuat Instance dan Mengakses Object Struct

Kita dapat melakukan inisialisasi object dari struct dengan cara menambahkan tanda kurung kurawal {} setelah nama struct seperti berikut ini:

Pada kode di atas kita membuat sebuah instance dari struct yaitu p1 yang diassign dengan data yang diinginkan. Lalu untuk mengakses properti dari struct, gunakan . pada nama struct atau instance dari struct. Output program di atas adalah sebagi berikut:

Menampilkan nilai properti dari struct person

Kita juga bisa langsung mengisi nilai dari instance struct pada saat inisiasi seperti berikut ini dengan catatan urutan nilai harus sama dengan urutan property atau method yang di daftarkan.

atau

untuk cara di atas tidak perlu mengisi nilai struct secara terurut.

Embedded Struct

Embedded struct adalah menggunakan sebuah struct sebagai properti pada struct lain.

Pada kode di atas kita membuat 2 buat struct yaitu person dan student . Struct pada student memiliki properti person yang juga merupakan sebuah struct .

Menampilkan nilai dari instance struct student

Embedded struct bersifat mutable, nilai property-nya nya bisa diubah.

Khusus untuk properti yang bukan properti asli (properti turunan dari struct lain), bisa diakses dengan cara mengakses struct parent-nya terlebih dahulu, contohnya s1.person.batch. Nilai yang dikembalikan memiliki referensi yang sama dengan s1.batch.

Embedded Struct Dengan Nama Property Yang Sama

Jika salah satu nama properti sebuah struct memiliki kesamaan dengan properti milik struct lain yang di-embed, maka untuk mengakses property-nya harus dilakukan secara eksplisit atau jelas.

Menampilkan nilai dari variabel alamat yang berbeda dari masing-masing struct

Anonymous Struct

Anonymous struct adalah struct yang tidak dideklarasikan di awal sebagai tipe data baru, melainkan langsung ketika pembuatan instance. Teknik ini digunakan untuk pembuatan variabel instance yang struct-nya hanya dipakai sekali.

Menampilkan nilai dari instance anonymous struct

Last updated

Was this helpful?