Fungsi
Fungsi merupakan salah satu bagian dari pemrograman yang sangat penting. Fungsi berguna utuk menjalankan kumpulan perintah yang umum kita gunakan tanpa harus berulang-ulang menuliskan kumpulan perintah tersebut. Contoh fungsi yang sudah tersedia built in dari Python adalah fungsi print(), len(), input(), dan sebagainya.
Fungsi dapat kita buat untuk memudahkan kita mengenal suatu perintah. Misalnya:
def kuadrat(x):
print(x**2)kuadrat(4)#output dari program di atas adalah "16"
Dengan memberi nama suatu fungsi dengan nama yang merepresentasikan isi perintah dalam fungsi tersebut, maka kita dan orang lain yang membacanya akan lebih mudah memahami program yang kita buat.
Untuk membuat sebuah fungsi syntax yang digunakan adalah def. Pada contoh di atas, nama fungsinya adalah kuadrat. Sedangkan variabel x adalah sebagai parameter. Di dalam fungsi tersebut dapat kita berikan perintah sesuai dengan yang kita perlukan.
Sebuah fungsi juga dapat dibuat tanpa parameter. Misalnya:
def cetak():
print("Halo Peserta DDP 0")
print("Rajinlah belajar agar kamu bertambah pintar")cetak()
Outputnya adalah sebagai berikut:
Halo Peserta DDP 0
Rajinlah belajar agar kamu bertambah pintar
Parameter juga dapat dibuat default value. misalnya:
def volume(panjang, lebar = 5, tinggi = 7):
return panjang * lebar * tinggiw = volume(10)
x = volume(5, 2)
y = volume(2, 3, 4)
z = volume(panjang = 3, tinggi = 10)print(w)
print(x)
print(y)
print(z)
Output dari program di atas adalah:
350
70
24
150
Deafault parameter berguna untuk memberikan nilai otomatis kepada parameter yang tidak didefinisikan nilainya saat memanggil fungsi.
Pada contoh-contoh sebelumnya, kita telah memberikan argumen dengan menuliskan nilainya secara langsung. Pemberian argumen tersebut dinamakan positional argument. Pada contoh terakhir, kita juga dapat memberikan argumen dengan menyebutkan parameternya secara eksplisit. Pemberian argumen tersebut dinamakan keyword argument. Jika kita menggunakan keyword argument, urutan bisa diabaikan. Namun, jika kita ingin mencampurkan keyword argumentdengan positional argument, maka positional argument harus dituliskan lebih awal.
Selain itu, kita juga dapat membuat parameter yang dapat diisi dengan pemberian argumen sebanyak apapun dengan ketentuan:
- Parameter yang jumlah argumennya bebas ditandai dengan karakter ‘*’ sebelum deklarasi nama parameter
- Dalam satu fungsi, hanya satu parameter yang boleh memiliki jumlah argumen bebas
- Posisi parameter yang memiliki jumlah bebas harus diletakkan terakhir
- Tidak dapat menggunakan keyword argument
#CONTOHdef fungsi(satu, *banyak):
print("Satu:", satu)
print("Banyak:", banyak)fungsi(1, 2, 3, 4) #Pertama
fungsi(5) #Kedua
fungsi(satu = 6) #Ketiga
fungsi(satu = 7, banyak = (8, 9, 10)) #Keempat
Keluaran dari program di atas adalah:
#Pertama
--------------------------------
Satu: 1
Banyak: (2,3,4)
--------------------------------#Kedua
--------------------------------
Satu: 5
Banyak: ()
--------------------------------#Ketiga
--------------------------------
Satu: 6
Banyak: ()
--------------------------------#Keempat
--------------------------------
TypeError: a_function() got an unexpected keyword argument 'banyak'
--------------------------------#Akan terjadi sebuah error pada pemanggilan fungsi yang keempat karena argumennya dipanggil dengan keyword argument.
Terakhir, fungsi dapat mengembalikan sebuah nilai (return) ataupun tidak mengembalikan nilai. Contoh fungsi yang mengembalikan nilai adalah fungsi len(x) yang mengembalikan panjang dari x. Sedangkan contoh fungsi yang tidak mengembalikan sebuah nilai adalah fungsi print(). Fungsi yang tidak mengembalikan sebuah nilai juga dapat disebut dengan sebutan prosedur. Jika kita ingin membuat prosedur, kita bisa menggunakan keyword return none, return saja, atau menghilangkan keyword return.
#CONTOHdef tambah(a, b)
print(a + b)
return nonedef kurang(x, y)
print(y - x)
returndef cetak()
print("Semangat belajarnya!!!")#Ketiga fungsi di atas mengembalikan None ketika dipanggil
CATATAN: Perlu diketahui bahwa setelah perintah return, maka kontrol akan keluar dari fungsi tersebut dan perintah di bawahnya tidak akan dijalankan.