Main Menu

Belajar Rust Dasar #17: Collection


👍 0 ❤️ 0 💡 0 🔥 0 🙌 0 🥳 0
Belajar Rust Dasar #17: Collection

Halo teman-teman semuanya, pada artikel sebelumnya kita sudah membahas tentang error handling di Rust. Kita belajar bagaimana Rust menangani error yang fatal dengan panic!, serta error yang masih bisa ditangani menggunakan Result. Kita juga mengenal cara praktis memakai unwrap, expect, dan operator ? agar kode lebih ringkas.

Sekarang kita akan melanjutkan ke salah satu topik yang sangat sering digunakan dalam pemrograman sehari-hari, yaitu collection di Rust. Collection adalah tipe data yang digunakan untuk menyimpan banyak nilai sekaligus. Berbeda dengan array atau tuple yang ukurannya tetap, collection di Rust bersifat fleksibel dan bisa berubah ukurannya saat program berjalan.

Rust menyediakan beberapa collection standar di dalam library-nya, tetapi tiga yang paling umum digunakan adalah:

  1. Vector (Vec<T>) – menyimpan daftar nilai berurutan.
  2. HashMap (HashMap<K, V>) – menyimpan pasangan key-value.
  3. HashSet (HashSet<T>) – menyimpan nilai unik tanpa duplikasi.

Mari kita bahas satu per satu.

Vector

Vector adalah collection paling sering digunakan di Rust. Tipe ini mirip dengan array dinamis yang bisa menampung banyak elemen dengan tipe yang sama.

fn main() {
    let mut angka: Vec<i32> = Vec::new();
    angka.push(10);
    angka.push(20);
    angka.push(30);

    println!("Isi vector: {:?}", angka);

    // akses elemen
    println!("Elemen pertama: {}", angka[0]);

    // iterasi
    for n in &angka {
        println!("Angka: {}", n);
    }
}

Vector bisa dibuat dengan macro vec! agar lebih singkat:

fn main() {
    let angka = vec![1, 2, 3, 4, 5];
    println!("{:?}", angka);
}

HashMap

HashMap adalah collection untuk menyimpan data dalam bentuk pasangan key-value. Key harus unik, sedangkan value bisa apa saja.

use std::collections::HashMap;

fn main() {
    let mut skor = HashMap::new();
    skor.insert(String::from("Andi"), 90);
    skor.insert(String::from("Budi"), 85);

    println!("{:?}", skor);

    // akses nilai dengan key
    if let Some(nilai) = skor.get("Andi") {
        println!("Nilai Andi: {}", nilai);
    }

    // iterasi
    for (nama, nilai) in &skor {
        println!("{} mendapat {}", nama, nilai);
    }
}

Jika kita menambahkan key yang sama, value lama akan ditimpa dengan value baru.

HashSet

HashSet adalah collection yang hanya menyimpan nilai unik. Jika kita mencoba menambahkan nilai yang sama, maka nilai duplikat tidak akan masuk.

use std::collections::HashSet;

fn main() {
    let mut buah = HashSet::new();
    buah.insert("apel");
    buah.insert("jeruk");
    buah.insert("apel"); // duplikat, tidak akan masuk lagi

    println!("{:?}", buah);

    // cek keberadaan
    if buah.contains("jeruk") {
        println!("Jeruk tersedia!");
    }
}

HashSet sangat berguna ketika kita ingin memastikan tidak ada duplikasi data.

Kesimpulan

Pada artikel ini kita sudah mempelajari tiga collection utama di Rust: Vector, HashMap, dan HashSet. Vector digunakan untuk daftar berurutan, HashMap untuk pasangan key-value, dan HashSet untuk menyimpan nilai unik.

Pada artikel berikutnya, kita akan membahas tentang Iterator di Rust, yaitu cara yang lebih elegan dan efisien untuk melakukan operasi pada collection.

Terima Kasih


Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami