Functions in Python
What is Function?
Function adalah blok kode yang terorganisir dan dapat digunakan kembali yang dirancang untuk melakukan tugas tertentu. Functions membantu mengorganisir kode menjadi bagian-bagian yang lebih kecil dan memungkinkan kode untuk digunakan kembali tanpa menulis ulang.
Why Use Functions?
- Reusability (Dapat Digunakan Kembali): Kode yang sama dapat digunakan berkali-kali
- Modularity (Modularitas): Memecah program menjadi bagian-bagian yang lebih kecil dan terkelola
- Abstraction (Abstraksi): Menyembunyikan detail implementasi dari pengguna function
- Organization (Organisasi): Membuat kode lebih terstruktur dan mudah dibaca
Function Components
1. Basic Function
def sapa():
print("Hello World!")
# Function dengan parameter
def sapa_nama(nama): # 'nama' adalah parameter
print(f"Hello {nama}!")
# Function dengan return value
def tambah(a, b):
return a + b # 'return' mengembalikan nilai
# Memanggil function
sapa() # Hello World!
sapa_nama("John") # Hello John!
hasil = tambah(3, 4) # 7
2. Default Parameters
Default parameters memungkinkan function memiliki nilai default jika tidak ada argumen yang diberikan.
def sapa_lengkap(nama, pesan="Selamat datang"):
print(f"{pesan}, {nama}!")
# Cara pemanggilan
sapa_lengkap("John") # Menggunakan default parameter
sapa_lengkap("John", "Selamat pagi") # Override default parameter
3. *args (Arbitrary Arguments)
*args memungkinkan function menerima jumlah parameter yang tidak terbatas. Parameter disimpan sebagai tuple.
def jumlahkan(*args):
print("Tipe args:", type(args)) # <class 'tuple'>
total = 0
for angka in args:
total += angka
return total
print(jumlahkan(1, 2, 3)) # 6
print(jumlahkan(1, 2, 3, 4, 5)) # 15
4. **kwargs (Keyword Arguments)
**kwargs memungkinkan function menerima jumlah parameter bernama yang tidak terbatas. Parameter disimpan sebagai dictionary.
def cetak_info(**kwargs):
print("Tipe kwargs:", type(kwargs)) # <class 'dict'>
for key, value in kwargs.items():
print(f"{key}: {value}")
cetak_info(nama="John", umur=25, kota="Jakarta")
5. Lambda Functions
Lambda functions adalah anonymous functions yang dapat ditulis dalam satu baris. Berguna untuk operasi sederhana.
# Normal function
def kuadrat(x):
return x ** 2
# Lambda equivalent
kuadrat_lambda = lambda x: x ** 2
print(kuadrat(5)) # 25
print(kuadrat_lambda(5)) # 25
6. Function Scope
Python memiliki aturan scope yang menentukan di mana variable dapat diakses.
x = "global" # Global scope
def fungsi():
y = "local" # Local scope
print(x) # Dapat mengakses variable global
print(y) # Dapat mengakses variable local
def fungsi_2():
# print(y) # Error: tidak dapat mengakses variable local fungsi lain
x = "local" # Membuat variable local baru
print(x) # Mengakses variable local
7. Docstrings
Docstrings digunakan untuk mendokumentasikan function.
def hitung_luas(panjang: float, lebar: float) -> float:
"""
Menghitung luas persegi panjang.
Args:
panjang (float): Panjang persegi panjang
lebar (float): Lebar persegi panjang
Returns:
float: Luas persegi panjang
"""
return panjang * lebar
Best Practices
-
Nama Function yang Deskriptif
# Buruk def f(x): return x * 2 # Baik def kalikan_dua(angka): return angka * 2
-
Satu Fungsi, Satu Tugas
# Buruk def proses_data(data): # Validasi data # Transformasi data # Simpan data # Kirim email pass # Baik def validasi_data(data): pass def transformasi_data(data): pass def simpan_data(data): pass def kirim_email(data): pass
-
Gunakan Type Hints
def hitung_umur(tahun_lahir: int) -> int: return 2024 - tahun_lahir
-
Return Values yang Konsisten
# Buruk def get_user(id): if id == 1: return {"name": "John"} return None # Inconsistent return type # Baik def get_user(id): if id == 1: return {"name": "John"} return {} # Consistent return type
Note:
- Function adalah building blocks dari program Python
- Gunakan docstrings untuk dokumentasi
- Perhatikan scope variables
- Pisahkan logic yang kompleks menjadi beberapa function
- Gunakan type hints untuk memperjelas tipe data