Sunday, February 3, 2019

Apa Saja Fungsi dan Prosedur pada Python

Apa Saja Fungsi dan Prosedur pada Python

Untuk pembuatan program python yang sangat kompleks dan memiliki bermacam fitur, kita diharuskan sudah menguasai dan menggunakan fungsi yang ada pada program python.

Jika kita tidak menggunakan fungsi memangnya kenapa?

Akan terasa nanti jika coding program sudah banyak dan kita akan kerepotan untuk menulis kode programnya, karena terlalu banyaknya kode yang harus ditulis sehingga kode akan menjadi sulit untuk dibaca dan dimaintenance.

Keuntungan Memakai Fungsi Pada Python Program

Dengan adanya fungsi pada program python, kita dapat memecah koding program yang sudah besar menjadi sub-sub program yang lebih sederhana. Dan masing-masing fitur pada program dapat kita buat dalam satu fungsi. disaat kita membutuhkan suatu fitur, kita tinggal panggil fungsinya saja. Nanti kita akan mencoba pada contoh program yang sudah saya sediakan di bawah.

Tapi sebelum itu,....

Kita harus sudah memahami dan mengenal teori dasar dan hal apa saja yang harus kita ketahui tentang fungsi di Python.


Cara Membuat Fungsi pada Program Python

Fungsi pada Python, dibuat dengan kata kunci def kemudian diikuti dengan nama fungsinya.

Contoh Codingnya :
def nama_fungsi():
    print "Ini Output Fungsi"
Sama halnya seperti blok kode yang lain, kita juga harus memberikan identasi caranya tab atau spasi 2x untuk menuliskan isi fungsi.

Membuat Fungsi di Python

Setelah kita buat fungsinya, selanjutnya bagaimana?

Setelah kita buat fungsinya, kita harus bisa memanggilnya seperti coding berikut :
nama_fungsi()
Sebagai contoh, coba tulis kode program berikut:

#MembuatFungsi
def sapaan():
    print "Hay kamu, keren.."
##PemanggilanFungsi
sapaan()

Hasil outputnya :
Hay kamu, keren..
Memanggil nilai fungsi sebanyak 3x:
#MembuatFungsi
def sapaan():
    print "Hay kamu, keren.."
##PemanggilanFungsi
sapaan()
sapaan()
sapaan()
Hasil outputnya :
Hay kamu, keren..Hay kamu, keren..Hay kamu, keren..
Gampang kan....

Intinya apapun yang ada di dalam fungsi, ketika dipanggil itulah yang akan dilakukan.

FYI: fungsi juga dapat dipanggil pada fungsi lain, bahkan bisa memanggil dirinya sendiri. Fungsi yang memanggil dirinya sendiri, disebut fungsi rekursif.
Fungsi dengan Parameter
Sekarang, bagaimana kalau kita ingin memberikan input nilai ke dalam fungsi?

Gampang…

Kita bisa manfaatkan parameter.

Apa lagi itu parameter?

Parameter adalah variabel yang menampung nilai untuk diproses di dalam fungsi.

Contoh codingnya:
def sapaan(keren):
    print(keren)
Pada contoh coding diatas, kita membuat fungsi dengan parameter keren.

Lalu cara memanggilnya bagaimana?

Cara pemanggilan suatu fungsi yang memiliki parameter adalah seperti contoh berikut :
sapaan("keren")
"keren" adalah nilai parameter yang kita berikan.

Dan bagaimana kalau parameternya lebih dari satu?

Caranya kita bisa melakukannya dengan menggunakan tanda koma (,) untuk memisah parameter satu dengan yang lainnya.

Contoh Codingnya:

#MembuatFungsiDenganParameter
def luas_segitiga(alas, tinggi):
    luas = (alas * tinggi) / 2
    print "Luas segitiga adalah: %f" % luas
#PemanggilanFungsiDenganMengisiNilaiParameter
luas_segitiga(4, 6)


Hasilnya:




Fungsi Untuk Mengembalikan Nilai

