Belajar dengan membaca secara berurutan

Mendefinisikan Fungsi dengan def — Argumen, Nilai Kembalian, Default dan Keyword Argumen

Pelajari definisi fungsi Python dengan def dan return. Cakup juga argumen, nilai kembalian, default, dan keyword argument.

Ketika logika yang sama perlu dijalankan berkali-kali, kamu butuh cara untuk memberi nama pada logika itu dan memanggilnya dari mana pun kamu butuhkan. Mekanisme itu adalah fungsi, yang didefinisikan dengan keyword def.

Dengan fungsi, logika bersama tinggal di satu tempat dan setiap tempat pemanggilan cukup satu baris. Semua yang sudah kamu pakai sejauh ini — print() / len() / int() / sum() — juga adalah fungsi.

Dasar def dan return

Definisikan fungsi dengan def nama_fungsi(argumen): dan indentasi badannya. Kembalikan nilai ke pemanggil dengan return nilai. Fungsi tanpa return pada dasarnya mengembalikan None.

Fungsi, argumen, dan nilai kembalian
argumen(input)fungsi(badan)nilai kembalian(output)diserahkanreturn

Argumen adalah apa yang diserahkan pemanggil ke fungsi, dan nilai kembalian adalah apa yang dikirim fungsi kembali via return. Karena fungsi yang sama bisa dipanggil dengan argumen berbeda untuk hasil yang berbeda, satu definisi bisa menggerakkan banyak titik pemanggilan.

Mendefinisikan dan memanggil fungsi
definisieksekusidef greet(name): return ...greet("Budi")jalankan badannilai kembalianmengalir balikname: Budireturn ...

Fungsi yang dibuat dengan def tidak dieksekusi dengan didaftarkan ke namespace. Badannya hanya berjalan ketika pemanggilan seperti greet("Budi") terjadi — dan nilai return mengalir kembali ke pemanggil.

# Tanpa argumen, tanpa nilai kembalian
def print_hello():
    print("Hello World")

print_hello()        # Hello World

# Dua argumen, satu nilai kembalian
def max_num(a, b):
    if a >= b:
        return a
    return b

result = max_num(30, 20)
print(result)        # 30

# return keluar dari fungsi; apa pun setelahnya tidak berjalan
def check(x):
    if x < 0:
        return "negatif"
    return "non-negatif"

print(check(-5))     # negatif

Tulis fungsi yang menerapkan rate diskon.

① Definisikan def apply_discount(price, rate): dan return price * (1 - rate).

② Masukkan apply_discount(1000, 0.2) ke sale_price dan cetak dengan print(f"Harga diskon: {sale_price}").

③ Panggil apply_discount(500, 0.1) langsung di dalam print() untuk mengonfirmasi fungsi yang sama bisa dipakai ulang dengan nilai yang berbeda.

(Penjelasan akan muncul setelah kamu menjalankan kode dengan benar.)

Python Editor

Jalankan kode untuk melihat output

Default argumen dan keyword argumen

Menambahkan = nilai ke argumen menetapkan default yang dipakai saat pemanggil tidak mengirimnya (default argumen).

Di sisi pemanggil, nama_argumen=nilai memungkinkanmu mengirim nilai berdasarkan nama tanpa memperhatikan posisi (keyword argumen). Default argumen secara konvensi diletakkan di akhir daftar argumen sehingga urutan tidak jadi masalah.

Tiga pola pemanggilan dan cara parameter terisi
def greet(name, greeting="Halo"):greet("Budi")name="Budi"greeting="Halo"(default dipakai)greet(name="Budi"greeting="Halo")greet("Siti", "Selamat pagi")name="Siti"greeting="Selamat pagi"(posisional menimpa)greet(name="Siti"greeting="Selamat pagi")greet(greeting="Selamat malam", name="Adi")name="Adi"greeting="Selamat malam"(urutan bisa ditukar)greet(name="Adi"greeting="Selamat malam")dihilangkanposisionalkeywordjalanjalanjalan
# Beri greeting nilai default
def greet(name, greeting="Halo"):
    return f"{greeting}, {name}"

print(greet("Budi"))                              # Halo, Budi
print(greet("Siti", "Selamat pagi"))              # Selamat pagi, Siti
print(greet(greeting="Selamat malam", name="Adi"))  # keyword args bisa diubah urutan
# Output: Selamat malam, Adi

Tulis fungsi yang memformat info pengguna.

① Definisikan def format_user(name, role="member"): dan kembalikan f"{name} ({role})".

② Cetak format_user("budi") (role dihilangkan).

③ Cetak juga format_user("siti", "admin") (posisional) dan format_user(role="owner", name="adi") (keyword).

Python Editor

Jalankan kode untuk melihat output

Di artikel ini kamu belajar definisi fungsi dengan def, nilai kembalian dengan return, dan default dan keyword argumen. Ketika kamu memakai fungsi dengan lancar, logika yang sama bisa dipanggil dari mana saja sebanyak yang kamu mau, dan keterbacaan kode meningkat drastis.

QUIZ

Cek Pemahaman

Jawab setiap pertanyaan satu per satu.

Soal 1Apa yang dicetak kode berikut?
def f(x, y=10):
return x + y

print(f(3))

Soal 2Panggilan mana yang memakai keyword argumen?
def greet(name, greeting="Hi"):
return f"{greeting}, {name}"

Soal 3Apa yang dihasilkan kode berikut?
def g(x):
x + 1 # tanpa return

result = g(10)
print(result)