- Beranda /
- Daftar Artikel /
- Mengenal Tipe Data Non-Primitif di Golang
Mengenal Tipe Data Non-Primitif di Golang
- Ade Dwi Putra
- Golang
- 22 Agustus 2024
Daftar Isi
Pendahuluan
Selain tipe data primitif seperti int
, float
, dan bool
, Golang juga menyediakan tipe data non-primitif yang lebih kompleks. Tipe data ini memungkinkan kita untuk menyimpan kumpulan data, membuat struktur yang lebih kompleks, dan menerapkan konsep yang lebih maju dalam pemrograman.
Dalam tutorial golang kali ini, kita akan mengenal beberapa tipe data non-primitif yang sering digunakan di Golang, seperti array, slice, map, struct, dan interface. Setiap tipe data akan dijelaskan dengan contoh kode yang dapat kalian praktekkan sendiri.
Namun, perlu diingat bahwa artikel ini hanya memberikan pengenalan dasar untuk setiap tipe data non-primitif tersebut. Untuk memahami lebih dalam dan menguasai masing-masing tipe data, kita akan membahasnya secara lebih rinci dalam artikel-artikel terpisah.
Di artikel-artikel mendatang, kita akan mengeksplorasi fitur-fitur lanjutan, kasus penggunaan, dan praktik terbaik dalam menggunakan array, slice, map, struct, dan interface di Golang. Tetap ikuti seri tutorial ini untuk memperdalam pemahaman kalian mengenai tipe data non-primitif di Golang.
Array
Array adalah kumpulan elemen dengan tipe data yang sama dan ukuran yang tetap. Setiap elemen dalam array dapat diakses menggunakan indeks.:
package main
import "fmt"
func main() {
var angka [5]int
angka[0] = 10
angka[1] = 20
angka[2] = 30
angka[3] = 40
angka[4] = 50
fmt.Println("Isi array:", angka)
}
Dalam contoh di atas, kita mendeklarasikan array angka dengan ukuran 5 dan menambahkan nilai pada setiap indeksnya.
Slice
Slice adalah tipe data yang lebih fleksibel dibandingkan array. Slice memungkinkan kita untuk bekerja dengan subset dari elemen array tanpa menentukan ukuran terlebih dahulu. Contoh Penggunaan Slice:
package main
import "fmt"
func main() {
angka := []int{10, 20, 30, 40, 50}
potong := angka[1:4]
fmt.Println("Isi slice:", potong)
}
Di sini, potong adalah slice yang berisi elemen dari indeks 1 sampai 3 dari array angka.
- Map Map adalah koleksi pasangan key-value yang tidak berurutan. Map memungkinkan kita untuk menyimpan data dengan kunci unik yang bisa berupa tipe data apapun, seperti string atau integer.
Contoh Penggunaan Map:
package main
import "fmt"
func main() {
mahasiswa := map[string]int{
"Budi": 21,
"Susi": 22,
"Joko": 23,
}
fmt.Println("Umur Budi:", mahasiswa["Budi"])
}
Contoh di atas menunjukkan bagaimana map mahasiswa menyimpan nama sebagai kunci dan umur sebagai nilai.
Struct
Struct adalah kumpulan dari berbagai tipe data yang berbeda, memungkinkan kita untuk membuat objek yang lebih kompleks.
Contoh Penggunaan Struct:
package main
import "fmt"
type Mahasiswa struct {
Nama string
Umur int
Jurusan string
}
func main() {
mhs := Mahasiswa{"Andi", 20, "Informatika"}
fmt.Println("Nama:", mhs.Nama)
fmt.Println("Umur:", mhs.Umur)
fmt.Println("Jurusan:", mhs.Jurusan)
}
Struct Mahasiswa di atas menggabungkan tiga tipe data berbeda: string untuk Nama dan Jurusan, serta int untuk Umur.
Interface
Interface adalah tipe data yang mendefinisikan serangkaian metode, tetapi tidak memiliki implementasi. Interface memungkinkan polymorphism di Golang, dimana satu fungsi bisa menerima berbagai tipe data yang berbeda selama tipe data tersebut mengimplementasikan metode yang sama.
Contoh Penggunaan Interface:
package main
import "fmt"
type Hewan interface {
Suara() string
}
type Anjing struct{}
func (a Anjing) Suara() string {
return "Guk guk!"
}
type Kucing struct{}
func (k Kucing) Suara() string {
return "Meong!"
}
func cetakSuara(h Hewan) {
fmt.Println(h.Suara())
}
func main() {
anjing := Anjing{}
kucing := Kucing{}
cetakSuara(anjing)
cetakSuara(kucing)
}
Dalam contoh ini, Anjing dan Kucing mengimplementasikan interface Hewan, memungkinkan fungsi cetakSuara untuk memanggil metode Suara pada kedua tipe data tersebut.
Tipe data non-primitif di Golang seperti array, slice, map, struct, dan interface memungkinkan kita untuk membuat program yang lebih dinamis dan fleksibel.
Dengan memahami cara kerja dan penggunaannya, kita bisa membangun aplikasi yang lebih kompleks dan efisien. Jangan ragu untuk mencoba kode-kode di atas dan eksplorasi lebih lanjut!