Menu
CoddyTech

Menambahkan Barang ke Keranjang

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

challenge icon

Tantangan

Mudah

Buat program yang menerapkan fungsi untuk menambahkan barang ke keranjang belanja. Programmu harus menggunakan Map katalog produk yang ditentukan langsung dalam kode dan List keranjang belanja yang kosong, lalu memproses input barang dari pengguna.

Tentukan katalog produk berikut langsung di kodemu:

Map<String, double> productCatalog = {
  'Apple': 1.50,
  'Banana': 0.80,
  'Orange': 2.00,
  'Milk': 3.25,
  'Laptop': 999.99,
  'Mouse': 25.50,
  'Keyboard': 75.00,
  'Novel': 12.99,
  'Magazine': 4.50,
  'Textbook': 89.00
};

Programmu harus:

  1. Menggunakan Map katalog produk yang ditentukan di atas dan List keranjang belanja yang kosong
  2. Membaca beberapa input string yang mewakili barang yang ingin ditambahkan pelanggan ke keranjang mereka (input akan berakhir saat kamu menerima "cart_done")
  3. Untuk setiap barang, memeriksa apakah barang tersebut ada di katalog produk menggunakan containsKey()
  4. Jika barang tersebut ada, menambahkannya ke List keranjang belanja menggunakan method add()
  5. Jika barang tersebut tidak ada, melewatinya dan melanjutkan pemrosesan
  6. Melacak penambahan yang berhasil dan percobaan yang gagal
  7. Menampilkan laporan pengelolaan keranjang dengan format persis seperti di bawah ini

Contohnya, jika pelanggan ingin menambahkan "Apple", "Bread", "Banana", "Apple", "Juice", programmu harus menghasilkan output:

Shopping Cart Operations:
Adding 'Apple': Item added to cart successfully
Adding 'Bread': Item not available in store
Adding 'Banana': Item added to cart successfully
Adding 'Apple': Item added to cart successfully
Adding 'Juice': Item not available in store
Cart Contents: [Apple, Banana, Apple]
Cart Summary:
Total items in cart: 3
Unique products in cart: 2
Items successfully added: 3
Items not found: 2
Cart Status: Ready for checkout

Jika pelanggan ingin menambahkan "Mouse", "Monitor", "Keyboard", "Mouse", programmu harus menghasilkan output:

Shopping Cart Operations:
Adding 'Mouse': Item added to cart successfully
Adding 'Monitor': Item not available in store
Adding 'Keyboard': Item added to cart successfully
Adding 'Mouse': Item added to cart successfully
Cart Contents: [Mouse, Keyboard, Mouse]
Cart Summary:
Total items in cart: 3
Unique products in cart: 2
Items successfully added: 3
Items not found: 1
Cart Status: Ready for checkout

Jika pelanggan ingin menambahkan "Novel", "Dictionary", "Magazine", "Novel", "Comic", "Textbook", programmu harus menghasilkan output:

Shopping Cart Operations:
Adding 'Novel': Item added to cart successfully
Adding 'Dictionary': Item not available in store
Adding 'Magazine': Item added to cart successfully
Adding 'Novel': Item added to cart successfully
Adding 'Comic': Item not available in store
Adding 'Textbook': Item added to cart successfully
Cart Contents: [Novel, Magazine, Novel, Textbook]
Cart Summary:
Total items in cart: 4
Unique products in cart: 3
Items successfully added: 4
Items not found: 2
Cart Status: Ready for checkout

Programmu harus menggunakan containsKey() untuk memastikan bahwa setiap barang ada di katalog produk sebelum menambahkannya ke keranjang. Gunakan method add() untuk menambahkan barang yang valid ke List keranjang belanja. Hitung jumlah total barang di keranjang menggunakan property length, dan tentukan produk unik dengan mengonversi keranjang menjadi Set lalu memeriksa length-nya. Lacak penambahan yang berhasil dan barang yang tidak ditemukan di katalog. Format inputnya adalah: nama barang yang akan ditambahkan ke keranjang, diakhiri dengan "cart_done".

Coba sendiri

import 'dart:io';

void main() {
  // Read store name
  String? storeName = stdin.readLineSync();
  
  // Initialize data structures
  Map<String, double> products = {};
  List<String> shoppingCart = [];
  
  // Read products until "products_done"
  while (true) {
    String? input = stdin.readLineSync();
    if (input == "products_done") {
      break;
    }
    String productName = input!;
    String? priceInput = stdin.readLineSync();
    double price = double.parse(priceInput!);
    
    // Add product to map
    products[productName] = price;
  }
  
  // Calculate statistics
  double totalPrice = 0;
  double maxPrice = 0;
  double minPrice = double.infinity;
  String mostExpensiveItem = '';
  String cheapestItem = '';
  
  for (String productName in products.keys) {
    double price = products[productName]!;
    totalPrice += price;
    
    if (price > maxPrice) {
      maxPrice = price;
      mostExpensiveItem = productName;
    }
    
    if (price < minPrice) {
      minPrice = price;
      cheapestItem = productName;
    }
  }
  
  double averagePrice = totalPrice / products.length;
  
  // Print the store setup report
  print('Store: $storeName');
  print('Product Catalog Setup:');
  print('Available Products: $products');
  print('Shopping Cart Initialized: $shoppingCart');
  print('System Status:');
  print('Total products available: ${products.length}');
  print('Cart status: Empty');
  print('Most expensive item: $mostExpensiveItem (\$${maxPrice.toStringAsFixed(2)})');
  print('Cheapest item: $cheapestItem (\$${minPrice.toStringAsFixed(2)})');
  print('Average product price: \$${averagePrice.toStringAsFixed(2)}');
  print('Setup Status: Shopping cart system ready for customers');
}

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Dart online