SlideShare a Scribd company logo
Alamat dan Pointer
 Konsep pointer sebenarnya cukup sederhana.
 Pointer sesungguhnya berisi alamat dari suatu data,
bukan data sebagaimana variabel yang telah anda
kenal.
Alamat dan Pointer
 Setiap byte di dalam memori komputer memiliki
sebuah alamat.
 Di dalam memori inilah variabel disimpan.
 Tetapi tentu saja pemrogram tidak perlu menyebutkan
alamat dari suatu variabel secara explisit.
 Pada saat program dimuat di dalam memori, variabel
akan diletakkan dengan sendirinya pada alamat
tertentu.
Alamat dan Pointer
 Suatu pointer di dalam program dimaksudkan untuk
menunjuk suatu alamat memori.
 Misalnya kalau pint adalah pointer, dan vint adalah
variabel yang terletak di memori beralamat 0xfff2,
pointer pint dapat diatur agar menunjuk ke variabel
vint.
Alamat dan Pointer
0xfff2
pint
vint
0xfff4
0xfff2
alamat
menunjuk ke vint
Mengetahui Alamat Suatu Variabel
 Alamat suatu variabel dapat diketahui dengan mudah,
caranya tambahkan operator alamat, berupa simbol &
di depan nama variabel.
 Dengan mengirimkan ke cout, alamat dari suatu
variabel akan ditampilkan ke layar.
Mengetahui Alamat Suatu Variabel
#include <iostream.h>
#include <conio.h>
void main()
{
int bil1 = 5;
float bil2 = 7.5;
double bil3 = 17.777;
cout<<"Isi variabel : "<<endl;
cout<<"bil1 = "<<bil1<<endl;
cout<<"bil2 = "<<bil2<<endl;
cout<<"bil3 = "<<bil3<<endl;
cout<<endl;
cout<<"Alamat variabel : "<<endl;
cout<<"bil1 = "<<&bil1<<endl;
cout<<"bil2 = "<<&bil2<<endl;
cout<<"bil3 = "<<&bil3<<endl;
getch();
}
Mengetahui Alamat Suatu Variabel
 Perlu diketahui, notasi 0x pada hasil program di depan
menyatakan notasi heksadesimal.
 Pada C++, tanda & juga dipakai untuk referensi (alias
dari suatu variabel).
Mendefinisikan Variabel Pointer
 Format :
 tipe_data dapat berupa sembarang tipe data seperti
halnya variabel bukan pointer.
 nama_variabel adalah variabel pointer.
tipe_data *nama_variabel
Mengisi Variabel Pointer
 Supaya variabel pointer menunjuk ke variabel lain, mula-mula harus
diisi dengan alamat dari variabel yang hendak ditunjuk.
 Misalnya terdapat pendefinisian seperti berikut :
 Variabel pint dapat diatur agar menunjuk ke vint dengan cara sebagai
berikut :
 Pernyataan diatas berarti : “pint diisi dengan alamat dari vint”.
int vint = 55;
int *pint;
pint = &vint;
#include <iostream.h>
#include <conio.h>
void main()
{
int vint = 55;
int *pint;
pint = &vint; //pointer menunjuk ke vint
cout<<"Alamat vint = "<<&vint<<endl;
cout<<"Isi pint = "<<pint<<endl;
getch();
}
Mengisi Variabel Pointer
 Pada contoh di depan :
 Baris tersebut ternyata menampilkan isi dari pointer
itu sendiri, bukan isi dari variabel vint.
cout<<"pint = "<<pint<<endl;
Mengakses Nilai Yang Ditunjuk Pointer
 Berdasarkan contoh di depan, nilai dari vint dapat diakses
melalui pint setelah pernyataan dibawah ini dijalankan.
 Cara mengaksesnya adalah dengan melibatkan operator
“tak langsung” yang berupa simbol * dan diletakkan di
depan nama variabel pointer. Contoh :
 Berarti “nilai yang ditunjuk oleh pint”.
