# Cheat sheet Python: sintaks, perintah dan fungsi bawaan dalam tabel

URL: https://skillaria.top/id/guides/python/sintaks-python-cheat-sheet

Sintaks Python bertumpu pada indentasi, bukan kurung kurawal: blok setelah titik dua menjorok empat spasi. Intinya adalah variabel tanpa deklarasi tipe, kondisi if/elif/else, perulangan for dan while, fungsi def, serta fungsi bawaan print, len, range, input, type dan metode string, list, dan dictionary.

Cheat sheet Python ini merangkum dalam satu halaman hal-hal yang perlu ada di tangan selama beberapa bulan pertama: sintaks Python, perulangan, fungsi bawaan, metode string, list dan dictionary, serta perintah terminal. Setiap tabel adalah referensi singkat dengan contoh kerja yang bisa langsung dicoba di REPL.

## Dasar sintaks Python

Ciri utama bahasa ini: blok ditandai indentasi, bukan kurung. Setelah baris yang diakhiri titik dua (`if`, `for`, `def`, `class`), baris berikutnya menjorok empat spasi. Tab dan spasi tidak boleh dicampur — hasilnya `IndentationError`.

| Konstruksi | Contoh | Penjelasan |
| --- | --- | --- |

| Komentar | `# teks` | semua setelah # sampai akhir baris diabaikan |

| Variabel | `age = 25` | tipe tidak dideklarasikan, ditentukan oleh nilainya |

| Penugasan jamak | `a, b = 1, 2` | unpacking; tukar nilai: `a, b = b, a` |

| Output | `print("Halo", name)` | argumen dipisahkan spasi |

| Input | `s = input("Nama: ")` | selalu mengembalikan string |

| f-string | `f"{name}: {price:.2f}"` | penyisipan ekspresi dan format |

| Anotasi tipe | `count: int = 0` | petunjuk untuk IDE dan pemeriksa, tidak dicek saat dijalankan |

| Blok kosong | `pass` | placeholder saat sintaks mewajibkan isi |

| Impor | `from math import sqrt` | memuat modul atau nama dari dalamnya |

### Tipe data

| Tipe | Literal | Dapat diubah |
| --- | --- | --- |

| `int` | `42`, `1_000_000` | tidak |

| `float` | `3.14`, `1e-3` | tidak |

| `bool` | `True`, `False` | tidak |

| `str` | `"teks"`, `'teks'`, `"""banyak baris"""` | tidak |

| `list` | `[1, 2, 3]` | ya |

| `tuple` | `(1, 2)`, `(1,)` | tidak |

| `dict` | `{"a": 1}` | ya |

| `set` | `{1, 2}`, kosong — `set()` | ya |

| `NoneType` | `None` | — |

### Operator

| Kelompok | Operator | Contoh → hasil |
| --- | --- | --- |

| Aritmetika | `+ - * / // % **` | `7 // 2` → 3, `7 % 2` → 1, `2 ** 10` → 1024 |

| Perbandingan | `== != < > <= >=` | `1 < x < 10` — rantai perbandingan |

| Logika | `and or not` | `x or "default"` |

| Keanggotaan | `in`, `not in` | `"a" in "abc"` → True |

| Identitas | `is`, `is not` | `x is None` |

| Penugasan | `+= -= *= /=`, `:=` | `if (n := len(s)) > 10: ...` |

## Kondisi dan pencocokan pola

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

status = "dewasa" if age >= 18 else "anak"   # operator ternary

match command:
    case "start":
        print("Mulai")
    case "stop" | "exit":
        print("Berhenti")
    case _:
        print("Perintah tidak dikenal")
```

Nilai yang dianggap salah adalah `False`, `None`, `0`, string kosong, dan koleksi kosong, sehingga daripada menulis `if len(items) > 0` cukup tulis `if items`.

## Perulangan di Python: sintaks for dan while

### Perulangan for

Sintaks for di Python: `for variabel in urutan:` lalu badan yang menjorok. Perulangan bisa melewati objek iterable apa pun — string, list, dictionary, file, `range`.

```
for i in range(5):              # 0 1 2 3 4
    print(i)

