1. 📌 Pengertian Fungsi

  • Fungsi adalah blok kode yang bisa digunakan kembali untuk menjalankan suatu tugas.
  • Didefinisikan dengan kata kunci fn.

Contoh:

fn main() {
    println!("Hello, world!");
}

2. 🧩 Parameter dan Tipe Data

  • Fungsi bisa menerima parameter: ditulis di dalam tanda kurung, dipisahkan dengan koma.
  • Setiap parameter harus menyertakan nama dan tipe datanya.

Contoh:

fn print_labeled_measurement(value: i32, unit_label: char) {
    println!("The measurement is: {value}{unit_label}");
}

fn main() {
    print_labeled_measurement(5, 'h');
}

Output: The measurement is: 5h


3. 🧱 Statements vs Expressions

🧾 Statement:

  • Perintah yang menjalankan aksi tanpa mengembalikan nilai.
  • Contoh: let y = 6;

📤 Expression:

  • Mengevaluasi dan menghasilkan nilai.
  • Bisa dipakai di dalam statement.

Contoh perbedaan:

let y = {
    let x = 3;
    x + 1 // expression -> nilai 4
};

Salah:

let x = (let y = 6); // ERROR: `let y = 6` adalah statement, bukan expression

4. 🔁 Fungsi dengan Nilai Kembali (Return Value)

✅ Fungsi yang Mengembalikan Nilai

fn five() -> i32 {
    5
}
  • -> i32 menunjukkan tipe return-nya.
  • Baris terakhir tanpa titik koma adalah return value.
fn main() {
    let x = five();
    println!("The value of x is: {x}");
}

5. 🧠 Fungsi dengan Parameter dan Return Value

fn plus_one(x: i32) -> i32 {
    x + 1
}

Output:

fn main() {
    let x = plus_one(5);
    println!("The value of x is: {x}"); // 6
}

6. ⚠️ Kesalahan Umum: Semicolon di Expression

fn plus_one(x: i32) -> i32 {
    x + 1; // ❌ Error: statement tidak mengembalikan nilai
}

⛔ Error: expected i32, found ()

💡 Solusi: hapus titik koma di akhir x + 1


7. ⏪ Return secara eksplisit

fn return_explicitly() -> i32 {
    return 10; // bisa juga dengan `return`
}

🧾 Kesimpulan

Konsep Penjelasan
Fungsi dasar Didefinisikan dengan fn, bisa dipanggil dari main()
Parameter Ditulis dengan format nama: tipe, pisahkan dengan koma
Statement Menjalankan aksi, tidak mengembalikan nilai (let, fn, dll)
Expression Menghasilkan nilai, bisa digunakan dalam let atau return
Return value Ekspresi terakhir tanpa titik koma atau return digunakan untuk kembali
Kesalahan umum Menambahkan ; pada akhir ekspresi terakhir dalam fungsi return