pint = &vint;
*pint;
#include <iostream.h>
#include <conio.h>
void main()
{
int vint = 55;
int *pint;
pint = &vint; //pointer menunjuk ke vint
cout<<"Isi vint = "<<vint<<endl;
cout<<"Alamat vint = "<<&vint<<endl;
cout<<"Isi pint = "<<pint<<endl;
cout<<"Nilai yang ditunjuk oleh pint : "<<*pint<<endl;
getch();
}
Mengakses Nilai Yang Ditunjuk Pointer
 Program di depan menunjukkan pengaksesan
terhadap vint dapat dilakukan melalui *pint.
 Contoh berikut menunjukkan isi vint diubah melalui
*pint.
#include <iostream.h>
#include <conio.h>
void main()
{
int vint = 55;
int *pint;
pint = &vint; //pointer menunjuk ke vint
cout<<"Isi vint semula = "<<vint<<endl;
*pint = 77;
cout<<"Isi vint sekarang = "<<vint<<endl;
getch();
}
Pointer Void
 Pada contoh-contoh program di depan telah ditunjukkan
pointer yang menunjuk ke tipe data tertentu.
 Sebenarnya juga dimungkinkan untuk membuat pointer
tak bertipe.
 Caranya yakni dengan meletakkan kata kunci void di
bagian penentu tipe pointer. Contoh :
 Suatu pointer void seperti contoh diatas dapat digunakan
untuk menunjuk ke sembarang tipe data.
void *ptr;
#include <iostream.h>
#include <conio.h>
void main()
{
int bil1 = 55;
float bil2 = 33.45;
void *ptr;
ptr = &bil1; //bisa menunjuk ke int
cout<<"Nilai yang ditunjuk ptr : "<<*(int*)ptr<<endl;
ptr = &bil2; //bisa menunjuk ke float
cout<<"Nilai yang ditunjuk ptr : "<<*(float*)ptr<<endl;
getch();
}
Pointer Void
 Pada program di depan, bentuk berikut perlu
diberikan :
 Ini disebabkan C++ tidak tahu maksud *ptr
mengingat ptr adalah pointer void.
 Cara ini bukan hanya berlaku jika kita bermaksud
mengambil nilai yang ditunjuk oleh ptr tapi juga
ketika kita mengubahnya.
 Seperti contoh program berikut :
*(int*)ptr
*(float*)ptr
#include <iostream.h>
#include <conio.h>
void main()
{
int bilangan = 55;
void *ptr;
ptr = &bilangan;
cout<<"bilangan semula : "<<bilangan<<endl;
*(int*)ptr = 77; //mengubah nilai bilangan melalui ptr
cout<<"bilangan sekarang : "<<bilangan<<endl;
getch();
}

More Related Content

What's hot

Algoritma dan Struktur Data - sintaks c++
Algoritma dan Struktur Data - sintaks c++Algoritma dan Struktur Data - sintaks c++
Algoritma dan Struktur Data - sintaks c++
Georgius Rinaldo
 
MATERI POINTER TKJ K13
MATERI POINTER TKJ K13MATERI POINTER TKJ K13
MATERI POINTER TKJ K13
Ali Must Can
 
Bab 2 identifier dan tipe data
Bab 2 identifier dan tipe dataBab 2 identifier dan tipe data
Bab 2 identifier dan tipe data
Affandi Arrizandy
 
Materi kuliah 19 fungsi part 2
Materi kuliah 19   fungsi part 2Materi kuliah 19   fungsi part 2
Materi kuliah 19 fungsi part 2Budi Yono
 
6. pemrograman pointer
6. pemrograman pointer6. pemrograman pointer
6. pemrograman pointerRoziq Bahtiar
 
Dasar-dasar c++
Dasar-dasar c++Dasar-dasar c++
Dasar-dasar c++aks247
 
Pertemuan 9 : Algoritma & Pemrograman
Pertemuan 9 : Algoritma & PemrogramanPertemuan 9 : Algoritma & Pemrograman
Pertemuan 9 : Algoritma & Pemrograman
Tri Retna
 
