Backend10 min read4 views

Fundamental Python: Panduan Praktis Memahami Variabel dan Tipe Data

Banyak pemula terjebak error sepele karena mengabaikan konsep dasar. Artikel ini mengupas tuntas fundamental variabel dan tipe data Python (int, float, str, bool, None) dengan pendekatan praktis. Panduan wajib bagi mahasiswa, fresh graduate, dan calon software engineer yang ingin membangun pondasi coding yang kuat.

Banyak orang yang baru mulai belajar coding langsung melompat ke tutorial membuat aplikasi web atau melatih model artificial intellegent. Semangatnya memang patut diacungi jempol. Siapa yang tidak ingin cepat-cepat melihat hasil karyanya sendiri berjalan? Tapi, percaya deh, membangun pondasi yang rapuh cepat atau lambat akan membuat proses belajar jadi mentok. Ketika kamu menghadapi error yang kelihatannya sepele, kamu akan menghabiskan waktu berjam-jam hanya karena kurang paham konsep dasarnya.

Python dikenal sebagai bahasa pemrograman yang sangat ramah untuk pemula. Sintaksnya bersih, mirip dengan bahasa Inggris sehari-hari, dan tidak memaksa kita menulis kode panjang-panjang hanya untuk melakukan hal sederhana. Namun, kemudahan ini kadang menjadi pedang bermata dua. Karena Python banyak melakukan hal secara "otomatis" di balik layar, banyak pemula yang mengabaikan konsep fundamental seperti variabel dan tipe data.

Mari kita bongkar mesinnya sedikit. Kita akan membahas pondasi paling awal yang wajib dipahami oleh setiap calon software engineer, mahasiswa, maupun siapa saja yang ingin serius di dunia pemrograman: bagaimana Python menyimpan informasi.

Variabel: Kotak Penyimpanan di Memori Komputer

Sebelum kita bisa memanipulasi data, kita harus tahu cara menyimpannya. Di sinilah variabel berperan. Bayangkan memori komputer kamu adalah sebuah gudang raksasa yang kosong. Ketika kamu ingin menyimpan sebuah barang, misalnya buku, kamu menaruhnya di dalam sebuah kardus kosong, lalu kamu menempelkan label nama di kardus tersebut dengan tulisan "Buku Catatan".

Di dunia pemrograman, kardus itu adalah alokasi memori, label nama itu adalah "variabel", dan isi bukunya adalah "nilai" atau datanya.

Dalam bahasa pemrograman yang lebih tua atau lebih ketat seperti C atau Java, sebelum kamu bisa menggunakan kardus, kamu harus melapor dulu ke penjaga gudang: "Halo, saya butuh kardus khusus untuk menyimpan angka, namanya kardus_angka!". Ini disebut static typing.

Python jauh lebih santai. Dia menggunakan sistem dynamic typing. Kamu tidak perlu lapor. Cukup tuliskan nama variabelnya dan masukkan nilainya. Python akan otomatis membuatkan kotaknya dan menyesuaikan ukurannya.

Python
umur = 20
nama = "Budi"
sedang_belajar = True
Sesederhana itu. Python melihat kamu memasukkan angka 20, maka variabel umur langsung dipahami sebagai penyimpan angka. Saat kamu memasukkan teks "Budi", variabel nama langsung dikenali sebagai penyimpan teks.

Tapi ingat, kebebasan ini menuntut tanggung jawab. Karena Python tidak mengunci jenis kotak tersebut, kamu bisa saja secara tidak sengaja mengganti isi variabel umur yang tadinya angka menjadi teks di baris kode selanjutnya. Ini adalah sumber bug yang sangat sering dialami oleh fresh graduate saat baru bergabung di proyek berskala besar.

Mengapa Kita Harus Peduli dengan Tipe Data Python?

Kalau Python sudah sangat pintar mengenali data yang kita masukkan, kenapa kita masih repot-repot belajar tipe data?

Jawabannya ada pada bagaimana komputer memperlakukan informasi. Kamu bisa menjumlahkan dua buah angka, tapi apa yang terjadi jika kamu mencoba menjumlahkan teks dan angka? Komputer akan bingung. Apakah kamu ingin melakukan operasi matematika, atau kamu ingin menggabungkan huruf?

Pemahaman tentang tipe data python akan menyelamatkanmu dari pesan error bertuliskan TypeError yang sangat sering muncul di layar terminal. Setiap tipe data memiliki karakteristik, batasan, dan perilakunya sendiri. Mengetahui kapan harus menggunakan tipe data yang tepat adalah perbedaan antara kode yang berjalan lambat dan kode yang efisien.

Mari kita bedah satu per satu tipe data dasar yang paling sering kamu gunakan sehari-hari.

Integer (int): Bilangan Bulat yang Tanpa Batas

Tipe data pertama dan paling intuitif adalah int, kependekan dari integer. Sederhananya, ini adalah bilangan bulat. Tidak ada koma, tidak ada desimal. Kamu menggunakan int ketika berhadapan dengan data yang sifatnya diskrit atau bisa dihitung satu per satu. Misalnya, jumlah barang di keranjang belanja, umur seseorang, atau tahun kelahiran.

