Fungsi dalam Bahasa Pemrograman Python

 Fungsi / Function adalah satu blok kode yang melakukan tugas tertentu atau satu blok instruksi yang di eksekusi ketika dipanggil dari bagian lain dalam suatu program.


Tujuan pembuatan fungsi adalah :

Ø  Memudahkan dalam pembuatan program.

Ø  Menghemat ukuran program.

Ø  Keuntungan memakai fungsi :

Ø  Menguraikan tugas pemrograman rumit menjadi langkah-langkah yang lebih sederhana atau kecil.

Ø  Mengurangi duplikasi kode (kode yang sama ditulis berulang-ulang) dalam program.

Ø  Dapat menggunakan kode yang ditulis dalam berbagai program yang berbeda.

Ø  Memecah program besar menjadi kecil sehingga dapat dikerjakan oleh programmer-programmer atau dipecah menjadi beberapa tahap sehingga mempermudah pengerjaan dalam sebuah projek

Ø  Menyembunyikan informasi dari user sehingga mencegah adanya perbuatan iseng seperti memodifikasi atau mengubah program yang kita buat

Ø  Meningkatkan kemampuan pelacakan kesalahan, jika terjadi suatu kesalahan kita tinggal mencari fungsi yang bersangkutan saja dan tak perlu mencari kesalahan tersebut di seluruh program.

Ø  Bentuk umum Sebuah fungsi adalah sebagai berikut :

Ø  Tipedata namafungsi(daftarparameter). (hermansyah, 2013)

  1. Deklarasi & Definisi

             Baik data maupun fungsi harus dideklarasikan. Data perlu dideklarasikan agar compiler tahu berapa byte memori yang harus disediakan untuk data yang bersangkutan, sedangkan fungsi perlu dideklarasikan agar compiler dapat memeriksa ketepatan pemanggilan fungsi yang bersangkutan.

Deklarasi dan definisi adalah langkah awal dalam setiap penulisan program tidakterkecuali dalam bahasa C++.(Baidlowi, 2015)

  1. Parameter

             Nilai dalam suatu subprogram FreePascal sifatnya adalah lokal, artinya hanya dapat digunakan pada modul atau unit yang bersangkutan saja, tidak dapat digunakan pada modul atau unit program yang lainnya. Parameter adalah data masukan untuk subprogram yang nantinya akan diproses lebih lanjut dalam subprogram tersebut. Dalam Pascal, dikenal dua macam parameter,

yaitu :

  1. parameter nilai (value parameter), dan
  2. parameter referensi (reference parameter).(Maryono, 2014)

 fungsi dalam Bahasa pemrograman C++, yaitu:

Ø  parameter masukan.

Ø  parameter keluaran.

Ø  parameter gabungan antara masukan dan keluaran. (Baidlowi, 2015)

  1. Nilai balik

               Fungsi dengan nilai balik adalah suatu fungsi yang dapat mengembalikan suatu nilai ke dalam fungsi utama. Dalam membuat fungsi, harus didefinisikan tipe data dari niali yang akan dikembalikan. Sebelum dapat memanggil suatu fungsi, kita harus mendeklarasikannya terlebih dahulu. Pendeklarasian fungsi dengan nilai balik diawali dengan tipe data yang akan dikembalikan nilainya. Kemudian diikuti dengan nama fungsi dan daftar perameternya.

4.Rekrusif

         Rekursif adalah suatu proses yang memanggil dirinya sendiri yang biasanya dilakukan oleh fungsi atau prosedur pada pemrograman prosedural, seperti contohnya bahasa pemrograman C, atau metode pada pemrograman berorientasi objek seperti C++ atau Java. Rekursif akan terus berjalan sampai kondisi berhenti terpenuhi, oleh karena itu dalam sebuah rekursi perlu adanya blok-blok kode sebagai berikut :

Ø  Basis

           Basis merupakan kode yang menjadi titik berhenti dari sebuah proses rekursi karena proses rekursi akan terus berjalan berputar memanggil dirinya sendiri sampai sebuah kondisi basis terpenuhi. Oleh karena itu basis sangat penting dalam sebuah proses rekursi, karena tanpa basis sebuah proses rekursi akan terus dijalankan tanpa henti.

