Menu
CoddyTech

Rangkuman: array berisi struct

Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 62 dari 63.

challenge icon

Tantangan

Mudah

Buat program C untuk mengelola sistem inventaris produk menggunakan array berisi struct. Programmu harus:

  1. Mendefinisikan struct bernama Product dengan anggota berikut:
    • Array karakter name berukuran 30
    • Bilangan float price
    • Bilangan bulat stock
  2. Menulis fungsi bernama findMostExpensive yang:
    • Menerima array struct Product dan bilangan bulat size sebagai parameter
    • Mengembalikan bilangan bulat yang menunjukkan indeks produk dengan harga tertinggi
    • Menggunakan perulangan untuk menelusuri semua produk dan membandingkan harganya
    • Mengembalikan indeks produk pertama yang ditemukan dengan harga tertinggi
  3. Menulis fungsi bernama calculateTotalValue yang:
    • Menerima array struct Product dan bilangan bulat size sebagai parameter
    • Mengembalikan bilangan float yang menunjukkan total nilai inventaris
    • Menghitung total nilai dengan menjumlahkan (harga × stok) untuk setiap produk
  4. Menulis fungsi bernama findLowStock yang:
    • Menerima array struct Product, bilangan bulat size, dan bilangan bulat threshold sebagai parameter
    • Mengembalikan bilangan bulat yang menunjukkan jumlah produk dengan stok di bawah ambang batas
    • Menggunakan perulangan untuk menghitung produk yang stoknya kurang dari nilai ambang batas
  5. Di fungsi main:
    • Membuat array berisi 3 struct Product bernama inventory
    • Membaca input untuk setiap produk dengan urutan berikut: nama, harga, stok
    • Mengisi array dengan data input
    • Mencetak informasi setiap produk dengan format persis seperti ini: Product [index]: [name] - Price: [price], Stock: [stock]
    • Memanggil fungsi findMostExpensive dan mencetak hasilnya dengan format persis seperti ini: Most expensive product: [name]
    • Memanggil fungsi calculateTotalValue dan mencetak hasilnya dengan tepat 2 angka di belakang koma dengan format persis seperti ini: Total inventory value: [total_value]
    • Membaca bilangan bulat yang menunjukkan ambang batas stok rendah
    • Memanggil fungsi findLowStock dengan ambang batas tersebut dan mencetak hasilnya dengan format persis seperti ini: Products with low stock: [count]
    • Memeriksa apakah produk dengan harga tertinggi memiliki stok lebih dari 10:
      • Jika ya: cetak Most expensive product is well stocked
      • Jika tidak: cetak Most expensive product needs restocking

Tantangan ini menguji kemampuanmu dalam menggunakan array berisi struct, menerapkan fungsi yang memproses array struct, serta melakukan berbagai perhitungan dan perbandingan pada data terstruktur. Kamu akan berlatih menggunakan indeks array dengan struct, merancang fungsi untuk memproses data, dan menggabungkan beberapa operasi untuk menganalisis informasi inventaris.

Coba sendiri

#include <stdio.h>
#include <string.h>

// TODO: Definisikan struct Product di sini

// TODO: Implementasikan fungsi findMostExpensive di sini

// TODO: Implementasikan fungsi calculateTotalValue di sini

// TODO: Implementasikan fungsi findLowStock di sini

int main() {
    // Buat array berisi 3 produk
    struct Product inventory[3];
    
    // Baca input untuk setiap produk
    for (int i = 0; i < 3; i++) {
        scanf("%s", inventory[i].name);
        scanf("%f", &inventory[i].price);
        scanf("%d", &inventory[i].stock);
    }
    
    // TODO: Cetak informasi setiap produk
    
    // TODO: Cari dan cetak produk termahal
    
    // TODO: Hitung dan cetak nilai total inventaris
    
    // Baca ambang batas stok rendah
    int threshold;
    scanf("%d", &threshold);
    
    // TODO: Cari dan cetak produk dengan stok rendah
    
    // TODO: Periksa apakah stok produk termahal mencukupi
    
    return 0;
}

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C online