Tipe Data Komposit (Composite Data Types) di Golang
Tipe data komposit, atau tipe data terstruktur, adalah pondasi penting dalam pemrograman Go (Golang). Tipe-tipe ini memungkinkan Anda untuk mengelompokkan beberapa nilai menjadi satu unit yang lebih besar dan terorganisir. Di Golang, tipe data komposit utama meliputi Array, Slice, Map, dan Struct.
Selain tipe data primitif yang udah kita bahas sebelumnya, Golang punya tipe data komposit yang memungkinkan kita mengelompokkan beberapa nilai jadi satu unit yang lebih besar dan terorganisir. Empat tipe utama: Array, Slice, Map, dan Struct.
Array — Koleksi dengan Ukuran Tetap
Array adalah kumpulan elemen dengan tipe data sama, yang jumlah elemennya sudah ditentukan dan tidak bisa diubah. Ukuran ini adalah bagian dari tipe — [5]int dan [10]int dianggap dua tipe berbeda. Nilai awal otomatis zero value (0 untuk int, "" untuk string, nil untuk pointer).
Slice — Abstraksi Array yang Flexible
Slice adalah tipe koleksi paling umum di Golang. Dibangun di atas array, tapi ukurannya dinamis. Slice terdiri dari tiga komponen: pointer ke array dasar (backing array), length (jumlah elemen yang ada), dan capacity (jumlah maksimal sebelum realokasi).
Map — Key-Value Dictionary
Map adalah kumpulan pasangan key-value yang tidak berurutan — mirip dictionary atau hash table. Setiap key harus unik, dan aksesnya sangat cepat (O(1) average) karena dioptimalkan pake hashing.
Struct — Custom Data Type
Struct adalah kumpulan field bernama yang bisa punya tipe data berbeda. Ini cara Golang mendefinisikan tipe data bentukan — mirip object di bahasa lain, tanpa inheritance.
Kapan Pakai Yang Mana?
Array jarang dipake langsung di production — slice hampir selalu jadi pilihan untuk koleksi data berurutan karena lebih flexible. Map cocok buat lookup berdasarkan key. Struct untuk model data kompleks. Kombinasi slice of struct adalah pattern paling umum di kode Golang sehari-hari.
