Function dan Parameter Function di Python

Post image

Fungsi (function) adalah salah satu konsep fundamental dalam pemrograman, termasuk di Python. Dengan fungsi, kita bisa mengelompokkan kode yang memiliki tugas tertentu sehingga lebih mudah digunakan kembali, lebih rapi, dan mudah dipelihara. Pada artikel ini, kita akan membahas apa itu fungsi, bagaimana cara membuat fungsi di Python, serta bagaimana menggunakan parameter dan mengembalikan nilai dari fungsi.

Apa Itu Function?

Function adalah blok kode yang hanya akan dijalankan ketika dipanggil. Fungsi dapat menerima input (parameter/argumen), melakukan proses tertentu, dan mengembalikan hasil (opsional).

Manfaat menggunakan fungsi:

  • Menghindari penulisan kode yang sama berulang kali (reusable)
  • Membuat kode lebih terstruktur dan mudah dibaca
  • Memudahkan debugging dan pengembangan

Cara Membuat Function di Python

Untuk membuat fungsi di Python, gunakan kata kunci def diikuti nama fungsi, tanda kurung, dan titik dua. Contoh:

def sapa():
    print("Halo, selamat datang di Python!")

Untuk menjalankan fungsi, cukup panggil namanya diikuti tanda kurung:

sapa()
Halo, selamat datang di Python!

Catatan: Nama fungsi di Python sebaiknya menggunakan huruf kecil dan underscore (_) jika lebih dari satu kata, misal: hitung_luas.

Function dengan Parameter

Parameter adalah variabel yang didefinisikan dalam tanda kurung saat membuat fungsi. Parameter memungkinkan kita mengirim data ke dalam fungsi.

Contoh fungsi dengan satu parameter:

def sapa_nama(nama):
    print(f"Halo, {nama}! Selamat belajar Python.")

Memanggil fungsi dengan argumen:

sapa_nama("Budi")
sapa_nama("Ani")
Halo, Budi! Selamat belajar Python.
Halo, Ani! Selamat belajar Python.

Fungsi juga bisa memiliki lebih dari satu parameter:

def tambah(a, b):
    print(f"Hasil: {a + b}")
tambah(3, 5)
tambah(10, 7)
Hasil: 8
Hasil: 17

Function yang Mengembalikan Nilai (Return)

Fungsi bisa mengembalikan nilai menggunakan kata kunci return. Nilai ini bisa disimpan dalam variabel atau digunakan langsung.

def kali(a, b):
    return a * b

hasil = kali(4, 5)
print(f"Hasil perkalian: {hasil}")
Hasil perkalian: 20

Jika fungsi tidak memiliki return, secara default akan mengembalikan None.

Default Parameter (Nilai Default)

Kita bisa memberikan nilai default pada parameter. Jika argumen tidak diberikan saat pemanggilan, nilai default akan digunakan.

def sapa_pengguna(nama="Pengunjung"):
    print(f"Halo, {nama}!")
sapa_pengguna("Cindy")
sapa_pengguna()
Halo, Cindy!
Halo, Pengunjung!

Keyword Arguments

Saat memanggil fungsi, kita bisa menyebutkan nama parameternya secara eksplisit (keyword arguments). Ini membuat kode lebih jelas dan urutan argumen bisa diubah.

def biodata(nama, umur, kota):
    print(f"Nama: {nama}, Umur: {umur}, Kota: {kota}")

biodata("Dodi", 20, "Bandung")
biodata(umur=25, kota="Jakarta", nama="Eka")
Nama: Dodi, Umur: 20, Kota: Bandung
Nama: Eka, Umur: 25, Kota: Jakarta

Parameter Tak Terbatas (*args dan **kwargs)

Kadang kita ingin fungsi menerima jumlah argumen yang tidak pasti. Gunakan *args untuk menerima banyak argumen posisi, dan **kwargs untuk banyak argumen keyword.

*args (Positional Arguments)

def jumlahkan(*angka):
    total = 0
    for n in angka:
        total += n
    return total

print(jumlahkan(1, 2, 3))
print(jumlahkan(5, 10, 15, 20))
6
50

**kwargs (Keyword Arguments)

def tampilkan_data(**data):
    for key, value in data.items():
        print(f"{key}: {value}")

tampilkan_data(nama="Budi", umur=21, kota="Surabaya")
nama: Budi
umur: 21
kota: Surabaya

Fungsi sebagai Nilai Kembali (Return Function) dan Fungsi di dalam Fungsi

Python mendukung konsep fungsi di dalam fungsi (nested function) dan fungsi yang mengembalikan fungsi lain (closure). Ini adalah fitur lanjutan yang sangat berguna, terutama untuk membuat fungsi dinamis atau membungkus logika tertentu.

Nested Function (Fungsi Bersarang)

Nested function adalah fungsi yang didefinisikan di dalam fungsi lain. Fungsi ini hanya bisa diakses dari dalam fungsi induknya.

