Home » python » Fungsi di Python: Code dan Cara Membuatnya

Fungsi di Python: Code dan Cara Membuatnya

by Catur Kurnia Sari
by Catur Kurnia Sari

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.

Membuat Fungsi

Dalam Python sebuah fungsi didefinisikan menggunakan kata kunci def.

Contoh:

def my_function():
  print("Hello dari fungsi")

Memanggil Fungsi

Untuk memanggil suatu fungsi, gunakan nama fungsi diikuti dengan tanda kurung.

Contoh:

def my_function():
  print("Hello dari fungsi")

my_function()

Argumen

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.

Parameter atau Argumen?

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.

Jumlah Argumen

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")

Argumen Arbitary , * args

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.

Kata Kunci Argumen

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.

Keyword Argumen Arbitary, ** kwargs

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.

Nilai Parameter Default

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")

Meneruskan List sebagai Argumen

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)

Mengembalikan Nilai

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))

Pernyataan Pass

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

Pengulangan

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)

You may also like