☀️Siang
Python

Cheatsheet Python: Referensi Cepat Syntax, Data Structure, dan Library

GRATIS

Referensi cepat Python — variabel, tipe data, list, dict, set, comprehension, fungsi, class, file I/O, decorator, generator, dan modul populer



1. Variabel & Tipe Data

# Variabel & assignment
nama = "Budi"           # str
umur = 25               # int
tinggi = 1.75           # float
aktif = True            # bool
data = None             # NoneType

# Multiple assignment
a, b, c = 1, 2, 3
x = y = z = 0

# Konversi tipe
s = str(42)         # "42"
n = int("42")       # 42
f = float("3.14")   # 3.14
b = bool(1)         # True
lst = list("abc")   # ['a', 'b', 'c']
tpl = tuple([1,2])  # (1, 2)
st = set([1,2,2])   # {1, 2}

# Type checking
type(nama)          # <class 'str'>
isinstance(nama, str)  # True

Tipe Data Bawaan

TipeContohSifat
int42, -7, 0Integer, tanpa batas
float3.14, -0.5Desimal
str"hello", 'world'Immutable, sequence
boolTrue, FalseBoolean
list[1, 2, 3]Mutable, ordered
tuple(1, 2, 3)Immutable, ordered
dict{"a": 1}Mutable, key-value
set{1, 2, 3}Mutable, unique, unordered
NoneNoneNull value

2. String Operations

# F-string (Python 3.6+)
nama = "Budi"
umur = 25
print(f"Halo {nama}, umur {umur} tahun")
print(f"Hasil: {10 * 3 = }")      # Debug = (Python 3.8+)
print(f"Pi: {3.14159:.2f}")        # Format: 3.14
print(f"Kanan: {'hi':>10}")        # Padding kanan
print(f"Nol: {42:05d}")            # Zero-pad: 00042

# Method umum
s = "Hello World"
s.lower()           # "hello world"
s.upper()           # "HELLO WORLD"
s.strip()           # Hapus whitespace
s.split(" ")        # ["Hello", "World"]
"-".join(["a","b"]) # "a-b"
s.replace("H", "J") # "Jello World"
s.startswith("He")  # True
s.find("World")     # 6
s.count("l")        # 3
s.isnumeric()       # False
",".join(map(str, [1,2,3]))  # "1,2,3"

# Slicing
s = "Python"
s[0]        # 'P'
s[-1]       # 'n'
s[1:4]      # 'yth'
s[::2]      # 'Pto'
s[::-1]     # 'nohtyP' (reverse)

3. List Operations

# Buat list
arr = [1, 2, 3, 4, 5]
kosong = []
campuran = [1, "dua", 3.0, True]

# Akses & slicing
arr[0]       # 1 (indeks pertama)
arr[-1]      # 5 (indeks terakhir)
arr[1:4]     # [2, 3, 4]
arr[::2]     # [1, 3, 5]

# Method
arr.append(6)          # Tambah di akhir
arr.insert(0, 0)       # Tambah di indeks 0
arr.extend([7, 8])     # Tambah banyak elemen
arr.pop()              # Hapus & return elemen terakhir
arr.pop(0)             # Hapus di indeks 0
arr.remove(3)          # Hapus nilai pertama yang cocok
arr.sort()             # Sort ascending
arr.sort(reverse=True) # Sort descending
arr.reverse()          # Balik urutan
arr.index(2)           # Cari indeks nilai
arr.count(2)           # Hitung kemunculan
len(arr)               # Panjang list
sorted(arr)            # Return sorted baru (tidak ubah asli)
min(arr), max(arr)     # Min & max
sum(arr)               # Jumlah semua elemen

# Unpacking
a, b, *rest = [1, 2, 3, 4, 5]
# a=1, b=2, rest=[3,4,5]

4. Dictionary Operations

# Buat dict
d = {"nama": "Budi", "umur": 25, "kota": "Jakarta"}
d2 = dict(nama="Ani", umur=20)

# Akses
d["nama"]              # "Budi" (KeyError jika tidak ada)
d.get("nama")          # "Budi" (None jika tidak ada)
d.get("email", "N/A")  # "N/A" (default)

# Operasi
d["email"] = "budi@mail.com"  # Tambah/update
del d["kota"]                   # Hapus
d.pop("umur")                   # Hapus & return value
d.keys()                        # dict_keys([...])
d.values()                      # dict_values([...])
d.items()                       # dict_items([...])
d.update({"hp": "0812"})        # Update banyak
len(d)                          # Jumlah key

# Iterasi
for key in d:
    print(key, d[key])

for key, val in d.items():
    print(f"{key}: {val}")

# Merge (Python 3.9+)
merged = d | d2          # Merge baru
d |= d2                  # In-place merge

