The Python Tutorial
Tutorial resmi Python, disaring untuk software engineer yang sudah paham logika tapi belum menyentuh sintaks Python.
Intisari
- Indentasi menggantikan kurung kurawal. Blok ditentukan oleh spasi β bukan pilihan gaya, tapi sintaks.
- Tidak ada deklarasi tipe atau
let/var: variabel muncul saat pertama diberi nilai. forselalu iterasi atas isi, bukan atas indeks.range(len(x))hampir selalu tanda kode belum idiomatik.- Fungsi bisa punya argumen bernama dan nilai default β pakai itu, jangan bikin lima overload.
- Modul = file. Package = folder berisi
__init__.py. Tidak ada konsep βnamespaceβ terpisah.
Yang benar-benar berbeda dari bahasa lain
Indentasi adalah sintaks
if suhu > 30:
print("panas")
print("nyalakan AC")
else:
print("normal")
print("selalu jalan") # di luar blok karena indentasinya kembali ke kiri
Tidak ada {} dan tidak ada end. Empat spasi per level adalah konvensi
(diurus otomatis oleh Ruff). Titik dua di akhir baris menandai blok akan dimulai.
Variabel tidak dideklarasikan
nama = "Budi" # bikin
nama = 42 # boleh β tipe menempel ke NILAI, bukan ke variabel
NAMA = "konstan" # HURUF BESAR = konvensi "jangan diubah", tidak dipaksa bahasa
Tipe bawaan yang dipakai sehari-hari
| Tipe | Literal | Bisa diubah? | Untuk apa |
|---|---|---|---|
str | "halo" | Tidak | Teks β selalu Unicode |
int | 42 | Tidak | Bilangan bulat, tanpa batas ukuran |
float | 3.14 | Tidak | Desimal |
bool | True / False | Tidak | Perhatikan huruf besarnya |
list | [1, 2, 3] | Ya | Urutan yang bisa berubah |
tuple | (1, 2, 3) | Tidak | Urutan tetap, bisa jadi key dict |
dict | {"a": 1} | Ya | Pemetaan keyβvalue, urutan terjaga |
set | {1, 2, 3} | Ya | Kumpulan unik, cek keanggotaan cepat |
None | None | β | Ketiadaan nilai (bukan null/nil) |
Perulangan: selalu atas isi
for item in daftar: ... # β
idiomatik
for i, item in enumerate(daftar): ... # β
kalau butuh indeks juga
for k, v in kamus.items(): ... # β
dict
for a, b in zip(list_a, list_b): ... # β
dua list sejajar
for i in range(len(daftar)): # β hampir selalu salah gaya
item = daftar[i]
Fungsi
def kirim(pesan: str, ke: str, prioritas: str = "normal", *, kering: bool = False) -> bool:
...
kirim("halo", "budi") # posisional
kirim("halo", ke="budi", prioritas="tinggi") # bernama β lebih terbaca
kirim("halo", "budi", kering=True) # setelah *, WAJIB pakai nama
Tanda * di daftar parameter memaksa argumen sesudahnya ditulis dengan nama.
Ini trik bagus untuk flag boolean: kirim(..., True) tidak jelas artinya,
kirim(..., kering=True) jelas.
Nilai kembali ganda
def bagi(a: int, b: int) -> tuple[int, int]:
return a // b, a % b # sebenarnya mengembalikan satu tuple
hasil, sisa = bagi(17, 5) # dibongkar jadi dua variabel
Modul dan import
import json # akses: json.dumps(...)
import numpy as np # dengan alias
from pathlib import Path # ambil satu nama saja
from mypackage.llm import panggil # dari modul sendiri
from os import * # β jangan pernah β nama bertabrakan diam-diam
Blok if __name__
def main() -> None:
print("jalan")
if __name__ == "__main__":
main()
Isi blok itu hanya dijalankan kalau file dieksekusi langsung, bukan saat diimpor modul lain. Tanpa itu, mengimpor file-mu akan ikut menjalankan kode di dalamnya β sumber bug yang membingungkan.
Cara membaca tutorialnya
| Bab | Judul | Rekomendasi |
|---|---|---|
| 1β2 | Whetting the appetite, Interpreter | Lewati |
| 3 | An Informal Introduction | Baca cepat β string & angka |
| 4 | Control Flow | Baca β perhatikan match dan *args |
| 5 | Data Structures | Baca teliti β bab terpenting |
| 6 | Modules | Baca cepat |
| 7 | Input and Output | Baca bagian f-string |
| 8 | Errors and Exceptions | Baca |
| 9 | Classes | Baca cepat β kode AI jarang butuh OOP dalam |
| 10+ | Standard library tour, venv, dll | Lewati β uv sudah mengurusnya |
Ketik ulang contohnya. Ini terasa lambat, tapi bagi orang yang sudah bisa programming, hambatan terbesarnya adalah refleks jari, bukan pemahaman. Mengetik ulang membangun refleks itu; membaca tidak.
Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.