← Semua pembelajaran / Python untuk AI Engineer
Fase 1 Β· Sintaks & Idiom Python

The Python Tutorial

Tutorial resmi Python, disaring untuk software engineer yang sudah paham logika tapi belum menyentuh sintaks Python.

Sumber asli docs.python.org Resmi Rangkuman ~10 menit baca

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.
  • for selalu 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

TipeLiteralBisa diubah?Untuk apa
str"halo"TidakTeks β€” selalu Unicode
int42TidakBilangan bulat, tanpa batas ukuran
float3.14TidakDesimal
boolTrue / FalseTidakPerhatikan huruf besarnya
list[1, 2, 3]YaUrutan yang bisa berubah
tuple(1, 2, 3)TidakUrutan tetap, bisa jadi key dict
dict{"a": 1}YaPemetaan key→value, urutan terjaga
set{1, 2, 3}YaKumpulan unik, cek keanggotaan cepat
NoneNoneβ€”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

BabJudulRekomendasi
1–2Whetting the appetite, InterpreterLewati
3An Informal IntroductionBaca cepat β€” string & angka
4Control FlowBaca β€” perhatikan match dan *args
5Data StructuresBaca teliti β€” bab terpenting
6ModulesBaca cepat
7Input and OutputBaca bagian f-string
8Errors and ExceptionsBaca
9ClassesBaca cepat β€” kode AI jarang butuh OOP dalam
10+Standard library tour, venv, dllLewati β€” 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.