SlideShare a Scribd company logo
1
POINTER
 Pointer merupakan satu nilai yang menunjuk alamat
(address) pada lokasi suatu memori komputer. Lokasi memori
tersebut mungkin di wakili oleh sebuah variabel yang mempunyai
nama, atau mungkin juga lokasi bebas dalam memori
 Pointer merupakan alamat dari suatu data, bukan data seperti pada
variabel yang telah di kenal
Syntax :
tipe_data *Nama_Pointer; tipe_data *Nama_Pointer = &Variabel;
Atau
tipe_data *Nama_variabel
Operator Pointer
 Operator pada pointer terdiri dari 2 yaitu:
1. Operator &
Operator & bersifat unary (hanya memerlukan satu operand saja)
Operator & menghasilkan alamat dari operandnya
2. Operator *
Operator * bersifat unary (hanya memerlukan satu operand saja)
Operator * menghasilkan nilai yang berada pada sebuah alamat
Contoh :
int A=9;
int *ptr A;
ptrA = &A;
atau
float B=9.99;
float *ptrB = &B;
2
3
dimana:
 ptrA merupakan pointer to integer (berisi alamat dari variabel A).
 ptrB merupakan pointer to float (berisi alamat dari variabel B).
 *ptrA berisi memori yang ditunjuk oleh ptrA (berisi nilai
bilangan integer = 9).
 *ptrB berisi memori yang ditunjuk oleh ptrB (berisi nilai
bilangan pecahan = 9.99).
Contoh Program C++ :
#include <iostream.h>
#include <conio.h>
void main()
{ int alif = 5;
float ba =7.5;
double ta = 17.777;
clrscr();
cout << “Isi variabel : “ << endl;
cout << “alif =“ <<alif<<endl;
cout << “ba =“ <<ba<<endl;
cout << “ta =“ <<ta<<endl;
cout << “n Alamat variabel : “ << endl;
cout << “alif =“ <<&alif<<endl;
cout << “ba =“ <<&ba<<endl;
cout << “ta =“ <<&ta<<endl;
}
Contoh 2:
#include <iostream.h>
#include <conio.h>
void main()
{ int vint = 55;
int * pint;
clrscr();
pint = &vint;
cout<<“alamat vint =“<<&vint<<endl;
cout<<“pint = “<<pint<<endl;
}
4
Mengakses Nilai Yang Di Tunjuk Pointer
#include <iostream.h>
#include <conio.h>
void main()
{ int vint = 55;
int * pint;
clrscr();
pint = &vint;
cout<<“Nilai yang di tunjuk oleh pint =“<<*pint<<endl;
}
5
 Pointer Void
pada contoh diatas telah diberikan beberapa variabel pointer yang menunjuk ke tipe
data tertentu. Namun dimungkinkan untuk membuat pointer yang tidak bertipe. Caranya
dengan meletakkan kata kunci void pada bagian penentu tipe pointer. contoh : void *ptr;
merupakan pernyataan untuk mendefinisikan ptr sebagai variabel pointer void yang
dapat menunjukkan ke sembarang tipe data.
Contoh :
#include <iostream.h>
#include <conio.h>
void main()
{ clrscr();
void *ptr; // pointer tak bertipe
int vint = 50;
float vfl = 51.5;
ptr = &vint;
cout<<“Nilai yang di tunjuk oleh ptr =“<<*(int*)ptr<<endl; //ptr adl pointer void mk
harus //menyebutkan tipe data yg diakses melalui type cast
ptr = &vfl;
cout<<“Nilai yang di tunjuk oleh ptr =“<<*(float*)ptr<<endl;
}
6
7
Pointer – Array :
 Mempunyai hubungan yang dekat dimana secara internal array juga
