Fungsi yang Rapi · Pelajaran 1 dari 11

Fungsi, parameter, dan nilai kembali

9 menit baca · BelajarCode

Fungsi yang baik mengerjakan satu hal dengan jelas: menerima masukan lewat parameter, lalu mengembalikan hasil lewat return. Fungsi seperti ini mudah diuji dan dipakai ulang.

Argumen posisi dan argumen kata kunci

Python
1def kartu_ujian(nama, kelas, ruang="Aula"):2    return f"{nama} ({kelas}) ujian di {ruang}"34print(kartu_ujian("Rani", "XI-2"))5print(kartu_ujian("Bima", "X-1", "Lab Komputer"))6print(kartu_ujian(kelas="XII-3", nama="Sari", ruang="R.12"))
Keluaran
Rani (XI-2) ujian di Aula
Bima (X-1) ujian di Lab Komputer
Sari (XII-3) ujian di R.12
  • Argumen posisi dipasangkan sesuai urutan parameter.
  • Argumen kata kunci menyebut nama parameternya, jadi urutannya bebas.
  • Parameter dengan nilai bawaan (ruang="Aula") boleh tidak diisi. Parameter bernilai bawaan harus ditulis setelah parameter tanpa nilai bawaan.

Mengembalikan lebih dari satu nilai

Python mengizinkan return beberapa nilai sekaligus. Sebenarnya nilai-nilai itu dibungkus menjadi satu tuple, lalu bisa dibongkar ke beberapa variabel.

Python
1def ringkasan(data):2    """Mengembalikan nilai terkecil, terbesar, dan rata-rata dari data."""3    return min(data), max(data), sum(data) / len(data)45terkecil, terbesar, rata = ringkasan([78, 92, 65, 88])6print(terkecil, terbesar, rata)7print(ringkasan.__doc__)
Keluaran
65 92 80.75
Mengembalikan nilai terkecil, terbesar, dan rata-rata dari data.

Teks bertanda kutip tiga di baris pertama fungsi disebut docstring. Docstring menjelaskan kegunaan fungsi dan bisa dibaca lewat __doc__ atau help().

Petunjuk tipe

Kamu bisa menambahkan petunjuk tipe (type hint) supaya maksud fungsi lebih jelas. Python tidak memaksakannya saat program berjalan, tetapi editor kode memakainya untuk memberi peringatan.

Python
1def luas_lingkaran(r: float) -> float:2    return 3.14159 * r * r34print(round(luas_lingkaran(10), 2))
Keluaran
314.16

Jumlah argumen yang bebas

Tanda bintang * pada parameter menampung argumen sebanyak apa pun ke dalam sebuah tuple.

Python
1def jumlahkan(*angka):2    total = 03    for a in angka:4        total += a5    return total67print(jumlahkan(1, 2))8print(jumlahkan(5, 10, 15, 20))
Keluaran
3
50

Cek pemahaman

Pemanggilan mana yang menyebabkan error untuk fungsi def f(a, b=2):?

Latihan

Konversi waktu

Buat fungsi pecah_detik(total) yang mengembalikan tiga nilai: jam, menit, dan detik. Tambahkan docstring. Uji dengan 3725 dan 86399.

Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.

Tandai pelajaran ini selesai

Masuk ke aplikasi untuk mencatat kemajuan, lalu lanjutkan ke pelajaran berikutnya dari perangkat mana pun.

Buka di aplikasi