Minggu, 26 Agustus 2012

A LGORITMA DAN P EMROGRAMAN 7


R EKURSIF
 Dalam dunia pemrograman, rekursi
diimplementasikan dalam sebuah fungsi yang
memanggil dirinya sendiri.
 Contoh fungsi rekursif misalnya adalah fungsi pangkat,
faktorial, dan barisan fibonacci.
 Dalam fungsi pangkat x
y
, 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.
 x
y
= 1, jika y = 0
 x
y
= x * x
(y-1)
, jika y > 0
 Untuk x = 10 dan y = 0, hasil dari xy adalah 1.
Untuk x = 10 dan y = 3 hasilnya dapat
digambarkan sebagai berikut:

P ERBANDINGAN R EKURSIF
DAN I TERATIF

Rekursif Iteratif
Kode program biasanya lebih
ringkas dan mudah
dipahami
Kode program lebih panjang,
untuk beberapa
kasus solusi iteratif lebih sulit
diterapkan
Membutuhkan alokasi memori
yang besar
Relatif lebih kecil alokasi
memorinya
Tidak cocok ketika kinerja
tinggi diperlukan, karena
terjadi overhead pemanggilan
fungsi dalam jumlah
yang relatif besar
Cocok diterapkan ketika kinerja
aplikasi harus
diterapkan (hanya ada satu kali
pemanggilan
fungsi)
A RRAY
 Selama ini kita menggunakan satu variabel untuk
menyimpan 1 buah nilai dengan tipe data tertentu.
 int a1, a2, a3, a4, a5;
 Deklarasi variabel diatas digunakan untuk
menyimpan 5 data integer dimana masing-masing
variabel diberi nama a1, a2, a3, a4, dan a5.
 Di dalam C dan pemrograman yang lain, terdapat
suatu fasilitas untuk menyimpan data-data yang
bertipe data sama dengan suatu nama tertentu =
ARRAY/LARIK
 Array adalah suatu tipe data terstuktur yang
berupa sejumlah data sejenis (bertipe data sama)
yang jumlahnya tetap dan diberi suatu nama
tertentu.
 Array dapat berupa array 1 dimensi, 2 dimensi,
bahkan ndimensi.
 Elemen-elemen array bertipe data sama tapi bisa
bernilai sama atau berbeda-beda.
G AMBARAN A RRAY
0 4 9 1 3
0 1 2 3 4 index
value
Elemen-elemen array dapat diakses oleh program menggunakan
suatu indeks tertentu.
Pengaksesan elemen array dapat dilakukan berurutan atau
random berdasarkan indeks tertentu secara langsung.
Pengisian dan pengambilan nilai pada indeks tertentu dapat
dilakukan dengan mengeset nilai atau menampilkan nilai
pada indeks yang dimaksud.
D EKLARASI A RRAY
 tipe_data nama_array [ukuran];
 int bilangan[5];
 char nama[20];
 Tipe data sejenis
 Ada indeks yang teratur dan berurutan
 Bersifat statis, harus diketahui ukurannya terlebih
dahulu
 Contoh :
 Int bilangan[5];
 Char nama[10];
 Int umur[2] = {17, 35};
 Int bilangan[5]  berarti akan memesan tempat di
memori komputer sebanyak 5 tempat dengan indeks dari
0-4, dimana semua elemen bertipe integer semuanya.
 Char nama[10]  berarti akan memesan tempat di
memori komputer sebanyak 10 tempat dengan indeks
dari 0-9, dimana semua elemen bertipe karakter
semuanya.
 Int umur[2] = {17, 35}  berarti akan memesan tempat
di memori komputer sebanyak 2 tempat dengan indeks
dari 0-1, dimana semua elemen bertipe integer
semuanya. Kedua elemen tsb sekaligus diisi (inisialisasi)
yaitu pada umur[0] bernilai 17 dan umur[1] bernilai 35

T ERIMA K ASIH