Main Menu

Belajar Rust Dasar #9: Slice & String


👍 0 ❤️ 0 💡 0 🔥 0 🙌 0 🥳 0
Belajar Rust Dasar #9: Slice & String

Halo teman-teman semuanya, setelah kita mempelajari tentang borrowing dan references di artikel sebelumnya, kali ini kita akan melanjutkan dengan topik yang sangat sering digunakan dalam pemrograman sehari-hari, yaitu slice dan string di Rust.

Dalam Rust, string adalah salah satu tipe data yang sangat penting karena hampir semua program pasti berurusan dengan teks. Namun berbeda dengan bahasa lain yang biasanya hanya mengenal satu tipe string, di Rust ada beberapa tipe yang perlu kita pahami, khususnya String dan &str.

Selain itu, Rust juga memiliki fitur slice, yang memungkinkan kita mengambil sebagian data dari sebuah koleksi tanpa harus memindahkan atau menyalin seluruh nilainya.

Memahami slice dan string dengan baik akan membuat kita lebih percaya diri ketika menulis program Rust, terutama saat bekerja dengan teks dan koleksi. Mari kita bahas satu per satu.

String Slice (&str)

String slice adalah referensi ke bagian dari string. Tipe ini biasanya digunakan untuk data teks yang sifatnya tidak perlu diubah. String slice ditulis dengan &str.

fn main() {
    let s: &str = "Hello, Rust!";
    println!("{}", s);
}

String slice seperti "Hello, Rust!" biasanya disimpan di memory read-only dan tidak bisa diubah.

Kita juga bisa mengambil sebagian string dengan slice:

fn main() {
    let s = String::from("Rustacean");
    let bagian = &s[0..4]; // mengambil karakter dari index 0 sampai 3
    println!("Slice: {}", bagian);
}

Pada contoh di atas, &s[0..4] akan menghasilkan "Rust".

String (String)

Tipe String adalah string yang dimiliki (owned string) dan disimpan di heap. String bisa berubah panjangnya (mutable).

fn main() {
    let mut s = String::from("Hello");
    s.push_str(", World!");
    println!("{}", s);
}

Dengan String, kita bisa menambahkan teks baru menggunakan method seperti .push_str atau .push.

Perbedaan String dan &str

  • &str adalah referensi (borrowing), biasanya digunakan untuk data teks yang tidak berubah.
  • String adalah tipe owned, disimpan di heap, dan bisa dimodifikasi.

Fungsi sering menggunakan &str sebagai parameter agar lebih fleksibel.

fn greet(name: &str) {
    println!("Halo, {}!", name);
}

fn main() {
    let nama = String::from("Andi");
    greet(&nama);    // kirim &String
    greet("Budi");   // kirim string literal
}

Fungsi greet bisa menerima baik String maupun string literal karena keduanya bisa direferensikan sebagai &str.

Slice pada Array

Selain string, slice juga bisa digunakan pada array untuk mengambil sebagian data.

fn main() {
    let angka = [1, 2, 3, 4, 5];
    let potongan = &angka[1..4]; // ambil elemen index 1 sampai 3

    for n in potongan {
        println!("{}", n);
    }
}

Outputnya adalah:

2
3
4

Dengan slice, kita bisa mengambil bagian dari sebuah array tanpa harus menyalin data baru.

Kesimpulan

Pada artikel ini kita sudah membahas tentang slice dan string di Rust. Kita mengenal &str sebagai string slice yang immutable dan String sebagai owned string yang bisa dimodifikasi. Kita juga melihat bagaimana slice bisa digunakan untuk mengambil sebagian data dari string maupun array.

Pada artikel berikutnya, kita akan membahas tentang Struct di Rust, yaitu cara mendefinisikan tipe data buatan sendiri yang bisa menyimpan beberapa field sekaligus.

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