Pendalaman Struktur Data di Golang: Array, Slice, dan Map

struktur data golang

Golang, atau Go, adalah bahasa pemrograman yang dikembangkan oleh Google yang menekankan kesederhanaan, efisiensi, dan kinerja tinggi. Salah satu aspek penting dalam penguasaan Go adalah memahami dan menggunakan struktur data dasar seperti array, slice, dan map. Artikel ini akan menjelaskan ketiga struktur data tersebut secara mendalam beserta contoh penerapannya.

1. Array

Array adalah struktur data dasar di Go yang digunakan untuk menyimpan elemen dengan tipe data yang sama dalam jumlah tetap. Ukuran array ditentukan saat deklarasi dan tidak dapat diubah.

Deklarasi Array

var angka [5]int  // Array berisi 5 elemen dengan tipe int
temperatur := [3]float64{32.0, 35.5, 30.2}  // Array berisi 3 elemen dengan inisialisasi awal

Akses dan Penggunaan Array

Elemen array dapat diakses menggunakan indeks mulai dari 0.

angka[0] = 10  // Menetapkan nilai elemen pertama
fmt.Println(angka[0])  // Output: 10

Catatan: Array di Go bersifat fixed-length, artinya jika ukuran array ditentukan, ia tidak dapat ditambah atau dikurangi.

2. Slice

Slice adalah abstraksi dari array yang lebih fleksibel. Slice dapat berubah ukuran selama program berjalan, membuatnya lebih sering digunakan dibanding array.

Membuat Slice

Slice bisa dibuat dari array atau langsung didefinisikan.

angka := []int{1, 2, 3, 4, 5}  // Slice dengan elemen yang diinisialisasi

Operasi Slice

Slice mendukung berbagai operasi, seperti penambahan elemen dengan append.

angka = append(angka, 6)  // Menambahkan elemen baru ke slice
fmt.Println(angka)  // Output: [1 2 3 4 5 6]

Slicing

Slice juga dapat dibentuk dari array atau slice lain.

subset := angka[1:4]  // Membuat slice dari elemen ke-1 hingga ke-3
fmt.Println(subset)  // Output: [2 3 4]

Catatan: Slice berbagi memori dengan array atau slice yang menjadi asalnya, sehingga perubahan elemen pada slice dapat mempengaruhi array asal.

3. Map

Map adalah struktur data asosiatif di Go yang memungkinkan penyimpanan pasangan key-value. Map sangat berguna untuk pengambilan data secara cepat berdasarkan key-nya.

Deklarasi dan Inisialisasi Map

mahasiswa := make(map[string]int)  // Map dengan key string dan nilai int
mahasiswa["Aldo"] = 90
mahasiswa["Budi"] = 85

Akses dan Penghapusan Elemen Map

fmt.Println(mahasiswa["Aldo"])  // Output: 90

// Menghapus elemen dari map
delete(mahasiswa, "Budi")

Pengecekan Keberadaan Kunci

Untuk memeriksa apakah sebuah key ada dalam map:

nilai, ada := mahasiswa["Citra"]
if ada {
    fmt.Println("Nilai Citra:", nilai)
} else {
    fmt.Println("Citra tidak ditemukan")
}

Kesimpulan

Memahami penggunaan array, slice, dan map sangat penting untuk mengelola data dalam program Go. Array menawarkan struktur tetap, slice menyediakan fleksibilitas, dan map memungkinkan penyimpanan serta pencarian data yang efisien. Dengan memahami perbedaan dan cara kerja struktur data ini, pengembangan aplikasi Go dapat dilakukan dengan lebih efektif dan efisien.