Cara Mengonversi String ke Int dengan Python (Casting & Basis Aman)

Pelajari cara mengonversi string menjadi bilangan bulat dengan Python menggunakan fungsi int(). Tangani kesalahan dengan aman dan konversikan angka dari biner, oktal, atau hex.

Coba Solusi ini di Editor

Ikhtisar

Mengubah representasi string dari suatu angka menjadi bilangan bulat sebenarnya adalah tugas yang sering dilakukan dalam pengembangan aplikasi. Proses ini, sering disebut sebagai casting, sangat penting ketika menangani input pengguna mentah, membaca file konfigurasi, mengurai argumen dari antarmuka baris perintah, atau mengambil data dari web. Karena Python adalah bahasa yang sangat diketik, Anda tidak dapat melakukan operasi matematika pada representasi string angka tanpa mentransmisikannya terlebih dahulu.

Konstruktor `int()` bawaan Python adalah alat utama untuk konversi ini. Dalam bentuk paling sederhana, meneruskan string numerik (seperti `"42"`) ke `int()` akan mengembalikan bilangan bulat yang setara. Namun, meneruskan string non-numerik (seperti `"hello"`) atau string yang mewakili angka floating-point (seperti `"3.14"`) akan memunculkan `ValueError`. Untuk menulis aplikasi yang kuat, merupakan praktik standar untuk menggabungkan operasi casting dalam blok `coba-kecuali` untuk menangani input yang tidak terduga dengan baik.

Di luar konversi basis-10 standar, fungsi `int()` menerima argumen `base` opsional. Hal ini memungkinkan Anda dengan mudah mengurai string yang mewakili bilangan dalam sistem bilangan berbeda, seperti biner (basis 2), oktal (basis 8), atau heksadesimal (basis 16). Misalnya, `int("1010", 2)` dengan benar mengurai string biner menjadi bilangan bulat desimal `10`, menjadikannya alat serbaguna untuk pemrograman matematika tingkat rendah atau khusus.

Kode & Output Eksekusi

Skrip ini mendemonstrasikan konversi string menjadi bilangan bulat, menangani pengecualian, dan mengonversi representasi dasar yang berbeda.

convert_int.py
Coba di Editor
# 1. Standard base-10 conversion
num_str = "123"
num = int(num_str)
print(f"Standard conversion: {num} (Type: {type(num).__name__})")

# 2. Handling invalid input gracefully
invalid_str = "abc"
try:
    result = int(invalid_str)
except ValueError:
    print(f"Could not convert '{invalid_str}' to an integer.")

# 3. Converting from different bases (binary and hex)
binary_str = "1011"
hex_str = "ff"
print("Binary '1011' to decimal:", int(binary_str, 2))
print("Hex 'ff' to decimal:", int(hex_str, 16))
Keluaran Terminal
Standard conversion: 123 (Type: int)
Could not convert 'abc' to an integer.
Binary '1011' to decimal: 11
Hex 'ff' to decimal: 255

Implementasi Langkah demi Langkah

  • Teruskan string numerik ke fungsi int() bawaan.
  • Bungkus operasi casting Anda dalam blok try...kecuali ValueError untuk menangani format yang tidak valid.
  • Berikan argumen kedua (misalnya, basis=16) untuk mengonversi nilai string yang ditulis dalam basis lain.

Pertanyaan yang Sering Diajukan

Bagaimana cara mengonversi string float seperti '12.34' menjadi bilangan bulat?

Anda harus mengonversinya terlebih dahulu menjadi float, lalu menjadi int: int(float("12.34")). Memanggil int("12.34") secara langsung memunculkan ValueError.

Bagaimana cara memeriksa apakah suatu string dapat dikonversi dengan aman ke int?

Anda dapat menggunakan metode string .isdigit(), namun perhatikan bahwa metode ini mengembalikan False untuk tanda negatif atau spasi. Blok coba-kecuali adalah cara yang paling kuat.

Topik Terkait

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.