MODUL 13 – SUB PROGRAM (FUNCTION)
Function di Python
Function atau Fungsi merupakan suatu blok kode atau blok intruksi tertentu yang akan
dijalankan ketika kita memanggilnya. Dengan adanya fungsi kita dapat:
Membuat kode lebih mudah dibaca dan dirawat
Memecah kode program yang besar menjadi beberapa sub
Membedakan setiap fitur yang dibangun
Mencegah adanya kode yang ditulis secara berulang (duplikasi kode)
Menggunakan blok kode program tersebut berkali-kali
Lebih mudah mendeteksi adanya kesalahan, maksudnya gini, jika terjadi error kita
dapat mencari error tersebut berdasarkan fungsi yang bersangkutan
dan lain-lain
Fungsi dibagi menjadi dua berdasarkan sumbernya
Fungsi yang sudah disediakan oleh bahasa pemrograman atau dikenal dengan built-
in function
Fungsi yang dibuat oleh pengembang secara pribadi atau user defined function
Cara Membuat Fungsi di Python
Fungsi di python menggunakan keyword atau kata kunci def dengan dilanjutkan nama
fungsi tersebut ditambah tanda kurung dan diakhiri dengan titik dua seperti berikut.
def nama_fungsi():
Karena fungsi termasuk blok kode maka setelah mendeklarasikan kepala fungsi
selanjutnya pada tubuh fungsi atau di dalam blok tersebut perlu adanya ruang atau
space yang menjorok ke kanan yang lebih dikenal dengan sebutan indentasi.
def nama_fungsi():
#Masuk blok kode fungsi
print("Belajar Fungsi di Python") #Perlu indentasi
Untuk keluar dari tubuh atau blok kode fungsi maka pada baris selanjutnya pointer
haruslah diletakkan sejajar dengan kepala fungsi
def nama_fungsi():
#Masuk blok kode fungsi
print("Belajar Fungsi di Python") #Perlu indentasi
#Keluar blok kode fungsi
Memanggil Fungsi
Untuk memanggil fungsi tinggal ketik nama fungsi yang bersangkutan dan jangan lupa
tanda kurung dibelakangnya.
nama_fungsi()
Contoh:
def belajar_fungsi():
print("Belajar Fungsi di Python")
belajar_fungsi() #Panggil fungsi
Hasilnya:
Percobaan 1:
# Membuat Fungsi
def hello():
print ("Hello World")
## Pemanggilan Fungsi
hello()
Tampilan Listing program dan tampilan output:
Fungsi dengan Parameter
Parameter bisa dikatakan adalah variabel yang menampung nilai, yang mana nilai ini
nantinya akan diproses di dalam fungsi. Parameter sendiri bersifat opsional (boleh ada
atau tidak).
def hello(isi):
print(isi)
Kemudian untuk pemanggilan fungsi yang mengandung parameter adalah seperti ini
hello("Hello World")
Jadi juga didefinisikan nilai yang nantinya akan diproses. Nilai dari parameter saat
pemanggilan fungsi ini dikenal dengan argumen.
Percobaan 2:
def hello(isi):
print(isi)
hello("Hello World")
Tampilan Listing program dan tampilan output:
Percobaan 3:
# Membuat Fungsi
def hello():
print ("Hello World")
## Pemanggilan Fungsi
hello()
hello()
hello()
Tampilan Listing program dan tampilan output:
Parameter dapat lebih dari satu. Untuk membuat fungsi dengan parameter lebih dari
satu, maka gunakan tanda koma untuk memisahkannya, seperti berikut.
Percobaan 4:
# Membuat fungsi dengan parameter
def luas_segitiga(alas, tinggi):
luas = (alas * tinggi) / 2
print ("Luas segitiga = ", luas);
# Pemanggilan fungsi
luas_segitiga(5, 10)
Tampilan Listing program dan tampilan output:
Fungsi Dengan Nilai Balik
Secara teknis fungsi dibedakan menjadi dua, yang pertama adalah fungsi tanpa nilai
balik, fungsi jenis ini disebut juga dengan prosedur atau void function, contohnya dapat
dilihat pada materi di atas tadi.
Sedangkan yang kedua adalah fungsi dengan nilai balik disebut non void function. Nah
ketika kita berbicara tentang fungsi itu sendiri maka sejatinya kita mengacu pada fungsi
jenis ini.
Perbedaan keduanya dapat dilihat dari ada atau tidaknya keyword return.
# Tanpa Nilai Balik
def hello_world():
print("Hello World")
# Dengan Nilai Balik
def halo_dunia():
return print("Halo Dunia")
hello_world()
halo_dunia()
Hasilnya:
Bila suatu fungsi dideklarasikan dengan keyword return di dalamnya maka ia adalah non
void function. Sedangkan jika tidak ada keyword return maka ia adalah void function
atau prosedur.
Percobaan 5:
def bujursangkar(sisi):
luas = sisi * sisi
return luas
# pemanggilan fungsi
print ("Luas bujur sangkar = ", bujursangkar(10))
Tampilan Listing program dan tampilan output:
Fungsi keyword return
Keyword return pada dasarnya berfungsi untuk mengakhiri suatu fungsi dan
mengembalikan nilai saat fungsi tersebut dipanggil. Untuk melihat lebih jelas
perbedaannya, sekarang kita coba praktekan di bawah
Perhatikan fungsi luas_persegi_panjang() di atas, kita tidak menggunakan return di
dalamnya maka ketika kita coba menggunakan fungsi itu kembali di fungsi
volume_balok() maka akan menimbulkan error. Hal ini karena fungsi
luas_persegi_panjang() melakukan pencetakan atau print secara langsung di dalam
tanpa mengembalikan hasil print tersebut. Jadi fungsi luas_persegi_panjang tidak ada
nilainya. Sedangkan bila kita jadikan fungsi dengan nilai balik.
def luas_persegi_panjang(panjang, lebar):
luas = panjang*lebar
return luas
def volume_balok(panjang, lebar, tinggi):
volume = luas_persegi_panjang(panjang, lebar)*tinggi
print(volume)
volume_balok(10, 6, 8)
Hasilnya:
Maka program akan berjalan sebagai mana mestinya, karena fungsi
luas_persegi_panjang() yang sekarang setelah ia menerima nilai maka akan
dikembalikan dan digunakan untuk proses di fungsi volume_balok(), dengan adanya
return ini fungsi luas_persegi_panjang() jadi bernilai.
Percobaan 6:
# membuat fungsi persegi
def persegi(panjang,lebar):
luas = panjang * lebar
return luas
# memanggil fungsi persegi
def balok(panjang, lebar, tinggi):
volume = persegi(panjang,lebar) * tinggi
return volume
print ("Luas persegi = ", persegi(7,3))
print ("Volume balok = ", balok(10,5,2))
Tampilan Listing program dan tampilan output:
Variabel Global dan Variabel Lokal
Variabel global adalah variabel yang dapat diakses oleh semua fungsi. Sedangkan
variabel lokal hanya bisa diakses di dalam fungsi tempat dia dideklarasikan.
Kemudian kita juga perlu perhatikan bahwa di python ada yang namanya scope atau
urutan pengaksesan variabel yang mana urutannya adalah Local-Global-Built in.
Jadi python akan mencari variabel lokal terlebih dahulu, jika tidak ada maka beralih ke
variabel global, jika tidak ada lagi maka python mulai ke built in. Jika masih tetap nihil,
maka akan muncul NameError.
Perhatikan praktik berikut.
laptop = "ACER"
harga = "5.000.000"
def lihat_laptop():
print(laptop, harga)
lihat_laptop()
Hasilnya:
Pada program di atas fungsi lihat_laptop() mengakses variabel laptop dan harga, yang
mana kedua variabel ini letaknya di luar fungsi, inilah yang dinamakan variabel global.
Selanjutnya ketika di dalam fungsi mulai ditambah variabel dengan nama yang sama.
laptop = "ACER"
harga = "5.000.000"
def lihat_laptop():
laptop = "ASUS"
harga = "5.200.000"
print(laptop, harga)
lihat_laptop()
Hasilnya:
Fungsi lihat_laptop() akan mengakses variabel laptop dan harga yang terdapat di dalam
bloknya, maka dari itu kedua variabel ini disebut variabel lokal.
Percobaan 7:
# membuat variabel global
NIM = "20.01.53.0007"
Nama = "James Bond"
def Mahasiswa():
# ini variabel lokal
NIM = "20.01.53.0212"
Nama = "Wiro Sableng"
# mengakses variabel lokal
print ("NIM Saya = ", NIM)
print ("Nama Saya = ", Nama)
# mengakses variabel global
print ("NIM Saya = ", NIM)
print ("Nama Saya = ", Nama)
# memanggil fungsi Mahasiswa()
Mahasiswa()
Tampilan Listing program dan tampilan output:
Percobaan 8:
# membuat variabel global
NIM = "20.01.53.0007"
Nama = "James Bond"
def Mahasiswa():
# mengakses variabel lokal
print ("NIM Saya = ", NIM)
print ("Nama Saya = ", Nama)
# mengakses variabel global
print ("NIM Saya = ", NIM)
print ("Nama Saya = ", Nama)
# memanggil fungsi Mahasiswa()
Mahasiswa()
Tampilan Listing program dan tampilan output: