Main Menu

Belajar Rust Dasar #6: Function


👍 0 ❤️ 0 💡 0 🔥 0 🙌 0 🥳 0
Belajar Rust Dasar #6: Function

Halo teman-teman semuanya, pada artikel sebelumnya kita sudah membahas tentang control flow di Rust, mulai dari percabangan dengan if/else, perulangan dengan loop, while, dan for, hingga ekspresi match. Sekarang kita akan melanjutkan ke topik penting lainnya yaitu function atau fungsi di Rust.

Fungsi adalah blok kode yang bisa dipanggil berulang kali. Dengan fungsi, kita bisa memecah program menjadi bagian-bagian kecil yang lebih terstruktur, mudah dibaca, dan bisa digunakan kembali. Hampir semua bahasa pemrograman modern memiliki konsep fungsi, termasuk Rust.

Di Rust, fungsi dideklarasikan menggunakan keyword fn. Fungsi bisa memiliki parameter, bisa mengembalikan nilai (return value), atau bisa juga tidak mengembalikan apa-apa. Mari kita bahas satu per satu.

Membuat Fungsi Sederhana

Fungsi paling sederhana adalah fungsi tanpa parameter dan tanpa return value.

fn main() {
    say_hello();
}

fn say_hello() {
    println!("Hello dari fungsi!");
}

Pada contoh di atas, kita membuat fungsi say_hello yang hanya mencetak teks ke layar. Fungsi ini dipanggil dari dalam main.

Fungsi dengan Parameter

Fungsi bisa menerima parameter, yaitu nilai yang dikirimkan saat fungsi dipanggil. Parameter di Rust harus memiliki tipe data yang jelas.

fn main() {
    greet("Andi");
    greet("Budi");
}

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

Pada contoh ini, fungsi greet menerima parameter name dengan tipe &str (string slice), lalu mencetak sesuai nama yang diberikan.

Fungsi dengan Return Value

Rust menggunakan tanda panah -> untuk mendefinisikan tipe data return value dari fungsi. Nilai yang dikembalikan adalah hasil dari ekspresi terakhir dalam fungsi, atau bisa juga dengan keyword return.

fn main() {
    let hasil = tambah(5, 7);
    println!("Hasil penjumlahan: {}", hasil);
}

fn tambah(a: i32, b: i32) -> i32 {
    a + b // ekspresi terakhir otomatis menjadi return value
}

Di sini fungsi tambah mengembalikan nilai i32 hasil dari a + b. Kita tidak perlu menuliskan return a + b; kecuali memang ingin keluar lebih awal.

Return dengan Keyword return

Kadang kita perlu menggunakan return secara eksplisit, misalnya ketika ada kondisi tertentu.

fn main() {
    let hasil = bagi(10, 0);
    println!("Hasil: {}", hasil);
}

fn bagi(a: i32, b: i32) -> i32 {
    if b == 0 {
        return 0; // keluar lebih awal jika pembagi nol
    }
    a / b
}

Pada contoh ini, jika nilai b adalah 0, maka fungsi bagi akan langsung mengembalikan 0 dan tidak melanjutkan ke baris selanjutnya.

Fungsi dengan Beberapa Parameter

Fungsi bisa memiliki lebih dari satu parameter, dengan setiap parameter wajib memiliki tipe data.

fn main() {
    let luas = hitung_luas(5, 10);
    println!("Luas persegi panjang: {}", luas);
}

fn hitung_luas(panjang: i32, lebar: i32) -> i32 {
    panjang * lebar
}

Fungsi hitung_luas menerima dua parameter (panjang dan lebar) dan mengembalikan hasil perkalian keduanya.

Kesimpulan

Pada artikel ini kita telah mempelajari cara membuat fungsi di Rust, baik fungsi sederhana tanpa parameter, fungsi dengan parameter, fungsi dengan return value, penggunaan keyword return, hingga fungsi dengan banyak parameter.

Pada artikel berikutnya, kita akan membahas konsep paling khas di Rust yaitu Ownership, yang membedakan Rust dengan bahasa pemrograman lainnya dan membuatnya lebih aman dalam mengelola memori.

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