Belajar Python: Function

Function yang saya tahu dan ingat semenjak kuliah biasanya dideskripsikan sebagai blok yang berisi perintah spesifik yang bisa digunakan berulang kali. Di python mendeklarasikan sebuah function dengan cara

def namafunction(argument, argumentlainya):
    print("boo")

Sekali lagi indentation.

Sedangkan aturan dalam memberi nama function dikutip dari sumber(1)

Function names should be lowercase, with words separated by underscores as necessary to improve readability.

Untuk aturan naming conventions lainnya bisa dibuka di sumber.

Membuat Fungsi

def hello():
    print("hello world")
# panggil dengan cara berikut
hello()
# output
hello world

Di atas menggunakan print sekarang coba menggunakan return

def hello():
    return "hello world"
# panggil dengan cara berikut
hello()
# output
'hello world'

Di sana ada tanda kutip yang mungkin menandakan bahwa nilai balik nya berupa string.
(mohon koreksinya jika ada yang baca)

Argument

Sebagaimana bahasa lain, function bisa dibuat dengan menyertakan sebuah argument atau parameter

def hello(name):
    print("hello "+name)
# panggil dengan cara berikut
hello('aries')
# output
hello aries

Contoh lain

def addtwo(arg):
    return arg+2
# panggil dengan cara berikut
addtwo(2)
# output
4

Fungsi yang sama kalau kita masukan string

def addtwo(arg):
    return arg+2
# panggil dengan cara berikut
addtwo('john doe')
# output
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in ()
----> 1 addtwo('john doe')

 in addtwo(arg)
      1 def addtwo(arg):
----> 2     return arg+2

TypeError: must be str, not int

Bisa gunakan if itung-itung mengingat tulisan kemarin

def addtwo(arg):
    if type(arg) == int or type(arg) == float:
        return arg+2
    else:
        return "Masukan Integer atau float"
# panggil dengan cara berikut
addtwo('john doe')
# output
'Masukan Integer atau float'

Sebenarnya sebelum nulis contoh di atas banyak rekomendasi dari stackoverflow dan situs2 diskusi lainnya untuk menggunakan isdigit() atau semacam try and catch tapi nanti dulu lah.

default argument

Kita juga bisa membuat default argument jika tak ada nilai yang diberikan

def valueplease(name):
    return name
# panggil dengan cara berikut
valueplease()
# output
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in ()
----> 1 valueplease()

TypeError: valueplease() missing 1 required positional argument: 'name  

Kalau diberi nilai default

def valueplease(name='john doe'):
    return name
# panggil dengan cara berikut
valueplease()
# output
'john doe`
# saat dimasukan nilai
valueplease('Puch')
# ouput
'Puch'

SUMBER

https://www.python-course.eu/python3_functions.php
https://www.python-course.eu/python3_functions.php