Pendahuluan
Halo teman-teman developer! Senang sekali bisa bertemu kembali di seri pengembangan CLI Expense Tracker kita. Pada artikel sebelumnya (#7), kita sudah melakukan refreshment mengenai dasar-dasar Python agar fondasi logika Anda semakin kuat. Sekarang, kita akan melangkah ke bagian yang sangat krusial dalam pemrograman: Variabel dan Tipe Data.
Bayangkan Anda sedang membangun sebuah aplikasi pencatat keuangan. Di dalam aplikasi tersebut, Anda perlu menyimpan nama transaksi, jumlah uang yang dikeluarkan, tanggal, hingga status apakah pengeluaran tersebut sudah dibayar atau belum. Pertanyaannya, bagaimana cara komputer “mengingat” informasi-informasi tersebut? Jawabannya adalah dengan menggunakan variabel.
Dalam tutorial ini, kita akan mempelajari bagaimana cara mendefinisikan variabel yang baik, memahami berbagai jenis tipe data yang tersedia di Python, dan bagaimana cara mengubah satu tipe data ke tipe data lainnya (type casting). Pemahaman mendalam tentang topik ini sangat penting karena kesalahan dalam menentukan tipe data dapat menyebabkan bug fatal, terutama saat kita melakukan operasi matematika pada nominal uang di aplikasi Expense Tracker kita nanti.
Apa itu Variabel?
Secara teknis, variabel adalah sebuah nama yang merujuk pada sebuah lokasi di memori komputer yang menyimpan suatu nilai. Namun, untuk memudahkan pemahaman, bayangkan variabel sebagai sebuah label atau wadah (container). Anda bisa memasukkan data ke dalam wadah tersebut dan memberinya nama agar mudah dipanggil kembali.
Di Python, membuat variabel sangatlah mudah karena Python menggunakan sistem dynamic typing. Artinya, Anda tidak perlu secara eksplisit memberi tahu Python apakah variabel tersebut berisi angka atau teks; Python akan cukup pintar untuk mengetahuinya sendiri saat Anda memberikan nilai.
Berikut adalah aturan penulisan variabel yang baik (best practices) yang sering saya ajarkan kepada junior developer:
- Gunakan
snake_case: Gunakan huruf kecil dan garis bawah (_) untuk memisahkan kata. Contoh:total_pengeluaran, bukantotalPengeluaranatauTotalPengeluaran. - Deskriptif: Nama variabel harus mencerminkan isinya. Hindari nama seperti
xataua. Gunakannama_penggunaataunominal_transaksi. - Jangan diawali angka: Variabel boleh mengandung angka, tapi tidak boleh dimulai dengan angka. Contoh:
pengeluaran1(benar),1pengeluaran(salah).
Mari kita lihat contoh implementasinya:
# Contoh penggunaan variabel yang baik
nama_pengguna = "Budi Santoso" # String
jumlah_transaksi = 5 # Integer
total_biaya = 150000.50 # Float
is_active = True # Boolean
# Menampilkan isi variabel
print(f"Halo {nama_pengguna}!")
print(f"Anda telah melakukan {jumlah_transaksi} transaksi.")
print(f"Total pengeluaran Anda adalah Rp{total_biaya}")
Mengenal Tipe Data Dasar di Python
Dalam aplikasi Expense Tracker, kita akan berurusan dengan berbagai jenis informasi. Setiap informasi memiliki karakteristik yang berbeda, itulah sebabnya kita perlu memahami tipe data dasar berikut:
1. String (str)
String adalah tipe data yang digunakan untuk teks. String selalu diapit oleh tanda kutip tunggal (') atau ganda ("). Dalam proyek kita, string akan digunakan untuk menyimpan deskripsi transaksi, kategori (seperti “Makan”, “Transportasi”), dan nama pengguna.
kategori_pengeluaran = "Makanan & Minuman"
deskripsi_transaksi = "Beli Nasi Padang di dekat kantor"
print(s_type := type(kategori_pengeluaran)) # Output: <class 'str'>
2. Integer (int)
Integer adalah tipe data angka bulat, baik positif maupun negatif, tanpa desimal. Kita menggunakan int untuk hal-hal yang bersifat diskrit, seperti jumlah item yang dibeli atau jumlah transaksi yang sudah tercatat.
jumlah_item = 3
id_transaksi = 1024
print(type(jumlah_item)) # Output: <class 'int'>
3. Float (float)
Float adalah tipe data angka yang memiliki desimal (titik). Dalam konteks keuangan, meskipun Rupiah jarang menggunakan sen, penggunaan float sangat penting untuk perhitungan yang membutuhkan presisi tinggi atau jika Anda berurusan dengan mata uang asing yang memiliki desimal.
harga_satuan = 15000.50
diskon_persen = 10.5
print(type(harga_satuan)) # Output: <class 'float'>
4. Boolean (bool)
Boolean adalah tipe data yang hanya memiliki dua nilai: True (Benar) atau False (Salah). Ini adalah fondasi dari logika pemrograman. Dalam aplikasi kita, boolean digunakan untuk mengecek status, misalnya is_paid (apakah sudah dibayar) atau is_recurring (apakah transaksi ini rutin setiap bulan).
is_paid = True
is_debit = False
print(type(is_paid)) # Output: <class 'bool'>
Struktur Data Koleksi: List dan Dictionary
Terkadang, satu variabel saja tidak cukup. Kita perlu menyimpan sekumpulan data dalam satu wadah. Di sinilah kita membutuhkan struktur data koleksi.
List
list adalah urutan data yang dapat diubah (mutable). Bayangkan list sebagai sebuah daftar belanja di Tokopedia atau daftar pengeluaran harian Anda.
# Daftar kategori pengeluaran
daftar_kategori = ["Makan", "Transportasi", "Listrik", "Internet"]
# Menambah kategori baru ke dalam list
daftar_kategori.append("Hiburan")
print(f"Kategori tersedia: {daftar_kategori}")
# Output: ['Makan', 'Transportasi', 'Listrik', 'Internet', 'Hiburan']
Dictionary (dict)
dict adalah kumpulan pasangan key (kunci) dan value (nilai). Ini adalah struktur data paling penting untuk proyek kita karena kita bisa merepresentasikan satu objek transaksi secara lengkap.
# Menggunakan dictionary untuk merepresentasikan satu transaksi
transaksi_siti = {
"id": 1,
"tanggal": "2023-10-25",
"nominal": 50000,
"kategori": "Transportasi",
"keterangan": "Top up Gojek"
}
print(f"Transaksi ke-{transaksi_siti['id']} sebesar Rp{transaksi_siti['nominal']}")
Type Casting: Mengubah Tipe Data
Ini adalah bagian yang paling sering membuat developer pemula terjebak. Saat kita mengambil input dari user menggunakan fungsi input(), Python secara otomatis menganggap input tersebut sebagai String. Jika Anda ingin melakukan operasi matematika (seperti penjumlahan), Anda harus mengubahnya menjadi int atau float.
# Mengambil input dari user
input_nominal = input("Masukkan nominal pengeluaran (Rp): ")
# Misal user input: 50000 -> input_nominal sekarang adalah "50000" (String)
# Melakukan Type Casting dari String ke Float
nominal_asli = float(input_nominal)
# Sekarang kita bisa melakukan operasi matematika
pajak = 0.11 # PPN 11%
total_bayar = nominal_asli + (nominal_asli * pajak)
print(f"Total yang harus dibayar termasuk pajak: Rp{total_bayar}")
Implementasi dalam Proyek (Snippet)
Berikut adalah gambaran bagaimana kita mulai menyusun struktur data untuk aplikasi Expense Tracker kita:
# Struktur data utama: List of Dictionaries
# Setiap dictionary mewakili satu transaksi
history_transaksi = [
{
"id": 1,
"tanggal": "2023-10-01",
"berdasarkan_kategori": "Makanan",
"jumlah": 50000
},
{
"id": 2,
"tanggal": "2023-10-02",
"berdasarkan_kategori": "Transportasi",
"jumlah": 25000
}
]
print(f"Jumlah transaksi tersimpan: {len(history_transaksi)}")
Kesimpulan
Memahami variabel, tipe data, dan cara melakukan konversi tipe data adalah fondasi paling krusial dalam pemrograman. Tanpa pemahaman yang kuat tentang bagaimana data disimpan dan diubah, Anda akan kesulitan saat berhadapan dengan logika bisnis yang kompleks.
Di materi berikutnya, kita akan mulai belajar bagaimana mengelola data ini menggunakan struktur kontrol (if-else dan loops) agar aplikasi kita bisa melakukan perhitungan otomatis!