๐ Konsep Dasar Rust
Pengantar
- Rust adalah bahasa pemrograman sistem yang mengutamakan kecepatan, keamanan, dan kontrol atas memori.
- Menyediakan kekuatan low-level (seperti C/C++) dengan ergonomi high-level.
- Compiler Rust sangat ketat, membantu mencegah bug sejak awal.
Siapa yang Cocok Menggunakan Rust?
-
Tim Developer: Mempermudah kolaborasi dengan sistem type dan error yang kuat.
-
Mahasiswa & Pelajar: Komunitas terbuka dan mendukung pembelajaran sistem.
-
Perusahaan: Digunakan di CLI tools, embedded, web service, machine learning, dsb.
-
Open Source Developer: Banyak peluang kontribusi.
-
Penggemar Kecepatan & Stabilitas: Fokus pada zero-cost abstraction.
๐ ๏ธ Instalasi dan Dasar Penggunaan
Instalasi Rust
- Gunakan
rustup untuk instalasi dan manajemen versi.
- Dilengkapi dengan dokumentasi lokal (
rustup doc).
- Alat penting:
-
rustc: Compiler utama.
-
cargo: Package manager & build system.
Menulis Program Pertama: Hello, World!
- File:
main.rs
- Struktur dasar:
fn main() {
println!("Hello, world!");
}
- Kompilasi manual:
rustc main.rs
- Eksekusi:
./main atau main.exe
๐ฆ Manajemen Proyek dengan Cargo
Apa Itu Cargo?
- Tools default untuk membuat, membangun, dan menjalankan proyek Rust.
- Mengelola dependensi (crates), build, dan distribusi.
Dasar-dasar Cargo
-
cargo new project_name: Membuat proyek baru.
-
cargo build: Kompilasi.
-
cargo run: Kompilasi & eksekusi.
-
cargo check: Mengecek kesalahan tanpa build.
-
cargo build --release: Build dengan optimisasi.
Struktur Proyek Cargo
-
Cargo.toml: Konfigurasi proyek dan dependensi.
-
src/main.rs: Entry point program.
๐ฎ Bab 2: Membuat Game "Guess the Number"
Tujuan Proyek
- Menebak angka acak antara 1-100.
- Program memberi tahu apakah tebakan terlalu tinggi, rendah, atau tepat.
Konsep yang Diperkenalkan
-
use std::io;: Mengambil input dari pengguna.
- Variabel dengan
let dan mut.
- String dan konversi ke angka (
parse::<u32>).
- Shadowing: Mendeklarasikan ulang variabel dengan nama yang sama.
-
rand crate: Digunakan untuk menghasilkan angka acak.
-
Ordering dan match: Digunakan untuk membandingkan dan menangani hasil tebakan.
Contoh Match Expression
match guess.cmp(&secret_number) {
Ordering::Less => println!("Too small!"),
Ordering::Greater => println!("Too big!"),
Ordering::Equal => println!("You win!"),
}
Error Handling
-
expect("error message"): Menangani error pada operasi I/O atau parsing.
๐ Floating Topics (Topik Tambahan)
Crate dan Dependency Management
- Semua crate eksternal dideklarasikan di
[dependencies] dalam Cargo.toml.
- Cargo akan membuat
Cargo.lock untuk menjaga versi dependensi tetap konsisten.
Tools Pendukung
-
rustfmt: Formatter otomatis untuk kode Rust.
-
rust-analyzer: IntelliSense & error hints di editor.
Top comments (0)