Function
Pernahkah anda menemui suatu kondisi dimana kita harus menuliskan kode yang sama beberapa kali hanya untuk melakukan task dengan data yang berbeda? Hal tersebut tentunya cukup merepotkan, bukan? Disinilah function berperan aktif dalam membantu rutinitas anda.
Mengenal Function
Function merupakan sekumpulan baris kode yang bertujuan untuk melakukan task tertentu. Untuk mengatasi permasalahan kita dalam hal ini menuliskan kode secara berulang untuk melakukan task yang sama, maka nantinya kita perlu melakukan generalisasi kode dan meletakkannya pada sebuah function. Sehingga ketika kita ingin melakukan task yang sama untuk dataset yang berbeda, kita cukup memanggil nama function tersebut tanpa harus menuliskan perintahnya berulang kali. Tentunya hal ini akan membuat kode kita semakin reusable, mudah dipahami, lebih enak dibaca, dan menghemat waktu kita.
Built-in Function
Sebenarnya, kita sudah beberapa kali melakukan pemanggilan function. Pada materi sebelumnya, kita sudah mengenal dan menggunakan function print()
range()
type()
list()
yang merupakan built-in function alias fungsi bawaan yang sudah disediakan oleh python.
Di materi kali ini, kita juga akan mengenal satu lagi function bawaan python yang bernama help()
. Function ini berguna untuk memberikan panduan terkait sebuah function yang akan kita bahas pada sub-materi berikutnya.
Docstring
Docstring merupakan singkatan dari Documentation String yang berguna untuk menjelaskan cara kerja function tersebut. Docstring biasanya terletak pada baris pertama tepat setelah header function tersebut.
Menuliskan docstring pada function memang tidak wajib, namun alangkah baiknya jika kita tetap menuliskannya agar mempermudah rekan kita dalam memahami function tersebut saat berkolaborasi.
Kita bisa melihat docstring pada suatu function dengan memanggil function bawaan python yaitu help()
. Mari kita coba melihat docstring pada function print()
.
Di baris pertama, function help menunjukkan bahwa function print merupakan built-in function. Kemudian tepat setelah baris print(...)
adalah docstring yang tertera pada function bawaan print()
.
Jika kita hanya ingin menampilkan docstring saja tanpa embel-embel lainnya, maka kita bisa melakukannya dengan memanggil atribut __doc__
seperti pada contoh berikut.
Membuat Function pertama
Sekarang, mari kita coba dengan membuat function sederhan kita sendiri atau yang disebut user-defined function.
Sintaks Function
Potongan kode diatas merupakan susunan utama sebuah function. Mari kita jabarkan detilnya.
Keyword
def
yang berguna untuk memulai definisi sebuah function serta sebagai penanda header pada function tersebut.Nama function yang digunakan untuk memanggil atau menjalankan function itu sendiri. Nama function haruslah bersifat unique alias tidak boleh ada lebih dari satu function dengan nama yang sama. Python tidak mendukung overloading seperti pada beberapa bahasa pemrograman lainnya.
Parameter atau argumen yang berperan sebagai "input" dimana kita meletakkan variabel yang hendak di proses pada function tersebut.
Tanda titik dua
:
yang menunjukkan akhir dari sebuah header function.Docstring yang menjelaskan cara kerja function tersebut.
Statement atau baris logika kode yang menjadi inti dari function itu sendiri, yang didahului oleh indentasi sebanyak 4 karakter spasi (default) sebagai penunjuk hirarki kode kepada interpreter.
Return statement yang berfungsi untuk mengembalikan sebuah nilai setelah function dijalankan. Return statement bisa jadi bersifat opsional tergantung pada use case yang dikerjakan, namun kita akan membahasnya nanti.
Setelah mengetahui komponen-komponen pada sebuah function, marilah sekarang kita mulai membuat function yang berguna untuk menjumlahkan dua bilangan.
Kemudian mari kita coba jalankan function yang baru saja kita buat dengan cara memanggil namanya seperti berikut.
Bagus, function yang kita buat sudah berjalan dengan baik. Namun, function tersebut masih bersifat statis, karena kedua bilangan yang akan dijumlahkan didefinisikan secara manual didalam body function. Sehingga kita tidak bisa secara bebas memasukkan bilangan yang kita inginkan.
Nah untuk mengatasi masalah tersebut, berikutnya kita akan menambahkan parameter pada fungsi tersebut.
Function dengan Parameter
Parameter dalam sebuah function bisa dibilang berperan sebagai input, karena dalam pemanggilannya kita akan meneruskan nilai atau variabel yang nantinya akan diproses didalam function tersebut. Dengan demikian function yang kita miliki semakin general dan fleksibel karena adaptif terhadap nilai parameter atau nilai input.
Bagus, kita sudah memperbarui function yang barusan dibuat. Namun untuk pemanggilannya cukup berbeda karena sekarang kita perlu memasukkan dua bilangan untuk dijumlahkan.
Sampai sini kita sudah berhasil membuat function yang cukup fleksibel untuk menjumlahkan dua buah bilangan. Untuk saat ini mungkin orang lain atau tim proyek kita tidak akan kesulitan memahami function yang baru saja kita buat. Sayangnya, jika function ini semakin kompleks dan rumit tentunya mereka membutuhkan sebuah arahan atau penjelasan mengenai apa yang dilakukan oleh function ini. Oleh karena itu, berikutnya kita akan menambahkan docstring sebagai panduan dari function yang baru saja kita buat, agar nantinya orang lain tidak kesulitan dalam memahami kode kita.
Menulis Docstring
Seperti yang sudah kita bahas pada sub-bab sebelumnya, kita akan meletakkan docstring dibawah header dan tepat di baris pertama.
Sekarang, mari kita jalankan kembali untuk memastikan docstring kita berhasil ditambahkan.
Well, sampai disini kode kita sudah semakin mendekati kaidah best practice. Orang tidak lagi merasa kesulitan dalam memahami apa yang dilakukan oleh function tersebut.
Selanjutnya, agar kode kita semakin reusable maka kita akan menambahkan return statement yang berfungsi untuk mengembalikan hasil dari proses sebuah function. Mari kita bahas!
Return Value
Jika sebelumnya kita mengenal parameter sebagai input dari sebuah function, maka kita bisa menyebut return statement sebagai output **dari sebuah function.
Pada contoh kode sebelumnya, kita menampilkan hasil penjumlahan dengan cara memanggil print()
diakhir function. Memang sebelumnya tidak ada masalah karena function yang dibuat telah berjalan dengan sesuai. Namun, bagaimana jika masih ada operasi berikutnya setelah penjumlahan? Tentunya kita seharusnya menyimpan hasil penjumlahan yang dilakukan oleh penjumlahan_dua_bilangan()
, bukan? Kalau begitu, mari kita coba menyimpan hasil dari function yang sudah kita buat sebelumnya.
Jika kita jalankan kode diatas, maka kita akan mendapat 2 baris output pada console, yaitu angka 15
dan sebuah tipe data None
. Angka 15 didapat dari perintah print()
yang ada didalam function penjumlahan_dua_bilangan()
. Sedangkan None
adalah isi dari variabel num
, artinya kita gagal dalam menyimpan hasil penjumlahan dua bilangan tersebut.
Tipe data None
sama halnya dengan null
pada bahasa pemrograman lainnya, yang intinya menunjukkan bahwa variabel tersebut kosong dan tidak memiliki isi nilai apapun.
Disinilah return statement berperan. Mari kita coba lakukan sedikit modifikasi pada kode sebelumnya.
Selanjutnya, mari kita coba jalankan kode terbaru kita seperti berikut.
Sekarang kita akan mendapati dua buah output bernilai 15. Seperti pada penjelasan sebelumnya, angka 15 pertama didapatkan dari perintah print()
yang ada pada bagian akhir function. Kemudian angka 15 kedua merupakan isi dari variabel num
, yang artinya kita telah berhasil menyimpan hasil penjumlahan kedua bilangan tersebut. Sehingga, jika nantinya diperlukan operasi lanjutan maka kita cukup membuat variabel untuk menampung keluaran atau output dari function kita.
Last updated