🐍 📘 Bagian 1 (Fondasi & Kontrol Alur) • Modul 02 100% Standar Industri & Vokasi

Sintaks Dasar, Variabel & I/O

Aturan indentasi PEP 8, penamaan variabel, input data pengguna dengan input(), formatting output dengan f-string, dan konversi tipe data.

Target Pembelajaran:
  • Memahami aturan blok kode berbasis Indentasi (Whitespace) di Python.
  • Mengetahui konsep variabel sebagai label penunjuk memori (Memory Reference).
  • Menggunakan komentar untuk dokumentasi kode yang bersih.
  • Menggunakan fungsi print() dan membaca masukan pengguna dengan input().

1. Aturan Indentasi (Blok Kode)

Berbeda dengan bahasa C, C++, atau Java yang menggunakan kurung kurawal {} untuk menandai cakupan blok kode (misalnya isi percabangan atau fungsi), Python menggunakan spasi indentasi (whitespace).

Standar resmi komunitas Python (PEP 8) menetapkan penggunaan 4 spasi per level indentasi. Jangan mencampur penggunaan tab dan spasi dalam satu file.

python (contoh_indentasi.py)
nilai = 85

# Tanda titik dua (:) mengawali blok yang diindentasi
if nilai >= 75:
    print("Selamat!")
    print("Anda dinyatakan LULUS.")
else:
    print("Tetap semangat, coba lagi.")

print("Program selesai dieksekusi.")
🔍 Penjelasan Alur Kode di Atas:
  • Baris 1: Variabel nilai diberi nilai integer 85.
  • Baris 4: Statemen if nilai >= 75: diakhiri tanda titik dua (:) yang menandakan dimulainya blok percabangan.
  • Baris 5 & 6: Diberi indentasi 4 spasi ke kanan. Kedua baris ini hanya akan dieksekusi jika kondisi nilai >= 75 bernilai True.
  • Baris 10: Kembali ke kolom paling kiri (tanpa indentasi), sehingga perintah ini berada di luar percabangan dan pasti dieksekusi.

2. Komentar dalam Python

Komentar digunakan untuk memberikan penjelasan pada kode agar mudah dipahami oleh programmer lain. Interpreter Python akan mengabaikan seluruh baris komentar saat program dijalankan.

python
# 1. Komentar Satu Baris (Single Line) menggunakan tanda pagar '#'
kecepatan_maks = 120 # Ini juga komentar di akhir baris

"""
2. Komentar Multi Baris (Docstring)
Dapat menggunakan tiga tanda petik ganda atau tiga tanda petik tunggal.
Biasa digunakan untuk mendokumentasikan modul, class, atau fungsi.
"""
def hitung_diskon(harga, persen):
    """Menghitung nilai potongan harga berdasarkan persentase."""
    return harga * (persen / 100)

3. Variabel & Konsep Model Memori

Model Memori Python: Variabel sebagai Referensi (Label Pointer) ke Objek di Heap Memory.
Gambar 2.1: Model Memori Python: Variabel sebagai Referensi (Label Pointer) ke Objek di Heap Memory.

Di Python, Anda tidak perlu mendeklarasikan tipe data secara manual (seperti int x = 5). Python menggunakan sistem dynamic typing.

💡 Cara Kerja di Balik Layar (Model Referensi Memori): Di Python, variabel bukanlah sebuah "kotak penyimpanan", melainkan sebuah label (tag nama) yang menunjuk ke suatu objek di memori. Ketika Anda menulis a = 10, Python membuat objek integer 10 di memori lalu menempelkan label a ke objek tersebut.

Aturan Wajib Penamaan Variabel (PEP 8):

  • Hanya boleh memuat huruf (a-z, A-Z), angka (0-9), dan garis bawah (_).
  • Harus diawali huruf atau garis bawah, TIDAK boleh diawali angka (contoh: 1nama adalah ❌ SALAH, nama_1 adalah ✔️ BENAR).
  • Bersifat Case-Sensitive (umur, Umur, dan UMUR adalah 3 variabel berbeda).
  • Gunakan gaya snake_case dengan huruf kecil dan pemisah garis bawah untuk variabel & fungsi (contoh: total_harga_belanja).
python
# Deklarasi variabel berbagai tipe
nama_lengkap = "Ahmad Dahlan"  # String (str)
usia = 24                     # Integer (int)
tinggi_badan = 172.5          # Float (float)
is_mahasiswa = True           # Boolean (bool)

# Multiple Assignment
x, y, z = 10, 20, 30
a = b = c = 100

print(nama_lengkap, usia, tinggi_badan, is_mahasiswa)

4. Input dan Output (Interaksi Pengguna)

Siklus Aliran Data Input-Process-Output (IPO) dan Type Casting pada Python.
Gambar 2.2: Siklus Aliran Data Input-Process-Output (IPO) dan Type Casting pada Python.

Format Output Modern dengan f-string

Cara paling bersih dan cepat untuk menggabungkan teks dengan nilai variabel adalah menggunakan Formatted String Literal (f-string) yang diawali huruf f"..." dan variabel diapit kurung kurawal {variabel}.

python (interaksi.py)
# Membaca masukan dari pengguna
nama = input("Masukkan nama Anda: ")
tahun_lahir_str = input("Masukkan tahun kelahiran Anda: ")

