Belajar Python Dasar

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]
Sebelumnya Selanjutnya