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:

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

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 :