Pengenalan c++
Pengenalan c++Pengenalan c++
Pengenalan c++melmaila
 
Algoritma pemrograman 6
Algoritma pemrograman 6Algoritma pemrograman 6
Algoritma pemrograman 6
ZainalAbidin909479
 
Pertemuan 5 : Algoritma & Pemrograman
Pertemuan 5 : Algoritma & PemrogramanPertemuan 5 : Algoritma & Pemrograman
Pertemuan 5 : Algoritma & Pemrograman
Tri Retna
 
Pertemuan 4 Pointer Pada C++
Pertemuan 4 Pointer Pada C++Pertemuan 4 Pointer Pada C++
Pertemuan 4 Pointer Pada C++
Endang Retnoningsih
 
Pertemuan 1 : Algoritma & Pemrograman
Pertemuan 1 : Algoritma & PemrogramanPertemuan 1 : Algoritma & Pemrograman
Pertemuan 1 : Algoritma & Pemrograman
Tri Retna
 
Pertemuan 2 : Algoritma & Pemrograman
Pertemuan 2 : Algoritma & PemrogramanPertemuan 2 : Algoritma & Pemrograman
Pertemuan 2 : Algoritma & Pemrograman
Tri Retna
 
07 elemen dasar c++ part 2
07   elemen dasar c++ part 207   elemen dasar c++ part 2
07 elemen dasar c++ part 2Budi Yono
 
Pertemuan 6 : Algoritma & Pemrograman
Pertemuan 6 : Algoritma & PemrogramanPertemuan 6 : Algoritma & Pemrograman
Pertemuan 6 : Algoritma & Pemrograman
Tri Retna
 

What's hot (18)

Algoritma dan Struktur Data - sintaks c++
Algoritma dan Struktur Data - sintaks c++Algoritma dan Struktur Data - sintaks c++
Algoritma dan Struktur Data - sintaks c++
 
Pointer
PointerPointer
Pointer
 
Pointer
PointerPointer
Pointer
 
MATERI POINTER TKJ K13
MATERI POINTER TKJ K13MATERI POINTER TKJ K13
MATERI POINTER TKJ K13
 
Bab 2 identifier dan tipe data
Bab 2 identifier dan tipe dataBab 2 identifier dan tipe data
Bab 2 identifier dan tipe data
 
Materi kuliah 19 fungsi part 2
Materi kuliah 19   fungsi part 2Materi kuliah 19   fungsi part 2
Materi kuliah 19 fungsi part 2
 
6. pemrograman pointer
6. pemrograman pointer6. pemrograman pointer
6. pemrograman pointer
 
Dasar-dasar c++
Dasar-dasar c++Dasar-dasar c++
Dasar-dasar c++
 
Pertemuan 9 : Algoritma & Pemrograman
Pertemuan 9 : Algoritma & PemrogramanPertemuan 9 : Algoritma & Pemrograman
Pertemuan 9 : Algoritma & Pemrograman
 
Pengenalan c++
Pengenalan c++Pengenalan c++
Pengenalan c++
 
Algoritma pemrograman 6
Algoritma pemrograman 6Algoritma pemrograman 6
Algoritma pemrograman 6
 
Pbo05
Pbo05Pbo05
Pbo05
 
Pertemuan 5 : Algoritma & Pemrograman
Pertemuan 5 : Algoritma & PemrogramanPertemuan 5 : Algoritma & Pemrograman
Pertemuan 5 : Algoritma & Pemrograman
 
Pertemuan 4 Pointer Pada C++
Pertemuan 4 Pointer Pada C++Pertemuan 4 Pointer Pada C++
Pertemuan 4 Pointer Pada C++
 
Pertemuan 1 : Algoritma & Pemrograman
Pertemuan 1 : Algoritma & PemrogramanPertemuan 1 : Algoritma & Pemrograman
Pertemuan 1 : Algoritma & Pemrograman
 
