[Dasar Python]: Sekali Lagi Tentang Function!

Masih membahas tentang Fungsi di Python, kali ini kita akan belajar tentang Fungsi sebagai suatu obyek. Yes!…saatnya konsentrasi…

Pada pemrograman tercinta kita yaitu Python, sebuah fungsi diperlakukan sebagai sebuah obyek. Maka dari itu, nilai suatu fungsi akan mempunyai tipe. Interpreter menganggap tipe ini sebagai fungsi yang dibuat pengguna (user-defined function). Nilai ini dapat diberikan kepada variabel lain, yang kemudian dapat menjalankan fungsi ini kembali. Suatu fungsi juga dapat dipanggil dari fungsi lain sebagai argumen atau sebagai bagian obyek lain seperti list dan dictionary.

Fungsi dapat dijadikan sebagai alias dari variabel. Apa itu alias? Untuk memahaminya kita gunakan analaogi berikut ini. Misalkan, ada seorang pedagang bernama Andri Wijaya, namun di kalangan pasar dia sering disebut Pakde. Kedua nama ini, Andri Wijaya dan Pakde, mengacu pada sosok yang sama. Kode di bawah ini akan menjelaskan sebuah fungsi bernama Andri dengan sebuah alias yaitu Pakde,

>>> def Andri():
...     print "Andri Wijaya ----"
... 
>>> Pakde = Andri
>>> Pakde()
Andri Wijaya ----

Ketika kita mengarahkan Pakde ke Andri, maka sebuah fungsi yang sama akan diberikan ke Pakde. Maka dari itu, Pakde() akan memunculkan hasil yang sama dengan yang dimunculkan Andri().

Kita juga dapat menempatkan suatu fungsi yang merujuk ke fungsi lain sebagai argumen. Simak kode berikut,

>>> def Pakde(argumen):
...     argumen()

Sebuah fungsi dapat dipanggil dari interpreter dengan menggunakan kode seperti di bawah ini,

>>> Pakde(Andri)
Andri Wijaya ----

Ketika kita menuliskan sebuah fungsi pada prompt Python (interpreter), sebuah obyek fungsi Andri akan diberikan ke Pakde sebagai argumen. Fungsi Pakde() akan memanggil Andri() dengan mengganti argumen dengan Andri. Ketika argumen() dieksekusi pada Pakde(), maka Andri() juga akan dieksekusi. Kita juga dapat menempatkan obyek fungsi bawaan Python (built-in function) ke fungsi lain sebagai sebuah argumen.

Woke!…Selamat Belajar…Salam PythonMania!

One comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s