# Jebakan pemula: input() SELALU mengembalikan tipe String (str)!
# Wajib di-casting ke int() sebelum operasi matematika
tahun_lahir = int(tahun_lahir_str)
tahun_sekarang = 2026
umur = tahun_sekarang - tahun_lahir

print(f"Halo {nama}, usia Anda di tahun {tahun_sekarang} adalah {umur} tahun.")

5. Jebakan Umum Pemula & Cara Mengatasinya

1. Kesalahan IndentationError: unexpected indent
Penyebab: Ada spasi berlebih atau tidak sengaja meletakkan spasi di awal baris kode normal.
Solusi: Pastikan kode di luar percabangan/fungsi selalu rata di margin paling kiri (kolom 1).
2. Kesalahan TypeError: can only concatenate str (not "int") to str
Penyebab: Menggunakan operator + untuk menggabungkan string dan angka tanpa f-string (misal: "Umur: " + 25).
Solusi: Gunakan f-string f"Umur: {25}" atau lakukan konversi eksplisit str(25).

6. Kuis Pemahaman & Latihan

🧠 Kuis Cepat: Apa output dari kode berikut?
x = input("Angka: ") # Pengguna mengetik 5
print(x * 3)
Klik untuk melihat jawaban & pembahasan
Jawaban: 555
Penjelasan: Karena input() menghasilkan tipe string "5", operator * pada string berfungsi sebagai pengulangan teks (string repetition), bukan perkalian matematika. Jika ingin hasilnya 15, ubah menjadi int(x) * 3.

Tantangan 2: Kalkulator Luas & Keliling Persegi Panjang

Buat program persegi_panjang.py yang meminta masukan panjang dan lebar, kemudian hitung dan cetak:
• Luas: panjang * lebar
• Keliling: 2 * (panjang + lebar)

Tips: Gunakan float(input(...)) agar program dapat menerima angka desimal (contoh panjang 7.5 cm dan lebar 3.2 cm).
📋 Cheat Sheet: Sintaks & Penamaan Variabel
Cheat Sheet
Sintaks / Perintah Keterangan Fungsi
variabel = nilai Menugaskan nilai data ke dalam suatu nama variabel
a, b = 10, 20 Multiple assignment (penugasan banyak variabel sekaligus)
a, b = b, a Simultaneous swap (menukar nilai variabel tanpa variabel temp)
nama_variabel Konvensi snake_case PEP 8 untuk penamaan variabel
4 Spasi (Tab) Standar indentasi resmi Python untuk blok kode
🛠️ Praktikum Terkait

Jobsheet 01: Fondasi, Operator & CLI I/O

Uji pemahaman variabel dan penugasan nilai dengan menyelesaikan studi kasus konversi suhu Celcius ke Reamur & Kelvin.

⚠️ Perangkap Pemula: Case Sensitivity & Aturan Nama Variabel
Waspada Error

Python membedakan huruf besar dan kecil (case sensitive), serta melarang variabel diawali oleh angka atau memuat spasi.

Kode Salah (Memicu Error)
# SyntaxError: invalid decimal literal
1nama_user = "Budi" # Tidak boleh diawali angka

# NameError: name 'Nama' is not defined
nama = "Budi"
print(Nama) # Variabel 'Nama' tidak sama dengan 'nama' 
Solusi Benar & Aman
# Solusi Benar:
nama_user_1 = "Budi" # Angka boleh ditaruh di tengah/akhir

nama = "Budi"
print(nama) # Konsisten dengan huruf kecil
Penyebab & Solusi: Identifier Python peka huruf besar-kecil (nama != Nama). Gunakan format snake_case dengan karakter huruf kecil dan garis bawah (_) sebagai pemisah kata.
💡 Tips Pythonic: Penamaan Variabel & Multiple Assignment
Standar PEP 8

PEP 8 menetapkan standar penamaan variabel yang deskriptif dan cara pertukaran nilai yang elegan tanpa variabel penampung sementara.

Kurang Pythonic (Hindari)
# Kurang Pythonic (Nama samar & swap butuh temp)
p = 10
l = 5

# Menukar nilai variabel p dan l:
temp = p
p = l
l = temp
Pythonic Way (Direkomendasikan)
# Pythonic (PEP 8 snake_case & Simultaneous Swap)
panjang_persegi = 10
lebar_persegi = 5

# Menukar nilai dalam 1 baris bersih:
panjang_persegi, lebar_persegi = lebar_persegi, panjang_persegi
Mengapa teknik ini dianjurkan? Python mendukung tuple unpacking, memungkinkan pertukaran nilai terjadi secara simultan dalam satu baris tanpa memerlukan variabel bantu temp.
🎯

Cek Pemahaman Mandiri

Uji pemahaman Anda terhadap konsep bab ini dengan feedback evaluasi instan.

2 Soal Pilihan Ganda
Q1

Manakah penulisan nama variabel yang VALID dan sesuai konvensi PEP 8 di Python?

💡 Pembahasan: Nama variabel di Python tidak boleh diawali angka (2total), tidak boleh mengandung tanda minus (-), tidak boleh menggunakan kata kunci khusus (seperti class), dan disarankan menggunakan format snake_case.

Q2

Apa yang dimaksud dengan sifat Dynamic Typing pada variabel Python?

💡 Pembahasan: Dynamic typing memungkinkan Python mendeteksi tipe data secara otomatis berdasarkan nilai yang diisikan, dan sebuah variabel bisa diisi ulang dengan tipe data berbeda sewaktu-waktu.