Belajar dengan membaca secara berurutan

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.

Tipe yang tidak cocok tidak bisa digabung
25int+"thn"strTypeErrortipe bedatipe beda

Di sinilah konversi tipe (casting) berperan untuk menyamakan tipe. Setelah kamu terbiasa dengan str() / int() / float(), kamu bisa mengonversi angka dan string dengan bebas.

Pertama, mari lihat apa yang terjadi kalau tipenya tidak cocok — perhatikan pesan errornya. Jalankan kode apa adanya.

Python Editor

Jalankan kode untuk melihat output

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.

Apa yang dilakukan str()
25intstr()"25"str-20.5floatstr()"-20.5"stroperke stroperke str

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.

Dengan user = "Budi" dan score = 95, buat laporan satu baris.

① Pakai hanya str() dan +, tampilkan "Budi's score is 95".

② Tulis hal yang sama dengan f-string, tanpa memanggil str().

Python Editor

Jalankan kode untuk melihat output

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.

Memilih antara int() dan float()
"100"strint()100int"3.14"strfloat()3.14floatoperke intoperke float

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).

Ayo kita hitung total untuk keranjang belanja. Semua nilai datang sebagai string.

Kamu diberi unit_price_str = "198", count_str = "5", dan tarif pajak TAX_RATE = 0.1.

① Konversi jumlah dan harga satuan menjadi angka dengan int().

② Kalikan total (harga satuan × jumlah) dengan tarif pajak dan print() harga setelah pajak.

Python Editor

Jalankan kode untuk melihat output

Pola konversi yang umum

Terakhir, inilah tiga pola konversi yang sering membuat orang tersandung dalam praktik.

TujuanCara menulisnyaHasil
Konversi "3.14" menjadi integerint(float("3.14"))3 (desimal dipotong)
Hitung jumlah digit dari intlen(str(1234))4
Bulatkan float menjadi integerround(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 desimal menjadi integer lewat float()
"3.14"strfloat()3.14floatint()3intoperke floatoperke int

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.

Kamu ingin memakai string harga price_str = "1980.6" sebagai integer.

① Jalankan int(price_str) apa adanya dan konfirmasi errornya, lalu comment out.

② Konversi menjadi integer melalui float() dan print() hasilnya.

Python Editor

Jalankan kode untuk melihat output

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.

QUIZ

Cek Pemahaman

Jawab setiap pertanyaan satu per satu.

Soal 1Diberikan age = 30, apa yang terjadi saat kamu menjalankan "I am " + age + " years old"?

Soal 2Apa hasil yang benar dari menjalankan int("3.14")?

Soal 3Apa yang dikembalikan oleh len(str(1234))?