Menu
CoddyTech

Ringkasan Struct

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

Sekarang setelah kamu memahami apa itu struct, mari pelajari cara membuat dan menggunakannya. Ada dua langkah: pertama, menentukan struktur struct, lalu membuat instance-nya.

Untuk mendefinisikan struct, kamu menggunakan kata kunci struct, diikuti nama struct dan field-fieldnya di dalam kurung kurawal. Setiap field memiliki nama dan tipe:

struct User {
    username: String,
    active: bool,
}

Ini membuat cetak biru untuk struct User dengan dua field: username bertipe String dan active bertipe bool.

Konvensi penamaan: Nama struct di Rust sebaiknya menggunakan PascalCase (juga disebut UpperCamelCase), artinya setiap kata diawali dengan huruf kapital, misalnya User, ProductItem, atau ShoppingCart. Rust akan memberi peringatan jika kamu tidak mengikuti konvensi ini.

Setelah mendefinisikan struct, kamu bisa membuat instance-nya dengan menentukan nilai untuk setiap field:

let user1 = User {
    username: String::from("alice"),
    active: true,
};

Perhatikan bahwa kamu menuliskan nama struct, diikuti kurung kurawal yang berisi setiap nama field, titik dua, dan nilainya. Urutan field tidak harus sesuai dengan urutan definisinya.

Untuk mengakses field dari instance struct, gunakan notasi titik: tulis nama instance, lalu titik dan nama field:

println!("Username: {}", user1.username);
println!("Active: {}", user1.active);

Di sini, user1.username mengakses field username dari user1, dan user1.active mengakses field active. Kamu bisa menggunakan nilai field ini di mana pun kamu akan menggunakan variabel biasa.

challenge icon

Tantangan

Mudah

Kamu akan menerima tiga input: nama produk, harga (sebagai angka desimal), dan jumlah stok (sebagai bilangan bulat). Definisikan struct Product dengan tiga field: name bertipe String, price bertipe f64, dan stock bertipe i32. Lalu, buat instance struct ini menggunakan nilai input dan cetak informasi produk.

Persyaratan:

  • Definisikan struct Product dengan field: name: String, price: f64, dan stock: i32
  • Baca input pertama sebagai nama produk
  • Baca input kedua dan ubah menjadi f64 untuk harga
  • Baca input ketiga dan ubah menjadi i32 untuk jumlah stok
  • Buat instance struct Product dengan nilai-nilai ini
  • Cetak informasi produk dalam format persis seperti yang ditunjukkan di bawah

Input:

  • Baris pertama: Nama produk (misalnya, Laptop)
  • Baris kedua: Harga sebagai angka desimal (misalnya, 999.99)
  • Baris ketiga: Jumlah stok sebagai bilangan bulat (misalnya, 15)

Output:

  • Baris pertama: Product: [name]
  • Baris kedua: Price: $[price]
  • Baris ketiga: Stock: [quantity]

Coba sendiri

use std::io;

// TODO: Definisikan struct Product-mu di sini


fn main() {
    // Baca nama produk
    let mut name = String::new();
    io::stdin().read_line(&mut name).expect("Failed to read line");
    let name = name.trim().to_string();
    
    // Baca harga
    let mut price_input = String::new();
    io::stdin().read_line(&mut price_input).expect("Failed to read line");
    let price: f64 = price_input.trim().parse().expect("Failed to parse price");
    
    // Baca jumlah stok
    let mut stock_input = String::new();
    io::stdin().read_line(&mut stock_input).expect("Failed to read line");
    let stock: i32 = stock_input.trim().parse().expect("Failed to parse stock");
    
    // TODO: Buat instance struct Product menggunakan nilai input
    
    
    // TODO: Cetak informasi produk dalam format yang diminta
    
}
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