Fungsi Lanjut Python

Sebelum membaca artikel ini, seharusnya Anda sudah memahami terlebih dahulu wacana fungsi. Artikel ini membahas lanjutan dari dasar fungsi di Python. Fungsi lanjutan ini terdiri dari rungsi rekursi dan fungsi lambda (fungsi anonim).





Fungsi Rekursi



Fungsi rekursi yaitu fungsi yang memanggil dirinya sendiri secara berulang. Jadi di dalam tubuh fungsi kita memanggil fungsi itu sendiri.



Di dalam matematika, kita mengenal wacana faktorial. Faktorial yaitu perkalian bilangan asli berturut – turut dari n sampai dengan 1. Faktorial n dinotasikan dengan n! dimana n! = n (n – 1)(n – 2)(n – 3) ... (3)(2)(1). Faktorial yaitu teladan dari fungsi rekursi.



 
# Contoh fungsi rekursi
# Menentukan faktorial dari bilangan
def faktorial(x):
"""Fungsi rekursi untuk menentukan faktorial bilangan"""
if x == 1:
return 1
else:
return (x * faktorial(x-1))


bil = 4
print("Faktorial dari", bil, " adalah", faktorial(bil))
 


Pada teladan di atas, fungsi faktorial() memanggil dirinya sendiri secara rekursi. Ilustrasi proses dari fungsi di atas yaitu mirip berikut:



faktorial(4)
4 * faktorial(3)
4 * 3 * faktorial(2)
4 * 3 * 2 * 1
4 * 3 * 2
4 * 6
24


Rekursi fungsi berakhir saat bilangan sudah berkurang menjadi 1. Ini disebut sebagai kondisi dasar (base condition). Setiap fungsi rekursi harus memiliki kondisi dasar. Bila tidak, maka fungsi tidak akan pernah berhenti (infinite loop).



Keuntungan Menggunakan Rekursi




  • Fungsi rekursi membuat arahan terlihat lebih clean dan  elegan


  • Fungsi yang rumit sanggup dipecah menjadi lebih kecil dengan rekursi


  • Membangkitkan data berurut lebih simpel menggunakan rekursi ketimbang menggunakan iterasi bersarang.



Kerugian Menggunakan Rekursi




  • Terkadang logika dibalik rekursi agak sukar untuk diikuti


  • Pemanggilan rekursi kurang efektif lantaran yaitu memakan lebih banyak memori


  • Fungsi rekursi lebih sulit untuk didebug





Fungsi Anonim (Lambda)



Salah satu fitur python yang cukup memiliki kegunaan yaitu fungsi anonim. Dikatakan fungsi anonim lantaran yaitu fungsi ini tidak diberikan nama pada saat didefinisikan.



Pada fungsi biasa kita menggunakan kata kunci def untuk membuatnya, sedangkan fungsi anonim ini kita menggunakan kata kunci lambda. Oleh lantaran yaitu itu, fungsi anonim ini dikenal juga dengan fungsi lambda.



Sintaks Fungsi Lambda



Fungsi lambda memiliki sintaks mirip berikut:



lambda arguments: expression


Fungsi lambda sanggup memiliki banyak argumen, tapi hanya boleh memiliki satu ekspresi. Ekspresi tersebutlah yang dikembalikan sebagai hasil dari fungsi. Fungsi lambda sanggup kita simpan di dalam variabel untuk digunakan kemudian.



 
# Program menggunakan lambda 1 argumen
kuadrat = lambda x: x*x


# Output: 9
print(kuadrat(3))


# Lambda dengan 2 argumen
kali = lambda x, y: x*y


# Output: 12
print(kali(4,3))


Tanpa menggunakan lambda, teladan fungsi di atas akan menjadi mirip berikut:



>>> def kuadrat(x):
return x**2
>>> kuadrat(3)
9

>>> def kali(x,y):
return x*y
>>> kali(4,3)
12


Penggunaan Fungsi Lambda



Lambda digunakan pada saat kita membutuhkan fungsi anonim untuk saat yang singkat. Di Python, fungsi lambda sering digunakan sebagai argumen untuk fungsi yang menggunakan fungsi lain sebagai argumen mirip fungsi filter(), map(), dan lain-lain.



Contoh Penggunaan Lambda Dengan Fungsi filter()



Fungsi filter mengambil dua buah argumen, yaitu satu buah fungsi dan satu buah list.



Sesuai dengan namanya filter (penyaring), fungsi akan menguji  semua anggota list terhadap fungsi, apakah dan mengambil hasil yang bernilai True. Hasil keluarannya yaitu sebuah list baru hasil filter. Berikut yaitu contohnya:



 
# Filter bilangan ganjil dari list
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list_ganjil = list(filter(lambda x: x%2 != 0, my_list))


# Output: [1, 3, 5, 7, 9]
print(list_ganjil)


Contoh Penggunaan Lambda Dengan Fungsi map()




Fungsi map() mengambil dua buah argumen, yaitu satu buah fungsi dan satu buah list.



Fungsi map() akan memetakan atau memanggil fungsi dengan satu persatu anggota list sebagai argumennya. Hasilnya yaitu list baru hasil dari keluaran fungsi terhadap masing-masing anggota list. Berikut yaitu contohnya:



 
# Program untuk menghasilkan kuadrat bilangan
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
kuadrat = list(map(lambda x: x*x, my_list))


# Output: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100 ]
print(kuadrat)


 



Popular posts from this blog

Subitems Listview Berwarna Selang Seling

Source Code Aplikasi Tagihan Internet Memakai Php