Rangkuman: List Dinamis
Termasuk bagian Dasar-Dasar dalam perjalanan GO di Coddy. Pelajaran 83 dari 109.
Tantangan
SedangMari berlatih menggunakan slice di Go dengan membuat pengelola daftar belanja sederhana!
Tugasmu adalah mengimplementasikan beberapa fungsi untuk mengelola daftar belanja:
addItems: Menambahkan item baru ke daftar belanjaremoveItem: Menghapus item dari daftar berdasarkan indeksfindExpensiveItems: Menemukan item dengan harga di atas ambang batascalculateTotalCost: 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
4Operator Perbandingan dan Logika
Operator Perbandingan, Bagian 1Operator Perbandingan, Bagian 2Operator AND LogikaOperator OR LogikaOperator NOT LogikaDasar Prioritas OperatorRingkasan, Membuat Perbandingan7Alur Kontrol: Perulangan
Penjelasan tentang `for` loop`for` loop Dasar`for` loop dengan Kondisi SajaKata Kunci `break`Kata Kunci `continue`Perulangan BersarangRangkuman: Mengulang Tindakan2Variabel dan Tipe Data Dasar
Apa itu variabelInferensi Tipe dengan `:=`Bilangan Bulat (int)Bilangan Floating-PointBooleanstringNilai NolKonstantaKonvensi PenamaanRangkuman: Variabel dan Tipe5Input/Output Dasar
Output TerformatKata Kerja FormatMencetak Tipe DataMendapatkan Input Dasar dari PenggunaRangkuman: Input dan Output8Fungsi
Memahami FungsiMendeklarasikan FungsiMemanggil FungsiParameter FungsiMengembalikan Satu NilaiMengembalikan Beberapa NilaiNilai Kembalian BernamaDasar Cakupan FungsiRangkuman: Membuat Kodemu Dapat Digunakan Kembali3Operator Dasar
Operator AritmetikaOperator PembagianOperator ModuloOperator PenugasanOperator Penugasan GabunganInkrementasi dan DekrementasiRangkuman: Perhitungan6Alur Kontrol: Percabangan
Pernyataan `if`Kata Kunci `else`Kata Kunci `else if`Shadowing Variabel dalam `if`Menginisialisasi VariabelPernyataan `switch``switch` dengan Ekspresi`switch` tanpa EkspresiKata Kunci `fallthrough`Ringkasan: Membuat KeputusanLatihan sendiri: Compiler Go online