Fungsi yang tidak mengembalikan nilai biasanya disebut dengan Prosedur. Tetapi, terkadang kita membutuhkan hasil proses dari fungsi untuk digunakan pada proses berikutnya. Maka sebuah fungsi harus mengembalikan nilai dari hasil pemrosesannya atau proses sebelumnya. Cara mengembalikan nilai adalah menggunkan kata kunci return lalu diikuti dengan nilai atau variabel yang akan dikembalikan.

Contoh Codingnya :

def luas_persegi(sisi):
    luas = sisi * sisi
    return luas
#PemanggilanFungsiDengan
print "Luas persegi: %d" % luas_persegi(6)

Hasil Outputnya:

Luas persegi: 36

Apa bedanya dengan contoh coding fungsi luas_segitiga yang sebelumnya?

Pada fungsi luas_segitiga kita melakukan print untuk output dari hasil pemrosesan secara langsung di dalam fungsinya. Sedangkan untuk fungsi luas_persegi, kita melakukan print pada saat pemanggilan fungsinya. Jadi, fungsi luas_persegi() akan bernilai sesuai dengan hasil yang dikembalikan. Sehingga kita dapat memanfaatkannya untuk pemerosesan berikutnya.

Bisa dibayangkan dengan asumsi seperti ini:
#rumus: sisi x sisi
def luas_persegi(sisi):
    luas = sisi * sisi
    return luas

#rumus: sisi x sisi x sisi
def volume_persegi(sisi):
    volume = luas_persegi(sisi) * sisi
Pada contoh di atas, kita melakukan pemanggilan fungsi luas_persegi untuk menghitung volume persegi. 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 untuk Variabel Lokal hanya bisa diakses di dalam fungsi tempat ia berada saja.

Pada Pemrograman Python, urutan pengaksesan variabel atau scope dikenal dengan sebutan LGB (Local, Global, dan Build-in). Jadi program python mulai mencari variabel 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 Coding Programnya:

#MembuatVariabelGlobal
nama = "FajarYusuf.Com"
versi = "1.0.0"
def help():
    # ini variabel lokal
    nama = "Program Pythonku"
    versi = "1.0.2"
    # mengakses variabel lokal
    print "Nama: %s" % nama
    print "Versi: %s" % versi
# mengakses variabel global
print "Nama: %s" % nama
print "Versi: %s" % versi
# memanggil fungsi help()
help()


Hasilnya:

Apa Saja Fungsi dan Prosedur pada Python


Perhatikanlah variabel nama yang berada di dalam fungsi help() dan diluar 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().

Kenapa tidak menampilkan yang global?

Karena seperti penjelasan sebelumnya...

Python akan mulai mencari awal dari lokal, 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

Biaklah, sekarang tiba saatnya kita membuat program python dengan fungsi yang lumayan kompleks. Silahkan buat file baru bernama program_fungsi.py.

Dan mari mulai kita tulis kodenya.

Pertama kita buat sebuah variabel global berupa list untuk menampung judul-judul buku.
#VariabelGlobalUntukMenyimpanDataBuku
buku = []
Nanti program ini akan mampu melakukan operasi CRUD atau dengan kepanjangannya yaitu program yang dapat Create, Read, Update, dan Delete. Maka kita membutuhkan fungsi-fungsi berikut:
show_data() untuk menampilkan data dari list buku;
insert_data() untuk menambahkan data ke list buku;
edit_data() untuk mengedit data di list buku;
delete_data() untuk untuk menghapus data dari list buku.
Mari kita lanjut untuk membuat isi dari semuanya.

Dimulai dari fungsi show_data() codingnya berikut:
# fungsi untuk menampilkan semua data
def show_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.

Selanjutnya membuat fungsi insert_data():
# fungsi untuk menambah data
def insert_data():
    buku_baru = raw_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.

Selanjutnya membuat fungsi edit_data():
# fungsi untuk edit data
def edit_data():
    show_data()
    indeks = input("Inputkan ID buku: ")
    if(indeks > len(buku)):
        print "ID salah"
    else:
        judul_baru = raw_input("Judul baru: ")
        buku[indeks] = judul_baru
Fungsi di atas akan menampilkan isi dari list buku dengan memanggil fungsi show_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.

