Lewati ke konten utama

Konversi Tipe Data Python: Panduan dengan Contoh

Dalam tutorial Python ini, Anda akan membahas konversi tipe data implisit dan eksplisit dari struktur data primitif dan non-primitif dengan bantuan contoh kode!
Diperbarui 22 Jul 2026  · 14 mnt baca

Jelajahi dengan AI

Buka di ChatGPTBuka di ClaudeBuka di Perplexity

Setiap nilai di Python memiliki tipe data. Tipe data adalah klasifikasi data yang memberi tahu kompilator atau interpreter bagaimana Anda ingin menggunakan data tersebut. Tipe mendefinisikan operasi yang dapat dilakukan pada data dan struktur tempat Anda ingin menyimpan data. Dalam data science, Anda sering perlu mengubah tipe data agar lebih mudah digunakan dan dikerjakan.

Python memiliki banyak tipe data. Anda pasti sudah melihat dan bekerja dengan sebagian di antaranya. Ada integer dan float untuk menangani nilai numerik, boolean (bool) untuk menangani nilai benar/salah, dan string untuk bekerja dengan karakter alfanumerik. Anda dapat menggunakan list, tuple, dictionary, dan set, yaitu struktur data untuk menyimpan kumpulan nilai. Untuk mempelajarinya lebih lanjut, lihat kursus DataCamp Data Types in Python.

Untuk menjalankan sendiri semua contoh kode dalam tutorial ini dengan mudah, Anda dapat membuat workbook DataLab gratis yang sudah terpasang Python dan berisi semua contoh kode.

Memeriksa Tipe Data di Python

Sebelum mengonversi tipe data, ada baiknya memeriksanya. Python menyediakan dua fungsi utama:

  • type(): Mengembalikan tipe sebuah variabel.
  • isinstance(): Memeriksa apakah sebuah variabel termasuk ke tipe tertentu.
a = 5.5
print(type(a))  # Output: <class 'float'>

print(isinstance(a, int))  # Output: False
print(isinstance(a, float))  # Output: True

Konversi Tipe Data Implisit dan Eksplisit di Python

Konversi data di Python dapat terjadi dengan dua cara: Anda secara eksplisit memberi tahu kompilator untuk mengonversi suatu tipe data ke tipe lain, atau kompilator memahaminya sendiri dan melakukannya untuk Anda. Pada kasus pertama, Anda melakukan konversi tipe data eksplisit, sedangkan pada kasus kedua, Anda melakukan konversi tipe data implisit.

Konversi tipe data implisit di Python

Konversi implisit atau coercion adalah saat konversi tipe data terjadi saat kompilasi atau saat run time dan ditangani langsung oleh Python untuk Anda. Mari lihat contohnya:

a_int = 1
b_float = 1.0
c_sum = a_int + b_float
print(c_sum)
print(type(c_sum))
 2.0
<class 'float'>

Tip: Anda dapat menggunakan fungsi type() di Python untuk memeriksa tipe data sebuah objek.

Pada contoh tersebut, nilai integer a_int dijumlahkan dengan nilai float b_float, dan hasilnya otomatis dikonversi menjadi nilai float c_sum tanpa Anda perlu memberi tahu kompilator. Inilah yang disebut konversi data implisit.

Mengapa nilai float tidak dikonversi menjadi integer saja?

Ini terkait konsep yang lebih luas yaitu type promotion dalam ilmu komputer. Sederhananya, ini adalah mekanisme pertahanan kompilator yang memungkinkan Anda melakukan operasi kapan pun memungkinkan dengan mengonversi data ke supertype lain tanpa kehilangan informasi.

Artinya, konversi dari float ke integer tidak dilakukan karena kompilator harus membuang bagian pecahan, sehingga menyebabkan hilangnya informasi.

Konversi tipe data eksplisit di Python

Konversi tipe data eksplisit, sering disebut type casting, terjadi ketika Anda dengan sengaja mengonversi sebuah nilai dari satu tipe data ke tipe lain. Pendekatan ini memberi Anda kendali langsung atas konversi karena Anda secara eksplisit menentukan tipe data target di dalam kode. Ini umum digunakan ketika konversi otomatis (implisit) dari Python tidak memenuhi kebutuhan Anda.

Sintaks untuk konversi eksplisit adalah:

target_data_type(expression)

Sebagai contoh, jika Anda ingin mengonversi bilangan pecahan menjadi integer, Anda akan menulis:

int(3.14)  # Converts 3.14 to 3

