Array
Array adalah struktur data yang menyimpan kumpulan nilai dengan tipe data yang sama dan ukuran tetap.
Contoh Masalah
Bagaimana cara menyimpan dan mengolah kumpulan data dengan ukuran tetap? Misalnya:
- Menyimpan nilai ujian 5 mata pelajaran
- Menghitung rata-rata nilai
- Mencari nilai tertinggi dan terendah
Penyelesaian
package main
import "fmt"
func main() {
// 1. Deklarasi dan inisialisasi array
var nilai [5]int = [5]int{85, 90, 78, 88, 95}
// Cara singkat
hobi := [3]string{"Membaca", "Menulis", "Coding"}
// 2. Mengakses dan mengubah elemen
fmt.Println("Nilai Ujian:")
for i := 0; i < len(nilai); i++ {
fmt.Printf("Mata Pelajaran %d: %d\n", i+1, nilai[i])
}
// Mengubah nilai
nilai[2] = 82
fmt.Printf("\nNilai mata pelajaran 3 diubah menjadi: %d\n", nilai[2])
// 3. Menghitung rata-rata
total := 0
for _, n := range nilai {
total += n
}
rataRata := float64(total) / float64(len(nilai))
fmt.Printf("\nRata-rata nilai: %.2f\n", rataRata)
// 4. Mencari nilai tertinggi dan terendah
tertinggi := nilai[0]
terendah := nilai[0]
for _, n := range nilai {
if n > tertinggi {
tertinggi = n
}
if n < terendah {
terendah = n
}
}
fmt.Printf("Nilai tertinggi: %d\n", tertinggi)
fmt.Printf("Nilai terendah: %d\n", terendah)
// 5. Menampilkan hobi
fmt.Printf("\nDaftar Hobi:\n")
for i, h := range hobi {
fmt.Printf("%d. %s\n", i+1, h)
}
}
Penjelasan Kode
Deklarasi Array
- Format:
var nama [ukuran]tipe - Contoh:
var nilai [5]int
- Format:
Inisialisasi
- Dengan nilai:
[5]int{1, 2, 3, 4, 5} - Otomatis:
[...]int{1, 2, 3}
- Dengan nilai:
Akses dan Ubah
- Akses:
array[index] - Index dimulai dari 0
- Akses:
Output
Nilai Ujian:
Mata Pelajaran 1: 85
Mata Pelajaran 2: 90
Mata Pelajaran 3: 78
Mata Pelajaran 4: 88
Mata Pelajaran 5: 95
Nilai mata pelajaran 3 diubah menjadi: 82
Rata-rata nilai: 88.00
Nilai tertinggi: 95
Nilai terendah: 82
Daftar Hobi:
1. Membaca
2. Menulis
3. Coding
Tips
- Array di Go memiliki ukuran tetap
- Index dimulai dari 0
- Gunakan len() untuk mendapatkan panjang array
- Jika ukuran bisa berubah, gunakan slice
- Array adalah value type (disalin saat assignment)