Pointer merupakan sebuah variabel yang berisi alamat variabel lain. Pointer ini dimaksudkan untuk menunjukkan suatu alamat memori sehingga alamat dari suatu variabel dapat diketahui dengan mudah.
Operator Pointer dibagi menjadi 2 macam yaitu :
1.Operator Dereference(&)
2.Operator reference(*)
- Operator Dereference
Operator Dereference disimbolkan dengan simbol "&" (ampersand sign).Operator dereference ini digunakan untuk mengetahui suatu alamat lokasi memori yang sedang digunakan.Biasanya operator ini disebut juga dengan "address of" atau operator alamat.
Biasanya alamat memori disetiap komputer berbeda tapi, ada pula yang sama.Bila alamat yang dicari lebih dari satu maka alamat antara satu dengan yang lainnya berbeda. Contoh listing program penggunaan operator dereference:
#include<stdio.h>#include<conio.h>
#include<iostream.h>
main( )
{
int ilham,amir,*raka;
clrscr( );
ilham=75;
amir=ilham;//nilai amir sama dengan ilham
raka=&ilham;
cout<<"Nilai ILHAM="<<ilham<<endl;
cout<<"Nilai AMIR="<<amir<<endl;
cout<<"Nilai RAKA="<<raka<<endl;
getch( );
}
Keterangan: *raka : raka diberi tanda bintang karena raka belum memiliki nilai.
Hasil Output:
Dari hasil tersebut dapat diketahui bahwa Alamat Raka=0x0012ff50.
- Operator Reference
Operator reference ditandai dengan simbol (*)<identifier asterisk>. Operator ini digunakan untuk mencari nilai sebenarnya dari suatu variabel yang berada didalam pada suatu alamat memori.Operator ini biasa disebut dengan "value pointed by".
Contoh listing program penggunaan Operator Reference :
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( )
{
int ilham,*raka,rafli;
clrscr( );
ilham=75;
raka=&ilham;
rafli=*raka;
cout<<"Nilai ILHAM="<<ilham<<endl;
cout<<"Nilai RAKA="<<raka<<endl;
cout<<"Nilai RAFLI="<<rafli<<endl;
getch( );
}
Hasil Output :
Dari hasil tersebut diketahui bahwa nilai rafli=75.
=> Deklarasi Pointer Pada Konstanta
Suatu pointer dapat dideklarasika secara konstanta/tetap tidak dapat diubah.Untuk mendeklarasikan pointer pada konstanta dengan memberikan kata const didepan nama konstanta.
Bentuk Penulisan: tipe_data * const nama_konstanta;Contoh listing program pointer pada konstanta:
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void main( )
{
char *const nama = "Borland C++";
clrscr( );
cout<<"Nama Program="<<nama<<endl;
//nama="Visual C++"; apabila diberi nama baru ini maka programnya tidak akan jalan karena sudah ada variabel nama"Borland C++".karena variabel nama ini merupakan pointer konstanta yaitu tidak dapat diubah-ubah.
cout<<"Nama Program="<<nama<<endl;
getch( );
}
Hasil Output:
=> Deklarasi Pointer Pada Variabel
Untuk menunjuk secara langsung kesuatu nilai,memeriksa satu persatu data yang memiliki pointer pada saat variabel tersebut pertama dideklarasikan.
Bentuk penulisan : tipe_data *nama_variabel;Contoh programnya sama dengan listing program penggunaan dereference dan reference,yaitu *raka(nama variabel).
=> Pointer Pada Pointer
Merupakan pointer yang dapat menunjuk pointer lainnya.Di dalam pendeklarasiannya ,hanya menambahkan pointer reference (*) pada variabel yang akan ditunjuk.
Contoh listing program Pointer Pada Pointer :
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( )
{
int ilham;
int *raka;//pointer ke variabel
int **amir;//pointer ke variabel
clrscr( );
ilham=75;
cout<<"Nilai ILHAM="<<ilham<<endl;
//penugasan ke alamat memori
raka=&ilham;
amir=&raka;
cout<<"Nilai RAKA Hasil Mengakses ILHAM=";
cout<<*raka<<endl;
cout<<"Nilai AMIR Hasil Mengakses ILHAM=";
cout<<**amir<<endl;
getch( );
}
Hasil running :
=>Pointer Pada Array
Secara internal array juga menyatakan alamat,yaitu pengenal array sama dengan alamat pada elemen pertama,pada array.
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( )
{
int i;
int nilai[5];
int *ptrnilai;
ptrnilai=nilai;
for(i=1;i<=5;i++)
{
cout<<"Masukan Nilai Pertama=";
cin>>nilai[i];
}
cout<<endl;
cout<<"Hasil Pengaksesan Elemen Array Lewat";
cout<<"Pointer";
cout<<endl<<endl;
for(i=1;i<=5;i++)
{
cout<<"Elemen"<<i<<".Nilai"<<nilai[i];
cout<<",Menempati Alamat Memori=";
cout<<&ptrnilai[i];
cout<<endl;
}
getche( );
}
Hasil output :
Merupakan pointer yang menunjuk pada sebuah string.
Contoh listing program pointer pada string :
#include<constrea.h> //conio.h ; iostream.h
main( )
{
char band_metal[ ]="SEPULTURA";
char *band_punk="RANCID";
cout<<"Nama Band Metal="<<band_metal<<endl;
cout<<"Nama Band Punk="<<band_punk<<endl;
band_punk+=4;//menambah nilai petunjuk/pointer
cout<<"Nama Band Metal="<<band_metal<<endl;
cout<<"Nama Band Punk="<<band_punk;
getch( );
}
main( )
{
char band_metal[ ]="SEPULTURA";
char *band_punk="RANCID";
cout<<"Nama Band Metal="<<band_metal<<endl;
cout<<"Nama Band Punk="<<band_punk<<endl;
band_punk+=4;//menambah nilai petunjuk/pointer
cout<<"Nama Band Metal="<<band_metal<<endl;
cout<<"Nama Band Punk="<<band_punk;
getch( );
}
Hasil Output :
Dari outputan di atas,terdapat perubahan nilai pointer pada band punk,yang ditunjukkan oleh penambahan nilai pointer pada band_punk +=4,secara default, pembacaan dilakukan mulai dari pointer pertama, karena sudah terjadi penambahan dengan 4, maka pembacaan berpindah ke alamat ke.5, sehingga tercetak kata ID.
Pembacaan: R A N C I D
1 2 3 4 5 6
^ID











1 komentar:
ko gaada pointer dengan fungsi ka ?
Posting Komentar