package main

import "fmt"

func main() {
	nilai := []int{70, 80, 90, 100}

	// Langkah 1 (reproduksi): hasil meleset dari dugaan manual 340.
	fmt.Println("hasil awal :", totalBermasalah(nilai), "(dugaan 340)")

	// Langkah 5 (perbaikan): akar masalah len(nilai)-1 dihapus.
	fmt.Println("perbaikan  :", total(nilai))
}

// totalBermasalah versi awal: pengulangan berhenti satu elemen terlalu cepat.
// printf debugging sengaja dibiarkan di dalam untuk mengamati jalannya loop.
func totalBermasalah(nilai []int) int {
	total := 0
	for i := 0; i < len(nilai)-1; i++ {
		total += nilai[i]
		fmt.Printf("iterasi i=%d nilai=%d total=%d\n", i, nilai[i], total)
	}
	return total
}

// total versi diperbaiki: batasan pengulangan i < len(nilai).
func total(nilai []int) int {
	total := 0
	for i := 0; i < len(nilai); i++ {
		total += nilai[i]
	}
	return total
}
