Menu
CoddyTech

Menyiapkan Proyek

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

challenge icon

Tantangan

Mudah

Kamu akan membuat kalkulator keranjang belanja sederhana yang menunjukkan cara berbagai struktur data bekerja sama dalam aplikasi nyata.

Buat program yang menyiapkan dasar untuk sistem kalkulator keranjang belanja dengan menginisialisasi struktur data penting yang dibutuhkan aplikasi e-commerce. Programmu harus:

  1. Membaca input string yang mewakili nama toko
  2. Membaca beberapa pasang input yang mewakili nama produk dan harganya (input akan berakhir saat kamu menerima "products_done")
  3. Membuat Map untuk menyimpan produk yang tersedia, dengan nama produk sebagai kunci dan harga sebagai nilai
  4. Membuat List kosong untuk mewakili keranjang belanja
  5. Menampilkan informasi penyiapan awal dan memastikan struktur data telah diinisialisasi dengan benar
  6. Mencetak laporan penyiapan toko dengan format persis seperti yang ditunjukkan di bawah

Misalnya, jika nama toko adalah "Fresh Market" dan produk yang ada mencakup "Apple" dengan harga 1.50, "Banana" dengan harga 0.80, "Orange" dengan harga 2.00, serta "Milk" dengan harga 3.25, programmu harus menghasilkan output berikut:

Store: Fresh Market
Product Catalog Setup:
Available Products: {Apple: 1.5, Banana: 0.8, Orange: 2.0, Milk: 3.25}
Shopping Cart Initialized: []
System Status:
Total products available: 4
Cart status: Empty
Most expensive item: Milk ($3.25)
Cheapest item: Banana ($0.80)
Average product price: $1.84
Setup Status: Shopping cart system ready for customers

Jika nama toko adalah "Tech Store" dan produk yang ada mencakup "Laptop" dengan harga 999.99, "Mouse" dengan harga 25.50, serta "Keyboard" dengan harga 75.00, programmu harus menghasilkan output berikut:

Store: Tech Store
Product Catalog Setup:
Available Products: {Laptop: 999.99, Mouse: 25.5, Keyboard: 75.0}
Shopping Cart Initialized: []
System Status:
Total products available: 3
Cart status: Empty
Most expensive item: Laptop ($999.99)
Cheapest item: Mouse ($25.50)
Average product price: $366.83
Setup Status: Shopping cart system ready for customers

Jika nama toko adalah "Book Corner" dan produk yang ada mencakup "Novel" dengan harga 12.99, "Magazine" dengan harga 4.50, "Textbook" dengan harga 89.00, "Comic" dengan harga 3.99, serta "Journal" dengan harga 15.75, programmu harus menghasilkan output berikut:

Store: Book Corner
Product Catalog Setup:
Available Products: {Novel: 12.99, Magazine: 4.5, Textbook: 89.0, Comic: 3.99, Journal: 15.75}
Shopping Cart Initialized: []
System Status:
Total products available: 5
Cart status: Empty
Most expensive item: Textbook ($89.00)
Cheapest item: Comic ($3.99)
Average product price: $25.25
Setup Status: Shopping cart system ready for customers

Programmu harus membuat Map dengan kunci String (nama produk) dan nilai double (harga), serta List String kosong untuk keranjang belanja. Temukan produk termahal dan termurah dengan membandingkan semua harga di dalam map produk. Hitung harga rata-rata dengan membagi jumlah semua harga dengan jumlah produk. Bulatkan harga rata-rata menjadi 2 angka desimal untuk ditampilkan. Format inputnya adalah: nama toko, lalu nama produk dan harga secara bergantian (sebagai string yang perlu dikonversi menjadi double), diakhiri dengan "products_done".

Coba sendiri

import 'dart:io';

void main() {
  // Baca nama toko
  String? storeName = stdin.readLineSync();
  
  // Inisialisasi struktur data
  Map<String, double> products = {};
  List<String> shoppingCart = [];
  
  // Baca produk sampai "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!);
    
    // Tambahkan produk ke map
    products[productName] = price;
  }
  
  // TODO: Tulis kodemu di bawah ini untuk menghitung statistik dan membuat laporan
  
  // Tampilkan laporan pengaturan toko
  // output programmu harus sesuai dengan format persis yang ditunjukkan dalam contoh
}

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Dart online