Ø  Rekursi

         Rekursi merupakan kode dalam hal ini sebuah blok program (prosedur, fungsi atau metode) memanggil dirinya sendiri, misalnya ada sebuah fungsi hitung hasil faktorial, bahwa di dalamnya blok kode fungsi itu memanggil dirinya sendiri. (Baidlowi, 2015)

  1. Pengertian Pointer

      Pointer merupakan sebuah variabel yang berisi alamat dari variabel lain. Suatu pointer dimaksudkan untuk menunjukan ke suatu alamat memori sehingga alamat dari suatu variabel dapat diketahui dengan mudah. Arti pointer dalam bahasa sehari-hari adalah petunjuk atau bisa di bilang penentu atau pointer secara sederhana bisa diartikan sebagai tipe data yang nilainya mengarah pada nilai yang terdapat pada sebuah area memori (alamat memori). Namun dalam bahasa C, Pointer bisa berfungsi sebagai variabel array berarti pointer sebagai penunjuk elemen array ke-0 dalam variabel C.

  • Fungsi Pointer

             Fungsi Pointer yang utama adalah untuk menyimpan alamat memori dari sebuah variable. Selain menyimpan alamat dari sebuah variable, Pointer juga berfungsi untuk menyimpan alamat memori dari sebuah fungsi. (Bhayu, 2014)

  1. Modularisasi

            konsep-konsep pemrograman adalah kemampuan untuk group beberapa baris kode ke dalam sebuah unit yang dapat dimasukan dalam program kami. Yang asli untuk kata ini adalah sub-program. Nama lain meliputi: makro, sub-rutin, prosedur, modul dan fungsi. Fungsi-fungsi penting karena membolehakn kita untuk mengambil program besar dan rumit untuk membagi mereka menjadi potongan-potongan kecil diatur. Karena fungsi yang lebih kecil adalah bagian program secara keseluruhan, Umumnya fungsi jatuh kedalam dua kategori:

  • Control program

                Fungsinya hanya di gunakan untuk membagi dan sub control program . fungsi ini adalah fungsi unik yang di tulis. Lain-lain program dapat menggunaka fungsi serupa bahkan fungsi dengan nama yang sama, tetapi isi dari fungsi hampir selalu berbeda.

  • Tugas Spesifik

            Fungsinya dirancang untuk digunakn dengan beberapa program . fungsi ini melakukan tugas tertentu dan dengan itu bisa digunakan dalam berbagai program karena program lain juga perlu untuk melakukan tugas tertentu . spesifik tugas fungsi kadang-kadang disebut sebagai blok bangunan . karena mereka sudah di uji dan oke. Kita dapat menggunakannya dengan keyakinan lebih efisien untuk menulis program yang besar.

Program utama harus menetapkan adanya fungsi yang di gunakan dalam program ini.

tergantung pada bahasa pemrograman :

  1. Menentukan fungsi
  2. Memanggil fungsi
  3. Menyatakan fungsi(Baidlowi, 2015)

sumber : http://setyo2511.blogspot.com/2017/01/bab-6-fungsi-by-setiyo-budi.html

 

Pengertian Fungsi (def) Pada Python

Apa itu fungsi (def) pada python?

Fungsi pada python adalah kumpulan perintah atau baris kode yang dikelompokkan menjadi satu kesatuan untuk kemudian bisa dipanggil atau digunakan berkali-kali.

Sebuah fungsi bisa menerima parameter, bisa mengembalikan suatu nilai, dan bisa dipanggil berkali-kali secara independen.

Dengan fungsi kita bisa memecah program besar yang kita tulis, menjadi bagian-bagian kecil dengan tugasnya masing-masing.

Juga, fungsi akan membuat kode program kita menjadi lebih “reusable” dan lebih terstruktur.

Sintaks Fungsi

Di dalam python, sintaks pembuatan fungsi terlihat seperti berikut:

def <nama_fungsi>(parameters):
  statements

Sintaks di atas secara umum terbagi menjadi 4 bagian:

  1. Kata kunci def yang menjadi pertanda bahwa blok kode program adalah sebuah fungsi
  2. Nama fungsi yang kita buat
  3. Parameters yang akan diterima oleh fungsi yang kita buat (tidak wajib)
  4. Dan blok kode fungsi yang di sana akan kita tulis perintah-perintah yang harus dilakukan oleh sebuah fungsi

