Logo Python

Belajar Python 11
Membuat dan Memakai Fungsi

oleh: Suryo Adhy Chandra, ST

Fungsi adalah sekelompok baris kode yang diberi nama, sehingga bisa dipanggil kapan saja tanpa perlu ditulis ulang. Sebenarnya kita sudah memakai fungsi sejak bab pertama, yaitu print(), len(), dan input(). Bedanya, kali ini kita yang membuatnya sendiri.

1. Kenapa perlu membuat fungsi sendiri

Bayangkan sebuah program yang menghitung nilai akhir siswa di tiga tempat berbeda. Tanpa fungsi, rumus yang sama ditulis tiga kali. Kalau nanti rumusnya berubah, kita harus mengubah tiga tempat sekaligus, dan hampir pasti ada satu yang terlewat. Dengan fungsi, rumusnya ditulis sekali dan diubah sekali.

Selain menghindari pengulangan, fungsi juga membuat program lebih mudah dibaca. Nama fungsi yang baik menjelaskan maksudnya, sehingga orang lain bisa memahami alur program tanpa membaca isinya baris demi baris.

2. Bentuk dasar fungsi

def sapa(): print("Selamat datang di aplikasi sekolah") # memanggil fungsinya sapa() sapa()
Kata kunci def menandai awal pembuatan fungsi, diikuti nama fungsi, tanda kurung, dan titik dua. Isi fungsi ditulis menjorok ke dalam. Perlu diingat, menulis fungsi saja tidak membuat apa pun terjadi. Fungsi baru berjalan ketika dipanggil dengan menuliskan namanya beserta tanda kurung.

3. Fungsi dengan parameter

Parameter membuat fungsi bisa bekerja dengan data yang berbeda-beda. Nilai yang kita berikan saat memanggil fungsi disebut argumen.

def sapa(nama): print("Selamat datang,", nama) sapa("Sinta") sapa("Bagas")

Parameter boleh lebih dari satu, dipisahkan dengan koma. Urutannya penting, karena Python mencocokkan argumen dengan parameter berdasarkan urutan.

def data_siswa(nama, kelas, umur): print(f"{nama} dari kelas {kelas}, umur {umur} tahun") data_siswa("Sinta", "7A", 13)

4. Mengembalikan nilai dengan return

Ini bagian yang paling sering membingungkan pemula. Perintah print() hanya menampilkan ke layar, sedangkan return menyerahkan nilai kembali ke bagian program yang memanggil, sehingga nilai itu bisa disimpan dan dipakai lagi.

def luas_persegi_panjang(panjang, lebar): return panjang * lebar hasil = luas_persegi_panjang(8, 5) print("Luasnya", hasil) print("Dua kali luasnya", hasil * 2)
Kalau baris return diganti menjadi print, maka variabel hasil akan bernilai None dan perhitungan hasil * 2 langsung memunculkan kesalahan. Aturan praktisnya: pakai return kalau nilainya masih akan diolah, dan pakai print kalau memang hanya perlu ditampilkan.

5. Nilai bawaan untuk parameter

Parameter bisa diberi nilai bawaan, sehingga argumennya boleh tidak diisi saat pemanggilan.

def hitung_diskon(harga, persen=10): return harga - (harga * persen // 100) print(hitung_diskon(100000)) # memakai diskon 10% print(hitung_diskon(100000, 25)) # diskon diubah menjadi 25%

6. Menggabungkan dengan percabangan dan perulangan

Kekuatan fungsi terasa ketika digabungkan dengan bab-bab sebelumnya. Contoh berikut memakai percabangan di dalam fungsi, lalu memanggilnya dalam perulangan.

def predikat(nilai): if nilai >= 90: return "A" elif nilai >= 80: return "B" elif nilai >= 70: return "C" else: return "D" daftar_nilai = [95, 83, 71, 60] for nilai in daftar_nilai: print(nilai, "mendapat predikat", predikat(nilai))

Perhatikan betapa mudahnya membaca baris terakhir. Kita tidak perlu tahu isi fungsi predikat untuk memahami maksud programnya. Inilah keuntungan memberi nama yang jelas.

7. Ruang lingkup variabel

Variabel yang dibuat di dalam fungsi hanya hidup di dalam fungsi itu. Setelah fungsi selesai dijalankan, variabel itu hilang. Ini disebut variabel lokal.

def hitung(): hasil = 10 + 5 return hasil print(hitung()) # print(hasil) <- baris ini akan menghasilkan kesalahan NameError
Sifat ini justru menguntungkan. Karena variabel di dalam fungsi terpisah dari luar, fungsi tidak akan diam-diam mengubah data lain di programmu. Kalau fungsi perlu memberi hasil ke luar, cara yang benar adalah memakai return, bukan mengandalkan variabel bersama.

8. Kebiasaan menulis fungsi yang baik

def hitung_nilai_akhir(tugas, uts, uas): """Nilai akhir = 30% tugas + 30% UTS + 40% UAS.""" return tugas * 0.3 + uts * 0.3 + uas * 0.4 print(hitung_nilai_akhir(80, 75, 90))

9. Latihan

Petunjuk untuk latihan ketiga: gunakan sum(daftar) untuk menjumlahkan dan len(daftar) untuk menghitung banyak datanya. Jangan lupa menangani kemungkinan daftarnya kosong, karena pembagian dengan nol akan menghentikan program.
← Kembali Ke Daftar Materi Python