diff --git a/README.md b/README.md index 81d59b7..6bc487f 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,34 @@ Kalkulator BMI Nama : Arif Nurkhayan Kelas : F5A5 +Langkah Penggunaan Aplikasi Kalkulator BMI : + +1.Buka aplikasi “BMI Calculator” di emulator atau perangkat Android. +Pada tampilan utama, kamu akan melihat dua kolom input: +Tinggi Badan +Berat Badan + +2.Masukkan tinggi badan kamu: +Jika sistem SI → gunakan satuan centimeter (cm) +Jika sistem USC → gunakan satuan inch (in) + +3.Masukkan berat badan kamu: +Jika sistem SI → gunakan satuan kilogram (kg) +Jika sistem USC → gunakan satuan pound (lb) + +4.Pilih sistem satuan dengan Switch di bawah input: +Posisi kiri → SI (kg/cm) +Posisi kanan → USC (lb/inch) + +5.Aplikasi akan menampilkan Nilai BMI (dalam angka desimal) +Kategori BMI, yaitu: +Underweight (<18.5) +Normal (18.5–24.9) +Overweight (25–29.9) +Obesity (≥30) + + + Langkah-langkah (Step) yang dilakukan: 1.Mencari penjelasan rumus BMI @@ -18,8 +46,11 @@ Saya minta bantuan ChatGPT untuk memperbaiki logika agar sesuai rumus pada refer 4.Review hasil akhir Setelah itu, saya pahami semua kode, mengetes hasil kalkulasi BMI. + "Aplikasi ini dikembangkan dengan bantuan ChatGPT (OpenAI GPT-5) untuk penyusunan logika BMI dan perbaikan kode Jetpack Compose. Seluruh ide, perhitungan, dan implementasi akhir tetap saya pahami dan ubah sesuai kebutuhan tugas." + + Silahkan kembangkan aplikasi ini untuk melakukan perhitungan BMI Petunjuk lebih detil dapat dibaca di diff --git a/app/src/main/java/com/example/tiptime/MainActivity.kt b/app/src/main/java/com/example/tiptime/MainActivity.kt index 82edf45..781755c 100644 --- a/app/src/main/java/com/example/tiptime/MainActivity.kt +++ b/app/src/main/java/com/example/tiptime/MainActivity.kt @@ -192,7 +192,7 @@ fun RoundTheTipRow( // } // return NumberFormat.getNumberInstance().format(bmi) //} -private fun calculateBMI(BmiHeight: Double, BmiWeight: Double, useUSC: Boolean): String { +fun calculateBMI(BmiHeight: Double, BmiWeight: Double, useUSC: Boolean): String { if (BmiHeight <= 0 || BmiWeight <= 0) return "0.0" val bmi = if (useUSC) { @@ -221,7 +221,7 @@ private fun calculateBMI(BmiHeight: Double, BmiWeight: Double, useUSC: Boolean): /** * Menentukan kategori BMI berdasarkan nilai BMI */ -private fun calculateBMICategory(BmiHeight: Double, BmiWeight: Double, useUSC: Boolean): String { +fun calculateBMICategory(BmiHeight: Double, BmiWeight: Double, useUSC: Boolean): String { if (BmiHeight <= 0 || BmiWeight <= 0) return "Input tidak valid" val bmiValue = if (useUSC) { diff --git a/app/src/test/java/com/example/tiptime/BMICalculatorTest.kt b/app/src/test/java/com/example/tiptime/BMICalculatorTest.kt new file mode 100644 index 0000000..7da778e --- /dev/null +++ b/app/src/test/java/com/example/tiptime/BMICalculatorTest.kt @@ -0,0 +1,27 @@ +package com.example.tiptime + +import org.junit.Assert.assertEquals +import org.junit.Test + +class BMICalculatorTest { + + @Test + fun bmiCalculation_isCorrect_forSI() { + // 72.57 kg, 177.8 cm → BMI ≈ 23.0 + val result = calculateBMI(177.8, 72.57, false).toDouble() + assertEquals(23.0, result, 0.1) + } + + @Test + fun bmiCalculation_isCorrect_forUSC() { + // 160 lb, 70 in → BMI ≈ 23.0 + val result = calculateBMI(70.0, 160.0, true).toDouble() + assertEquals(23.0, result, 0.1) + } + + @Test + fun bmiCategory_isNormal_for23() { + val category = calculateBMICategory(177.8, 72.57, false) + assertEquals("Normal", category) + } +}