Pelajaran 11 dari 12
11. Pemrograman Fungsional
Python mendukung beberapa konsep pemrograman fungsional seperti fungsi sebagai first-class object dan operasi pada koleksi data.
Map, Filter, dan Reduce
# Map: menerapkan fungsi ke setiap item angka = [1, 2, 3, 4] kuadrat = list(map(lambda x: x**2, angka)) print(kuadrat) # Output: [1, 4, 9, 16] # Filter: menyaring item berdasarkan kondisi genap = list(filter(lambda x: x % 2 == 0, angka)) print(genap) # Output: [2, 4] # Reduce: menggabungkan semua item (perlu diimport) from functools import reduce total = reduce(lambda x, y: x + y, angka) print(total) # Output: 10
List Comprehension
# Membuat list baru dengan cara yang ringkas
angka = [1, 2, 3, 4, 5]
# List comprehension biasa
kuadrat = [x**2 for x in angka]
print(kuadrat) # Output: [1, 4, 9, 16, 25]
# Dengan kondisi
genap = [x for x in angka if x % 2 == 0]
print(genap) # Output: [2, 4]
# Dictionary comprehension
kuadrat_dict = {x: x**2 for x in angka}
print(kuadrat_dict) # Output: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Fungsi sebagai First-Class Object
# Fungsi bisa disimpan dalam variabel
def sapa(nama):
return f"Halo, {nama}!"
fungsi_sapa = sapa
print(fungsi_sapa("Budi")) # Output: Halo, Budi!
# Fungsi sebagai parameter
def operasi_angka(a, b, fungsi):
return fungsi(a, b)
def tambah(x, y):
return x + y
print(operasi_angka(5, 3, tambah)) # Output: 8
Latihan:
Gunakan list comprehension untuk membuat list yang berisi kuadrat dari angka ganjil antara 1 sampai 20.
# Solusi contoh kuadrat_ganjil = [x**2 for x in range(1, 21) if x % 2 != 0] print(kuadrat_ganjil) # Output: [1, 9, 25, 49, 81, 121, 169, 225, 289, 361]