# Dict Comprehension
squares = {x: x**2 for x in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

5. Set Operations

# Buat set
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
s3 = set([1, 2, 3])

# Operasi himpunan
s1 | s2       # Union: {1,2,3,4,5,6}
s1 & s2       # Intersection: {3,4}
s1 - s2       # Difference: {1,2}
s1 ^ s2       # Symmetric diff: {1,2,5,6}

# Method
s1.add(5)            # Tambah elemen
s1.discard(1)        # Hapus (no error jika tidak ada)
s1.remove(2)         # Hapus (error jika tidak ada)
s1.pop()             # Hapus & return satu elemen
s1.update([6, 7])    # Tambah banyak elemen
len(s1)              # Jumlah elemen

# Cek keanggotaan (sangat cepat)
3 in s1              # True
10 not in s1         # True

6. List / Dict / Set Comprehension

# List comprehension
squares = [x**2 for x in range(10)]
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

genap = [x for x in range(20) if x % 2 == 0]
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

nested = [x*y for x in range(3) for y in range(3)]
# [0, 0, 0, 0, 1, 2, 0, 2, 4]

# Conditional expression dalam comprehension
labels = ["genap" if x%2==0 else "ganjil" for x in range(5)]
# ['genap', 'ganjil', 'genap', 'ganjil', 'genap']

# Dict comprehension
d = {k: v for k, v in [("a", 1), ("b", 2)]}
# {'a': 1, 'b': 2}

filter_d = {k: v for k, v in d.items() if v > 1}
# {'b': 2}

# Set comprehension
unique = {x % 3 for x in range(10)}
# {0, 1, 2}

# Generator expression (lazy)
gen = (x**2 for x in range(1000000))  # Tidak alokasi memori langsung
sum(gen)                                # Hitung saat diminta

7. Fungsi & Decorator

# Fungsi dasar
def sapa(nama="World"):
    return f"Halo, {nama}!"

# *args dan **kwargs
def hitung(*args, **kwargs):
    total = sum(args)
    label = kwargs.get("label", "Total")
    return f"{label}: {total}"

hitung(1, 2, 3, label="Sum")  # "Sum: 6"

# Lambda
kali = lambda a, b: a * b
sorted(data, key=lambda x: x["umur"])

# Decorator
def log(func):
    def wrapper(*args, **kwargs):
        print(f"Memanggil {func.__name__}")
        result = func(*args, **kwargs)
        print(f"Selesai: {result}")
        return result
    return wrapper

@log
def tambah(a, b):
    return a + b

# Decorator dengan parameter
def repeat(n):
    def decorator(func):
        def wrapper(*args, **kwargs):
            for _ in range(n):
                func(*args, **kwargs)
        return wrapper
    return decorator

@repeat(3)
def halo():
    print("Halo!")

8. Class & OOP

class Hewan:
    def __init__(self, nama, suara):
        self.nama = nama
        self.suara = suara
    
    def speak(self):
        return f"{self.nama}: {self.suara}!"
    
    def __repr__(self):
        return f"Hewan('{self.nama}')"
    
    def __eq__(self, other):
        return self.nama == other.nama

class Kucing(Hewan):
    def __init__(self, nama):
        super().__init__(nama, "Meong")
    
    def purr(self):
        return f"{self.nama} mendengkur..."

# Penggunaan
kucing = Kucing("Kitty")
print(kucing.speak())    # "Kitty: Meong!"
print(kucing.purr())     # "Kitty mendengkur..."

# Property
class Lingkaran:
    def __init__(self, radius):
        self._radius = radius
    
    @property
    def radius(self):
        return self._radius
    
    @property
    def luas(self):
        return 3.14159 * self._radius ** 2

9. File I/O

# Baca file
with open("data.txt", "r") as f:
    content = f.read()         # Baca semua
    # lines = f.readlines()    # List baris
    # for line in f:           # Per baris
    #     print(line.strip())

# Tulis file
with open("output.txt", "w") as f:
    f.write("Hello World\n")
    f.writelines(["line1\n", "line2\n"])

# Append
with open("log.txt", "a") as f:
    f.write("Baris baru\n")

# JSON
import json

data = {"nama": "Budi", "umur": 25}

with open("data.json", "w") as f:
    json.dump(data, f, indent=2, ensure_ascii=False)

with open("data.json", "r") as f:
    loaded = json.load(f)

# String ↔ JSON
json_str = json.dumps(data, indent=2)
parsed = json.loads(json_str)

# CSV
import csv

with open("data.csv", "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(["Nama", "Umur"])
    writer.writerow(["Budi", 25])

with open("data.csv", "r") as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row["Nama"], row["Umur"])

10. Error Handling (try/except)

# Basic try/except
try:
    result = 10 / 0
except ZeroDivisionError:
    print("Tidak bisa dibagi nol!")

# Multiple except
try:
    value = int(input("Angka: "))
    result = 10 / value
except ValueError:
    print("Input bukan angka!")
except ZeroDivisionError:
    print("Tidak boleh nol!")
except Exception as e:
    print(f"Error: {e}")
else:
    print(f"Hasil: {result}")    # Jika tidak ada error
finally:
    print("Selalu dijalankan")   # Selalu eksekusi

# Custom exception
class ValidationError(Exception):
    def __init__(self, field, message):
        self.field = field
        self.message = message
        super().__init__(f"{field}: {message}")

# Context manager
from contextlib import contextmanager

@contextmanager
def timer(label):
    import time
    start = time.time()
    yield
    print(f"{label}: {time.time() - start:.2f}s")

with timer("Proses"):
    sum(range(1000000))

11. Generator & Iterator

# Generator function (yield)
def fibonacci(n):
    a, b = 0, 1
    for _ in range(n):
        yield a
        a, b = b, a + b

# Penggunaan
for num in fibonacci(10):
    print(num)

# Generator expression
gen = (x**2 for x in range(1000))

# Yield from (delegasi)
def flatten(nested):
    for item in nested:
        if isinstance(item, list):
            yield from flatten(item)
        else:
            yield item

list(flatten([1, [2, 3], [4, [5]]]))
# [1, 2, 3, 4, 5]

# itertools populer
from itertools import count, cycle, chain, islice, groupby

# count: 0, 1, 2, 3, ...
# cycle: a, b, c, a, b, c, ...
# chain: gabung beberapa iterabel
list(chain([1,2], [3,4]))      # [1, 2, 3, 4]
list(islice(count(), 5))       # [0, 1, 2, 3, 4]

12. Modul Populer

os — Operasi Sistem

import os

os.getcwd()                    # Current working directory
os.listdir(".")                # List isi direktori
os.makedirs("dir/sub", exist_ok=True)  # Buat folder
os.path.exists("file.txt")    # Cek file ada
os.path.isfile("file.txt")    # Cek file
os.path.isdir("dir")          # Cek direktori
os.path.join("dir", "file")   # Gabung path (cross-platform)
os.path.basename("/a/b.txt")  # "b.txt"
os.path.dirname("/a/b.txt")   # "/a"
os.environ["HOME"]            # Environment variable
os.rename("lama.txt", "baru.txt")
os.remove("file.txt")         # Hapus file

sys — System Parameters

import sys

sys.argv           # Command line arguments
sys.version        # Python version
sys.platform       # "win32", "linux", "darwin"
sys.path           # Module search path
sys.exit(0)        # Keluar dari program
sys.stdin          # Standard input
sys.stdout         # Standard output
sys.maxsize        # Max integer

re — Regular Expression

import re

text = "Email: budi@mail.com dan ani@corp.co.id"

# Cari semua email
emails = re.findall(r'[\w.]+@[\w.]+\.\w+', text)
# ['budi@mail.com', 'ani@corp.co.id']

# Match satu
m = re.search(r'(\d{3})-(\d{4})', "Hub: 021-1234")
m.group(0)   # "021-1234"
m.group(1)   # "021"

# Replace
re.sub(r'\d+', '*', "Ada 42 angka 7")
# "Ada * angka *"

# Split
re.split(r'[,;]\s*', "a, b; c, d")
# ['a', 'b', 'c', 'd']

datetime — Tanggal & Waktu

from datetime import datetime, timedelta

now = datetime.now()
print(now)                     # 2026-07-03 14:30:00.123456

# Format
now.strftime("%d/%m/%Y %H:%M")  # "03/07/2026 14:30"
now.strftime("%A, %d %B %Y")    # "Jumat, 03 Juli 2026"

# Parse string ke datetime
dt = datetime.strptime("03/07/2026", "%d/%m/%Y")

# Operasi tanggal
besok = now + timedelta(days=1)
minggu_lalu = now - timedelta(weeks=1)
selisih = datetime(2026, 12, 31) - now
selisih.days  # Jumlah hari tersisa

Tambahan: Math, Random, Collections

# math
import math
math.ceil(3.2)     # 4
math.floor(3.8)    # 3
math.sqrt(16)      # 4.0
math.pi            # 3.14159...

# random
import random
random.randint(1, 100)          # Random int 1-100
random.choice(["a", "b", "c"])  # Pilih satu
random.shuffle(my_list)         # Acak in-place
random.sample(range(100), 5)    # 5 unik dari 0-99

# collections
from collections import Counter, defaultdict, namedtuple

Counter("abracadabra")
# Counter({'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1})

d = defaultdict(list)
d["key"].append(1)  # Tidak perlu cek key ada

Point = namedtuple("Point", ["x", "y"])
p = Point(3, 4)
print(p.x, p.y)  # 3 4
← Sebelumnya Tutorial JavaScript Selanjutnya → Artikel Lainnya
🔍 Zoom
100%
🎨 Tema