DISUSUN OLEH :
2019
KATA PENGANTAR
Puji syukur alhamdulillah kami panjatkan ke hadirat Tuhan Yang Maha Esa, karena telah
melimpahkan rahmat-Nya berupa kesempatan dan pengetahuan sehingga makalah ini bisa
selesai pada waktunya.
Terima kasih juga kami ucapkan kepada teman-teman yang telah berkontribusi dengan
memberikan ide-idenya sehingga makalah ini bisa disusun dengan baik dan rapi.
Kami berharap semoga makalah ini bisa menambah pengetahuan para pembaca. Namun
terlepas dari itu, kami memahami bahwa makalah ini masih jauh dari kata sempurna, sehingga
kami sangat mengharapkan kritik serta saran yang bersifat membangun demi terciptanya
makalah selanjutnya yang lebih baik lagi.
Penulis
ii
DAFTAR ISI
JUDUL ................................................................................................................................... i
A. Prosedur
a. Pengertian Prosedur ................................................................................................. 1
b. Pengertian Fungsi .................................................................................................... 1
c. Perbedaan Fungsi dan Prosedur .............................................................................. 1
d. Mengapa menggunakan fungsi dan prosedur .......................................................... 2
e. Ciri-Ciri Prosedur yang Baik ................................................................................... 3
f. Bentuk Umum Prosedur .......................................................................................... 3
B. Prosedur
a. Pengertian Rekursif ................................................................................................. 4
b. Pengertian Fungsi Rekursif ..................................................................................... 4
c. Bentuk Umum Fungsi Rekursif ............................................................................... 4
d. Kelebihan................................................................................................................. 5
e. Kekurangan ............................................................................................................. 5
iii
A. Prosedur
a. Pengertian Prosedur
Prosedur merupakan suatu program terpisah dalam blok sendiri yang
berfungsi sebagai subprogram (program bagian). Prosedur biasanya bersifat suatu
aktifitas seperti mencari bilangan prima dari sekumpulan bilangan atau mencari
bilangan genap dari sekumpulan bilangan ,dan sebagainya. Prosedur biasanya
digunakan pada program yang terstruktur karena:
Merupakan penerapan konsep program modular, yaitu memecah-mecah
program yang rumit menjadi program-program bagian yang lebih sederhana
dalam bentuk prosedur-prosedur.
Untuk hal-hal yang sering dilakukan / dipakai berulang-ulang, cukup
dituliskan sekali saja dalam bentuk prosedur dan dapat dipergunakan atau
dipanggil berulangkali jika diperlukan.
Membuat kode program lebih mudah dibaca / dimengerti terutama oleh
programmer lain.
Dapat digunakan untuk menyembunyikan detail program
b. Pengertian Fungsi
Fungsi merupakan suatu program terpisah dalam blok sendiri yang berfungsi
sebagai subprogram (program bagian). Sama seperti halnya dengan prosedur, namun
tetap ada perbedaannya yaitu fungsi mempunyai pengembalian nilai /
mengembalikan sebuah nilai (memiliki return value) dari tipe tertentu (tipe dasar atau
tipe bentukan).
1
langsung dipindahkan ke pengenal variable yang lainnya (misal luas1 =
ContohFungsi(panjang)).
Pada prosedur, nama prosedur tidak bisa digunakan lagsung tidak seperti pada
Nama Fungsi, yang bisa langsung digunakan dari sebuah prosedur adalah
parameternya yang mengandung nilai balik.
Pada dasarnya tidak ada perbedaan yang signifikan antara fungsi dan prosedur
pada Bahasa C / C++, hanya dibedakan dari return value. Jika suatu sub program
tersebut memiliki nilai balik (return value) maka sub program tersebut disebut
Fungsi (Function) namun jika tidak mempunyai nilai balik maka sub program
tersebut adalah prosedur (Procedure).
2
e. Ciri-Ciri Prosedur yang Baik
Ciri-ciri Prosedur yang baik adalah sebagai berikut:
Hanya memiliki satu fungsi tujuan (logical inherent). Sebuah prosedur sebaiknya
hanya mempunyai satu fungsi tujuan / hanya memecahkan sebuah masalah
dalam program dan tidak bercampur dengan tujuan lain. Hal tersebut agar
prosedur lebih focus sehingga tujuan dari sebuah prosedur lebih mundah
dipahami.
Tidak tergantung pada prosedur lain (independent). Sebuah prosedur sebaiknya
bersifat mandiri, artinya sebuah prosedur dapat dijalankan dan diuji tanpa
menunggu bagian lainnya (prosedur / fungsi lain) selesai. Selain itu variable
yang digunakan dalam prosedur tidak mempengaruhi variabel yang digunakan
pada bagian lain di keseluruhan program (misalnya dengan menggunakan
variabel lokal).
Berukuran kecil (small size). Yang dimaksud ukuran disini adalah panjang kode
program atau panjang algoritma pada sebuah prosedur. Ukuran kecil pada sebuah
prosedur agar prosedur lebih mudah dibaca, dipahami maupun diperbaiki jika
terdapat kesalahan pada sebuah prosedur.
3
B. Fungsi Rekursif
a. Pengertian Rekursif
Rekursif adalah kemampuan suatu rutin untuk memanggil dirinya sendiri.
Dalam Rekursif sebenarnya terkandung pengertian prosedur dan fungsi.
Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi
prosedur dan fungsi harus dipanggil lewat pemanggil prosedur dan fungsi. Rekursif
merupakan teknik pemrograman yang penting dan beberapa bahasa pemrograman
mendukung keberadaan proses rekursif ini. Dalam prosedur dan fungsi, pemanggilan
ke dirinya sendiri bisa berarti proses berulang yang tidak bisa diketahui kapan akan
berakhir.
return_data_type function_name(parameter_list)
{...
function_name(...);
... }
4
d. Kelebihan
Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam
artian melakukan perulangan dalam skala yang besar.
Dapat melakukan perulangan dengan batasan fungsi.
e. Kekurangan
Tidak bisa melakukan nested loop atau looping bersarang.
Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan
tertentu saja
Trace error sulit.
Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel
lokal dan parameter formal akan ditempatkan ke stack dan ada kalanya akan
menyebabkan stack tak cukup lagi (Stack Overrun).
Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang
dan pemanggilan data yang ditumpuk.
Memungkinkan terjadinya overflow pada stack (stack tak lagi mampu menangani
permintaan pemanggilan subrutin karena kehabisan memori)