πŸ› οΈToolsShed

Kalkulator Lemak Tubuh

Perkirakan persentase lemak tubuh menggunakan metode U.S. Navy.

Kalkulator Lemak Tubuh memperkirakan persentase lemak tubuh Anda menggunakan metode pengukuran yang telah divalidasi yang tidak memerlukan peralatan mahal. Pendekatan yang paling umum digunakan di sini adalah Metode Angkatan Laut AS, yang menggunakan pengukuran lingkar leher, pinggang, dan pinggul bersama dengan tinggi badan untuk memperkirakan massa lemak.

Masukkan jenis kelamin, tinggi badan Anda, dan pengukuran lingkar yang diperlukan dalam sentimeter atau inci. Alat menghitung perkiraan persentase lemak tubuh Anda dan membandingkannya dengan kisaran sehat menurut usia dan jenis kelamin yang ditetapkan oleh American Council on Exercise (ACE).

Persentase lemak tubuh dianggap sebagai indikator kebugaran yang lebih baik daripada BMI saja, tetapi juga memiliki margin kesalahan. Pengukuran yang konsisten dari waktu ke waktu (selalu dilakukan dengan cara yang sama) lebih berharga daripada pembacaan tunggal mana pun.

Pertanyaan yang Sering Diajukan

Implementasi Kode

import math

def navy_body_fat_male(waist_cm: float, neck_cm: float, height_cm: float) -> float:
    """
    US Navy body fat formula for males.
    %BF = 86.010 * log10(waist - neck) - 70.041 * log10(height) + 36.76
    """
    return 86.010 * math.log10(waist_cm - neck_cm) - 70.041 * math.log10(height_cm) + 36.76

def navy_body_fat_female(waist_cm: float, hip_cm: float, neck_cm: float, height_cm: float) -> float:
    """
    US Navy body fat formula for females.
    %BF = 163.205 * log10(waist + hip - neck) - 97.684 * log10(height) - 78.387
    """
    return 163.205 * math.log10(waist_cm + hip_cm - neck_cm) - 97.684 * math.log10(height_cm) - 78.387

def classify_body_fat_male(bf_percent: float) -> str:
    if bf_percent < 6:   return "Essential fat"
    if bf_percent < 14:  return "Athletes"
    if bf_percent < 18:  return "Fitness"
    if bf_percent < 25:  return "Acceptable"
    return "Obese"

def classify_body_fat_female(bf_percent: float) -> str:
    if bf_percent < 14:  return "Essential fat"
    if bf_percent < 21:  return "Athletes"
    if bf_percent < 25:  return "Fitness"
    if bf_percent < 32:  return "Acceptable"
    return "Obese"

# Male example
waist, neck, height = 85.0, 37.5, 178.0
bf_male = navy_body_fat_male(waist, neck, height)
print(f"Male example: waist={waist}cm, neck={neck}cm, height={height}cm")
print(f"  Body fat: {bf_male:.1f}% ({classify_body_fat_male(bf_male)})")

# Female example
waist_f, hip_f, neck_f, height_f = 72.0, 95.0, 33.5, 165.0
bf_female = navy_body_fat_female(waist_f, hip_f, neck_f, height_f)
print(f"\nFemale example: waist={waist_f}cm, hip={hip_f}cm, neck={neck_f}cm, height={height_f}cm")
print(f"  Body fat: {bf_female:.1f}% ({classify_body_fat_female(bf_female)})")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.