Fungsi adalah blok kode yang hanya berjalan saat dipanggil.
Kita dapat mengirimkan data, yang dikenal sebagai parameter, ke dalam suatu fungsi.
Sebuah fungsi dapat mengembalikan data sebagai hasilnya.
Section Artikel
Dalam Python sebuah fungsi didefinisikan menggunakan kata kunci def.
Contoh:
def my_function(): print("Hello dari fungsi")
Untuk memanggil suatu fungsi, gunakan nama fungsi diikuti dengan tanda kurung.
Contoh:
def my_function(): print("Hello dari fungsi") my_function()
Informasi dapat dimasukkan ke dalam fungsi sebagai argumen.
Argumen ditentukan setelah nama fungsi, di dalam tanda kurung. Kita dapat menambahkan argumen sebanyak yang kita inginkan, cukup pisahkan dengan koma.
Contoh berikut memiliki fungsi dengan satu argumen (fname). Ketika fungsi dipanggil, kami meneruskan nama depan, yang digunakan di dalam fungsi untuk mencetak nama lengkap.
Contoh:
def my_function(fname): print(fname + " Refsnes") my_function("Emil") my_function("Tobias") my_function("Linus")
Argumen sering kali disingkat menjadi args dalam dokumentasi Python.
Istilah parameter dan argumen dapat digunakan untuk hal yang sama: informasi yang dilewatkan ke dalam suatu fungsi.
Dari perspektif fungsi:
Parameter adalah variabel yang terdaftar di dalam tanda kurung dalam definisi fungsi.
Argumen adalah nilai yang dikirim ke fungsi saat dipanggil.
Secara default, fungsi harus dipanggil dengan jumlah argumen yang benar. Artinya jika fungsi mengharapkan 2 argumen, maka kita harus memanggil fungsi dengan 2 argumen, tidak lebih, dan tidak kurang.
Contoh:
Fungsi ini mengharapkan 2 argumen, dan memanggil 2 argumen
def my_function(fname, lname): print(fname + " " + lname) my_function("Emil", "Refsnes")
Jika kita mencoba memanggil fungsi dengan 1 atau 3 argumen, akan menghasilkan error.
Contoh:
Fungsi ini mengharapkan 2 argumen, tetapi hanya memanggil 1
def my_function(fname, lname): print(fname + " " + lname) my_function("Emil")
Jika kita tidak tahu berapa banyak argumen yang akan diteruskan ke fungsi, tambahkan * sebelum nama parameter dalam definisi fungsi.
Dengan cara ini fungsi akan menerima tuple argumen, dan dapat mengakses item yang sesuai.
Contoh:
Jika jumlah argumen tidak diketahui, tambahkan * sebelum nama parameter
def my_function(*kids): print("Anak termuda " + kids[2]) my_function("Emil", "Tobias", "Linus")
Argumen Arbitary sering kali disingkat menjadi * args dalam dokumentasi Python.
Kita juga dapat mengirim argumen dengan sintaks key = value.
Dengan cara ini urutan argumen tidak menjadi masalah.
Contoh:
def my_function(child3, child2, child1): print("Anak termuda" + child3) my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")
Frase Kata Kunci Argumen sering disingkat menjadi kwargs dalam dokumentasi Python.
Jika kita tidak mengetahui berapa banyak argumen kata kunci yang akan diteruskan ke fungsi, tambahkan dua tanda bintang: ** sebelum nama parameter dalam definisi fungsi.
Dengan cara ini fungsi akan menerima kamus argumen, dan dapat mengakses item yang sesuai.
Contoh
Jika jumlah argumen kata kunci tidak diketahui, tambahkan tanda ganda ** sebelum nama parameter
def my_function(**kid): print("Nama belakangnya adalah " + kid["lname"]) my_function(fname = "Tobias", lname = "Refsnes")
Argumen Kword arbitary sering disingkat menjadi ** kwargs dalam dokumentasi Python.
Contoh berikut menunjukkan cara menggunakan nilai parameter default.
Jika kita memanggil fungsi tanpa argumen, maka akan diatur menggunakan nilai default.
Contoh:
def my_function(country = "Norwegia"): print("Saya berasal dari " + country) my_function("Swedia") my_function("India") my_function() my_function("Brazil")
Kita dapat mengirim tipe data apapun dari argumen ke suatu fungsi (string, angka, list, kamus, dll.). Dan itu akan diperlakukan sebagai tipe data yang sama di dalam fungsi.
Misalnya, jika kita mengirim List sebagai argumen, List itu akan tetap menjadi List saat mencapai fungsi.
Contoh:
def my_function(food): for x in food: print(x) fruits = ["apel", "pisang", "ceri"] my_function(fruits)
Untuk membuat suatu fungsi 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))
Definisi suatu fungsi tidak boleh kosong, tetapi jika karena alasan tertentu memiliki definisi fungsi tanpa konten, masukkan pernyataan pass untuk menghindari error.
Contoh:
def myfunction(): pass # memiliki definisi fungsi kosong seperti ini, akan menimbulkan error tanpa pernyataan pass
Python juga menerima rekursi fungsi, yang berarti fungsi yang ditentukan dapat memanggil dirinya sendiri.
Rekursi adalah konsep matematika dan pemrograman yang umum. Artinya suatu fungsi memanggil dirinya sendiri. Hal ini mempunyai manfaat yang berarti bahwa kita dapat mengulang melalui data untuk mencapai hasil.
Pengembang harus sangat berhati-hati dengan rekursi karena dapat dengan mudah tergelincir ke dalam penulisan fungsi yang tidak pernah berhenti, atau yang menggunakan memori atau daya prosesor dalam jumlah berlebih. Namun, ketika ditulis dengan benar, rekursi bisa 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 (“recurse”). Kami menggunakan variabel k sebagai data, yang berkurang (-1) setiap kali kami mengulang. Rekursi berakhir ketika kondisinya tidak lebih besar dari 0 (yaitu ketika 0).
Untuk pengembang baru, perlu waktu beberapa saat untuk mengetahui cara kerjanya, cara terbaik untuk mengetahuinya adalah dengan menguji dan memodifikasinya.
Contoh:
Contoh Rekursi
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)