Pertemuan 2 : Algoritma & Pemrograman
Pertemuan 2 : Algoritma & PemrogramanPertemuan 2 : Algoritma & Pemrograman
Pertemuan 2 : Algoritma & Pemrograman
 
07 elemen dasar c++ part 2
07   elemen dasar c++ part 207   elemen dasar c++ part 2
07 elemen dasar c++ part 2
 
Pertemuan 6 : Algoritma & Pemrograman
Pertemuan 6 : Algoritma & PemrogramanPertemuan 6 : Algoritma & Pemrograman
Pertemuan 6 : Algoritma & Pemrograman
 

Similar to Materi kuliah 03 pointer part 1

Materi kuliah 03 pointer part 1
Materi kuliah 03   pointer part 1Materi kuliah 03   pointer part 1
Materi kuliah 03 pointer part 1kua
 
Materi kuliah 21 pointer part 1
Materi kuliah 21   pointer part 1Materi kuliah 21   pointer part 1
Materi kuliah 21 pointer part 1kua
 
Pertemuan 8.ppt
Pertemuan 8.pptPertemuan 8.ppt
Pertemuan 8.ppt
fauziahUG
 
Algoritma&Pemrograman C++ Pertemuan 11
Algoritma&Pemrograman C++ Pertemuan 11Algoritma&Pemrograman C++ Pertemuan 11
Algoritma&Pemrograman C++ Pertemuan 11
Menny SN
 
Ix struktur pointer
Ix struktur pointerIx struktur pointer
Ix struktur pointer
Dhan junkie
 
Materi kuliah 23 pointer part 3
Materi kuliah 23   pointer part 3Materi kuliah 23   pointer part 3
Materi kuliah 23 pointer part 3kua
 
Materi kuliah 23 pointer part 3
Materi kuliah 23   pointer part 3Materi kuliah 23   pointer part 3
Materi kuliah 23 pointer part 3Budi Yono
 
Pertemuan5.ppt
Pertemuan5.pptPertemuan5.ppt
Pertemuan5.ppt
ssuser3901ab
 
MAKALAH POINTER (DIKI CANDRA) (1).docx
MAKALAH POINTER (DIKI CANDRA) (1).docxMAKALAH POINTER (DIKI CANDRA) (1).docx
MAKALAH POINTER (DIKI CANDRA) (1).docx
Dikicandra6
 
PPT-UEU-Bahasa-Pemrograman-Pertemuan-9.pptx
PPT-UEU-Bahasa-Pemrograman-Pertemuan-9.pptxPPT-UEU-Bahasa-Pemrograman-Pertemuan-9.pptx
PPT-UEU-Bahasa-Pemrograman-Pertemuan-9.pptx
hudriyah1
 
Structure and pointer
Structure and pointerStructure and pointer
Structure and pointer
Tenia Wahyuningrum
 
Materi kuliah 23 pointer part 3
Materi kuliah 23   pointer part 3Materi kuliah 23   pointer part 3
Materi kuliah 23 pointer part 3Budi Yono
 
Materi kuliah 23 pointer part 3
Materi kuliah 23   pointer part 3Materi kuliah 23   pointer part 3
Materi kuliah 23 pointer part 3Budi Yono
 
Pertemuan6.ppt
Pertemuan6.pptPertemuan6.ppt
Pertemuan6.ppt
ssuser3901ab
 
Download gratis modul c++
Download gratis modul c++Download gratis modul c++
Download gratis modul c++
Jajangtea Jajangtea
 
Pointer
PointerPointer
Modul 2 strukdat
Modul 2 strukdatModul 2 strukdat
Modul 2 strukdat
Vincentius Kristanto
 
Fungsi dan Array Pada C++
Fungsi dan Array Pada C++Fungsi dan Array Pada C++
Fungsi dan Array Pada C++
Toro Jr.
 

Similar to Materi kuliah 03 pointer part 1 (20)

Materi kuliah 03 pointer part 1
Materi kuliah 03   pointer part 1Materi kuliah 03   pointer part 1
Materi kuliah 03 pointer part 1
 
