Pointer II
Pointer II
Ex
POINTER te
nd
ed
Cepi Ramdani S.Kom., M.Eng
Tujuan
3 Pointer to Pointer
ONE
Recalling
POINTER
Definition
...
7. Setelah pointer diisi dengan ...
alamat variabel yang sesuai. Apakah
...
hasil/output dari perintah berikut ?
FEE0 3456
cout<< *pointerB<<endl; ... 85.75 xxx luas = 85.75;
cout<< *pointerA<<endl;
cout<< *pointerC<<endl; FFFF FFFD
FFFF FFFE
FFFF FFFF True xxx karnivora = true;
Pointer
Alamat Ruang
Hexadecimal 0 1 2 3 4 5 6 7
Menampilkan nilai variabel 0 FFFF FFFF xxx *pointerX;
yang dirujuk oleh suatu
pointer 1 pointerX = &karnivora;
2
Berdasarkan ilustrasi disamping 3
dan keterangannya jawablah 4 179 xxx tinggi = 179;
pertanyaan berikut.
...
13. Tulis sintak program disamping pada IDE bool menyala = true;
C++ seperti CodeBlock atau semisalnya, bool *pointer_menyala;
kemudian jalankan dan lakukan analisa. Lalu
berikan kesimpulan. int main()
{
pointer_menyala = &menyala;
cout<<&menyala<<endl;
cout<<pointer_menyala<<endl;
cout<<pointer_menyala + 1<<endl;
cout<<pointer_menyala - 1<<endl;
return 0;
}
Pointer
Operasi penjumlahan dan
#include <iostream>
14. Tulis sintak program disamping pada IDE int harga = 150;
C++ seperti CodeBlock atau semisalnya, int *pointer_harga;
kemudian jalankan dan lakukan analisa. Lalu
berikan kesimpulan. int main()
{
pointer_harga = &harga;
cout<<&harga<<endl;
cout<<pointer_harga<<endl;
cout<<pointer_harga + 1<<endl;
cout<<pointer_harga - 1<<endl;
return 0;
}
Pointer
Alamat Ruang
Hexadecimal 0 1 2 3 4 5 6 7
Operasi penjumlahan dan 0
pointerX = &lapar;
pengurangan pada pointer
1 0x4 xxx *pointerX;
Berdasarkan ilustrasi disamping 2 cout<<pointerX - 2;
dan keterangannya jawablah 3
pertanyaan berikut.
4 True xxx lapar = true;
5
cout<<pointerX - 2;
6 cout<<pointerX + 2;
Apa hasil/keluaran dari sintak tsb ? ...
FEE0 3456
...
cout<<pointerX + 2;
FFFF FFFD
Apa hasil/keluaran dari sintak tsb ? FFFF FFFE
FFFF FFFF
Pointer
Alamat Ruang
Hexadecimal 0 1 2 3 4 5 6 7
Operasi penjumlahan dan 0
pengurangan pada pointer
1
2 0x5 xxx *pointerZ;
pointerZ = &volume;
3
Berdasarkan ilustrasi disamping
dan keterangannya jawablah 4
pertanyaan berikut.
5
6
cout<<pointerZ + 1;
7 173.75 xxx volume = 173.75;
12
Pointer
#include <iostream>
return 0;
}
Pointer
Alamat Ruang Bagaimana ilustrasi
Hexadecimal 0 1 2 3 4 5 6 7 variabel array didalam
memori ?
Pointer points to 0
an Array Variable 1
Indeks Array
0 2 False bool nilai[5] = {0,1,0,1,1};
1 3 True
2 4 False
3 5 True
4 6 True
...
Bagaimana memasukkan alamat
FEE0 3456
memori variabel array kedalam
pointer ? ...
FFFF FFFD bool *pointer_nilai;
FFFF FFFE
FFFF FFFF
Pointer
Alamat Ruang Bagaimana ilustrasi
Hexadecimal 0 1 2 3 4 5 6 7 variabel array didalam
memori ?
Pointer points to 0
an Array Variable 1
Indeks Array
0 2 False bool nilai[5] = {0,1,0,1,1};
1 3 True
2 4 False
3 5 True
4 6 True
...
Bagaimana memasukkan alamat
memori variabel array kedalam FEE0 3456
pointer ? ...
X
& FFFF FFFF
Pointer
Pointer points to
#include <iostream>
return 0;
}
Pointer
Pointer points to
an Array Variable
POINTER to POINTER
POINTER menunjuk kepada POINTER lain
Pointer
How can it be done ?
#include <iostream>
return 0;
}
Pointer
Alamat Ruang
Hexadecimal 0 1 2 3 4 5 6 7
How can it be done ? 0
1 True bool nilai = true;
2
3
4 bool *pointer_nilaiA;
5
Bagaimana mengisi 6 bool *pointer_nilaiB;
pointer dengan pointer ? ...
FEE0 3456
...
FFFF FFFD
FFFF FFFE
FFFF FFFF
Pointer
Alamat Ruang
Hexadecimal 0 1 2 3 4 5 6 7
How can it be done ? 0
1 True bool nilai = true;
2
3
4 0x1 bool *pointer_nilaiA;
5 pointer_nilaiA = &nilai;
Bagaimana mengisi 6 bool *pointer_nilaiB;
pointer dengan pointer ? ...
FEE0 3456
...
FFFF FFFD
FFFF FFFE
FFFF FFFF
Pointer
Alamat Ruang
Hexadecimal 0 1 2 3 4 5 6 7
How can it be done ? 0
1 True bool nilai = true;
2
3
4 0x1 bool *pointer_nilaiA;
5 pointer_nilaiA = &nilai;
Bagaimana mengisi 6 0x1 bool *pointer_nilaiB;
pointer dengan pointer ? ... pointer_nilaiB = pointer_nilaiA;
FEE0 3456
...
FFFF FFFD
FFFF FFFE
FFFF FFFF
Pointer
Alamat Ruang
Hexadecimal 0 1 2 3 4 5 6 7
How can it be done ? 0
1 True bool nilai = true;
2
pointer_nilaiA = &nilai;
3
cout<<pointer_nilaiA<<endl; ? ...
cout<<pointer_nilaiB<<endl; ? FFFF FFFD
FFFF FFFE
FFFF FFFF
#include <iostream>
Pointer
Mengubah nilai variabel yang
using namespace std;
bool nilai = true;
bool *pointer_nilaiA;
ditunjuk pointer bool *pointer_nilaiB;
int main()
{
pointer_nilaiA = &nilai;
20. Tulis sintak program disamping pointer_nilaiB = pointer_nilaiA;
pada IDE C++ seperti CodeBlock
atau semisalnya, kemudian jalankan cout<<&nilai<< " Nilai : "<<nilai<<endl;
dan lakukan analisa. Lalu berikan cout<<pointer_nilaiA<<" Nilai : "<<*pointer_nilaiA<<endl;
kesimpulan. cout<<pointer_nilaiB<<" Nilai : "<<*pointer_nilaiB<<endl;
*pointer_nilaiB = false;
cout<<&nilai<< " Nilai : "<<nilai<<endl;
cout<<pointer_nilaiA<<" Nilai : "<<*pointer_nilaiA<<endl;
cout<<pointer_nilaiB<<" Nilai : "<<*pointer_nilaiB<<endl;
return 0;
}
Materi pointer ini adalah materi dasar yang masih dapat
dikembangkan lebih jauh lagi, jangan malas untuk
melakukan eksplorasi dan eksperimen.
THANKS