Python: Fungsi dan Modul

Fungsi biasa menggambarkan kegunaan dari suatu benda, seperti pintu yang fungsinya mengatur keluar masuknya objek pada ruangan.

Fungsi memiliki prinsip serupa dengan iterasi yaitu agar kita tidak menulis banyak kode (mempersingkat), tetapi dalam iterasi kita bergantung pada sebuah batasan perulangan sedangkan fungsi tidak.

Fungsi juga dikenal dengan nama “Subprogram”, karena menyusun bagian kode yang akan dijalankan program dan bisa dipanggil dari skrip lain.

Apa itu Fungsi

Fungsi pada pemrograman memiliki pemaknaan lain, lebih mirip seperti fungsi matematika. Fungsi dalam pemrograman adalah sebuah kumpulan blok kode yang bisa dipanggil menggunakan nama (identifier) seperti variabel.

Perbedaan fungsi dan variabel adalah fungsi memiliki parameter dan di bentuk mengunakan keyword def

def [nama fungsi](parameter,...):
    [blok kode]

contohnya seperti ini:

def sapaSenyum(nama):
    print("Hai," + nama + " :)")

sapaSenyum("Olivia")
# Hai, Olivia :)

Penjelasan

  • def sapaSenyum ada pembentuk fungsi bernama sapaSenyum dan
  • (nama) adalah parameter fungsi yang hanya bisa dipakai di dalam blok fungsi.
  • Identansi tab setelah pembuatan fungsi menjadi pembatas lingkup fungsi.

Keyword return

Contoh pada bagian sebelumnya merupakan contoh fungsi nilai kembali. Pada bagian ini kita akan membahas kembalian fungsi.

Jika pada matematika ketika kita memasukan nilai 4 kedalam f(x) = x + 1 maka kembalian bernilai 5. Berikut pemaparanya

Ada sebuah fungsi , f(x) = x + 1 namun x belum ditentukan.

x belum ditentukan.

f(x) = x + 1 , (ga bisa di hitung, karena x belum jelas)

---

x = 4 (x bernilai 4, x telah ditentukan)

f(x) = x + 1
f(4) = 4 + 1 , (x ditukar dengan 4 agar bisa di hitung)
f(4) = 5

Jika dalam python kita menggunakan keyword return untuk fungsi mengembalikan nilai:

def fx (x):
    return x + 1

print(fx(4))
# 5

Apa itu Modul

Ketika kita menulis skrip python kita, misal main.py, pernahkah kamu merasa bahwa kodenya kepanjangan dan makin lama makin repot untuk scroll kebawah ?

Modul adalah cara kita untuk memecah satu skrip menjadi 2 skrip atau lebih dengan tujuan ketika kita membaca suatu skrip tidak cape scroll dan fokus sama tujuan skrip itu saja.

Disini kita ada skrip untuk menghitung berbagai rumus matematika yang repot:

import math

def pytagoras(x,y):
    return math.sqrt(x ** 2 + y ** 2)

def luasSegitiga(alas,tinggi):
    return (alas * tinggi) / 2

def ratarata(kumpulanNilai):
    hasil = 0
    for nilai in kumpulanNilai:
        hasil += nilai
    return hasil

def main():
    print(pytagoras(3,4))
    print(luasSegitiga(3,4))
    print(ratarata([1,2,4,5]))

main()

Bila kita liat kode di atas banyak fungsi yang membuat kita perlu melihat secara hati-hati (agak serem karena banyak fungsi).

Mari kita pecah kode diatas menjadi beberapa skrip kecil. Kita akan pecah berdasarkan fungsi matematisnya:

  • buat skrip __init__.py (isinya kosong, untuk contoh), ini untuk memudahkan import berkas (standar modul python).
  • skrip geometri.py untuk fungsi pytagoras dan luasSegitia
  • skrip diskrit.py untuk fungsi ratarata
  • skrip main.py untuk fungsi main sekaligus Entry Point

Entry point adalah fungsi yang pertama kali dijalankan oleh program.

Hasil pecahan skrip:

# diskrit.py
def ratarata(kumpulanNilai):
    hasil = 0
    for nilai in kumpulanNilai:
        hasil += nilai
    return hasil
# geometri.py
import math

def pytagoras(x,y):
    return math.sqrt(x ** 2 + y ** 2)

def luasSegitiga(alas,tinggi):
    return (alas * tinggi) / 2
# main.py
def main():
    print(pytagoras(3,4))
    print(luasSegitiga(3,4))
    print(ratarata([1,2,4,5]))

main()

Agar kita bisa membaca fungsi dari skrip geometry.py dan diskrit.py, di skrip main.py. Kita menggunakan keyword from yang dibarengi nama berkas dan import untuk fungsi yang ingin dipakai.

# main.py
from diskrit import ratarata
from geometry import luasSegitiga, pytagoras

def main():
    print(pytagoras(3,4))
    print(luasSegitiga(3,4))
    print(ratarata([1,2,4,5]))

main()

Tambahan

  • keyword from berguna untuk menemukan skrip kita.
  • keyword import akan membuka akses skrip kita untuk mengunakan fungsi dari skrip/pustaka lain.
  • keyword import tidak hanya berlaku untuk skrip lokal, tetapi juga pustaka yang terunduh melalui pip.

Bila ingin melihat contohnya bisa kunjungi ini : REPL Python Import Test

Referensi