TUGAS 6 PPB - KEYSA ANADEA 5025211028

   

TUGAS 5 PPB

Deskripsi Proyek: Currency Converter

Nama: Keysa Anadea Aqiva Ajie

NRP: 5025211028

Kelas: PPB A


Membangun Aplikasi Currency Converter

Membangun program Currency Converter sederhana menggunakan bahasa pemrograman Kotlin berbasis console.
Program ini dapat mengkonversi mata uang dari satu negara ke negara lain berdasarkan nilai tukar yang sudah ditentukan.

Langkah-Langkah Pembuatan Program

1. Membuat Project Baru

Saya membuat folder project baru dengan nama CurrencyConverter.
Kemudian membuat file Kotlin baru bernama CurrencyConverter.kt.

2. Membuat Program Konversi Mata Uang

Program dibuat menggunakan fitur dasar Kotlin:

  • Data Class:

    • Membuat Currency untuk menyimpan data kode, nama, nilai tukar, dan locale.

  • Fungsi main():

    • Menampilkan daftar pilihan mata uang sumber.

    • Menampilkan daftar pilihan mata uang tujuan.

    • Input jumlah uang yang ingin dikonversi.

    • Menghitung hasil konversi dan menampilkannya dalam format mata uang lokal.

Struktur Program

a) Data Class

Membuat data class Currency yang berisi:

  • code ➔ Kode mata uang (contoh: USD, IDR).

  • name ➔ Nama negara atau mata uang.

  • ratePerUSD ➔ Nilai tukar terhadap USD.

  • locale ➔ Lokalisasi format uang.

b) Fungsi Main

Fungsi utama program yang mencakup:

  • Menampilkan daftar mata uang sumber.

  • Menampilkan daftar mata uang tujuan.

  • Input jumlah uang dari pengguna.

  • Proses konversi nilai tukar.

  • Menampilkan hasil konversi dengan format angka lokal.

c) Proses Perhitungan

Menghitung hasil konversi dengan rumus:

convertedAmount = (amount / sourceCurrency.ratePerUSD) * targetCurrency.ratePerUSD 

Menggunakan NumberFormat.getCurrencyInstance(locale) untuk memformat hasil sesuai dengan format negara tujuan.

HASIL KODE:




KODE:

CurrencyConverter.kt


import java.text.NumberFormat
import java.util.Locale

data class Currency(
val code: String,
val name: String,
val ratePerUSD: Double,
val locale: Locale
)

fun main() {
val currencies = listOf(
Currency("USD", "US Dollar", 1.0, Locale.US),
Currency("IDR", "Indonesian Rupiah", 15000.0, Locale("in", "ID")),
Currency("EUR", "Euro", 0.93, Locale.GERMANY),
Currency("JPY", "Japanese Yen", 147.0, Locale.JAPAN),
Currency("GBP", "British Pound", 0.79, Locale.UK),
Currency("AUD", "Australian Dollar", 1.52, Locale("en", "AU")),
Currency("SGD", "Singapore Dollar", 1.35, Locale("en", "SG")),
Currency("CAD", "Canadian Dollar", 1.5, Locale.CANADA),
Currency("CHF", "Swiss Franc", 0.90, Locale("de", "CH")),
Currency("INR", "Indian Rupee", 83.0, Locale("en", "IN"))
)

println("=== Currency Converter ===")

// Pilih mata uang sumber
println("\nPilih mata uang sumber:")
currencies.forEachIndexed { index, currency ->
println("${index + 1}. ${currency.name} (${currency.code})")
}

print("Masukkan nomor sumber (1-${currencies.size}): ")
val sourceIndex = readLine()?.toIntOrNull()?.minus(1) ?: -1
if (sourceIndex !in currencies.indices) {
println("Input tidak valid. Program dihentikan.")
return
}
val sourceCurrency = currencies[sourceIndex]

// Pilih mata uang tujuan
println("\nPilih mata uang tujuan:")
currencies.forEachIndexed { index, currency ->
println("${index + 1}. ${currency.name} (${currency.code})")
}

print("Masukkan nomor tujuan (1-${currencies.size}): ")
val targetIndex = readLine()?.toIntOrNull()?.minus(1) ?: -1
if (targetIndex !in currencies.indices) {
println("Input tidak valid. Program dihentikan.")
return
}
val targetCurrency = currencies[targetIndex]

// Input jumlah uang
print("\nMasukkan jumlah dalam ${sourceCurrency.code}: ")
val amount = readLine()?.toDoubleOrNull()
if (amount == null || amount < 0) {
println("Input jumlah tidak valid. Program dihentikan.")
return
}

// Hitung konversi
val convertedAmount = (amount / sourceCurrency.ratePerUSD) * targetCurrency.ratePerUSD

// Tampilkan hasil konversi
val formatter = NumberFormat.getCurrencyInstance(targetCurrency.locale)
val result = formatter.format(convertedAmount)

println("\nHasil Konversi: ${amount} ${sourceCurrency.code} = $result (${targetCurrency.code})")
}

Komentar

Postingan populer dari blog ini

TUGAS 2 PPB - KEYSA ANADEA 5025211028

TUGAS 7 PPB - KEYSA ANADEA 5025211028

ETS PPL A_KEYSA ANADEA