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

Post on 28-Jun-2019

235 views 0 download

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

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  

Selamat  Belajar    

 

Algoritma  dan  Pemrograman    

Serious,  Focus,  stay  cool  &  calm  JJJJJJJJJ