POINTER

DASAR TEORI




A.       Operator Pointer

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