Menghitung Total Biaya
Termasuk bagian Logika dan Alur dalam perjalanan Dart di Coddy. Pelajaran 35 dari 65.
Tantangan
MudahBuat 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:
- Menggunakan Map katalog produk yang sudah ada dan List keranjang belanja yang sudah terisi dari penyiapan sebelumnya
- Membaca beberapa input string yang mewakili barang yang ingin ditambahkan pelanggan ke keranjang mereka. Input akan berakhir saat kamu menerima
"cart_done" - Memeriksa apakah setiap barang ada di katalog produk menggunakan
containsKey() - Jika barang tersebut ada, menambahkannya ke List keranjang belanja menggunakan method
add() - Menghitung total biaya dengan melakukan iterasi melalui list keranjang dan mencari harga setiap barang di map produk
- Menjumlahkan semua harga untuk mendapatkan total biaya akhir
- 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 checkoutJika 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 checkoutJika 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 checkoutProgrammu 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
1Manipulasi list Tingkat Lanjut
Properti list: first dan lastStatus list: isEmpty dan isNotEmpMembalikkan listMenambahkan ke list: insertMenghapus dari list: removeWhereMencari dalam list: indexOfMengurutkan listMengacak listRekap: Pengatur list4Manipulasi Map Lanjutan
Melakukan perulangan pada MapMemeriksa kunci dan nilaiProperti Map: kunci dan nilaiPenambahan Bersyarat: putIfAbsentMenghapus Entri dari MapMap BersarangRingkasan: Pembaruan Inventaris2Operasi Fungsional pada list
Mengubah dengan 'map'Menyaring dengan 'where'Menggunakan '.toList()'Memeriksa Kondisi dengan 'any'Kondisi dengan 'every'Menemukan dengan 'firstWhere'Ulasan: Penyaringan Data5Proyek: Perhitungan Keranjang Belanja
Menyiapkan ProyekMenambahkan Barang ke Keranjang3set
Apa itu set?Membuat setMenambahkan dan menghapus elemen dari setMemeriksa elemen dalam setMengubah list menjadi setGabungan setIrisan setSelisih setRangkuman: Daftar tamu unikLatihan sendiri: Compiler Dart online