Tehnik Pemrograman Terstruktur


MAKALAH
TEKNIK PEMROGRAMAN TERSTRUKTUR 2

Nama Kelompok : – Theofest M. Kaisuku (16110872)
– Arief Widya Brahma Putra (11110063)
– Roy Hanfry Woruntu (16110258)
– Budi Rakiso (11110472)
– Sadeli Kusmantoro (16110318)
– Gusti Prabangasta y (13110056)

UNIVERSITAS GUNADARMA
BAB 1
REKURSIF

PENDAHULUAN

Apa itu Rekursif :
“ Rekursi adalah kemampuan suatu secara rutin untuk memanggil dirinya sendiri (calling).

Mengapa kita perlu Rekursi :

Kelebihan perulangan rekursif Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besarDapat melakukan perulangan dengan batasan fungsi

Kelemahan Rekursi.

Kekurangan perulangan rekursifTidak bisa melakukan nested loop atau looping bersarangBiasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu sajaMemerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalaya akan menyebabkan stack tak cukup lagi (Stack Overum)Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk

Secara umum bentuk dari sub program rekursif memiliki statemen kondisional :

if kondisi khusus tak dipenuhi
then panggil diri-sendiri dengan parameter yang sesuai
else lakukan instruksi yang akan dieksekusi bila kondisi khusus dipenuhi

Sub program rekursif umumnya dipakai untuk permasalahan yang memiliki langkah penyelesaian yang terpola atau langkah-langkah yang teratur. Bila kita memiliki suatu permasalahan dan kita mengetahui algoritma penyelesaiannya, kadang-kadang sub program rekursif menjadi pilihan kita bila memang memungkinkan untuk dipergunakan. Secara algoritmis (dari segi algoritma, yaitu bila kita mempertimbangkan penggunaan memori, waktu eksekusi sub program) sub program rekursif sering bersifat tidak efisien .
Dengan demikian sub program rekursif umumnya memiliki efisiensi dalam penulisan perintah, tetapi kadang tidak efisien secara algoritmis. Meskipun demikian banyak pula permasalahan-permasalahan yang lebih sesuai diselesaikan dengan cara rekursif (misalnya dalam pencarian / searching, yang akan dibahas pada pertemuan-pertemuan yang akan datang).

Contoh fungsi rekursif misalnya adalah fungsi pangkat,
faktorial, dan barisan fibonacci.
Dalam fungsi pangkat xy , kita tahu bahwa semua
bilangan selain 0, jika dipangkatkan dengan 0 nilainya
sama dengan 1.
Jika x dipangkatkan dengan y, dengan y lebih dari 0,
maka hasilnya sama dengan x dikalikan dengan x
dipangkatkan y – 1.
xy = 1, jika y = 0
xy = x * x(y-1)
, jika y > 0
Untuk x = 10 dan y = 0, hasil dari xy adalah 1.
Untuk x = 10 dan y = 3

Dalam ilmu matematika, Bilangan Fibonacci adalah barisan yang didefinisikan secara rekursif sebagai berikut: Penjelasan: barisan ini berawal dari 0 dan 1, kemudian angka berikutnya didapat dengan cara menambahkan kedua bilangan yang berurutan sebelumnya. Dengan aturan ini, maka barisan bilangan Fibonaccci yang pertama adalah:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946…
Barisan bilangan Fibonacci dapat dinyatakan sebagai berikut: Fn = (x1^n – x2^n)/ sqrt(5) dengan

• Fn adalah bilangan Fibonacci ke-n
• x1 dan x2 adalah penyelesaian persamaan x^2-x-1=0
Perbandingan antara Fn+1 dengan Fn hampir selalu sama untuk sebarang nilai n dan mulai nilai n tertentu, perbandingan ini nilainya tetap. Perbandingan itu disebut Golden Ratio yang nilainya mendekati 1,618.

contoh program
fungsi fibonachi

#include

int fibonacci (int n)
{ if ((n == 1) || (n == 2)) return(1);
else return(fibonacci(n-1) + fibonacci(n-2));
}

main() {
int i, n;
cout <> n;
for (i = 1; i <= n; i++) cout << fibonacci(i) << " ";
return 0;
}

Dimana n,i=integer
n-1 = Pemanggil rekursi
i <= n= sebagai Penyetop

 Dari gambar diatas dilihat jelas bahwa jumlah pemanggilan fungsi fibonacci akan bertambah secara eksponensial, sebagai contoh untuk n=2 hanya akan menjadi dua kali pemanggilan fungsi fibonacci, untuk n =3 terjadi 4 kali pemanggilan fungsifibonacci dan untuk n=4 terjadi 8 kali pemanggilan fungsi fibonacci. Hal ini yang menyebabkan mengapa rekursi dalam banyak kasus tidak efisien dibandingkan dengan pengulangan.

BAB 2
ILUSTRASI DAN SOLUSI

Program di atas akan mengesekusi terlebih dahulu,jika kondisi pertama terpenuhi maka akan memanggil program yang terpenuhi sampai batas yang di tentukan …
Jika di jalankan maka :

BAB 3
KESIMPULAN
Program REKURSIF hanya mempunyai identitas IF, Untuk memahami rekursi, seseorang harus mengetahui perbedaan antara sebuah prosedur dan jalannya sebuah prosedur. Sebuah prosedur yaitu kumpulan langkah-langkah yang akan dilakukan berdasarkan sekumpulan aturan. Jalannya sebuah prosedur mengikuti aturan-aturan dan melakukan langkah-langkah.

http://teguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab-VI-rekursi.pdf.
http://yessyasri.blog.esaunggul.ac.id/2012/03/19/manfaat-fungsi-rekursif-pada-c/)

Be the first to start a conversation

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: