Fungsi dalam Python

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

  1. Nama Fungsi: Nama dari fungsi, digunakan untuk memanggilnya.

  2. Argumen (Parameter): Nama-nama variabel yang menerima data yang diteruskan saat pemanggilan. Anda dapat mendefinisikan nol atau lebih argumen.

  3. String Dokumentasi (Docstring): Sebuah string yang digunakan untuk menjelaskan tujuan dan penggunaan suatu fungsi. Opsional.

  4. Badan Fungsi: Blok dengan indentasi tempat instruksi yang dijalankan oleh fungsi ditulis.

  5. Nilai Kembalian: Nilai yang dikembalikan ke pemanggil menggunakan pernyataan return. Jika return dihilangkan, secara default akan mengembalikan None.

Jenis-jenis Argumen

Di Python, ada beberapa jenis argumen.

  1. Argumen Posisi: Cara standar untuk meneruskan argumen ke fungsi.
  2. 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"
  1. 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:.

  1. 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.
  2. Saat Menentukan Kunci untuk Mengurutkan Daftar

    • Fungsi ini berguna untuk menentukan kriteria pengurutan (kunci) dalam fungsi seperti sort() atau sorted().

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.

YouTube Video