Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // return currency dengan 2 angka di belakang koma
- fun convertCurrency(currencyFrom: Double, currencyTo: Double) = String.format("%.2f", currencyFrom * currencyTo).toDouble()
- // return true jika input dari user berupa angka
- // contoh: -13.5 -> true
- fun isMatches(value: String): Boolean = value.matches("-?\\d+(\\.\\d+)?".toRegex())
- // return mutable map yang sudah diconvert currency nya
- fun getConvertedCurrency(currencyFrom: Double, mapOfCurrency: Map<String, Double>): MutableMap<String, Double> {
- val newMap = mutableMapOf<String, Double>()
- mapOfCurrency.forEach { newMap[it.key] = convertCurrency(currencyFrom, it.value) }
- return newMap
- }
- fun main() {
- // currency IDR terhadap mata uang lain
- // data diambil dari https://www.xe.com/currency/idr-indonesian-rupiah
- val mapOfCurrency = mapOf(
- "USD" to 0.000071,
- "EUR" to 0.000063,
- "Yen" to 0.0079,
- "Yuan" to 0.00048,
- "AUD" to 0.00010
- )
- print("Masukkan uang dalam Rupiah\t: ")
- val rupiah = readLine()
- // jika input null atau input bukan angka maka tampilkan 'input salah'
- // selain itu dapatkan hasil konversi
- if (rupiah == null) {
- println("\nInput Salah!")
- } else {
- if (isMatches(rupiah)) {
- val mapOfConvertedCurrency = getConvertedCurrency(rupiah.toDouble(), mapOfCurrency)
- // tampilkan
- println("\nHasil Konversi\n")
- mapOfConvertedCurrency.forEach { println("$rupiah IDR\t= ${it.key} ${it.value}") }
- } else {
- println("\nInput Salah!")
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement