Overview
Python memiliki sebuah fitur yaitu function, yang biasa digunakan untuk menjalankan sebuah blok script yang kompleks, ataupun yang mungkin dipanggil berulang kali dalam sebuah program Python.
Pernahkan kamu membuat sebuah script Python yang kompleks dan memiliki perintah yang dipanggil berulang-ulang? Python memiliki sebuah fitur yaitu function, yang biasa digunakan untuk menjalankan sebuah blok script yang kompleks, ataupun yang mungkin dipanggil berulang kali dalam sebuah program Python.
Apa itu Python Function?
Function dalam Python berguna untuk menjalankan sebuah blok berisikan script Python yang berfungsi untuk menjalankan suatu task tertentu.
Sebuah function dirancang untuk menerima atau tidak menerima sebuah input, dan mengeluarkan sebuah output atau task.
Mengapa bisa menerima ataupun tidak menerima sebuah input, tapi bisa mengeluarkan output? Karena function sendiri dirancang untuk menjalankan sebuah perintah dan menyederhanakan script, di mana perintah tersebut dapat memiliki sebuah input variabel ataupun tidak.
Sintaks Python Function
Dalam penulisan sebuah function, selalu diawali dengan kata “def” diikuti dengan nama fungsi tersebut. Berikut contoh penulisan sebuah function:
Contoh di atas adalah penulisan sebuah function, yang tidak membutuhkan sebuah input. Function tersebut diawali dengan “def” lalu nama fungsi, lalu diikuti dengan tanda kurung “()”. Input dapat dimasukan ke dalam tanda kurung ini, namun karena contoh program di atas hanya untuk mengeluarkan teks “ini adalah fungsi”, maka kita tidak membutuhkan input apapun.
Bila fungsi ini dijalankan, maka tidak akan mengeluarkan apapun, karena sebuah function harus dipanggil untuk dapat mengeluarkan output.
Contoh Python Function
Berikut contoh untuk pemanggilan function:
Kedua cara di atas dapat digunakan untuk mengeluarkan output dari sebuah function. Selain dari cara pemanggilan output, kita juga dapat menggunakan perintah “return” di dalam sebuah function untuk menyatakan output yang ingin dikembalikan. Berikut contohnya:
Selain kita perlu mengetahui bagaimana caranya untuk mengeluarkan sebuah output ataupun task dari sebuah function, kita juga akan mempelajari bagaimana caranya memberikan input ke dalam sebuah function.
Cara Memberikan Input ke Python Function
Ada empat cara yang umum digunakan untuk memberikan input, sebagaimana dikutip dari Scaler:
#1 Positional arguments
Jenis ini yang umum ditemukan di berbagai function, karena mengikuti posisi dan peletakan dari setiap inputnya. Berikut contohnya:
Walaupun di dalam function, inputan variabel b dipanggil lebih dulu, namun function tetap mengikuti posisi dari variabel yang dipanggil.
#2 Keyword arguments
Jenis input function ini menyatakan input nya di dalam sebuah variabel, sehingga posisi input bisa dituliskan secara acak. Berikut contoh penulisan keyword arguments:
Dalam penulisan di atas, apabila kita mengacu pada positional arguments, maka inputan “b” akan dipanggil sebagai inputan a. Namun karena kita memberikan keywords ( b = “b” ), maka ini menyatakan bahwa kita memberitahu function tersebut bahwa nilai variabel b adalah “b”.
Hal ini membuat lebih fleksibel apabila kita membutuhkan untuk penulisan banyak input, namun kita akan perlu mengetik lebih banyak.
#3 Default arguments
Jenis input ini merupakan gabungan dari positional arguments dan keywords arguments. Jenis function ini mendefinisikan nilai variabel apabila programmer tidak memasukan input sesuai variabel yang ditentukan. Berikut contoh penulisannya:
Pada jenis input di function ini, kita pun bisa menyatakan sendiri input b nya apa bila kita tidak ingin menggunakan nilai default pada function, berikut contohnya:
Pada contoh di atas, kita mendefinisikan sendiri nilai b dalam input function yang kita panggil. Function akan otomatis mendeteksi input baru ini untuk mengganti input default yang sudah ditentukan sebelumnya. Jenis function ini membantu kita untuk memudahkan penulisan karena sudah di-define sebelumnya.
{{COMPONENT_IDENTIFIER}}
#4 Variable-Length arguments
Jenis input pada function ini menggabungkan ketiga model input function sebelumnya. Untuk jenis penulisan input pada function ini, programmer hanya perlu menuliskan def function(*args) ataupun def function (**kwargs).
Dalam penulisannya, “args” memiliki artian arguments, sedangkan “kwargs” merupakan keyword arguments. Simbol * yang diikutinya menandakan wildcard, yang dalam pemrograman dapat diartikan sebagai seluruhnya.
Untuk args menggunakan satu tanda bintang (“*”) sedangkan untuk kwargs menggunakan dua tanda bintang (“**”). Oleh karena itu, dapat diartikan bahwa def function(*args) akan mengambil seluruh nilai dalam input mengikuti posisi yang sudah ditentukan sebagai variabelnya.
Perhatikan contoh penggunaan def function(*args) berikut ini:
Pada contoh di atas, dapat dilihat bahwa kita menggunakan fungsi looping dengan join di dalam function untuk membantu mengeluarkan tiap inputan dengan dipisahkan oleh tanda koma (“,”).
Menggunakan *args, kita mengembalikan tiap variabel input dengan posisi yang sama dan tidak ada yang berubah. Input *args bertindak seperti array dan akan dikeluarkan satu per satu dalam looping layaknya array. Kita akan melihat contoh lain menggunakan ** kwargs sebagai berikut:
Pada contoh di atas, dengan fungsi join dan looping yang sama, kita memanggil masing-masing variabel yang berupa keyword satu per satu, dan memberikan kita keluaran yang mirip dengan keluaran menggunakan *args.
Dengan menggunakan **kwargs, kita mengembalikan tiap variabel input dengan keyword yang sesuai, dan bertindak layaknya model data tuple. Dengan metode variable-length ini, kita juga dapat menggabungkan metoda input biasa, *args dan **kwargs menjadi satu.
Namun karena kita menggunakan metode *args di dalamnya, maka posisi meletakkan input harus sesuai, berikut contohnya:
Pada contoh di atas, kita menyatakan tiga buah input pertama yaitu “a” , “b”, dan “c”. Namun dapat dilihat karena kita hanya memanggil variabel a dan b saja, maka ketika kita memberikan input a sampai g, “c” tidak dipanggil, karena function menganggap 3 input pertama sesuai posisi merupakan input yang kita define sendiri.
Input keempat sampai input sebelum keyword arguments akan dianggap sebagai *args, lalu selebihnya dianggap sebagai **kwargs.
Python Nested Function: Function di Dalam Function
Function memiliki banyak kegunaan dan sebagai cuplikan dari script Python, maka kegunaannya sangat luas dan tidak terbatas.
Selain menerima input dan mengeluarkan output, Python juga memiliki fitur lain, yaitu untuk mengeluarkan nested function, dan juga dapat memunculkan dokumentasi untuk mempermudah pembacaan kegunaan function.
Nested function adalah sebuah function di dalam sebuah function. Perhatikan contoh berikut ini:
Pada contoh di atas, kita mempunyai tiga buah function, di sini function utama adalah fungsi_pertama yang akan mengeluarkan fungsi_kedua dan fungsi_ketiga, yang nilainya ditentukan dari inputan nilai fungsi_pertama.
Karena fungsi_pertama akan mengembalikan nilai fungsi_kedua(a) dan fungsi_ketiga(a), maka kita akan lihat masing-masing fungsi. Fungsi_kedua akan mengembalikan nilai a apabila a = “input”, oleh karena itu kita sudah tahu bahwa nilai fungsi_kedua(a) adalah “input”. Pada fungsi_ketiga, bila a bernilai “input”, maka kita hanya akan mengembalikan dua digit pertama dari a, yaitu “in”.
Fungsi_pertama akan mengembalikan “input” sebagai nilai dari fungsi_kedua(a) dan “in” sebagai nilai dari fungsi_ketiga(a), sehingga bila kita print masing-masing fungsi_2 dan fungsi_3, kita akan mendapatkan nilai “input” dan “in” beserta tulisan “Ini adalah fungsi pertama” dan “Ini adalah fungsi kedua” yang menyertai masing-masing fungsi_pertama dan fungsi_kedua.
Nested function ini dalam aplikasinya memang sulit untuk dipahami, namun sangat berguna apabila kita perlu memanggil beberapa fungsi yang sama berulang kali ke dalam sebuah task function.
Cara Membuat Dokumentasi Python Function
Python sendiri memiliki beberapa function dan library sendiri yang telah dibuat oleh banyak orang, dikarenakan bahasa pemrograman ini bersifat open-source. Namun tidak semua function bawaan Python dapat dipakai begitu saja, terkadang programmer perlu membuat function yang khusus untuk membantu dalam task yang dikerjakannya.
Untuk itu, function yang dibuat pastinya khusus atau hanya bisa dipakai oleh sebagian orang saja. Apabila function jenis ini akan didokumentasikan dalam situs repository seperti GitHub, sebagian besar programmer menaruh definisi dan penjelasan untuk menjelaskan lebih jelas apa tujuan dan fungsi dari function tersebut.
Kita juga dapat meletakkan penjelasan, atau bisa kita sebut dokumentasi di dalam function itu sendiri, berikut contoh penulisannya:
Tanda kutip tiga kali di atas disebut sebagai docstring, merupakan sebuah string panjang yang biasa dipakai programmer untuk menyatakan string yang sangat panjang (bisa lebih dari 1 kalimat).
Docstring tersebut juga berfungsi layaknya sebagai dokumentasi di dalam sebuah function. Untuk memanggil docstring tersebut, kita tinggal memanggil function tersebut menggunakan fungsi help().
Penutup
Function memiliki banyak kegunaan dalam pemrograman Python, dan rata-rata seorang programmer hampir dipastikan menggunakan function untuk mengolah syntax yang rumit dan membutuhkan proses berulang.
Oleh karena itu, pemahaman mengenai function ini perlu diperkuat. Ketika kita belajar di modul Python Class, pemahaman mengenai function ini akan sangat terpakai, karena Class pada Python sangat memanfaatkan function.
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)