Oiya: jangan lupa bahwa blok kode program di dalam python didefinisikan dengan indentasi. Silakan baca aturan sintaks python untuk lebih lengkapnya.

Contoh sebuah fungsi sederhana dengan nama halo_dunia():

def halo_dunia():
  print('Halo python! Halo dunia!')

Fungsi di atas, jika dipanggil, akan mengeksekusi perintah print() yang ada di dalamnya.

Memanggil Fungsi

Bagaimana cara memanggil fungsi yang telah kita definisikan?

Sederhana.

Cukup ketik nama fungsinya, ditambah dengan tanda kurung () seperti berikut:

halo_dunia()

Output:

Halo python! Halo dunia

Bahkan kita bisa memanggil fungsi halo_dunia() berkali-kali:

halo_dunia()
halo_dunia()
halo_dunia()

Output:

Halo python! Halo dunia
Halo python! Halo dunia
Halo python! Halo dunia

Fungsi dengan Argumen atau Parameter

Sebuah fungsi juga bisa menerima parameter atau pun argumen. Ia merupakan suatu nilai/variabel yang dilemparkan ke dalam fungsi untuk diproses lebih lanjut.

Sebagai contoh, perhatikan output berikut:

Halo Nurul, selamat datang!
Halo Lendis, selamat datang!
Halo Fabri, selamat datang!
Halo Isa, selamat datang!

Lalu, bagaimana cara kita memproduksi output seperti itu dengan python?

Ada banyak cara. Bisa dengan list, perulangan, dan lain sebagainya.

Akan tetapi, mungkin yang langsung terbesit dalam benak kita adalah dengan melakukan 4x print() seperti ini:

print('Halo Nurul, selamat datang!')
print('Halo Lendis, selamat datang!')
print('Halo Fabri, selamat datang!')
print('Halo Isa, selamat datang!')

Itu adalah cara yang sangat simpel, dan juga tidak salah.

Akan tetapi, dari pada kita melakukan 4x print seperti di atas, kita bisa memanfaatkan fungsi dan parameter pada python.

Sehingga kode programnya akan terlihat seperti ini:

def selamat_datang (nama):
  print(f'Halo {nama}, selamat datang!')

selamat_datang('Nurul')
selamat_datang('Lendis')
selamat_datang('Fabri')
selamat_datang('isa')

Dan kita tetap akan mendapatkan output yang sama. Lebih elegan bukan 😎

Parameter Wajib

Parameter di dalam python bisa lebih dari satu, bisa wajib semua (harus diisi), dan bisa juga bersifat opsional.

Perhatikan contoh fungsi berikut:

def perkenalan (nama, asal):
  print(f"Perkenalkan saya {nama} dari {asli}")

Jika dipanggil:

perkenalan("Renza Ilhami", "Jawa Timur")

Kita akan mendapatkan output:

Perkenalkan saya Renza Ilhami dari Jawa Timur

Tapi jika kita memanggilnya dengan parameter tidak lengkap, justru kita akan mendapatkan error:

perkenalan("Renza Ilhami")

Error:

Exception has occurred: TypeError
perkenalan() missing 1 required positional argument: 'asal'

Kenapa? Karena kita hanya memasukkan satu parameter saja padahal parameter yang diminta ada 2.

Parameter Opsional (atau Default)

Tidak semua parameter fungsi pada python itu bersifat wajib. Ada yang opsional.

Parameter opsional adalah parameter yang seandainya tidak diisi, dia sudah memiliki nilai default.

Perhatikan contoh berikut:

def suhu_udara (daerah, derajat, satuan = 'celcius'):
  print(f"Suhu di {daerah} adalah {derajat} {satuan}")

Pada fungsi suhu_udara() di atas, kita mendefinisikan 3 buah parameter:

  • daerah
  • derajat
  • suhu = 'celcius'

Dua parameter pertama adalah bersifat wajib dan harus diisi, sedangkan parameter ketiga tidak wajib. Jika tidak kita isi, maka nilai default-nya adalah “celcius”.

