Menu
CoddyTech

Menjumlahkan Nilai

Termasuk bagian Logika dan Alur dalam perjalanan GDScript di Coddy. Pelajaran 49 dari 78.

GDScript tidak memiliki fungsi bawaan untuk menjumlahkan array. Kamu menjumlahkan nilai-nilainya dengan perulangan dan total berjalan, yaitu variabel yang dimulai dari 0 dan bertambah sebesar setiap nilai:

var coins := [12, 30, 8, 50]
var total := 0
for amount in coins:
	total += amount
print(total) # 100

Untuk menambahkan nilai-nilai ke jumlah awal, mulai total dari jumlah tersebut. Pemain yang memiliki 40 koin sebelum level berakhir dengan 140:

var total := 40
for amount in coins:
	total += amount
print(total) # 140

Perulangan yang sama menjumlahkan nilai dalam dictionary saat menelusuri values(), dan menjumlahkan satu field dari setiap dictionary dalam array saat membaca field tersebut:

var inventory := {"potion": 3, "arrow": 20, "bomb": 2}
var items := 0
for count in inventory.values():
	items += count
print(items) # 25

var party := [{"hero": "Mia", "hp": 80}, {"hero": "Leo", "hp": 65}]
var party_hp := 0
for member in party:
	party_hp += member["hp"]
print(party_hp) # 145

Untuk mendapatkan satu total per grup, simpan totalnya dalam dictionary. get() dengan nilai bawaan 0 menangani grup yang belum memiliki total:

var loot := [["gold", 10], ["gems", 2], ["gold", 25]]
var totals := {}
for drop in loot:
	totals[drop[0]] = totals.get(drop[0], 0) + drop[1]
print(totals) # { "gold": 35, "gems": 2 }

Untuk menghitung rata-rata, bagi total dengan jumlah nilai, lalu konversikan ke float terlebih dahulu agar angka desimal tetap ada: float(total) / coins.size().

challenge icon

Tantangan

Mudah

Sebuah toko ingin mengetahui jumlah uang di mesin kasirnya pada akhir hari. Program membaca dua baris:

  1. Total penjualan hari itu, berupa bilangan bulat yang dipisahkan oleh spasi. Barisnya kosong jika tidak ada penjualan.
  2. Uang yang ada di mesin kasir pada awal hari (bilangan bulat).

Tambahkan setiap penjualan ke uang awal, lalu cetak hasilnya setelah Total: . Untuk input 100 200 150 300 dan 50, outputnya adalah:

Total: 800

Coba sendiri

extends Node

func _ready():
	var sales := OS.read_string_from_stdin().split(" ", false)
	var starting_cash := int(OS.read_string_from_stdin())
	# Tambahkan setiap hasil penjualan ke uang tunai awal, lalu cetak totalnya
	pass
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler GDScript online