def salam(ucapan):
    def sapa(nama):
        return f"{ucapan}, {nama}!"
    return sapa

salam_pagi = salam("Selamat pagi")
print(salam_pagi("Budi"))
Selamat pagi, Budi!

Closure

Closure terjadi ketika fungsi dalam (inner function) “mengingat” nilai dari variabel di fungsi luarnya, meskipun fungsi luar sudah selesai dieksekusi. Closure sering digunakan untuk membuat fungsi dengan konfigurasi tertentu.

Contoh closure untuk membuat fungsi pangkat:

def pangkat(n):
    def hitung(x):
        return x ** n
    return hitung

kuadrat = pangkat(2)
kubik = pangkat(3)

print(kuadrat(5))
print(kubik(2))
25
8

Pada contoh di atas, fungsi pangkat mengembalikan fungsi hitung yang masih “mengingat” nilai n dari fungsi luarnya. Dengan closure, kita bisa membuat fungsi baru dengan perilaku yang berbeda-beda sesuai kebutuhan.

Docstring pada Function

Docstring adalah string khusus yang diletakkan tepat setelah deklarasi fungsi (di dalam tanda kutip tiga, """ ... """). Docstring berfungsi sebagai dokumentasi singkat yang menjelaskan tujuan, parameter, dan nilai kembali dari fungsi tersebut. Dengan docstring, orang lain (atau diri sendiri di masa depan) bisa lebih mudah memahami cara kerja dan penggunaan fungsi hanya dengan membaca dokumentasinya, tanpa harus melihat seluruh isi kode.

Contoh penggunaan docstring pada fungsi:

def luas_segitiga(alas, tinggi):
    """
    Menghitung luas segitiga.
    alas: panjang alas (float/int)
    tinggi: tinggi segitiga (float/int)
    return: luas segitiga (float)
    """
    return 0.5 * alas * tinggi

print(luas_segitiga(10, 5))
25.0

Docstring juga bisa diakses menggunakan fungsi help() atau atribut .__doc__:

print(luas_segitiga.__doc__)
Menghitung luas segitiga.
alas: panjang alas (float/int)
tinggi: tinggi segitiga (float/int)
return: luas segitiga (float)

Dengan menuliskan docstring, kode menjadi lebih terstruktur dan mudah digunakan oleh orang lain, terutama dalam proyek besar atau saat membuat library.

Contoh Aplikasi Praktis

1. Kalkulator Sederhana dengan Function

def kalkulator(a, b, operasi):
    if operasi == "+":
        return a + b
    elif operasi == "-":
        return a - b
    elif operasi == "*":
        return a * b
    elif operasi == "/":
        if b == 0:
            return "Error: Pembagian dengan nol"
        return a / b
    else:
        return "Operasi tidak dikenali"

print(kalkulator(10, 5, "+"))
print(kalkulator(10, 0, "/"))
15
Error: Pembagian dengan nol

2. Validasi Input dengan Function

def validasi_email(email):
    return "@" in email and "." in email

email = "[email protected]"
if validasi_email(email):
    print("Email valid")
else:
    print("Email tidak valid")
Email valid

3. Menampilkan Data Mahasiswa

def tampilkan_mahasiswa(*nama):
    print("Daftar Mahasiswa:")
    for n in nama:
        print(f"- {n}")

tampilkan_mahasiswa("Budi", "Ani", "Cindy")
Daftar Mahasiswa:
- Budi
- Ani
- Cindy

Tips Menggunakan Function di Python

No Tip Penjelasan
1 Gunakan nama fungsi yang jelas Nama fungsi sebaiknya deskriptif dan sesuai tugasnya
2 Tambahkan docstring Sertakan penjelasan singkat di awal fungsi
3 Hindari fungsi terlalu panjang Fungsi sebaiknya melakukan satu tugas spesifik
4 Manfaatkan parameter default Untuk membuat fungsi lebih fleksibel
5 Gunakan *args dan **kwargs jika perlu Untuk argumen yang jumlahnya tidak pasti
6 Return nilai jika hasil fungsi dibutuhkan Jangan hanya print, gunakan return jika ingin hasilnya dipakai lagi
7 Jangan lupa panggil fungsi Fungsi tidak akan berjalan jika tidak dipanggil

Kesimpulan

Fungsi adalah alat penting dalam pemrograman Python untuk membuat kode yang rapi, terstruktur, dan mudah digunakan ulang. Dengan memahami cara membuat fungsi, menggunakan parameter, mengembalikan nilai, serta fitur lanjutan seperti *args dan **kwargs, Anda bisa menulis program Python yang lebih efisien dan profesional.

Teruslah berlatih membuat fungsi sendiri untuk berbagai kebutuhan, mulai dari yang sederhana hingga kompleks. Dengan begitu, Anda akan semakin mahir dalam pemrograman Python. Selamat mencoba dan happy coding!

comments powered by Disqus

You May Also Like