Materi kuliah 21 pointer part 1
Materi kuliah 21   pointer part 1Materi kuliah 21   pointer part 1
Materi kuliah 21 pointer part 1
 
Pertemuan 8.ppt
Pertemuan 8.pptPertemuan 8.ppt
Pertemuan 8.ppt
 
Algoritma&Pemrograman C++ Pertemuan 11
Algoritma&Pemrograman C++ Pertemuan 11Algoritma&Pemrograman C++ Pertemuan 11
Algoritma&Pemrograman C++ Pertemuan 11
 
Ix struktur pointer
Ix struktur pointerIx struktur pointer
Ix struktur pointer
 
Materi kuliah 23 pointer part 3
Materi kuliah 23   pointer part 3Materi kuliah 23   pointer part 3
Materi kuliah 23 pointer part 3
 
Materi kuliah 23 pointer part 3
Materi kuliah 23   pointer part 3Materi kuliah 23   pointer part 3
Materi kuliah 23 pointer part 3
 
Pertemuan5.ppt
Pertemuan5.pptPertemuan5.ppt
Pertemuan5.ppt
 
MAKALAH POINTER (DIKI CANDRA) (1).docx
MAKALAH POINTER (DIKI CANDRA) (1).docxMAKALAH POINTER (DIKI CANDRA) (1).docx
MAKALAH POINTER (DIKI CANDRA) (1).docx
 
PPT-UEU-Bahasa-Pemrograman-Pertemuan-9.pptx
PPT-UEU-Bahasa-Pemrograman-Pertemuan-9.pptxPPT-UEU-Bahasa-Pemrograman-Pertemuan-9.pptx
PPT-UEU-Bahasa-Pemrograman-Pertemuan-9.pptx
 
Structure and pointer
Structure and pointerStructure and pointer
Structure and pointer
 
Pertemuan 8
Pertemuan 8 Pertemuan 8
Pertemuan 8
 
Materi kuliah 23 pointer part 3
Materi kuliah 23   pointer part 3Materi kuliah 23   pointer part 3
Materi kuliah 23 pointer part 3
 
Materi kuliah 23 pointer part 3
Materi kuliah 23   pointer part 3Materi kuliah 23   pointer part 3
Materi kuliah 23 pointer part 3
 
Pertemuan6.ppt
Pertemuan6.pptPertemuan6.ppt
Pertemuan6.ppt
 
Download gratis modul c++
Download gratis modul c++Download gratis modul c++
Download gratis modul c++
 
Pointer
PointerPointer
Pointer
 
Modul 2 strukdat
Modul 2 strukdatModul 2 strukdat
Modul 2 strukdat
 
Modul 2 strukdat
Modul 2 strukdatModul 2 strukdat
Modul 2 strukdat
 
Fungsi dan Array Pada C++
Fungsi dan Array Pada C++Fungsi dan Array Pada C++
Fungsi dan Array Pada C++
 

More from Budi Yono

Materi kuliah 14 pernyataan dasar part 3
Materi kuliah 14   pernyataan dasar part 3Materi kuliah 14   pernyataan dasar part 3
Materi kuliah 14 pernyataan dasar part 3Budi Yono
 
Materi kuliah 01 array part 1
Materi kuliah 01   array part 1Materi kuliah 01   array part 1
Materi kuliah 01 array part 1Budi Yono
 
Materi kuliah 04 pointer part 2
Materi kuliah 04   pointer part 2Materi kuliah 04   pointer part 2
Materi kuliah 04 pointer part 2Budi Yono
 
Materi kuliah 05 pointer part 3
Materi kuliah 05   pointer part 3Materi kuliah 05   pointer part 3
Materi kuliah 05 pointer part 3Budi Yono
 
Materi kuliah 08 sort part 3
Materi kuliah 08   sort part 3Materi kuliah 08   sort part 3
Materi kuliah 08 sort part 3Budi Yono
 