Catatan: Meskipun konversi eksplisit sangat berguna, konversi ini dapat menyebabkan hilangnya informasi. Misalnya, mengonversi bilangan pecahan menjadi integer akan membuang bagian pecahannya. Penting untuk memahami konsekuensinya agar terhindar dari hasil yang tidak diinginkan dalam program Anda.

Mari jelajahi beberapa konversi tipe data eksplisit yang umum digunakan.

Struktur Data Primitif vs Non-Primitif di Python

Struktur data primitif adalah blok pembangun untuk manipulasi data dan berisi nilai data murni yang sederhana. Python memiliki empat tipe variabel primitif:

  • Integer
  • Float
  • String
  • Boolean

Struktur data non-primitif tidak hanya menyimpan satu nilai, melainkan kumpulan nilai dalam berbagai format. Di Python, Anda memiliki struktur data non-primitif berikut:

  • List
  • Tuple
  • Dictionary
  • Set

Anda dapat mempelajari lebih lanjut melalui Tutorial Data Structures in Python dari DataCamp.

Konversi Struktur Data Primitif

Konversi integer dan float di Python

Integer dan float adalah tipe data yang menangani angka.

Untuk mengonversi integer ke float, gunakan fungsi float() di Python. Demikian pula, jika Anda ingin mengonversi float ke integer, Anda dapat menggunakan fungsi int().

a_int = 3
b_int = 2

# Explicit type conversion from int to float
c_float_sum = float(a_int + b_int)
print(c_float_sum)
5.0
a_float = 3.3
b_float = 2.0
# Explicit type conversion from float to int
c_int_sum = int(a_float + b_float)
print(c_int_sum)

c_float_sum = a_float + b_float
print(c_float_sum)
5
5.3

Masalah presisi float dan modul Decimal

Aritmetika floating-point di Python dapat menyebabkan masalah presisi:

print(0.1 + 0.2)  # Output: 0.30000000000000004

Untuk menghindarinya, gunakan modul Decimal:

from decimal import Decimal

print(Decimal('0.1') + Decimal('0.2'))  # Output: 0.3

Konversi tipe data bilangan real ke kompleks di Python

Anda dapat mengonversi integer ke bilangan kompleks dengan menggunakan complex(real,imag). Fungsi ini membutuhkan dua bilangan (real dan imajiner) dan mengonversi bilangan real menjadi bilangan kompleks.

real = 2
imag = 5
print(complex(real, imag))
(2+5j)

Konversi tipe data dengan string di Python

String adalah kumpulan satu atau lebih karakter (huruf, angka, simbol). Anda mungkin cukup sering perlu mengonversi string ke angka atau angka ke string.

price_cake = 15
price_cookie = 6
total = price_cake + price_cookie
print("The total is: " + total  + "$")

 
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-12-54bd76b9b4bd> in <module>()
      2 price_cookie = 6
      3 total = price_cake + price_cookie
----> 4 print("The total is: " + total  + "$")


TypeError: Can't convert 'int' object to str implicitly

Contoh di atas menghasilkan TypeError, yang memberi tahu bahwa kompilator tidak dapat secara implisit mengonversi nilai integer menjadi string.

Apa yang seharusnya dilakukan program mungkin terasa intuitif bagi Anda. Namun, kompilator tidak selalu yakin, sehingga disediakan mekanisme type casting eksplisit agar Anda dapat menyatakan keinginan Anda dengan jelas. Begini cara Anda mengonversi integer menjadi string di Python menggunakan fungsi str():

price_cake = 15
price_cookie = 6
total = price_cake + price_cookie
print("The total is: " + str(total)  + "$")
The total is: 21$

Cara kerjanya sama saat Anda mengonversi float menjadi string.

Di Python, Anda juga dapat mengonversi string menjadi nilai integer dan float jika memungkinkan. Mari lihat maksudnya:

price_cake = '15'
price_cookie = '6'

# String concatenation
total = price_cake + price_cookie
print("The total is: " + total + "$")

# Explicit type conversion to integer
total = int(price_cake) + int(price_cookie)
print("The total is: " + str(total)  + "$")
The total is: 156$
The total is: 21$

Mari uraikan kodenya.

price_cake dan price_cookie awalnya berupa string. Kemudian Anda perlu mencari totalnya, yang berarti keduanya harus terlebih dahulu dikonversi ke nilai integer yang sesuai. Jika tidak, kompilator akan menganggap operasi yang Anda inginkan adalah penggabungan string, bukan penjumlahan numerik. Lalu Anda perlu menempatkan nilai ini ke dalam string tampilan akhir dan karenanya perlu mengonversi total menjadi string untuk digabungkan dengan sisa pesan tampilan.

Semoga contoh ini membantu Anda melihat pentingnya konversi tipe data. Meskipun ini contoh yang sangat kecil, Anda sudah dapat melihat betapa bergunanya.

