Sabtu, Juni 27, 2009

POINTER

Pengertian dan Prinsip Dasar Pointer

Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam memori. Pointer merupakan tipe data berukuran 32 bit yang berisi satu nilai yang berpadanan
dengan alamat memori tertentu. Sebagai contoh, sebuah variabel P bertipe pointer bernilai 0x0041FF2A, berarti P menunjuk pada alamat memori 0041FF2A. Pointer dideklarasikan seperti variabel biasa dengan menambahkan tanda * (asterik) yang mengawali nama variabel.

Bentuk Umum:
namaVariabel;




Contoh:
float * px;

Statement di atas mendeklarasikan variabel px yang merupakan pointer. Penyebutan
tipe data float berarti bahwa alamat mem
ori yang ditunjuk oleh px dimaksudkan untuk
berisi data bertipe float.

• Operator Pointer ada 2 (dua) :
o Operator &
o Operator *

• Deklarasi pointer
tipe_data *nama_variabel
Contoh :
char *nim;
int *nilai;

• Operasi Pointer
o Operasi Penugasan (Assignment Operation)
o Operasi Aritmatika (Arithmetic Operation)
o Operasi Logika (Logical Operation)


Contoh-contoh Program untuk dipraktekkan

Contoh Program 1 :

#include “stdio.h”
#include “conio.h”
void main()
{ int x, y; /* x dan y bertipe int */
int *px; /* px pointer yang menunjuk objek */
clrscr();

x = 87;
px = &x; /* px berisi alamat dari x */
y = *px; /* y berisi nilai yang ditunjuk px */

printf(“Alamat x = %p\n”, &x);
printf(“Isi px = %p\n”, px);
printf(“Isi x = %i\n”, x);
printf(“Nilai yang ditunjuk oleh px = %i\n”, *px);
printf(“Nilai y = %i\n”, y);
getch();
}

Contoh Program 2 :

#include
float f = 0.75;
float *pf; /* pointer yang menunjuk ke tipe float */
void main()
{
pf = &f; // memberikan alamat f kpd pointer pf
printf( “Alamat memori variable f = %p \n”, &f );
printf( “Alamat memori pointer pf = %p \n”, &pf );
printf( “Alamat memori yang ditunjuk oleh pf = %p \n”, pf );
printf( “Nilai yg ditunjuk oleh pf = %d \n”, *pf );
printf( “Nilai variable f mula-mula = %f \n”, f );
*pf = 1000.2;
printf( “Nilai variable f sekarang = %f \n”, f );
}

Contoh Program 3 :

#include “stdio.h”
#include “conio.h”
void main()
{ float *x1, *x2, y;
clrscr();
y = 13.45;
x1 = &y; /* Alamat dari y disalin ke variabel x1 */
x2 = x1; /* Isi variabel x1 disalin ke variabel x2 */
printf(“Nilai variabel y = %.2f ada di alamat %p\n”, y, x1);
printf(“Nilai variabel y = %.2f ada di alamat %p\n”, y, x2);
getch();
}

Contoh Program 4 :

#include “stdio.h”
#include “conio.h”
void main()
{ int nilai[3], *penunjuk;
clrscr();
nilai[0] = 125;
nilai[1] = 345;
nilai[2] = 750;
penunjuk = &nilai[0];
printf(“Nilai %i ada di alamat memori %p\n”, *penunjuk, penunjuk);
printf(“Nilai %i ada di alamat memori %p\n”, *(penunjuk+1), penunjuk+1);
printf(“Nilai %i ada di alamat memori %p\n”, *(penunjuk+2), penunjuk+2);
getch();
}