Fungsi dalam Python
Artikel ini menjelaskan tentang fungsi dalam Python.
YouTube Video
Fungsi dalam Python
Fungsi dalam Python adalah fitur penting untuk mendefinisikan blok kode yang dapat digunakan kembali, memungkinkan Anda mengatur dan menyederhanakan program Anda dengan memanggilnya sesuai kebutuhan. Menggunakan fungsi dapat meningkatkan keterbacaan kode dan mematuhi prinsip DRY (Don't Repeat Yourself, hindari menulis kode yang sama berulang kali).
Mendefinisikan Fungsi
Fungsi didefinisikan menggunakan kata kunci def
. Sintaks dasar adalah sebagai berikut:.
1def function_name(arg1, arg2, ..., argN):
2 """docstring (A brief description of the function)"""
3 processing
4 return return_value
Sebagai contoh, untuk mendefinisikan fungsi yang menjumlahkan dua angka, Anda akan menulis:.
1def add(x, y):
2 """A function that adds two numbers and returns the result"""
3 return x + y
Memanggil Fungsi
Fungsi yang telah didefinisikan dapat dipanggil dan digunakan seperti berikut:.
1result = add(3, 4)
2print(result) # Output: 7
Komponen dari Fungsi
-
Nama Fungsi: Nama dari fungsi, digunakan untuk memanggilnya.
-
Argumen (Parameter): Nama-nama variabel yang menerima data yang diteruskan saat pemanggilan. Anda dapat mendefinisikan nol atau lebih argumen.
-
String Dokumentasi (Docstring): Sebuah string yang digunakan untuk menjelaskan tujuan dan penggunaan suatu fungsi. Opsional.
-
Badan Fungsi: Blok dengan indentasi tempat instruksi yang dijalankan oleh fungsi ditulis.
-
Nilai Kembalian: Nilai yang dikembalikan ke pemanggil menggunakan pernyataan
return
. Jikareturn
dihilangkan, secara default akan mengembalikanNone
.
Jenis-jenis Argumen
Di Python, ada beberapa jenis argumen.
- Argumen Posisi: Cara standar untuk meneruskan argumen ke fungsi.
- Argumen Default: Argumen dengan nilai default yang dapat dihilangkan saat pemanggilan.
1def greet(name, message="Hello"):
2 print(f"{message}, {name}")
3
4greet("Alice") # "Hello, Alice"
5greet("Bob", "Good morning") # "Good morning, Bob"
- Argumen Panjang Variabel:
*args
untuk menerima beberapa argumen posisi sebagai tuple, dan**kwargs
untuk menerimanya sebagai dictionary.
1def func(*args, **kwargs):
2 print("args:", args)
3 print("kwargs:", kwargs)
4
5func(1, 2, 3, a=4, b=5)
6# Output:
7# args: (1, 2, 3)
8# kwargs: {'a': 4, 'b': 5}
Dengan menggunakan fungsi dengan benar, Anda dapat menulis program Python dengan lebih efektif dan efisien.
Fungsi Lambda dalam Python
Dalam Python, fungsi lambda
digunakan untuk mendefinisikan fungsi anonim yang ringkas. Berbeda dengan fungsi yang didefinisikan dengan kata kunci def
biasa, lambda
memungkinkan Anda membuat fungsi singkat dalam satu baris. Di sini, kami akan menjelaskan fungsi lambda
dalam Python secara rinci.
Dasar-dasar Fungsi lambda
Fungsi lambda
, juga disebut sebagai fungsi anonim, digunakan untuk mendefinisikan fungsi sementara yang tidak punya nama, sesuai dengan namanya. Sintaks dasar adalah sebagai berikut:.
1lambda arguments: expression
arguments
: Tentukan argumen dari fungsi. Beberapa argumen dapat ditentukan, dipisahkan dengan koma.expression
: Ini adalah ekspresi yang dievaluasi berdasarkan argumen. Hasil dari ekspresi menjadi nilai yang dikembalikan oleh fungsi.
Sebagai contoh, kode berikut mendefinisikan dan menjalankan fungsi lambda
yang menambahkan dua angka.
1add = lambda x, y: x + y
2print(add(5, 3)) # Output: 8
Dalam contoh ini, lambda x, y: x + y
adalah fungsi lambda
yang menerima dua argumen, x
dan y
, dan mengembalikan hasil penjumlahan keduanya.
Penggunaan Fungsi lambda
Fungsi lambda
berguna dalam situasi di mana Anda perlu mendefinisikan fungsi sederhana secara langsung. Fungsi ini sangat umum digunakan dalam kasus-kasus berikut:.
-
Saat Digunakan Sebagai Argumen pada Fungsi Lain
- Hal ini berguna dalam fungsi tingkat tinggi (fungsi yang menerima fungsi lain sebagai argumen) ketika melewatkan fungsi pendek dan sementara.
-
Saat Menentukan Kunci untuk Mengurutkan Daftar
- Fungsi ini berguna untuk menentukan kriteria pengurutan (kunci) dalam fungsi seperti
sort()
atausorted()
.
- Fungsi ini berguna untuk menentukan kriteria pengurutan (kunci) dalam fungsi seperti
Contoh Penggunaan dalam Fungsi Tingkat Tinggi
Contoh khas fungsi tingkat tinggi termasuk map()
, filter()
, dan reduce()
. Fungsi-fungsi ini mengambil fungsi lain sebagai argumen dan menerapkannya pada urutan seperti daftar.
1numbers = [1, 2, 3, 4, 5]
2squared = list(map(lambda x: x ** 2, numbers))
3print(squared) # Output: [1, 4, 9, 16, 25]
Dalam contoh ini, fungsi lambda
dikirimkan ke fungsi map()
untuk menghitung kuadrat setiap angka dalam daftar.
Contoh penggunaan penyortiran daftar
Fungsi lambda
terkadang dapat digunakan untuk menentukan kunci kustom saat menyortir daftar. Sebagai contoh, kode berikut menyortir daftar tuple berdasarkan elemen kedua.
1pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
2pairs.sort(key=lambda pair: pair[1])
3print(pairs)
4# Output: [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
Dalam contoh ini, fungsi lambda
digunakan untuk menyortir tuple berdasarkan elemen kedua mereka (sebuah string).
filter()
dan lambda
Fungsi filter()
digunakan untuk memfilter elemen dalam daftar (atau iterable lainnya) berdasarkan kondisi tertentu.
1numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
2even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
3print(even_numbers) # Output: [2, 4, 6, 8]
Dalam contoh ini, angka genap dalam sebuah daftar difilter untuk membuat daftar baru.
lambda
dan reduce()
Fungsi reduce()
digunakan untuk mengurangi daftar menjadi satu nilai. Ini dapat diimplementasikan dengan mudah menggunakan fungsi lambda
.
1from functools import reduce
2
3numbers = [1, 2, 3, 4, 5]
4product = reduce(lambda x, y: x * y, numbers)
5print(product) # Output: 120
Dalam contoh ini, semua elemen dalam daftar dikalikan bersama untuk menghasilkan sebuah hasil.
Hindari menggunakan fungsi lambda
yang kompleks
Keunggulan fungsi lambda
adalah kesederhanaannya, tetapi fungsinya menjadi sulit dibaca saat digunakan untuk mengimplementasikan logika yang kompleks. Oleh karena itu, fungsi ini sesuai digunakan untuk operasi sederhana yang dapat diekspresikan dalam satu baris. Untuk operasi yang kompleks, mendefinisikan fungsi dengan def
lebih mudah dibaca dan dikelola.
Sebagai contoh, Anda harus menghindari penggunaan fungsi lambda
yang kompleks seperti yang di bawah ini.
1# Complex and hard-to-read lambda function
2complex_func = lambda x, y: (x * 2 + y) if x > y else (x + y * 2)
Dalam kasus ini, lebih baik menggunakan fungsi yang didefinisikan dengan def
, seperti yang ditunjukkan di bawah.
1def complex_func(x, y):
2 if x > y:
3 return x * 2 + y
4 else:
5 return x + y * 2
Kesimpulan
Fungsi lambda
dalam Python adalah alat yang praktis untuk mendefinisikan fungsi sementara dan singkat. Fungsi ini sering digunakan dalam fungsi tingkat tinggi atau operasi daftar untuk mendefinisikan kondisi khusus secara ringkas. Namun, fungsi lambda
sebaiknya dibatasi pada tugas sederhana, dan fungsi def
dianjurkan untuk logika yang kompleks.
Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.