Fungsi, Prosedur, dan Pengenalan Iterative Programming

advertisement
Fungsi, Prosedur, dan Pengenalan Iterative
Programming
Pada handout ini akan dijelaskan tentang fungsi, prosedur, dan pengenalan iterative
programming. Fungsi dan prosedur merupakan fasilitas yang dapat digunakan untuk
mempermudah pembuatan suatu program.
1
Fungsi dan Prosedur
Fungsi dan prosedur merupakan fasilitas yang disediakan oleh bahasa pemrograman dan dapat digunakan untuk mempermudah pembuatan suatu program. Fungsi
utama dari penggunaan “fungsi” atau “prosedur” adalah bagaimana beberapa perintah pada program yang dilakukan berulang-ulang dapat dipisahkan menjadi suatu
primitif tertentu sehingga jika ingin menggunakan beberapa perintah tersebut si
pembuat program hanya tinggal memanggil fungsi yang telah dibuat sebelumnya.
Berikut merupakan ilustrasi dari fungsi pada suatu program.
Gambar 1: Ilustrasi dari fungsi pada suatu program
1
Dalam bahasa yang lain, fungsi dapat dikatakan sebagai dekomposisi dari suatu program dimana setiap dekomposisi menghasilkan suatu blok program yang mempunyai
tugas dan fungsi tertentu serta spesifik. Selain itu, fungsi merupakan abstraksi dari
suatu blok program, artinya orang yang memakai fungsi tersebut tidak perlu mengetahui bagaimana fungsi tersebut bekerja tetapi si pemakai hanya perlu tahu apa
masukan dari fungsi tersebut dan apa keluaran dari fungsi tersebut.
Dalam dunia programming, jika Anda menggunakan fungsi sebagai tool untuk mempermudah pembuatan program maka Anda telah memakai paham yang bernama
functional programming. Artinya, program yang Anda buat terbentuk dari kode
program utama dan beberapa fungsi pendukung yang diperlukan. Lalu apa bedanya antara fungsi dan prosedur dalam functional programming?
1.1
Perbedaan Fungsi dan Prosedur
Dalam kamus bahasa indonesia, kata prosedur mempunyai makna ”metode langkah
demi langkah secara pasti dalam memecahkan suatu masalah”. Dengan mengadopsi arti tersebut, maka bisa dipastikan prosedur dalam suatu bahasa pemrograman
merupakan deretan perintah yang digunakan untuk memecahkan suatu permasalahan dengan masukan tertentu. Yang membedakan antara suatu prosedur dengan
suatu fungsi dalam sebuah program adalah masukan dan keluarannya. Pada prosedur, tidak ada keluaran sedangkan pada fungsi ada keluaran yang nantinya dapat
selanjutnya diolah lagi.
1.1.1
Prosedur dan Fungsi dalam Python
Prosedur dan fungsi mempunyai deklarasi sintak yang sama pada bahasa pemrograman python yaitu dengan menggunakan keyword def. Yang perlu diingat adalah
nama variabel yang digunakan untuk masukan dari fungsi jangan digunakan untuk
proses yang dilakukan dalam fungsi karena jika nilai variabel tersebut akan diisi dengan nilai terakhir dari proses yang dilakukan. Lebih baik mendeklarasikan variabel
baru yang khusus digunakan untuk proses dalam fungsi tersebut. Berikut merupakan beberapa contoh deklarasi fungsi dan prosedur dalam python.
# contoh dari fungsi
def tambah_fungsi(a, b):
c = a + b
return c
# contoh dari prosedur
def tambah_prosedur(a, b):
c = a + b
print "Hasil Penjumlahan = ",c
2
# contoh fungsi dengan keluaran lebih dari dua parameter
def kecap(a, b, c):
bb = (b**2) - (4*a*c)
b1 = (-b - math.sqrt(bb)) / (2*a)
b2 = (-b + math.sqrt(bb)) / (2*a)
return [b1, b2]
# contoh cara memanggil fungsi dengan keluaran lebih dari satu
kecap1, kecap2 = kecap(2, 10, 2)
2
Iterative Programming
Iterative programming merupakan salah satu metode pemecahan suatu permasalahan dengan menebak solusi dari permasalahan yang sedang diselesaikan. Iterative
programming identik dengan algoritma brute-force, yaitu algoritma akan melakukan
pengecekan untuk setiap nilai yang mungkin untuk suatu permasalahan. Pada awal
kuliah, Anda telah disajikan suatu metode iterative programming yaitu mencari akar
kuadrat dari suatu bilangan, untuk lebih jelas algoritmanya akan disajikan kembali
sebagai berikut
00
01
02
03
start; menebak G
jika Gˆ2 = X stop return G
else G = (G + (X/G))/2
ulangi 00
Pada contoh tersebut, program pada saat berjalan pertama kali akan menebak solusi
dari persmasalahan kemudian melakukan verifikasi apakah tebakan tersebut merupakan solusi dari masalah tersebut. Jika hasil tebakan tersebut merupakan solusi
dari permasalahan maka program berhenti dan telah menemukan solusi tetapi jika
bukan merupakan solusi maka program akan mengupdate hasil tebakan tersebut
dengan rumus tertentu dan melakukan verifikasi kembali. Langkah-langkah tersebut terus dilakukan sampai program menemukan solusi dari permasalahan.
Kita akan memodifikasi algoritma dari square root menjadi lebih simpel dan mudah
dimengerti. Berikut merupakan algoritma yang dituliskan langsung dalam bahasa
python.
#Find the square root of a perfect square
x = 16
ans = 0
while ans*ans <= x:
ans = ans + 1
print ans
3
Contoh diatas menghasilkan keluaran berupa angka 4, namun bagaimana jika variabel x kita ganti dengan bilangan bulat yang lebih kecil dari nol? Apa keluaran dari
program? Tentu saja program akan memberikan keluaran angka 0 yang merupakan
jawaban yang tidak diinginkan. Oleh karena itu, ada suatu konsep pemrograman
yang bernama defensive programming.
3
Defensive Programming
Defensive programming adalah suatu konsep programming yang memperhatikan
aspek user dan metode yang digunakan. Sebagai contoh, pada kode program sebelumnya kita telah melihat program yang menghitung akar dari suatu angka. Pada
kode tersebut, jika variabel x diganti menjadi bilangan negatif maka program akan
memberikan jawaban yang tidak diinginkan. Untuk itu, kita perlu memeriksa nilai x
terlebih dahulu apakah sudah sesuai dengan yang kita inginkan. Berikut merupakan
perubahan kode program yang dilakukan.
x = input("Masukan suatu bilangan = ")
ans = 0
if x >= 0:
while ans*ans < x:
ans = ans + 1
print ’ans =’, ans
if ans*ans != x:
print x, ’is not a perfect square’
else: print ans
else: print x, ’is a negative number’
Pada kode program, dipastikan bahwa masukan dari user adalah bilangan bulat
positif dan merupakan bilangan yang bila diakarkan menghasilkan nilai yang merupakan bilangan bulat pula. Konsep defensive programming sangat penting dalam
proses pembuatan program untuk menghindari banyak bug pada program ketika
akan dipasarkan dan juga mempermudah programmer karena tidak perlu memperbaiki kode program karena memiliki bug.
4
Download