Python Dasar

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.

Deklarasi Variabel
# 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 float

Tipe 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

Menggunakan type()
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)

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

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

Operator Perbandingan

Operator 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: False

Operator Logika

Operator 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 = True

Operator Assignment

Operator 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.0

String 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 dari User
# 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

  1. Buat variabel untuk menyimpan biodata (nama, NIM, jurusan, IPK)
  2. Print biodata dengan format yang rapi menggunakan f-strings
  3. Buat program kalkulator sederhana dengan 4 operasi dasar
  4. Buat program yang input nilai dan convert ke grade (A/B/C/D/E)
  5. 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)!