Pointer 1 Variabel pointer sering disebut sebagai variabel
Pointer 1 � Variabel pointer sering disebut sebagai variabel yang menunjuk obyek lain, karena variabel pointer atau pointer adalah variabel yang berisi alamat di memori komputer dari suatu obyek lain, yaitu obyek yang ditunjuk oleh pointer � Penerapan pointer yang paling umum yaitu menciptakan variable dinamis, yang memungkinkan untuk memakai memori bebas (memori yang belum dipakai) selama eksekusi program. Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244042092 -597 -23. ppt -
Deklarasi 2 Algoritma (Pseodocode) : nama_pointer : pointer to tipedata C++ : Ilustrasi : tipedata *nama_pointer; (deklarasi pointer null) nama_pointer = (tipedata *) malloc(size_t size); (deklarasi pointer kosong) nama_pointer (isi)null (alamat) Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244042092 -597 -23. ppt -
Contoh 3 Algoritma (Pseodocode) : pointer to integer nilai : pointer to real s : pointer to char C++ : int *p; float *nilai; char *s; Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244042092 -597 -23. ppt -
Deklarasi sebuah pointer kosong pada memory pada C++ 4 *malloc(size_t size) �Contoh: int *p; int *q; p=(int *) malloc(sizeof(int)); q=(int *) malloc(sizeof(int)); p p (isi)null (alamat) Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244042092 -597 -23. ppt -
Pengaksesan dengan pointer 5 �untuk mengakses nilai/isi pada memori yang ditunjuk oleh pointer dipakai simbol ‘*’ �Contoh : *p = 10; *q = 20; Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244042092 -597 -23. ppt -
Pointer menunjuk memori yang ditunjuk pointer lain 6 �Contoh : p = q; �berarti p menunjuk ke alamat memori yang ditunjuk oleh q, dan dengan demikian p dan q menunjuk alamat memori yang sama. Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244042092 -597 -23. ppt -
ilustrasi : 7 *p = 10 *q = 20 p q 10 p=q p 10 q 20 Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244042092 -597 -23. ppt - 20
//contoh program Pointer 1. cpp #include <iostream. h> Output : 8 #include <alloc. h> #include <stdlib. h> void main() { int *p, *q; p=(int *)malloc(sizeof(int)); q=(int *)malloc(sizeof(int)); *p=10; *q=20; cout<<"Isi info pointer : n"; cout<<"*p = "<<*p<<endl; cout<<"*q = "<<*q<<endl; cout<<"n. Alamat register pointer : n"; cout<<"p = "<<p<<endl; cout<<"q = "<<q<<endl; p=q; cout<<"n. Kondisi akhir isi info pointer : n"; cout<<"*p = "<<*p<<endl; cout<<"*q = "<<*q<<endl; } Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244042092 -597 -23. ppt -
9 Pointer menunjuk variabel statis Misalkan px adalah variabel bertipe pointer yang akan berisi alamat variabel lain yang bertipe integer, maka dideklarasikan : int x; int *px; Untuk mengatur pointer agar menunjuk ke variabel lain, mula-mula pointer harus diisi dengan alamat dari variabel yang akan ditunjuk. Operator ‘&’ digunakan untuk menyatakan alamat variabel statis yang akan ditunjuk. Contoh : px = &x; Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244 -042092 -597 -23. ppt -
ilustrasi 10 int *px; int x=10; px x 10 px = &x px x 10 Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244 -042092 -597 -23. ppt -
Jika suatu variabel statis sudah ditunjuk oleh pointer, isi variabel tersebut dapat diakses 11 melalui variabel itu sendiri (pengaksesan langsung) atau melalui pointer (pengaksesan tidak langsung). pengaksesan langsung dilakukan langsung oleh variabel statisnya (bukan pointernya). Contoh : x = 10 Operator indirection (pengaksesan tidak langsung), berupa simbol ‘*’ Contoh : *px = 10 Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244 -042092 -597 -23. ppt -
Contoh lain: 12 value 1 = 5; value 1 5 mypointer = &value 1; mypointer *mypointer = 10; mypointer value 1 5 10 x Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244 -042092 -597 -23. ppt - value 1 5
//contoh program Pointer 2. cpp 13 #include<iostream. h> main() { int value 1 = 5, value 2 = 15; int * mypointer; mypointer = &value 1; *mypointer = 10; cout << "nvalue 1 = " << value 1; cout << “n*mypointer = " << *mypointer; mypointer = &value 2; *mypointer = 20; cout << "nvalue 2 = " << value 2; cout << "n*mypointer = "<<*mypointer; } Output : Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244 -042092 -597 -
//contoh program Pointer 3. cpp #include <iostream. h> 14 main() { int x, y; //x dan y bertipe int *px; //deklarasi px, pointer yang menunjuk obyek //bertipe int a x=87; b px=&x; //px berisi alamat dari x //y berisi nilai yang ditunjuk px c y =*px; cout<<"alamat x= "<<&x<<endl; cout<<"nilai x= "<<x<<endl; cout<<"alamat yang ditunjuk oleh px= "<<px<<endl; cout<<"nilai yang ditunjuk oleh px= "<<*px<<endl; cout<<"alamat y= "<<&y<<endl; cout<<"nilai y= "<<y; } Output : Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244 -042092 -597 -
15 2 x=87; b px px = &x; x 87 y=*px; y 87 Sumber Kepustakaan : www. mdp. ac. id/. . . 1/. . . /SP 244 -042092 -597 -23. ppt - a c
- Slides: 15