Soal 1Diberikan age = 30, apa yang terjadi saat kamu menjalankan "I am " + age + " years old"?
Konversi antara Angka dan String
Pelajari konversi tipe di Python — antara angka dan string. Pahami juga error umum yang muncul saat konversi gagal.
Kenapa konversi tipe itu penting
Di Python, kamu tidak bisa begitu saja menjumlahkan atau membandingkan nilai dengan tipe yang berbeda.
Kasus klasiknya adalah campuran angka (int / float) dengan string (str). Contohnya "25" memang terlihat seperti angka 25, tetapi bagi Python itu hanya dua karakter yang berjajar — tidak bisa dipakai untuk operasi aritmetika.
Di sinilah konversi tipe (casting) berperan untuk menyamakan tipe. Setelah kamu terbiasa dengan str() / int() / float(), kamu bisa mengonversi angka dan string dengan bebas.
Angka → String (str())
Ketika kamu mengoper angka ke str(), kamu akan mendapatkan string yang merepresentasikan angka tersebut.
Baik itu int, float, maupun bool, str() bisa mengubah hampir apa saja menjadi bentuk string yang mudah dibaca manusia.
Kamu beralih dari angka itu sendiri ke representasi stringnya.
Anggap saja ini sebagai persiapan sebelum menggabungkan (+) nilai menjadi satu kalimat.
age = 25
temp = -20.5
# Angka -> String
print(str(age)) # '25'
print(type(str(age))) # <class 'str'>
# Setelah jadi string, + bisa menggabungnya
print("Umur: " + str(age) + " thn") # Umur: 25 thn
print("Suhu saat ini " + str(temp) + " derajat") # Suhu saat ini -20.5 derajat
Kapan memakai f-string sebagai gantinya
Di dalam f-string (f"Umur: {age} thn"), nilai otomatis dikonversi menjadi str, jadi kamu tidak perlu memanggil str() sendiri. str() berguna saat kamu membangun string dengan + atau .join(), atau saat kamu ingin mengunci sesuatu sebagai string — nama file, baris log, key JSON, dan sejenisnya.
String → Angka (int() / float())
Untuk arah sebaliknya, pakai int() dan float(). Meskipun sebuah nilai terlihat seperti string, selama isinya adalah angka, kamu bisa mengonversinya dan memakainya dalam perhitungan.
Hal seperti input pengguna, kolom CSV, dan response API sering kali datang sebagai str, jadi mengonversinya menjadi angka adalah sesuatu yang akan sering kamu lakukan.
Pakai int() saat kamu ingin bilangan bulat, dan float() saat kamu ingin mengizinkan desimal.
int("3.14") akan gagal — konversi seperti itu tidak bisa dilakukan.
quantity = "12"
price = "198.5"
# String -> int
q = int(quantity)
print(q + 3) # 15 (berfungsi sebagai angka)
# String -> float
p = float(price)
print(p * q) # 2382.0 (float, jadi ada .0)
print(type(q), type(p)) # <class 'int'> <class 'float'>
String non-numerik memunculkan ValueError
Mengoper sesuatu yang tidak bisa dibaca sebagai angka, seperti int("abc") atau float("hello"), akan memunculkan ValueError dan menghentikan program kamu. Saat mengonversi input pengguna secara langsung, pola yang umum adalah memeriksanya dulu dengan isdigit() atau menangkapnya dengan try / except (dibahas di bab berikutnya).
Pola konversi yang umum
Terakhir, inilah tiga pola konversi yang sering membuat orang tersandung dalam praktik.
| Tujuan | Cara menulisnya | Hasil |
|---|---|---|
| Konversi "3.14" menjadi integer | int(float("3.14")) | 3 (desimal dipotong) |
| Hitung jumlah digit dari int | len(str(1234)) | 4 |
| Bulatkan float menjadi integer | round(3.7) — bukan int(), pakai round() | 4 |
int("3.14") memunculkan ValueError. Itu karena int() hanya menerima string yang terlihat seperti integer, jadi string dengan titik desimal perlu dilewatkan dulu melalui float() lalu dioper ke int() — dua langkah.
Perhatikan juga bahwa int() memotong (membuang bagian desimal). Kalau kamu ingin pembulatan, pakai round().
String dengan titik desimal tidak bisa dioper langsung ke int().
Konversikan dengan float() dulu, lalu oper hasilnya ke int() — casting dua langkah untuk mendapatkan integer.
Di artikel ini, kita sudah membahas konversi tipe dengan str() / int() / float(). Cara mudah mengingatnya: angka → string untuk membangun tampilan output, dan string → angka untuk memproses input dan data.
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Apa hasil yang benar dari menjalankan int("3.14")?
Soal 3Apa yang dikembalikan oleh len(str(1234))?