1. Pengenalan Python
Python adalah bahasa pemrograman tingkat tinggi yang dikembangkan oleh Guido van Rossum dan pertama kali dirilis pada tahun 1991. Python dirancang dengan filosofi yang mengutamakan keterbacaan kode (readability), sehingga sangat cocok untuk pemula yang baru memulai belajar pemrograman.
Python digunakan secara luas di berbagai bidang seperti pengembangan web, data science, kecerdasan buatan (AI), otomasi, scripting, game development, dan masih banyak lagi. Popularitasnya terus meningkat dan saat ini menjadi salah satu bahasa pemrograman paling populer di dunia.
Mengapa Memilih Python?
| Keunggulan | Penjelasan |
|---|---|
| Sintaks Sederhana | Python menggunakan sintaks yang mirip bahasa Inggris, mudah dibaca dan ditulis |
| Multipurpose | Bisa digunakan untuk web, AI, data science, otomasi, game, dan IoT |
| Komunitas Besar | Jutaan developer aktif, dokumentasi lengkap, ribuan library tersedia |
| Cross-Platform | Bisa dijalankan di Windows, macOS, dan Linux tanpa modifikasi |
| Interpreted | Tidak perlu compile, kode langsung dieksekusi baris per baris |
| Gratis & Open Source | Bisa digunakan dan didistribusikan secara bebas |
Python vs Bahasa Lain
| Aspek | Python | JavaScript | Java |
|---|---|---|---|
| Tipe | Interpreted | Interpreted (JIT) | Compiled + Interpreted |
| Typing | Dynamic | Dynamic | Static |
| Sintaks | π’ Sangat Mudah | π‘ Sedang | π΄ Verbose |
| Kecepatan | π‘ Sedang | π‘ Sedang | π’ Cepat |
| Cocok untuk | AI, Data, Otomasi | Web Frontend | Enterprise, Android |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β EKOSISTEM PYTHON β β β β ββββββββββββ ββββββββββββ ββββββββββββββββββββ β β β Web Dev β βData Sci. β β AI / Machine β β β β Django β β Pandas β β Learning β β β β Flask β β NumPy β β TensorFlow β β β β FastAPI β β Matplotlibβ β PyTorch β β β ββββββββββββ ββββββββββββ ββββββββββββββββββββ β β β β ββββββββββββ ββββββββββββ ββββββββββββββββββββ β β β Otomasi β β Game Dev β β IoT & Embedded β β β β Selenium β β Pygame β β MicroPython β β β β Scriptingβ β Godot β β Raspberry Pi β β β ββββββββββββ ββββββββββββ ββββββββββββββββββββ β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2. Instalasi Python
Python bisa diinstal di semua sistem operasi utama. Berikut panduan instalasi untuk masing-masing platform.
Instalasi di Windows
# 1. Kunjungi https://www.python.org/downloads/ # 2. Download installer terbaru (Python 3.12+) # 3. Jalankan installer, PASTIKAN centang "Add Python to PATH" # 4. Klik "Install Now" # Verifikasi instalasi di Command Prompt / PowerShell: python --version # Output: Python 3.12.4 pip --version # Output: pip 24.0 from ... (python 3.12) # Atau gunakan Microsoft Store: # Buka Microsoft Store β cari "Python 3.12" β Install
Instalasi di macOS
# macOS sudah memiliki Python bawaan, tapi sebaiknya instal versi terbaru # Gunakan Homebrew: # Instal Homebrew (jika belum punya): /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # Instal Python: brew install python # Verifikasi: python3 --version # Output: Python 3.12.4 pip3 --version
Instalasi di Linux (Ubuntu/Debian)
# Update package manager terlebih dahulu sudo apt update && sudo apt upgrade -y # Instal Python 3 dan pip sudo apt install python3 python3-pip python3-venv -y # Verifikasi: python3 --version # Output: Python 3.12.3 pip3 --version
Menulis Program Python Pertama
# File: hello.py
print("Halo, dunia!")
print("Selamat datang di Python!")
print("Nama saya: BeebaneLabs")
# Menjalankan dari terminal:
# python hello.py
#
# Output:
# Halo, dunia!
# Selamat datang di Python!
# Nama saya: BeebaneLabs
Python Interactive Mode (REPL)
# Buka terminal, ketik "python" atau "python3" untuk masuk REPL
# Python 3.12.4 (default, Jun 6 2024)
# >>> print("Hello!")
# Hello!
# >>> 2 + 3
# 5
# >>> "Python" * 3
# 'PythonPythonPython'
# >>> exit() # Keluar dari REPL
Selalu gunakan Python 3 (bukan Python 2 yang sudah tidak didukung). Python 2 sudah resmi dihentikan sejak Januari 2020. Pastikan juga untuk centang opsi "Add Python to PATH" saat instalasi di Windows agar bisa menjalankan python dari mana saja.
3. Variabel dan Tipe Data
Variabel adalah wadah untuk menyimpan data. Di Python, Anda tidak perlu mendeklarasikan tipe data secara eksplisit β Python akan mendeteksinya secara otomatis (dynamic typing).
Mendeklarasikan Variabel
# Deklarasi variabel sederhana
nama = "Budi Santoso" # string
umur = 25 # integer
tinggi = 175.5 # float
is_active = True # boolean
# Menampilkan nilai variabel
print(nama) # Budi Santoso
print(f"Umur: {umur} tahun") # Umur: 25 tahun
# Python bisa mengubah tipe variabel secara dinamis
x = 10 # x adalah integer
x = "sekarang string" # x sekarang string β tidak masalah!
# Multiple assignment
a, b, c = 1, 2, 3
print(a, b, c) # 1 2 3
# Satu nilai untuk beberapa variabel
x = y = z = 0
print(x, y, z) # 0 0 0
# Aturan penamaan variabel:
# β
nama_lengkap, umur_pengguna, _private, jumlah2
# β 2angka, nama-lengkap, class, def (reserved words)
Tipe Data Dasar
| Tipe | Contoh | Penjelasan |
|---|---|---|
int | 42, -10, 0 | Bilangan bulat (integer) |
float | 3.14, -0.5, 2.0 | Bilangan desimal (floating point) |
str | "hello", 'world' | String / teks |
bool | True, False | Boolean / logika benar-salah |
None | None | Tipe kosong (null) |
list | [1, 2, 3] | Kumpulan data terurut (mutable) |
tuple | (1, 2, 3) | Kumpulan data terurut (immutable) |
dict | {"a": 1} | Key-value pairs |
set | {1, 2, 3} | Kumpulan unik tanpa urutan |
Konversi Tipe Data (Casting)
# Konversi tipe data
angka_str = "42"
angka_int = int(angka_str) # String β Integer: 42
angka_float = float(angka_str) # String β Float: 42.0
# Integer β String
umur = 25
umur_str = str(umur) # "25"
# Float β Integer (membulatkan ke bawah)
pi = 3.14159
pi_int = int(pi) # 3
# Input dari pengguna (selalu menghasilkan string)
nama = input("Masukkan nama: ") # hasilnya string
umur = int(input("Masukkan umur: ")) # konversi ke int
# Cek tipe data dengan type()
print(type(42)) # <class 'int'>
print(type("hello")) # <class 'str'>
print(type(3.14)) # <class 'float'>
print(type(True)) # <class 'bool'>
# isinstance() β cek tipe dengan lebih fleksibel
print(isinstance(42, int)) # True
print(isinstance("hi", (str, int))) # True (cek beberapa tipe)
4. Operator
Python menyediakan berbagai jenis operator untuk melakukan operasi terhadap data.
Operator Aritmatika
# Operator aritmatika dasar a, b = 15, 4 print(a + b) # 19 (penjumlahan) print(a - b) # 11 (pengurangan) print(a * b) # 60 (perkalian) print(a / b) # 3.75 (pembagian, selalu float) print(a // b) # 3 (pembagian bulat) print(a % b) # 3 (modulus/sisa bagi) print(a ** b) # 50625 (pangkat: 15^4) # Shortcut assignment x = 10 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
Operator Perbandingan dan Logika
# Operator perbandingan β menghasilkan boolean (True/False)
x, y = 10, 20
print(x == y) # False (sama dengan)
print(x != y) # True (tidak sama)
print(x > y) # False (lebih besar)
print(x < y) # True (lebih kecil)
print(x >= 10) # True (lebih besar atau sama)
print(x <= 5) # False (lebih kecil atau sama)
# Operator logika β menggabungkan kondisi
umur = 25
punya_sim = True
# AND β kedua kondisi harus True
bisa_mengemudi = umur >= 17 and punya_sim
print(bisa_mengemudi) # True
# OR β salah satu kondisi harus True
print(umur < 18 or punya_sim) # True
# NOT β membalik nilai boolean
print(not punya_sim) # False
# Operator keanggotaan
buah = ["apel", "mangga", "jeruk"]
print("apel" in buah) # True
print("pisang" not in buah) # True
# Operator identitas
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a == b) # True (nilai sama)
print(a is b) # False (objek berbeda)
print(a is c) # True (objek sama)
5. Kontrol Alur
Kontrol alur menentukan urutan eksekusi program. Python menggunakan indentasi (spasi/tab) untuk menandai blok kode, bukan kurung kurawal seperti bahasa lain.
If-Elif-Else
# Percabangan sederhana
umur = 20
if umur >= 18:
print("Kamu sudah dewasa")
elif umur >= 13:
print("Kamu remaja")
else:
print("Kamu masih anak-anak")
# Nested if
nilai = 85
huruf = ""
if nilai >= 60:
if nilai >= 85:
huruf = "A"
elif nilai >= 75:
huruf = "B"
else:
huruf = "C"
else:
huruf = "D"
print(f"Nilai: {nilai}, Huruf: {huruf}") # Nilai: 85, Huruf: A
# Ternary expression (one-liner)
status = "Lulus" if nilai >= 60 else "Tidak Lulus"
print(status) # Lulus
For Loop
# For loop dengan range
for i in range(5):
print(f"Iterasi ke-{i}")
# Output: 0, 1, 2, 3, 4
# range(start, stop, step)
for i in range(2, 10, 2):
print(i, end=" ") # 2 4 6 8
# For loop dengan list
buah = ["apel", "mangga", "jeruk", "pisang"]
for item in buah:
print(f"Saya suka {item}")
# For loop dengan enumerate (dapat index + value)
for index, item in enumerate(buah):
print(f"{index + 1}. {item}")
# 1. apel
# 2. mangga
# 3. jeruk
# 4. pisang
# List comprehension (cara cepat buat list)
kuadrat = [x**2 for x in range(1, 6)]
print(kuadrat) # [1, 4, 9, 16, 25]
# List comprehension dengan kondisi
genap = [x for x in range(20) if x % 2 == 0]
print(genap) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
While Loop
# While loop β berjalan selama kondisi True
hitungan = 0
while hitungan < 5:
print(f"Hitungan: {hitungan}")
hitungan += 1
# While True dengan break
while True:
teks = input("Ketik 'quit' untuk keluar: ")
if teks == "quit":
print("Sampai jumpa!")
break
print(f"Kamu mengetik: {teks}")
# While dengan continue
angka = 0
while angka < 10:
angka += 1
if angka % 3 == 0:
continue # Lewati angka kelipatan 3
print(angka, end=" ") # 1 2 4 5 7 8 10
Pastikan kondisi while loop selalu bisa menjadi False. Infinite loop (loop tak terbatas) bisa membuat program hang. Selalu pastikan ada perubahan pada variabel kondisi atau break di dalam loop.
6. Fungsi
Fungsi adalah blok kode yang dapat digunakan berulang kali. Fungsi membantu mengorganisir kode, menghindari duplikasi, dan membuat program lebih mudah dipahami.
Mendefinisikan dan Memanggil Fungsi
# Fungsi sederhana tanpa parameter
def sapa():
print("Halo! Selamat datang!")
sapa() # Halo! Selamat datang!
# Fungsi dengan parameter
def sapa_nama(nama):
print(f"Halo, {nama}! Selamat datang!")
sapa_nama("Budi") # Halo, Budi! Selamat datang!
sapa_nama("Sari") # Halo, Sari! Selamat datang!
# Fungsi dengan return value
def tambah(a, b):
return a + b
hasil = tambah(5, 3)
print(hasil) # 8
# Fungsi dengan multiple return
def hitung_luas_keliling(panjang, lebar):
luas = panjang * lebar
keliling = 2 * (panjang + lebar)
return luas, keliling
luas, keliling = hitung_luas_keliling(10, 5)
print(f"Luas: {luas}, Keliling: {keliling}") # Luas: 50, Keliling: 30
# Fungsi dengan default parameter
def buat_profil(nama, umur=18, kota="Jakarta"):
return {"nama": nama, "umur": umur, "kota": kota}
print(buat_profil("Andi")) # Semua default
print(buat_profil("Sari", 25)) # Custom umur
print(buat_profil("Budi", 30, "Bandung")) # Custom semua
Args dan Kwargs
# *args β menerima jumlah argumen tak terbatas (positional)
def jumlahkan(*args):
total = 0
for angka in args:
total += angka
return total
print(jumlahkan(1, 2, 3)) # 6
print(jumlahkan(1, 2, 3, 4, 5)) # 15
# **kwargs β menerima keyword arguments tak terbatas
def buat_user(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
buat_user(nama="Budi", umur=25, role="Admin")
# nama: Budi
# umur: 25
# role: Admin
# Lambda β fungsi satu baris
kali_dua = lambda x: x * 2
print(kali_dua(5)) # 10
kuadrat = lambda x: x ** 2
print(kuadrat(4)) # 16
# Lambda dengan sort
siswa = [("Budi", 85), ("Ani", 92), ("Dimas", 78)]
siswa.sort(key=lambda x: x[1], reverse=True)
print(siswa) # [('Ani', 92), ('Budi', 85), ('Dimas', 78)]
Scope (Cakupan Variabel)
# Variabel global vs lokal
pesan = "Ini global" # Global scope
def ubah_pesan():
pesan = "Ini lokal" # Local scope
print(pesan)
ubah_pesan() # Ini lokal
print(pesan) # Ini global (tidak berubah)
# Gunakan 'global' untuk mengubah variabel global
counter = 0
def tambah_counter():
global counter
counter += 1
tambah_counter()
tambah_counter()
print(counter) # 2
7. List dan Tuple
List dan Tuple adalah struktur data yang menyimpan kumpulan item secara berurutan. Perbedaannya: list bisa diubah (mutable), sedangkan tuple tidak bisa diubah (immutable).
Operasi List
# Membuat list
buah = ["apel", "mangga", "jeruk", "pisang"]
angka = [10, 20, 30, 40, 50]
campur = [1, "dua", 3.0, True, None] # Boleh campur tipe
# Mengakses elemen (index dimulai dari 0)
print(buah[0]) # apel
print(buah[-1]) # pisang (elemen terakhir)
print(buah[1:3]) # ['mangga', 'jeruk'] (slicing)
# Mengubah elemen
buah[0] = "anggur"
print(buah) # ['anggur', 'mangga', 'jeruk', 'pisang']
# Menambah elemen
buah.append("durian") # Tambah di akhir
buah.insert(1, "strawberry") # Tambah di index 1
buah.extend(["kiwi", "manggis"]) # Tambah beberapa sekaligus
# Menghapus elemen
buah.remove("mangga") # Hapus berdasarkan nilai
buah.pop() # Hapus elemen terakhir
del buah[0] # Hapus berdasarkan index
# Method berguna lainnya
print(len(buah)) # Jumlah elemen
print(buah.count("apel")) # Hitung kemunculan
buah.sort() # Urutkan (in-place)
buah.reverse() # Balik urutan
buah.clear() # Kosongkan list
# List Operations
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b # Gabung: [1, 2, 3, 4, 5, 6]
d = a * 3 # Ulangi: [1, 2, 3, 1, 2, 3, 1, 2, 3]
print(3 in a) # True (cek keanggotaan)
Tuple
# Tuple β tidak bisa diubah setelah dibuat
koordinat = (10.5, 20.3)
warna_rgb = (255, 128, 0)
# Mengakses elemen (sama seperti list)
print(koordinat[0]) # 10.5
print(koordinat[-1]) # 20.3
# Tuple unpacking
x, y = koordinat
print(f"X: {x}, Y: {y}") # X: 10.5, Y: 20.3
# β Tuple TIDAK BISA diubah
# koordinat[0] = 5.0 β Error! TypeError
# Kapan pakai tuple?
# - Data yang tidak berubah (koordinat, RGB, konfigurasi)
# - Lebih cepat dari list
# - Bisa jadi key dictionary (list tidak bisa)
# Named tuple β tuple dengan nama field
from collections import namedtuple
Mahasiswa = namedtuple('Mahasiswa', ['nama', 'nim', 'ipk'])
mhs1 = Mahasiswa("Budi", "12345", 3.75)
print(mhs1.nama) # Budi
print(mhs1.ipk) # 3.75
8. Dictionary dan Set
Dictionary menyimpan data dalam pasangan key-value, mirip seperti kamus bahasa. Set adalah kumpulan elemen unik tanpa urutan.
Operasi Dictionary
# Membuat dictionary
mahasiswa = {
"nama": "Budi Santoso",
"nim": "2024001",
"jurusan": "Teknik Informatika",
"ipk": 3.85,
"aktif": True
}
# Mengakses nilai
print(mahasiswa["nama"]) # Budi Santoso
print(mahasiswa.get("ipk")) # 3.85
print(mahasiswa.get("alamat", "Tidak ada")) # Tidak ada (default)
# Mengubah dan menambah
mahasiswa["ipk"] = 3.90 # Ubah
mahasiswa["alamat"] = "Jakarta" # Tambah baru
mahasiswa.update({"semester": 5, "sks": 120}) # Tambah beberapa
# Menghapus
del mahasiswa["aktif"] # Hapus by key
nilai = mahasiswa.pop("ipk") # Hapus dan kembalikan nilai
print(f"IPK dihapus: {nilai}") # IPK dihapus: 3.9
# Iterasi dictionary
for key in mahasiswa:
print(f"{key}: {mahasiswa[key]}")
# Iterasi dengan items()
for key, value in mahasiswa.items():
print(f"{key} = {value}")
# Method berguna
print(mahasiswa.keys()) # Semua keys
print(mahasiswa.values()) # Semua values
print(len(mahasiswa)) # Jumlah item
# Dictionary comprehension
kuadrat = {x: x**2 for x in range(1, 6)}
print(kuadrat) # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# Nested dictionary
sekolah = {
"siswa1": {"nama": "Budi", "nilai": 85},
"siswa2": {"nama": "Ani", "nilai": 92},
}
print(sekolah["siswa1"]["nama"]) # Budi
print(sekolah["siswa2"]["nilai"]) # 92
Set
# Set β kumpulan elemen unik, tanpa urutan
angka = {1, 2, 3, 4, 5, 5, 4, 3}
print(angka) # {1, 2, 3, 4, 5} β duplikat dihapus otomatis
# Operasi set
angka.add(6) # Tambah elemen
angka.discard(3) # Hapus elemen (tidak error jika tidak ada)
angka.remove(1) # Hapus elemen (error jika tidak ada)
# Operasi himpunan
set_a = {1, 2, 3, 4, 5}
set_b = {4, 5, 6, 7, 8}
print(set_a | set_b) # Union: {1, 2, 3, 4, 5, 6, 7, 8}
print(set_a & set_b) # Intersection: {4, 5}
print(set_a - set_b) # Difference: {1, 2, 3}
print(set_a ^ set_b) # Symmetric diff: {1, 2, 3, 6, 7, 8}
# Kegunaan: menghapus duplikat dari list
nama_list = ["Budi", "Ani", "Budi", "Dimas", "Ani"]
nama_unik = list(set(nama_list))
print(nama_unik) # ['Budi', 'Ani', 'Dimas'] (urutan bisa berubah)
9. File I/O (Input/Output)
Python memudahkan pembacaan dan penulisan file teks maupun binary. Gunakan context manager (with) untuk memastikan file ditutup otomatis setelah selesai.
Membaca File
# Membaca seluruh isi file
with open("data.txt", "r") as file:
isi = file.read()
print(isi)
# Membaca per baris (efisien untuk file besar)
with open("data.txt", "r") as file:
for baris in file:
print(baris.strip()) # strip() hapus newline di akhir
# Membaca sebagai list of lines
with open("data.txt", "r") as file:
lines = file.readlines()
for i, line in enumerate(lines, 1):
print(f"Baris {i}: {line.strip()}")
# Membaca file JSON
import json
with open("config.json", "r") as file:
data = json.load(file)
print(data)
Menulis File
# Menulis file baru (mengganti isi jika sudah ada)
with open("output.txt", "w") as file:
file.write("Baris pertama\n")
file.write("Baris kedua\n")
file.write("Baris ketiga\n")
# Menambahkan ke file yang sudah ada (append)
with open("log.txt", "a") as file:
file.write(f"Log entry: {__import__('datetime').datetime.now()}\n")
# Menulis beberapa baris sekaligus
baris = ["Nama: Budi\n", "Umur: 25\n", "Kota: Jakarta\n"]
with open("profil.txt", "w") as file:
file.writelines(baris)
# Menulis file JSON
import json
data = {
"pengguna": [
{"nama": "Budi", "umur": 25},
{"nama": "Ani", "umur": 22}
]
}
with open("data_output.json", "w") as file:
json.dump(data, file, indent=2, ensure_ascii=False)
# Mode file:
# "r" β read (baca, default)
# "w" β write (tulis, hapus isi lama)
# "a" β append (tambah di akhir)
# "r+" β read + write
# "rb" β read binary
# "wb" β write binary
Praktik: Program Catatan Harian
import json
from datetime import datetime
FILE_NOTES = "catatan.json"
def load_notes():
try:
with open(FILE_NOTES, "r") as f:
return json.load(f)
except FileNotFoundError:
return []
def save_notes(notes):
with open(FILE_NOTES, "w") as f:
json.dump(notes, f, indent=2, ensure_ascii=False)
def tambah_catatan(isi):
notes = load_notes()
notes.append({
"tanggal": datetime.now().strftime("%Y-%m-%d %H:%M"),
"isi": isi
})
save_notes(notes)
print("β
Catatan berhasil ditambahkan!")
def tampilkan_catatan():
notes = load_notes()
if not notes:
print("π Belum ada catatan.")
return
print(f"\nπ Daftar Catatan ({len(notes)} entri):\n")
for i, note in enumerate(notes, 1):
print(f" {i}. [{note['tanggal']}] {note['isi']}")
# Contoh penggunaan
tambah_catatan("Hari pertama belajar Python!")
tambah_catatan("Sudah bisa membuat file I/O")
tampilkan_catatan()
Selalu gunakan with open() sebagai context manager. Cara ini memastikan file otomatis ditutup bahkan jika terjadi error. Hindari file = open() tanpa file.close() karena bisa menyebabkan resource leak.
10. Manipulasi String
String adalah salah satu tipe data yang paling sering digunakan. Python menyediakan banyak method built-in untuk memanipulasi string.
# String dasar
nama = " BeebaneLabs "
# Method string
print(nama.strip()) # "BeebaneLabs" (hapus spasi)
print(nama.lstrip()) # "BeebaneLabs " (hapus kiri)
print(nama.lower()) # " beebanelabs "
print(nama.upper()) # " BEEBANELABS "
print(nama.title()) # " Beebanelabs "
# Pencarian dan penggantian
teks = "Python adalah bahasa pemrograman Python"
print(teks.count("Python")) # 2
print(teks.find("bahasa")) # 14 (index pertama)
print(teks.replace("Python", "Go")) # "Go adalah bahasa pemrograman Go"
# Pemeriksaan
print("hello".isalpha()) # True (hanya huruf)
print("12345".isdigit()) # True (hanya angka)
print("hello123".isalnum()) # True (huruf + angka)
print("Hello".startswith("He")) # True
print("Hello".endswith("lo")) # True
# Split dan Join
kalimat = "apel,mangga,jeruk,pisang"
buah_list = kalimat.split(",")
print(buah_list) # ['apel', 'mangga', 'jeruk', 'pisang']
gabungan = " | ".join(buah_list)
print(gabungan) # apel | mangga | jeruk | pisang
# f-string (formatting modern β Python 3.6+)
nama = "Budi"
umur = 25
print(f"Nama: {nama}, Umur: {umur}")
print(f"Umur {nama} tahun depan: {umur + 1}")
# Format angka dalam f-string
harga = 1500000
print(f"Harga: Rp {harga:,.0f}") # Rp 1,500,000
print(f"Harga: Rp {harga:,.2f}") # Rp 1,500,000.00
# Multiline string
paragraf = """
Ini adalah string multi-baris.
Bisa ditulis di beberapa baris.
Sangat berguna untuk template teks.
"""
print(paragraf)
11. Error Handling
Error handling memungkinkan program menangani kesalahan secara elegan tanpa crash. Python menggunakan try-except untuk menangkap dan menangani error.
# Try-Except dasar
try:
angka = int(input("Masukkan angka: "))
hasil = 100 / angka
print(f"Hasil: {hasil}")
except ValueError:
print("β Input harus berupa angka!")
except ZeroDivisionError:
print("β Tidak bisa dibagi dengan nol!")
except Exception as e:
print(f"β Error: {e}")
else:
print("β
Berhasil tanpa error!")
finally:
print("π Blok ini selalu dijalankan")
# Contoh error umum
try:
# IndexError
daftar = [1, 2, 3]
print(daftar[10])
# KeyError
data = {"nama": "Budi"}
print(data["umur"])
# FileNotFoundError
with open("file_tidak_ada.txt", "r") as f:
f.read()
except IndexError:
print("Index di luar batas!")
except KeyError as e:
print(f"Key {e} tidak ditemukan!")
except FileNotFoundError:
print("File tidak ditemukan!")
# Membuat custom exception
class SaldoTidakCukup(Exception):
def __init__(self, saldo, jumlah):
self.saldo = saldo
self.jumlah = jumlah
super().__init__(f"Saldo {saldo} kurang dari {jumlah}")
def tarik_tunai(saldo, jumlah):
if jumlah > saldo:
raise SaldoTidakCukup(saldo, jumlah)
return saldo - jumlah
try:
sisa = tarik_tunai(100000, 150000)
except SaldoTidakCukup as e:
print(f"β {e}") # β Saldo 100000 kurang dari 150000
12. Quiz: Uji Pemahamanmu!
Setelah membaca tutorial di atas, jawablah 5 pertanyaan berikut untuk menguji pemahamanmu tentang Python: