Algoritma Pointer
Algoritma Pointer
POINTER
Algoritma dan
Pemrograman 2
InfoTI_unpam informatika.unpam.ac.id agus heri yunial Agus Heri Yunial,S.Kom, M.Kom.
Tujuan Pembelajaran
• Mahasiswa diharapkan mampu mengerti definisi pointer dan dapat
menggunakan dalam program sederhana.
1
11-Sep-23
Definisi
• Tiap variabel yang didefinisikan di program akan diberikan satu tempat di memori. Nilai
variabel disimpan di lokasi tersebut.
• Untuk melihat di lokasi mana nilai ini disimpan, dapat dipakai operator & atau reference,
yaitu mendapatkan alamat dari variabel tersebut.
• Contoh:
int NilaiUjian = 75; 0x22fe4c
cout << &NilaiUjian;
• Kita dapat menyimpan alamat ini dalam suatu variabel lain. Variabel tempat kita
menyimpan alamat variabel lain disebut pointer.
• Dengan kata lain, pointer adalah suatu variable yang berisi alamat memori dari suatu
variable lain.
Program Studi Teknik Informatika, Universitas Pamulang
Pointer
• Bentuk umum deklarasi variabel pointer menggunakan operator *
atau dereference. Bentuk umumnya sebagai berikut.
tipe_data* namaVariabel
• Contoh :
int* pNilai;
• Ada tiga cara penulisan deklarasi pointer. Perbedaan ada pada
penulisan spasi.
int* pNilai, int *pNilai, int * pNilai;
• Variabel dan pointernya harus mempunyai tipe data yang sama.
Program Studi Teknik Informatika, Universitas Pamulang
2
11-Sep-23
Contoh 1
#include <iostream>
using namespace std; Output:
int main() {
0x22fe4c
int NilaiUjian = 75; 0x22fe60
int *pNilai; 0x22fe4c
pNilai=&NilaiUjian; 75
Contoh 2
#include <iostream>
using namespace std;
int main(void)
Output:
{
int A=25; // deklarasi integer A = 25
int* pA; // deklarasi pointer ke integer &A = 0x22fe3c
pA=&A; // pointer ke alamat A pA = 0x22fe3c
cout<<"A = "<<A<<endl; // tampilkan nilai A &pA = 0x22fe30
cout<<"&A = "<<&A<<endl; // tampilkan alamat A *pA = 25
cout<<"pA = "<<pA<<endl; //tampilkan nilai pA
cout<<"&pA = "<<&pA<<endl; //tampilkan alamat pA
cout<<"*pA = "<<*pA<<endl; //nilai yang ditunjuk pA
}
3
11-Sep-23
Contoh 3
#include <iostream>
using namespace std;
int main(void)
{ Output:
int A=25; // deklarasi integer
int* pA; // deklarasi pointer ke integer A=25
pA=&A; // mengarahkan pointer ke alamat A *pA=25
cout<<"A="<<A<<endl; // tampilkan nilai A A=35
cout<<"*pA="<<*pA<<endl; //nilai yang ditunjuk pA *pA=35
A=35; // nilai A diubah menjadi 35 A=45
cout<<"A="<<A<<endl; // tampilkan nilai A *pA=45
cout<<"*pA="<<*pA<<endl; //nilai yang ditunjuk pA
*pA+=10; // nilai A ditambah 10
cout<<"A="<<A<<endl; // tampilkan nilai A
cout<<"*pA="<<*pA<<endl; //nilai yang ditunjuk pA
}
Contoh 4
#include <iostream>
using namespace std;
int main(void)
{
string makanan = "Bakso"; // Tipe string Output:
string* ptr = &makanan; // variabel pointer
cout << makanan << endl; // tampilkan nilai Bakso
cout << *ptr << endl; // tampilkan nilai Bakso
cout << &makanan << endl; // tampilkan alamat 0x22fe20
0x22fe20
cout << ptr << endl; // tampilkan alamat
}
4
11-Sep-23
Latihan 1
int panjang=25, lebar=11, A=10; Ditanya :
int* pA;
pA = &panjang; 1. Apa tampilan yang dihasilkan oleh potongan program
cout<<"Nilai: "<<*pA<<endl;
di samping?
pA = &lebar;
2. Jelaskan mengapa 4 perintah yang sama cout<<"Nilai:
cout<<"Nilai: "<<*pA<<endl;
"<<*pA<<endl; dapat menghasilkan tampilan yang
pA = &A;
berbeda-beda!
cout<<"Nilai: "<<*pA<<endl;
A = panjang * lebar;
cout<<"Nilai: "<<*pA<<endl;
Latihan 2
• Source A : Ditanya :
double panjang=25;
int *pA; 1. Apakah ada kesalahan penulisan code pada source A
pA = &panjang; atau source B? Jika ada tuliskan code yang benar!
2. Tulis source A dan B secara lengkap sehingga
• Source B: menampilkan output *pA, pA, panjang dan &panjang!
int panjang=25;
int* pA, pB;
pA = &panjang;
pB = &panjang;
10
5
11-Sep-23
Kesimpulan
• Pointer adalah suatu variable yang berisi alamat memori dari
suatu variable lain.
• Bentuk umum deklarasi variabel pointer menggunakan operator
* atau dereference. Bentuk umumnya sebagai berikut.
tipe_data* namaVariabel
• Ada tiga cara penulisan deklarasi pointer. Perbedaan ada pada
penulisan spasi.
int* pNilai, int *pNilai, int * pNilai;
• Variabel dan pointernya harus mempunyai tipe data yang sama.
11
TERIMA KASIH, MAHASISWA TEKNIK INFORMATIKA UNGGUL, ANDA SUDAH BELAJAR DENGAN LUAR BIASA
12
6
11-Sep-23
Tugas
Buatlah contoh penggunaan pointer dalam C++!
13