November 18, 2020

307 words 2 mins read

Python Function

Python Function

Komponen dasar dalam setiap bahasa pemrograman adalah Fungsi (Function). Fungsi dalam python didefinisikan dengan menggunakan kata kunci def.

def sign(x):
    if x > 0:
        return 'positive'
    elif x < 0:
        return 'negative'
    else:
        return 'zero'
    
for x in [-1, 0, 1]: print(sign(x))

# Prints "negative", "zero", "positive"

Dalam Python, kita akan sering menggunakan fungsi dengan argumen opsional seperti ditunjukan dalam contoh berikut.

def hello(name, loud=False):
    if loud:
        print('HELLO, %s' % name.upper())
    else:
        print('Hello, %s!' % name)
        
hello('Bob') # Prints "Hello, Bob"
hello('Fred', loud=True)  # Prints "HELLO, FRED!"
# def tells python you're trying to declare a function
def triangle_area(base, height):
    return 0.5 * base * height

triangle_area(1, 2)
def triangle_area(base, height):
    if base < 0 or height < 0:
        raise ValueError("Base and height must be non-negative")
    return 0.5 * base * height

triangle_area(-1, 2)

Dalam python, semua adalah object. Object dapat dijadikan parameter/argumen dari fungsi. Perhatikan contoh berikut.

def f(x):
    return x+2

def twice(f, x):
    return f(f(x))

twice(f, 2) # + 4
def n_apply(f, x, n):
    """applies f to x n times"""
    for _ in range(n):  # _ is dummy variable in iteration
        x = f(x)
    return x

n_apply(f, 1, 5) # 1 + 2*5
def g(a, x, b=0):
    return a * x + b

g(2, 5, 1)

Argumen sebuah fungsi juga dapat diberikan berikut nama variabelnya.

g(a=2, x=5,b=1)

Dalam contoh berikut, perhatikan bahwa f(y) menggunakan variabel x global

x = 1
y = 2
def f(y):
    return x+y

f(3)

Beberapa contoh fungsi sederhana lainnya.

Mencetak semua bilangan pangkat 2 yang kurang dari 10000

x = 1
while x < 10000:
    print(x)
    x = 2*x

Fungsi dengan dua argumen a dan b dan mengembalikan nilai ekspresi a+2b

def h(a,b):
    return a+2*b

h(2,1)

Fungsi dengan input n dan mencetak semua bilangan Fibonacci yang kurang dari n

def fibonacci(n):
    a,b = 1,1
    while a<n:
        print(a)
        a,b = b,a+b
    
fibonacci(1000)
comments powered by Disqus