Materi kuliah 02 array part 2
Materi kuliah 02   array part 2Materi kuliah 02   array part 2
Materi kuliah 02 array part 2Budi Yono
 
01 pengenalan algoritma
01   pengenalan algoritma01   pengenalan algoritma
01 pengenalan algoritmaBudi Yono
 
Materi kuliah 04 sekilas c++
Materi kuliah 04   sekilas c++Materi kuliah 04   sekilas c++
Materi kuliah 04 sekilas c++Budi Yono
 
05 pengenalan c++
05   pengenalan c++05   pengenalan c++
05 pengenalan c++Budi Yono
 
08 elemen dasar c++ part 3
08   elemen dasar c++ part 308   elemen dasar c++ part 3
08 elemen dasar c++ part 3Budi Yono
 
10 operator dan ungkapan part 2
10   operator dan ungkapan part 210   operator dan ungkapan part 2
10 operator dan ungkapan part 2Budi Yono
 
09 operator dan ungkapan part 1
09   operator dan ungkapan part 109   operator dan ungkapan part 1
09 operator dan ungkapan part 1Budi Yono
 
Materi kuliah 12 pernyataan dasar part 1
Materi kuliah 12   pernyataan dasar part 1Materi kuliah 12   pernyataan dasar part 1
Materi kuliah 12 pernyataan dasar part 1Budi Yono
 
02 flowchart
02   flowchart02   flowchart
02 flowchartBudi Yono
 
Materi kuliah 14 pernyataan dasar part 3
Materi kuliah 14   pernyataan dasar part 3Materi kuliah 14   pernyataan dasar part 3
Materi kuliah 14 pernyataan dasar part 3Budi Yono
 
Fungsi part 4
Fungsi part 4Fungsi part 4
Fungsi part 4Budi Yono
 
Fungsi part 3
Fungsi part 3Fungsi part 3
Fungsi part 3Budi Yono
 
Materi kuliah 15 array part 1
Materi kuliah 15   array part 1Materi kuliah 15   array part 1
Materi kuliah 15 array part 1Budi Yono
 
Materi kuliah 17 string
Materi kuliah 17   stringMateri kuliah 17   string
Materi kuliah 17 stringBudi Yono
 
Materi kuliah 18 fungsi part 1
Materi kuliah 18   fungsi part 1Materi kuliah 18   fungsi part 1
Materi kuliah 18 fungsi part 1Budi Yono
 

More from Budi Yono (20)

Materi kuliah 14 pernyataan dasar part 3
Materi kuliah 14   pernyataan dasar part 3Materi kuliah 14   pernyataan dasar part 3
Materi kuliah 14 pernyataan dasar part 3
 
Materi kuliah 01 array part 1
Materi kuliah 01   array part 1Materi kuliah 01   array part 1
Materi kuliah 01 array part 1
 
Materi kuliah 04 pointer part 2
Materi kuliah 04   pointer part 2Materi kuliah 04   pointer part 2
Materi kuliah 04 pointer part 2
 
Materi kuliah 05 pointer part 3
Materi kuliah 05   pointer part 3Materi kuliah 05   pointer part 3
Materi kuliah 05 pointer part 3
 
Materi kuliah 08 sort part 3
Materi kuliah 08   sort part 3Materi kuliah 08   sort part 3
Materi kuliah 08 sort part 3
 
Materi kuliah 02 array part 2
Materi kuliah 02   array part 2Materi kuliah 02   array part 2
Materi kuliah 02 array part 2
 
01 pengenalan algoritma
01   pengenalan algoritma01   pengenalan algoritma
01 pengenalan algoritma
 
Materi kuliah 04 sekilas c++
Materi kuliah 04   sekilas c++Materi kuliah 04   sekilas c++
Materi kuliah 04 sekilas c++
 
05 pengenalan c++
05   pengenalan c++05   pengenalan c++
05 pengenalan c++
 
08 elemen dasar c++ part 3
08   elemen dasar c++ part 308   elemen dasar c++ part 3
08 elemen dasar c++ part 3
 
