Variabel & Tipe Data
Memahami variabel, tipe data, operator, dan input/output dalam Python
Variabel di Python
Variabel adalah container untuk menyimpan nilai data. Di Python, Kalian tidak perlu mendeklarasikan tipe variabel secara eksplisit.
# Python adalah dynamically typed
nama = "Budi Santoso" # string
usia = 20 # integer
tinggi = 175.5 # float
is_mahasiswa = True # boolean
# Menampilkan nilai variabel
print("Nama:", nama)
print("Usia:", usia, "tahun")
print("Tinggi:", tinggi, "cm")
print("Status mahasiswa:", is_mahasiswa)Dynamic Typing
Python menentukan tipe data secara otomatis berdasarkan nilai yang diberikan. Variabel bisa berganti tipe data:
x = 5 # x adalah integer
x = "Python" # sekarang x adalah string
x = 3.14 # sekarang x adalah floatTipe Data Dasar
Python memiliki beberapa tipe data built-in:
# Integer - bilangan bulat
angka_bulat = 100
negatif = -50
besar = 1_000_000 # Underscore untuk readability
# Float - bilangan desimal
desimal = 3.14
ilmiah = 2.5e-3 # 0.0025 dalam notasi ilmiah
# Complex - bilangan kompleks
kompleks = 3 + 4j# String dengan single atau double quotes
nama = "Budi"
kota = 'Jakarta'
# Multi-line string
alamat = """
Jl. Pendidikan No. 1
Kota Jakarta
12345
"""
# String operations
pesan = "Hello" + " " + "World" # Concatenation
ulang = "Ha" * 3 # "HaHaHa"
panjang = len("Python") # 6# Boolean values
benar = True
salah = False
# Boolean operations
hasil1 = True and False # False
hasil2 = True or False # True
hasil3 = not True # False
# Comparison menghasilkan boolean
lebih_besar = 10 > 5 # True
sama_dengan = 5 == 5 # True# None menandakan tidak ada nilai
data = None
if data is None:
print("Data kosong")
# Sering digunakan sebagai default value
def fungsi(param=None):
if param is None:
param = "default"Memeriksa Tipe Data
nama = "Budi"
usia = 20
tinggi = 175.5
aktif = True
print("Tipe data nama:", type(nama)) # <class 'str'>
print("Tipe data usia:", type(usia)) # <class 'int'>
print("Tipe data tinggi:", type(tinggi)) # <class 'float'>
print("Tipe data aktif:", type(aktif)) # <class 'bool'>Konversi Tipe Data (Type Casting)
# String ke Number
angka_str = "123"
angka_int = int(angka_str) # 123
angka_float = float(angka_str) # 123.0
# Number ke String
usia = 20
usia_str = str(usia) # "20"
# Float ke Integer (menghilangkan desimal)
nilai = 85.7
nilai_bulat = int(nilai) # 85
# String ke Boolean (non-empty string = True)
bool("Python") # True
bool("") # False
bool("False") # True (string "False" tetap True!)Type Casting Warning
Hati-hati saat convert string ke number. Jika string tidak berisi angka valid, akan terjadi error:
int("abc") # ValueError!
float("12.5") # OK: 12.5
int("12.5") # ValueError! (gunakan float() dulu)Operator
Operator Aritmatika
a = 10
b = 3
print("a + b =", a + b) # Penjumlahan: 13
print("a - b =", a - b) # Pengurangan: 7
print("a * b =", a * b) # Perkalian: 30
print("a / b =", a / b) # Pembagian: 3.3333...
print("a // b =", a // b) # Pembagian bulat: 3
print("a % b =", a % b) # Modulo (sisa): 1
print("a ** b =", a ** b) # Pangkat: 1000Operator Perbandingan
x = 10
y = 5
print("x == y:", x == y) # Sama dengan: False
print("x != y:", x != y) # Tidak sama: True
print("x > y:", x > y) # Lebih besar: True
print("x < y:", x < y) # Lebih kecil: False
print("x >= y:", x >= y) # Lebih besar/sama: True
print("x <= y:", x <= y) # Lebih kecil/sama: FalseOperator Logika
p = True
q = False
print("p and q:", p and q) # AND: False
print("p or q:", p or q) # OR: True
print("not p:", not p) # NOT: False
# Kombinasi
hasil = (5 > 3) and (10 < 20) # True and True = TrueOperator Assignment
x = 10
# Assignment operators
x += 5 # x = x + 5 → 15
x -= 3 # x = x - 3 → 12
x *= 2 # x = x * 2 → 24
x /= 4 # x = x / 4 → 6.0
x //= 2 # x = x // 2 → 3.0
x %= 2 # x = x % 2 → 1.0String Formatting
Python menyediakan beberapa cara untuk format string:
# f-strings - cara paling modern dan recommended
nama = "Budi"
usia = 20
# Basic f-string
pesan = f"Nama saya {nama} dan umur saya {usia} tahun"
# Dengan expression
print(f"Tahun lahir: {2024 - usia}")
# Formatting numbers
harga = 15000.5
print(f"Harga: Rp {harga:,.2f}") # Rp 15,000.50
# Alignment
print(f"{'Kiri':<10}|") # Left align
print(f"{'Tengah':^10}|") # Center
print(f"{'Kanan':>10}|") # Right align# format() method
nama = "Budi"
usia = 20
pesan = "Nama: {}, Usia: {}".format(nama, usia)
pesan2 = "Nama: {0}, Usia: {1}".format(nama, usia)
pesan3 = "Nama: {n}, Usia: {u}".format(n=nama, u=usia)
print(pesan)# Old style % formatting (deprecated)
nama = "Budi"
usia = 20
pesan = "Nama: %s, Usia: %d" % (nama, usia)
print(pesan)f-strings Recommended
f-strings adalah cara paling modern, readable, dan performant untuk string formatting di Python. Gunakan f-strings untuk code baru!
Input dan Output
# input() selalu mengembalikan string
nama = input("Masukkan nama Anda: ")
print(f"Halo, {nama}!")
# Convert input ke tipe data lain
usia = int(input("Masukkan usia Anda: "))
tinggi = float(input("Masukkan tinggi (cm): "))
print(f"Nama: {nama}")
print(f"Usia: {usia} tahun")
print(f"Tinggi: {tinggi} cm")
# Multiple inputs in one line
nilai1, nilai2 = input("Masukkan 2 angka (pisah spasi): ").split()
nilai1 = int(nilai1)
nilai2 = int(nilai2)Naming Conventions
Python memiliki konvensi penamaan yang sebaiknya diikuti:
# Good - snake_case untuk variables dan functions
nama_lengkap = "Budi Santoso"
nilai_akhir = 85.5
jumlah_mahasiswa = 30
# Bad - camelCase tidak direkomendasikan untuk Python
namaLengkap = "Budi"
# Constants - UPPER_CASE
PI = 3.14159
MAX_USERS = 100
DEFAULT_TIMEOUT = 30
# Variable names harus:
# - Dimulai dengan huruf atau underscore
# - Hanya berisi huruf, angka, dan underscore
# - Case sensitive (nama ≠ Nama ≠ NAMA)Reserved Keywords
Jangan gunakan Python keywords sebagai nama variabel: if, for, while, def, class, return, True, False, None, dll.
# Salah
class = "Informatika" # Error! 'class' adalah keyword
# Benar
kelas = "Informatika"Latihan
- Buat variabel untuk menyimpan biodata (nama, NIM, jurusan, IPK)
- Print biodata dengan format yang rapi menggunakan f-strings
- Buat program kalkulator sederhana dengan 4 operasi dasar
- Buat program yang input nilai dan convert ke grade (A/B/C/D/E)
- Eksperimen dengan berbagai operator dan type casting
Apa Selanjutnya?
Setelah memahami variabel dan tipe data, kita akan belajar tentang Struktur Kendali (if-else dan loops)!
