Python Fundamentals: Variabel, Tipe Data, dan Control Flow

Python By TryzTech Team
PythonProgramming FundamentalsBeginnerLearning PathSoftware Development
Bagikan

Python adalah pilihan yang nyaman untuk mulai belajar programming karena sintaksnya relatif bersih. Banyak bagian kodenya dapat dibaca seperti instruksi biasa: simpan nilai, periksa kondisi, ulangi proses, lalu tampilkan hasil.

Artikel ini adalah bagian pertama dari seri Fundamental Python. Kita akan mulai dari dasar yang benar-benar sering dipakai: variabel, tipe data, operator, input/output, if, for, dan while. Targetnya sederhana: setelah selesai, kamu dapat menulis script kecil sendiri dengan lebih percaya diri.

Cara memakai artikel ini

Jangan hanya membaca contoh kodenya. Buat folder latihan, salin satu contoh ke main.py, jalankan, lalu ubah satu bagian kecil. Kamu bisa mengganti nilai age, mengubah kondisi if, atau menambahkan satu baris print().

Cara belajar seperti ini lebih efektif karena kamu langsung melihat hubungan antara kode dan hasilnya. Saat program berjalan, biasakan bertanya: nilai apa yang sedang disimpan, kondisi mana yang bernilai True, dan baris mana yang akan dijalankan berikutnya?

Setup singkat

Gunakan Python versi modern, idealnya Python 3.11 atau lebih baru. Cek versi yang terpasang dengan:

python --version

Di beberapa sistem, command yang digunakan adalah python3:

python3 --version

Python di Linux

Di banyak distro Linux desktop, Python 3 biasanya sudah terpasang karena dipakai oleh tool sistem. Coba cek dengan python3 --version, lalu jalankan file dengan python3 main.py.

Tetap lakukan pengecekan, karena image Linux minimal, container, WSL tertentu, atau distro ringan belum tentu menyertakan Python. Kalau command-nya belum tersedia, pasang paket python3 melalui package manager distro yang kamu pakai.

Instal Python di Windows

Untuk Windows, gunakan installer resmi Python. Ini cara paling sederhana dan sudah cukup untuk semua contoh di seri ini.

  1. Buka python.org/downloads/windows dan unduh installer Python 3 versi stabil terbaru.
  2. Jalankan installer, lalu centang Add Python to PATH di layar pertama. Opsi ini penting supaya command Python dapat dipakai dari terminal.
  3. Pilih Install Now dan tunggu instalasi selesai.
  4. Tutup lalu buka kembali PowerShell atau Command Prompt, kemudian verifikasi instalasinya:
py --version

Kalau muncul versi seperti Python 3.13.x, instalasi sudah berhasil. Di Windows, command py biasanya paling konsisten karena Python Launcher akan memilih instalasi Python yang tersedia.

Untuk membuat folder latihan dari PowerShell:

mkdir python-fundamentals
cd python-fundamentals
code .

Setelah membuat main.py, jalankan dengan:

py main.py

Kalau code . belum dikenali, buka VS Code lalu pilih File > Open Folder dan buka folder python-fundamentals. Untuk materi dasar ini, kamu belum memerlukan Conda, pyenv, atau tool manajemen versi lain.

Untuk latihan awal, kamu cukup menggunakan terminal dan editor seperti VS Code. Buat file main.py, lalu jalankan:

python main.py

Di Windows, kamu juga dapat menjalankannya dengan py main.py.

Kalau command tersebut berhasil, kamu siap lanjut.

Mulai dengan program paling kecil berikut:

# File: 01-hello.py
print("Halo, Python!")

Simpan, lalu jalankan. print() adalah function bawaan Python untuk menampilkan nilai ke terminal. Terminal juga menjadi tempat kamu melihat pesan error, jadi biasakan untuk sering kembali ke sana.

Variabel dan assignment

Variabel adalah nama untuk menyimpan nilai. Di Python, kamu tidak perlu menulis tipe datanya secara eksplisit.

# File: 02-variables.py
name = "Ayu"
age = 21
is_active = True

print(name)
print(age)
print(is_active)

Tanda = berarti assignment: nilai di kanan disimpan ke nama di kiri. Nilai variabel juga dapat diubah:

# File: 03-counter.py
counter = 1
counter = counter + 1

print(counter)  # 2

Gunakan nama variabel yang jelas. total_price jauh lebih mudah dibaca daripada tp, terutama saat kode mulai panjang.

Memahami assignment

Baris total = subtotal + tax bukan persamaan matematika. Python menghitung bagian kanan lebih dulu, lalu menyimpan hasilnya ke nama di kiri. Karena itu, variabel dapat memakai nilai lamanya sendiri untuk membuat nilai baru:

