Pada pembuatan program yang kompleks dan memiliki banyak fitur, kita diharuskan menggunakan fungsi. Karena jika tidak menggunakan fungsi kita akan kerepotan menulis kode programnya, karena banyak yang harus ditulis dan kode akan menjadi sulit dibaca dan dirawat (maintenance).
Dengan fungsi kita dapat memecah program besar menjadi sub program yang lebih sederhana. Masing-masing fitur pada program dapat kita buat dalam satu fungsi. Pada saat kita membutuhkan fitur tersebut, kita tinggal panggil fungsinya saja.
Secara sederhana, fungsi atau function adalah kode program yang dirancang untuk menyelesaikan sebuah tugas tertentu, dan merupakan bagian dari program utama. Ketika di sadur ke dalam bahasa indonesia, function ini di sebut juga sebagai fungsi.
Berikut adalah ringkasan pengertian ari fungsi :
- Fungsi merupakan bagian dari program yang punya tugas khusus.
- Fungsi adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian) dan berguna untuk menjadikan program dapat lebih bersifat modular sehingga akan lebih mudah dipahami dan dapat digunakan kembali.
Tujuan Fungsi
Fungsi digunakan pada programĀ dengan tujuan :
-
- Program menjadi terstruktur, sehingga mudah dipahami dan mudah dikembangkan. Dengan memisahkan langkah-langkah detail ke satu atau lebih fungsi-fungsi
- Dapat mengurangi pengulangan (duplikasi) kode. Langkah-langkah program yang sama dan dipakai berulang-ulang diprogram dapat dituliskan sekali saja secara terpisah dalam bentuk fungsi-fungsi
- Fungsi/prosedur dapat di panggil berulangkali sesuai dengan kebutuhan, bagian program yang membutuhkan langkah-langkah ini tidak perlu selalu menuliskannya, tetapi cukup memanggil fungsifungsi tersebut.
Pada umumnya fungsi atau procedure memerlukan masukan yang disebut parameter atau argument. Parameter atau argument dapat lebih dari satu atau tidak sama sekali, untuk memberi nama pada fungsi atau procedur aturannya sama dengan membuat variable
Cara Membuat Fungsi pada Python
Fungsi pada Python, dibuat dengan kata kunci def kemudian diikuti dengan nama fungsinya.
Contoh :
def nama_fungsi():
print "Hello ini Fungsi"
Sama seperti blok kode yang lain, kita juga harus memberikan identasi (tab atau spasi 2x) untuk menuliskan isi fungsi.

Setelah kita membuat fungsi, kita bisa memanggil fungsi tersebut dengan sintak seperti berikut :
nama_fungsi()
Contoh kode program :
# Membuat Fungsi
def salam():
print("Hello, Selamat Datang")
print("SMK 1 Cimahi")
## Pemanggilan Fungsi
salam()
Hasilnya :

Coba panggil sebanyak 4 kali :
# Membuat Fungsi
def salam():
print("Hello, Selamat Datang")
print("SMK 1 Cimahi")
## Pemanggilan Fungsi 4 kali
salam()
salam()
salam()
salam()
Hasilnya :

Fungsi juga dapat dipanggil pada fungsi lain, bahkan bisa memanggil dirinya sendiri. Fungsi yang memanggil dirinya sendiri disebut fungsi rekursif.
Fungsi dengan Parameter
Untuk memberikan input nilai ke dalam fungsi kita bisa menggunakan parameter. Parameter adalah variabel yang menampung nilai untuk diproses di dalam fungsi.

Contoh :
def salam(ucapan):
print(ucapan)
Pada contoh di atas, kita membuat fungsi dengan parameter ucapan. Untuk cara pemanggilan fungsi yang memiliki parameter adalah seperti berikut :
salam("Selamat siang")
“Selamat siang” adalah nilai parameter yang kita berikan. Jika parameternya lebih dari satu, kita bisa menggunakan tanda koma (,) untuk memisahkannya.
Contoh :
# Membuat fungsi dengan parameter
def luas_segitiga(alas, tinggi):
luas = (alas * tinggi) / 2
print("Luas segitiga: %f" % luas)
# Pemanggilan fungsi
luas_segitiga(4, 6)
Hasilnya :

Fungsi yang Mengembalikan Nilai
Fungsi yang tidak mengembalikan nilai biasanya disebut dengan prosedur. Namun, kadang kita butuh hasil proses dari fungsi untuk digunakan pada proses berikutnya. Maka fungsi harus mengembalikan nilai dari hasil pemrosesannya.
Cara mengembalikan nilai adalah menggunkan kata kunci return lalu diikuti dengan nilai atau variabel yang akan dikembalikan.