10 operator dan ungkapan part 2
10   operator dan ungkapan part 210   operator dan ungkapan part 2
10 operator dan ungkapan part 2
 
09 operator dan ungkapan part 1
09   operator dan ungkapan part 109   operator dan ungkapan part 1
09 operator dan ungkapan part 1
 
Materi kuliah 12 pernyataan dasar part 1
Materi kuliah 12   pernyataan dasar part 1Materi kuliah 12   pernyataan dasar part 1
Materi kuliah 12 pernyataan dasar part 1
 
02 flowchart
02   flowchart02   flowchart
02 flowchart
 
Materi kuliah 14 pernyataan dasar part 3
Materi kuliah 14   pernyataan dasar part 3Materi kuliah 14   pernyataan dasar part 3
Materi kuliah 14 pernyataan dasar part 3
 
Fungsi part 4
Fungsi part 4Fungsi part 4
Fungsi part 4
 
Fungsi part 3
Fungsi part 3Fungsi part 3
Fungsi part 3
 
Materi kuliah 15 array part 1
Materi kuliah 15   array part 1Materi kuliah 15   array part 1
Materi kuliah 15 array part 1
 
Materi kuliah 17 string
Materi kuliah 17   stringMateri kuliah 17   string
Materi kuliah 17 string
 
Materi kuliah 18 fungsi part 1
Materi kuliah 18   fungsi part 1Materi kuliah 18   fungsi part 1
Materi kuliah 18 fungsi part 1
 