Sekarang, kita coba panggil fungsi tersebut dengan 2 cara:

suhu_udara("Surabaya", 30)
suhu_udara("Surabaya", 86, 'Fahrenheit')

Jika dijalankan, outputnya akan terlihat seperti ini:

Suhu di Surabaya adalah 30 celcius
Suhu di Surabaya adalah 86 Fahrenheit

Fungsi Dengan Parameter Tidak Berurut

Jika kita perhatikan lagi fungsi suhu_udara(), kita akan dapati kalau parameter yang bersifat opsional hanya ada 1, dan hanya ada di belakang.

Tapi, bagaimana jika ternyata parameter opsionalnya ada lebih dari 1?

Coba perhatikan:

def suhu_udara (daerah, derajat = 30, satuan = 'celcius'):
  print(f"Suhu di {daerah} adalah {derajat} {satuan}")

Pada fungsi tersebut, kita telah mengatur nilai default untuk parameter derajat. Sehingga sekarang kita memiliki dua buah parameter.

Kita coba panggil dengan 2 parameter seperti ini:

suhu_udara('Jakarta', 'fahrenheit')

Apa outputnya?

Suhu di Jakarta adalah fahrenheit celcius

Hmmm. Kok gitu?

Padahal kita inginnya hanya mengisi 2 parameter saja:

  1. Satu untuk parameter daerah
  2. Dan yang kedua untuk parameter satuan

Tapi di sini malah terisi adalah parameter derajat.

Untuk mengatasi hal ini, kita bisa mendefinisikan nama argumen/parameter yang akan kita isi.

Perhatikan contoh ini:

suhu_udara('Jakarta', 'fahrenheit')
suhu_udara('Jakarta', satuan = 'fahrenheit')

Pemanggilan fungsi di atas akan menghasilkan output:

Suhu di Jakarta adalah fahrenheit celcius
Suhu di Jakarta adalah 30 fahrenheit

Dengan mendefinisikan nama argumen yang kita passing, kita sekarang bisa memanggilnya bahkan secara tidak berurutan sekalipun:

suhu_udara(satuan='kelvin', daerah='Makasar', derajat=100)

Output:

Suhu di Makasar adalah 100 kelvin

Fungsi yang Mengembalikan Nilai

Jenis fungsi yang berikutnya adalah berkaitan dengan nilai kembalian.

Ditinjau dari segi pengembalian nilai, fungsi terbagi menjadi 2:

  1. Fungsi yang tidak mengembalikan nilai
  2. Fungsi yang mengembalikan nilai

Pada contoh-contoh di atas, kita telah membuat dan memanggil fungsi-fungsi yang tidak memiliki nilai.

Sekarang, kita akan coba membuat fungsi yang mempunyai atau mengembalikan sebuah nilai.

def luas_persegi (sisi):
  return sisi * sisi

Penjelasan

  • Kata kunci return berfungsi untuk mengembalikan nilai.
  • Nilai yang dikembalikan suatu fungsi, bisa kita olah kembali untuk berbagai kebutuhan.

Contoh:

# tidak menghasilkan output apa pun
luas_persegi(10)

# menghasilkan output
print('Luas persegi dengan sisi 4 adalah:', luas_persegi(4))

# kita juga bisa simpan di dalam variabel
persegi_besar = luas_persegi(100)
persegi_kecil = luas_persegi(50)

print('Toal luas persegi besar dan kecil adalah:', persegi_besar + persegi_kecil)

Jika dijalankan, kita akan mendapatkan output:

Luas persegi dengan sisi 4 adalah: 16
Toal luas persegi besar dan kecil adalah: 12500

Jadi intinya: fungsi yang mengembalikan nilai adalah sebuah fungsi yang jika kita panggil, dia akan memberikan kita sebuah nilai yang bisa kita olah lebih lanjut, seperti misalkan kita simpan dalam sebuah variabel atau kita lakukan operasi tertentu.

Lebih dari 1 return

Jika statement return telah dieksekusi pada sebuah fungsi, maka semua proses yang ada di dalam blok kode fungsi tersebut akan berhenti.

