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 *

Pengalaman Pengguna Game Penghasil Saldo DANA Lebih Cepat Adaptif Dan Efisien Dibawa Oleh Inovasi Teknologi
Pergeseran Mutu Produksi Kosmetik Terdeteksi Lebih Akurat Berkat Aliran Data Langsung
Pengalaman Pengguna Semakin Responsif Adaptif Dan Efisien Berkat Perkembangan Teknologi Modern
Momentum Tetap Terarah Dan Terkendali Dipertahankan Melalui Taktik Mode Pemburu Sic Bo Live
Keputusan Tetap Terukur Dalam Game Online Dipertahankan Melalui Pengelolaan Modal Cerdas
Kapitalisasi Pasar Dan Inovasi Kasino Online Berubah Di Tengah Disrupsi Teknologi Modern
Strategi Baru Untuk Meningkatkan Keunggulan Kompetitif Dibuka Melalui Business Model Canvas Mahjong Ways
Kualitas Sistem Mahjongways Kasino Online Dipahami Melalui Identifikasi Nilai Pembayaran Game Penghasil Saldo DANA
Perspektif Baru Dalam Menganalisis Perkembangan Mahjong Ways Dibuka Melalui Modernisasi Strategi
Kasino Menjadi Studi Sistem Informasi Bagi Mahasiswa Melalui Pelatihan Enterprise Architecture
Mahjongways Kasino Online Dijadikan Acuan Strategi Marketing dalam Lingkungan Pemerintahan
Keamanan Informasi Jadi Fondasi Utama Layanan Konsultasi Kosmetik Berbasis Teknologi
Teknologi Pemantauan Membantu Mengukur Frekuensi Pembayaran secara Lebih Objektif dan Terukur
Kajian Statistik Pola RTP Menyoroti Perkembangan Teknologi Neural Sintetis Regulatoris
Simulasi Statistik Membuka Pendekatan Baru Memahami Mahjong Game Sungai Penuh secara Terukur
Statistik Objektif Membantu Membaca Pola Mahjong Game Sungai Penuh dengan Lebih Rasional
Strategi Mahjong Game Sungai Penuh Makin Terarah melalui Pendekatan Statistik Modern
Pendekatan Data Objektif Membantu Mengkaji Mahjong Game Saldo DANA Sungai Penuh secara Lebih Terstruktur
Mahjong Game Sungai Penuh Dikaji lewat Simulasi Statistik untuk Membaca Pola Aktivitas
Aturan Mahjong Digital dari Dua Kartu Awal hingga Penentuan Rentang Nilai Game Penghasil Saldo DANA
Pendekatan Adaptif MahjongWays Kasino Online Membantu Menjaga Keseimbangan Anggaran Hiburan
Kemunculan Simbol Unik MahjongWays Kasino Online Perlu Dibaca Secara Lebih Rasional
Mahjong Ways Menarik Minat Pemain di Tengah Ketatnya Persaingan Game Digital
Pengaturan Tempo MahjongWays Kasino Online Tidak Menentukan Munculnya Kombinasi Khusus
Starlight Princess Kembali Merebut Perhatian Pemain MBG Berkat Daya Tariknya
Membaca Pola Mahjong Ways dan Tren Permainan Lewat Data Saldo DANA Terbaru
Disiplin Mental MahjongWays Kasino Online Membantu Mencegah Keputusan Finansial yang Terlalu Impulsif
Mengenal Sweet Bonanza sebagai Game Digital Online dengan Tema Manis yang Menarik
Rotasi Awal MahjongWays Kasino Online Bukan Tolok Ukur Kemurahan Sistem Permainan
Menelusuri Strategi Terbaik dalam Bermain Game Penghasil Saldo DANA Secara Lebih Mendalam