Contoh :
def luas_persegi(sisi):
luas = sisi * sisi
return luas
# pemanggilan fungsi
print("Luas persegi: %d" % luas_persegi(6))
Hasilnya :

Perbedaan fungsi luas_segitiga() dengan fungsi luas_persegi() adalah pada fungsi luas_segitiga()Ā kita melakukan print dari hasil pemrosesan secara langsung di dalam fungsinya. Sedangkan fungsi luas_persegi(), kita melakukan print pada saat pemanggilannya. Jadi fungsi luas_persegi() akan bernilai sesuai dengan hasil yang dikembalikan, sehingga kita dapat memanfaatkannya untuk pemerosesan berikutnya.
Contoh lain :
# LUAS PERSEGI (rumus: sisi x sisi)
def luas_persegi(sisi):
luas = sisi * sisi
return luas
# VOLUME KUBUS (rumus: sisi x sisi x sisi)
def volume_persegi(sisi):
volume = luas_persegi(sisi) * sisi
print(volume)
#pemanggilan fungsi
volume_persegi(10)
Pada contoh di atas, kita melakukan pemanggilan fungsi luas_persegi() untuk menghitung volume persegi di dalam fungsi volume_persegi, maka akan menghasilkan output 1000.
Variabel Global dan Lokal pada Python
Saat kita menggunakan fungsi, maka kita juga harus mengetahui yang namanya variabel Global dan Lokal. Variabel Global adalah variabel yang bisa diakses dari semua fungsi, sedangkan variabel lokal hanya bisa diakses di dalam fungsi tempat ia berada saja.
Pada Python, urutan pengaksesan variabel (scope) dikenal dengan sebutan LGB (Local, Global, dan Build-in). Jadi program python mulai mencari vairabel lokal terlebih dahulu, kalau ada maka itu yang digunakan. Tapi kalau tidak ada, pencarian terus ke Global dan Build-in. Variabel Build-in adalah variabel yang sudah ada di dalam Python.
Contoh :
# membuat variabel global
nama = "Agus Suratna"
hp = "08137777777"
def help():
# ini variabel lokal
nama = "Web Belajar"
versi = "2.0.1"
# mengakses variabel lokal
print("Nama: %s" % nama)
print("Versi: %s" % versi)
# mengakses variabel global
print("Nama: %s" % nama)
print("Versi: %s" % hp)
# memanggil fungsi help()
help()
Hasilnya :

