diff --git a/app/src/main/java/com/example/bmicalculator/MainActivity.kt b/app/src/main/java/com/example/bmicalculator/MainActivity.kt index c3872e0..256387b 100644 --- a/app/src/main/java/com/example/bmicalculator/MainActivity.kt +++ b/app/src/main/java/com/example/bmicalculator/MainActivity.kt @@ -50,6 +50,7 @@ import androidx.compose.material3.Switch import androidx.compose.material3.Text import androidx.compose.material3.TextField import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -90,6 +91,12 @@ fun BMICalculatorLayout() { var weightInput by remember { mutableStateOf("") } var unitUSC by remember { mutableStateOf(false) } + // Reset Nilai Input + LaunchedEffect(unitUSC) { + heightInput = "" + weightInput = "" + } + val BmiHeight = heightInput.toDoubleOrNull() ?: 0.0 val BmiWeight = weightInput.toDoubleOrNull() ?: 0.0 val bmi = calculateBMI(BmiHeight, BmiWeight, unitUSC) @@ -111,7 +118,7 @@ fun BMICalculatorLayout() { .align(alignment = Alignment.Start) ) EditNumberField( - label = R.string.height, + label = if (unitUSC == true) R.string.heightInch else R.string.heightCm, leadingIcon = R.drawable.number, keyboardOptions = KeyboardOptions.Default.copy( keyboardType = KeyboardType.Number, @@ -122,7 +129,7 @@ fun BMICalculatorLayout() { modifier = Modifier.padding(bottom = 32.dp).fillMaxWidth(), ) EditNumberField( - label = R.string.weight, + label = if (unitUSC) R.string.weightPound else R.string.weightKg, leadingIcon = R.drawable.number, keyboardOptions = KeyboardOptions.Default.copy( keyboardType = KeyboardType.Number, @@ -206,12 +213,10 @@ private fun calculateBMI(BmiHeight: Double, BmiWeight: Double, unitUSC: Boolean) } val heightInMeter = BmiHeight/100 // konversi centimeter ke meter - val heightInInch = BmiHeight * 0.3937 // konversi centimeter ke inci - val weightInPound = BmiWeight * 2.2046 // konversi berat badan ke pound (lbs) var bmi = BmiWeight / heightInMeter.pow(2) - if (unitUSC) { - bmi = 703 * (weightInPound / heightInInch.pow(2)) + if (unitUSC == true) { + bmi = 703 * (BmiWeight / BmiHeight.pow(2)) } val df = DecimalFormat("#.#") diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d8e8764..469b90d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -17,8 +17,10 @@ BMI Calculator Calculate BMI - Tinggi Badan - Berat Badan + Tinggi Badan (cm) + Berat Badan (kg) + Tinggi Badan (inch) + Berat Badan (lbs) Gunakan Unit USC (lbs/in)? BMI Anda: %s Kategori: %s