// Data produk
data class Produk(val kode: Int, val tipe: String, val harga: Int)
// Daftar produk
val daftarProduk = listOf(
Produk(1, "ASICS Swift FF Standard", 1750000),
Produk(2, "ASICS GEL-GAME 9", 1200000),
Produk(3, "ASICS Upcourt 5 Standard", 850000)
)
// Fungsi untuk menampilkan daftar produk
fun tampilkanProduk() {
println("| Kode | Tipe | Harga |")
println("|------|---------------------------|------------|")
for (produk in daftarProduk) {
println("| ${produk.kode} | ${produk.tipe.padEnd(25)} | ${formatRupiah(produk.harga)} |")
}
}
// Fungsi format harga ke ribuan tanpa Java
fun formatRupiah(angka: Int): String {
val str = angka.toString()
var hasil = ""
var count = 0
for (i in str.length - 1 downTo 0) {
hasil = str[i] + hasil
count++
if (count % 3 == 0 && i != 0) {
hasil = ".$hasil"
}
}
return "Rp $hasil"
}
// Fungsi memilih produk berdasarkan kode
fun pilihProduk(kode: Int): Produk? {
return daftarProduk.find { it.kode == kode }
}
// Fungsi utama
fun main() {
println("------------------------------------------------")
println(" ASICS Official Shop ")
println("------------------------------------------------")
tampilkanProduk()
print("Nama Pembeli: ")
val nama = readLine() ?: "Pelanggan"
val belanjaan = mutableListOf<Produk>()
// Looping untuk memilih produk 3 kali
var i = 1
while (i <= 3) {
print("Data Ke - $i\nPilih Kode [1/2/3]: ")
val kode = readLine()?.toIntOrNull()
if (kode != null) {
val produk = pilihProduk(kode)
if (produk != null) {
belanjaan.add(produk)
i++
} else {
println("Kode tidak valid, coba lagi.")
}
} else {
println("Masukkan angka yang valid!")
}
}
println("------------------------------------------------")
println("Terima kasih $nama telah berbelanja di toko ASICS Official")
println("Berikut data belanjaan anda")
println("------------------------------------------------")
println("| No | Tipe | Harga |")
println("|----|---------------------------|------------|")
var totalBayar = 0
for ((index, item) in belanjaan.withIndex()) {
println("| ${index + 1} | ${item.tipe.padEnd(25)} | ${formatRupiah(item.harga)} |")
totalBayar += item.harga
}
println("------------------------------------------------")
println("Total Bayar: ${formatRupiah(totalBayar)}")
println("------------------------------------------------")
// Input email
print("Email: ")
val email = readLine() ?: "Tidak ada email"
println("Nama : $nama")
println("Email : $email")
}