Tutorial Python #14 : Fungsi dengan Lambda Expression di Python

Pada tutorial sebelumnya kita sudah membuat fungsi di Python dengan def. Pada tutorial ini kita akan mempelajari cara membuat fungsi dengan lambda expression.

Membuat fungsi dengan lambda expression berbeda dengan def, lambda expression memiliki kelebihan yang tidak dimiliki def.

Lambda expression di Python adalah sebuah ekspresi untuk membuat fungsi, Lambda sendiri berasal dari teori kalkulus, yakni Lambda Calculus yang dikenalkan oleh Alonzo Church di tahun 1930. Dengan Lambda kita bisa membuat fungsi tanpa nama atau dikenal juga dengan anonymous function.

Misalkan kita punya fungsi penjumlahan kuadrat seperti ini :

def suqare_sum(x,y):
    return x**2 + y**2

Dengan lambda kita tidak perlu menggunakan def dan return, bahkan kita juga tidak perlu menuliskan namanya.

lambda x,y : x**2 + y**2

 

Cara Menggunakan Lambda Expression

Lambda digunakan untuk membuat fungsi dalam satu baris ekspresi. Berikut adalah format untuk membuat fungsi lambda :

Lambda bisa memiliki lebih dari satu argumen atau parameter, tapi hanya bisa memiliki satu ekspresi atau isi.

Contoh :

sapa = lambda name: print(f"Hallo, {name}")

Karena fungsi lambda tidak punya nama jadi kita butuh variabel untuk menyimpannya, saat kita mau panggil tinggal tuliskan saja nama variabelnya seperti ini :

sapa("Agus Suratna")
sapa("Ramdan")
sapa("Heni")

Hasilnya :

Fungsi Lambda sama saja seperti kita membuat fungsi dengan def, bedanya lambda khusus untuk fungsi yang berisi satu ekspresi dan sifat fungsinya akan anonymous.

 

Anonymous Function di Python

Karena lambda adalah anonymous function, ia akan bebas menggunakan nama apa saja. Dengan kata lain fungsi lambda bisa disimpan di variabel mana pun. Ini tentunya tidak bisa dilakukan oleh fungsi yang dibuat dengan def.

Baca Juga  Tutorial Java #3 : Struktur Dasar dan Aturan Dasar Penulisan Kode Program Bahasa Java

Contoh :

def sapa_halo(nama):
    print(f"Halo {nama}, apa kabar? " )

katakan=sapa_halo(Agus)

Saya mencoba membuat fungsi sapa_halo() dengan def, kemudian menyimpannya ke dalam variabel katakan. Hasilnya malah terjadi error. Ini karena fungsi tersebut bukanlah fungsi anonymous yang boleh dibah-ubah namanya.

Sekarang kita coba membuat fungsi lambda sapa(), selanjutnya disimpan ke variable katakan, dengan sintak seperti berikut :

sapa = lambda name: print(f"Hallo, {name}")

katakan = sapa
katakan("Agus")

Hasilnya tidak terjadi error, karena ini adalah fungsi anonymous atau lambda.

 

 

Eksekusi Lambda Secara Langsung

Kelebihan fungsi lambda dibandingkan def adalah bisa kita eksekusi langsung. Jadi Lambda bisa kita pakai langsung, tanpa harus memanggil namanya.

Contoh :

(lambda x,y: x**2 + y**2)(4,6)

Tanda kurung yang mengapit fungsi lambda artinya kita akan langsung mengeksekusi fungsi tersebut. Lalu kurung berikutnya akan berisi parameter. Angka 4 dan 6 adalah parameter yang akan diberikan ke dalam variable x dan y dalam fungsi lambda. Maka kita akan langsung mendapatkan hasilnya, yakni : 4**2 + 6**2 = 52.

Hasil dari eksekusi ini bisa juga kita simpan ke dalam variabel.

hasil = (lambda x,y: x**2 + y**2)(4,6)

 

 

Mengapa Harus Pakai Lambda?

Kita memang tidak harus selalu menggunakan Lambda, tapi dalam kasus tertentu lambda lebih baik dibandingkan fungsi biasa. Lambda biasanya dibutuhkan saat kita ingin membuat fungsi dalam satu baris.

Biasanya saat menggunakan fungsi-fungsi seperti filter(), map(), dan reduce() kita akan membutuhkan lambda. Hal tersebut karena di fungsi-fungsi tersebut membutuhkan parameter fungsi.

Contoh:

bilangan = [10,2,8,7,5,4,3,11,0, 1]
filtered_result = map (lambda x: x*x, bilangan) 
print(list(filtered_result))

Hasilnya :

[100, 4, 64, 49, 25, 16, 9, 121, 0, 1]

Pada fungsi map() kita memberikan parameter dengan fungsi lambda. Karena lambda bisa disimpan ke dalam variabel, otmatis dia akan bisa juga jadi parameter.

Baca Juga  ALGORITMA

 

Contoh dengan fungsi filter() :

# menentukan bilangan genap
genap = lambda x: x%2 == 0

print(list(filter(genap, range(11))))

Atau bisa dibuat dalam satu baris seperti ini :

print(list(filter(lambda x: x%2 == 0, range(11))))

Hasilnya :

[0, 2, 4, 6, 8, 10]

 

Jadi mengapa harus pakai Lambda, karena kita akan membutuhkannya saat menggunakan fungsi tertentu.

 

Demikian tutorial fungsi dengan lambda expresion, semoga bermanfaat.

 

 

Referensi :

  • https://www.petanikode.com/python-lambda/

Related Post

Be the first to comment

Leave a Reply

Your email address will not be published.


*


error: Ga bisa dicopy