• Tidak ada hasil yang ditemukan

Pemahaman Pass By Value dan Pass By Reference

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pemahaman Pass By Value dan Pass By Reference"

Copied!
18
0
0

Teks penuh

(1)

Algoritma dan Struktur Data

(2)

Review

• Nilai sebuah variabel bisa diakses melalui dua cara

Cara 1 : Langsung

(3)

Review

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

using namespace std; #include <iostream> int main(){

// Bagian deklarasi variable int x;

int *px;

// Bagian badan program px=&x;

x=10;

cout << "Nilai variable x diakses secara langsung:"<< x; cout << "\nVariable x berada dialamat:"<< px;

cout << "\nNilai variable x diakses melalui pointer:"<< *px; return 0;

(4)

Program tanpa fungsi

1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h> #include <conio.h> Int main(){

float panjang, lebar, luas;

panjang = 10; lebar = 20

luas = panjang * lebar;

cout << "Luas persegi = “ << luas ; getch();

(5)

Perhitungan luas diletakkan di bagian terpisah

1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h> #include <conio.h> void main(){

float panjang, lebar, luas;

panjang = 10; lebar = 20

luas = hitungluas(panjang, lebar);

cout << "Luas persegi = “ << luas ; getch();

(6)

Fungsi untuk menghitung luas

1

2

3

4

5

6

float hitungluas(float p, l){

float l;

(7)

Program menggunakan fungsi

1 2 3 4 5 6 7 8 9 10 11 12 13 void main(){

float panjang, lebar, luas; …..

luas = hitungluas(panjang, lebar); ….

}

float hitungluas(float p, float l){ float lu;

(8)

Latihan

• Variabel atau data untuk main dan hitungluas terletak

di bagian memori berbeda

• Keduanya tidak berhubungan

(9)

Pass by Value

(10)

Pass by Value

1

2

3

4

5

6

7

float hitungluas(float p, l){

float lu;

(11)

Pass by Value

• Pada saat main memanggil fungsi hitungluas, isi variabel panjang dan lebar dicopy kemudian dikirim ke hitungluas

• Di fungsi hitungluas, nilai tersebut dimasukkan ke variabel p dan l

(12)

Pass by Reference

• Bagaimana cara mengubah nilai variabel panjang

pada main dari fungsi hitungluas?

• Pada saat memanggil hitungluas, jangan mengirim

nilai panjang

• Kirim alamat variabel panjang ke hitung luas

• Hitungluas dapat mengakses & mengubah isi

(13)

Program menggunakan fungsi

1 2 3 4 5 6 7 8 9 10 11 12 13 void main(){

float panjang, lebar, luas; …..

luas = hitungluas(&panjang, lebar); ….

}

float hitungluas(float *p, float l){ float lu;

(14)

Pass by Reference

• Variabel v ada di fungsi F

• F memanggil fungsi G

• G perlu mengubah

nilai v di F

• Jangan mengirim nilai v ke G

• Kirim alamat v

(15)

Latihan

(16)

Solusi

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include <stdio.h> #include <conio.h>

void tukar(float *x, float *y); int main(){

float bil1, bil2; bil1 = 10; bil2 = 15;

cout << “Bilangan 1 =“ << bil1 << “, bilangan 2 =“ << bil2 ; tukar(&bil1, &bil2);

cout << “\nBilangan 1 =“ << bil1 << “, bilangan 2 =“ << bil2 ; getch();

return (0); }

void tukar(float *x, float *y){ float temp;

(17)

Using a Pass by Value

Is like giving someone the key to your

home

The key can be used by the other

(18)

Additional Terms

Pass-by-reference

is also called . . .

– pass-by-address, or

– pass-by-location

Referensi

Dokumen terkait

Disusun dalam rangka untuk memperoleh gelar Magister Manajemen Pendidikan Islam (M.Pd). Program Pascasarjana

Dim : Statemen dari Visual Basic untuk mendeklarasikan variabel Namavariabel : nama yang digunakan untuk menyimpan nilai Tipevariabel : tipe variabel yang bergantung pada tipe

Tujuan penelitian ini yaitu Untuk mengetahui air leri dan bakteri lactobacillus dapat dijadikan sebagai pupuk organic cair, Untuk mengetahui air leri dan bakteri

Karang ini banyak dijumpai hidup pada kedalaman 3-15 meter. Koralit berbentuk tipis. Lempengan karangnya saling berhubungan satu dengan yang lain. Koralit paralel

Subjek penelitian terdiri dari 16 ekor tikus wistar yang dibagi menjadi empat kelompok: kelompok I tanpa perlakuan (kelompok kontrol negatif); kelompok II dengan diet lemak

Berdasarkan model di atas, maka dapat dikatakan bahwa penggunaan web terhadap kepuasan aktivitas belajar bagi pengguna wanita variabel Performance Expectancy (PE) yang

bagi Pensiunan Janda/Duda dari Pegawai Negeri Sipil yang tewas yang dipensiun tanggal 1 Januari 2010 dan sebelum tanggal 1 Januari 2010, pensiun pokoknya disesuaikan menjadi

PERKEMBANGAN PONDOK PESANTREN AL-ISLAMIYYAH DESA MANDALAMUKTI KECAMATAN CIKALONGWETAN KABUPATEN BANDUNG BARAT (1969-1989). Universitas Pendidikan Indonesia | repository.upi.edu |