Rabu, 19 Juli 2017

POINTER DI BAHASA C

A. Pengertian Pointer
Pointer ( variabel petunjuk)  adalah suatu variabel yang berisi alamat memori dari suatu variabel lain. Pointer merupakan variabel level rendah yang dapat digunakan untuk menunjuk nilai integer, character, float, double, atau single, dan bahkan tipe-tipe data lain yang didukung oleh bahasa C.

Variabel biasa, sifatnya statis dan sudah pasti, sedangkan pada pointer sifatnya
dinamis dan dapat lebih fleksibel. Variabel pointer yang tidak menunjuk pada nilai apapun berarti memiliki nilai NULL, dan disebut sebagai dangling pointer karena nilainya tidak diinisialisasi dan tidak dapat diprediksi.

B. Deklarasi Pointer
Deklarasi variabel pointer seperti halnya deklarasi variabel lainnya hanya ditambahkan tanda * pada depan nama variabel.

int *b
Untuk mendapatkan alamat memori pointer (address of) maka perintah yang digunakan adalah menambahkan tanda & didepan variabel
&b

Untuk mendapatan Isi atau nilai dari variabel pointer maka perintah yang digunakan cukup nama variabelnya saja.
b

Untuk mendapatkan isi atau nilai dari alamat yang terdapat pada isi pointer (value pointed by) maka perintah yang digunakan adalah menambahkan tanda * didepan variabel
*b

C. Pass by value dan pass by reference
Pass by value, jika di dalam fungsi atau prosedur dilakukan perubahan nilai parameter yang dilewatkan secara nilai, maka nilai parameter yang sebenarnya tidak ikut berubah hal ini dikarenakan parameter yang dilewatkan secara nilai akan di copy sebagai nilai lokal di prosedur atau fungsi yang bersangkutan.

CONTOH :



dari program di atas dapat kita rinci menjadi


Sehingga apabila di outputkan menjadi


Pass by reference, jika di dalam prosedur atau fungsi dilakukan perubahan nilai parameter yang dilewatkan secara reference, maka nilai parameter yang sebenarnya juga akan berubah.

CONTOH :




dari program di atas dapat kita jelaskan menjadi :



Sehingga apabila di outputkan menjadi :



          Terlihat perbedaan antara Pass by Reference & pass by Value, Fungsi pass by value mendeklarasikan parameter inputan yang berupa variabel, sedangkan fungsi pass by reference mendeklarasikan parameter inputan yang berupa pointer. Dalam pemanggilan fungsi, fungsi dengan pass by value cukup menginputkan nama variabel (h dan u) pada parameter inputnya. Namun untuk memanggil fungsi pass by reference kita harus menyertakan tanda & di depan nama variabel, karena parameternya berupa variabel pointer.


Tidak ada komentar:

Posting Komentar