Belajar Dasar Python #12 : Fungsi Rekursif dan Fungsi Lambda

Fungsi Rekursif

pada tutorial sebelumnya kita sudah mencoba suatu fungsi dipanggil dalam fungsi yang lain. tapi, Apakah kita bisa menggunakan/memanggil suatu fungsi didalam fungsi itu sendiri? Yap, kita bisa melakukan hal tersebut, hal ini dinamakan fungsi rekursif. Ini berarti bahwa fungsi tersebut akan terus memanggil dirinya sendiri dan mengulangi perilakunya sampai kondisi dasar terpenuhi dan mengembalikan hasil. dimana kondisi dasar inilah yang menghentikan rekursif. salah satu kegunaan fungsi rekursif ini bisa kita gunakan untuk menentukan Faktorial. 

def faktorial(x):
    if x == 1:
        return 1
    else:
        return(x * faktorial(x-1))
angka = 5
print('Faktorial dari', angka, 'adalah', faktorial(angka))

Output:

Faktorial dari 5 adalah 120

Proses dari fungsi rekursif diatas.

faktorial(5) pemanggilan pertama
5 * faktorial(4) pemanggilan kedua
5 * 4 * faktorial(3) pemanggilan ketiga
5 * 4 * 3 * faktorial(2) pemanggilan keempat
5 * 4 * 3 * 2 * faktorial(1) pemanggilan kelima
5 * 4 * 3 * 2 * 1 return pemanggilan kelima
5 * 4 * 3 * 2 return pemanggilan keempat
5 * 4 * 6 return pemanggilan ketiga
5 * 24 return pemanggilan kedua
120 return pemanggilan pertama

 

anda dapat melihat ilustrasi dibawah.

