Menguasai Fungsi Python: Definisi, Pemanggilan, Indentasi, Argumen & Nilai Kembali
Menguasai Fungsi Python: Definisi, Pemanggilan, Indentasi, Argumen & Nilai Kembali
Fungsi adalah blok pembangun utama dari setiap aplikasi Python. Mereka mengenkapsulasi logika yang dapat digunakan kembali, menjaga kode tetap DRY, dan membuat program Anda lebih mudah dibaca, diuji, dan dirawat. Dalam panduan ini, kami akan memandu Anda melalui setiap langkah yang diperlukan untuk menulis, memanggil, dan memecahkan masalah fungsi dalam Python 3—sambil juga menyentuh perbedaan yang akan Anda jumpai di Python 2.
Apa Itu Fungsi dalam Python?
Fungsi Python adalah blok kode yang independen yang dieksekusi saat Anda memanggilnya. Anda dapat menganggapnya sebagai program miniat yang melakukan satu tugas yang terdefinisi dengan baik dan dapat digunakan kembali di mana saja diperlukan. Sementara Python dilengkapi dengan banyak fungsi bawaan (misalnya, print(), input()), Anda bebas membuat fungsi Anda sendiri, memberinya kemampuan untuk berkembang dan menskalakan.
Mendefinisikan dan Memanggil Fungsi
Fungsi dideklarasikan dengan kata kunci def, diikuti oleh nama fungsi dan daftar parameter dalam kurung. Tubuh fungsi dimulai dengan titik dua dan harus diindentasi.
def greet(): print("Hello, Python!") # Panggil fungsi greet()
Output: Hello, Python!
Mengapa Indentasi Penting
Python tidak menggunakan kurung kurawal atau pernyataan begin/end yang eksplisit. Sebaliknya, indentasi mendefinisikan cakupan. Setiap blok kode—fungsi, loop, kondisional—harus memiliki tingkat indentasi yang konsisten.
- Setidaknya satu tingkat indentasi (biasanya empat spasi) diperlukan setelah definisi fungsi.
- Semua pernyataan dalam fungsi tersebut harus menggunakan indentasi yang sama.
- Campuran tab dan spasi, atau kedalaman indentasi yang bervariasi, memicu
IndentationError.
Contoh indentasi yang benar:
def demo(): print("Line 1") print("Line 2")
Dan kesalahan umum:
def demo(): print("Oops")
yang menghasilkan: IndentationError: expected an indented block
Menggunakan Pernyataan Return
Kata kunci return mengirimkan nilai kembali ke pemanggil. Jika fungsi mencapai akhir tanpa menemukan return, itu secara implisit mengembalikan None.
def square(x): return x * x print(square(4)) # 16
Tanpa return:
def square(x): x * x print(square(4)) # None
Selain itu, mencetak objek fungsi itu sendiri (misalnya, print(square)) menampilkan alamat memori, yang jarang berguna dalam kode aplikasi.
Meneruskan Argumen ke Fungsi
Argumen menyediakan data yang diperlukan fungsi untuk beroperasi. Parameter adalah placeholder yang didefinisikan dalam tanda tangan fungsi.
def multiply(x, y=1): return x * y print(multiply(4)) # 4 (y default ke 1) print(multiply(4, 2)) # 8 print(multiply(y=3, x=2)) # 6 (argumen kata kunci memungkinkan pengurutan ulang)
Argumen Panjang Variabel (*args dan **kwargs)
Kadang Anda membutuhkan fungsi yang menerima sejumlah argumen yang sembarang. Gunakan *args untuk argumen posisi dan **kwargs untuk argumen kata kunci.
def summarize(*values, **options): total = sum(values) print(f"Total: {total}") if options.get("show_details"): print("Nilai:", values) summarize(1, 2, 3, 4, 5, show_details=True)
Python 2 vs Python 3: Perbedaan Utama
- Sintaks print:
print "text" di Python 2 vs print("text") di Python 3. - Penguatan fungsi (beberapa tanda tangan dengan nama yang sama) tidak didukung di Python 2 tetapi tersedia di Python 3 melalui
functools.singledispatch atau dengan memeriksa tipe argumen. - Pembagian bilangan bulat:
5/2 menghasilkan 2 di Python 2 dan 2.5 di Python 3 (gunakan // untuk pembagian lantai di kedua versi).
Praktik Terbaik untuk Desain Fungsi
- Jaga fungsi tetap terfokus: satu fungsi harus melakukan satu tugas yang jelas.
- Dokumentasikan dengan docstring pada baris pertama di dalam fungsi.
def add(a, b): """Kembalikan jumlah a dan b.""" return a + b
- Gunakan petunjuk tipe (Python 3.5+) untuk menjelaskan tipe argumen dan tipe pengembalian yang diharapkan.
def add(a: int, b: int) -> int: return a + b
- Ubah argumen kata kunci untuk parameter opsional untuk meningkatkan keterbacaan.
Contoh Lengkap
# Contoh skrip Python 3 yang komprehensif def greet(): """Cetak sapaan ramah.""" print("Hello, Python!") def square(x: int) -> int: """Kembalikan kuadrat x.""" return x * x def multiply(x: int, y: int = 1) -> int: """Kembalikan hasil kali x dan y, dengan y default ke 1.""" return x * y # Demonstrasi if __name__ == "__main__": greet() print(square(4)) # 16 print(multiply(4)) # 4 print(multiply(4, 2)) # 8 print(multiply(y=2, x=4)) # 8
Untuk panduan lebih rinci, lihat dokumentasi resmi Python tentang definisi fungsi.