Kenapa tipe data itu penting
Tipe hanyalah kategori yang memberi tahu Python bagaimana sebuah nilai harus berperilaku. Menjumlahkan dua integer berarti aritmetika; menjumlahkan dua string berarti menggabungkannya; menjumlahkan string dengan integer adalah error. Tipe sebuah nilai menentukan operasi apa yang masuk akal untuknya.
Python punya sekumpulan kecil tipe bawaan yang ramah. Kamu akan memakai empat di antaranya, yaitu int, float, str, dan bool, di hampir setiap program yang kamu tulis. Sisanya muncul saat kamu mulai menyusun data ke dalam koleksi.
Angka: int dan float
Ada dua jenis angka, dan Python memilih yang mana berdasarkan cara kamu menulisnya:
Tanpa titik desimal? Kamu mendapat int. Ada titik desimal? Kamu mendapat float. Aritmetika bisa mencampur keduanya dengan bebas: operasi apa pun yang melibatkan float menghasilkan float:
Integer di Python bisa sebesar yang diizinkan memorimu: tidak ada overflow, tidak ada batas tetap 32 atau 64 bit. Kamu bisa menghitung 2 ** 1000 dan Python akan memberikan semua digitnya.
Float mengikuti aturan IEEE 754 yang biasa, yang berarti ada beberapa kejutan klasik:
Hasilnya 0.30000000000000004, bukan 0.3. Ini bukan bug Python, tapi memang begitulah cara kerja floating point biner di semua bahasa. Kalau kamu butuh desimal yang pasti (misalnya untuk uang), pakai modul decimal. Untuk hal lain, membulatkan saat ditampilkan biasanya sudah cukup.
String: str
String adalah deretan karakter. Bungkus dengan tanda kutip tunggal atau ganda; Python tidak peduli yang mana, selama tanda kutip pembuka dan penutupnya sama:
String dengan tiga tanda kutip (""" ... """) bisa terdiri dari beberapa baris:
String punya API yang sangat luas yang akan kamu pelajari seiring waktu: slicing, method seperti .upper(), .split(), .replace(), dan format f-string yang memberimu f"Hello, {name}". Ada halaman khusus tentang string setelah ini.
Boolean: bool
Ada dua nilai, ditulis persis seperti ini: True dan False, dengan huruf kapital di depan. Perbandingan menghasilkan boolean:
Di balik layar, True dan False benar-benar bernilai 1 dan 0, artinya kamu bisa menjumlahkan boolean kalau perlu menghitung berapa banyak kondisi yang bernilai benar:
None: tidak adanya nilai
None adalah cara Python mengatakan "tidak ada nilai." Fungsi yang tidak secara eksplisit mengembalikan apa pun akan mengembalikan None. Kamu juga akan memakainya sebagai pengganti sementara:
Konvensinya adalah mengecek dengan is None dan is not None, bukan == None. is mengecek identitas, dan itulah yang sebenarnya kamu maksud di sini.
List, tuple, set, dictionary
Ini adalah empat tipe koleksi bawaan. Masing-masing dibahas lengkap di halamannya sendiri, tapi ini gambaran singkatnya agar kamu bisa mengenalinya:
Patokan praktis:
- List: deretan yang kamu perkirakan akan berubah. Menambah, menghapus, mengurutkan, semuanya boleh.
- Tuple: deretan yang ingin kamu lindungi dari perubahan. Sering dipakai untuk data berbentuk tetap seperti koordinat
(x, y). - Set: kumpulan item unik, untuk saat duplikat akan menjadi bug.
- Dict: pencarian berdasarkan key. Struktur yang bentuknya seperti JSON.
Mengonversi antar tipe
Python tidak akan mengonversi tipe secara otomatis kalau itu berisiko. Mengubah integer menjadi string, atau string menjadi angka, adalah hal yang harus kamu minta sendiri:
Kalau sebuah konversi tidak masuk akal, misalnya int("hello"), Python memunculkan ValueError dan memberi tahu apa yang kamu berikan. Ada error, ada penjelasannya, perbaiki lalu lanjut.
Mengecek tipe
Dua alat yang perlu kamu tahu:
type() bagus untuk melihat sekilas di REPL. isinstance() adalah yang kamu pakai di kode sungguhan, karena cocok dengan inheritance dan bisa mengecek beberapa tipe sekaligus.
Latihan survei singkat
Coba jalankan blok di bawah apa adanya, lalu ubah beberapa nilainya dan lihat tipe apa yang dihasilkan:
Kamu belum perlu paham for, nanti kita akan sampai ke sana, tapi ini memberimu gambaran semua tipe bawaan dalam sekali lihat.
Pilih tipe yang cocok dengan datanya
Kamu tidak perlu menghafal setiap tipe sekarang. Yang perlu adalah bisa mengenalinya saat melihatnya, dan memilih yang tepat saat membuat data. "Apakah ini tetap atau berubah? Unik atau tidak? Apakah aku mencarinya berdasarkan key atau posisi?" Pertanyaan-pertanyaan itu menentukan tipe koleksi yang tepat sembilan puluh persen waktu.
Berikutnya: string secara mendalam, karena string adalah tipe data yang akan kamu sentuh di hampir setiap program.
Pertanyaan yang sering diajukan
Apa saja tipe data utama di Python?
Angka (int dan float), string (str), boolean (bool), None, dan empat tipe koleksi: list, tuple, set, dan dict. Semua hal lain yang kamu lihat di kode Python dibangun dari tipe-tipe ini ditambah beberapa tipe lain (bytes, complex, frozenset).
Bagaimana cara mengecek tipe sebuah nilai di Python?
Bungkus dengan type(): type(42) mengembalikan <class 'int'>, type('hi') mengembalikan <class 'str'>. Untuk pengecekan benar/salah, pakai isinstance(value, int), yang lebih fleksibel karena juga menangani subclass.
Apakah Python bertipe statis atau dinamis?
Dinamis. Sebuah variabel bisa menunjuk ke nilai dengan tipe apa pun, dan variabel yang sama bisa berganti tipe sepanjang umurnya. Ini berbeda dari bahasa seperti Java atau C++, tempat kamu mendeklarasikan tipe variabel sekali dan tipe itu tidak bisa berubah.