Menu
CoddyTech

Ringkasan: Pembaruan Inventaris

Termasuk bagian Logika dan Alur dalam perjalanan Dart di Coddy. Pelajaran 32 dari 65.

challenge icon

Tantangan

Mudah

Buat program yang mengelola sistem inventaris gudang dengan melacak tingkat stok produk, memeriksa barang yang sudah ada, menambahkan produk baru dengan aman, dan memperbarui jumlahnya. Programmu harus:

  1. Membaca input string yang mewakili nama gudang
  2. Membaca beberapa pasangan input yang mewakili nama produk dan jumlah stok saat ini (input akan berakhir saat kamu menerima "inventory_done")
  3. Membaca input string yang mewakili produk yang akan diperiksa keberadaannya
  4. Membaca input string yang mewakili produk baru yang akan ditambahkan dengan stok default
  5. Membaca input string yang mewakili produk yang akan diisi ulang stoknya
  6. Membaca input string yang mewakili jumlah tambahan untuk ditambahkan ke produk yang stoknya diisi ulang
  7. Membuat Map untuk menyimpan nama produk sebagai kunci dan jumlah stoknya sebagai nilai
  8. Menggunakan containsKey() untuk memeriksa apakah produk yang ditentukan ada dalam inventaris
  9. Menggunakan putIfAbsent() untuk menambahkan produk baru dengan stok default sebanyak 50 unit
  10. Memperbarui jumlah stok produk yang diisi ulang dengan menambahkan jumlah tambahan
  11. Mencetak laporan pengelolaan inventaris dengan format persis seperti yang ditunjukkan di bawah

Misalnya, jika nama gudangnya adalah "Central Warehouse", inventarisnya mencakup "Laptops" dengan 25 unit, "Mice" dengan 150 unit, dan "Keyboards" dengan 75 unit, produk yang akan diperiksa adalah "Laptops", produk baru yang akan ditambahkan adalah "Monitors", produk yang akan diisi ulang stoknya adalah "Mice", dan jumlah tambahannya adalah 30, programmu harus menghasilkan output:

Warehouse: Central Warehouse
Initial Inventory: {Laptops: 25, Mice: 150, Keyboards: 75}
Inventory Operations:
Checking for 'Laptops': Product found in inventory
Adding 'Monitors': New product added with default stock 50
Restocking 'Mice': Updated quantity from 150 to 180
Final Inventory: {Laptops: 25, Mice: 180, Keyboards: 75, Monitors: 50}
Inventory Summary:
Total products: 4
Total stock units: 330
Low stock items (below 30): 1
Products restocked: 1
Status: Inventory management completed

Jika nama gudangnya adalah "North Storage", inventarisnya mencakup "Tablets" dengan 40 unit dan "Headphones" dengan 80 unit, produk yang akan diperiksa adalah "Smartphones", produk baru yang akan ditambahkan adalah "Tablets", produk yang akan diisi ulang stoknya adalah "Headphones", dan jumlah tambahannya adalah 20, programmu harus menghasilkan output:

Warehouse: North Storage
Initial Inventory: {Tablets: 40, Headphones: 80}
Inventory Operations:
Checking for 'Smartphones': Product not found in inventory
Adding 'Tablets': Product already exists, keeping stock 40
Restocking 'Headphones': Updated quantity from 80 to 100
Final Inventory: {Tablets: 40, Headphones: 100}
Inventory Summary:
Total products: 2
Total stock units: 140
Low stock items (below 30): 0
Products restocked: 1
Status: Inventory management completed

Jika nama gudangnya adalah "South Depot", inventarisnya mencakup "Printers" dengan 15 unit, "Scanners" dengan 35 unit, dan "Cables" dengan 200 unit, produk yang akan diperiksa adalah "Scanners", produk baru yang akan ditambahkan adalah "Webcams", produk yang akan diisi ulang stoknya adalah "Printers", dan jumlah tambahannya adalah 45, programmu harus menghasilkan output:

Warehouse: South Depot
Initial Inventory: {Printers: 15, Scanners: 35, Cables: 200}
Inventory Operations:
Checking for 'Scanners': Product found in inventory
Adding 'Webcams': New product added with default stock 50
Restocking 'Printers': Updated quantity from 15 to 60
Final Inventory: {Printers: 60, Scanners: 35, Cables: 200, Webcams: 50}
Inventory Summary:
Total products: 4
Total stock units: 345
Low stock items (below 30): 0
Products restocked: 1
Status: Inventory management completed

Programmu harus menggunakan containsKey() untuk memastikan apakah produk tersebut ada dalam inventaris, putIfAbsent() untuk menambahkan produk baru dengan aman dan stok default sebanyak 50 unit, serta memperbarui nilai Map secara langsung untuk menambah jumlah stok. Hitung barang dengan stok rendah sebagai barang yang jumlahnya di bawah 30 unit. Hitung total unit stok dengan menjumlahkan semua jumlah dalam inventaris akhir. Format inputnya adalah: nama gudang, lalu nama produk dan jumlah stok secara bergantian (sebagai string yang perlu dikonversi menjadi bilangan bulat), diakhiri dengan "inventory_done", lalu produk yang akan diperiksa, produk baru yang akan ditambahkan, produk yang akan diisi ulang stoknya, dan jumlah tambahan.

Coba sendiri

import 'dart:io';

void main() {
  // Baca nama gudang
  String? warehouseName = stdin.readLineSync();
  
  // Baca barang inventaris sampai "inventory_done"
  Map<String, int> inventory = {};
  while (true) {
    String? input = stdin.readLineSync();
    if (input == "inventory_done") break;
    
    String productName = input!;
    String? quantityStr = stdin.readLineSync();
    int quantity = int.parse(quantityStr!);
    inventory[productName] = quantity;
  }
  
  // Baca produk yang akan diperiksa
  String? productToCheck = stdin.readLineSync();
  
  // Baca produk baru yang akan ditambahkan
  String? newProduct = stdin.readLineSync();
  
  // Baca produk yang akan ditambah stoknya
  String? productToRestock = stdin.readLineSync();
  
  // Baca jumlah tambahan
  String? additionalQuantityStr = stdin.readLineSync();
  int additionalQuantity = int.parse(additionalQuantityStr!);
  
  // TODO: Tulis kodemu di bawah ini
  // Gunakan containsKey() untuk memeriksa apakah produk tersedia
  // Gunakan putIfAbsent() untuk menambahkan produk baru dengan stok awal 50
  // Perbarui jumlah stok dan hitung statistik inventaris
  
  // Cetak laporan pengelolaan inventaris
  print("Warehouse: $warehouseName");
  // Tambahkan pernyataan output-mu di sini
}

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Dart online