Dalam dunia pemrograman, data adalah segalanya. Setiap program yang kita buat pada dasarnya adalah serangkaian instruksi untuk memanipulasi data. Oleh karena itu, memahami bagaimana bahasa pemrograman menyimpan dan mengelola data menjadi fondasi yang sangat penting. Python, sebagai bahasa yang dikenal dengan kesederhanaan dan kekuatannya, menawarkan sistem tipe data yang intuitif namun sangat fleksibel.
Artikel ini akan membahas secara mendalam tentang tipe data dasar di Python. Anda akan mempelajari karakteristik masing-masing tipe data, cara penggunaannya, metode-metode yang tersedia, serta contoh-contoh praktis yang akan membantu Anda memahami konsep ini dengan lebih baik.
Konsep Dasar Tipe Data di Python
Apa Itu Tipe Data?
Tipe data adalah klasifikasi yang menentukan jenis nilai yang dapat disimpan dan diolah oleh suatu variabel. Setiap tipe data memiliki karakteristik unik, seperti ukuran memori yang digunakan, operasi yang dapat dilakukan, dan metode bawaan yang tersedia.
Sifat Dinamis Tipe Data Python
Salah satu keunggulan Python dibanding bahasa pemrograman lain seperti C atau Java adalah sifatnya yang dynamically typed. Artinya, Anda tidak perlu mendeklarasikan tipe data secara eksplisit saat membuat variabel. Python akan secara otomatis menentukan tipe data berdasarkan nilai yang Anda berikan.
x = 10 # Python tahu ini integer x = "sepuluh" # Sekarang x menjadi string x = 10.5 # Sekarang x menjadi float
Kode di atas menunjukkan bahwa variabel x dapat berubah tipe data selama program berjalan. Ini memberikan fleksibilitas tinggi, namun perlu kehati-hatian agar tidak terjadi kesalahan logika.
Fungsi type()
Python menyediakan fungsi bawaan type() yang sangat berguna untuk mengetahui tipe data suatu objek.
print(type(10)) #print(type(3.14)) # print(type("Halo")) # print(type(True)) #
Tipe Data Angka (Numeric Types)
Python memiliki tiga tipe data numerik utama: integer, float, dan complex. Masing-masing dirancang untuk kebutuhan yang berbeda.
1. Integer (int)
Integer adalah tipe data untuk bilangan bulat, baik positif maupun negatif, tanpa komponen desimal. Di Python, integer tidak memiliki batasan ukuran yang berarti—ia dapat tumbuh selama memori komputer masih mencukupi.
Karakteristik Integer:
-
Tidak memiliki bagian desimal
-
Dapat bernilai positif, negatif, atau nol
-
Tidak terbatas ukurannya (unbounded)
Cara Mendefinisikan Integer:
umur = 25 suhu = -10 populasi_bumi = 7_800_000_000 # Garis bawah untuk keterbacaan angka_sangat_besar = 9999999999999999999999999999
Penggunaan garis bawah pada angka 7_800_000_000 bersifat opsional dan hanya untuk memudahkan pembacaan manusia. Python akan mengabaikannya saat mengeksekusi kode.
Sistem Bilangan Lain:
Python mendukung beberapa sistem bilangan yang sering digunakan dalam pemrograman:
# Bilangan biner (awalan 0b) biner = 0b1010 # Nilai desimalnya 10 # Bilangan oktal (awalan 0o) oktal = 0o12 # Nilai desimalnya 10 # Bilangan heksadesimal (awalan 0x) heksa = 0xA # Nilai desimalnya 10 print(biner, oktal, heksa) # Output: 10 10 10
Operasi Dasar Integer:
a = 15 b = 4 print(a + b) # Penjumlahan: 19 print(a - b) # Pengurangan: 11 print(a * b) # Perkalian: 60 print(a / b) # Pembagian: 3.75 (menghasilkan float) print(a // b) # Pembagian bulat: 3 print(a % b) # Modulus (sisa bagi): 3 print(a ** b) # Perpangkatan: 15^4 = 50625
2. Float (float)
Float adalah tipe data untuk bilangan riil atau bilangan desimal. Di dalam komputer, float direpresentasikan menggunakan format floating-point (biasanya IEEE 754), yang memiliki keterbatasan presisi.
Karakteristik Float:
-
Memiliki bagian desimal
-
Dapat ditulis dengan notasi desimal atau eksponensial
-
Memiliki keterbatasan presisi (sekitar 15-17 digit desimal)
Cara Mendefinisikan Float:
tinggi = 175.5 berat = 68.3 pi = 3.14159265359 kecepatan_cahaya = 3e8 # Notasi eksponensial: 3 x 10^8 = 300000000.0 massa_elektron = 9.1e-31 # 9.1 x 10^-31
Presisi Float dan Masalahnya:
Float tidak selalu dapat merepresentasikan bilangan desimal dengan sempurna karena keterbatasan sistem biner.
print(0.1 + 0.2) # Output: 0.30000000000000004 (bukan 0.3) print(0.1 + 0.2 == 0.3) # Output: False
Untuk mengatasi masalah ini, Python menyediakan modul decimal untuk perhitungan yang membutuhkan presisi tinggi, seperti perhitungan keuangan.
from decimal import Decimal a = Decimal('0.1') b = Decimal('0.2') print(a + b) # Output: 0.3
Operasi Dasar Float:
x = 3.7 y = 2.0 print(x + y) # 5.7 print(x * y) # 7.4 print(x / y) # 1.85 print(x // y) # 1.0 (pembagian bulat tetap menghasilkan float) print(round(x)) # Pembulatan: 4 print(round(3.14159, 2)) # Pembulatan 2 desimal: 3.14
3. Complex (complex)
Complex adalah tipe data untuk bilangan kompleks, yang memiliki bagian riil dan imajiner. Tipe ini sering digunakan dalam perhitungan ilmiah, teknik elektro, dan fisika kuantum.
Karakteristik Complex:
-
Terdiri dari bagian riil dan imajiner
-
Bagian imajiner ditandai dengan huruf
jatauJ -
Memiliki atribut
.realdan.imag
Cara Mendefinisikan Complex:
z1 = 3 + 4j z2 = 5 - 2j z3 = complex(2, 3) # 2 + 3j
Operasi dengan Bilangan Kompleks:
z1 = 3 + 4j z2 = 1 - 1j print(z1 + z2) # Penjumlahan: (4+3j) print(z1 * z2) # Perkalian: (7+1j) print(z1.real) # Mengambil bagian riil: 3.0 print(z1.imag) # Mengambil bagian imajiner: 4.0 print(abs(z1)) # Magnitude (jarak dari origin): 5.0 print(z1.conjugate()) # Konjugat: (3-4j)
Tipe Data Boolean (bool)
Boolean adalah tipe data yang hanya memiliki dua nilai: True atau False. Tipe ini sangat penting dalam pengambilan keputusan dan aliran kontrol program.
Karakteristik Boolean:
-
Hanya memiliki dua nilai:
TruedanFalse -
Merupakan subclass dari integer (
True= 1,False= 0) -
Hasil dari operasi perbandingan dan logika
Cara Mendefinisikan Boolean:
is_aktif = True is_lulus = False
Boolean dari Operasi Perbandingan:
x = 10 y = 5 print(x > y) # True print(x < y) # False print(x == y) # False print(x != y) # True print(x >= 10) # True print(x <= 5) # False
Boolean dari Operasi Logika:
a = True b = False print(a and b) # False (AND: kedua harus True) print(a or b) # True (OR: salah satu True) print(not a) # False (NOT: kebalikan)
Konsep Truthy dan Falsy:
Di Python, setiap objek dapat dievaluasi sebagai boolean dalam konteks tertentu. Nilai-nilai berikut dianggap False (falsy):
-
None -
False -
Nol dalam bentuk numerik:
0,0.0,0j -
Urutan kosong:
""(string kosong),[](list kosong),()(tuple kosong) -
Pemetaan kosong:
{}(dictionary kosong) -
set()(set kosong)
Semua nilai lainnya dianggap True (truthy).
print(bool(0)) # False print(bool(1)) # True print(bool("")) # False print(bool("Hello")) # True print(bool([])) # False print(bool([1,2])) # True
Fitur ini sangat berguna dalam pengkondisian:
nama = "" if nama: print(f"Halo, {nama}") else: print("Nama tidak boleh kosong!") # Output: Nama tidak boleh kosong!
Tipe Data String (str)
String adalah tipe data untuk merepresentasikan teks atau urutan karakter. Di Python, string bersifat immutable, artinya sekali dibuat, isinya tidak dapat diubah.
Karakteristik String:
-
Diapit oleh tanda kutip tunggal (
'), ganda ("), atau triple ('''atau""") -
Bersifat immutable
-
Mendukung pengindeksan dan pengirisan
-
Memiliki banyak metode bawaan untuk manipulasi teks
Cara Mendefinisikan String:
# Kutip tunggal nama = 'Budi' # Kutip ganda pesan = "Halo, apa kabar?" # Kutip triple (untuk string multi-baris) teks_panjang = """Ini adalah string yang terdiri dari beberapa baris.""" # String dengan kutip di dalamnya kalimat1 = "Dia berkata, 'Halo'" kalimat2 = 'Dia berkata, "Halo"' kalimat3 = "Dia berkata, \"Halo\"" # Menggunakan escape character
Escape Characters:
Escape characters digunakan untuk menyisipkan karakter khusus dalam string:
| Escape | Keterangan |
|---|---|
\\ |
Backslash |
\' |
Kutip tunggal |
\" |
Kutip ganda |
\n |
Baris baru (newline) |
\t |
Tab |
\r |
Carriage return |
\b |
Backspace |
print("Baris pertama\nBaris kedua") print("Kolom 1\tKolom 2\tKolom 3") print("Dia berkata, \"Python itu mudah!\"")
String Raw (raw string):
Dengan menambahkan huruf r sebelum string, escape characters tidak akan diproses.
path_normal = "C:\\Users\\Budi\\Documents" path_raw = r"C:\Users\Budi\Documents" print(path_normal) # C:\Users\Budi\Documents print(path_raw) # C:\Users\Budi\Documents
Operasi Dasar String:
s = "Hello" # Penggabungan (concatenation) print(s + " World") # Hello World # Pengulangan print(s * 3) # HelloHelloHello # Panjang string print(len(s)) # 5 # Mengecek substring print("ell" in s) # True print("xyz" in s) # False
Pengindeksan dan Pengirisan String:
String dapat diakses seperti urutan karakter menggunakan indeks. Indeks dimulai dari 0 untuk karakter pertama.
teks = "Python" # Pengindeksan print(teks[0]) # P (karakter pertama) print(teks[1]) # y print(teks[-1]) # n (karakter terakhir) print(teks[-2]) # o # Pengirisan (slicing): [start:stop:step] print(teks[0:3]) # Pyt (indeks 0 sampai 2) print(teks[3:]) # hon (indeks 3 sampai akhir) print(teks[:3]) # Pyt (awal sampai indeks 2) print(teks[::2]) # Pto (setiap 2 karakter) print(teks[::-1]) # nohtyP (membalik string)
Metode-metode String:
String memiliki banyak metode bawaan yang sangat berguna:
teks = " Python Programming " # Menghapus spasi di awal dan akhir print(teks.strip()) # "Python Programming" # Mengubah huruf besar/kecil print(teks.upper()) # " PYTHON PROGRAMMING " print(teks.lower()) # " python programming " print(teks.capitalize()) # " python programming " (hanya huruf pertama kapital) print(teks.title()) # " Python Programming " (setiap kata kapital) # Mengganti substring print(teks.replace("Python", "Java")) # " Java Programming " # Memisahkan string kalimat = "satu,dua,tiga" print(kalimat.split(",")) # ['satu', 'dua', 'tiga'] # Menggabungkan list menjadi string kata = ["Halo", "dunia"] print(" ".join(kata)) # "Halo dunia" # Mengecek awalan/akhiran print(teks.startswith(" Py")) # True print(teks.endswith("ing ")) # True # Mencari posisi substring print(teks.find("thon")) # 4 (indeks dimulai dari 0) print(teks.find("xyz")) # -1 (tidak ditemukan) # Menghitung kemunculan print(teks.count("P")) # 1
String Formatting:
Python menyediakan beberapa cara untuk memformat string:
1. Metode format() lama (%):
nama = "Budi" umur = 25 print("Nama saya %s dan umur saya %d tahun" % (nama, umur))
2. Metode format():
print("Nama saya {} dan umur saya {} tahun".format(nama, umur)) print("Nama saya {n} dan umur saya {u} tahun".format(n=nama, u=umur))
3. f-string (Python 3.6+):
print(f"Nama saya {nama} dan umur saya {umur} tahun") print(f"Tahun depan umur saya {umur + 1} tahun") print(f"Lingkaran dengan jari-jari 5: {3.14 * 5 * 5:.2f}")
f-string adalah metode terbaru dan paling direkomendasikan karena lebih bersih dan efisien.
Tipe Data Berurutan (Sequence Types)
Python memiliki beberapa tipe data berurutan yang dapat menyimpan banyak nilai dalam satu variabel.
1. List (list)
List adalah tipe data yang dapat menyimpan kumpulan item dalam urutan tertentu. List bersifat mutable, artinya dapat diubah setelah dibuat.
Karakteristik List:
-
Didefinisikan dengan kurung siku
[] -
Bersifat mutable (dapat diubah)
-
Dapat berisi campuran tipe data
-
Elemen-elemennya terurut
-
Mendukung pengindeksan dan pengirisan
Cara Mendefinisikan List:
# List kosong list_kosong = [] # List dengan elemen angka = [1, 2, 3, 4, 5] campuran = [1, "dua", 3.0, True, [4, 5]] print(campuran[4]) # [4, 5]
Operasi Dasar List:
buah = ["apel", "jeruk", "mangga"] # Mengakses elemen print(buah[0]) # apel print(buah[-1]) # mangga # Mengubah elemen buah[1] = "pisang" print(buah) # ["apel", "pisang", "mangga"] # Menambahkan elemen buah.append("durian") # Menambah di akhir print(buah) # ["apel", "pisang", "mangga", "durian"] buah.insert(1, "anggur") # Menambah di posisi tertentu print(buah) # ["apel", "anggur", "pisang", "mangga", "durian"] # Menghapus elemen buah.remove("pisang") # Menghapus berdasarkan nilai print(buah) # ["apel", "anggur", "mangga", "durian"] buah.pop() # Menghapus elemen terakhir print(buah) # ["apel", "anggur", "mangga"] del buah[1] # Menghapus berdasarkan indeks print(buah) # ["apel", "mangga"] # Penggabungan list list1 = [1, 2, 3] list2 = [4, 5, 6] gabungan = list1 + list2 print(gabungan) # [1, 2, 3, 4, 5, 6] # Pengulangan print(list1 * 3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
Metode-metode List:
angka = [3, 1, 4, 1, 5, 9, 2] # Mengurutkan angka.sort() print(angka) # [1, 1, 2, 3, 4, 5, 9] # Membalik urutan angka.reverse() print(angka) # [9, 5, 4, 3, 2, 1, 1] # Menghitung kemunculan print(angka.count(1)) # 2 # Mencari indeks print(angka.index(4)) # 2 # Menyalin list (shallow copy) angka_salin = angka.copy() # Mengosongkan list angka.clear() print(angka) # [] # Memperluas list list_a = [1, 2, 3] list_a.extend([4, 5, 6]) print(list_a) # [1, 2, 3, 4, 5, 6]
List Comprehension:
List comprehension adalah cara singkat dan elegan untuk membuat list berdasarkan list lain.
# Cara biasa kuadrat = [] for i in range(10): kuadrat.append(i**2) # List comprehension kuadrat = [i**2 for i in range(10)] print(kuadrat) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] # Dengan kondisi genap = [i for i in range(20) if i % 2 == 0] print(genap) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] # Nested list comprehension matriks = [[i * j for j in range(1, 4)] for i in range(1, 4)] print(matriks) # [[1, 2, 3], [2, 4, 6], [3, 6, 9]]
2. Tuple (tuple)
Tuple mirip dengan list, tetapi bersifat immutable (tidak dapat diubah setelah dibuat). Tuple biasanya digunakan untuk data yang tidak boleh berubah.
Karakteristik Tuple:
-
Didefinisikan dengan tanda kurung
() -
Bersifat immutable
-
Lebih cepat dalam pengaksesan dibanding list
-
Dapat digunakan sebagai key dalam d





Georgia Reader Reply
Et rerum totam nisi. Molestiae vel quam dolorum vel voluptatem et et. Est ad aut sapiente quis molestiae est qui cum soluta. Vero aut rerum vel. Rerum quos laboriosam placeat ex qui. Sint qui facilis et.