# File: 04-balance-update.py
balance = 100_000
balance = balance - 25_000

print(balance)  # 75000

Pola seperti ini sering dipakai untuk counter, total berjalan, atau status program. Nama variabel Python biasanya memakai snake_case: huruf kecil dengan underscore, misalnya item_count. Hindari nama yang dimulai dengan angka, mengandung spasi, atau menimpa nama bawaan seperti list, str, dan input.

Tipe data dasar

Python punya beberapa tipe data dasar yang akan sering kamu pakai:

# File: 05-basic-data-types.py
quantity = 3              # int
price = 19.99             # float
product = "Keyboard"      # str
is_paid = False           # bool
discount = None           # NoneType

int digunakan untuk angka bulat, float untuk angka desimal, str untuk teks, bool untuk nilai benar/salah, dan None untuk nilai kosong atau belum ada.

Kamu bisa mengecek tipe data dengan type():

# File: 06-check-types.py
print(type(quantity))
print(type(product))

Python memang fleksibel, tetapi tipe data tetap penting. Banyak error pemula muncul karena angka dan teks dicampur tanpa konversi.

Konversi tipe data dengan sengaja

Kadang data perlu diubah bentuknya. Gunakan int(), float(), atau str() secara eksplisit supaya maksud kode tetap jelas.

# File: 07-type-conversion.py
quantity_text = "3"
quantity = int(quantity_text)
price = float("19.99")

print(quantity * 2)  # 6
print(f"Harga: {price}")

Tidak semua teks bisa diubah menjadi angka. int("tiga") akan gagal karena Python tidak bisa menebak angka yang dimaksud. None juga berbeda dari string kosong atau nol; biasanya artinya “belum ada nilai”.

# File: 08-none-value.py
selected_coupon = None

if selected_coupon is None:
    print("Belum ada kupon yang dipilih")

String dan f-string

String adalah teks. Kamu bisa memakai petik satu atau petik dua.

# File: 09-strings.py
first_name = "Ayu"
last_name = "Pratama"

Untuk menggabungkan teks dan variabel, gunakan f-string:

# File: 10-f-string.py
message = f"Hello, {first_name} {last_name}!"
print(message)

F-string biasanya lebih rapi daripada menyambung banyak string dengan +.

Kamu juga bisa memasukkan ekspresi sederhana ke dalam f-string dan membersihkan teks dengan method string:

# File: 11-string-methods.py
price = 25_000
quantity = 2
raw_name = "  Ayu  "

print(f"Total: {price * quantity}")
print(raw_name.strip().upper())  # AYU

strip() membuang spasi di awal/akhir teks, lower() membuat huruf kecil, dan upper() membuat huruf besar. Method string menghasilkan nilai baru, jadi simpan hasilnya kalau ingin dipakai lagi: name = raw_name.strip().

Operator dasar

Operator arithmetic dipakai untuk perhitungan:

# File: 12-subtotal.py
subtotal = 100_000
tax = 10_000
total = subtotal + tax

print(total)

Beberapa operator penting:

