Menu
CoddyTech

Gambaran Umum Proyek

Termasuk bagian Logika & Alur dalam perjalanan GO di Coddy. Pelajaran 45 dari 68.

challenge icon

Tantangan

Mudah

Kamu akan membuat pemeriksa inventaris sederhana untuk membantu mengelola tingkat stok produk.

Siapkan dasar sistem manajemen inventarismu dengan membuat struktur data inti dan menampilkan data inventaris awal. Tantangan ini menetapkan struct Product dan map inventaris yang akan digunakan di seluruh proyek.

Kamu akan menerima dua input:

  • String berisi informasi toko dengan format "store_name,location" (misalnya, "TechStore,Downtown")
  • String berisi data produk awal dengan format "product1:price1:quantity1,product2:price2:quantity2,product3:price3:quantity3" (misalnya, "Laptop:999.99:5,Mouse:25.50:15,Keyboard:75.00:8")

Tugasmu adalah:

  1. Buat struct Product dengan dua field:
    • Price (float64), harga produk
    • Quantity (int), jumlah stok saat ini
  2. Parse input pertama dengan memisahkannya berdasarkan koma untuk mendapatkan nama toko dan lokasi
  3. Parse input kedua dengan memisahkannya berdasarkan koma untuk mendapatkan setiap entri produk
  4. Untuk setiap entri produk, pisahkan berdasarkan titik dua untuk mendapatkan nama produk, harga, dan jumlah
  5. Ubah string harga menjadi float64 dan string jumlah menjadi int
  6. Buat map bernama inventory dengan nama produk (string) sebagai kunci dan struct Product sebagai nilai
  7. Isi map inventaris dengan data produk yang telah di-parse
  8. Tampilkan informasi toko:
    • "=== [store_name] Inventory System ==="
    • "Location: [location]"
    • "Inventory initialized with [number_of_products] products"
  9. Tampilkan inventaris saat ini berdasarkan urutan alfabet nama produk:
    • "Current Inventory:"
    • Untuk setiap produk: "- [product_name]: $[price] (Stock: [quantity])"
  10. Hitung dan tampilkan statistik inventaris:
    • "Inventory Statistics:"
    • "Total Products: [total_number_of_products]"
    • "Total Items in Stock: [sum_of_all_quantities]"
    • "Total Inventory Value: $[sum_of_price_times_quantity_for_all_products]"
  11. Tampilkan status sistem:
    • "System Status: Ready"
    • "Inventory management system initialized successfully"

Gunakan package strings untuk memisahkan string input, package strconv untuk mengubah string menjadi angka, package fmt untuk output berformat, dan package sort untuk mengurutkan nama produk berdasarkan abjad. Format nilai total inventaris hingga 2 angka desimal. Tantangan ini menetapkan struktur data dasar yang akan dikembangkan dalam pelajaran berikutnya pada proyek manajemen inventaris.

Coba sendiri

package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
	"strconv"
	"strings"
)

// TODO: Definisikan struct Product di sini

func main() {
	// Baca input menggunakan bufio.Scanner agar spasi ditangani dengan benar
	scanner := bufio.NewScanner(os.Stdin)
	
	scanner.Scan()
	storeInfo := scanner.Text()
	
	scanner.Scan()
	productData := scanner.Text()
	
	// TODO: Tulis kodemu di bawah ini
	// 1. Uraikan informasi toko (pisahkan berdasarkan koma, periksa panjangnya)
	// 2. Uraikan data produk (pisahkan berdasarkan koma, lalu berdasarkan titik dua untuk setiap produk)
	// 3. Buat map inventory
	// 4. Ubah string ke tipe yang sesuai dan isi inventory
	// 5. Tampilkan informasi toko
	// 6. Tampilkan inventory saat ini (urutkan menurut abjad)
	// 7. Hitung dan tampilkan statistik inventory
	// 8. Tampilkan status sistem
	
}

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Go online