Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1 POINTER (VAR.PENUNJUK) Pengertian - Merupakan var. yg berisi alamat memori dari objek (variabel) lain. - Operator pointer (ada 2): - 1. Operator & -

Presentasi serupa


Presentasi berjudul: "1 POINTER (VAR.PENUNJUK) Pengertian - Merupakan var. yg berisi alamat memori dari objek (variabel) lain. - Operator pointer (ada 2): - 1. Operator & -"— Transcript presentasi:

1 1 POINTER (VAR.PENUNJUK) Pengertian - Merupakan var. yg berisi alamat memori dari objek (variabel) lain. - Operator pointer (ada 2): - 1. Operator & - 2. Operator *

2 2  Operator & menghasilkan alamat dari operand-nya. menghasilkan alamat dari operand-nya.  Operator * menghasilkan nilai yg berada pada sebuah menghasilkan nilai yg berada pada sebuah alamat alamat OPERATOR POINTER

3 3  Deklarasi Pointer  Tipedata *nama_pointer;  Tipedata *nama_pointer; Tipedata mendefinisikan tipe dari objek yg ditunjuk oleh pointer. Tipedata mendefinisikan tipe dari objek yg ditunjuk oleh pointer.Contoh:  int *Px;  int *Px;  char *sh;  char *sh;

4 4 Contoh program1 #include #include void main() { int x, y; // x dan y bertipe int int *px; // px pointer yang menunjuk objek clrscr();

5 5 x = 87; px = &x; // px berisi alamat dari x y = *px; // y berisi nilai yang ditunjuk px cout<<"Alamat x = "<< &x; cout<<"\nIsi px = "<< px; cout<<"\nIsi x = "<< x; cout<<"\nNilai yang ditunjuk oleh px = "<< *px; cout<<"\nNilai y = "<< y; getch( );}

6 6 OPERASI POINTER 1. Operasi penugasan Nilai dari suatu variabel pointer dapat disalin ke variabel pointer yang lain. contoh: y = 35; x1= &y; x2= x1;

7 7 #include #include void main() { float *x1, *x2, y; y = 13.45; x1 = &y; /* Alamat dari y disalin ke variabel x1 */ x2 = x1; /* Isi variabel x1 disalin ke variabel x2 */ cout<<"Nilai variabel y = "<

8 8 2. Operasi aritmatika Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan. Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (index selanjutnya) dalam memori. Begitu juga operasi pengurangan. OPERASI POINTER

9 9 #include #include void main(){ int nilai[3], *penunjuk; clrscr(); nilai[0] = 125; nilai[1] = 345; nilai[2] = 750; penunjuk = &nilai[0]; cout<<"Nilai "<<*penunjuk<<" ada di alamat memori "<

10 10 3. Operasi Logika #include #include void main() { int *pa, *pb, a = 100, b = 10; clrscr(); pa = &a; pb = &b; if (*pa < *pb) if (*pa < *pb) {cout<<"pa menunjuk ke memori lebih RENDAH dari pb\n";} {cout<<"pa menunjuk ke memori lebih RENDAH dari pb\n";} else if(*pa == *pb) else if(*pa == *pb) {cout<<"pa menunjuk ke memori yang SAMA dengan pb\n";} {cout<<"pa menunjuk ke memori yang SAMA dengan pb\n";} else if(*pa > *pb) else if(*pa > *pb) {cout<<"pa menunjuk ke memori lebih TINGGI dari pb\n";} {cout<<"pa menunjuk ke memori lebih TINGGI dari pb\n";} getch(); } getch(); } Contoh Program4

11 11 ARRAY DAN POINTER // more pointers #include #include int main () { char array[5]; char array[5]; char * p; char * p; p = array; *p = 'a'; p = array; *p = 'a'; p++; *p = 'b'; p++; *p = 'b'; p = &array[2]; *p = 'c'; p = &array[2]; *p = 'c'; p = array + 3; *p = 'd'; p = array + 3; *p = 'd'; p = array; *(p+4) = 'e'; p = array; *(p+4) = 'e'; for (int n=0; n<5; n++) for (int n=0; n<5; n++) cout << array[n] << ", "; cout << array[n] << ", "; getch(); getch();}

12 12 POINTER DGN ARRAY #include #include void main(){ int tgl_lahir[] = { 13,9,1982 }; int *ptgl; ptgl = tgl_lahir; /* ptgl berisi alamat array */ cout<<"Diakses dengan pointer\n"; cout<<"Tanggal = "<< *ptgl; cout<<"\nBulan = "<< *(ptgl + 1); cout<<"\nTahun = "<< *(ptgl + 2); cout<<"\nDiakses dengan array biasa\n"; cout<<"Tanggal = "<< tgl_lahir[0]; cout<<"\nBulan = "<< tgl_lahir[1]; cout<<"\nTahun = "<< tgl_lahir[2]; getch();}

13 13 PEMBERIAN NILAI ARRAY DGN POINTER //Contoh Program7 #include #include void main(){ int x[5], *p, k; clrscr(); p = x; x[0] = 5; x[1] = x[0]; /* x[1] diisi dengan x[0] sehingga x[1] = 5 */ x[2] = *p + 2; /* x[2] diisi dengan x[0] + 2 sehingga x[2] = 7 */ x[3] = *(p+1)-3; /* x[3] diisi dengan x[1] - 3 sehingga x[3] = 2 */ //x[4] = *(x + 2); /* x[4] diisi dengan x[2] sehingga x[4] = 7 */ x[4]=*(p+2)-1; for(k=0; k<5; k++) cout<<"\nx["<

14 Latihan 1 buat inputan scr dinamis // more pointers #include #include int main () { char array[5]; char array[5]; char * p; char * p; p = array; *p = 'a'; p = array; *p = 'a'; p++; *p = 'b'; p++; *p = 'b'; p = &array[2]; *p = 'c'; p = &array[2]; *p = 'c'; p = array + 3; *p = 'd'; p = array + 3; *p = 'd'; p = array; *(p+4) = 'e'; p = array; *(p+4) = 'e'; for (int n=0; n<5; n++) for (int n=0; n<5; n++) cout << array[n] << ", "; cout << array[n] << ", "; getch(); getch(); 14

15 15 // more pointers // more pointers #include #include int main () int main () { char array[5]; char array[5]; char * p; char * p; p = array; p = array; for (int i=0;i<=4;i++) for (int i=0;i<=4;i++) { cout >*p; { cout >*p; p++; p++; } } for (int n=0; n<5; n++) for (int n=0; n<5; n++) cout << array[n] << ", "; cout << array[n] << ", "; getch();} getch();}Jawaban

16 Latihan 2 berikan keterangan dan outputnya 16 #include #include const int ARRAY = 5; int main () { int Numbers [ARRAY] = {0, 100, 200, 300, 400}; int Numbers [ARRAY] = {0, 100, 200, 300, 400}; const int *pInt = Numbers; const int *pInt = Numbers; for (int nIndex = 0; nIndex < ARRAY; ++ nIndex) for (int nIndex = 0; nIndex < ARRAY; ++ nIndex) cout << "Element [" << nIndex << "] = " << *(pInt + nIndex) << endl; cout << "Element [" << nIndex << "] = " << *(pInt + nIndex) << endl; getch();} getch();}


Download ppt "1 POINTER (VAR.PENUNJUK) Pengertian - Merupakan var. yg berisi alamat memori dari objek (variabel) lain. - Operator pointer (ada 2): - 1. Operator & -"

Presentasi serupa


Iklan oleh Google