๐ 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)