fungsi bag. 2 - ifrozi.files.wordpress.com · algoritma$dan$pemrograman fungsi bag. 2 . kompetensi...
TRANSCRIPT
![Page 1: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/1.jpg)
Imam Fahrur Rozi
Algoritma dan Pemrograman
FUNGSI BAG. 2
![Page 2: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/2.jpg)
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
![Page 3: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/3.jpg)
ARGUMENTS PASSED BY VALUE
Output : x = 10 y = 5
![Page 4: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/4.jpg)
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
![Page 5: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/5.jpg)
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
![Page 6: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/6.jpg)
ARGUMENTS PASSED BY REFERENCE
Output : x = 5 y = 10
![Page 7: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/7.jpg)
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.
![Page 8: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/8.jpg)
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.
![Page 9: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/9.jpg)
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
![Page 10: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/10.jpg)
FUNGSI OVERLOAD ² Merupakan beberapa fungsi dengan nama yang sama,
tetapi dengan jumlah parameter berbeda atau 8pe data parameter yang berbeda
![Page 11: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/11.jpg)
FUNGSI OVERLOAD
Output : 10 2.5
![Page 12: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/12.jpg)
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.
![Page 13: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/13.jpg)
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
![Page 14: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/14.jpg)
FUNGSI REKURSIF
![Page 15: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/15.jpg)
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
![Page 16: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/16.jpg)
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
![Page 17: FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI ... • Meskipun$penulisan$program$dengan$cara$rekursif$bisa$ lebih$pendek, namunfuncon](https://reader030.vdocuments.pub/reader030/viewer/2022040117/5d16368d88c993a82b8c350f/html5/thumbnails/17.jpg)
Selamat Belajar
Algoritma dan Pemrograman
Serious, Focus, stay cool & calm JJJJJJJJJ