for i in range(10, 0, -2):      # 10 8 6 4 2
    print(i)

for i, fruit in enumerate(["apel", "pir"], start=1):
    print(i, fruit)

for name, score in zip(names, scores):
    print(name, score)

for key, value in prices.items():
    print(key, value)
```

### Perulangan while

```
attempts = 3
while attempts > 0:
    password = input("Kata sandi: ")
    if password == "secret":
        print("Login berhasil")
        break
    attempts -= 1
else:
    print("Percobaan habis")   # dijalankan jika tidak ada break
```

| Perintah | Fungsi |
| --- | --- |

| `break` | keluar dari perulangan lebih awal |

| `continue` | lanjut ke iterasi berikutnya |

| `else` pada perulangan | dijalankan jika perulangan selesai tanpa `break` |

| `range(stop)`, `range(start, stop, step)` | urutan bilangan, `stop` tidak ikut |

### Comprehension

```
squares = [x ** 2 for x in range(10)]
evens = [x for x in numbers if x % 2 == 0]
lengths = {word: len(word) for word in words}
unique = {c.lower() for c in text}
total = sum(x * x for x in range(100))   # generator expression
```

## Fungsi

```
def greet(name: str, greeting: str = "Halo") -> str:
    """Mengembalikan sapaan."""
    return f"{greeting}, {name}!"

def total(*args, **kwargs):
    return sum(args), kwargs

