This commit is contained in:
202310715128 ARIF NURKHAYAN 2025-11-07 20:07:21 +07:00
parent 1e72c7ab25
commit 87d69921fd
3 changed files with 60 additions and 2 deletions

View File

@ -3,6 +3,34 @@ Kalkulator BMI
Nama : Arif Nurkhayan Nama : Arif Nurkhayan
Kelas : F5A5 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.524.9)
Overweight (2529.9)
Obesity (≥30)
Langkah-langkah (Step) yang dilakukan: Langkah-langkah (Step) yang dilakukan:
1.Mencari penjelasan rumus BMI 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 4.Review hasil akhir
Setelah itu, saya pahami semua kode, mengetes hasil kalkulasi BMI. 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." "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 Silahkan kembangkan aplikasi ini untuk melakukan perhitungan BMI
Petunjuk lebih detil dapat dibaca di Petunjuk lebih detil dapat dibaca di

View File

@ -192,7 +192,7 @@ fun RoundTheTipRow(
// } // }
// return NumberFormat.getNumberInstance().format(bmi) // 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" if (BmiHeight <= 0 || BmiWeight <= 0) return "0.0"
val bmi = if (useUSC) { val bmi = if (useUSC) {
@ -221,7 +221,7 @@ private fun calculateBMI(BmiHeight: Double, BmiWeight: Double, useUSC: Boolean):
/** /**
* Menentukan kategori BMI berdasarkan nilai BMI * 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" if (BmiHeight <= 0 || BmiWeight <= 0) return "Input tidak valid"
val bmiValue = if (useUSC) { val bmiValue = if (useUSC) {

View File

@ -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)
}
}