Menu
CoddyTech

Rangkuman: Fungsi Pembagian Aman

Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 48 dari 66.

challenge icon

Tantangan

Mudah

Kamu akan menerima dua input. Input pertama adalah angka yang mewakili bilangan yang dibagi, dan input kedua adalah angka yang mewakili pembagi. Buat fungsi safe_divide yang menerima dua parameter f64 dan mengembalikan Result<f64, &'static str>. Fungsi tersebut harus mengembalikan Err("Cannot divide by zero") ketika pembagi bernilai nol, dan Ok dengan hasil pembagian jika tidak. Gunakan ekspresi match untuk menangani hasil dan mencetak output yang sesuai.

Persyaratan:

  • Baca input pertama (bilangan yang dibagi) dan hapus spasi di awal serta akhir
  • Parse input pertama menjadi f64
  • Baca input kedua (pembagi) dan hapus spasi di awal serta akhir
  • Parse input kedua menjadi f64
  • Buat fungsi safe_divide yang menerima dua parameter f64 dan mengembalikan Result<f64, &'static str>
  • Di dalam fungsi, periksa apakah pembagi bernilai 0.0:
    • Jika ya, kembalikan Err("Cannot divide by zero")
    • Jika tidak, kembalikan Ok(dividend / divisor)
  • Panggil fungsi dengan dua angka yang sudah di-parse
  • Gunakan ekspresi match untuk menangani Result
  • Pada arm Ok(value), cetak: Division result: [value]
  • Pada arm Err(error), cetak: Error: [error]

input:

  • Baris pertama: Angka yang mewakili bilangan yang dibagi (misalnya, 20.0)
  • Baris kedua: Angka yang mewakili pembagi (misalnya, 4.0)

output:

  • Jika pembagian berhasil: Division result: [result]
  • Jika terjadi pembagian dengan nol: Error: Cannot divide by zero

Coba sendiri

use std::io;

// TODO: Buat fungsi safe_divide di sini
// fn safe_divide(dividend: f64, divisor: f64) -> Result<f64, &'static str> {
//     Tulis kodemu di sini
// }

fn main() {
    // Baca input pertama (dividend)
    let mut dividend_input = String::new();
    io::stdin().read_line(&mut dividend_input).expect("Failed to read line");
    let dividend: f64 = dividend_input.trim().parse().expect("Invalid number");
    
    // Baca input kedua (divisor)
    let mut divisor_input = String::new();
    io::stdin().read_line(&mut divisor_input).expect("Failed to read line");
    let divisor: f64 = divisor_input.trim().parse().expect("Invalid number");
    
    // TODO: Panggil safe_divide dan gunakan match untuk menangani Result
    // Cetak output yang sesuai berdasarkan hasilnya
}

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Rust online