From 0ee43c2e9aaf7c017d9034cc2ed6ee13bd50b1d4 Mon Sep 17 00:00:00 2001 From: Arif Dwiyanto Date: Thu, 6 Nov 2025 11:34:31 +0700 Subject: [PATCH] First update calculation --- .../java/com/example/tiptime/MainActivity.kt | 28 +++++++++++++++---- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/example/tiptime/MainActivity.kt b/app/src/main/java/com/example/tiptime/MainActivity.kt index a018c97..d0fdd80 100644 --- a/app/src/main/java/com/example/tiptime/MainActivity.kt +++ b/app/src/main/java/com/example/tiptime/MainActivity.kt @@ -81,7 +81,8 @@ fun TipTimeLayout() { val BmiHeight = amountInput.toDoubleOrNull() ?: 0.0 val BmiWeight = tipInput.toDoubleOrNull() ?: 0.0 - val tip = calculateBMI(BmiHeight, BmiWeight, roundUp) + val bmi = calculateBMI(BmiHeight, BmiWeight, roundUp) + val category = calculateBMICategory(BmiHeight, BmiWeight, roundUp) Column( modifier = Modifier @@ -126,9 +127,14 @@ fun TipTimeLayout() { modifier = Modifier.padding(bottom = 32.dp) ) Text( - text = stringResource(R.string.bmi_calculation, tip), + text = stringResource(R.string.bmi_calculation, bmi), style = MaterialTheme.typography.displaySmall ) + Text( + text = stringResource(R.string.bmi_category, category), + style = MaterialTheme.typography.displaySmall + ) + Spacer(modifier = Modifier.height(150.dp)) } } @@ -180,13 +186,25 @@ fun RoundTheTipRow( * Catatan: tambahkan unit test untuk kalkulasi BMI ini */ private fun calculateBMI(BmiHeight: Double, BmiWeight: Double = 15.0, roundUp: Boolean): String { - var tip = BmiWeight / 100 * BmiHeight + var bmi = BmiWeight / 100 * BmiHeight if (roundUp) { - tip = kotlin.math.ceil(tip) + bmi = kotlin.math.ceil(bmi) } - return NumberFormat.getNumberInstance().format(tip) + return NumberFormat.getNumberInstance().format(bmi) } +/** + * Calculates the BMI Category + * + * Catatan: tambahkan unit test untuk kalkulasi BMI ini + */ +private fun calculateBMICategory(BmiHeight: Double, BmiWeight: Double = 15.0, roundUp: Boolean): String { + var bmi = BmiWeight / 100 * BmiHeight + if (roundUp) { + bmi = kotlin.math.ceil(bmi) + } + return NumberFormat.getNumberInstance().format(bmi) +} @Preview(showBackground = true) @Composable fun TipTimeLayoutPreview() { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6db9d41..04e6db2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -20,6 +20,6 @@ Tinggi Badan Berat Badan Gunakan Unit USC (lbs/in)? - BMI Anda: %s + Kategori: %s