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_valueSebagai 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 + yMemanggil Fungsi
Fungsi yang telah didefinisikan dapat dipanggil dan digunakan seperti berikut:.
1result = add(3, 4)
2print(result) # Output: 7Komponen dari Fungsi
-
Nama Fungsi
- Nama fungsi, digunakan saat memanggilnya.
-
Argumen (Parameter)
- Nama variabel yang menerima data yang diberikan saat pemanggilan. Anda dapat mendefinisikan nol atau lebih argumen.
-
String Dokumentasi (Docstring)
- String yang menjelaskan tujuan dan penggunaan fungsi. Opsional.
-
Isi Fungsi
- Blok indentasi tempat instruksi yang dijalankan oleh fungsi dituliskan.
-
Nilai Kembalian
- Nilai yang dikembalikan ke pemanggil menggunakan pernyataan
return. Jikareturndihilangkan, secara default akan mengembalikanNone.
- Nilai yang dikembalikan ke pemanggil menggunakan pernyataan
Jenis-jenis Argumen
Di Python, ada beberapa jenis argumen.
- Argumen Posisi
- Cara biasa untuk memberikan argumen ke fungsi.
- Argumen Default
- Menetapkan nilai default pada argumen sehingga bisa diabaikan saat memanggil fungsi.
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
argsmenerima beberapa argumen posisi sebagai tuple, dankwargsmenerimanya 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: expressionargumen- Menentukan argumen dari sebuah fungsi. Beberapa argumen dapat ditentukan, dipisahkan dengan koma.
ekspresi- 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: 8Dalam 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: 120Dalam 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 * 2Kesimpulan
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.