menyatakan alamat. Digunakan untuk melakukan akses elemen
array.
Syntax :
tipe_data *Nama_Pointer = Nama_Array;
Contoh didefinisikan :
int tgl_lahir[10] = {24,6,1965};
dan
int *ptgl;
agar ptgl menunjuk ke array mk diperlukan pernyataan
ptgl = tgl_lahir;
Perhatikan pernyataan diatas dimana tidak ada tanda & di depan
tgl_lahir, padahal beberapa contoh di depan menggunakan format
Ptr = & variabel
8
Contoh Program C++ :
#include <iostream.h>
#include <conio.h>
void main()
{ clrscr();
int tgl_lahir[ ] = {24, 6, 1965};
int *ptgl;
ptgl = tgl_lahir;
for (int I = 0; i<3; i++)
cout<<*(ptgl+i)<<endl; // c++ mengetahui bahwa tgl_lahir+(ukuran tipe elemen tgl_lahir)+1
}
Contoh Program C++ :
#include <iostream.h>
#include <conio.h>
void main()
{ clrscr();
int tgl_lahir[ ] = {24, 6, 1965};
int *ptgl;
ptgl = tgl_lahir; // ptgl menunjuk ke elemen pertama dari array
for (int I = 0; i<3; i++)
{ cout<<“ptgl =“<<ptgl<<endl;
cout<<“*ptgl =“<<*ptgl<<endl;
ptgl++; // menunjuk ke elemen berikutnya
}
}
9
Pointer – string:
Contoh :
#include <iostream.h>
#include <conio.h>
void main()
{ clrscr();
char *ptokoh = “ gatotkaca”;
cout<< ptokoh<<endl;
}
Pada contoh diatas akan menyebabkan c++:
 Mangalokasikan ptokoh sebagai variabel pointer yang menunjuk ke data bertipe char
dan menempatkan konstanta string “ gatotkaca” ke suatu lokasi di memori komputer
 Kemudian ptokoh akan menunjuk ke lokasi string “gatotkaca”
Pernyataan diatas menyerupai pernyataan:
Char tokoh[ ] = “ gatotkaca”
Perbedaannya :
 Ptokoh adalah pointer yang dengan mudah dapat diatur agar menunjuk ke data string
 Tokoh adalah array yang menyatakan alamat yang konsatan tidak dapat di ubah.
Yang dapat diubah adalah elemen arraynya
10
#include <iostream.h>
#include <conio.h>
void main()
{ clrscr();
char tokoh[ ] = “ gatotkaca”;
char *ptokoh = “ gatotkaca”;
cout<< “tokoh = “<<tokoh<<endl;
cout<< “ptokoh =“<<ptokoh<<endl;
// tokoh ++; //tidak diperkenankan
Ptokoh++; //diperkenankan
Cout<<“ptokoh=“<<ptokoh<<endl;
}
Pointer dan Fungsi
 Pointer biasa di gunakan di dalam argumen fungsi apabila nilai argumen
dimaksudkan untuk di ubah di dalam fungsi
Pointer sebagai Argument Fungsi
#include <iostream.h>
#include <conio.h>
Void ubah_nilai(int&x);
Void main()
{
clrscr();
int pinokio = 80;
cout<<“nilai mula-mula untuk pinokio :”<<pinokio<<endl;
ubah_nilai(pinokio);
cout<<“nilai untuk pinokio sekarang :”<<pinokio<<endl;
}
Void ubah_nilai(int&x)
{ x=95;
}
11
 Pointer sebagai keluaran Fungsi
Suatu fungsi dapat dibuat agar keluarannya berupa pointer.
Misal :
#include <iostream.h>
#include <conio.h>
Char *nama_bulan(int n); // protipe
void main()
{ int bln;
clrscr();
cout<<“Bulan(1..12):”;
cin>>bln;
cout<<nama_bulan(bln)<<endl;
}
Char *nama_bulan(int n)
{
12
static char *bulan [ ] =
{
“kode bulan salah”,
“Januari”,
“Februari”,
“Maret”,
“April”,
“Mei”,
“Juni”,
“Juli”,
“Agustus”,
“September”,
“Oktober”,
“November”,
“Desember”
};
return((n<1||n>12)?bulan[0] : bulan[n]);
}
13
 Pada definisi fungsi diatas,
Char *nama_bulan(int n)
Menyatakan bahwa nilai balik fungsi nama_bulan() berupa pointer yang
menunjuk ke data bertipe char (string).
Di bagian akhir fungsi, pernyataan :
return((n<1||n>12)?bulan[0] : bulan[n]);
Menyatakan nilai balik fungsi berupa pointer menunjuk ke :
 String “kode bulan salah”(bulan[0]), jika argumen fungsi bernilai kurang dari