square = lambda x: x * x
print(greet("Ani"))                  # Halo, Ani!
print(greet("Ani", greeting="Hai"))  # Hai, Ani!
```

| Elemen | Arti |
| --- | --- |

| `def f(a, b=1)` | parameter dengan nilai default |

| `*args` | sejumlah argumen posisi (tuple) |

| `**kwargs` | sejumlah argumen bernama (dictionary) |

| `return` | mengembalikan nilai; tanpa ini fungsi mengembalikan `None` |

| `lambda x: ...` | fungsi anonim pendek dalam satu ekspresi |

| `global`, `nonlocal` | mengubah variabel dari cakupan luar |

Jangan gunakan nilai default yang bisa diubah seperti `def f(items=[])`: list dibuat sekali dan terus menumpuk antar pemanggilan. Yang benar adalah `items=None` lalu di dalam `if items is None: items = []`.

## Fungsi bawaan Python

Fungsi bawaan Python tersedia tanpa impor. Ini fungsi utama yang hampir selalu muncul di setiap skrip.

| Fungsi | Fungsinya | Contoh → hasil |
| --- | --- | --- |

| `print()` | menampilkan nilai | `print(1, 2, sep="-")` → 1-2 |

| `input()` | membaca string dari keyboard | `int(input())` |

| `len()` | panjang koleksi atau string | `len("abc")` → 3 |

| `type()` | tipe objek | `type(3.0)` → <class 'float'> |

| `isinstance()` | memeriksa tipe | `isinstance(5, int)` → True |

| `int() float() str() bool()` | konversi tipe | `int("42")` → 42 |

| `list() tuple() set() dict()` | membuat koleksi | `list("ab")` → ['a', 'b'] |

| `range()` | rentang bilangan | `list(range(3))` → [0, 1, 2] |

| `enumerate()` | pasangan (indeks, elemen) | `list(enumerate("ab"))` → [(0, 'a'), (1, 'b')] |

| `zip()` | menggabungkan urutan berpasangan | `list(zip([1, 2], "ab"))` → [(1, 'a'), (2, 'b')] |

| `sum() min() max()` | jumlah, minimum, maksimum | `max([3, 7, 1])` → 7 |

| `abs() round()` | nilai mutlak dan pembulatan | `round(3.14159, 2)` → 3.14 |

| `sorted()` | list baru yang sudah diurutkan | `sorted(words, key=len, reverse=True)` |

| `reversed()` | iterator dalam urutan terbalik | `list(reversed([1, 2]))` → [2, 1] |

| `map() filter()` | menerapkan fungsi / menyaring | `list(map(str, [1, 2]))` → ['1', '2'] |

| `any() all()` | minimal satu / semua benar | `all(x > 0 for x in nums)` |

| `open()` | membuka file | `open("a.txt", encoding="utf-8")` |

| `help() dir()` | bantuan dan daftar atribut | `help(str.split)`, `dir(list)` |

| `id() hash()` | identitas dan hash objek | `hash("a")` |

Referensi Python paling praktis selalu ada di tangan: fungsi `help()` di REPL. `help(dict)` menampilkan semua metode dictionary beserta deskripsinya, dan `dir(obj)` menampilkan daftar nama yang tersedia.

## Metode string

Sintaks string di Python: string tidak dapat diubah, dan setiap metode mengembalikan string baru. Slicing bekerja seperti pada list: `s[1:4]`, dan `s[::-1]` untuk membalik.

| Metode | Contoh → hasil |
| --- | --- |

| `upper() lower()` | `"Py".upper()` → 'PY' |

| `capitalize() title()` | `"hello world".title()` → 'Hello World' |

| `strip() lstrip() rstrip()` | `" hi \n".strip()` → 'hi' |

| `split(sep)` | `"a,b,c".split(",")` → ['a', 'b', 'c'] |

| `join(iterable)` | `"-".join(["a", "b"])` → 'a-b' |

| `replace(old, new)` | `"kucing".replace("k", "t")` → 'tucing' |

| `find() index()` | `"hello".find("l")` → 2; jika tidak ada — -1 (pada `index` — error) |

| `count()` | `"banana".count("a")` → 3 |

| `startswith() endswith()` | `"file.py".endswith(".py")` → True |

| `isdigit() isalpha() isspace()` | `"123".isdigit()` → True |

| `removeprefix() removesuffix()` | `"test_a".removeprefix("test_")` → 'a' |

| `zfill() center() ljust()` | `"7".zfill(3)` → '007' |

| `format()` | `"{} + {}".format(1, 2)` → '1 + 2' |

## Perintah list Python

List adalah koleksi terurut yang dapat diubah. Sebagian besar metodenya mengubah list di tempat dan mengembalikan `None`, sehingga `a = a.sort()` adalah kesalahan yang sering terjadi.

| Operasi | Fungsinya | Contoh |
| --- | --- | --- |

| `append(x)` | menambah di akhir | `a.append(4)` |

| `extend(iter)` | menambah semua elemen | `a.extend([5, 6])` |

| `insert(i, x)` | menyisipkan pada indeks | `a.insert(0, "first")` |

| `remove(x)` | menghapus kemunculan pertama nilai | `a.remove(3)` |

| `pop(i)` | menghapus dan mengembalikan elemen (default: terakhir) | `last = a.pop()` |

| `clear()` | mengosongkan list | `a.clear()` |

| `index(x)` | indeks kemunculan pertama | `a.index("b")` |

| `count(x)` | jumlah kemunculan | `a.count(1)` |

| `sort()` | mengurutkan di tempat | `a.sort(key=str.lower)` |

| `reverse()` | membalik di tempat | `a.reverse()` |

| `copy()` | salinan dangkal | `b = a.copy()` |

| `del a[i]` | menghapus berdasarkan indeks atau slice | `del a[1:3]` |

| Slicing | `a[start:stop:step]` | `a[-1]` — terakhir, `a[:3]` — tiga pertama |

## Perintah dictionary Python

| Operasi | Fungsinya | Contoh |
| --- | --- | --- |

| `d[key]` | nilai berdasarkan kunci, jika tidak ada — `KeyError` | `d["name"]` |

| `get(key, default)` | nilai atau cadangan | `d.get("age", 0)` |

| `d[key] = value` | menambah atau mengubah | `d["city"] = "Bandung"` |

| `keys() values() items()` | kunci, nilai, pasangan | `for k, v in d.items():` |

| `update()` | menggabung dengan dictionary lain | `d.update({"a": 1})` |

| `d1 | d2` | dictionary gabungan baru | `merged = defaults | user` |

| `pop(key, default)` | menghapus dan mengembalikan nilai | `d.pop("tmp", None)` |

| `popitem()` | menghapus pasangan yang terakhir ditambahkan | `d.popitem()` |

| `setdefault(key, value)` | mengembalikan nilai, jika kunci belum ada — membuatnya | `d.setdefault("tags", []).append("py")` |

| `key in d` | memeriksa keberadaan kunci | `if "name" in d:` |

| `dict.fromkeys()` | dictionary dari kunci dengan satu nilai | `dict.fromkeys("abc", 0)` |

| `len(d)`, `del d[key]` | ukuran dan penghapusan | `del d["old"]` |

### Tuple dan set

| Operasi | Contoh → hasil |
| --- | --- |

| Unpacking tuple | `x, y = (3, 4)` |

| Menambah ke set | `s.add(5)`, menghapus — `s.discard(5)` |

| Gabungan / irisan | `{1, 2} | {2, 3}` → {1, 2, 3}; `{1, 2} & {2, 3}` → {2} |

| Selisih | `{1, 2} - {2}` → {1} |

| Menghapus duplikat dari list | `list(dict.fromkeys(items))` — dengan urutan tetap terjaga |

## Exception dan file

```
try:
    number = int(input("Angka: "))
