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:
Pada kode di atas kita membuat sebuah struct bernama person
yang berisi property name
dengan tipe string
dan age
dengan tipe int
.
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:
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
.
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.
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.
Last updated