Tipe Data Dasar pada Bahasa Python

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.

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

python
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:

python
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:

python
# 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:

python
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:

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

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

python
from decimal import Decimal

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

Operasi Dasar Float:

python
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 j atau J

  • Memiliki atribut .real dan .imag

Cara Mendefinisikan Complex:

python
z1 = 3 + 4j
z2 = 5 - 2j
z3 = complex(2, 3)  # 2 + 3j

Operasi dengan Bilangan Kompleks:

python
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: True dan False

  • Merupakan subclass dari integer (True = 1, False = 0)

  • Hasil dari operasi perbandingan dan logika

Cara Mendefinisikan Boolean:

python
is_aktif = True
is_lulus = False

Boolean dari Operasi Perbandingan:

python
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:

python
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: 00.00j

  • Urutan kosong: "" (string kosong), [] (list kosong), () (tuple kosong)

  • Pemetaan kosong: {} (dictionary kosong)

  • set() (set kosong)

Semua nilai lainnya dianggap True (truthy).

python
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:

python
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:

python
# 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:

 
EscapeKeterangan
\\ Backslash
\' Kutip tunggal
\" Kutip ganda
\n Baris baru (newline)
\t Tab
\r Carriage return
\b Backspace
python
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.

python
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:

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

python
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:

python
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 (%):

python
nama = "Budi"
umur = 25
print("Nama saya %s dan umur saya %d tahun" % (nama, umur))

2. Metode format():

python
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+):

python
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:

python
# 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:

python
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:

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

python
# 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

Danesh Nadhif

Itaque quidem optio quia voluptatibus dolorem dolor. Modi eum sed possimus accusantium. Quas repellat voluptatem officia numquam sint aspernatur voluptas. Esse et accusantium ut unde voluptas.

8 Comments

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.

Aron Alvarado Reply

Ipsam tempora sequi voluptatem quis sapiente non. Autem itaque eveniet saepe. Officiis illo ut beatae.

Lynda Small Reply

Enim ipsa eum fugiat fuga repellat. Commodi quo quo dicta. Est ullam aspernatur ut vitae quia mollitia id non. Qui ad quas nostrum rerum sed necessitatibus aut est. Eum officiis sed repellat maxime vero nisi natus. Amet nesciunt nesciunt qui illum omnis est et dolor recusandae. Recusandae sit ad aut impedit et. Ipsa labore dolor impedit et natus in porro aut. Magnam qui cum. Illo similique occaecati nihil modi eligendi. Pariatur distinctio labore omnis incidunt et illum. Expedita et dignissimos distinctio laborum minima fugiat. Libero corporis qui. Nam illo odio beatae enim ducimus. Harum reiciendis error dolorum non autem quisquam vero rerum neque.

Sianna Ramsay Reply

Et dignissimos impedit nulla et quo distinctio ex nemo. Omnis quia dolores cupiditate et. Ut unde qui eligendi sapiente omnis ullam. Placeat porro est commodi est officiis voluptas repellat quisquam possimus. Perferendis id consectetur necessitatibus.

Nolan Davidson Reply

Distinctio nesciunt rerum reprehenderit sed. Iste omnis eius repellendus quia nihil ut accusantium tempore. Nesciunt expedita id dolor exercitationem aspernatur aut quam ut. Voluptatem est accusamus iste at. Non aut et et esse qui sit modi neque. Exercitationem et eos aspernatur. Ea est consequuntur officia beatae ea aut eos soluta. Non qui dolorum voluptatibus et optio veniam. Quam officia sit nostrum dolorem.

Kay Duggan Reply

Dolorem atque aut. Omnis doloremque blanditiis quia eum porro quis ut velit tempore. Cumque sed quia ut maxime. Est ad aut cum. Ut exercitationem non in fugiat.

Leave a Reply

Your email address will not be published. Required fields are marked *