Langsung ke konten

Konversi Tipe Data di Python: int, float, str, dan bool

Nilai di Python bisa diubah dari satu tipe ke tipe lain sesuai kebutuhan. Artikel ini membahas cara konversi tipe data dengan int(), float(), str(), dan bool().

Belajar Python Level Basic
Belajar Python Level Basic
Advertisement

Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah mengenal tipe data dasar di Python. Sekarang kita bahas cara berpindah dari satu tipe ke tipe lain.

Kadang nilai yang kita punya tidak sesuai tipe yang dibutuhkan. Contoh paling umum: input() selalu mengembalikan string, padahal kita butuh angka untuk dihitung. Di sinilah konversi tipe data berperan.

Apa itu Konversi Tipe Data?

Konversi tipe data adalah proses mengubah nilai dari satu tipe ke tipe lain. Ada dua cara ini terjadi: otomatis oleh Python (implisit) atau sengaja oleh kita (eksplisit).

# Implisit — Python yang mengubah
hasil = 10 + 3.5    # int jadi float, hasil 13.5

# Eksplisit — kita yang meminta
angka = int("25")   # str jadi int, hasil 25

Mari bahas keduanya.

Konversi Implisit (Type Coercion)

Konversi implisit terjadi saat Python mengubah tipe secara otomatis, biasanya ketika dua tipe berbeda dioperasikan. Python memilih tipe yang “lebih besar” agar tidak ada data yang hilang.

angka_int = 10
angka_float = 3.5

hasil = angka_int + angka_float
print(hasil)          # 13.5
print(type(hasil))    # <class 'float'>

int naik tingkat jadi float supaya bisa digabung. Ini disebut type coercion.

Hal yang sama terjadi pada boolean, karena bool sebenarnya turunan int:

print(True + 5)     # 6, True dianggap 1
print(False + 5)    # 5, False dianggap 0

Yang tidak bisa dilakukan otomatis adalah menggabung angka dengan string:

# Salah
print(10 + "5")   # TypeError

Python tidak mau menebak apakah "5" harus jadi angka atau 10 harus jadi teks. Di sini kamu perlu konversi eksplisit.

Konversi Eksplisit

Konversi eksplisit dilakukan dengan memanggil function sesuai tipe tujuan. Python menyediakan empat yang utama:

FunctionMengubah keContoh
int()Bilangan bulatint("25")25
float()Bilangan desimalfloat("3.5")3.5
str()Teksstr(25)"25"
bool()Booleanbool(0)False

Konversi ke int()

print(int("25"))      # 25
print(int(3.9))       # 3, koma dipotong (bukan dibulatkan)
print(int(True))      # 1

Perhatikan int(3.9) menghasilkan 3, bukan 4. int() memotong bagian desimal, bukan membulatkan. Kalau butuh pembulatan, gunakan round():

print(round(3.9))     # 4

String yang berisi angka desimal tidak bisa langsung dikonversi ke int:

# Salah
int("3.5")   # ValueError

Konversi dulu ke float, baru ke int:

int(float("3.5"))   # 3

Konversi ke float()

print(float("3.5"))    # 3.5
print(float(10))       # 10.0
print(float("10"))     # 10.0
print(float(True))     # 1.0

Konversi ke str()

Konversi ke string hampir selalu berhasil, karena semua nilai bisa dijadikan teks:

print(str(25))        # "25"
print(str(3.5))       # "3.5"
print(str(True))      # "True"
print(str(False))     # "False"

Ini berguna saat menggabung angka ke dalam teks:

umur = 25
# Salah: "Umur: " + umur
print("Umur: " + str(umur))    # Umur: 25

Cara yang lebih modern adalah memakai f-string, yang otomatis mengubah tipe:

umur = 25
print(f"Umur: {umur}")   # Umur: 25

Konversi ke bool()

Aturan bool() berbeda dari yang lain. Nilai berikut dianggap False:

  • 0 dan 0.0
  • "" (string kosong)
  • None
  • List, tuple, atau dictionary kosong

Semua nilai lain dianggap True.

print(bool(1))       # True
print(bool(0))       # False
print(bool(-5))      # True, bukan nol berarti True
print(bool(""))      # False
print(bool("0"))     # True, string berisi teks "0"
print(bool("halo"))  # True

Perhatikan bool("0") menghasilkan True. Karena "0" adalah string berisi satu karakter, bukan angka nol.

Kapan Konversi Dibutuhkan?

1. Menerima Input Pengguna

input() selalu mengembalikan string. Untuk perhitungan, konversi dulu:

umur = input("Umur kamu: ")     # hasilnya string
umur = int(umur)                # ubah ke int
print(umur + 1)

Bisa juga digabung dalam satu baris:

umur = int(input("Umur kamu: "))

2. Menggabung Angka ke Teks

jumlah = 5
print("Total: " + str(jumlah) + " item")

3. Membaca Data dari File atau API

Data dari file atau internet sering berbentuk string, meski isinya angka. Konversi diperlukan sebelum diolah.

Menangani Konversi yang Gagal

Konversi bisa gagal kalau isinya tidak sesuai. Contohnya int("halo") akan menghasilkan ValueError.

int("halo")
# ValueError: invalid literal for int() with base 10: 'halo'

Untuk saat ini, pastikan nilai yang dikonversi memang berbentuk angka. Nanti saat membahas error handling, kita akan belajar menangani kegagalan ini dengan try dan except.

Ringkasan

  • Konversi implisit dilakukan Python otomatis, misalnya int jadi float
  • Konversi eksplisit dilakukan dengan int(), float(), str(), dan bool()
  • int() memotong desimal, bukan membulatkan
  • str() hampir selalu berhasil karena semua nilai bisa jadi teks
  • bool() menganggap 0, "", dan nilai kosong sebagai False
  • Konversi sering dibutuhkan saat menerima input, menggabung teks, atau membaca data

Langkah Selanjutnya

Kamu sudah bisa mengubah tipe data sesuai kebutuhan. Salah satu pemakaian paling penting adalah saat menerima masukan dari pengguna.

Artikel selanjutnya membahas Input dan Output di Python, cara memakai print() dan input() agar program bisa berkomunikasi dengan pengguna.