Fungsi pada Python adalah blok kode yang hanya berjalan saat dipanggil. Anda dapat memasukkan data ke dalam fungsi, yang dikenal sebagai parameter, data yang dimasukkan melalui parameter akan bisa dipakai dalam suatu fungsi. Suatu fungsi dapat mengembalikan data sebagai hasilnya.
Membuat Fungsi
Dalam Python, sebuah fungsi didefinisikan menggunakan kata kunci def .
Contoh:
def my_function():
print("Halo dari sebuah fungsi")
Memanggil Fungsi
Untuk memanggil fungsi, gunakan nama fungsi diikuti dengan tanda kurung.
Contoh:
def my_function():
print("Halo dari sebuah fungsi")
my_function()
Output:
Halo dari sebuah fungsi
Argumen
Informasi dapat dimasukkan ke dalam fungsi sebagai argumen. Argumen ditentukan setelah nama fungsi, di dalam tanda kurung. Anda dapat menambahkan argumen sebanyak yang Anda inginkan, cukup pisahkan dengan koma.
Contoh berikut adalah fungsi dengan satu argumen fname sebagai data nama depan. Saat fungsi dipanggil, nama depan diberikan melalui argumen, kemudian digunakan di dalam fungsi untuk mencetak nama lengkap.
Contoh:
def my_function(fnama):
print(fnama + " Azalia")
my_function("Nabella")
my_function("Sarah")
my_function("Zara")
Output:
Nabella Azalia
Sarah Azalia
Zara Azalia
Catatan: Argumen sering disingkat menjadi args dalam dokumentasi Python.
Parameter atau Argumen?
Istilah parameter dan argumen dapat digunakan untuk hal yang sama yaitu informasi atau data yang dimasukkan ke dalam suatu fungsi.
Parameter adalah variabel yang tercantum di dalam tanda kurung dalam definisi fungsi. Argumen adalah nilai yang dikirim ke fungsi saat dipanggil. Jadi parameter adalah variabelnya, sedangkan argumen adalah nilainya.
Jumlah Argumen
Secara default, sebuah fungsi harus dipanggil dengan jumlah argumen yang benar. Artinya jika fungsi Anda mengharapkan 2 argumen, Anda harus memanggil fungsi tersebut dengan 2 argumen, tidak lebih, dan tidak kurang.
Contoh:
def my_function(depan, belakang):
print(depan + " " + belakang)
my_function("Emil", "Ridwan")
Output:
Emil Ridwan
Jika Anda mencoba memanggil fungsi dengan 1 atau 3 argumen, Anda akan mendapatkan error.
Contoh:
def my_function(depan, belakang):
print(depan + " " + belakang)
my_function("Emil")
Output:
Traceback (most recent call last):
File "./prog.py", line 4, in
TypeError: my_function() missing 1 required positional argument: 'belakang'
Argumen Arbitrary, *args
Jika Anda tidak mengetahui berapa banyak argumen yang akan dimasukkan ke dalam fungsi Anda, tambahkan a *
sebelum nama parameter dalam definisi fungsi.
Dengan cara ini fungsi akan menerima beberapa argumen dalam bentuk array, dan dapat mengakses item yang sesuai berdasarkan indeks array tersebut.
Contoh:
def my_function(*anak):
print("Anak bungsu adalah " + anak[2])
my_function("Nabella", "Sarah", "Zara")
Output:
Anak bungsu adalah Zara
Catatan: Argumen arbitrary sering disingkat menjadi *args dalam dokumentasi Python.
Keyword Argumen
Anda juga dapat mengirim argumen dengan sintaks key = value.
Dengan cara ini urutan argumen tidak menjadi masalah.
Contoh:
def my_function(anak3, anak2, anak1):
print("Anak bungsu adalah " + anak3)
my_function(anak1 = "Nabella", anak2 = "Sarah", anak3 = "Zara")
Output:
Anak bungsu adalah Zara
Catatan: Ungkapan Keyword Argumen sering disingkat menjadi kwargs dalam dokumentasi Python.
Argumen Kata Kunci Arbitrary, **kwargs
Jika Anda tidak mengetahui berapa banyak argumen kata kunci yang akan diteruskan ke fungsi Anda, tambahkan dua asterisk: **
sebelum nama parameter dalam definisi fungsi.
Dengan cara ini fungsi akan menerima argumen dalam bentuk object dictionary, kemudian fungsi dapat mengakses item yang sesuai.
Contoh:
def my_function(**anak):
print("Nama belakangnya adalah " + anak["belakang"])
my_function(depan = "Tobi", belakang = "Rinaldi")
Output:
Nama belakangnya adalah Rinaldi
Nilai Parameter Default
Contoh berikut menunjukkan cara menggunakan nilai parameter default.
Jika kita memanggil fungsi tanpa argumen, ia menggunakan nilai default.
Contoh:
def my_function(negara = "Indonesia"):
print("Saya dari " + negara)
my_function("Swedia")
my_function("India")
my_function()
my_function("Brazil")
Output:
Saya dari Swedia
Saya dari India
Saya dari Indonesia
Saya dari Brazil
List Sebagai Argumen
Anda dapat mengirim argumen tipe data apa pun ke suatu fungsi (string, angka, list, dictionary, dll), dan argumen tersebut akan diperlakukan sebagai tipe data yang sama di dalam fungsi.
Misalnya jika Anda mengirim list sebagai argumen, itu akan tetap menjadi list saat di dalam fungsi.
Contoh:
def my_function(makanan):
for x in makanan:
print(x)
buah = ["apel", "pisang", "ceri"]
my_function(buah)
Output:
apel
pisang
ceri
Nilai Return
Untuk membuat fungsi dalam mengembalikan nilai, gunakan pernyataan return
.
Contoh:
def my_function(x):
return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))
Output:
15
25
45
Fungsi Recursive
Python juga menerima fungsi recursive (rekursi), yang berarti fungsi yang dapat memanggil dirinya sendiri.
Rekursi adalah konsep matematika dan pemrograman yang umum. Ini berarti bahwa suatu fungsi memanggil dirinya sendiri. Ini bermanfaat karena Anda dapat mengulang data untuk mencapai hasil yang diinginkan.
Pengembang harus sangat berhati-hati dengan rekursi karena dapat dengan mudah menjadi fungsi yang tidak pernah berhenti dipanggil, atau fungsi yang menggunakan memori atau daya prosesor dalam jumlah berlebih. Namun, ketika ditulis dengan benar, rekursi dapat menjadi pendekatan pemrograman yang sangat efisien dan elegan secara matematis.
Dalam contoh ini, tri_recursion() adalah fungsi yang telah kita definisikan untuk memanggil dirinya sendiri. Variabel k digunakan sebagai data, yang berkurang ( -1 ) setiap kali fungsi dipanggil. Rekursi berakhir ketika kondisi tidak lebih besar dari 0 (yaitu ketika 0).
Bagi pengembang baru, perlu waktu untuk mengetahui cara kerjanya, cara terbaik untuk mengetahuinya adalah dengan menguji dan memodifikasinya.
Contoh:
def tri_recursion(k):
if(k > 0):
result = k + tri_recursion(k - 1)
print(result)
else:
result = 0
return result
print("\n\nHasil Contoh Rekursi")
tri_recursion(6)
Output:
Hasil Contoh Rekursi
1
3
6
10
15
21
Tutorial sebelumnya : Python For Loop
Tutorial setelahnya : Python Lambda
Semua Tutorial Python : Tutorial Python