Last Updated on September 11, 2021 by
Dalam Python, terdapat fungsi anonim yang berarti bahwa suatu fungsi tidak memiliki nama. Seperti yang sudah kita ketahui bahwa kata kunci def digunakan untuk mendefinisikan fungsi normal di Python.
Lain halnya dengan kata kunci def yang mendefinisikan fungsi normal di Python, kata kunci lambda digunakan untuk mendefinisikan fungsi anonim di Python.
Pada seri tutorial Python kali ini, Codekey akan membahas tentang fungsi Lambda Python. Kalau kamu tertarik dengan pembahasan fungsi lambda Python kali ini, simak terus artikel ini sampai akhir.
Table of Contents
Fungsi Lambda Python
Lambda Python adalah kata kunci yang digunakan untuk menangani fungsi anonim atau fungsi yang tidak memiliki nama. Fungsi yang tidak memiliki nama (anonym) adalah fungsi kecil dan terbatas yang memiliki tidak lebih dari satu baris. Sama seperti fungsi normal, fungsi Lambda dapat memiliki banyak argumen dengan satu ekspresi.
Dalam Python, ekspresi lambda (atau bentuk lambda) digunakan untuk membangun fungsi anonim. Untuk melakukannya, Kamu akan menggunakan kata kunci lambda (sama seperti Kamu menggunakan def untuk mendefinisikan fungsi normal). Setiap fungsi anonim yang Kamu definisikan dengan Python akan memiliki 3 bagian penting:
- Kata kunci lambda,
- Parameter (atau variabel terikat),
- Badan fungsi.
Fungsi lambda dapat memiliki sejumlah parameter, tetapi badan fungsi hanya dapat berisi satu ekspresi. Selain itu, lambda ditulis dalam satu baris kode dan juga dapat segera dipanggil. Berikut ini adalah contoh syntax lambda Python:
Syntax: lambda arguments: expression
- Fungsi ini dapat memiliki sejumlah argumen tetapi hanya satu ekspresi, yang dievaluasi dan dikembalikan.
- Seseorang bebas menggunakan fungsi lambda di mana pun objek fungsi diperlukan.
- Kamu perlu mengingat bahwa fungsi lambda dibatasi secara sintaksis untuk satu ekspresi.
- Fungsi lambda dalam bahasa pemrograman Python memiliki berbagai kegunaan di bidang pemrograman tertentu selain jenis ekspresi lain dalam fungsi.
Berikut ini adalah contoh syntax di mana kamu harus mencoba untuk memahami perbedaan fungsi definisi def normal dan fungsi lambda.
# perbedaan antara def() dengan lambda(). def kubus(i): return i*i*i lambda_kubus = lambda i: i*i*i # pemanggilan def() dan lambda() # mencetak hasil pada def() print(kubus(10)) # mencetak hasil pada lambda() print(lambda_kubus(10)) Output: 1000 1000
Seperti yang dapat kita lihat pada contoh di atas, fungsi kubus() dan fungsi lambda_kubus() bertindak sama dan sebagaimana yang dimaksud. Berikut ini, kami akan mengajak Kamu menganalisis contoh di atas:
- Tanpa menggunakan Lambda
Di sini, keduanya mengembalikan pangkat tiga dari angka yang diberikan. Tapi, saat menggunakan def, kita perlu mendefinisikan fungsi dengan nama kubus dan harus memberikan nilai ke sana. Setelah eksekusi, kami juga perlu mengembalikan hasil dari tempat fungsi dipanggil menggunakan kata kunci return.
- Menggunakan Lambda
Definisi Lambda tidak menyertakan pernyataan “back” atau kembali, selalu berisi ekspresi yang dikembalikan. Kami juga dapat menempatkan definisi lambda di mana pun fungsi diharapkan, dan kami tidak harus menetapkannya ke variabel sama sekali. Ini adalah kesederhanaan fungsi lambda.
Fungsi Lambda dapat digunakan bersama dengan fungsi bawaan seperti filter(), map() dan reduce().
Penerapan Lambda pada Bahasa Pemrograman Python
Contoh 1
Buka IDLE Kamu, dan ketikkan sintaks seperti di bawah ini:
hitung = lambda i, j: i + j print (hitung (49, 51))
Berikut adalah outputnya:
100
Penjelasan kode di atas:
Pada kode di atas kami mendefinisikan variabel yang akan menampung hasil yang dikembalikan oleh fungsi lambda.
- Kata kunci lambda yang digunakan untuk mendefinisikan fungsi anonim.
- i dan j adalah parameter yang kita lewati ke fungsi lambda.
- Kode di atas adalah isi dari fungsi, yang menambahkan 2 parameter yang kita lewati. Perhatikan bahwa ia merupakan ekspresi tunggal. Kamu tidak dapat menulis banyak pernyataan di badan fungsi lambda.
- Kami memanggil fungsi dan mencetak nilai yang dikembalikan.
Contoh 2 :
Berikut ini adalah contoh dasar untuk memahami fundamental dan sintaks dari lambda. Sekarang cobalah untuk mencetak lambda dan lihat hasilnya! Bukalah IDLE kamu dan ketikan kode berikut ini:
pesan='Selamat Belajar' print(lambda string : print(pesan))
Sekarang simpan filemu dan tekan F5 untuk menjalankan program. Ini adalah output yang akan kamu dapatkan.
<function <lambda> at 0x7fe4b941ddc0>
Jika kamu masih bingung berikut ini adalah penjelasan kodenya:
- Pada kode di atas kami mendefinisikan string yang akan Kamu berikan sebagai parameter ke lambda.
- Kami mendeklarasikan lambda yang memanggil pernyataan print dan mencetak hasilnya.
Tetapi mengapa program tidak mencetak string yang kita lewati? Hal ini dikarenakan lambda itu sendiri mengembalikan objek fungsi. Dalam contoh ini, lambda tidak dipanggil oleh fungsi cetak tetapi hanya mengembalikan objek fungsi dan lokasi memori tempat disimpannya. Itulah yang dicetak di konsol.
Contoh 3 :
Jika kamu menulis programnya seperti ini:
pesan="Contoh 2" (lambda pesan : print(pesan))(pesan)
Dan menjalankannya dengan menekan F5, kamu akan mendapatkan output seperti di bawah ini:
Contoh 2
Sekarang, lambda sedang dipanggil, dan string yang kita lewati akan dicetak di konsol. Tapi apakah sintaks aneh tersebut, dan mengapa definisi lambda tercakup dalam tanda kurung? Mari memahaminya bersama-sama. Ini adalah penjelasan tentang kode di atas:
- Berikut adalah string yang sama yang kita definisikan pada contoh sebelumnya.
- Di bagian ini, kita mendefinisikan lambda dan memanggilnya segera dengan melewatkan string sebagai argumen. Hal ini adalah sesuatu yang disebut IIFE, dan kamu akan mempelajarinya lebih lanjut di bagian selanjutnya dari tutorial ini.
Contoh 4 :
Berikut ini adalah contoh untuk memahami lambda dan fungsi regular yang dieksekusi. Seperti pada sebelumya, buka IDLE dan file baru, ketikan kode di bawah ini:
def test(funct, *args): funct(*args) def pesan_awal(a): return print (a) def pesan_akhir(b): print(b) test(pesan_awal, 'Selamat Belajar') test(pesan_akhir, 'Lambda Python \n') test(lambda: pesan_awal('Selamat Belajar')) test(lambda: pesan_akhir('Lambda Python'))
Kemudian, simpan file dan tekan F5 untuk menjalankan program. Jika kamu tidak membuat kesalahan, hasilnya akan seperti di bawah ini.
Selamat Belajar
Lambda Python
Selamat Belajar
Lambda Python
Penjelasan kode:
- Sebuah fungsi yang disebut ‘test’ yang mengambil fungsi lain sebagai parameter pertama dan argumen lain yang mengikutinya.
- pesan_awal adalah fungsi sederhana yang mencetak parameter yang diteruskan ke sana dan mengembalikannya.
- pesan_akhir mirip dengan pesan_awal tetapi tanpa pernyataan pengembalian.
- Pada bagian ini, kita memanggil fungsi test dan melewatkan fungsi printer dan string sebagai parameter.
- Kode di atas adalah sintaks untuk mencapai langkah keempat (yaitu, memanggil fungsi test) tetapi menggunakan lambda.
- Di bagian selanjutnya, Anda akan mempelajari cara menggunakan fungsi lambda dengan map(), reduce(), dan filter() dengan Python.
Menggunakan fungsi lambda() dengan filter()
Fungsi filter() dalam Python mengambil fungsi dan daftar sebagai argumen. Hal ini pun menawarkan cara yang elegan untuk menyaring semua elemen dari urutan “order”, yang mengembalikan fungsi True. Berikut adalah program kecil yang mengembalikan angka genap dari daftar input:
nilai = [54, 71, 43, 90, 61, 55, 38, 36, 20, 2] genap_list = list(filter(lambda i: (i%2 != 1) , nilai)) print(genap_list)
Output yang dihasilkan:
[54, 90, 38, 36, 20, 2]
Menggunakan Fungsi lambda() dengan map()
Fungsi map() dalam Python mengambil fungsi dan daftar sebagai argumen. Fungsi dipanggil dengan fungsi lambda dan daftar dan daftar baru dikembalikan yang berisi semua item modifikasi lambda yang dikembalikan oleh fungsi itu untuk setiap item. Contoh:
nilai_list = [1, 2, 3, 4, 5] hasil_list = list(map(lambda i: i*12, nilai_list)) print(hasil_list)
Menghasilkan output:
[12, 24, 36, 48, 60]
Menggunakan fungsi lambda() dengan reduce()
Fungsi reduce() dalam Python mengambil fungsi dan daftar sebagai argumen. Fungsi dipanggil dengan fungsi lambda dan iterable dan hasil pengurangan baru dikembalikan. Hal ini pun akan melakukan operasi berulang pada pasangan iterable. Fungsi reduce() milik modul functools.
from functools import reduce nilai = [89, 54, 39, 21, 60, 76, 10] hasil_sum = reduce((lambda i, j: i + j), nilai) print (hasil_sum) Output: 349
Demikianlah penjelasan tentang lambda python. Lambda mempunyai kesamaan dengan def, sama-sama untuk mendefinisikan fungsi pada bahasa pemrograman Python. Bedanya, lambda khusus untuk mendefinisikan fungsi anonym. Kalau kamu ingin belajar Python dan menjadi programmer Python handal, kami pun mengajak kamu untuk belajar coding di Codekey.
Situs Codekey adalah situs yang menyediakan berbagai materi, pembahasan, tutorial, tips, serta trik untuk kamu belajar bahasa pemrograman. Kami juga menyediakan materi pembahasan untuk bahasa pemrograman lainnya. Jangan lupa untuk terus dapatkan update tutorial terbaru dari Codekey.
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.