Selanjutnya membuat fungsi delete_data():
# fungsi untuk menhapus data
def delete_data():
    show_data()
    indeks = input("Inputkan ID buku: ")
    if(indeks > len(buku)):
        print "ID salah"
    else:
        buku.remove(buku[indeks])
Hampir sama dengan fungsi edit_data(). Fungsi delete_data() juga harus menampilkan isi list buku dan mengambil ID yang akan dihapus.

Kita dapat menghapus item pada list dengan fungsi remove().

Apakah sudah selesai?

Belum, masih ada dua fungsi lagi yang kita butuhkan:

  • Fungsi untuk menampilkan menu 
  • Fungsi untuk keluar (sudah ada di python: exit())
Berikut codingnya :

# fungsi untuk menampilkan menu
def show_menu():
    print "\n"
    print "----------- MENU ----------"
    print "[1] Show Data"
    print "[2] Insert Data"
    print "[3] Edit Data"
    print "[4] Delete Data"
    print "[5] Exit"
 
    menu = input("PILIH MENU> ")
    print "\n"
    if menu == 1:
        show_data()
    elif menu == 2:
        insert_data()
    elif menu == 3:
        edit_data()
    elif menu == 4:
        delete_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.
if __name__ == "__main__":
    while(True):
        show_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.

Tapi biar tambah terlihat menarik, kita tambahkan saja.

Dan akhirnya kode lengkapnya akan jadi seperi berikut ini :

#VariabelGlobalUntukMenyimpanDataBuku
buku = []
#FungsiUntukMenampilkanSemuaData
def show_data():
    if len(buku) <= 0:
        print "BELUM ADA DATA"
    else:
        for indeks in range(len(buku)):
            print "[%d] %s" % (indeks, buku[indeks])
#FungsiUntukMenambahData
def insert_data():
    buku_baru = raw_input("Judul Buku: ")
    buku.append(buku_baru)
#FungsiUntukEditData
def edit_data():
    show_data()
    indeks = input("Inputkan ID buku: ")
    if(indeks > len(buku)):
        print "ID salah"
    else:
        judul_baru = raw_input("Judul baru: ")
        buku[indeks] = judul_baru
#FungsiUntukMenghapusData
def delete_data():
    show_data()
    indeks = input("Inputkan ID buku: ")
    if(indeks > len(buku)):
        print "ID salah"
    else:
        buku.remove(buku[indeks])
#FungsiUntukMenampilkanMenu
def show_menu():
    print "\n"
    print "----------- MENU ----------"
    print "[1] Show Data"
    print "[2] Insert Data"
    print "[3] Edit Data"
    print "[4] Delete Data"
    print "[5] Exit"
    menu = input("PILIH MENU> ")
    print "\n"
    if menu == 1:
        show_data()
    elif menu == 2:
        insert_data()
    elif menu == 3:
        edit_data()
    elif menu == 4:
        delete_data()
    elif menu == 5:
        exit()
    else:
        print "Salah pilih!"
if __name__ == "__main__":
    while(True):
        show_menu()


Silakan kalian coba eksekusi programnya dan perhatikan hasilnya seperti ini :

Apa Saja Fungsi dan Prosedur pada Python

Seseorang yang ingin membagi pengalaman dan ilmu yang berguna untuk para pembaca FajarYusuf.Com :)

Cobalah untuk memilih Pelajaran Pemrograman dan belajar dari Materi Pertama
EmoticonEmoticon


TENTANG SITUS

SITUS INI ADALAH SITUS PEMBELAJARAN PEMROGRAMAN DAN JUGA PEMAHAMAN TERHADAP TEKNOLOGI KOMPUTER. KALIAN BISA MENGIKUTI PEMBELAJARAN PEMROGRAMAN DENGAN BERTAHAP PADA MATERI YANG SUDAH SAYA SEDIAKAN, JIKA ADA MATERI YANG MEMBINGUNGKAN SILAKAN LAKUKAN KOMENTAR PADA MATERI YANG ANDA TANYAKAN ATAU KALIAN BISA MENGHUBUNGI SAYA DIHALAMAN KONTAK.

https://smallseotools.com/