1 / 12

Fungsi , Parameter, Rekursi

Fungsi , Parameter, Rekursi. Daniel Riano Kaparang. Book reference: Jogiyanto . Konsep Dasar Pemrograman Bahasa C . Andi Star. Yogyakarta. 2006 Kristanto Andri . Algoritma dan Pemrograman dengan C . Graha Ilmu . Yogyakarta. 2009.

Download Presentation

Fungsi , Parameter, Rekursi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fungsi, Parameter, Rekursi Daniel RianoKaparang • Book reference: • Jogiyanto. KonsepDasarPemrogramanBahasa C. Andi Star. Yogyakarta. 2006 • KristantoAndri. AlgoritmadanPemrogramandengan C. GrahaIlmu. Yogyakarta. 2009.

  2. Fungsiadalahsuatubagiandari program yang dimaksudkanuntukmengerjakansuatutugastertentudanletaknyadipisahkandaribagian program yang menggunakannya (Jogiyanto, 2006). • Bahasa C dibentukdarikumpulanfungsi. • Fungsibanyakdigunakanuntukduaalasanutama: • Fungsimenjadikan program C mempunyaistruktur yang jelas. • Fungsidapatdigunakanuntukmenghindaripenulisan yang samasecaraberulang Function

  3. Secaraumumfungsiterdiridaridefinisifungsidantubuhfungsi. • Definisifungsiberisitipedarifungsi, namafungsidan parameter jikadiperlukan. • Tubuhfungsiberisi statement-statement yang akanmelakukantugas yang diberikankepadafungsiitusendiri. Tipe_datanama_fungsi (param1, param2,…,param-N){ Statement1; Statement2; . . Statement-M; } MendefinisikanFungsi

  4. Parameter dalam C terdiridari parameter formal dan parameter aktual (Kristanto, 2009). • Parameter formal adalahvariabel yang adapadadaftar parameter dalamdefinisifungsi. • Parameter aktualadalah parameter yang dapatberupavariabelataukonstantamaupunungkapan yang dipakaidalampemanggilanfungsi. • Ada 2 caramelewatkannilaidari parameter dalamfungsi: • Passing by value. • Passing by reference. Parameter

  5. #include <stdio.h> intFindMax(int n1, int n2); Void PrintMax(int m); int main(){ inti=5, j=7, k; k=FindMax(i,j); PrintMax(k); return 0; } intFindMax(int n1, int n2){ if(n1>n2){ return n1; } else{ return n2; } } void PrintMax(int m){ printf(“Max number is : %d\n”, m); } Contoh1 Fungsi

  6. Yang dikirimkankefungsiadalahnilaidaridatanya, bukanalamatmemoriletakdaridatanya. • Fungsi yang menerimakirimannilaiakanmenyampaikannyadialamat yang terpisahdarinilaiaslinya yang digunakanolehbagian program yang memanggilfungsi. • Karenaalasan ke-2 diatas, makaperubahannilaidifungsitidakakanmerubahnilaiaslidibagian program yang memanggilfungsiwalaupunkeduanyamenggunakannamavariabel yang sama. • Passing by value merupakanpengirimansearahyaitudaribagian program yang memanggilfungsikefungsi yang dipanggil. • Pengirimansuatunilaidapatdilakukanuntuksuatuungkapantidakhanyauntuksebuahvariabelatau element array ataukonstantasaja. Passing by value

  7. #include <stdio.h> void PassByValue (float A,float B, char C); main() { char C='a'; float A=25, *Alamat_A; Alamat_A = &A; printf("PASS BY VALUE (PROGRAM UTAMA) : \n"); printf("Nilai A adalah %f dialamat %p \n", A, Alamat_A); printf("Nilai A/3 adalah %f \n", A/3); printf("Nilaikarakter C adalah %c \n \n", C); PassByValue(A, A/3, C); } void PassByValue(float A, float B, char C) { float *Alamat_A; Alamat_A = &A; A = 7; printf("PASS BY VALUE (DI FUNGSI) : \n"); printf("Nilai A adalah %f dialamat %p \n", A, Alamat_A); printf("Nilai A/3 adalah %f \n", A/3); printf("Nilaikarakter C adalah %c \n \n", C); } Contoh 2 Passing by value

  8. Yang dikirimkankefungsiadalahalamatletakdarinilaidatanya, bukannilaidaridatanya. • Fungsi yang menerimakirimanalamatiniakanmenggunakanalamat yang samauntukmendapatkannilaidatanya. • Karenaalasan ke-2 diatas, makaperubahannilaidarifungsiakanmerubahnilaiaslidibagian program yang memanggilfungsi. • Passing by reference merupakanperngirimanduaarah, yaitudaribagian program yang memanggilfungsikefungsi yang dipanggildansebaliknya. • Passing by value tidakdapatdilakukanuntuksuatuungkapan, hanyauntuksebuahvariabelatauelemenlarikkonstantasaja. Passing by reference

  9. #include <stdio.h> void PassByRefference (float *A,float B, char *C); void main() { char C='a'; float A=25, *Alamat_A; Alamat_A = &A; printf("PASS BY REFFERENCE (PROGRAM UTAMA) : \n"); printf("Nilai A adalah %f dialamat %p \n", A, Alamat_A); printf("Nilai A/3 adalah %f \n", A/3); printf("Nilaikarakter C adalah %c \n \n", C); PassByRefference(&A, A/3, &C); } void PassByRefference(float *A, float B, char *C) { float *Alamat_A; Alamat_A = A; *A=7; printf("PASS BY REFFERENCE (DI FUNGSI) : \n"); printf("Nilai A adalah %f dialamat %p \n", *A, Alamat_A); printf("Nilai B adalah %f \n", B/3); printf("Nilaikarakter C adalah %c \n \n", *C); } Contoh 3 Passing by reference

  10. Rekursimerupakanfungsi yang memanggildirinyasendiri. Dalamkondisiiniakanterjadiperulanganpemanggilanfungsidanakanberhentiketikakondisiterpenuhi. • Iterasi, prosesperulangandengan statement yang samaakanberhentijikakondisiterpenuhi. • Penggunaanrekursidaniterasibergantungpadakebutuhan program, karenarekursiakanmengambilmemoricukupbanyak. Rekursi & Iterasi

  11. intfaktorial(int n){ if(n==1) return 1; else return (n*faktorial(n-1)); } Contohrekursi

  12. Void main(){ for (inti=1; i<5; i++){ i=i*i+1; } } Contohiterasi

More Related