Catatan: apakah Anda memperhatikan frasa "jika memungkinkan" saat mengonversi string ke integer atau float? Ini karena tidak selalu mungkin mengonversi string menjadi angka dan menerapkan operasi numerik padanya. Kompilator menyadari hal ini dan akan memberi Anda error saat Anda mencobanya. Lihat contoh di bawah:

price_cake = 'fifteen'
price_cookie = 'six'
total = int(price_cake) + int(price_cookie)
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-25-80591b8accda> in <module>()
      1 price_cake = 'fifteen'
      2 price_cookie = 'six'
----> 3 total = int(price_cake) + int(price_cookie)


ValueError: invalid literal for int() with base 10: 'fifteen'

Ringkasan: Konversi Tipe Data Primitif di Python

Konversi Fungsi Contoh Keluaran
Integer ke Float float() float(3) 3.0
Float ke Integer int() int(3.9) 3
String ke Integer int() int('123') 123
Integer ke String str() str(123) '123'

Konversi Struktur Data Non-Primitif

Konversi tipe ke tuple dan list di Python

Sama seperti pada integer dan float, Anda juga dapat mengonversi list ke tuple dan tuple ke list.

Masih ingat apa itu tuple dan list? List dan Tuple di Python digunakan untuk menyimpan kumpulan item yang homogen. Perbedaannya, tuple bersifat immutable, artinya setelah didefinisikan, Anda tidak dapat menghapus, menambahkan, atau mengedit nilai di dalamnya.

Mengapa Anda mengonversi list ke tuple?

Karena tuple bersifat immutable dan memungkinkan optimalisasi yang signifikan pada program yang Anda buat.

Lalu mengapa mengonversi tuple ke list?

Mungkin Anda ingin melakukan perubahan pada tuple awal. Jadi, Anda dapat mengonversinya ke list, melakukan perubahan, lalu mengonversinya kembali ke tuple.

Di Python, Anda dapat menggunakan fungsi tuple() untuk mengembalikan versi tuple dari nilai yang diberikan, dan fungsi list() untuk mengonversi tuple ke list:

a_tuple = ('a', 1) ,('f', 2), ('g', 3)
b_list = [1,2,3,4,5]

print(tuple(b_list))
print(list(a_tuple))
(1, 2, 3, 4, 5)
[('a', 1), ('f', 2), ('g', 3)]

Demikian pula, berikut cara mengonversi string menjadi list atau tuple di Python:

dessert = 'Cake'

# Convert the characters in a string to individual items in a tuple
print(tuple(dessert))

# Convert a string into a list
dessert_list = list(dessert)
dessert_list.append('s')
print(dessert_list)
('C', 'a', 'k', 'e')
['C', 'a', 'k', 'e', 's']

Konversi tipe ke dictionary dan set di Python

Anda dapat menggunakan fungsi dict() untuk mengonversi tuple menjadi dictionary dan set() untuk mengonversi list menjadi set. 

print(dict(a_tuple))
print(set(b_list))
{'a': 1, 'f': 2, 'g': 3}
{1, 2, 3, 4, 5}

Mirip dengan fungsi konversi lainnya, Anda hanya perlu memberikan nama fungsi untuk mengonversi tipe data apa pun menjadi dictionary dan set.

Menggunakan dataclasses untuk Data Terstruktur (Python 3.7+)

Alih-alih menggunakan dictionary atau tuple, dataclasses menyediakan cara yang lebih baik untuk menangani data terstruktur.

from dataclasses import dataclass

@dataclass
class Product:
    name: str
    price: float
    in_stock: bool

item = Product("Laptop", 799.99, True)
print(item)  # Output: Product(name='Laptop', price=799.99, in_stock=True)

Ringkasan: Konversi Struktur Data Non-Primitif di Python

Konversi Fungsi Contoh Keluaran
List ke Tuple tuple() tuple([1, 2, 3]) (1, 2, 3)
Tuple ke List list() list(('a', 1)) ['a', 1]
String ke List list() list('Cake') ['C', 'a', 'k', 'e']
String ke Tuple tuple() tuple('Cake') ('C', 'a', 'k', 'e')
Tuple ke Dictionary dict() dict((('a', 1), ('b', 2))) {'a': 1, 'b': 2}
List ke Set set() set([1, 2, 3, 4, 5]) {1, 2, 3, 4, 5}

Unicode, Biner, Oktal, dan Heksadesimal di Python

