Di dalam membuat program ML maka kita akan sering sekali mendefinisikan fungsi dalam python. Apa itu fungsi? Penulisan syntax fungsi didefinisikan sebagai berikut:
def functionname (parameters): "function_docstring" function_suite return [expression]
Sebagai contoh bisa dilihat penulisan di bawah ini:
def cobaprint(a): '''docstring adalah catatan bagi penulis program, tidak akan muncul di eksekusi''' print(a) return cobaprint("harusnya ini bisa diprint")
Script di atas adalah contoh fungsi yang sangat sederhana. Fungsi diawali dengan penulisan def, kemudian diikuti dengan nama fungsinya (cobaprint) dan parameter di dalam tanda kurung. Parameter yang didefinisikan di dalam fungsi bisa satu atau bahkan banyak. Setelah itu, diakhiri dengan tanda titik dua.
di bawah nya dilanjutkan dengan menulis argumentasi dalam fungsi tadi. Argumen bisa panjang sekali selama memiliki indentasi yang identik.
Diakhiri dengan return untuk mengembalikan nilai yang ditulis di bagian argumentasi. Return tidaklah wajib, namun tanpa perintah return, sebenarnya di balik layar return juga dijalankan secara otomatis. Biasanya jika argumentasinya hanyalah print, tidak memerlukan return.
Contoh fungsi fibonacci
Berikut contoh fungsi untuk bilangan fibonacci:
def fib(n): # Print bilangan Fibonacci sampai angka ke-n. """Print bilangan Fibonacci sampai angka ke-n.""" a, b = 0, 1 while a <= n: print(a, end=' ') a, b = b, a+b print() # Sekarang coba memproses bilangan fibonacci sampai 2000 fib(2000)
Maka jika di eksekusi, outputnya akan sebagai berikut:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
Penjelasan:
- Line ke 2 diawali dengan tanda # yang berguna sebagai komentar. Komentar ini hanya terlihat di script, namun tidak terlihat saat eksekusi.
- Line ke 3 adalah docstring (sudah dibahas di atas).
- Line ke 4 adalah definisi a diisi dengan o, dan b diisi dengan 1.
- Line ke 5 adalah looping yang akan berjalan sampai a > n. n adalah batas fibonacci yang diharapkan.
- Line ke 6 melakukan perintah print a, diikuti dengan spasi kosong di line yang sama. Perintah end=’ ‘ adalah untuk memberikan blank space setelah print.
- Line ke 7 mendefinisikan a diisi dengan b, dan b diisi dengan a+b.
- Line ke 8 melakukan perintah print semua argumen di atasnya. Walau demikian ini seperti return. Jika print ini tidak ada, juga tidak akan merubah hasilnya. Namun usahakan untuk selalu mengakhiri fungsi dengan perintah return [variabel] atau print([variabel]).