PARADIGM
Python adalah multi-paradigm language
Bisa menulis dengan gaya
- Imperative
- Procedural
- Object-Oriented
- Functional
- Declarative
Penulisan kode berubah tergantun paradigma.
Imperative Programming
"Tell me how to do it step by step"
Contoh imperative
numbers = [1, 2, 3, 4, 5]
result = []
for n in numbers:
result.append(n * 2)
print(result)
Fokus pada bagaiman caranya (loop, append)
Procedural Programming
Imperative tapi diorganisir jadi fungsi-fungsi
Contoh
def double(n):
return n * 2
def process(nums):
result = []
for n in nums:
result.append(double(n))
return result
print(process([1,2,3]))
Dipakai saat: scripting, program kecil, utility tools
Object-Oriented Programming
"Model real-world objects into classes & objects"
- Class, inheritance, encapsulation
Contoh
class User:
def __init__(self, name):
self.name = name
def greet(self):
return f"Hello {self.name}"
u = User("Pythonia")
print(u.greet())
OOP dipakai di: FastAPI, Django, SQLAchemy, Pydantic, ML Frameworks
Functional Programming
"Tell me what to do, not how"
Fokus pada
- Pure functions
- No mutable state
- No side effects
- Higher-order functions
- Map, filter, reduce
- Lambda
Imperative
result = []
for x in range(10):
if x % 2 == 0:
result.append(x * x)
Functional version
result = [x * x for x in range(10) if x % 2 == 0]
Atau memakai filter dan map
result = list(
map(lambda x: x*x, filter(lambda x: x % 2 == 0, range(10)))
)
Banyak dipakai
- Data pipeline
- ETL
- ML preprocessing
- Processing API results
Declarative Programming
"Describe the result you want; the system decides how to do it"
- Fokus pada tujuan, bukan langkah
SQLalchemy ORM
users = db.query(User).filter(User.age > 20).all()
Kamu tidak menuliskan bagaimana SQL dijalankan, Python/ORM yang mengerjakan.
Pydantic (declarative model)
class User(BaseModel):
name: str
age: int
Hanya mendeklarasikan struktur data
Perbandingan Paradigma
Python fleksibel, tapi biasanya
- OOP + Functional (FastAPI)
- Declarative + OOP (SQLAlchemy, Pydantic)
- Imperative + Functional (data pipeline)
- Pure procedural (scripting kecil)
| Paradigm | Fokus | Contoh |
|---|---|---|
| Imperative | langkah-langkah | loops |
| Procedural | fungsi | utilities |
| OOP | objek & class | backend |
| Functional | transformasi & pure functions | list comprehension |
| Declarative | “apa yang diminta” bukan “bagaimana” | SQL, Pydantic |
Reacl-world example blending paradigms
Contoh FastAPI route
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
# Declarative data model
class User(BaseModel):
name: str
age: int
# Procedural + Functional + Declarative
@app.post("/users")
async def create_user(user: User):
return user
Pada case diatas
- Deklaratif: pydantic model
- Imperatif: return response
- Functional: async function
- OOP: FastAPI built on class-based system
Tidak haus menguasai seluruh paradigma, minimal pahami
- Imperative - dasar python
- OOP - class, inheritance, encapsulation
- Functional - list comprehension, lambda, map/filter
- Declarative - ORM, pydantic