Materi kuliah 03 pointer part 1

  • 1.
  • 2. Alamat dan Pointer  Konsep pointer sebenarnya cukup sederhana.  Pointer sesungguhnya berisi alamat dari suatu data, bukan data sebagaimana variabel yang telah anda kenal.
  • 3. Alamat dan Pointer  Setiap byte di dalam memori komputer memiliki sebuah alamat.  Di dalam memori inilah variabel disimpan.  Tetapi tentu saja pemrogram tidak perlu menyebutkan alamat dari suatu variabel secara explisit.  Pada saat program dimuat di dalam memori, variabel akan diletakkan dengan sendirinya pada alamat tertentu.
  • 4. Alamat dan Pointer  Suatu pointer di dalam program dimaksudkan untuk menunjuk suatu alamat memori.  Misalnya kalau pint adalah pointer, dan vint adalah variabel yang terletak di memori beralamat 0xfff2, pointer pint dapat diatur agar menunjuk ke variabel vint.
  • 6. Mengetahui Alamat Suatu Variabel  Alamat suatu variabel dapat diketahui dengan mudah, caranya tambahkan operator alamat, berupa simbol & di depan nama variabel.  Dengan mengirimkan ke cout, alamat dari suatu variabel akan ditampilkan ke layar.
  • 7. Mengetahui Alamat Suatu Variabel #include <iostream.h> #include <conio.h> void main() { int bil1 = 5; float bil2 = 7.5; double bil3 = 17.777; cout<<"Isi variabel : "<<endl; cout<<"bil1 = "<<bil1<<endl; cout<<"bil2 = "<<bil2<<endl; cout<<"bil3 = "<<bil3<<endl; cout<<endl; cout<<"Alamat variabel : "<<endl; cout<<"bil1 = "<<&bil1<<endl; cout<<"bil2 = "<<&bil2<<endl; cout<<"bil3 = "<<&bil3<<endl; getch(); }
  • 8. Mengetahui Alamat Suatu Variabel  Perlu diketahui, notasi 0x pada hasil program di depan menyatakan notasi heksadesimal.  Pada C++, tanda & juga dipakai untuk referensi (alias dari suatu variabel).
  • 9. Mendefinisikan Variabel Pointer  Format :  tipe_data dapat berupa sembarang tipe data seperti halnya variabel bukan pointer.  nama_variabel adalah variabel pointer. tipe_data *nama_variabel
  • 10. Mengisi Variabel Pointer  Supaya variabel pointer menunjuk ke variabel lain, mula-mula harus diisi dengan alamat dari variabel yang hendak ditunjuk.  Misalnya terdapat pendefinisian seperti berikut :  Variabel pint dapat diatur agar menunjuk ke vint dengan cara sebagai berikut :  Pernyataan diatas berarti : “pint diisi dengan alamat dari vint”. int vint = 55; int *pint; pint = &vint;
  • 11. #include <iostream.h> #include <conio.h> void main() { int vint = 55; int *pint; pint = &vint; //pointer menunjuk ke vint cout<<"Alamat vint = "<<&vint<<endl; cout<<"Isi pint = "<<pint<<endl; getch(); }
  • 12. Mengisi Variabel Pointer  Pada contoh di depan :  Baris tersebut ternyata menampilkan isi dari pointer itu sendiri, bukan isi dari variabel vint. cout<<"pint = "<<pint<<endl;
  • 13. Mengakses Nilai Yang Ditunjuk Pointer  Berdasarkan contoh di depan, nilai dari vint dapat diakses melalui pint setelah pernyataan dibawah ini dijalankan.  Cara mengaksesnya adalah dengan melibatkan operator “tak langsung” yang berupa simbol * dan diletakkan di depan nama variabel pointer. Contoh :  Berarti “nilai yang ditunjuk oleh pint”. pint = &vint; *pint;
  • 14. #include <iostream.h> #include <conio.h> void main() { int vint = 55; int *pint; pint = &vint; //pointer menunjuk ke vint cout<<"Isi vint = "<<vint<<endl; cout<<"Alamat vint = "<<&vint<<endl; cout<<"Isi pint = "<<pint<<endl; cout<<"Nilai yang ditunjuk oleh pint : "<<*pint<<endl; getch(); }
  • 15. Mengakses Nilai Yang Ditunjuk Pointer  Program di depan menunjukkan pengaksesan terhadap vint dapat dilakukan melalui *pint.  Contoh berikut menunjukkan isi vint diubah melalui *pint.
  • 16. #include <iostream.h> #include <conio.h> void main() { int vint = 55; int *pint; pint = &vint; //pointer menunjuk ke vint cout<<"Isi vint semula = "<<vint<<endl; *pint = 77; cout<<"Isi vint sekarang = "<<vint<<endl; getch(); }
  • 17. Pointer Void  Pada contoh-contoh program di depan telah ditunjukkan pointer yang menunjuk ke tipe data tertentu.  Sebenarnya juga dimungkinkan untuk membuat pointer tak bertipe.  Caranya yakni dengan meletakkan kata kunci void di bagian penentu tipe pointer. Contoh :  Suatu pointer void seperti contoh diatas dapat digunakan untuk menunjuk ke sembarang tipe data. void *ptr;
  • 18. #include <iostream.h> #include <conio.h> void main() { int bil1 = 55; float bil2 = 33.45; void *ptr; ptr = &bil1; //bisa menunjuk ke int cout<<"Nilai yang ditunjuk ptr : "<<*(int*)ptr<<endl; ptr = &bil2; //bisa menunjuk ke float cout<<"Nilai yang ditunjuk ptr : "<<*(float*)ptr<<endl; getch(); }
  • 19. Pointer Void  Pada program di depan, bentuk berikut perlu diberikan :  Ini disebabkan C++ tidak tahu maksud *ptr mengingat ptr adalah pointer void.  Cara ini bukan hanya berlaku jika kita bermaksud mengambil nilai yang ditunjuk oleh ptr tapi juga ketika kita mengubahnya.  Seperti contoh program berikut : *(int*)ptr *(float*)ptr
  • 20. #include <iostream.h> #include <conio.h> void main() { int bilangan = 55; void *ptr; ptr = &bilangan; cout<<"bilangan semula : "<<bilangan<<endl; *(int*)ptr = 77; //mengubah nilai bilangan melalui ptr cout<<"bilangan sekarang : "<<bilangan<<endl; getch(); }