📘 Mini-Kamus Rust untuk Pemula
Belajar Rust itu seperti belajar bahasa asing: kita harus paham grammar (aturan) sekaligus vocabulary (kata-kata kunci). Artikel ini akan jadi “kamus kecil” untuk membantu Anda memahami kata-kata Rust yang sering muncul.
---
🔹 Dasar Tipe & Error Handling
Vocabulary Arti Contoh
let Deklarasi variabel let x = 5;
mut Variabel bisa diubah let mut y = 10; y += 1;
Result<T, E> Hasil operasi: Ok(T) atau Err(E) "42".parse::<i32>()
Option<T> Bisa Some(T) atau None let maybe = Some(5);
unwrap() Ambil isi Result/Option, panic jika gagal "42".parse::<i32>().unwrap()
expect("msg") Sama dengan unwrap, tapi dengan pesan error "halo".parse::<i32>().expect("Harus angka!")
? Oper error ke fungsi pemanggil let angka: i32 = "42".parse()?;
---
🔹 String & Konversi
Vocabulary Arti Contoh
parse() Ubah String → tipe lain "42".parse::<i32>().unwrap()
to_string() Ubah ke String let s = 42.to_string();
as_str() Pinjam &str dari String let s = "hai".to_string(); println!("{}", s.as_str());
& Borrow (pinjam, tidak pindah ownership) fn cetak(x: &str) { println!("{}", x); }
---
🔹 Koleksi (Vector & Iterator)
Vocabulary Arti Contoh
Vec<T> Array dinamis let mut v = vec![1,2,3];
push() Tambah elemen v.push(4);
pop() Ambil elemen terakhir let x = v.pop();
iter() Iterator (pinjam elemen) for x in v.iter() { println!("{}", x); }
map() Transformasi elemen `v.iter().map(
collect() Ubah iterator → koleksi baru `let baru: Vec<_> = v.iter().map(
---
🔹 Ownership & Borrowing
Vocabulary Arti Contoh
clone() Duplikasi data let a = "halo".to_string(); let b = a.clone();
& Pinjam data (read only) fn cetak(s: &String)
&mut Pinjam data (bisa ubah) fn ubah(s: &mut String)
move Pindah ownership ke closure/thread `std::thread::spawn(move
---
🔹 Async & Concurrency
Vocabulary Arti Contoh
async fn Fungsi async async fn halo() -> i32 { 5 }
.await Tunggu Future selesai let x = halo().await;
tokio::spawn Jalankan task async paralel tokio::spawn(async { println!("task"); });
Arc<T> Reference counter aman di multi-thread let x = Arc::new(5);
Mutex<T> Kunci data biar aman di thread let data = Arc::new(Mutex::new(0));
---
🔹 Match & Control Flow
Vocabulary Arti Contoh
match Switch-case versi Rust match x { Some(v) => v, None => 0 }
if let Match singkat if let Some(v) = maybe { println!("{}", v); }
while let Loop dengan pattern match while let Some(x) = v.pop() { println!("{}", x); }
---
🔹 Macro & Utility
Vocabulary Arti Contoh
println! Cetak ke console println!("x = {}", 42);
format! Buat String dengan format let s = format!("halo {}", "dunia");
dbg! Debug print (ke stderr) dbg!(x+1);
---
🔹 Contoh Mini
fn main() {
let teks = "100";
// parse String → i32, unwrap hasilnya
let angka: i32 = teks.parse().unwrap();
// ubah angka ke String lagi
let angka2 = angka.to_string();
// ambil dari Option, kalau None pakai 0
let hasil = Some(angka).unwrap_or(0);
println!("{} - {} - {}", angka, angka2, hasil);
}
📌 Output:
100 - 100 - 100
---
🔹 Penutup
Belajar Rust memang seperti belajar bahasa baru: awalnya vocabulary terasa asing, tapi semakin sering latihan, semakin cepat otak kita mengenali polanya.
parse() = ubah teks jadi tipe data
unwrap() = ambil hasil atau panic
clone() = gandakan data
? = lempar error ke atas
Dengan kamus kecil ini, semoga Anda lebih nyaman membaca dan menulis kode Rust sehari-hari 🚀