FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI...

17
Imam Fahrur Rozi Algoritma dan Pemrograman FUNGSI BAG. 2

Transcript of FUNGSI BAG. 2 - ifrozi.files.wordpress.com · Algoritma$dan$Pemrograman FUNGSI BAG. 2 . KOMPETENSI...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Selamat  Belajar    

 

Algoritma  dan  Pemrograman    

Serious,  Focus,  stay  cool  &  calm  JJJJJJJJJ