Python
stok_sepatu = 150
tahun_produksi = 2024
suhu_minus = -5
Ada satu rahasia menarik tentang integer di Python yang sering membuat software engineer dari bahasa lain iri. Di banyak bahasa pemrograman, ukuran sebuah angka dibatasi oleh arsitektur sistem (misalnya batasan 32-bit yang mentok di angka sekitar 2,1 miliar). Jika kamu melewati angka itu, program bisa crash atau menghasilkan nilai yang salah.

Di Python 3, tipe data int bisa menampung angka sebesar apa pun, selama RAM komputermu masih muat. Kamu bisa mengalikan angka triliunan dengan triliunan, dan Python akan menghitungnya dengan tenang tanpa mengeluh integer overflow. Ini salah satu alasan mengapa Python sangat disukai oleh matematikawan dan data scientist.

Float: Angka Desimal dan Ilusi Presisi

Jika int adalah bilangan bulat, maka float (floating point) adalah tempat untuk bilangan pecahan atau desimal. Kamu akan sangat bergantung pada tipe data ini ketika membuat aplikasi keuangan, menghitung jarak, atau melakukan perhitungan fisika yang butuh tingkat keakuratan tinggi.

Ciri utama float di Python adalah penggunaan titik (.) sebagai pemisah desimal, bukan koma (,) seperti standar ejaan bahasa Indonesia.

Python
berat_badan = 65.5
nilai_phi = 3.14159
saldo_dompet = 150000.75
Kedengarannya sederhana, tapi float menyimpan jebakan Batman yang menjebak hampir semua mahasiswa ilmu komputer di semester awal mereka. Coba buka terminal Python kamu dan ketikkan operasi matematika sederhana ini: 0.1 + 0.2.

Logika manusia kita dengan cepat menjawab 0.3. Tapi Python akan menjawab 0.30000000000000004.

Kenapa bisa begitu? Apakah Python bodoh? Tidak. Ini terjadi karena komputer pada dasarnya hanya memahami angka 0 dan 1 (biner). Tidak semua angka desimal berbasis 10 bisa diterjemahkan dengan sempurna ke dalam sistem pecahan berbasis 2. Akibatnya, ada sisa pembulatan yang sangat kecil di ujung perhitungan.

Sebagai praktisi, kamu harus tahu bahwa tipe data float tidak cocok digunakan untuk sistem yang membutuhkan presisi absolut, seperti sistem perbankan inti. Untuk kasus seperti itu, software engineer biasanya menggunakan modul khusus seperti decimal atau menyimpan nilai uang dalam bentuk int (misalnya Rp 10.000 disimpan sebagai 1000000 sen).

String (str): Seni Memanipulasi Teks

Teks apa pun yang kamu masukkan ke dalam program—mulai dari nama user, isi cuitan di media sosial, hingga respon dari sebuah server—ditangani oleh tipe data str atau string.

Untuk memberitahu Python bahwa sesuatu adalah teks, kamu harus membungkusnya dengan tanda kutip. Kamu bebas memilih menggunakan kutip tunggal ('...') atau kutip ganda ("...").

Python
pesan_pagi = "Selamat pagi, dunia!"
nama_kota = 'Jakarta'
Kenapa Python memberikan dua pilihan kutip? Ini murni demi kepraktisan. Jika teks yang kamu tulis mengandung tanda kutip tunggal, kamu bisa membungkusnya dengan kutip ganda, begitu juga sebaliknya. Misalnya: "Jum'at libur". Bayangkan kalau kamu harus memakai kutip tunggal, Python akan kebingungan membaca 'Jum'at libur'.

Salah satu hal paling penting untuk diingat tentang string di Python adalah sifatnya yang immutable, atau tidak bisa diubah setelah dibuat. Ketika kamu mencoba menggabungkan dua string atau mengubah salah satu huruf di dalamnya, Python di balik layar sebenarnya sedang membuang kotak string yang lama dan membuat kotak string baru yang sudah dimodifikasi. Jika kamu memproses jutaan baris teks, memahami konsep immutability ini sangat membantu dalam menulis kode yang hemat memori.

Bagi kamu yang menggunakan Python 3.6 ke atas, biasakanlah menggunakan f-string (formatted string literals). Ini adalah fitur magic yang membuat penggabungan variabel dan teks terasa sangat natural. Cukup tambahkan huruf 'f' sebelum tanda kutip, dan kamu bisa memasukkan nama variabel langsung di dalam kurung kurawal.

Python
nama = "Rina"
umur = 22
print(f"Halo, namaku {nama} dan aku berumur {umur} tahun.")
Hasil cetaknya akan langsung bersih tanpa repot memakai tanda tambah (+) berulang kali.

Boolean (bool): Hitam Putihnya Logika Komputer

Di balik semua kecanggihan aplikasi yang kamu pakai, dari algoritma rekomendasi belanja sampai sistem pengereman otomatis di mobil listrik, semuanya bermuara pada keputusan-keputusan kecil: Benar atau Salah. Ya atau Tidak.

Tipe data bool (Boolean) hanya memiliki dua kemungkinan nilai: True atau False. Perhatikan bahwa huruf pertamanya wajib kapital.

