Menu
CoddyTech

Menghitung Total Biaya

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

challenge icon

Tantangan

Mudah

Buat program yang melanjutkan proyek kalkulator keranjang belanja dengan menerapkan fungsi untuk menghitung total biaya semua barang di keranjang belanja. Dengan melanjutkan pengelolaan keranjang dari pelajaran sebelumnya, programmu harus:

  1. Menggunakan Map katalog produk yang sudah ada dan List keranjang belanja yang sudah terisi dari penyiapan sebelumnya
  2. Membaca beberapa input string yang mewakili barang yang ingin ditambahkan pelanggan ke keranjang mereka. Input akan berakhir saat kamu menerima "cart_done"
  3. Memeriksa apakah setiap barang ada di katalog produk menggunakan containsKey()
  4. Jika barang tersebut ada, menambahkannya ke List keranjang belanja menggunakan method add()
  5. Menghitung total biaya dengan melakukan iterasi melalui list keranjang dan mencari harga setiap barang di map produk
  6. Menjumlahkan semua harga untuk mendapatkan total biaya akhir
  7. Menampilkan laporan perhitungan keranjang dalam format persis seperti di bawah ini

Misalnya, jika toko memiliki produk "Apple" seharga 1.50, "Banana" seharga 0.80, "Orange" seharga 2.00, "Milk" seharga 3.25, dan pelanggan ingin menambahkan "Apple", "Banana", "Apple", "Milk", programmu harus menghasilkan output:

Shopping Cart Operations:
Adding 'Apple': Item added to cart successfully
Adding 'Banana': Item added to cart successfully
Adding 'Apple': Item added to cart successfully
Adding 'Milk': Item added to cart successfully
Cart Contents: [Apple, Banana, Apple, Milk]
Cost Calculation:
Apple: $1.50
Banana: $0.80
Apple: $1.50
Milk: $3.25
Total Cost: $7.05
Cart Summary:
Total items in cart: 4
Unique products in cart: 3
Items successfully added: 4
Items not found: 0
Cart Status: Ready for checkout

Jika toko memiliki produk "Laptop" seharga 999.99, "Mouse" seharga 25.50, "Keyboard" seharga 75.00, dan pelanggan ingin menambahkan "Mouse", "Keyboard", "Mouse", "Monitor", programmu harus menghasilkan output:

Shopping Cart Operations:
Adding 'Mouse': Item added to cart successfully
Adding 'Keyboard': Item added to cart successfully
Adding 'Mouse': Item added to cart successfully
Adding 'Monitor': Item not available in store
Cart Contents: [Mouse, Keyboard, Mouse]
Cost Calculation:
Mouse: $25.50
Keyboard: $75.00
Mouse: $25.50
Total Cost: $126.00
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 toko memiliki produk "Novel" seharga 12.99, "Magazine" seharga 4.50, "Textbook" seharga 89.00, dan pelanggan ingin menambahkan "Novel", "Magazine", "Novel", "Textbook", "Dictionary", programmu harus menghasilkan output:

Shopping Cart Operations:
Adding 'Novel': Item added to cart successfully
Adding 'Magazine': Item added to cart successfully
Adding 'Novel': Item added to cart successfully
Adding 'Textbook': Item added to cart successfully
Adding 'Dictionary': Item not available in store
Cart Contents: [Novel, Magazine, Novel, Textbook]
Cost Calculation:
Novel: $12.99
Magazine: $4.50
Novel: $12.99
Textbook: $89.00
Total Cost: $119.48
Cart Summary:
Total items in cart: 4
Unique products in cart: 3
Items successfully added: 4
Items not found: 1
Cart Status: Ready for checkout

Programmu harus melakukan iterasi melalui setiap barang di list keranjang belanja, mencari harganya di map katalog produk, lalu menambahkan harga itu ke total berjalan. Gunakan perulangan untuk memproses setiap barang di keranjang dan mengakumulasikan total biaya. Tampilkan harga setiap barang selama tahap penghitungan biaya. Format semua harga agar menampilkan tepat 2 angka di belakang koma. Format inputnya adalah: nama barang yang akan ditambahkan ke keranjang, diakhiri dengan "cart_done".

Coba sendiri

import 'dart:io';

void main() {
  // Product catalog with items and prices
  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
  };
  
  // Shopping cart to store selected items
  List<String> shoppingCart = [];
  
  // Counters for tracking operations
  int successfulAdditions = 0;
  int itemsNotFound = 0;
  
  print("Shopping Cart Operations:");
  
  // Read items until "cart_done" is received
  String? item;
  while ((item = stdin.readLineSync()) != "cart_done") {
    if (item != null) {
      if (productCatalog.containsKey(item)) {
        shoppingCart.add(item);
        successfulAdditions++;
        print("Adding '$item': Item added to cart successfully");
      } else {
        itemsNotFound++;
        print("Adding '$item': Item not available in store");
      }
    }
  }
  
  // Display cart contents
  print("Cart Contents: $shoppingCart");
  
  // Calculate unique products
  Set<String> uniqueProducts = shoppingCart.toSet();
  
  // Display cart summary
  print("Cart Summary:");
  print("Total items in cart: ${shoppingCart.length}");
  print("Unique products in cart: ${uniqueProducts.length}");
  print("Items successfully added: $successfulAdditions");
  print("Items not found: $itemsNotFound");
  print("Cart Status: Ready for checkout");
}

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Dart online