Sistem bilangan mengacu pada jumlah simbol atau karakter yang merepresentasikan nilai numerik. Sistem bilangan yang biasa Anda gunakan sehari-hari disebut desimal. Dalam sistem desimal, Anda menggunakan sepuluh simbol berbeda: 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9. Dengan sepuluh simbol ini, Anda dapat merepresentasikan kuantitas apa pun. Unicode, Biner, Heksadesimal, dan Oktal merujuk pada sistem bilangan yang berbeda.

Anda beralih ke tempat digit berikutnya saat kehabisan simbol. Dalam desimal, untuk merepresentasikan satu angka lebih tinggi dari 9, Anda menggunakan 10, yang berarti satu unit puluhan dan nol unit satuan. Namun, ini berbeda pada sistem bilangan lain. Misalnya, pada sistem biner yang hanya menggunakan dua simbol, 0 dan 1, Anda perlu beralih ke tempat digit berikutnya saat kehabisan simbol. Jadi beginilah cara Anda menghitung dalam biner: 0, 1, 10, 11, 100, 101, dan seterusnya.

Mari lihat beberapa sistem bilangan lebih detail pada bagian berikutnya.

Mengonversi biner ke desimal di Python

Bilangan biner adalah bilangan yang direpresentasikan dengan basis dua. Artinya, dalam sistem biner hanya ada dua simbol untuk merepresentasikan angka: 0 dan 1. Saat Anda menghitung dari nol dalam biner, Anda lebih cepat kehabisan simbol: 0, 1, ???

Selanjutnya, tidak ada lagi simbol yang tersisa. Anda tidak beralih ke digit 2 karena 2 tidak ada dalam biner. Sebagai gantinya, Anda menggunakan kombinasi khusus 1 dan 0. Dalam sistem biner, 1000 sama dengan 8 dalam desimal. Dalam biner, Anda menggunakan pangkat dua, yang berarti 8 pada dasarnya: (1(2^3)) + (0(2^2)) + (0(2^1)) + (0(2^0)) = 8. Posisi 1 dan 0 menentukan pangkat 2 yang digunakan.

Mari lihat ini dengan contoh yang lebih kompleks agar jelas:

Binary Number = 1001111
Decimal value = (1*(2^6)) + (0*(2^5)) + (0*(2^4)) + (1*(2^3)) + (1*(2^2)) + (1*(2^1)) + (1*(2^0))
              = 79

Di Python, Anda cukup menggunakan fungsi bin() untuk mengonversi dari nilai desimal ke nilai binernya yang bersesuaian.

Demikian pula, gunakan fungsi int() untuk mengonversi biner ke nilai desimalnya. Fungsi int() menerima argumen kedua berupa basis bilangan yang akan dikonversi, yaitu 2 untuk bilangan biner.

a = 79

# Base 2(binary)
bin_a = bin(a)
print(bin_a)
print(int(bin_a, 2)) #Base 2(binary)
0b1001111
79

Mengonversi oktal ke desimal di Python

Oktal adalah sistem bilangan lain dengan lebih sedikit simbol daripada sistem desimal konvensional. Basisnya delapan, artinya ada delapan simbol untuk merepresentasikan semua kuantitas. Simbolnya adalah 0, 1, 2, 3, 4, 5, 6, dan 7. Setelah 7 adalah 10 karena 8 tidak ada.

Sama seperti Anda menggunakan pangkat dua dalam biner untuk menentukan nilai suatu bilangan, Anda akan menggunakan pangkat 8 karena ini berbasis delapan.

Dalam sistem biner, 10 sama dengan 8 dalam oktal. Mari uraikan: (1(8^1)) + (0(8^0)) = 8.

Contoh yang lebih kompleks:

Octal Number = 117
Decimal value = (1*(8^2)) + (1*(8^1)) + (7*(8^0))
              = 79

Di Python, Anda dapat menggunakan fungsi oct() untuk mengonversi dari nilai desimal ke nilai oktal yang bersesuaian. Alternatifnya, Anda juga dapat menggunakan fungsi int() dengan basis yang benar, yaitu 8 untuk sistem bilangan oktal.

a = 79

# Base 8(octal)
oct_a = oct(a)
print(oct_a)
print(int(oct_a, 8))
0o117
79

Mengonversi heksadesimal ke desimal di Python

Heksadesimal adalah sistem bilangan berbasis 16. Tidak seperti biner dan oktal, sistem ini menggunakan enam simbol tambahan di luar angka yang ada dalam sistem desimal.

Lalu apa yang terjadi setelah 9?

Saat simbol tambahan dibutuhkan di luar nilai numerik biasa, huruf akan digunakan. Jadi dalam heksadesimal, daftar simbol yang digunakan adalah 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, dan F.

Menggunakan contoh yang sama seperti sebelumnya:

Hexadecimal Number = 4F
Decimal value = (4*(16^1)) + (F*(16^0))
              = 79

Di Python, Anda dapat menggunakan fungsi hex() untuk mengonversi dari nilai desimal ke nilai heksadesimal yang bersesuaian, atau fungsi int() dengan basis 16 untuk sistem bilangan heksadesimal.

a = 79

# Base 16(hexadecimal)
hex_a = hex(a)
print(hex_a)
print(int(hex_a, 16))
0x4f
79

Mengonversi Unicode ke karakter

Python chr() mengonversi bilangan bulat Unicode menjadi string. Unicode adalah pengodean karakter yang diterima secara universal untuk menampilkan teks tertulis dari berbagai bahasa.

Kami memberikan berbagai bilangan bulat Unicode ke fungsi chr() untuk menampilkan “DATACAMP.” Anda juga dapat menggunakan ord() untuk mengonversi satu karakter menjadi bilangan bulat Unicode. 

print(
    chr(68),
    chr(65),
    chr(84),
    chr(65),
    chr(67),
    chr(65),
    chr(77),
    chr(80),
)
D A T A C A M P

Ringkasan: Konversi Sistem Bilangan di Python

Konversi Fungsi Contoh Keluaran
Desimal ke Biner bin() bin(79) 0b1001111
Biner ke Desimal int() int('1001111', 2) 79
Desimal ke Oktal oct() oct(79) 0o117
Oktal ke Desimal int() int('117', 8) 79
Desimal ke Hex hex() hex(79) 0x4f
Hex ke Desimal int() int('4F', 16) 79
Unicode ke Karakter chr() chr(68) 'D'
Karakter ke Unicode ord() ord('D') 68

Selamat!

Selamat! Anda mempelajari konversi tipe data di Python, terutama menggunakan metode bawaan. Ini pasti akan membantu Anda menangani berbagai tipe data, memberikan lebih banyak fleksibilitas saat menulis program.

Kami memiliki kursus Intermediate Python for Data Science yang sangat baik, tempat Anda dapat belajar membuat plot data menggunakan matplotlib, serta bekerja dengan dictionary dan DataFrame pandas yang terkenal. Anda juga akan melihat cara mengendalikan alur program dengan loop. Di akhir kursus, ada studi kasus tempat Anda dapat menerapkan semua yang telah dipelajari dan mengasah kemampuan Anda! 

FAQs

Bagaimana cara mengonversi list integer menjadi satu string di Python?

Anda dapat menggunakan metode join() yang dikombinasikan dengan map() untuk mengonversi setiap integer menjadi string dan menggabungkannya.

int_list = [1, 2, 3, 4]
result = ''.join(map(str, int_list))
print(result)  # Output: '1234'

Apa yang terjadi jika Anda mencoba mengonversi string non-numerik menjadi integer di Python?

Sebuah ValueError akan muncul yang menunjukkan bahwa string tersebut bukan integer yang valid.

int('abc')  # Raises ValueError: invalid literal for int() with base 10: 'abc'

Bisakah Anda mengonversi set menjadi list di Python? Bagaimana caranya?

Ya, Anda dapat mengonversi set menjadi list menggunakan fungsi list().

a_set = {1, 2, 3}
a_list = list(a_set)
print(a_list)  # Output: [1, 2, 3]

Bagaimana cara mengonversi string berisi angka yang dipisahkan spasi menjadi list integer?

Gunakan metode split() untuk memisahkan string dan map() untuk mengonversi setiap bagian menjadi integer.

numbers = "1 2 3 4"
int_list = list(map(int, numbers.split()))
print(int_list)  # Output: [1, 2, 3, 4]

Fungsi apa yang dapat Anda gunakan untuk memeriksa tipe data sebuah variabel di Python?

Anda dapat menggunakan fungsi type() untuk memeriksa tipe data sebuah variabel.

x = 5
print(type(x))  # Output: <class 'int'>

Sejal Jaiswal's photo
Author
Sejal Jaiswal
LinkedIn

Saya telah bekerja di berbagai industri dan mengenakan banyak peran: pengembang perangkat lunak, peneliti machine learning, ilmuwan data, manajer produk. Namun pada intinya, saya adalah seorang programmer yang gemar belajar dan berbagi pengetahuan!

Topik

Pelajari lebih lanjut tentang Python dengan kursus-kursus ini!

Kursus

Pengantar Python

4 Hr
6.9M
Kuasai dasar-dasar analisis data dengan Python dalam 4 jam. Kursus online ini memperkenalkan antarmuka Python dan pustaka populer.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat Lebih BanyakLihat Lebih Banyak