BAB XI
POINTER
Pointer adalah variabel yang berisi alamat memori sebagai nilainya dan berbeda
dengan variabel biasa yang berisi nilai tertentu. Dengan kata lain, pointer berisi alamat
Dibawah ini dapat dilihat gambar contoh variable yang nilainya 10:
menunjukkan variabel tersebut tersimpann dimana, variabel pointer adalah variabel yang
Contoh :
Int*a;
Variabel a bukan berisi nilai data (bilangan integer), tetapi akan berisi alamat
memori. Bila ada pengisian a=10 akan terjadi kesalahan, hal ini dikarenakan variabel a
Float*b;
Variabel b berisi alamat memori dan menunjuk pada variabel yang bertipe float.
1. Int * a; memesan satu variabel a, tetapi variabel a ini berisi alamat memori dari
2. A=&b; melakukan pengisian data pada a, untuk mengisi alamat memori digunakan
perintah &. Jadi variabel a akan berisi alamat memori dari variabel b
Penjelasan :
Menampilkan nilai yang ditunjuk variabel a, nilai yang ditunjuk adalah variabel c.
Menampilkan nilai yang ditunjuk variabel a, nilai yang ditunjuk adalah variabel c.
Seperti penjelasan diatas, variabel pointer harus menunjuk ke variabel yang bertipe
sama. Agar variabel pointer dapat bersifat fleksibel (dapat menunjuk ke berbagai tipe
Void * a;
Ponter yang tidak menggunakan void
Int*a;
Float b;
A=&b;
Dibawah ini dapat dilihat gambar pengalamatan variable pointer
Void*a;
Float b;
Int c;
a=&b;
.........
a=&c;
Penjelasan :
1. Variabel pointer *a bertipe void, artinya variabel pointer tersebut bisa menunjuk ke
Int*a;
Int*b;
b=30;
Jika menginginkan mengganti nilai b=30 menjadi 40 dapat dilakukan secara langsung
a=&b;
*a=40;
Penjelasan :
3) *a=30; isi yang ditunjuk variabel pointer a diganti menjadi 30, artinya isi yang
Dibawah ini contoh program mengubah isi variabel dan hasil pointer:
Gambar 11.17 Contoh program mengubah isi variabel dan hasil pointer
Penjelasan :
4. *a=*a**d; nilai yang ditunjuk a isinya diganti hasil dari perkalian nilai yang
*a=10*40, artinya yang diganti adalah variabel b, jadi isi b sekarang 400
5. *d=a; nilai yang ditunjuk d (isi variabel c), isinya diganti yang ditunjuk a
*d=a* artinya nilai yang ditunjuk d (isi variabel c) diganti dengan nilai yang
Salah satu cara yang digunakan dalam fungsi adalah melewatkan nilai pemanggil
Contoh :
a=88;
b=77;
a=77;
b=88;
1) Tukar (&a,&b) artinya yang dilewatkan ke fungsi bukan isi variabel a dan b tetapi
2) Void tukar (int*px, int*py) artinya alamat memori dari &a akan disimpan di *px
3) Int z;
z=*px; variabel z diisi dengan nilai yang ditunjuk oleh *px artinya z berisi nilai
88
4) *px=*py; nilai yang ditunjuk *px(88) diisi dengan nilai yang ditunjuk oleh *py (77)
5) *py=z; nilai yang ditunjuk *py (77) diisi dengan nilai dari variabel z (88)
11.6 Latihan
1. Pernyataan 1 :
#include <iostream>
{ Int x;
Int *y;
Cout<<”alamat x :”<<&x<<endl;
Y=&x;
Cout<<”isi y : “<<*y;
2. Pernyataan 2 :
#include <iostream>
Int x=8;
Int *px;
Px=&x;
Cout<<”nilai x =”<<x<<endl;
Cout<<”alamat x =”<<&x<<endl;
3) Buatllah program terdiri dari 5 variabel yang di inputkan dari fungsi main kemudian
dilewatkan ke fungsi tanpa memerlukan nilai balik. Outputnya adalah kelima variabel
Pernyataan 3 :
#include<iostream>
void data_mahasiswa();
void garis();
void nama();
void npm();
void kelas();
int main(){
data_mahasiswa();
garis();
nama();
npm();
kelas();
void data_mahasiswa(){
void garis(){
cout<<"===================================="<<endl;
void nama(){
void npm(){
cout<<"npm : 07352111040"<<endl;
void kelas(){
cout<<"kelas : 1IF1"<<endl;