Menu
CoddyTech

Hapus Elemen

Pelajaran 14 dari 21 dalam kursus Slice dan Map di Go di Coddy.

Sejauh ini, kita telah mempelajari cara menambahkan elemen ke slice, menyalin slice, membandingkan slice, dan mendapatkan panjang slice.

Sekarang, pertanyaannya: Bagaimana cara menghapus elemen tertentu dari slice?

Sayangnya, tidak ada fungsi bawaan untuk tugas ini, tetapi jika kita menggabungkan hal-hal yang telah kita pelajari, kita bisa melakukan operasi ini.

Misalkan kita memiliki slice seperti ini:

books := []string{"Golang", "JavaScript", "Java", "Python", "PostgreSQL", "TypeScript"}

Bisakah kamu memikirkan apa yang bisa kita lakukan jika kita perlu mendapatkan slice baru tanpa elemen tertentu, misalnya, menghapus "PostgreSQL"?

Di sini kita bisa menggunakan operator slice, jika kamu ingat:

books := []string{"Golang", "JavaScript", "Java", "Python", "PostgreSQL", "TypeScript"}
fmt.Println(books[:4])
fmt.Println(books[5:])

Kita akan mendapatkan dua slice seperti ini:

[Golang JavaScript Java Python]
[TypeScript]

Di sini, kita berhasil menghapus elemen "PostgreSQL", tetapi kita perlu menggabungkan slice-slice ini menjadi satu. Jadi, kita bisa menggunakan fungsi <strong>append</strong> untuk menggabungkan kedua slice:

books := []string{"Golang", "JavaScript", "Java", "Python", "PostgreSQL", "TypeScript"}
books = append(books[:4], books[5:]...)
fmt.Println(books)

Dalam kode ini, kita menggunakan fungsi <strong>append</strong> untuk menambahkan slice kedua (<strong>books[5:]</strong>) ke bagian pertama (<strong>books[:4]</strong>). Perhatikan bahwa kita menggunakan <strong>...</strong> untuk mengubah bagian kedua menjadi elemen-elemen terpisah agar bisa ditambahkan ke bagian pertama.

Hasilnya adalah:

[Golang JavaScript Java Python TypeScript]

Kita berhasil menghapus item "PostgreSQL" dari slice <strong>books</strong>.
 

challenge icon

Tantangan

Mudah

Tulis program yang menerima input dari pengguna dan menghapus item dari slice pada indeks yang ditunjukkan oleh angka yang diberikan pengguna untuk dihapus.

Coba sendiri

package main

import "fmt"

func main() {
	// Ambil input dari pengguna. Jangan ubah ini!
	var x int
	fmt.Scanln(&x)
	
	// Definisikan slice. Jangan ubah ini!
	lang := []string{"Rust", "Java", "JavaScript", "Golang", "Haskell", "C#"}
	
	// Hapus elemen pada indeks yang ditentukan
 

	// Cetak slice yang telah diperbarui
	 
}

Semua pelajaran di Slice dan Map di Go

Latihan sendiri: Compiler Go online