Membuat Keputusan dan Pengulangan · Pelajaran 9 dari 11
Membuat fungsi sendiri
9 menit baca · BelajarCode
Kamu sudah memakai banyak fungsi bawaan: print, input, len, sum. Kamu juga bisa membuat fungsi sendiri dengan def.
1def sapa(nama):2 print(f"Halo, {nama}! Selamat belajar.")34sapa("Ayu")5sapa("Bima")Halo, Ayu! Selamat belajar. Halo, Bima! Selamat belajar.
defartinya mendefinisikan fungsi.namaadalah parameter, yaitu nilai yang diterima fungsi."Ayu"dan"Bima"adalah argumen, yaitu nilai yang dikirim saat fungsi dipanggil.
Mengembalikan nilai dengan return
Fungsi yang menghitung sesuatu sebaiknya mengembalikan hasilnya dengan return, supaya hasilnya bisa dipakai lagi.
1def luas_persegi_panjang(panjang, lebar):2 return panjang * lebar34kamar = luas_persegi_panjang(4, 3)5ruang_tamu = luas_persegi_panjang(5, 4)6print("Total luas:", kamar + ruang_tamu)Total luas: 32
print atau return?
print hanya menampilkan ke layar. return mengirim nilai kembali kepada pemanggil. Bandingkan:
1def tambah_print(a, b):2 print(a + b)34def tambah_return(a, b):5 return a + b67hasil1 = tambah_print(2, 3)8hasil2 = tambah_return(2, 3)9print("hasil1:", hasil1)10print("hasil2:", hasil2)5 hasil1: None hasil2: 5
Fungsi tanpa return mengembalikan None, artinya "tidak ada nilai".
Parameter dengan nilai bawaan
1def harga_akhir(harga, diskon=0):2 return harga - harga * diskon / 10034print(harga_akhir(50000))5print(harga_akhir(50000, 20))50000.0 40000.0
Kenapa membuat fungsi?
- Tidak mengulang kode. Tulis sekali, pakai berkali-kali.
- Lebih mudah dibaca. Nama fungsi menjelaskan apa yang dikerjakan.
- Lebih mudah diperbaiki. Kalau ada kesalahan, cukup perbaiki di satu tempat.
Cek pemahaman
Apa yang ditampilkan print(kali_dua(4)) jika fungsinya def kali_dua(x): x * 2 tanpa return?
Latihan
Fungsi predikat
Buat fungsi predikat(nilai) yang mengembalikan "A" untuk nilai 90 ke atas, "B" untuk 80 sampai 89, "C" untuk 70 sampai 79, dan "D" untuk di bawah 70. Pakai fungsi itu untuk daftar nilai [95, 83, 70, 55].
Pembahasan
1def predikat(nilai):2 if nilai >= 90:3 return "A"4 elif nilai >= 80:5 return "B"6 elif nilai >= 70:7 return "C"8 else:9 return "D"1011for n in [95, 83, 70, 55]:12 print(n, "->", predikat(n))95 -> A 83 -> B 70 -> C 55 -> D
Begitu return dijalankan, fungsi langsung selesai. Karena itu elif dan else di sini sebenarnya boleh diganti if biasa.
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.