except ValueError as err:
    print("Ini bukan angka:", err)
else:
    print("Berhasil")
finally:
    print("Selalu dijalankan")

with open("data.txt", "w", encoding="utf-8") as f:
    f.write("baris\n")

with open("data.txt", encoding="utf-8") as f:
    for line in f:
        print(line.rstrip())
```

| Exception | Kapan muncul |
| --- | --- |

| `SyntaxError`, `IndentationError` | kesalahan pada sintaks atau indentasi |

| `NameError` | nama tidak didefinisikan (salah ketik) |

| `TypeError` | operasi dengan tipe yang tidak cocok: `"1" + 1` |

| `ValueError` | tipe benar, tetapi nilainya salah: `int("abc")` |

| `IndexError`, `KeyError` | indeks atau kunci tidak ada |

| `FileNotFoundError` | file tidak ditemukan |

| `ZeroDivisionError` | pembagian dengan nol |

## Class

```
from dataclasses import dataclass

class Dog:
    def __init__(self, name: str):
        self.name = name

    def bark(self) -> str:
        return f"{self.name}: Guk!"

@dataclass
class Point:
    x: float
    y: float

print(Dog("Milo").bark())    # Milo: Guk!
print(Point(1, 2))           # Point(x=1, y=2)
```

## Modul bawaan Python

Pustaka standar ikut terpasang bersama interpreter — cukup gunakan `import`.

| Modul | Untuk apa | Contoh |
| --- | --- | --- |

| `math` | matematika | `math.sqrt(16)` → 4.0 |

| `random` | bilangan acak | `random.randint(1, 6)`, `random.choice(items)` |

| `datetime` | tanggal dan waktu | `datetime.date.today()` |

| `pathlib` | path dan file | `Path("data").glob("*.csv")` |

| `os`, `sys` | sistem, variabel lingkungan, argumen | `os.environ.get("HOME")`, `sys.argv` |

| `json` | membaca dan menulis JSON | `json.loads(text)`, `json.dumps(obj, ensure_ascii=False)` |

| `csv` | tabel CSV | `csv.DictReader(f)` |

| `collections` | Counter, defaultdict, deque | `Counter("banana").most_common(1)` → [('a', 3)] |

| `itertools` | kombinasi dan rantai iterator | `itertools.chain(a, b)` |

| `re` | ekspresi reguler | `re.findall(r"\d+", s)` |

| `time` | jeda dan pengukuran waktu | `time.sleep(1)`, `time.perf_counter()` |

| `asyncio` | kode asinkronus | `asyncio.run(main())` |

Di Python 3.15 tersedia lazy import (PEP 810): `lazy import pandas as pd` menunda pemuatan modul sampai pertama kali diakses, sehingga skrip dengan dependensi berat start jauh lebih cepat.

## Perintah Python di terminal

Kelompok pencarian «perintah python» berisi perintah untuk menjalankan interpreter dan memasang pustaka. Di Windows, sebagai pengganti `python3` biasanya dipakai `python` atau `py`.

| Perintah | Fungsinya |
| --- | --- |

| `python3 --version` | menampilkan versi |

| `python3` | membuka konsol interaktif REPL (keluar dengan `exit()`) |

| `python3 script.py` | menjalankan file |

| `python3 -c "print(2 + 2)"` | menjalankan satu baris |

| `python3 -m venv .venv` | membuat virtual environment |

| `source .venv/bin/activate` / `.venv\Scripts\activate` | mengaktifkan environment (Linux, macOS / Windows) |

| `python3 -m pip install requests` | memasang paket |

| `pip list`, `pip freeze > requirements.txt` | daftar paket dan penyimpanannya |

| `pip install -r requirements.txt` | memasang dependensi dari file |

| `python3 -m http.server 8000` | server web sederhana di folder saat ini |

| `uv init`, `uv add requests`, `uv run main.py` | proyek, dependensi, dan menjalankan dengan pengelola uv |

## Kesalahan umum pemula

- **Membandingkan dengan `=`** — dalam kondisi dibutuhkan `==`; satu `=` adalah penugasan.
- **Lupa titik dua** setelah `if`, `for`, `def` menghasilkan `SyntaxError`.
- **Menjumlahkan string dan angka**: `"Usia: " + 25` adalah error, tulis `f"Usia: {25}"`.
- **Mengubah list saat diulang** — ulangi salinannya `for x in a[:]` atau bangun list baru.
- **`input()` mengembalikan string** — untuk hitungan bungkus dengan `int()` atau `float()`.

## Kesimpulan

Sintaks Python bertumpu pada indentasi, titik dua, dan sekumpulan kecil konstruksi: kondisi, perulangan for dan while, fungsi, dan class. Tambahkan dua puluhan fungsi bawaan serta metode string, list, dan dictionary, dan Anda sudah menguasai sebagian besar tugas harian. Simpan cheat sheet ini, dan ketika tabel-tabelnya sudah familiar, lanjutkan ke modul dan asinkronus; semuanya dibahas langkah demi langkah dengan praktik dalam kursus «Python 3.15: dari pemula hingga profesional».

## FAQ

**Berapa spasi untuk indentasi di Python?**

Menurut PEP 8, empat spasi per level. Yang terpenting adalah konsisten di seluruh blok dan tidak mencampur dengan tab.

**Apa beda list dan tuple?**

List dapat diubah, bisa ditambah dan diurutkan di tempat; tuple tidak dapat diubah, sehingga cocok sebagai kunci dictionary dan untuk kumpulan nilai tetap.

**Bagaimana melihat semua metode objek langsung di Python?**

Panggil dir(obj) untuk daftar nama dan help(obj) untuk deskripsinya — misalnya help(str) menampilkan semua metode string.

**Apa beda sort() dan sorted()?**

Metode list.sort() mengurutkan list itu sendiri dan mengembalikan None, sedangkan fungsi sorted() mengembalikan list baru dan bekerja dengan koleksi iterable apa pun.

**Perlukah titik koma di akhir baris Python?**

Tidak. Titik koma boleh dipakai untuk beberapa perintah dalam satu baris, tetapi kode yang rapi menulis setiap instruksi di baris baru.


---
Source: Skillaria.Top (https://skillaria.top)
