Hari 28: Mini Project — Kalkulator BMI
60 min
Last updated 09 Apr 2026
BMI Calculator App
BMI (Body Mass Index) = berat (kg) / tinggi² (m). Kita buat kalkulator BMI yang lengkap.
import "package:flutter/material.dart";
enum Gender { pria, wanita }
class BMIResult {
final double bmi;
BMIResult(this.bmi);
String get kategori {
if (bmi < 18.5) return "Kurus (Underweight)";
if (bmi < 25.0) return "Normal";
if (bmi < 30.0) return "Kelebihan Berat (Overweight)";
return "Obesitas";
}
Color get warna {
if (bmi < 18.5) return Colors.blue;
if (bmi < 25.0) return Colors.green;
if (bmi < 30.0) return Colors.orange;
return Colors.red;
}
String get saran {
if (bmi < 18.5) return "Tingkatkan asupan kalori dan protein. Konsultasikan dengan dokter gizi.";
if (bmi < 25.0) return "Pertahankan pola makan sehat dan olahraga rutin!";
if (bmi < 30.0) return "Kurangi konsumsi makanan berlemak dan perbanyak olahraga.";
return "Segera konsultasikan dengan dokter. Diet ketat dan olahraga teratur diperlukan.";
}
String get display => bmi.toStringAsFixed(1);
}
class BMICalculator {
static BMIResult hitung(double beratKg, double tinggiCm) {
if (beratKg <= 0 || tinggiCm <= 0) throw ArgumentError("Berat dan tinggi harus positif");
double tinggiM = tinggiCm / 100;
return BMIResult(beratKg / (tinggiM * tinggiM));
}
}
💡
Notice: Tinggi harus dikonversi ke meter (bagi 100) sebelum menghitung BMI.
Assignment
Buat BMI Calculator lengkap dengan kategori dan emoji status.
Expected output:
45.0kg / 165.0cm → BMI: 16.5 🔵 Kurus
65.0kg / 170.0cm → BMI: 22.5 🟢 Normal
80.0kg / 165.0cm → BMI: 29.4 🟡 Overweight
100.0kg / 168.0cm → BMI: 35.4 🔴 Obesitas
Dart
main.dart
Solution
Output