Function

Fungsi (Function) dalam Python

Fungsi adalah blok kode yang dirancang untuk melakukan tugas tertentu. Fungsi membantu membuat program lebih modular, mengurangi duplikasi kode, dan meningkatkan keterbacaan.


Jenis Fungsi di Python

  1. Fungsi Bawaan (Built-in Functions)
    Fungsi yang sudah disediakan oleh Python, seperti print(), len(), type(), dll.
    • Contoh: print("Hello, World!") # Output: Hello, World!
  2. Fungsi Buatan Sendiri (User-defined Functions)
    Fungsi yang dibuat oleh pengguna sesuai kebutuhan.

Membuat Fungsi dalam Python

Fungsi didefinisikan menggunakan kata kunci def.

Sintaks Dasar:

def nama_fungsi(parameter1, parameter2, ...):
    """
    (Opsional) Docstring: Penjelasan singkat tentang fungsi.
    """
    # Blok kode
    return nilai  # (Opsional) Mengembalikan hasil

Contoh:

def tambah(a, b):
    return a + b

hasil = tambah(3, 5)
print(hasil)  # Output: 8

Komponen Fungsi

  1. Nama Fungsi
    Identitas unik untuk memanggil fungsi. Harus mengikuti aturan penamaan variabel Python.
    • Contoh: tambah, hitung_luas.
  2. Parameter
    Input yang diterima oleh fungsi untuk diolah. Parameter bersifat opsional.
    • Contoh: def sapaan(nama): print(f"Halo, {nama}!") sapaan("Ahmad") # Output: Halo, Ahmad!
  3. Blok Kode
    Perintah atau logika yang dijalankan oleh fungsi.
  4. Nilai Balikan (Return Value)
    Fungsi dapat mengembalikan hasil proses menggunakan kata kunci return.
    • Contoh: def kali(a, b): return a * b print(kali(4, 5)) # Output: 20

Parameter dan Argumen

  • Parameter: Variabel yang ditentukan saat mendefinisikan fungsi.
  • Argumen: Nilai yang diberikan saat memanggil fungsi.

Jenis Argumen:

  1. Argumen Posisi (Positional Arguments)
    Argumen diberikan sesuai urutan parameter.
    • Contoh: def volume_balok(p, l, t): return p * l * t print(volume_balok(2, 3, 4)) # Output: 24
  2. Argumen Kata Kunci (Keyword Arguments)
    Argumen diberikan dengan menyebut nama parameter.
    • Contoh: print(volume_balok(p=2, l=3, t=4)) # Output: 24
  3. Argumen Default
    Parameter dapat memiliki nilai default jika argumen tidak diberikan.
    • Contoh: def sapaan(nama="SItizen"): print(f"Halo, {nama}!") sapaan() # Output: Halo, SItizen!
  4. Argumen Tidak Terbatas
    • Gunakan *args untuk menerima argumen dalam bentuk tuple. def jumlahkan(*angka): return sum(angka) print(jumlahkan(1, 2, 3, 4)) # Output: 10
    • Gunakan **kwargs untuk menerima argumen dalam bentuk dictionary. def info_mahasiswa(**data): for k, v in data.items(): print(f"{k}: {v}") info_mahasiswa(nama="Ahmad", nim="20241001") # Output: # nama: Ahmad # nim: 20241001

Fungsi Lambda

Fungsi anonim (tanpa nama) yang ditulis dengan satu baris kode menggunakan kata kunci lambda.

Sintaks:

lambda parameter: ekspresi

Contoh:

kali = lambda a, b: a * b
print(kali(3, 4))  # Output: 12

Fungsi sebagai Argumen

Fungsi dapat diteruskan ke fungsi lain sebagai argumen.

  • Contoh: def panggil_fungsi(fungsi, nilai): return fungsi(nilai) print(panggil_fungsi(lambda x: x**2, 5)) # Output: 25

Fungsi Bersarang (Nested Functions)

Fungsi dapat didefinisikan di dalam fungsi lain.

  • Contoh: def luar(): def dalam(): return "Hello dari fungsi dalam!" return dalam() print(luar()) # Output: Hello dari fungsi dalam!

Dekorator

Dekorator adalah cara untuk memodifikasi fungsi tanpa mengubah definisinya.

  • Contoh: def dekorator(fungsi): def wrapper(): print("Sebelum fungsi dijalankan") fungsi() print("Setelah fungsi dijalankan") return wrapper @dekorator def halo(): print("Halo, Dunia!") halo() # Output: # Sebelum fungsi dijalankan # Halo, Dunia! # Setelah fungsi dijalankan

Keuntungan Menggunakan Fungsi

  1. Modularitas: Kode lebih terorganisir dan terpisah dalam modul kecil.
  2. Reusable: Fungsi dapat digunakan kembali di berbagai tempat.
  3. Mengurangi Duplikasi: Tidak perlu menulis ulang logika yang sama.
  4. Meningkatkan Keterbacaan: Program lebih mudah dipahami.

Fungsi dalam Python sangat fleksibel dan mendukung berbagai fitur lanjutan untuk meningkatkan efisiensi pengembangan aplikasi.

Leave a Reply

Your email address will not be published. Required fields are marked *