Cheat Code Python: Trik Rahasia untuk Mempercepat Proyek Coding

menyelesaikan tugas coding yang biasanya 2 jam hanya dalam 15 menit. kombinasi trik, sintaks singkat, dan tools yang jarang diajarkan di bootcamp.

Durasi Baca: 8-10 menit


Pendahuluan

Bayangkan bisa menyelesaikan tugas coding yang biasanya 2 jam hanya dalam 15 menit. Rahasianya? Cheat code Python — kombinasi trik, sintaks singkat, dan tools yang jarang diajarkan di bootcamp. Artikel ini bukan sekadar kumpulan snippet, tapi panduan berbasis pengalaman lapangan untuk membuat kode Anda lebih efisien, rapi, dan less error-prone.


 

1. Cheat Environment: Setup Proyek Super Cepat

Virtual Environment Auto-Aktif

Tambahkan ini di ~/.bashrc atau ~/.zshrc untuk membuat virtualenv langsung aktif saat masuk folder proyek:

# Auto-aktifkan venv saat masuk folder  
export VENV_DIR=".venv"  
cd() {  
  builtin cd "$@" && [[ -d "$VENV_DIR" ]] && source "$VENV_DIR/bin/activate"  
}  

Manfaat: Tidak perlu lagi lupa source .venv/bin/activate!

Requirement.txt Otomatis

Gunakan pipreqs untuk generate requirements.txt yang akurat:

pip install pipreqs  
pipreqs . --force  # Deteksi dependency berdasarkan import di kode  

Bonus: Tambahkan --mode compat untuk versi Python lawas.

2. Cheat Sintaks: Tulis Lebih Sedikit, Hasil Lebih Banyak

Loop + Kondisi dalam Satu Baris

Ganti ini:

hasil = []  
for i in range(10):  
    if i % 2 == 0:  
        hasil.append(i*2)  

Dengan ini:

hasil = [i*2 for i in range(10) if i % 2 == 0]  

Statistik: Mengurangi 60% baris kode!

Ternary Operator untuk Logika Kompleks

# Ganti if-else bertingkat  
role = "admin" if user.is_superuser else "mod" if user.is_staff else "user"  

Unpacking Data Ekstrim

# Ambil elemen pertama & terakhir list  
first, *_, last = [1, 2, 3, 4, 5]  # first=1, last=5  

# Swap variabel tanpa temp  
a, b = b, a  

3. Cheat Debugging: Temukan Bug dalam 5 Detik

Breakpoint Interaktif

Ganti print() dengan breakpoint() (Python 3.7+):

def calculate(x):  
    breakpoint()  # Langsung masuk ke debugger  
    return x * 2  

Tip: Gunakan perintah p variable untuk inspect nilai.

Debug Ekspresi Reguler

Cek regex langsung di terminal:

import re  
re.DEBUG  
match = re.compile(r'^\d{3}-\d{2}$').match("123-45")  

Output: Menampilkan diagram parse regex!

4. Cheat Library: Kuasai Pandas & NumPy dengan Trik Ini

Filter DataFrame seperti Excel

import pandas as pd  

# Filter baris dengan query string  
df.query('salary > 5000 & department == "IT"')  

# Pilih kolom dengan regex  
df.filter(regex='^user_')  # Ambil kolom diawali "user_"  

Operasi NumPy 10x Lebih Cepat

Ganti loop dengan broadcasting:

# Hitung jarak Euclidean antar vektor  
import numpy as np  
vectors = np.random.rand(1000, 3)  
distances = np.sqrt(((vectors[:, None] - vectors) ** 2).sum(axis=2))  

5. Cheat Otomatisasi: Dari Git Hingga Deployment

Pre-commit Hook untuk Cek Kualitas

Buat file .pre-commit-config.yaml:

repos:  
- repo: https://github.com/pre-commit/pre-commit-hooks  
  rev: v4.4.0  
  hooks:  
    - id: trailing-whitespace  
    - id: end-of-file-fixer  
    - id: check-yaml  
- repo: https://github.com/psf/black  
  rev: 23.7.0  
  hooks:  
    - id: black  

Jalankan pre-commit install — kode akan otomatis diformat sebelum commit!

Deploy ke Heroku dalam 1 Command

# Setelah inisialisasi Git  
heroku create -a nama-app  
git push heroku main  

6. Cheat Sheet Ultimate

"""  
CHEAT SHEET PYTHON - 2024  
"""  

# ====== LIST OPERATIONS ======  
sum_even = sum(x for x in lst if x % 2 == 0)  # Sum bilangan genap  
flatten = [item for sublist in nested_list for item in sublist]  

# ====== DICTIONARY PRO ======  
from collections import defaultdict  
counter = defaultdict(int)  
counter["a"] += 1  # Tidak perlu cek key exists  

# ====== CONTEXT MANAGER CUSTOM ======  
from contextlib import contextmanager  
@contextmanager  
def timer():  
    import time  
    start = time.time()  
    yield  
    print(f"Waktu: {time.time()-start:.2f} detik")  

# ====== JINJA2 AUTOESCAPE ======  
from markupsafe import escape  
user_input = "<script>alert('hacked!')</script>"  
safe_html = escape(user_input) 
 
# ========== VARIABEL & TIPE DATA ==========
# Type Hinting (Python 3.10+)
name: str = "Alice"
age: int = 30
coordinates: tuple[float, float] = (3.14, -2.71)

