TestUser
SMYgUJ fzw UdWaJL aKEeHvE WMISzXb
Reply · 02-April-2025 10:05 WIB
12-May-2024
Python tidak hanya menyediakan pernyataan def
untuk membuat fungsi, tapi juga menawarkan bentuk ekspresi yang menghasilkan objek fungsi yang disebut sebagai lambda.
Lambda di Python adalah ekspresi untuk membuat fungsi anonim, singkatnya fungsi tanpa nama. Berbeda dengan def
yang menghasilkan fungsi terdefinisi, lambda justru mengembalikan fungsi itu sendiri. Dengan lambda, Anda dapat menulis fungsi "inline" langsung di tempat penggunaannya.
Sebelum melanjutkan membaca disarankan memahami apa itu def di Python.
Katakan Anda butuh fungsi callback singkat untuk operasi seperti sort()
, namun Anda tak ingin repot-repot menulis fungsi terpisah satu baris menggunakan pernyataan def
. Di sinilah lambda berperan, ia menawarkan jalan pintas untuk menulis fungsi "secara inline".
lambda arguments: expression
Perlu dicatat beberapa hal penting:
def
, seperti di dalam literal list atau argumen pemanggilan fungsi. Sebagai ekspresi, lambda mengembalikan nilai (fungsi baru) yang secara opsional bisa diberi nama. Sebaliknya, pernyataan def
selalu menetapkan fungsi baru ke nama di header, alih-alih mengembalikannya sebagai hasil.return
di body def
, Anda cukup mengetikkan hasilnya sebagai ekspresi tanpa perlu kata return
secara eksplisit. Karena keterbatasan ini, lambda kurang fleksibel dibanding def
. Logika yang rumit tidak bisa dimasukkan ke dalam lambda karena absennya pernyataan seperti if
. Ini disengaja untuk menjaga keterbacaan kode, lambda ditujukan untuk fungsi sederhana, sedangkan def
menangani tugas yang lebih kompleks.kuadrat = lambda x: x * x # Fungsi untuk menghitung kuadrat hasil = kuadrat(5) print(hasil) # Output: 25
Bagian ini mendefinisikan fungsi anonim bernama kuadrat
. Fungsi ini tidak menggunakan pernyataan def
tradisional, melainkan menggunakan ekspresi lambda.
lambda
: Kata kunci lambda
menandakan awal dari definisi fungsi anonim.x
: Ini adalah parameter formal fungsi, yang mewakili nilai yang akan dioperasikan oleh fungsi.x * x
: Ini adalah ekspresi badan fungsi. Dalam kasus ini, ekspresi menghitung kuadrat dari nilai x
dengan mengalikannya dengan dirinya sendiri.kuadrat
dalam contoh ini.hasil = kuadrat(5)
kuadrat
dan meneruskan argumen 5
. Fungsi ini menghitung kuadrat dari 5
(yaitu, 5 * 5) dan menyimpan hasilnya dalam variabel hasil
.print(hasil)
Terakhir, baris ini mencetak nilai variabel hasil
ke konsol, yang dalam hal ini adalah 25 (hasil kuadrat dari 5).
Python menyediakan fungsi sort()
bawaan yang memungkinkan Anda mengurutkan data dengan mudah. Fungsi ini sangat fleksibel dan dapat digunakan untuk mengurutkan berbagai jenis data, termasuk list, string, dan bahkan objek kustom.
Menariknya, sort()
dapat dipadukan dengan fungsi lambda untuk mencapai pengurutan berdasarkan kriteria yang lebih kompleks. Mari kita lihat cara kerjanya dengan contoh sederhana.
data = ["apel", "pisang", "jeruk", "anggur"] # Urutkan data secara alfabetis (default) data.sort() print(data) # Output: ['anggur', 'apel', 'jeruk', 'pisang'] # Urutkan data berdasarkan panjang string data.sort(key=lambda x: len(x)) print(data) # Output: ['apel', 'jeruk', 'pisang', 'anggur']
Penjelasan:
Mendefinisikan Data:
data = ["apel", "pisang", "jeruk", "anggur"]
: Baris ini membuat daftar bernama data
yang berisi nama-nama buah.
Pengurutan Default:
data.sort()
: Baris ini mengurutkan daftar data
secara alfabetis menggunakan fungsi sort()
bawaan. Hasilnya, daftar diurutkan berdasarkan urutan huruf dalam setiap nama buah.
Pengurutan Kustom dengan Lambda:
data.sort(key=lambda x: len(x))
: Baris ini mengurutkan daftar data
berdasarkan panjang stringnya menggunakan fungsi sort()
dan lambda. Lambda di sini berperan sebagai "kunci pengurutan". Fungsi lambda lambda x: len(x)
mengembalikan panjang string x
, di mana x
adalah setiap elemen dalam daftar data
. Fungsi sort()
kemudian mengurutkan daftar berdasarkan nilai yang dikembalikan oleh lambda, yaitu panjang string. Hasilnya, daftar diurutkan dari string terpendek hingga terpanjang.
Poin Penting:
sort()
dapat digunakan untuk mengurutkan berbagai jenis data, asalkan data tersebut dapat dibandingkan.key
dalam sort()
memungkinkan Anda menentukan kriteria pengurutan kustom menggunakan fungsi lambda.Singkatnya, lambda berguna sebagai jalan pintas untuk fungsi yang memungkinkan Anda menyematkan definisi fungsi di dalam kode yang menggunakannya. Penggunaan lambda sepenuhnya opsional (Anda selalu bisa menggunakan def
), tetapi mereka cenderung menjadi konstruksi kode yang lebih sederhana dalam skenario di mana Anda hanya perlu menyematkan potongan kecil kode yang dapat dieksekusi.
Salah satu penggunaan umum lambda adalah sebagai callback handler. Callback handler sering kali ditulis sebagai ekspresi lambda inline yang disematkan langsung dalam daftar argumen panggilan registrasi, alih-alih didefinisikan dengan def
di tempat lain dalam file dan direferensikan dengan nama.
Ekspresi lambda paling bermanfaat sebagai jalan pintas untuk def
ketika Anda perlu memasukkan potongan kecil kode yang dapat dieksekusi ke tempat yang secara sintaks tidak mengizinkan pernyataan. Misalnya, kode berikut ini membangun daftar berisi tiga fungsi dengan menyematkan ekspresi lambda di dalam literal list. Penggunaan def
tidak akan berfungsi di dalam literal list seperti ini karena def
adalah pernyataan, bukan ekspresi.
fungsi_list = [lambda x: x * 2, lambda x: x**3, lambda x: x + 10] for fungsi in fungsi_list: angka = int(input("Masukkan angka: ")) hasil = fungsi(angka) print(f"Hasil dari fungsi: {hasil}")
Output:
Masukkan angka: 5 Hasil dari fungsi: 10 Masukkan angka: 3 Hasil dari fungsi: 27 Masukkan angka: -2 Hasil dari fungsi: 8
Lambda di Python menawarkan cara yang ringkas dan kuat untuk mendefinisikan fungsi anonim. Dengan memahami sintaks dan penggunaannya, Anda dapat memanfaatkan lambda untuk membuat kode Anda lebih bersih dan lebih efisien.
Meskipun terbatas pada ekspresi tunggal, lambda sangat berguna untuk operasi sederhana yang tidak memerlukan blok pernyataan penuh yang ditawarkan oleh def
. Penggunaannya dalam callback, operasi list comprehension, dan situasi lainnya menunjukkan fleksibilitas dan kekuatan lambda dalam pemrograman Python.
Komentar (6)
TestUser
SMYgUJ fzw UdWaJL aKEeHvE WMISzXb
Reply · 02-April-2025 10:05 WIB
TestUser
SMYgUJ fzw UdWaJL aKEeHvE WMISzXb
Reply · 02-April-2025 10:04 WIB
TestUser
SMYgUJ fzw UdWaJL aKEeHvE WMISzXb
Reply · 02-April-2025 10:04 WIB
TestUser
SMYgUJ fzw UdWaJL aKEeHvE WMISzXb
Reply · 02-April-2025 10:04 WIB
TestUser
SMYgUJ fzw UdWaJL aKEeHvE WMISzXb
Reply · 02-April-2025 10:05 WIB
TestUser
SMYgUJ fzw UdWaJL aKEeHvE WMISzXb
Reply · 02-April-2025 10:05 WIB
Tinggalkan Komentar