Menu
CoddyTech

Rangkuman: Aksi Persegi Panjang

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Rust di Coddy. Pelajaran 7 dari 61.

challenge icon

Tantangan

Mudah

Buat sebuah struct Rectangle dengan dua field: width (u32) dan height (u32).

Tambahkan blok implementasi untuk Rectangle dengan hal-hal berikut:

  • new: fungsi terkait yang menerima width: u32 dan height: u32, lalu mengembalikan Rectangle baru
  • area: menerima &self dan mengembalikan luas sebagai u32
  • scale: menerima &mut self dan factor: u32, lalu mengalikan width dan height dengan factor

Kamu akan menerima tiga input:

  • Baris pertama: width (u32)
  • Baris kedua: height (u32)
  • Baris ketiga: faktor skala (u32)

Buat Rectangle yang bisa diubah menggunakan Rectangle::new dengan dimensi yang diberikan. Cetak luas awal, lalu skalakan persegi panjang dengan faktor yang diberikan, kemudian cetak luas baru.

Format output yang diharapkan:

{initial_area}
{scaled_area}

Coba sendiri

use std::io;

// TODO: Definisikan struct Rectangle di sini


// TODO: Tambahkan blok implementasi untuk Rectangle dengan:
// - new: fungsi terkait yang menerima width dan height, lalu mengembalikan Rectangle
// - area: method yang menerima &self, lalu mengembalikan u32
// - scale: method yang menerima &mut self dan factor, lalu mengalikan width dan height


fn main() {
    let mut input = String::new();
    
    // Baca width
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let width: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // Baca height
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let height: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // Baca factor untuk penskalaan
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let factor: u32 = input.trim().parse().expect("Invalid number");
    
    // TODO: Buat Rectangle yang dapat diubah menggunakan Rectangle::new
    
    // TODO: Cetak area awal
    
    // TODO: Skalakan Rectangle dengan factor
    
    // TODO: Cetak area baru
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Rust online