Sehingga, misalkan kita memiliki lebih dari 1 buah return, maka hanya ada satu return saja yang dieksekusi. Dan ketika sebuah return telah dieksekusi, semua perintah yang ada di bawahnya akan di-skip –ini mirip dengan perintah break pada perulangan for mau pun while.

Perhatikan contoh berikut:

def persentase (total, jumlah):
  if (total >= 0 and total <= jumlah):
    return total / jumlah * 100
  
  return False

# output 50
print(persentase(30, 60))

# output False
print(persentase(100, 60))

Output:

50.0
False

Ruang Lingkup (dan Siklus Hidup) Variabel Pada Fungsi

Variabel memiliki ruang lingkup dan siklus hidup.

Secara umum, terdapat dua ruang lingkup variabel pada python:

  1. Variabel global
  2. Dan variabel lokal

Variable global adalah variabel yang bisa dipanggil dari manapun dari satu file python.

Sedangkan variable lokal adalah variabel yang hanya hidup di dalam satu blok kode tertentu (seperti di dalam fungsi, seperti kasus kita pada pertemuan ini).

Perhatikan contoh berikut:

kota = 'Lamongan'

def halo() :
  print(kota)

print('[print secara langsung]', kota)
print('[panggil fungsi halo]', end=' ')

halo()

Output:

[print secara langsung] Lamongan
[panggil fungsi halo] Lamongan

Pada kode di atas, variabel kota yang ada di dalam fungsi, adalah variabel kota yang sama dengan yang ada di luar fungsi.

Tapi, coba kita ubah kode programnya:

kota, provinsi = 'Lamongan', 'Jawa Timur'

def hello ():
  provinsi = 'Jawa Barat'
  print(kota, provinsi)

print('[PANGGIL FUNGSI hello()]')
hello()

print('\n[SECARA LANGSUNG]')
print(kota, provinsi)

Output:

[PANGGIL FUNGSI hello()]
Lamongan Jawa Barat

[SECARA LANGSUNG]
Lamongan Jawa Timur

Pencerahan

  1. Kita membuat 2 buah variabel dengan nama kota dan provinsi
  2. Kita mengubah variabel provinsi pada fungsi hello()
  3. Saat fungsi hello() dieksekusi, benar saja variabel provinsi berubah.
  4. Tapi, ketika kita tampilkan lagi (secara langsung) variabel provinsi, nilainya kembali ke nilai semula.

Kenapa?

Karena ketika kita mengubah variabel provinsi pada fungsi hello(), itu sebenarnya kita tidak merubah variabel provinsi yang ada di luar, melainkan kita membuat variabel baru dengan nama yang sama, akan tetapi dengan ruang lingkup lokal yang hanya bisa diakses pada fungsi hello() saja.

Docstring

Yang terakhir, kita bisa memberikan sebuah deskripsi terhadap fungsi yang kita buat.

Deskripsi ini biasanya akan ditampilkan oleh Text Editor mau pun IDE sebagai bantuan tentang apa yang sebenarnya dilakukan oleh sebuah fungsi.

Caranya gampang.

Untuk mendefinisikan deskripsi program, kita hanya perlu menuliskan komentar multi baris tepat setelah mendefinsikan nama fungsi.

Perhatikan contoh berikut:

def suhu_udara (daerah, derajat = 30, satuan = 'celcius'):
  """
  Fungsi ini bertugas untuk menampilkan teks yang memberikan informasi 
  tentang suhu udara di suatu daerah.
  """

  print("Suhu di {} adalah {} {}".format(daerah, derajat, satuan))

Berikut ini contoh tampilannya jika kita menggunakan Visual Studio Code.

Fungsi yang Memanggil Dirinya Sendiri

Dari segi tempat pemanggilan, fungsi pada python bisa dipanggil dari berbagai tempat.

Bisa dari console. Bisa dari fungsi yang lainnya. Bisa juga dari dirinya sendiri.

Fungsi yang memanggil dirinya sendiri, akan menciptakan sebuah perulangan. Dan perulangan ini biasa disebut sebagai perulangan rekursif.

 

 

Source: https://jagongoding.com/python/dasar/fungsi/

Comments

Popular posts from this blog

Konfigurasi HTTPS (Berkualitas Tinggi) - Debian 8

Komunikasi Data menurut wikipedia