Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

Array & Slice di Go: Tambah, Hapus, Cari, Update, Sort & Filter

1 min read .
Array & Slice di Go: Tambah, Hapus, Cari, Update, Sort & Filter

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.

Lihat Juga

chevron-up