# File: 13-arithmetic-operators.py
print(10 + 3)  # 13
print(10 - 3)  # 7
print(10 * 3)  # 30
print(10 / 3)  # 3.333...
print(10 // 3) # 3
print(10 % 3)  # 1
print(10 ** 3) # 1000

Cara membacanya:

  • + untuk penjumlahan. Pada string, operator ini juga bisa menyambung teks, tetapi jangan mencampur string dan angka tanpa konversi.
  • - untuk pengurangan. Ini sering dipakai untuk menghitung sisa saldo atau mengurangi stok.
  • * untuk perkalian, misalnya harga satu barang dikali jumlah barang.
  • / untuk pembagian biasa. Hasilnya selalu float, jadi 10 / 2 menghasilkan 5.0.
  • // untuk pembagian bulat atau floor division. 10 // 3 menghasilkan 3.
  • % untuk modulo atau sisa pembagian. Ini berguna untuk mengecek genap/ganjil: number % 2 == 0.
  • ** untuk perpangkatan. 10 ** 3 berarti 10 x 10 x 10.

// dan % sering dipakai bersama. Misalnya, mengubah total menit menjadi jam dan menit sisa:

# File: 14-minutes-to-hours.py
total_minutes = 135
hours = total_minutes // 60
minutes = total_minutes % 60

print(f"{hours} jam {minutes} menit")  # 2 jam 15 menit

Untuk uang atau nilai yang membutuhkan ketelitian desimal, ingat bahwa float bisa menampilkan pecahan panjang karena cara komputer menyimpan angka. Untuk latihan dasar, float sudah cukup. Untuk uang sungguhan, biasanya lebih aman memakai satuan integer terkecil seperti rupiah, atau belajar Decimal.

Operator comparison menghasilkan True atau False:

# File: 15-comparison-operators.py
score = 85

print(score >= 80)  # True
print(score == 100) # False
print(score != 0)   # True

Operator logical dipakai untuk menggabungkan kondisi:

# File: 16-logical-operators.py
age = 20
has_ticket = True

can_enter = age >= 18 and has_ticket
print(can_enter)

Gunakan and jika semua kondisi harus benar, or jika salah satu kondisi cukup benar, dan not untuk membalik nilai boolean.

Urutan operasi juga berpengaruh. Perkalian dan pembagian dikerjakan sebelum penjumlahan dan pengurangan. Pakai tanda kurung jika maksud perhitungannya perlu dibuat lebih jelas.

# File: 17-operator-precedence.py
price = 50_000
quantity = 2
discount = 10_000

total = (price * quantity) - discount
print(total)  # 90000

Untuk memperbarui angka, counter += 1 adalah versi singkat dari counter = counter + 1.

Input dan output

Untuk menampilkan output, gunakan print().

# File: 18-welcome.py
print("Welcome to Python")

Untuk menerima input dari user, gunakan input().

# File: 19-user-input.py
name = input("Name: ")
print(f"Hello, {name}")

Nilai dari input() selalu berupa string. Kalau membutuhkan angka, lakukan konversi lebih dulu:

# File: 20-input-to-number.py
age_text = input("Age: ")
age = int(age_text)

print(age + 1)

Kalau user mengetik teks yang bukan angka, int() akan error. Di artikel berikutnya, kita akan membahas error handling dengan lebih aman.

Sebelum konversi, bersihkan spasi yang mungkin tidak sengaja diketik user. Untuk tahap awal, pisahkan prosesnya: ambil input, ubah ke tipe yang benar, lalu pakai nilainya. Bentuk ini sedikit lebih panjang, tetapi jauh lebih mudah dicek saat hasilnya keliru.

# File: 21-clean-input.py
name = input("Name: ").strip()
city = input("City: ").strip().title()

print(f"{name} lives in {city}")

Control flow dengan if

Program jarang berjalan lurus dari atas ke bawah tanpa keputusan. Untuk membuat percabangan, gunakan if, elif, dan else.

# File: 22-grade-conditions.py
score = 85

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
else:
    grade = "Needs review"

print(grade)

Perhatikan indentation. Di Python, spasi bukan sekadar gaya; spasi menentukan blok kode. Umumnya, gunakan 4 spasi untuk satu level indentation.

Python memeriksa kondisi dari atas ke bawah dan menjalankan blok pertama yang cocok. Karena itu, urutan kondisi penting. Contoh berikut salah: nilai 95 sudah masuk ke kondisi pertama, sehingga blok A tidak pernah tercapai.

# File: 23-condition-order-bug.py
if score >= 70:
    grade = "C"
elif score >= 90:
    grade = "A"

Tulis batas tertinggi lebih dulu. Kamu juga bisa memeriksa rentang dengan if 13 <= age <= 17:. Kalau hasil conditional terasa aneh, cetak nilai yang diperiksa, lalu baca kondisi dari atas ke bawah.

Loop dengan for

for dipakai untuk mengulang item dalam collection atau rentang angka.

# File: 24-greet-names.py
names = ["Ayu", "Budi", "Citra"]

for name in names:
    print(f"Hello, {name}")

Untuk mengulang angka, gunakan range():

# File: 25-range-loop.py
for number in range(1, 6):
    print(number)

Kode di atas mencetak angka 1 sampai 5. Batas akhir range() tidak ikut dihitung.

range() mengikuti pola range(mulai, berhenti, langkah). Parameter langkah berguna untuk menghitung mundur atau melompati angka.

# File: 26-countdown.py
for number in range(10, 0, -2):
    print(number)  # 10, 8, 6, 4, 2

Gunakan enumerate() kalau kamu membutuhkan nomor urut dan nilai item sekaligus.

# File: 27-enumerate-tasks.py
tasks = ["Belajar", "Istirahat", "Latihan"]

for index, task in enumerate(tasks, start=1):
    print(f"{index}. {task}")

List akan dibahas lebih dalam di artikel kedua. Untuk sekarang, anggap tasks sebagai kumpulan nilai yang bisa dilewati satu per satu.

Loop dengan while

while berjalan selama kondisinya masih benar.

# File: 28-while-counter.py
counter = 1

while counter <= 5:
    print(counter)
    counter = counter + 1

Hati-hati dengan infinite loop. Pastikan ada bagian kode yang pada akhirnya membuat kondisi menjadi False.

while cocok saat jumlah pengulangan belum diketahui. Misalnya, kamu bisa meminta jawaban sampai user memberikan input yang diterima.

# File: 29-while-until-yes.py
answer = ""

while answer != "yes":
    answer = input("Type yes to continue: ").strip().lower()

print("Continuing...")

Gunakan for saat jumlah item atau rentangnya sudah jelas. Gunakan while saat pengulangan bergantung pada kondisi yang berubah.

Mini project: grade checker

Sekarang kita gabungkan variabel, input, konversi tipe data, conditional, dan output.

# File: 30-grade-checker-basic.py
name = input("Name: ")
score = int(input("Score: "))

if score >= 80:
    result = "pass"
else:
    result = "review again"

print(f"{name}: {result}")

Versi yang sedikit lebih lengkap:

# File: 31-grade-checker.py
name = input("Name: ")
score = int(input("Score: "))

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
else:
    grade = "D"

print(f"{name} got grade {grade}")

Script kecil seperti ini sudah memakai pola yang sama dengan program besar: ambil input, proses data, tentukan keputusan, lalu tampilkan hasil.

Versi berikut menambahkan validasi rentang nilai. Alurnya seperti ini: program menerima input, while menjaga skor tetap berada di rentang yang masuk akal, lalu rangkaian if memilih satu grade.

# File: 32-grade-checker-validation.py
name = input("Name: ").strip()
score = int(input("Score (0-100): "))

while score < 0 or score > 100:
    print("Score must be between 0 and 100.")
    score = int(input("Score (0-100): "))

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "F"

print(f"{name} got grade {grade}.")

Program ini masih berhenti kalau user mengetik huruf untuk skor. Itu masih wajar untuk materi pertama; nanti kita perbaiki dengan exception handling.

Kesalahan umum pemula

Kesalahan pertama: lupa bahwa input() menghasilkan string.

# File: 33-input-string-bug.py
age = input("Age: ")
print(age + 1)  # error

Perbaiki dengan int():

# File: 34-input-number.py
age = int(input("Age: "))
print(age + 1)

Kesalahan kedua: memakai = untuk comparison.

# File: 35-assignment-comparison-bug.py
if score = 80:
    print("pass")

Untuk membandingkan nilai, gunakan ==:

# File: 36-equality-comparison.py
if score == 80:
    print("exactly 80")

Kesalahan ketiga: indentation tidak konsisten. Pilih 4 spasi dan gunakan secara konsisten.

Kesalahan keempat: membandingkan teks dengan angka, atau mengira Python akan mengubah tipe data secara otomatis.

# File: 37-string-number-comparison-bug.py
score = input("Score: ")
print(score >= 80)  # error: score masih berupa str

Konversi nilainya sebelum dibandingkan: score = int(input("Score: ")).

Latihan mini

Coba kerjakan latihan berikut:

  • Buat script yang menerima nama produk, harga, dan jumlah, lalu mencetak total.
  • Buat script yang mengecek apakah angka termasuk genap atau ganjil.
  • Buat loop yang mencetak angka 1 sampai 20, tapi hanya angka yang habis dibagi 3.
  • Buat grade checker dengan kategori A, B, C, D, dan F.

Jangan buru-buru mencari solusi. Ketik sendiri, jalankan, baca error-nya, lalu perbaiki pelan-pelan. Skill debugging tumbuh dari latihan kecil seperti ini.

Saat mengecek latihanmu, tanyakan: apakah nama variabel sudah jelas, apakah input angka sudah dikonversi, apakah nilai batas seperti 0 dan 80 sudah dicoba, dan apakah loop pasti punya jalan berhenti? Kode yang jelas lebih berharga daripada kode yang terlihat pintar.

Lanjut ke functions dan struktur data

Setelah dasar ini terasa nyaman, langkah berikutnya adalah menulis kode yang lebih rapi dengan function dan struktur data seperti list, tuple, dictionary, dan set. Lanjutkan ke Python Functions dan Struktur Data untuk mulai memecah logic menjadi bagian yang lebih mudah dipakai ulang.

Kalau kamu ingin melihat Python dipakai untuk web, simpan juga artikel Build a Website with Flask sebagai jalur lanjutan setelah fundamentalnya lebih kuat.

Lanjutkan membaca topik yang masih satu konteks.

Jangan Ketinggalan Info Terbaru

Dapatkan artikel teknologi, tips, dan insights menarik langsung ke email Kamu.