(source : https://www.programiz.com/python-programming/recursion )

pada contoh diatas rekursif berakhir jika x sama dengan 0 ini dinamakan kondisi dasar. setiap rekursif harus memiliki kondisi dasar yang akan menghentikan rekursif, jika tidak fungsi akan dipanggil secara terus menerus dan mengakibatkan stack overflow. untuk mengatasi ini secara default python telah membatasi rekursif sebanyak 1000 kali. bila melampaui 1000 maka akan menyebabkan recursionerror.

def rekursif():
    rekursif()
rekursif()

Output:

  [Previous line repeated 996 more times]
RecursionError: maximum recursion depth exceeded

Kita juga dapat menggunakan fungsi rekursif untuk menghitung deret fibonacci. Deret fibonacci adalah serangkaian deret angka sederhana yang susunan angkanya merupakan penjumlahan dari dua angka sebelumnya (0,1,1,2,3,5,8,13,21,…dst).

Deret Fibonacci didefinisikan sebagai:

Fn = Fn-1 + Fn-2
dimana F0 = 0
and F1 = 1

membuat fungsi fibonacci pada python cukup mudah. berikut syntaxnya.

def fib(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fib(n-1) + fib(n-2)

fib(7)

Output:

13

 

Anonymous/Lambda Function

Anonymous Function atau Lambda Function adalah fungsi yang didefinisikan tanpa nama. fungsi biasa diawali dengan def, akan tetapi lambda function diawali dengan lambda. pada dasarnya fungsi lambda memiliki perilaku yang sama dengan fungsi biasa, kita bisa memasukkan berapapun parameter akan tetapi hanya dapat memiliki satu ekspresi atau perintah dan mengembalikan nilainya. bahkan fungsi ini ditulis dalam satu baris kode saja. berikut adalah syntax lambda function.

lambda parameter : perintah/ekspresi

diawali dengan keyword lambda lalu parameter, titik dua, dan perintah. kita dapat memasukkan fungsi ini kedalam variabel agar dapat digunakan. berikut contoh fungsi lambda.

double = lambda x: x * 2
x = lambda a, b : a * b
print(double(5))
print(x(5, 6))

Output:

10
30

biasanya lambda function digunakan pada fungsi yang parameternya adalah fungsi seperti map(), dan filter() yang akan kita pelajari lebih lanjut nantinya.

Artikel Terkait

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Studi Kasus Mahjong Ways Menunjukkan Perubahan Cara Pemain Membaca Susunan Simbol Akibat Baris Tambahan
Sering Terjadi Kesalahpahaman Bahwa Transformasi Simbol Emas Mahjong Ways Menandakan Hasil Putaran Berikutnya
Perbandingan Tampilan Antara Mahjong Ways Dan Sekuelnya Dalam Menyajikan Informasi Fitur Di Layar Seluler Modern
Direkapitulasi Perjalanan Mahjong Ways Dari Tema Tradisional Menuju Industri Game Digital Modern
Tanpa Mencampurkan Dengan Peran Wild, Fungsi Scatter Mahjong Ways Dapat Dikenali Dalam Susunan Kemenangan
Penyelaman Mengungkap Perubahan Dan Makna Baru Dunia Baccarat Di Era Digital
Media Gaming Mengungkap Perjalanan Mahjong Ways 2 Dalam Menghadapi Perubahan Tren Industri Hiburan Digital
Baccarat Ditampilkan Dalam Catatan Perubahan Platform Media Gaming Masa Kini Yang Mengubah Cara Bermain
Pergeseran Media Modern Menjadikan Wacana Kasino Online Sebagai Sorotan Baru Masyarakat
Perubahan Gaya Platform Membawa Bakarat Digital Menjadi Sorotan Baru Dalam Percakapan Modern
Perkembangan Komunitas Mahjong Ways Digital Dorong Kebangkitan Popularitas di Indonesia
Tren Mahjong Ways Mobile Gaming Terbaru Hadirkan Kebangkitan Jadi Sorotan Utama
Kenapa Mahjong Ways Tetap Viral? Alasan Ini Bikin Kaget!
Fenomena Game Bertema Oriental Bangkit Kembali, Mahjong Ways Jadi Sorotan Utama
Strategi Mahjong Ways Tetap Digemari Di Tengah Persaingan Game Online Diungkap Media Digital
Transformasi Industri Mahjong Ways Digital Perjalanan Panjang Menuju Inovasi
Kebangkitan Platform Game Mahjong Ways dalam Era Perkembangan Digital
Meski Zaman Berubah, Mahjong Ways Tetap Favorit! Ini Rahasianya
Mahjong Ways Masih Jadi Perbincangan Hangat! Komunitas Gaming Ungkap Alasannya
Evolusi Mahjong Ways Dari Masa Ke Masa Yang Bikin Penasaran Diungkap Laporan Industri
Mahjong Ways Tetap Eksis! Ini Rahasia Bertahan di Tengah Persaingan Industri Game Ketat
Identitas Visual Mahjong Ways Bikin Penggemar Terpikat! Media Online Soroti Konsistensinya
Tren Digital Menggairahkan Lagi! Game Penghasil Uang Cepat Jadi Sorotan Publik
Kenapa Game Penghasil Uang Cepat Menarik Minat Pemain Indonesia? Ini Alasannya!
Benarkah Game Penghasil Uang Cepat Makin Diminati? Faktanya Mengejutkan!
Majestic Treasures Menarik Perhatian Komunitas Game Digital Lewat Pesona Khas dan Ragam Strategi Menarik
Mahjong Ways 2 Ramai Dibahas Lagi! Ini Dampak Besar pada Industri Game Digital Indonesia
Mahjongways Kasino Online Viral di Komunitas Game dan Mulai Disebut sebagai Sumber Penghasilan Baru
Mahjong Ways Kembali Jadi Sorotan! Penggemar Game Penghasil Uang di Indonesia Serbu
Game Penghasil Uang Mulai Dilirik Media Game Mobile di Tengah Pergeseran Tren Global