Menu
CoddyTech

Menghapus Elemen

Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 13 dari 66.

Terkadang kamu perlu menghapus elemen dari vector, bukan hanya menambahkannya. Rust menyediakan dua method utama untuk menghapus elemen, masing-masing dirancang untuk situasi yang berbeda.

.pop() method menghapus dan mengembalikan elemen terakhir dari vector:

let mut numbers = vec![10, 20, 30, 40];
let last = numbers.pop(); // menghapus 40, mengembalikan Some(40)
// numbers sekarang berisi [10, 20, 30]

Perhatikan bahwa .pop() mengembalikan Option, yaitu Some(value) jika ada elemen yang dihapus, atau None jika vector sudah kosong. Ini membuatnya aman digunakan bahkan pada vector kosong.

method .remove() menghapus elemen pada indeks tertentu dan mengembalikan elemen tersebut:

let mut fruits = vec!["apple", "banana", "cherry"];
let removed = fruits.remove(1); // menghapus "banana"
// fruits sekarang berisi ["apple", "cherry"]

Saat kamu menggunakan .remove(), semua elemen setelah indeks yang dihapus bergeser ke kiri untuk mengisi celah. Operasi ini bisa lebih lambat untuk vector berukuran besar saat menghapus elemen dari awal atau tengah, karena banyak elemen perlu dipindahkan.

Kedua method memerlukan vector yang mutable karena keduanya mengubah isinya. Pilih .pop() saat kamu ingin menghapus elemen dari akhir, dan .remove() saat kamu perlu menghapus elemen dari posisi tertentu.

challenge icon

Tantangan

Mudah

Kamu akan menerima dua input: pertama, daftar angka yang dipisahkan koma, dan kedua, indeks yang akan dihapus. Baca kedua input, buat vector dari angka-angka tersebut, hapus elemen pada indeks yang ditentukan, lalu cetak elemen yang tersisa pada baris terpisah.

Persyaratan:

  • Baca input pertama yang berisi angka-angka yang dipisahkan koma (misalnya, 10,20,30,40,50)
  • Pisahkan string berdasarkan koma dan ubah setiap angka menjadi bilangan bulat
  • Buat vector yang dapat diubah dari angka-angka tersebut
  • Baca input kedua dan ubah menjadi bilangan bulat yang menunjukkan indeks
  • Gunakan .remove() untuk menghapus elemen pada indeks tersebut
  • Cetak setiap elemen yang tersisa pada baris terpisah

Input:

  • Baris pertama: Bilangan bulat yang dipisahkan koma (misalnya, 10,20,30,40,50)
  • Baris kedua: Bilangan bulat yang menunjukkan indeks yang akan dihapus

Output: Cetak setiap elemen vector yang tersisa pada baris terpisah

Coba sendiri

use std::io;

fn main() {
    // Baca angka-angka yang dipisahkan dengan koma
    let mut numbers_input = String::new();
    io::stdin().read_line(&mut numbers_input).expect("Failed to read line");
    
    // Baca indeks elemen yang akan dihapus
    let mut index_input = String::new();
    io::stdin().read_line(&mut index_input).expect("Failed to read line");
    
    // TODO: Tulis kodemu di bawah ini
    // 1. Pisahkan numbers_input berdasarkan koma dan ubah menjadi bilangan bulat
    // 2. Buat vektor yang dapat diubah dari angka-angka tersebut
    // 3. Ubah index_input menjadi bilangan bulat
    // 4. Hapus elemen pada indeks yang ditentukan
    // 5. Cetak setiap elemen yang tersisa pada baris terpisah
    
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Rust online