author Ahmad Muhardian

Belajar Python: Membuat Fungsi dengan Lambda Expression


Python Lambda

Pada tutorial sebelumnya, kita pernah belajar membuat fungsi di Python dengan def. Kali ini kita akan membahas cara membuat fungsi dengan lambda expression.

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

Nah di tutorial ini, kita akan membahas konsep dasar lambda di python dilengkapi dengan contohnya.

Harapannya, nanti kamu akan bisa paham cara membuat fungsi dengan lambda expression serta dapat menggunakannya dalam program.

Baiklah, mari kita mulai…

Apa itu Lambda Expression?

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.

Berkat 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

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

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

Lah! terus nanti bagaimana cara memanggilnya?

Kan gak punya nama 🤔?

Mari kita bahas dulu…

Cara Menggunakan Lambda Expression

Nah sudah tahu kan apa itu Lambda?

Intinya, lambda digunakan untuk membuat fungsi dalam satu baris ekspresi.

Ini adalah format untuk membuat fungsi lambda:

Fungsi lambda di Python

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

Contoh:

greeting = lambda name: print(f"Hello, {name}") 

Karena fungsi lambda tidak punya nama, jadi kita butuh variabel untuk menyimpannya.

Nanti saat kita mau panggil, kita tinggal tuliskan saja nama variabelnya seperti ini:

greeting("Petani Kode")
greeting("Dian")
greeting("Ayu")

Mari kita coba…

Contoh Fungsi lambda di Python

Wah! bukannya ini sama saja seperti kita membuat fungsi dengan def 🤔?

Iya memang sama..

Tapi 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.

Coba perhatikan ini:

fungsi anonymous di Python

Saya mencoba membuat fungsi say_hello() dengan def, kemudian menyimpannya ke dalam variabel ucapin.

Tapi malah error!

Ini karena fungsi tersebut bukanlah fungsi anonymous yang boleh dibah-ubah namanya.

Lalu coba perhatikan di baris terakhir, fungsi lambda greeting() yang sudah dibuat disimpan lagi ke variabel yang berbeda, yakni sapa.

greeting = lambda name: print(f"Hello, {name}")
sapa = greeting
greeting("Andi")
sapa("Neli")

Hasilnya nggak akan error, karena ini adalah fungsi anonymous atau lambda.

Eksekusi Lambda Secara Langsung

Kelebihan fungsi lambda dibandingkan def adalah bisa kita eksekusi langsung.

Maksudnya?

Ya bisa kita pakai langsung, tanpa harus memanggil namanya.

Contohnya:

(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 x dan y yang akan diberikan kepada fungsi lambda.

Mak akita 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.

Mengapa?

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.

Mengapa bisa begitu?

Karena lambda bisa disimpan ke dalam variabel, otomatis dia akan bisa juga jadi parameter.

Satu lagi contoh dengan fungsi filter():

>>> # menentukan bilangan genap
>>> genap = lambda x: x%2 == 0
>>> list(filter(genap, range(11)))
[0, 2, 4, 6, 8, 10]

Atau bisa dibuat dalam satu baris seperti ini:

>>> list(filter(lambda x: x%2 == 0, range(11)))
[0, 2, 4, 6, 8, 10]

Jadi mengepa harus pakai Lambda?

Ya karena kita akan membutuhkannya saat menggunakan fungsi tertentu.

Apa Selanjutnya?

Ya, segitulah yang bisa saya jelaskan tentang lambda di Python.

Intinya, lambda digunakan untuk membuat fungsi dalam satu baris dan ia bersifat anonymous.

Lambda bisa kita simpan di dalam variabel dan dijadikan sebagai parameter.

Selanjutnya, silakan cek list tutorial python untuk tutorial yang lainnya.