Kalkulasi BMI pada Fungsi calculateBMI()

This commit is contained in:
202310715297 RAIHAN ARIQ MUZAKKI 2025-11-06 22:05:44 +07:00
parent c69d20c1b7
commit eb0720c592

View File

@ -63,7 +63,9 @@ import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.example.bmicalculator.ui.theme.BMICalculatorTheme import com.example.bmicalculator.ui.theme.BMICalculatorTheme
import java.text.DecimalFormat
import java.text.NumberFormat import java.text.NumberFormat
import kotlin.math.pow
class MainActivity : ComponentActivity() { class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@ -192,15 +194,28 @@ fun UnitUSCFormulaRow(
/** /**
* Calculates the BMI * Calculates the BMI
* dengan Rumus SI Metrics Unit (Default)
* dan
* dengan Rumus USC Units
* *
* Catatan: tambahkan unit test untuk kalkulasi BMI ini * Catatan: tambahkan unit test untuk kalkulasi BMI ini
*/ */
private fun calculateBMI(BmiHeight: Double, BmiWeight: Double = 15.0, unitUSC: Boolean): String { private fun calculateBMI(BmiHeight: Double, BmiWeight: Double, unitUSC: Boolean): String {
var bmi = BmiWeight / 100 * BmiHeight if (BmiHeight <= 0 || BmiWeight <= 0){
if (unitUSC) { return "0"
bmi = kotlin.math.ceil(bmi)
} }
return NumberFormat.getNumberInstance().format(bmi)
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))
}
val df = DecimalFormat("#.#")
return df.format(bmi)
} }
/** /**
* Calculates the BMI Category * Calculates the BMI Category