Fungsi Lanjut Python
Saat sebelum membaca artikel ini, semestinya Anda telah pahami lebih dulu mengenai peranan. Artikel ini mengulas kelanjutan dari dasar peranan di Python. Peranan kelanjutan ini terbagi dalam rungsi rekursi dan peranan lambda (peranan anonim).
Fungsi Rekursi
Peranan rekursi ialah peranan yang panggil dirinya secara berulang-ulang . Maka pada tubuh peranan kita panggil peranan tersebut.
Dalam matematika, kita mengenali mengenai factorial. Factorial ialah perkalian bilangan asli berturut - ikut dari n s/d 1. Factorial n dinotasikan dengan n! di mana n! = n (n - 1)(n - 2)(n - 3)... (3)(2)(1). Factorial ialah contoh dari peranan rekursi.
script.py
IPython Shell
Powered by DataCamp
Pada contoh di atas, peranan factorial() panggil dirinya secara rekursi. Contoh dari proses peranan di atas ialah sebagai berikut:
factorial(4)
4 * factorial(3)
4 * 3 * factorial(2)
4 * 3 * 2 * 1
4 * 3 * 2
4 * 6
24
Rekursi peranan usai saat bilangan telah menyusut jadi 1. Ini dikatakan sebagai keadaan dasar (base condition). Tiap peranan rekursi harus mempunyai keadaan dasar. Jika tidak, karena itu peranan tidak pernah stop (infinite loop).
Keuntungan Menggunakan Rekursi
Peranan rekursi membuat code kelihatan lebih clean dan menawan
Peranan yang sulit dapat diperpecah jadi lebih kecil dengan rekursi
Menghidupkan data berurutan lebih gampang memakai rekursi daripada memakai iterasi bersarang.
Kerugian Menggunakan Rekursi
Kadang nalar dibalik rekursi cukup sulit untuk dituruti
Panggilan rekursi kurang efisien karena makan semakin banyak memory
Peranan rekursi lebih susah untuk didebug
Fungsi Anonim (Lambda)
Salah satunya feature python yang cukup bermanfaat ialah peranan anonim. Disebutkan peranan anonim karena peranan ini tidak diberi nama di saat diartikan.
Pada peranan biasa kita memakai keyword def untuk membuat, sedang peranan anonim ini kita memakai keyword lambda. Oleh karenanya, peranan anonim ini juga dikenal dengan peranan lambda.
Sintaks Fungsi Lambda
Peranan lambda mempunyai sintaks sebagai berikut:
lambda arguments: expression
Peranan lambda dapat memiliki banyak argument, tetapi cuman bisa mempunyai satu gestur. Gestur tersebut yang dibalikkan sebagai dari hasil peranan. Peranan lambda dapat kita taruh dalam faktor untuk dipakai setelah itu.
script.py
IPython Shell
Powered by DataCamp
Tanpa memakai lambda, contoh peranan di atas bisa menjadi sebagai berikut:
>>> def kuadrat(x):
return x**2
>>> kuadrat(3)
9
>>> def kali(x,y):
return x*y
>>> kali(4,3)
12
Pemakaian Peranan Lambda
Lambda dipakai di saat kita memerlukan peranan anonim untuk saat yang cepat. Di Python, peranan lambda kerap dipakai sebagai argument untuk peranan yang memakai peranan lain sebagai argument seperti peranan filter(), map(), dan sebagainya.
Contoh Pemakaian Lambda Dengan Peranan filter()
Peranan filter ambil 2 buah argument, yakni sebuah peranan dan sebuah daftar.
Sesuai namanya filter (penyaring), peranan akan mengetes semua anggota daftar pada peranan, apa dan ambil hasil yang berharga True. Keluaran hasilnya ialah sebuah daftar baru hasil filter. Berikut misalnya:
script.py
IPython Shell
Powered by DataCamp
Contoh Pemakaian Lambda Dengan Peranan map()
Peranan map() ambil 2 buah argument, yakni sebuah peranan dan sebuah daftar.
Peranan map() akan memetakkan atau panggil peranan dengan 1 persatu anggota daftar sebagai argument-nya. Hasilnya ialah daftar baru dari hasil keluaran peranan pada masing-masing anggota daftar.