Skip to the content.

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:

  1. Kata kunci def yang menjadi pertanda bahwa blok kode program adalah sebuah fungsi
  2. nama_fungsi adalah nama fungsi yang kita buat
  3. Parameters adalah variabel-variabel yang akan diolah dalam fungsi. Parameter bersifat opsional.
  4. 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