DASAR TEORI
Terdapat dua macam operator pointer yang disediakan oleh C++, yaitu
1. Operator Dereference(&)
Operator deferente (&) biasa disebut dengan address of atau operator alamat. Dengan menggunakan opera tor ini dereference (&) ini, suatu variable akan menghasilkan alamt lokasi memori
Contoh :
X = 85;
Y = X;
Z = &X;
2. Operator Reference (*)
Dengan menggunakan operator reference (*), anda dapat mengakses secara langsung nilai yang terdapat didalam variable yang pointer. Operator ini bias disebut dengan value pointed by. Dengan menggunakan operator refence(*) ini akan dihasilkn nilai yang berada pada suatu alamat memori.
Contoh :
X = 85;
Y = &X;
Z = *Y;
B. Deklarasian Pointer pada konstanta
Suatu pointer dapat dideklarasikan secara konstanta. Untuk mendeklarasikan pointer secara pointer secara konstanta dilakukan dengan memberikan kata const didepan nama konstanta.
Tipe_data * const nama_konstanta;
C. Deklarasian Pointer pada Variabel
Pointer dapat digunakan untuk menunjukan secara lansung ke suatu nilai.
Tipe_data *nama_konstanta;
D. Deklarasi Pointer pada Pointer
Tidak terbatas menunjukan alamat dari suatu variable,pointer dapat pula menunjukan ke pointer lainnya. Didalam pendeklarasiannya, dilakukan hanya dengan menambahkan pointer reference (*) pada variable yang ditunjukan.
Tipe_data *nama_konstanta;
D. Pointer pasa Array
Konsep array diantaranya adalah banyak loncatan dari pointer satu ke pointer yang lain karena yang lain karena secara internal array juga menyatakan alamat, dimana pengenal array sama dengan alamat pada elemen pertama pada array.
LANGKAH LANGKAH PRATIKUM
Latihan 901
Input
//-------------------------------------------------//
//Pendeklarasian Pointer Reference dan Dereference //
//-------------------------------------------------//
#include<conio.h>
#include<iostream.h>
void main(){
int a, *b, c, *d;
a = 75;
b = &a;
c = *b;
cout<<"Nilai a = "<<a<<endl;
cout<<"Nilai b = "<<b<<endl;
cout<<"Nilai c = "<<c<<endl;
getch();
}
Output
Nilai a = 75
Nilai b = 0x24f7240a
Nilai c = 75
Latihan 902
Input
//--------------------------------------//
//pendeklarasian pointer konstanta //
//--------------------------------------//
#include<conio.h>
#include<iostream.h>
void main() {
char *const nama = "Borland c++";
cout<<"Nama Program = "<<nama <<endl;
nama: "Visual c++";
cout<<"Nama Program = "<<nama <<endl;
getch();
}
Output
Nama Program = Borland c++
Nama Program = Borland C++
Latihan 903
Input
//------------------------------------//
//perubahan nilai dengan pointer //
//------------------------------------//
#include<conio.h>
#include<iostream.h>
void main(){
int a = 94;
int *b;
cout<<"Nilai Awal a = "<<a<<endl;
b = &a;
cout<<"nilai b sekarang = "<<*b<<endl;
*b = 50;
cout<<"Nilai b sekarang = "<<*b<<endl;
cout<<"Nilai a sekarang = "<<a<<endl;
getch() ;
}
Output
Nilai Awal a = 94
Nilai b sekarang = 94
Nilai b sekarang = 50
Nilai a sekatang = 50
Latihan 904
Input
//------------------------------------------//
//penggunaan pointer dengan pointer //
//------------------------------------------//
#include<conio.h>
#include<iostream.h>
void main() {
int a, *b, **c;
a = 75;
cout<<"Nilai b hasil mengakses a = "<<*b<<endl;
cout<<"Nilai c hasil mengakses a = "<<**c<<endl;
getch() ;
}
Output
Nilai b hasil mengakses a = 21829
Latihan 905
Input
#include<conio.h>
#include<iostream.h>
void main() {
int i, nilai[5], *ptrNilai;
ptrNilai = nilai;
for(i=1; i<=5; i++) {
cout <<"Masukan Nilai "<<i<<"= ";
cin>>nilai[i];
}
cout<<endl;
cout<<"Hasil Pengaksesan Elemen Array Lewat Pointer";
cout<<endl<<endl;
for(i=1; i<=5; i++) {
cout<<"Elemen "<<i<<". Nilai "<<nilai[1];
cout<<", menempati Alamat Memori = "<<&ptrNilai[i];
cout<<endl;
}
getche();
}
Output
Masukan Nilai 1 = 5
Masukan Nilai 2 = 6
Masukan Nilai 3 = 7
Masukan Nilai 4 = 8
Masukan Nilai 5 = 9
hasil mengakseskan elemen array lewat pointer
elemen 1. Hasil 5, menempati alamat memori = 8x1b6f2552
elemen 2. Hasil 6, menempati alamat memori = 8x1b6f2554
elemen 3. Hasil 7, menempati alamat memori = 8x1b6f2556
elemen 4. Hasil 8, menempati alamat memori = 8x1b6f2558
elemen 5. Hasil 9, menempati alamat memori = 8x1b6f255a
Latihan 906
Input
//--------------------//
//Pointer Pada String //
//--------------------//
#include<conio.h>
#include<iostream.h>
void main() {
char band_metal[] = "SEPULTURA";
char *band_punk = "RANCID";
cout<<"Nama band metal = "<<band_metal<<endl;
cout<<band_metal<<endl;
band_punk+=3;
cout<<"Nama band metal = "<<band_metal<<endl;
cout<<"Nama band punk = "<<band_punk<<endl;
getche();
}
Output
Nama band metal=SEPULTURA
Nama band punk=RANCID
Nama band metal=SEPULTURA
Nama band punk=CID
Tidak ada komentar:
Posting Komentar