Python
sudah_login = True
akun_diblokir = False
Boolean adalah tulang punggung dari control flow (alur kendali) seperti if dan while. Tapi yang membuat Python unik adalah konsep yang disebut truthy dan falsy.

Dalam kondisi tertentu, Python bisa mengevaluasi tipe data lain layaknya sebuah Boolean. Hampir semua nilai yang memiliki "isi" dianggap True. Sebaliknya, nilai yang "kosong" dianggap False.
Misalnya, angka 0 itu dianggap falsy. String yang tidak ada isinya "" juga falsy. Sedangkan angka 1 atau teks "Halo" adalah truthy.

Python
nama_pengguna = ""
if nama_pengguna:
    print("Selamat datang!")
else:
    print("Tolong isi nama Anda.")
Kode di atas akan mencetak "Tolong isi nama Anda." karena nama_pengguna kosong, sehingga Python melihatnya sebagai False. Trik ini sangat sering dipakai oleh programmer profesional untuk membuat kode menjadi lebih ringkas dan elegan.

Fakta menarik untuk mahasiswa yang suka mengulik: di dalam struktur bahasa Python, tipe data bool sebenarnya adalah "anak" (subclass) dari int. True memiliki nilai memori yang sama persis dengan angka 1, dan False sama persis dengan angka 0. Jadi, kamu secara teknis bisa menjumlahkan True + True dan hasilnya adalah 2. Tentu saja jangan lakukan ini di kode produksi jika tidak ingin dimarahi rekan setimmu!

None Type (None): Menyatakan Ketiadaan

Konsep terakhir dari fundamental tipe data mungkin adalah yang paling filosofis: None.

Bagi pemula, None sering disamakan dengan angka 0 atau string kosong "". Padahal mereka sangat berbeda. Angka 0 adalah sebuah nilai. String kosong adalah sebuah teks yang tidak punya karakter.
None berarti ketiadaan. Sesuatu yang sama sekali belum didefinisikan atau sengaja dikosongkan.

Bayangkan kamu sedang membuat formulir pendaftaran. Pengguna wajib mengisi nama dan umur, tapi nomor telepon sifatnya opsional. Saat pengguna tidak mengisi nomor telepon, lebih masuk akal menyimpan variabel nomor_telepon = None daripada nomor_telepon = 0. Angka nol adalah nomor yang tidak valid, sedangkan None dengan jelas memberitahu sistem: "Pengguna ini memang tidak memberikan informasi nomor telepon".

Python
hasil_pencarian = None

# ... program mencari data ...

if hasil_pencarian is None:
    print("Maaf, data tidak ditemukan.")
Menggunakan kata kunci is saat membandingkan suatu variabel dengan None adalah standar praktik terbaik (best practice) yang disepakati oleh komunitas Python global. Ini lebih aman dan akurat dibandingkan menggunakan tanda sama dengan dua kali (==).

Saatnya Merangkai Puzzle

Sampai di sini, kamu mungkin berpikir, "Oke, saya sudah tahu jenis-jenis kotaknya. Lalu apa?"

Memahami fundamental tipe data bukanlah tujuan akhir. Ini adalah bahasa yang akan kamu gunakan untuk berkomunikasi dengan komputermu setiap hari. Ketika kamu nanti mengambil spesialisasi, katakanlah di bidang artificial intellegent atau ilmu data, kamu akan memproses jutaan baris data setiap detik.

Kamu akan menerima data acak dari internet, di mana angka seringkali tertulis sebagai teks (misalnya "1500"). Karena kamu sudah paham bahwa teks tidak bisa dihitung secara matematis, insting pertamamu adalah melakukan konversi (type casting) dengan perintah int("1500") sebelum memasukkannya ke dalam model prediksi yang kamu buat.

Ketika algoritma prediksimu menghasilkan angka probabilitas 0.8543, kamu tahu bahwa itu adalah float dan kamu bisa memformatnya menjadi persentase dengan mudah. Saat terjadi masalah, dan layar menampilkan pesan bahwa sistem menerima nilai NoneType, kamu tidak lagi panik. Kamu tahu persis bahwa ada fungsi di kodenya yang lupa mengembalikan nilai, sehingga variabel tersebut menjadi kosong.

Semua keahlian problem solving tingkat tinggi selalu berakar pada pemahaman yang jernih tentang hal-hal fundamental. Tidak ada trik instan atau jalan pintas. Kode yang hebat tidak selalu tentang logika matematika yang kompleks; seringkali, kode yang hebat adalah kode yang ditulis oleh seseorang yang benar-benar memahami bagaimana setiap byte datanya diperlakukan oleh mesin.

Jangan terburu-buru melompat ke framework atau library canggih sebelum kamu merasa benar-benar nyaman memanipulasi int, float, str, bool, dan None. Buka text editor-mu, cobalah bereksperimen. Coba campurkan tipe data yang berbeda, lihat pesan error yang muncul, dan pahami mengapa Python memprotes hal tersebut. Semakin sering kamu berbuat salah di tahap ini, semakin tajam instingmu sebagai software engineer nantinya.