POINTER C++
A. Pengertian Pointer
Pointer adalah
penunjuk suatu variabel. Karena menunjuk suatu variabel, maka pointer wajib
memiliki alamat dari variabel yang ditunjuknya. Kadangkala dalam program yang
besar, penghematan memori wajib untuk dilakukan. Dengan mekanisme copy dan paste nilai
variabel satu kedalam variabel lain, akan sangat memboroskan memori. Dengan
mekanisme pointer, suatu variabel dalam suatu fungsi dapat diakses oleh fungsi
yang lain.
B. Membuat Pointer
pada umumnya pointer
sebenarnya adalah variabel, peraturan yang dimiliki variabel juga berlaku pada
pointer, jadi tidak jauh beda dengan variabel. pointer hanya mendapatkan
beberapa perbedaan yaitu penambahan dua operator yang akan membuat variabel
menjadi variabel pointer.
Untuk membuat sebuah variabel pointer kita hanya menambahkan dereference
operator sebelum identitas. Operator dereference tidak harus melekat pada
identitas, operator tersebut juga bisa di letakan setelah tipe data atau di
antara tipe data dan identitas. dari berbagai cara penulisan tersebut memiliki
makna yang sama yaitu satu operator dereference hanya akan berlaku pada saru
variabel.
Pointer tidak hanya berlaku pada variabel, kita juga dapat melakukanya pada
function, objek dan lain-lain. Dan cara implementasi pointer selain pada
variabel, caranya masih sama seperti kita melakukanya pada variable.
Bentuk Penulisan
tipeData *identitas;
//atau
tipeData *identitas
= &var;
Contoh Penulisan
int *pInt;
double *pDouble =
&myVar;
|
Bahasa
C menyediakan dua buah operator untuk operasi pointer yaitu operator ‘*’ dan
operator ‘&’. Operator alamat ‘&’ digunakan untuk
mendapatkan alamat memori dari operandnya.
Operator ‘*’ digunakan untuk mendapatkan
nilai dari operandnya.
Contoh
:
#include
<stdio.h> main() { char*Alamat_X,X,Y,Z;
X=’J’;
Alamat_X =
&X; Y = X;
Z =
*Alamat_X;
printf(“Nilai
variabel X adalah %c\n”, X); printf(“Nilai
variabel Y adalah %c\n”, Y); printf(“Nilai
variabel Z adalah %c\n”, Z);
printf(“Nilai
variabel X adalah berada di alamat %p\n”, Alamat_X);
}
|
Jika program ini dijalankan, akan
didapatkan hasil :
Nilai variabel X adalah J Nilai variabel Y
adalah J
Nilai variabel Z adalah J
Nilai variabel X berada di alamat FFDB
D. Pointer dan Array
Tahukah kamu bahwa jika kamu menuliskan sebuah
array tanpa tanda kurung kotak ([]) maupun indeksnya, maka array tersebut
menunjuk atau bersi alamat elem pertama dari array tersebut. Misalkan kamu
membuat sebuah pointer bertipe int dengan nama pointerArray dan sebuah array dengan tipe yang sama yaitu int dengan nama nilaiArray, maka pemberian nilai berikut sah dan dapat dilakukan:
Dari sintaks di atas,
variabel pointer dengan nama pointrArray sekarang menunjuk
pada alamat memori elemen pertama array dengan nama nilaiArray. Nah secara tidak langsung kita dapat mengakses nilai
elemen array dengan menggunakan variabel pointer. Berikut Mimin contohkan
sintaks pemrogramannya:
Dari hasil di atas, dapat kamu
lihat bagaimana cara mengakses nilai array dengan menggunakan pointer.Suatu
pointer bertipe int hanya dapat digunakan untuk menunjuk pada variabel int.
Sebab, tipe data tersebut akan menentukan sifat pointer ketika alamat pointer
tersebut dilakukan increment.
Begitu juga untuk tipe data yang lain.
E. Array Pointer
Pointer
juga bisa diarraykan layaknya tipe data lain. Misalnya deklarasi untuk array
pointer ke int dengan 10 elemen adalah
1
|
int *x[10];
|
Untuk memberikan
alamat sebuah variabel (misalnya variabel var) ke elemen ketiga
dari array pointer, tulis
1
|
x[2] = var;
|
untuk menemukan
nilai var, tulis
|
Ingat, q bukan
sebuah pointer ke integer, tapi q adalah pointer ke sebuah
array pointer ke integer (Perhatikan gambar dibawah.) Parameter q tidak
akan bisa menerima argumen selain sebuah pointer ke integer, karena
itulah q dideklarasikan sebagai array pointer.
Array
pointer sering digunakan untuk menyimpan pointer ke string. Kita bisa membuat
fungsi yang menghasilkan pesan error berdasarkan kode angka, seperti berikut:
|
|
Array error menyimpan
pointer ke setiap string. Seperti yang kita lihat, printf() didalam syntax_error()dipanggil
dengan pointer karakter yang menunjuk ke salah satu dari berbagai
pesan error yang diindekskan berdasarkan pada angka
yang dilewatkan ke fungsi. Misalnya, jika num diberi nilai 2,
pesan Write Error akan ditampilkan.
F. Pointer Sebagai Parameter Fungsi Seperti halnya dengan
array, pointer dapat digunakan sebagai parameter suatu fungsi. Karena sifat
pointer yang hanya sebagai penunjuk, maka setiap perubahan yang terjadi pada
parameter, sebenarnya terjadi pada variabel yang ditunjuk bukan pada variabel pointer.
Berikut Mimin contohkan program sederhananya:
Pada program diatas, Mimin
membuat fungsi tambah, dimana ketika alama suatu variabel diberikan sebagai
parameter fungsi, nilai 20 akan ditambahkan pada alamat tersebut. Perbedaan
parameter berupa pointer dan non-pointer adalah, pada variabel non-pointer,
ketika kamu ingin memasukkan nilai pada sebuah variabel kedalam parameter, kamu
harus memasukkan nilai dari variabel tersebut. Untuk parameter berupa pointer,
kamu cukup memasukkan alamat variabel yang menampung nilai dengan operator
(&) kedalam parameter fungsi
Yang menarik adalah pada fungsi tambah di
atas, walaupun fungsi tersebut merupakan fungsi void tanpa nilai kembalian
alias return, namun nilai variabel parameter berubah.
"SEMOGA BERMANFAAT"
REFERENSI :
https://www.sinauarduino.com/artikel/pointer-pada-pemrograman-cpp/
https://www.sinauarduino.com/artikel/pointer-pada-pemrograman-cpp/
Komentar
Posting Komentar