1 atau lebih besar daripada 12
 Bulan[n], kalau n bernilai antara 1 sampai dengan 12
14

More Related Content

PPT
Pointer
PPT
Pointer
PDF
Pointer c++
PPT
Materi kuliah 23 pointer part 3
PPT
Materi kuliah 23 pointer part 3
PDF
6. pemrograman pointer
PPT
Spt3102 fungsi(0910)
PDF
Pertemuan 6 Fungsi String
Pointer
Pointer
Pointer c++
Materi kuliah 23 pointer part 3
Materi kuliah 23 pointer part 3
6. pemrograman pointer
Spt3102 fungsi(0910)
Pertemuan 6 Fungsi String

What's hot (14)

PDF
Pertemuan 10 Pointer dan Macro
PPTX
Materi kuliah 19 fungsi part 2
PPTX
Materi kuliah 19 fungsi part 2
PDF
Tugas modul fungsi
PDF
Pertemuan 12 Structure
PPT
Pertemuan II Function
PPT
Function
PPT
PPTX
String baru
PPT
Pertemuan 11 : Algoritma & Pemrograman
PDF
Ix struktur pointer
PPTX
Materi kuliah 03 pointer part 1
DOCX
Fungsi dan Array Pada C++
Pertemuan 10 Pointer dan Macro
Materi kuliah 19 fungsi part 2
Materi kuliah 19 fungsi part 2
Tugas modul fungsi
Pertemuan 12 Structure
Pertemuan II Function
Function
String baru
Pertemuan 11 : Algoritma & Pemrograman
Ix struktur pointer
Materi kuliah 03 pointer part 1
Fungsi dan Array Pada C++
Ad

Viewers also liked (7)

PPTX
My trip to new york city
PDF
Каталог 16 2014
PPTX
Uberlina
PPTX
Lesson 5 labor
DOCX
Perintah Internal command
PDF
MEDICARE HEALTHCARE CHARGE DISPARITY ANALYSIS
PDF
Wisdom letter2
My trip to new york city
Каталог 16 2014
Uberlina
Lesson 5 labor
Perintah Internal command
MEDICARE HEALTHCARE CHARGE DISPARITY ANALYSIS
Wisdom letter2
Ad

Similar to Pointer (20)

PPT
Materi kuliah 23 pointer part 3
 
PPT
Materi kuliah 23 pointer part 3
PDF
MATERI POINTER TKJ K13
PPTX
Materi kuliah 05 pointer part 3
PPTX
Materi kuliah 05 pointer part 3
 
PPTX
Materi kuliah 05 pointer part 3
PPTX
Materi kuliah 03 pointer part 1
 
PPTX
Materi kuliah 03 pointer part 1
PPT
Pointer.ppt
PPT
Pertemuan5.ppt
PPT
PPT
Materi kuliah 21 pointer part 1
PPTX
pertemuan 3.pptx
PPT
Pertemuan6.ppt
PPT
Materi kuliah 21 pointer part 1
PPT
Materi kuliah 21 pointer part 1
 
PPTX
Kelompok 6 pemrograman dasasr c++(1).pptx
PDF
Pemrograman C++ - Pointer
PPTX
Structure and pointer
PPTX
ppt array di kirim.pptx ppt array........
Materi kuliah 23 pointer part 3
 
Materi kuliah 23 pointer part 3
MATERI POINTER TKJ K13
Materi kuliah 05 pointer part 3
Materi kuliah 05 pointer part 3
 
Materi kuliah 05 pointer part 3
Materi kuliah 03 pointer part 1
 
Materi kuliah 03 pointer part 1
Pointer.ppt
Pertemuan5.ppt
Materi kuliah 21 pointer part 1
pertemuan 3.pptx
Pertemuan6.ppt
Materi kuliah 21 pointer part 1
Materi kuliah 21 pointer part 1
 
Kelompok 6 pemrograman dasasr c++(1).pptx
Pemrograman C++ - Pointer
Structure and pointer
ppt array di kirim.pptx ppt array........

More from lembayungtirta (20)

