Menu
CoddyTech

Mengakses Field Struct

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

Setelah membuat instance struct, kamu memerlukan cara untuk mengambil nilai yang tersimpan di dalamnya. Rust menggunakan notasi titik untuk mengakses field individual dalam struct.

Sintaksnya sederhana: kamu menulis nama instance struct, diikuti titik, lalu nama field yang ingin kamu akses:

let product = Product {
    name: String::from("Laptop"),
    price: 999,
};

println!("Product: {}", product.name);
println!("Price: ${}", product.price);

Notasi titik ini berfungsi seperti saat mengakses property dalam bahasa pemrograman lain. Kamu dapat menggunakan nilai yang diakses dalam ekspresi, menetapkannya ke variabel, atau meneruskannya ke fungsi. Nilai tersebut berperilaku sama seperti nilai lain dengan tipe yang sama.

challenge icon

Tantangan

Mudah

Kamu akan menerima tiga input: nama model mobil, tahun mobil (sebagai bilangan bulat), dan jarak tempuhnya (sebagai bilangan bulat). Definisikan struct Car dengan tiga field: model bertipe String, year bertipe i32, dan mileage bertipe i32. Buat instance struct ini menggunakan nilai input, lalu akses dan cetak setiap field.

Persyaratan:

  • Definisikan struct Car dengan field: model: String, year: i32, dan mileage: i32
  • Baca input pertama sebagai model mobil
  • Baca input kedua dan ubah menjadi i32 untuk tahun
  • Baca input ketiga dan ubah menjadi i32 untuk jarak tempuh
  • Buat instance struct Car dengan nilai-nilai ini
  • Gunakan notasi titik untuk mengakses setiap field dan cetak informasi mobil dengan format persis seperti yang ditunjukkan di bawah

Input:

  • Baris pertama: Model mobil (misalnya, Tesla Model 3)
  • Baris kedua: Tahun sebagai bilangan bulat (misalnya, 2022)
  • Baris ketiga: Jarak tempuh sebagai bilangan bulat (misalnya, 15000)

Output:

  • Baris pertama: Car: [model]
  • Baris kedua: Year: [year]
  • Baris ketiga: Mileage: [mileage] km

Coba sendiri

use std::io;

// TODO: Definisikan struct Car di sini dengan field: model, year, dan mileage

fn main() {
    // Baca model mobil
    let mut model = String::new();
    io::stdin().read_line(&mut model).expect("Failed to read line");
    let model = model.trim().to_string();
    
    // Baca tahun
    let mut year_input = String::new();
    io::stdin().read_line(&mut year_input).expect("Failed to read line");
    let year: i32 = year_input.trim().parse().expect("Invalid year");
    
    // Baca jarak tempuh
    let mut mileage_input = String::new();
    io::stdin().read_line(&mut mileage_input).expect("Failed to read line");
    let mileage: i32 = mileage_input.trim().parse().expect("Invalid mileage");
    
    // TODO: Buat instance dari struct Car menggunakan nilai input
    
    // TODO: Akses dan cetak setiap field dalam format yang diminta
    // Car: [model]
    // Year: [year]
    // Mileage: [mileage] km
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Rust online