Mendefinisikan Fungsi Blok fungsi diawali dengan keyword def diikuti dengan kurung (()) Parameter atau argumen diletakkan didalam kurung Statement pertama dari fungsi bersifat optional, disebut sebagai docstring : dokumentasi dari fungsi Blok dari fungsi selalu ditandai dengan (:), kemudian diatur menggunakan indent Terdapat statement return yang menyatakan keluar dari fungsi, pada statement return, secara optional dapat mengembalikan nilai def <functionname>( arg1, arg2,...,argN ): "function_docstring" function_suite return [expression]
Algoritma Pemrograman Komputer By : Muhtadin 4
Memanggil fungsi
Setelah fungsi dibuat menggunakan def, fungsi dapat dipanggil
(run) dalam perogram dengan memanggil fungsi menggunakan namanya diikuti dengan kurung Argumen merupakan optional tergantung dari definisi fungsi.
Algoritma Pemrograman Komputer By : Muhtadin 5
Parameter fungsi
Type parameter tidak perlu didefinisikan
Semua type variable yang kompatibel dapat digunakan memanggil fungsi Polimorphism Jika tidak disupport (tdk kompatibel) maka akan ada error Argumen/parameter fungsi dalam python bersifat pass by reference.
Algoritma Pemrograman Komputer By : Muhtadin 6
Contoh
def perkalian(x,y) : #mendefiniskan fungsi perkalian
hasil = x * y return(hasil)
perkalian(2,3) #memanggil fungsi perkalian
Algoritma Pemrograman Komputer By : Muhtadin 7
# Function definition is here def changeme( mylist ): "This changes a passed list into this function" mylist.append([1,2,3,4]) print("Values inside the function: ", mylist) return
Default Argumen Pada fungsi, dapat didefinisikan argumen yang memiliki nilai default, sehingga pada saat memanggil fungsi parameter tersebut dapat ditinggalkan. # Function definition is here def printinfo( name, age = 35 ): "This prints a passed info into this function" print ("Name: ", name) print ("Age ", age) return;
Variable-length arguments Fungsi dalam python dapat menerima pemanggilan fungsi dengan jumlah argumen melebihi definisi fungsi Disebut sebagai Variable-length arguments
Variable-length arguments - Contoh # Function definition is here def printinfo( arg1, *vartuple ): "This prints a variable passed arguments" print "Output is: " print arg1 for var in vartuple: print var return;
# Now you can call printinfo function
printinfo( 10 ); printinfo( 70, 60, 50 );
Output is: 10 Output is: 70 60 50
Algoritma Pemrograman Komputer By : Muhtadin 11
Fungsi Anonymous (lambda) Lambda keyword : Dapat berisi beberapa argument, namun hanya dapat mengembalikan satu nilai dengan satu ekspresi. Tidak dapat memanggil print secara langsung
Fungsi Anonymous (lambda) - Contoh # Function definition is here sum = lambda arg1, arg2: arg1 + arg2;
# Now you can call sum as a function
print "Value of total : ", sum( 10, 20 ) print "Value of total : ", sum( 20, 20 )
Value of total : 30 Value of total : 40
Algoritma Pemrograman Komputer By : Muhtadin 13
Scope of Variables: Variable dalam program mungkin tidak dapat diakses di seluruh bagian program : Global Variable Dapat diakses di seluruh bagian program Local Variable Hanya dapat diakses secara lokal dalam fungsi Pada fungsi, untuk mengakses variable global dapat dilakukan dengan keyword global
Algoritma Pemrograman Komputer By : Muhtadin 14
Global vs Local total = 0; # This is global variable. # Function definition is here def sum( arg1, arg2 ): # Add both the parameters and return them." total = arg1 + arg2 # Here total is local variable. print("Inside the function local total : ", total) return total
# Now you can call sum function
sum( 10, 20 ) print ("Outside the function global total : ", total)
Inside the function local total : 30
Outside the function global total : 0
Algoritma Pemrograman Komputer By : Muhtadin 15
Global vs Local total = 0; # This is global variable. # Function definition is here def sum( arg1, arg2 ): # Add both the parameters and return them. global total total = arg1 + arg2 # Here total is local variable. print("Inside the function local total : ", total) return total
# Now you can call sum function
sum( 10, 20 ) print ("Outside the function global total : ", total)