Untitled

 avatar
unknown
golang
6 months ago
1.2 kB
5
Indexable
const nMax int = 100

type dataMobil [nMax]string

func isiData(arrMobil *dataMobil) {
	/* I.S. Terdefinisi nilai array dataMobil yang masih kosong
	   F.S. arrMobil berisi data yang diinputkan */
	var input string
	i := 0

	for {
		fmt.Scan(&input)
		if input == "-1" {
			break
		} else if input == "merah" || input == "hitam" || input == "abu" {
			arrMobil[i] = input
			i++
		}
	}
}

// Fungsi untuk menghitung warna mobil terbanyak
func hitung(arrMobil dataMobil) string {
	/* Mengembalikan string warna mobil tertentu yang paling banyak melintasi jalan */
	var nMerah, nHitam, nAbu int
	var terbanyak string

	for _, warna := range arrMobil {
		if warna == "merah" {
			nMerah++
		} else if warna == "hitam" {
			nHitam++
		} else if warna == "abu" {
			nAbu++
		}
	}

	if nMerah > nHitam && nMerah > nAbu {
		terbanyak = "merah"
	} else if nHitam > nMerah && nHitam > nAbu {
		terbanyak = "hitam"
	} else if nAbu > nMerah && nAbu > nHitam {
		terbanyak = "abu"
	} else {
		if nMerah == nHitam && nMerah > nAbu {
			terbanyak = "merah"
		} else if nHitam == nAbu && nHitam > nMerah {
			terbanyak = "hitam"
		} else {
			terbanyak = "abu"
		}
	}

	return terbanyak
}
Editor is loading...
Leave a Comment