Fungsi float() Pada Python
Mengenal Fungsi float()
di Python
Jika kamu baru belajar Python, pasti kamu sudah kenal dong dengan berbagai macam tipe data yang ada. Python
dikenal dengan kemudahan dalam penanganan tipe data dan berbagai fungsi bawaan yang sangat membantu.
Salah satu fungsi bawaan (built-in function) yang sering banget digunakan adalah float()
.
Fungsi ini berguna untuk mengonversi suatu nilai (value) menjadi floating point number alias
angka desimal. Nah, di artikel ini kita akan bahas secara mendalam soal fungsi
float()
di Python, contohnya, serta beberapa kasus penggunaan yang bisa kamu terapkan
dalam proyekmu.
Apa Itu Fungsi float()
?
Fungsi float()
adalah fungsi built-in pada Python yang mengembalikan nilai
bertipe float. Biasanya, kita menggunakan float()
untuk mengonversi tipe data
yang bukan float menjadi float, misalnya dari int
(bilangan bulat) atau str
(string)
ke dalam float
. Hasilnya akan selalu berupa angka pecahan desimal dalam format floating point.
Sintaks dasarnya sederhana banget:
float([x])
Di mana x
merupakan nilai yang ingin kita ubah ke float. Jika x
tidak disertakan,
maka fungsi float()
akan mengembalikan 0.0
.
Contoh Penggunaan Sederhana
Mari kita lihat contoh paling sederhana, yaitu mengonversi int
dan str
menjadi
float.
# Mengonversi integer ke float
angka_int = 10
angka_float = float(angka_int)
print(angka_float) # Output: 10.0
# Mengonversi string ke float
angka_str = "3.14"
angka_float_2 = float(angka_str)
print(angka_float_2) # Output: 3.14
# Jika tidak memberikan argumen apa pun, hasilnya 0.0
no_arg = float()
print(no_arg) # Output: 0.0
Dari contoh di atas, kita bisa melihat bahwa jika kita input 10
(integer), maka output
yang kita dapatkan adalah 10.0
. Python secara otomatis menambahkan .0
di
belakang bilangan bulat untuk menandakan bahwa nilai tersebut sekarang adalah float.
Begitu juga ketika kita memasukkan string "3.14"
, hasilnya akan jadi angka desimal
3.14
. Sedangkan tanpa argumen, Python memberikan nilai default 0.0
.
Perbedaan float()
dengan Fungsi Konversi Lain
Mungkin kamu pernah juga melihat fungsi seperti int()
atau str()
.
Walaupun sama-sama fungsi untuk konversi tipe data, tentu ada perbedaan dalam hasil yang diberikan.
int()
akan mengubah data ke bilangan bulat. Jika data tersebut aslinya bilangan desimal,
maka akan dibulatkan ke bawah (floor) tanpa ada pecahan. Contoh:
int(3.99) # Hasilnya 3, decimal dihilangkan
int("10") # Hasilnya 10, string menjadi integer
Sedangkan float()
akan mempertahankan format desimal. Selain itu, str()
digunakan untuk mengonversi data (termasuk angka) menjadi string. Fungsi ini sering dipakai
misalnya ketika kita mau menggabungkan teks dengan angka.
Jadi, intinya float()
punya keunikan sendiri untuk menangani angka pecahan.
Ini sangat berguna dalam perhitungan yang melibatkan komponen desimal seperti operasi
aritmetika yang presisi, penghitungan nilai rata-rata, penampilan data finansial, dan lain sebagainya.
Mengonversi String ke Float
Selain mengonversi integer menjadi float, hal yang mungkin paling sering dilakukan adalah
mengonversi string menjadi float. Namun, perlu diperhatikan bahwa string yang kamu konversi
haruslah string yang valid atau dapat merepresentasikan bilangan desimal.
Kalau tidak valid, maka programmu akan kena ValueError
.
# Contoh string valid
valid_str = "123.456"
converted_float = float(valid_str)
print(converted_float) # Output: 123.456
# Contoh string tidak valid
invalid_str = "halo123"
try:
float(invalid_str) # Ini akan error
except ValueError as e:
print("Terjadi error:", e) # "could not convert string to float: 'halo123'"
Jadi, ketika mau konversi string ke float, pastikan dulu format string kamu memang benar-benar
mewakili angka pecahan atau setidaknya bilangan bulat. Kalau tidak, ya siap-siap menghadapi
ValueError
.
Menggunakan float()
pada Input User
Dalam banyak kasus, kita membuat program yang menerima input dari pengguna. Sering kali pengguna
memasukkan nilai numerik lewat keyboard, yang tentunya akan terbaca sebagai string oleh Python
(karena fungsi input()
selalu menghasilkan string). Nah, di sinilah float()
paling sering dipakai.
# Contoh program sederhana untuk menghitung luas lingkaran
# Meminta user untuk memasukkan jari-jari lingkaran
r_str = input("Masukkan jari-jari lingkaran: ")
r = float(r_str) # konversi string ke float
# Menghitung luas lingkaran
pi = 3.14159
luas = pi * (r ** 2)
print(f"Luas lingkaran dengan jari-jari {r} adalah {luas}")
Dalam contoh ini, string yang didapat dari input()
langsung kita konversi
menggunakan float()
. Kalau user kebetulan mengetik karakter yang tidak valid seperti
abc
, ya program akan error dan langsung berhenti. Untuk mencegah itu, kita bisa
menambahkan mekanisme try-except
agar program tidak crash dan memberikan pesan error
yang lebih jelas kepada pengguna.
Pentingnya Mengetahui Perilaku Floating Point
Python menggunakan standar IEEE 754 untuk representasi floating point. Ini berarti kita bisa
mendapatkan hasil yang sedikit tidak terduga ketika melakukan operasi aritmetika pada float. Misalnya,
0.1 + 0.2
mungkin tidak persis sama dengan 0.3
karena adanya isu representasi
biner internal.
# Contoh kasus floating point
print(0.1 + 0.2) # Hasilnya mungkin 0.30000000000000004
print((0.1 + 0.2) == 0.3) # Hasilnya bisa saja False
Meskipun ini bukan masalah yang khusus cuma terjadi di Python, banyak pemula yang kaget kenapa 0.1 + 0.2
hasilnya kok bukan benar-benar 0.3. Faktanya, komputer akan mengonversi nilai 0.1
dan
0.2
menjadi representasi biner yang "mendekati" nilai tersebut, tetapi tidak sama persis.
Jadi, ketika di jumlahkan, hasilnya bisa sedikit meleset.
Tapi jangan khawatir, kalau kamu butuh presisi yang lebih tinggi, Python juga menyediakan
modul decimal
dan fractions
untuk mengatasi keterbatasan representasi
floating point ini. Namun, untuk penggunaan sehari-hari, float()
sudah cukup oke
kalau kamu paham kelemahannya.
Mengonversi Tipe Data Lain: Boolean, List, dsb.
Bagaimana dengan konversi dari boolean atau tipe data lain? Secara default,
float()
bisa mengonversi boolean, dengan ketentuan:
True
akan dikonversi menjadi1.0
False
akan dikonversi menjadi0.0
print(float(True)) # 1.0
print(float(False)) # 0.0
Namun, untuk tipe data seperti list
, tuple
, atau dict
,
kita tidak bisa langsung mengonversi mereka ke float tanpa proses khusus. Percobaan
float([1,2,3])
akan menghasilkan error karena Python tidak tahu cara
mentransformasikan list
langsung menjadi angka desimal.
Mengonversi Nilai dengan Notasi Ilmiah (Scientific Notation)
Python juga mendukung konversi string yang ditulis dalam notasi ilmiah (scientific notation).
Misal, kamu punya string "1e-3"
yang berarti 1 x 10^-3
, alias 0.001
.
Begitu juga dengan "5.67e4"
yang bermakna 5.67 x 10^4
(56700.0).
sci_str1 = "1e-3"
sci_str2 = "5.67e4"
float1 = float(sci_str1)
float2 = float(sci_str2)
print(float1) # 0.001
print(float2) # 56700.0
Ini bisa sangat berguna jika kamu sedang menangani data ilmiah atau bekerja dengan angka-angka yang sangat besar atau sangat kecil.
float('inf')
dan float('nan')
Satu hal yang juga bisa dilakukan di Python adalah membuat infinity (inf) dan
not a number (nan) dalam bentuk float. Ini adalah representasi khusus dari standar
IEEE 754. Kalau kamu membuat float('inf')
, maka kamu akan mendapat representasi
tak terhingga. Sedangkan float('nan')
adalah nilai yang menandakan not a number,
seringkali muncul saat perhitungan tidak terdefinisi.
inf_value = float('inf')
nan_value = float('nan')
print(inf_value) # inf
print(nan_value) # nan
# Kamu juga bisa melakukan pemeriksaan
print(inf_value == inf_value) # True, tapi berhati-hatilah
print(nan_value == nan_value) # False, karena nan memang 'bukan angka'
Di banyak kasus, kita mungkin jarang perlu menulis secara manual float('inf')
atau
float('nan')
. Namun, ini tetap penting diketahui karena bisa muncul di perhitungan
tertentu, misalnya pembagian dengan nol (walaupun di Python umumnya langsung error).
Kasus Penggunaan di Kehidupan Sehari-hari
1. Menghitung Rata-Rata Nilai
Misalnya kamu punya sekumpulan nilai ujian mahasiswa. Nilai tersebut awalnya bertipe integer, tapi untuk menghitung rata-rata biasanya akan lebih relevan jika memakai float. Karena mungkin rata-ratanya bisa pecahan, nggak bulat.
nilai_mahasiswa = [80, 85, 90, 75, 95]
total_nilai = sum(nilai_mahasiswa) # Hasilnya 425 (int)
rata_rata = float(total_nilai) / len(nilai_mahasiswa) # Biar float
print(rata_rata) # 85.0
Pada Python 3, sebenarnya /
sudah otomatis memberikan hasil float jika melibatkan
bilangan bulat, tetapi kalau kamu mau memastikan tipe datanya, konversi dengan float()
bisa tetap dilakukan. Hasil di atas adalah 85.0
.
2. Konversi Input Pengguna untuk Perhitungan Matematika
Seperti contoh menghitung luas lingkaran di atas, kita sering sekali butuh float()
untuk mengambil input pengguna. Misalnya, kamu membuat aplikasi untuk menghitung volume air,
menentukan biaya listrik, dsb.
tarif_per_kwh = 1500.0
pemakaian_str = input("Masukkan pemakaian listrik dalam kWh: ")
pemakaian = float(pemakaian_str)
tagihan = tarif_per_kwh * pemakaian
print(f"Tagihan listrik Anda: Rp {tagihan}")
Kalau pengguna kebetulan mengetikkan nilai dalam format yang salah, tentu akan menimbulkan
error. Itu sebabnya biasanya kita gabung dengan try-except
atau validasi input.
3. Manipulasi Data Teks yang Berisi Angka
Dalam pekerjaan sehari-hari, kadang kita harus parsing file CSV atau mengambil data dari API
yang berbentuk string. Kita lantas perlu mengubahnya menjadi float untuk perhitungan lebih lanjut.
Dalam hal ini, float()
jelas jadi sahabat setia.
csv_data = ["12.5", "13.1", "14.05", "15.0", "15.75"]
float_data = [float(item) for item in csv_data]
print(float_data)
# Output: [12.5, 13.1, 14.05, 15.0, 15.75]
Begitu data sudah jadi float, kamu bebas melakukan operasi aritmetika apa pun.
4. Bekerja dengan Library atau Modul yang Membutuhkan Float
Ketika menggunakan library seperti matplotlib
untuk plotting data,
numpy
untuk komputasi numerik, atau pandas
untuk analisis data,
seringkali kamu butuh float
agar fungsi-fungsi tertentu jalan optimal.
float()
akan menolong di momen-momen seperti itu, khususnya saat kamu
harus mengonversi data mentah menjadi format numerik.
Error Handling dan try-except
Sudah disinggung sedikit sebelumnya, kalau data yang kita masukkan ke float()
ternyata tidak valid, Python akan melempar ValueError
. Error ini akan menghentikan
eksekusi program kecuali kita tangani pakai try-except
. Berikut contoh sederhananya:
def konversi_ke_float(data_str):
try:
return float(data_str)
except ValueError:
print(f"Data '{data_str}' tidak bisa dikonversi ke float.")
return None
# Contoh penggunaan
input_user = input("Masukkan angka: ")
hasil = konversi_ke_float(input_user)
if hasil is not None:
print(f"Nilai float dari input adalah {hasil}")
else:
print("Konversi gagal, silakan input ulang.")
Dengan begini, program tidak langsung crash dan kita bisa memberikan feedback yang jelas kepada pengguna. Kita juga bisa mengulangi permintaan input hingga pengguna memasukkan data yang valid.
Tips dan Trik
-
Gunakan
float()
dengan bijak: Pastikan kamu memang butuh representasi desimal. Kalau hanya ingin membuang pecahan dan pakai bilangan bulat,int()
adalah pilihan yang tepat. -
Waspada isu presisi: Ketika menghadapi angka yang sangat besar atau
butuh presisi tinggi (misal, hitungan keuangan atau ilmu pengetahuan), pertimbangkan
untuk menggunakan
decimal.Decimal
. -
Pastikan data valid: Sebelum melakukan
float()
pada string, cek apakah string tersebut benar-benar representasi numerik. Ini penting kalau datanya berasal dari sumber eksternal.
Ringkasan
Fungsi float()
di Python adalah salah satu fungsi konversi yang paling dasar namun
sangat penting. Dengan float()
, kita bisa dengan mudah mengubah integer, string,
bahkan boolean (dan beberapa format string khusus seperti notasi ilmiah) menjadi angka desimal.
Fungsi ini memiliki peran vital ketika kita butuh melakukan perhitungan yang melibatkan pecahan,
seperti perhitungan keuangan, analisis data ilmiah, dan lain-lain.
Sebagai penutup, selalu pahami bahwa floating point punya keterbatasan dalam hal presisi,
dan hal ini bukan cuma terjadi di Python, tapi di hampir semua bahasa pemrograman modern.
Kalau memang butuh presisi tinggi atau format khusus, Python sudah menyediakan alternatif
seperti modul decimal
dan fractions
.
Baca Juga :