Angka Penting di Python: Menampilkan Hasil Hitung dengan f-string
Salah satu kesalahan paling umum yang dilakukan pemula saat memakai Python untuk sains bukanlah salah rumus, melainkan salah menampilkan hasil. Sebuah perhitungan bisa benar secara matematika, tetapi menyesatkan secara ilmiah jika jumlah angka pentingnya keliru atau satuannya hilang. Artikel ini membahas cara berpikir tentang angka penting (significant figures) dan cara menampilkannya dengan rapi memakai f-string.
Sebuah Soal Sederhana yang Menjebak
Perhatikan soal berikut, yang sering muncul di buku teks fisika dasar:
Densitas suatu material sama dengan massanya dibagi volumenya. Berapa densitas (dalam kg/m³) sebuah batuan bermassa 1.80 kg dan bervolume 6.0 × 10⁻⁴ m³?
Pilihan jawabannya: (i) 3 × 10³; (ii) 3.0 × 10³; (iii) 3.00 × 10³; (iv) 3.000 × 10³; (v) semua jawaban di atas ekuivalen secara matematika.
Mari kita hitung dulu nilainya di Python:
m = 1.80 # massa (kg) -> 3 angka penting
V = 6.0e-4 # volume (m^3) -> 2 angka penting
rho = m / V
print(rho) # 3000.0
Nilainya jelas 3000 kg/m³. Tetapi yang sebenarnya diuji soal ini bukan nilainya, melainkan jumlah angka penting. Dan jawaban yang benar adalah (ii) 3.0 × 10³ kg/m³.
Aturan Angka Penting untuk Perkalian & Pembagian
Aturannya singkat: hasil perkalian atau pembagian mengikuti jumlah angka penting paling sedikit dari data masukan.
m = 1.80 kg→ 3 angka pentingV = 6.0 × 10⁻⁴ m³→ 2 angka penting (paling sedikit)
Karena masukan yang paling tidak presisi hanya punya 2 angka penting, hasilnya pun harus dibulatkan ke 2 angka penting: 3.0 × 10³ kg/m³.
Lalu kenapa bukan (v), “semua ekuivalen”? Secara matematika murni, 3, 3.0, 3.00, dan 3.000 memang bernilai sama. Tetapi dalam sains, jumlah angka penting menyampaikan presisi pengukuran. Menulis 3.000 × 10³ berarti mengaku punya presisi 4 angka penting — padahal data volume kita hanya 2 angka penting. Itu sebuah klaim berlebihan. Itulah jebakan pilihan (v).
Menampilkan Angka Penting dengan f-string
Di sinilah f-string berperan. Dengan format :.Nf atau :.Ne, kita mengatur berapa angka di belakang koma yang ditampilkan:
rho = 3000.0
print(f"rho = {rho:.1e} kg/m^3") # rho = 3.0e+03 kg/m^3
Triknya: pada notasi ilmiah, :.1e berarti 1 digit di belakang koma, sehingga total menjadi 2 angka penting — persis yang kita inginkan. Kita bisa membandingkan semua opsi sekaligus dengan sebuah perulangan:
for sf in range(0, 4):
print(f"{sf+1} angka penting: {rho:.{sf}e} kg/m^3")
# 1 angka penting: 3e+03 kg/m^3 (i)
# 2 angka penting: 3.0e+03 kg/m^3 (ii) <- benar
# 3 angka penting: 3.00e+03 kg/m^3 (iii)
# 4 angka penting: 3.000e+03 kg/m^3 (iv)
Hubungan yang perlu diingat: :.Ne menghasilkan N + 1 angka penting. Jadi :.1e = 2 sig-fig, :.2e = 3 sig-fig, dan seterusnya.
Format yang sering dipakai
| Format | Contoh hasil (E = 562.5) | Kegunaan |
|---|---|---|
{E:.2f} | 562.50 | 2 angka di belakang koma |
{E:.3e} | 5.625e+02 | notasi ilmiah, 4 angka penting |
{E:.1e} | 5.6e+02 | notasi ilmiah, 2 angka penting |
Dua Jebakan Lain: Satuan dan Tipe Data
Selain angka penting, ada dua kesalahan klasik yang sebaiknya Anda waspadai sejak awal.
1. Lupa konversi satuan
Banyak rumus menuntut satuan tertentu. Contoh paling sering: hukum gas ideal P = nRT/V mensyaratkan suhu dalam Kelvin, bukan Celsius. Memasukkan 25 (°C) alih-alih 298.15 (K) akan memberi hasil yang sangat meleset, padahal kodenya “benar”.
T_celsius = 25
T = T_celsius + 273.15 # selalu konversi ke Kelvin dulu
2. Salah paham operator pembagian
Di Python 3, operator / selalu menghasilkan float, sehingga 1/2 menghasilkan 0.5. Tetapi operator // adalah pembagian bilangan bulat (dibulatkan ke bawah), sehingga 1//2 menghasilkan 0. Salah memilih keduanya bisa menghasilkan jumlah mol nol — dan tekanan yang “mustahil”.
print(1 / 2) # 0.5 (float)
print(1 // 2) # 0 (pembagian bulat)
Kebiasaan Baik Sejak Awal
Hasil hitungan sains tanpa satuan dan tanpa format angka penting yang jelas mudah disalahartikan oleh pembaca — bahkan oleh diri Anda sendiri seminggu kemudian. Maka, biasakan tiga hal ini:
- Selalu sertakan satuan pada setiap hasil yang dicetak.
- Tampilkan angka penting sesuai presisi data, bukan sebanyak yang Python berikan.
- Pastikan satuan masukan sudah benar (mis. Kelvin) sebelum menghitung.
Penutup
Angka penting bukan formalitas — ia adalah cara ilmuwan mengkomunikasikan seberapa yakin mereka terhadap sebuah hasil. Dengan f-string, Python memudahkan kita menampilkan hasil pada presisi yang jujur dan rapi. Gabungkan kebiasaan ini dengan pemahaman tipe data yang baik, dan kode sains Anda akan jauh lebih dapat dipercaya.
Belum membaca dasar-dasarnya? Mulai dari artikel pendamping: Mengenal Variabel dan Tipe Data di Python untuk Sains.
Catatan: seluruh contoh kode ditulis untuk Python 3 dan bisa langsung dijalankan di Spyder atau Jupyter Notebook (lewat Anaconda) maupun di interpreter Python biasa.
