#30: Struct - Belajar Golang Dari Dasar

By Rizky Kurniawan - October 11, 2022 ~3 mins read
Artikel ini merupakan bagian dari seri Belajar Golang Dari Dasar

Struct

Struct adalah kumpulan data field yang dideklarasikan dengan tipe data. Struct berfungsi sebagai sebuah template untuk kumpulan beberapa data. Jika dibandingkan dengan pemrograman berorientasi objek, struct ini hampir sama seperti sebuah objek atau class. Biasanya, struct digunakan sebagai representasi dari sebuah data dalam aplikasi kita. Contoh data yang bisa dijadikan struct yaitu seperti user, product, dan lain-lain.

Sebagai contoh, misalkan kita memiliki data user dengan atribut name, email, dan age. Maka berikut ini contoh kodenya jika dituliskan dalam bentuk struct:

type User struct {
	Name, Email string
	Age         int
}

Membuat Data Berdasarkan Struct

Seperti yang sudah kita pahami sebelumnya, struct hanyalah template untuk suatu data. Saat kita membuat struct, kita tidak bisa langsung menggunakannya karena tidak memiliki data apapun. Kita bisa membuat data berdasarkan struct yang sudah kita buat. Hal ini hampir sama seperti saat kita membuat sebuah objek berdasarkan class pada pemrograman berorientasi objek.

Untuk membuat data berdasarkan struct, kita bisa mendeklarasikan sebuah variabel dengan tipe data struct yang ingin kita gunakan. Perhatikan contoh berikut ini:

type User struct {
	Name, Email string
	Age         int
}

func main() {
	var user User

	user.Name = "Rizky"
	user.Email = "[email protected]"
	user.Age = 22

	fmt.Println(user)
}

output:

{Rizky [email protected] 22}

Untuk mengambil data berdasarkan field kita bisa gunakan tanda titik seperti ini:

fmt.Println(user.Name)
fmt.Println(user.Email)
fmt.Println(user.Age)

output:

Struct Literals

Ada beberapa cara yang bisa kita gunakan untuk membuat struct, salah satunya adalah dengan membuat struct dan mengisi datanya secara langsung. Berikut ini contohnya:

Dengan menyebutkan nama field:

var user1 = User{
	Name:  "User 1",
	Email: "[email protected]",
	Age:   22,
}

Tanpa menyebutkan nama field:

var user2 = User{
	"User 2",
	"[email protected]",
	20,
}

Perlu diperhatikan, ketika kita membuat data struct tanpa menyebutkan nama fieldnya, maka urutan data tiap field harus sesuai dengan struct-nya. Jika urutannya tidak sesuai, maka rentan terjadi error saat ada perubahan pada struct. Oleh karena itu, disarankan mengunakan cara yang menyebutkan nama field karena lebih aman jika struct kita ubah.

Struct Method

Dalam pemrograman berorientasi objek, kita biasa membuat sebuah class yang di dalamnya terdapat satu atau lebih method yang memiliki tugasnya masing-masing. Di Golang, kita juga bisa membuat sebuah struct agar seolah-olah memiliki method seperti class dalam pemrograman berorientasi objek.

Cara membuat struct method adalah dengan menuliskan struct yang ingin kita tambahkan method di depan deklarasi function. Agar tidak membingungkan, berikut ini adalah contoh membuat struct method:

package main

import fmt

// Membuat struct User
type User struct {
	Name, Email string
	Age         int
}

// Membuat method yang akan ditempelkan pada struct User.
// kita menuliskan struct-nya di depan nama function,
// lalu bisa kita gunakan struct tersebut dalam function yang kita buat.
func (user User) GetName() string {
	return user.Name
}

// Contoh, menambahkan method lainnya pada stuct User.
funct (user User) GetEmail() string {
	return user.Email
}

func main() {
	var user User
	user.Name = "Rizky"
	user.Email = "[email protected]"
	user.Age = 22

	// karena struct user sudah ditambahkan method, sekarang kita bisa menggunakannya
	fmt.Println(user.GetName())
	fmt.Println(user.GetEmail())
}

output:

Berikutnya: #31: Interface

Bagikan:

Ingin Berdiskusi?

Yuk bergabung di Grup Telegram Ruang Developer atau mulai diskusi melalui GitHub. See You!

Dapatkan contoh source code project backend, frontend, atau fullstack untuk kamu amati, tiru, dan modifikasi sesuka hati. Klik untuk melihat detail!
comments powered by Disqus

Berlangganan Gratis

Kamu akan menerima email update dari Ruang Developer

Beri Dukungan

Beri dukungan, dapatkan full source code project web untuk bahan referensi, tiru, dan modifikasi.
Lightbox