Menu
CoddyTech

Rangkuman: List Dinamis

Termasuk bagian Dasar-Dasar dalam perjalanan GO di Coddy. Pelajaran 83 dari 109.

challenge icon

Tantangan

Sedang

Mari berlatih menggunakan slice di Go dengan membuat pengelola daftar belanja sederhana!

Tugasmu adalah mengimplementasikan beberapa fungsi untuk mengelola daftar belanja:

  1. addItems: Menambahkan item baru ke daftar belanja
  2. removeItem: Menghapus item dari daftar berdasarkan indeks
  3. findExpensiveItems: Menemukan item dengan harga di atas ambang batas
  4. calculateTotalCost: Menghitung total harga semua item

Setiap item dalam daftar belanja direpresentasikan oleh string (nama) dan float64 (harga). Fungsi main menunjukkan cara semua operasi ini bekerja bersama.

Coba sendiri

package main

import "fmt"

// addItems menambahkan barang baru beserta harganya ke list belanja
func addItems(names []string, prices []float64, newNames []string, newPrices []float64) ([]string, []float64) {
	// Tulis kodemu di sini
	return names, prices
}

// removeItem menghapus barang pada indeks yang ditentukan
func removeItem(names []string, prices []float64, index int) ([]string, []float64) {
	// Tulis kodemu di sini
	return names, prices
}

// findExpensiveItems mengembalikan barang dengan harga di atas batas
func findExpensiveItems(names []string, prices []float64, threshold float64) []string {
	// Tulis kodemu di sini
	return nil
}

// calculateTotalCost mengembalikan jumlah seluruh harga
func calculateTotalCost(prices []float64) float64 {
	// Tulis kodemu di sini
	return 0
}

func main() {
	// Inisialisasi list belanja kosong
	names := []string{}
	prices := []float64{}
	
	// Tambahkan barang awal
	initialNames := []string{"Apples", "Milk", "Bread"}
	initialPrices := []float64{2.99, 3.49, 2.29}
	
	names, prices = addItems(names, prices, initialNames, initialPrices)
	
	// Tampilkan list belanja awal
	fmt.Println("Initial Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
	
	// Hitung dan tampilkan total biaya
	total := calculateTotalCost(prices)
	fmt.Printf("\nTotal Cost: $%.2f\n", total)
	
	// Cari dan tampilkan barang mahal
	priceThreshold := 3.00
	expensiveItems := findExpensiveItems(names, prices, priceThreshold)
	
	fmt.Printf("\nExpensive Items (above $%.2f):\n", priceThreshold)
	for _, item := range expensiveItems {
		fmt.Println(item)
	}
	
	// Tambahkan barang baru
	names, prices = addItems(names, prices, []string{"Cheese"}, []float64{4.99})
	
	// Hapus barang
	names, prices = removeItem(names, prices, 1)
	fmt.Println("\nRemoved item at index 1")
	
	// Cetak list belanja terakhir
	fmt.Println("\nFinal Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
}

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Go online