Array & Slice di Go: Tambah, Hapus, Cari, Update, Sort & Filter
1
min read .
Updated on
Bekerja dengan array dan slice di Go itu gampang-gampang susah—apalagi kalau datanya berupa struct. Gini deh, kalau kita punya Person
struct:
type Person struct { Name string; Age int }
people := []Person{
{"Alice", 30}, {"Bob", 25}, {"John", 20}, {"Zara", 35},
}
1. Menambah Elemen
people = append(people, Person{"Eve", 28})
2. Menghapus Elemen
func deletePerson(people []Person, name string) []Person {
for i, p := range people {
if p.Name == name { return append(people[:i], people[i+1:]...) }
}
return people
}
people = deletePerson(people, "Bob")
3. Mencari Elemen
func searchByName(people []Person, name string) (Person, bool) {
for _, p := range people {
if p.Name == name { return p, true }
}
return Person{}, false
}
p, found := searchByName(people, "John")
4. Memperbarui Elemen
func updateAge(people []Person, name string, newAge int) []Person {
for i, p := range people {
if p.Name == name { people[i].Age = newAge; break }
}
return people
}
people = updateAge(people, "Alice", 31)
5. Mengurutkan Array
Naik:
sort.Slice(people, func(i, j int) bool { return people[i].Age < people[j].Age })
Turun:
sort.Slice(people, func(i, j int) bool { return people[i].Age > people[j].Age })
6. Memfilter Elemen
func filterByAge(people []Person, ageLimit int) []Person {
var result []Person
for _, p := range people { if p.Age > ageLimit { result = append(result, p) } }
return result
}
filtered := filterByAge(people, 25)
Kesimpulan
Dengan snippet ini, kamu bisa menambah, menghapus, mencari, memperbarui, mengurutkan, dan memfilter array atau slice struct
di Go dengan mudah. Gini deh, setelah menguasai ini, manipulasi data jadi jauh lebih cepat dan efisien.