Fungsi pada python adalah kumpulan perintah atau baris kode yang dikelompokkan menjadi satu kesatuan untuk kemudian bisa dipanggil atau digunakan berkali-kali.
Sebuah fungsi bisa menerima parameter, bisa mengembalikan suatu nilai, dan bisa dipanggil berkali-kali secara independen.
Dengan fungsi kita bisa memecah program besar yang kita tulis, menjadi bagian-bagian kecil dengan tugasnya masing-masing.
Juga, fungsi akan membuat kode program kita menjadi lebih “reusable” dan lebih terstruktur
🔵 Membuat Fungsi
Di dalam python, sintaks pembuatan fungsi terlihat seperti berikut:
def nama_fungsi(parameters):
statements
statements
statements
...
Sintaks di atas secara umum terbagi menjadi 4 bagian:
- Kata kunci
def
yang menjadi pertanda bahwa blok kode program adalah sebuah fungsi nama_fungsi
adalah nama fungsi yang kita buat- Parameters adalah variabel-variabel yang akan diolah dalam fungsi. Parameter bersifat opsional.
- statements adalah kumpulan kode program
Perhatikan contoh program berikut:
# program mencetak "bintang"
n = 1
while n<6:
print("*", end="")
n += 1
Misalkan kita akan mencetak “bintang” beberapa kali di berbagai bagian program. Supaya bagian kode program ini tidak di ketik berkali-kali, kita bisa membungkus kode program diatas menjadi sebuah fungsi.
# deklarasi fungsi
def cetak_bintang():
n = 1
while n<6:
print("*", end="")
n += 1
print()
# memanggil fungsi cetak_bintang()
cetak_bintang()
cetak_bintang()
cetak_bintang()
Output
*****
*****
*****
🔵 Fungsi dengan Argumen atau Parameter
Pada contoh program mencetak bintang, misalkan kita mau bisa mencetak jumlah bintang yang berbeda. Jumlah bintang pada cetak_bintang
ditentukan oleh angka 6
pada while n<6
. Oleh sebab itu, yang kita perlukan hanyalah menggantikan 6
dengan variabel dari parameter.
def cetak_bintang(banyak):
n = 1
while n<banyak:
print("*", end="")
n += 1
print()
# memanggil fungsi cetak_bintang()
cetak_bintang(2)
cetak_bintang(3)
cetak_bintang(4)
Output
**
***
****
Kita pun bisa menambahkan lebih dari 1 parameter pada fungsi. Misalnya, kita mau menambahkan parameter karakter yang akan dicetak, menggantikan “*”. Kita bisa membuatnya menjadi parameter baru.
def cetak_bintang(banyak, karakter):
n = 1
while n<banyak:
print(karakter, end="")
n += 1
print()
# memanggil fungsi cetak_bintang()
cetak_bintang(4,"*")
cetak_bintang(6,"X")
cetak_bintang(8,"$")
Output
****
XXXXXX
$$$$$$$$
Fungsi dengan return value
Kita bisa membuat fungsi yang memiliki return value. Salah satu contoh built-in function dengan return value yang kita pernah gunakan adalah input()
s = input("Kalimat?")
input()
adalah sebuah fungsi yang minta 1 parameter, kemudian memberikan return value berupa string hasil input user.
Kita akan coba membuat fungsi serupa. Sebagai contoh, kita akan membuat fungsi untuk mencari apakah sebuah bilangan adalah bilangan prima atau bukan.
# Program check bilangan prima
num = int(input("input angka: "))
flag = False
if num > 1:
# check for factors
for i in range(2, num):
if (num % i) == 0:
# bilangan habis dibagi 2, pasti bukan prima
flag = True
break
# jika flag tetap bernilai False, berarti ini adalah bilangan prima
if flag==False:
print(num, "bilangan prima")
else:
print(num, "bukan bilangan prima")
Jika kita akan banyak melakukan pengecekan bilangan prima dari beberapa tempat berbeda di program kita, maka kita perlu membuat bagian kode ini menjadi sebuah fungsi.
# Program check bilangan prima
def adalah_prima(bil):
flag = False
if num > 1:
for i in range(2, num // 2):
if (num % i) == 0:
# bilangan habis dibagi 2, pasti bukan prima
flag = True
break
# jika flag tetap bernilai False, berarti ini adalah bilangan prima
if flag == False:
return True
else:
return False
num = int(input("input angka: "))
if adalah_prima(num)==True:
print(num, "bilangan prima")
else:
print(num, "bukan bilangan prima")
Fungsi dengan return value akan diperlakukan seperti sebuah nilai. Contoh pada fungsi adalah_prima
diperlakukan sebagai sebuah nilai boolean