# Walrus Operator (Python 3.8+)
if (n := len(data)) > 10:
    print(f"Data terlalu besar ({n} elemen)")

# ========== STRING ADVANCED ==========
# f-String Formatting
price = 99.9
print(f"Harga: {price:.2f} IDR")  # Harga: 99.90 IDR
print(f"Binary: {42:b}")          # Binary: 101010

# Multiline String dengan Preserved Format
sql = ("""
    SELECT * FROM users
    WHERE age > {age}
    LIMIT 10
""").format(age=18)

# ========== LIST/DIKT PRO ==========
# List Comprehension dengan Kondisi
numbers = [x**2 if x % 2 == 0 else x**3 for x in range(10)]

# Merge Dictionaries (Python 3.9+)
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
merged = dict1 | dict2  # {'a':1, 'b':3, 'c':4}

# ========== FUNGSI & CLASS ==========
# Decorator dengan Parameter
def retry(max_attempts):
    def decorator(func):
        def wrapper(*args, **kwargs):
            for _ in range(max_attempts):
                try:
                    return func(*args, **kwargs)
                except Exception:
                    pass
            raise RuntimeError("Gagal setelah beberapa percobaan")
        return wrapper
    return decorator

# Dataclass (Python 3.10+)
from dataclasses import dataclass

@dataclass(slots=True, frozen=True)
class User:
    name: str
    age: int

# ========== ASYNCIO ==========
# Async/Await Basic Pattern
import asyncio

async def fetch_data(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            return await response.json()

# Run Parallel Tasks
async def main():
    task1 = asyncio.create_task(fetch_data(url1))
    task2 = asyncio.create_task(fetch_data(url2))
    results = await asyncio.gather(task1, task2)

# ========== PANDAS PRO ==========
# Optimasi DataFrame Besar
import pandas as pd

# Baca file dengan chunks
chunk_size = 10_000
df = pd.concat(chunk for chunk in pd.read_csv('large.csv', chunksize=chunk_size))

# Query Efisien dengan .eval()
df.eval("revenue = price * quantity", inplace=True)

# ========== ERROR HANDLING ==========
# Custom Exception
class APITimeoutError(Exception):
    def __init__(self, endpoint):
        super().__init__(f"Timeout mengakses {endpoint}")
        self.endpoint = endpoint

# Context Manager untuk Error Handling
from contextlib import contextmanager

@contextmanager
def handle_errors():
    try:
        yield
    except ValueError as ve:
        print(f"Error nilai: {ve}")
    except Exception as e:
        print(f"Error tak terduga: {e}")

# ========== DEBUGGING ==========
# Debugging dengan breakpoint()
def buggy_function():
    breakpoint()  # Masuk ke pdb++
    # Perintah berguna: 
    # n (next), s (step into), pp (pretty print), w (where)

# Profiling dengan cProfile
import cProfile
cProfile.run('my_function()', sort='cumtime')

# ========== OPTIMISASI ==========
# Memoization dengan lru_cache
from functools import lru_cache

@lru_cache(maxsize=128)
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

# Kompilasi JIT dengan Numba
from numba import njit

@njit
def monte_carlo_pi(n_samples):
    acc = 0
    for _ in range(n_samples):
        x = np.random.random()
        y = np.random.random()
        if (x**2 + y**2) < 1.0:
            acc += 1
    return 4.0 * acc / n_samples

# ========== TESTING ==========
# Unit Test dengan pytest
def test_addition():
    assert 1 + 1 == 2

# Mocking dengan pytest-mock
def test_api_call(mocker):
    mock_get = mocker.patch('requests.get')
    mock_get.return_value.json.return_value = {"status": "OK"}
    
    result = fetch_data("http://fakeapi.com")
    assert result["status"] == "OK"

# ========== DEPLOYMENT ==========
# Dockerfile Minimal Python
"""
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["gunicorn", "app:app", "-b", "0.0.0.0:8000"]
"""

# ========== GIT HOOKS ==========
# .pre-commit-config.yaml
"""
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
  rev: v4.4.0
  hooks:
    - id: trailing-whitespace
    - id: end-of-file-fixer
    - id: check-yaml
- repo: https://github.com/psf/black
  rev: 23.7.0
  hooks:
    - id: black
      args: [--line-length=88]
"""

# ========== KEAMANAN ==========
# Hash Password dengan Bcrypt
import bcrypt

salt = bcrypt.gensalt()
hashed = bcrypt.hashpw(b"password123", salt)

# Validasi Input dengan Pydantic
from pydantic import BaseModel, EmailStr

class UserInput(BaseModel):
    name: str
    email: EmailStr
    age: int = Field(gt=0, lt=120) 

Kesimpulan: Dari Cheat Code ke Clean Code

Cheat code bukan tentang jalan pintas, tapi tentang menulis kode yang efisien dan mudah dipelihara. Seperti kata Guido van Rossum (pencipta Python): "Code is read much more often than it is written."

Ajakan Diskusi:
Cheat code Python apa yang paling sering Anda gunakan? Share di komentar! 💡

"Bahkan programmer senior pun punya file rahasia berisi snippet favorit mereka — itu bukan curang, itu efisien!" 🚀

I’m a Programmer, Not a Pro Gamer. Geek not Nerd. Last but not least, I just want to tell you that. Until next time, Ngoding Yuk!