Belajar Bahasa Pemrograman Rust Bagian 5: Fungsi

2 min read

Disclaimer
Saya bekerja di AWS, semua opini adalah dari saya pribadi. (I work for AWS, my opinions are my own.)
Fungsi pada Bahasa Pemrograman Rust
Belajar Bahasa Pemrogrman Rust Bagian 5: Fungsi

TeknoCerdas.com – Salam cerdas untuk kita semua. Masih dalam seri belajar bahasa pemrograman Rust. Pada tulisan kali ini TeknoCerdas masih akan membahas bagaimana membuat dan menjalankan fungsi dalam bahasa pemrograman Rust.

Jika anda belum membaca seri lainnya dari tulisan ini silahkan menuju link berikut.

Pada hampir setiap bahasa pemrograman mengenal istilah fungsi yaitu kumpulan dari blok kode yang dapat digunakan secara berulang-ulang untuk tujuan tertentu.

Fungsi pada Rust

Pada seri belajar bahasa pemrograman Rust yang sudah ditulis di TeknoCerdas sebenarnya kita sudah sering menggunakan fungsi secara tidak sadar. Fungsi yang sering ditulis adalah fungsi fn main(). Dimana fungsi ini adalah fungsi utama yang akan dieksekusi ketika suatu program Rust dijalankan.

Pada Rust cara untuk mendeklarasikan sebuah fungsi diawali dengan kata kunci fn diikuti dengan nama fungsinya.

fn nama_fungsi() {
    // blok kode
}

Konvensi penamaan fungsi pada Rust menggunakan snake case yaitu huruf kecil dengan pemisah garis bawah untuk setiap kata.

fn main() {
    println!("Hello Rust");
    
    hello_world();
}

fn hello_world() {
    println!("Hello World");
}

Pada contoh diatas kita membuat fungsi bernama hello_world. Pada fungsi tersebut terdapat perintah untuk mencetak String “Hello World” ke output.

Untuk memanggil fungsi digunakan nama fungsi tersebut kemudian diikuti dengan tanda kurung buka tutup ().

Pada Rust urutan pembuatan fungsi tidak menentukan bagaimana fungsi tersebut dapat dipanggil. Pada contoh diatas fungsi hello_world didefinisikan setelah main tetapi hello_world tetap dapat dipanggil pada main meskipun ia didefinisikan belakangan.

Parameter pada Fungsi

Parameter adalah satu atau lebih variabel yang menjadi bagian dari sebuah fungsi. Ketika sebuah fungsi memiliki parameter maka ketika ia dipanggil harus diberikan argumen yang sesuai dengan parameternya.

fn main() {
    perkalian(5, 4);
    perkalian(10, 10);
}

fn perkalian(a: i32, b: i32) {
    println!("Perkalian {} x {} = {}", a, b, a * b);
}

Pada contoh diatas fungsi perkalian memiliki dua parameter yaitu variabel a dan b. Keduanya bertipe integer 32 bit i32. Pada fungsi tersebut nilai dari variabel a dan b dikalikan untuk ditampilkan hasilnya.

Ketika fungsi perkalian dipanggil maka ada dua argumen yang harus diberikan yaitu angka 1 dan angka 2. Jika dijalankan maka output dari contoh kode diatas adalah seperti di bawah.

Perkalian 5 x 4 = 20
Perkalian 10 x 10 = 100

Fungsi dengan Nilai Balik

Sebuah fungsi juga dapat memiliki nilai balik atau return value. Contoh-contoh fungsi sebelumnya adalah fungsi yang tidak memiliki nilai balik. Dalam bahasa pemrograman lain sering disebut void.

Sebagian besar fungsi yang dibuat dalam kode program adalah fungsi yang memiliki nilai balik. Dengan memiliki nilai balik maka interaksi antar komponen pada program dapat dilakukan tanpa perlu global variabel.

Untuk membuat fungsi yang memiliki nilai balik maka harus ditentukan tipe data apa yang dikembalikan. Hal tersebut ditandai dengan simbol -> anak panah kanan.

fn main() {
    println!("Perkalian {} x {} = {}", 5, 4, kali(5, 4));
    println!("Pembagian {} : {} = {}", 10, 5, bagi(10, 5));
}

fn kali(a: i32, b: i32) -> i32 {
    a * b
}

fn bagi(a: i32, b: i32) -> i32 {
    return a / b;
}
Perkalian 5 x 4 = 20
Pembagian 10 : 5 = 2

Pada contoh diatas fungsi kali dan bagi mengembalikan nilai balik beriku i32. Namun ada yang menarik yaitu perbedaan cara mengembalikan nilai dari kedua fungsi tersebut.

Pada fungsi kali tidak ada perintah untuk mengembalikan nilai hanya sebuah statemen a * b tapi Rust memperbolehkannya. Ini yang disebut dengan implicit return. Secara tidak langsung statemen terakhir akan digunakan sebagai nilai balik dengan syarat tidak perlu diakhiri dengan titik koma ;.

Sedangkan pada fungsi bagi terdapat kata kunci return yang jelas menunjukkan bahwa fungsi tersebut mengembalikan nilai.