Perhatikanlah variabel nama yang berada di dalam fungsi help() dan di luar fungsi help(). Variabel nama yang berada di dalam fungsi help() adalah variabel lokal. Jadi saat kita memanggil fungsi help() maka nilai yang akan tampil adalah nilai yang ada di dalam fungsi help().
Yang tampil tidak dari variable yang global karena Python mulai mencari dari lokal dulu, setelah itu ke global dan build-in. Kalau di tiga tempat itu tidak ditemukan, maka biasanya akan terjadi NameError atau variabel tidak ditemukan.
Contoh Program dengan Fungsi
Sekarang kita coba buat file baru bernama fungsi_python.py. Lalu kita mulai tulis kodenya dengan membuat sebuah variabel global berupa list untuk menampung judul-judul buku.
# Variabel global untuk menyimpan data Buku buku = []
Nanti program ini akan mampu melakukan operasi CRUD (Create, Read, Update, dan Delete), maka kita membutuhkan fungsi-fungsi berikut :
- tampil_data() untuk menampilkan data dari list buku
- tambah_data() untuk menambahkan data ke list buku
- ubah_data() untuk mengedit data di list buku
- hapus_data() untuk untuk menghapus data dari list buku.
Ā
tampil_data() :
# fungsi untuk menampilkan semua data
def tampil_data():
if len(buku) <= 0:
print("BELUM ADA DATA")
else:
for indeks in range(len(buku)):
print("[%d] %s" % (indeks, buku[indeks]))
Fungsi di atas akan mengecek isi dari list buku, jika isinya kosong (len(buku) <= 0) maka tampilkan “BELUM ADA DATA”. Namun apabila ada isinya, maka tampilkan semua isinya dengan perulangan.
tambah_data()
# fungsi untuk menambah data
def tambah_data():
buku_baru = input("Judul Buku: ")
buku.append(buku_baru)
Fungsi di atas akan mengambil input dari user kemudian diisi ke dalam list buku dengan fungsi append(). Fungsi append() adalah fungsi untuk menambahkan item di akhir list.
Selain append() ada juga prepend(), namun untuk kasus ini kita pakai append() saja. Penjelasan lengkap tentang append() dan prepend() bisa dibaca pada: Mengenal Struktur Data List pada Python.
ubah_data()
# fungsi untuk edit data
def ubah_data():
tampil_data()
indeks = int(input("Inputkan ID buku: "))
if (indeks > len(buku)):
print("ID salah")
else:
judul_baru = input("Judul baru: ")
buku[indeks] = judul_baru
Fungsi di atas akan menampilkan isi dari list buku dengan memanggil fungsi tampil_data() di dalamnya. Setelah itu kita meminta user untuk menginputkan ID atau nomer indeks buku yang akan diedit.
Lalu kita lakukan pengecekan, jika ID yang diinputkan melebihi dari isi list buku (indeks > len(buku)), maka tampilkan pesan “ID salah”. Namun apabila tidak melebihi dari isi buku, maka ambil input untuk judul baru dan simpan sesuai ID-nya.
hapus_data()
# fungsi untuk menhapus data
def hapus_data():
tampil_data()
indeks = int(input("Inputkan ID buku: "))
if (indeks > len(buku)):
print("ID salah")
else:
buku.remove(buku[indeks])
Hampir sama dengan fungsi ubah_data(), fungsi hapus_data() juga harus menampilkan isi list buku dan mengambil ID yang akan dihapus. Kita dapat menghapus item pada list dengan fungsi remove().
Ā
Selanjutnya kita buat dua fungsi lagi yang kita butuhkan :
- Fungsi untuk menampilkan menu
- Fungsi untuk keluar (sudah ada di python: exit())
Ā
tampil_menu()
# fungsi untuk menampilkan menu
def tampil_menu():
print("\n")
print("----------- MENU ----------")
print("[1] Tampil Data")
print("[2] Tambah Data")
print("[3] Ubah Data")
print("[4] Hapus Data")
print("[5] Exit")
menu = int(input("PILIH MENU> "))
print("\n")
if menu == 1:
tampil_data()
elif menu == 2:
tambah_data()
elif menu == 3:
ubah_data()
elif menu == 4:
hapus_data()
elif menu == 5:
exit()
else:
print("Salah pilih!")
Fungsi di atas akan menampilkan menu dari 1ā5, lalu memanggil fungsi-fungsi yang sudah dibuat berdasarkan menu yang dipilih.
Terakhir, kita harus membuat main loop programnya.
#main loop
if __name__ == "__main__":
while(True):
tampil_menu()
Program akan mengulang terus-menerus sampai fungsi exit() dieksekusi.
if __name__ == “__main__”: adalah blok main di Python. Sebenarnya tanpa ini, programnya sudah bisa dijalankan. Supaya terlihat lebih cantik, maka kita tambahkan saja.
Sehingga kode lengkapnya akan seperti ini :
# Variabel global untuk menyimpan data Buku
buku = []
# fungsi untuk menampilkan semua data
def tampil_data():
if len(buku) <= 0:
print("BELUM ADA DATA")
else:
for indeks in range(len(buku)):
print("[%d] %s" % (indeks, buku[indeks]))
# fungsi untuk menambah data
def tambah_data():
buku_baru = input("Judul Buku: ")
buku.append(buku_baru)
# fungsi untuk edit data
def ubah_data():
tampil_data()
indeks = int(input("Inputkan ID buku: "))
if (indeks > len(buku)):
print("ID salah")
else:
judul_baru = input("Judul baru: ")
buku[indeks] = judul_baru
# fungsi untuk menhapus data
def hapus_data():
tampil_data()
indeks = int(input("Inputkan ID buku: "))
if (indeks > len(buku)):
print("ID salah")
else:
buku.remove(buku[indeks])
# fungsi untuk menampilkan menu
def tampil_menu():
print("\n")
print("----------- MENU ----------")
print("[1] Tampil Data")
print("[2] Tambah Data")
print("[3] Ubah Data")
print("[4] Hapus Data")
print("[5] Exit")
menu = int(input("PILIH MENU> "))
print("\n")
if menu == 1:
tampil_data()
elif menu == 2:
tambah_data()
elif menu == 3:
ubah_data()
elif menu == 4:
hapus_data()
elif menu == 5:
exit()
else:
print("Salah pilih!")
#main loop
if __name__ == "__main__":
while (True):
tampil_menu()
Hasilnya seperti berikut :

Referensi :
- https://www.petanikode.com/python-fungsi/
Be the first to comment