Imam Fahrur Rozi
Algoritma dan Pemrograman
FUNGSI BAG. 2
KOMPETENSI Setelah menempuh materi ini, mahasiswa hendaknya mampu: • Menguasai tentang konsep argument passed by value dan argument passed by reference • Menguasai tentang fungsi overload • Fungsi rekursif
ARGUMENTS PASSED BY VALUE Output : x = 10 y = 5
ARGUMENTS PASSED BY VALUE ² Pada program di atas, keRka pemanggilan fungsi exchange, nilai variabel x dimasukkan ke parameter a. Sedangkan nilai variabel y dimasukkan ke parameter b. void exchange (int a, int b) exchange (x,y); ² Di dalam fungsi exchange, nilai variabel a dan b ditukar. ² Tapi penukaran tersebut 8dak berpengaruh pada nilai x dan y. Yang notabene, yang dimasukkan ke parameter a dan b adalah variabel x dan y ² Ini disebabkan karena yang dimasukkan ke parameter a dan b Rdak lain hanyalah NILAI dari variabel x dan y, bukan alamat variabel x dan y itu sendiri
ARGUMENTS PASSED BY VALUE ² Argumen fungsi seringkali disebut juga parameter fungsi ² Pada konsep “Arguments Passed by Value”, yang dilewatkan atau dimasukkan ke parameter fungsi adalah berupa nilai ² KeRka terjadi perubahan terhadap parameter fungsi yang bersangkutan, 8dak akan berpengaruh terhadap nilai variabel yang dimasukkan ke dalam parameter
ARGUMENTS PASSED BY REFERENCE Output : x = 5 y = 10
ARGUMENTS PASSED BY REFERENCE ² Perbedaan dengan program sebelumnya terletak pada tanda ampersand (&) yang terletak di depan parameter a dan b ² Pada program di atas, keRka pemanggilan fungsi exchange, alamat variabel x dimasukkan ke parameter a. Sedangkan alamat variabel y dimasukkan ke parameter b. void exchange (int& a, int& b) exchange (x,y); ² Di dalam fungsi exchange, nilai variabel a dan b ditukar.
ARGUMENTS PASSED BY REFERENCE ² Ternyata penukaran nilai parameter a dan b yang terjadi di fungsi exchange tersebut berpengaruh terhadap nilai variabel x dan y. ² KeRka ditampilkan nilai x dan y ikut tertukar seperR halnya parameter a dan b ² Ini menunjukkan bahwa yang dimasukkan ke dalam parameter a dan b keRka pemanggilan fungsi exchange adalah alamat x dan y. ² Jadi keRka terjadi perubahan di argumen a dan b, maka isi variabel x dan y juga berubah.
ARGUMENTS PASSED BY REFERENCE ² Pada konsep “Arguments Passed by Reference”, yang dilewatkan atau dimasukkan ke parameter fungsi adalah berupa alamat dari variabel ² KeRka terjadi perubahan terhadap parameter fungsi yang bersangkutan, akan berpengaruh terhadap nilai variabel yang dimasukkan ke dalam parameter
FUNGSI OVERLOAD ² Merupakan beberapa fungsi dengan nama yang sama, tetapi dengan jumlah parameter berbeda atau 8pe data parameter yang berbeda
FUNGSI OVERLOAD Output : 10 2.5
FUNGSI OVERLOAD ² Pada program di atas, keRka dipanggil fungsi operate pada baris 19, yang dipanggil adalah fungsi operasi operate yang dideklarasikan pada baris 5. Jadi hasilnya adalah 10. ² Hal ini karena pemanggilan fungsi operate pada baris 19 melewatkan nilai variabel x dan y yang Rpe datanya adalah int. Maka fungsi operate yang dipanggil pun adalah fungsi operate dengan 2 parameter berupa int.
FUNGSI REKURSIF ² ² ² ² ² ²
Fungsi yang memanggil fungsi itu sendiri Contoh pada proses perhitungan faktorial (n!) n! = n * (n-‐1) * (n-‐2) * (n-‐3) * … * 1 Misalnya n = 5 5! = 5 * 4 * 3 * 2 * 1 Sbenarnya mirip dengan perulangan, yaitu digunakan untuk menyelesaikan masalah yang melibatkan suatu pola atau statement yang dilakukan berulang-‐ulang dengan batas tertentu
FUNGSI REKURSIF
KEKURANGAN FUNGSI REKURSIF • Meskipun penulisan program dengan cara rekursif bisa lebih pendek, namun funcRon rekursif memerlukan : • Memori yang lebih banyak, karena perlu tambahan untuk mengakRdan Stack. • Waktu lebih lama, karena perlu menjejaki seRap pemanggilan rekursif melalui stack
KAPAN MENGGUNAKAN FUNGSI REKURSIF ? • Penyelesaian secara iteraRve (secara perulangan) sulit dilakukan • Jika masalah tersebut bisa diselesaikan dengan perulangan (iterasi), lebih diutamakan untuk menggunakan perulangan. Mengingat jika rekursif akan banyak memakan memori dan berdampak pada kecepatan
Algoritma dan Pemrograman
Selamat Belajar
JJJJJJJJJ
Serious, Focus, stay cool & calm