Developer Roadmap
/Common Packages
TopicStep 56 filesOpen folder on GitHub

Common Packages

4.paradigm.md
View on GitHub

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)
ParadigmFokusContoh
Imperativelangkah-langkahloops
Proceduralfungsiutilities
OOPobjek & classbackend
Functionaltransformasi & pure functionslist 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