UTS
This commit is contained in:
parent
1e72c7ab25
commit
87d69921fd
31
README.md
31
README.md
@ -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.5–24.9)
|
||||||
|
Overweight (25–29.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
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
27
app/src/test/java/com/example/tiptime/BMICalculatorTest.kt
Normal file
27
app/src/test/java/com/example/tiptime/BMICalculatorTest.kt
Normal 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user