DOCX
Tgs orkom
DOCX
Soal organisasi komputer
DOC
Soal essai orkom 09
DOC
Sap 0 rkom
PPT
Ok 12 perform_1
PPT
Ok 10 org cpu
PPT
Ok 11 operasi cpu
PPT
Ok 9 pembagian
PPT
Ok 8 perkalian
PPT
Ok 6 alu
PPT
Ok 5 float
PPT
Ok 4 pos_neg
PPT
Ok 3 rep data2
PPT
Ok 2 rep data1
PPT
Ok 1 intro
DOC
Listrik8
DOCX
Listrik10
DOCX
Listrik7.
DOCX
Listrik6.
DOCX
Listrik5
Tgs orkom
Soal organisasi komputer
Soal essai orkom 09
Sap 0 rkom
Ok 12 perform_1
Ok 10 org cpu
Ok 11 operasi cpu
Ok 9 pembagian
Ok 8 perkalian
Ok 6 alu
Ok 5 float
Ok 4 pos_neg
Ok 3 rep data2
Ok 2 rep data1
Ok 1 intro
Listrik8
Listrik10
Listrik7.
Listrik6.
Listrik5

Recently uploaded (20)

PPTX
materi presentasi sustainable development
PPTX
Modul 4 Asesmen-dalam-Pembelajaran-Mendalam.pptx
PDF
PPT Yudisium Ceremony Agusus 2025 - new. pdf
PPTX
Rancangan Aktualisasi Latsar CPNS Kementerian Agama 2025.pptx
PPTX
Paparan Penyesuaian Juknis BOSP Tahun 2025
DOC
RPP Deep Learning _ MGMP Wilayah 1 (1).doc
PPT
Kamera foto dan editing foto pengenalan fotografi
DOCX
Modul Ajar Deep Learning Prakarya Kerajinan Kelas 12 SMA Terbaru 2025
PPTX
Modul 3 Prinsip-Pembelajaran-Mendalam.pptx
PPTX
Konsep & Strategi Penyusunan HPS _Pelatihan "Ketentuan TERBARU Pengadaan" (...
PDF
System Requirement Enterprise Resource Planning Peternakan Ayam dan Daftar Ju...
PPTX
Materi Besaran, Satuan, Pengukuran.pptx
PPTX
Patuh_Terhadap_Norma_PPKn_Kelas_7 oke.pptx
PPTX
Pembelajaran-Mendalam-RTL-dan-Umpan-Baliknya.pptx
PDF
GUIDE BOOK DMH SCHOLARSHIP...............................
PDF
AI-Driven Intelligence and Cyber Security: Strategi Stabilitas Keamanan untuk...
PPTX
SISTEM POLITIK DAN PEMERINTAHAN INDONESIA.pptx
PDF
Laporan On The Job TRaining PM KS Siti Hikmah.pdf
PDF
Sosialisasi Menu DAK NF TA 2026 Promkeskom.pdf
PPTX
SEJARAH BENDERA MERAH PUTIH - MATERI PRAMUKA
materi presentasi sustainable development
Modul 4 Asesmen-dalam-Pembelajaran-Mendalam.pptx
PPT Yudisium Ceremony Agusus 2025 - new. pdf
Rancangan Aktualisasi Latsar CPNS Kementerian Agama 2025.pptx
Paparan Penyesuaian Juknis BOSP Tahun 2025
RPP Deep Learning _ MGMP Wilayah 1 (1).doc
Kamera foto dan editing foto pengenalan fotografi
Modul Ajar Deep Learning Prakarya Kerajinan Kelas 12 SMA Terbaru 2025
Modul 3 Prinsip-Pembelajaran-Mendalam.pptx
Konsep & Strategi Penyusunan HPS _Pelatihan "Ketentuan TERBARU Pengadaan" (...
System Requirement Enterprise Resource Planning Peternakan Ayam dan Daftar Ju...
Materi Besaran, Satuan, Pengukuran.pptx
Patuh_Terhadap_Norma_PPKn_Kelas_7 oke.pptx
Pembelajaran-Mendalam-RTL-dan-Umpan-Baliknya.pptx
GUIDE BOOK DMH SCHOLARSHIP...............................
AI-Driven Intelligence and Cyber Security: Strategi Stabilitas Keamanan untuk...
SISTEM POLITIK DAN PEMERINTAHAN INDONESIA.pptx
Laporan On The Job TRaining PM KS Siti Hikmah.pdf
Sosialisasi Menu DAK NF TA 2026 Promkeskom.pdf
SEJARAH BENDERA MERAH PUTIH - MATERI PRAMUKA

Pointer

  • 1. 1 POINTER  Pointer merupakan satu nilai yang menunjuk alamat (address) pada lokasi suatu memori komputer. Lokasi memori tersebut mungkin di wakili oleh sebuah variabel yang mempunyai nama, atau mungkin juga lokasi bebas dalam memori  Pointer merupakan alamat dari suatu data, bukan data seperti pada variabel yang telah di kenal Syntax : tipe_data *Nama_Pointer; tipe_data *Nama_Pointer = &Variabel; Atau tipe_data *Nama_variabel
  • 2. Operator Pointer  Operator pada pointer terdiri dari 2 yaitu: 1. Operator & Operator & bersifat unary (hanya memerlukan satu operand saja) Operator & menghasilkan alamat dari operandnya 2. Operator * Operator * bersifat unary (hanya memerlukan satu operand saja) Operator * menghasilkan nilai yang berada pada sebuah alamat Contoh : int A=9; int *ptr A; ptrA = &A; atau float B=9.99; float *ptrB = &B; 2
  • 3. 3 dimana:  ptrA merupakan pointer to integer (berisi alamat dari variabel A).  ptrB merupakan pointer to float (berisi alamat dari variabel B).  *ptrA berisi memori yang ditunjuk oleh ptrA (berisi nilai bilangan integer = 9).  *ptrB berisi memori yang ditunjuk oleh ptrB (berisi nilai bilangan pecahan = 9.99). Contoh Program C++ : #include <iostream.h> #include <conio.h> void main() { int alif = 5; float ba =7.5; double ta = 17.777; clrscr();
  • 4. cout << “Isi variabel : “ << endl; cout << “alif =“ <<alif<<endl; cout << “ba =“ <<ba<<endl; cout << “ta =“ <<ta<<endl; cout << “n Alamat variabel : “ << endl; cout << “alif =“ <<&alif<<endl; cout << “ba =“ <<&ba<<endl; cout << “ta =“ <<&ta<<endl; } Contoh 2: #include <iostream.h> #include <conio.h> void main() { int vint = 55; int * pint; clrscr(); pint = &vint; cout<<“alamat vint =“<<&vint<<endl; cout<<“pint = “<<pint<<endl; } 4
  • 5. Mengakses Nilai Yang Di Tunjuk Pointer #include <iostream.h> #include <conio.h> void main() { int vint = 55; int * pint; clrscr(); pint = &vint; cout<<“Nilai yang di tunjuk oleh pint =“<<*pint<<endl; } 5
  • 6.  Pointer Void pada contoh diatas telah diberikan beberapa variabel pointer yang menunjuk ke tipe data tertentu. Namun dimungkinkan untuk membuat pointer yang tidak bertipe. Caranya dengan meletakkan kata kunci void pada bagian penentu tipe pointer. contoh : void *ptr; merupakan pernyataan untuk mendefinisikan ptr sebagai variabel pointer void yang dapat menunjukkan ke sembarang tipe data. Contoh : #include <iostream.h> #include <conio.h> void main() { clrscr(); void *ptr; // pointer tak bertipe int vint = 50; float vfl = 51.5; ptr = &vint; cout<<“Nilai yang di tunjuk oleh ptr =“<<*(int*)ptr<<endl; //ptr adl pointer void mk harus //menyebutkan tipe data yg diakses melalui type cast ptr = &vfl; cout<<“Nilai yang di tunjuk oleh ptr =“<<*(float*)ptr<<endl; } 6
  • 7. 7 Pointer – Array :  Mempunyai hubungan yang dekat dimana secara internal array juga menyatakan alamat. Digunakan untuk melakukan akses elemen array. Syntax : tipe_data *Nama_Pointer = Nama_Array; Contoh didefinisikan : int tgl_lahir[10] = {24,6,1965}; dan int *ptgl; agar ptgl menunjuk ke array mk diperlukan pernyataan ptgl = tgl_lahir; Perhatikan pernyataan diatas dimana tidak ada tanda & di depan tgl_lahir, padahal beberapa contoh di depan menggunakan format Ptr = & variabel
  • 8. 8 Contoh Program C++ : #include <iostream.h> #include <conio.h> void main() { clrscr(); int tgl_lahir[ ] = {24, 6, 1965}; int *ptgl; ptgl = tgl_lahir; for (int I = 0; i<3; i++) cout<<*(ptgl+i)<<endl; // c++ mengetahui bahwa tgl_lahir+(ukuran tipe elemen tgl_lahir)+1 } Contoh Program C++ : #include <iostream.h> #include <conio.h> void main() { clrscr(); int tgl_lahir[ ] = {24, 6, 1965}; int *ptgl; ptgl = tgl_lahir; // ptgl menunjuk ke elemen pertama dari array for (int I = 0; i<3; i++) { cout<<“ptgl =“<<ptgl<<endl; cout<<“*ptgl =“<<*ptgl<<endl; ptgl++; // menunjuk ke elemen berikutnya } }
  • 9. 9 Pointer – string: Contoh : #include <iostream.h> #include <conio.h> void main() { clrscr(); char *ptokoh = “ gatotkaca”; cout<< ptokoh<<endl; } Pada contoh diatas akan menyebabkan c++:  Mangalokasikan ptokoh sebagai variabel pointer yang menunjuk ke data bertipe char dan menempatkan konstanta string “ gatotkaca” ke suatu lokasi di memori komputer  Kemudian ptokoh akan menunjuk ke lokasi string “gatotkaca” Pernyataan diatas menyerupai pernyataan: Char tokoh[ ] = “ gatotkaca” Perbedaannya :  Ptokoh adalah pointer yang dengan mudah dapat diatur agar menunjuk ke data string  Tokoh adalah array yang menyatakan alamat yang konsatan tidak dapat di ubah. Yang dapat diubah adalah elemen arraynya
  • 10. 10 #include <iostream.h> #include <conio.h> void main() { clrscr(); char tokoh[ ] = “ gatotkaca”; char *ptokoh = “ gatotkaca”; cout<< “tokoh = “<<tokoh<<endl; cout<< “ptokoh =“<<ptokoh<<endl; // tokoh ++; //tidak diperkenankan Ptokoh++; //diperkenankan Cout<<“ptokoh=“<<ptokoh<<endl; }
  • 11. Pointer dan Fungsi  Pointer biasa di gunakan di dalam argumen fungsi apabila nilai argumen dimaksudkan untuk di ubah di dalam fungsi Pointer sebagai Argument Fungsi #include <iostream.h> #include <conio.h> Void ubah_nilai(int&x); Void main() { clrscr(); int pinokio = 80; cout<<“nilai mula-mula untuk pinokio :”<<pinokio<<endl; ubah_nilai(pinokio); cout<<“nilai untuk pinokio sekarang :”<<pinokio<<endl; } Void ubah_nilai(int&x) { x=95; } 11
  • 12.  Pointer sebagai keluaran Fungsi Suatu fungsi dapat dibuat agar keluarannya berupa pointer. Misal : #include <iostream.h> #include <conio.h> Char *nama_bulan(int n); // protipe void main() { int bln; clrscr(); cout<<“Bulan(1..12):”; cin>>bln; cout<<nama_bulan(bln)<<endl; } Char *nama_bulan(int n) { 12
  • 13. static char *bulan [ ] = { “kode bulan salah”, “Januari”, “Februari”, “Maret”, “April”, “Mei”, “Juni”, “Juli”, “Agustus”, “September”, “Oktober”, “November”, “Desember” }; return((n<1||n>12)?bulan[0] : bulan[n]); } 13
  • 14.  Pada definisi fungsi diatas, Char *nama_bulan(int n) Menyatakan bahwa nilai balik fungsi nama_bulan() berupa pointer yang menunjuk ke data bertipe char (string). Di bagian akhir fungsi, pernyataan : return((n<1||n>12)?bulan[0] : bulan[n]); Menyatakan nilai balik fungsi berupa pointer menunjuk ke :  String “kode bulan salah”(bulan[0]), jika argumen fungsi bernilai kurang dari 1 atau lebih besar daripada 12  Bulan[n], kalau n bernilai antara 1 sampai dengan 12 14