SlideShare a Scribd company logo
1 of 14
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

What's hot

logika matematika
logika matematika logika matematika
logika matematika Erna S
 
Pertemuan 9.1 pengalamatan juga
Pertemuan 9.1 pengalamatan jugaPertemuan 9.1 pengalamatan juga
Pertemuan 9.1 pengalamatan jugaBuhori Muslim
 
unit kontrol
unit kontrolunit kontrol
unit kontroldewi2093
 
Matematika Diskrit - 04 induksi matematik - 02
Matematika Diskrit - 04 induksi matematik - 02Matematika Diskrit - 04 induksi matematik - 02
Matematika Diskrit - 04 induksi matematik - 02KuliahKita
 
Algoritma dan Struktur Data - list
Algoritma dan Struktur Data - listAlgoritma dan Struktur Data - list
Algoritma dan Struktur Data - listGeorgius Rinaldo
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorialSiti Khotijah
 
Algoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur DataAlgoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur DataAndiNurkholis1
 
Bab 01 logika mtk diskrit
Bab 01 logika mtk diskritBab 01 logika mtk diskrit
Bab 01 logika mtk diskritKarlFykr
 
BAB 2 : KALIMAT BERKUANTOR
BAB 2 : KALIMAT BERKUANTORBAB 2 : KALIMAT BERKUANTOR
BAB 2 : KALIMAT BERKUANTORMustahal SSi
 
Edo A.G - Rangkaian Aritmatika
Edo A.G - Rangkaian AritmatikaEdo A.G - Rangkaian Aritmatika
Edo A.G - Rangkaian AritmatikaEdo A.G
 
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.pptAljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.pptrahmawarni
 
PERULANGAN DALAM MATLAB
PERULANGAN DALAM MATLABPERULANGAN DALAM MATLAB
PERULANGAN DALAM MATLABFebri Arianti
 
Algoritma - prosedur dan fungsi
Algoritma - prosedur dan fungsiAlgoritma - prosedur dan fungsi
Algoritma - prosedur dan fungsiZombie Black
 
Makalah Sistem Digital
Makalah Sistem DigitalMakalah Sistem Digital
Makalah Sistem DigitalMimikri Dony
 
TEOREMA DASAR KALKULUS
TEOREMA DASAR KALKULUSTEOREMA DASAR KALKULUS
TEOREMA DASAR KALKULUSNurul Ulfah
 
ALJABAR LINEAR ELEMENTER
ALJABAR LINEAR ELEMENTERALJABAR LINEAR ELEMENTER
ALJABAR LINEAR ELEMENTERMella Imelda
 
Proposisi Logika Matematika
Proposisi Logika MatematikaProposisi Logika Matematika
Proposisi Logika MatematikaTaufik_Yui
 

What's hot (20)

logika matematika
logika matematika logika matematika
logika matematika
 
Array dan Contoh
Array dan ContohArray dan Contoh
Array dan Contoh
 
Pertemuan 9.1 pengalamatan juga
Pertemuan 9.1 pengalamatan jugaPertemuan 9.1 pengalamatan juga
Pertemuan 9.1 pengalamatan juga
 
unit kontrol
unit kontrolunit kontrol
unit kontrol
 
Matematika Diskrit - 04 induksi matematik - 02
Matematika Diskrit - 04 induksi matematik - 02Matematika Diskrit - 04 induksi matematik - 02
Matematika Diskrit - 04 induksi matematik - 02
 
Algoritma dan Struktur Data - list
Algoritma dan Struktur Data - listAlgoritma dan Struktur Data - list
Algoritma dan Struktur Data - list
 
Modul Pemrograman Bahasa Assembly
Modul Pemrograman Bahasa AssemblyModul Pemrograman Bahasa Assembly
Modul Pemrograman Bahasa Assembly
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
 
Algoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur DataAlgoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur Data
 
Cache memory
Cache memoryCache memory
Cache memory
 
Bab 01 logika mtk diskrit
Bab 01 logika mtk diskritBab 01 logika mtk diskrit
Bab 01 logika mtk diskrit
 
BAB 2 : KALIMAT BERKUANTOR
BAB 2 : KALIMAT BERKUANTORBAB 2 : KALIMAT BERKUANTOR
BAB 2 : KALIMAT BERKUANTOR
 
Edo A.G - Rangkaian Aritmatika
Edo A.G - Rangkaian AritmatikaEdo A.G - Rangkaian Aritmatika
Edo A.G - Rangkaian Aritmatika
 
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.pptAljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
 
PERULANGAN DALAM MATLAB
PERULANGAN DALAM MATLABPERULANGAN DALAM MATLAB
PERULANGAN DALAM MATLAB
 
Algoritma - prosedur dan fungsi
Algoritma - prosedur dan fungsiAlgoritma - prosedur dan fungsi
Algoritma - prosedur dan fungsi
 
Makalah Sistem Digital
Makalah Sistem DigitalMakalah Sistem Digital
Makalah Sistem Digital
 
TEOREMA DASAR KALKULUS
TEOREMA DASAR KALKULUSTEOREMA DASAR KALKULUS
TEOREMA DASAR KALKULUS
 
ALJABAR LINEAR ELEMENTER
ALJABAR LINEAR ELEMENTERALJABAR LINEAR ELEMENTER
ALJABAR LINEAR ELEMENTER
 
Proposisi Logika Matematika
Proposisi Logika MatematikaProposisi Logika Matematika
Proposisi Logika Matematika
 

Viewers also liked

Ok 6 alu
Ok 6 aluOk 6 alu
Ok 6 aluwindi1
 
Ok 3 rep data2
Ok 3 rep  data2Ok 3 rep  data2
Ok 3 rep data2windi1
 
Pertemuan iv
Pertemuan ivPertemuan iv
Pertemuan ivwindi1
 
Function
FunctionFunction
Functionwindi1
 
Ok 2 rep data1
Ok 2 rep  data1Ok 2 rep  data1
Ok 2 rep data1windi1
 
Matericlass
MatericlassMatericlass
Matericlasswindi1
 
Pertemuan vi
Pertemuan viPertemuan vi
Pertemuan viwindi1
 
Probabilitas kontinu
Probabilitas kontinuProbabilitas kontinu
Probabilitas kontinuWindii
 

Viewers also liked (8)

Ok 6 alu
Ok 6 aluOk 6 alu
Ok 6 alu
 
Ok 3 rep data2
Ok 3 rep  data2Ok 3 rep  data2
Ok 3 rep data2
 
Pertemuan iv
Pertemuan ivPertemuan iv
Pertemuan iv
 
Function
FunctionFunction
Function
 
Ok 2 rep data1
Ok 2 rep  data1Ok 2 rep  data1
Ok 2 rep data1
 
Matericlass
MatericlassMatericlass
Matericlass
 
Pertemuan vi
Pertemuan viPertemuan vi
Pertemuan vi
 
Probabilitas kontinu
Probabilitas kontinuProbabilitas kontinu
Probabilitas kontinu
 

Similar to POINTER-FUNGSI

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
 
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
 
MATERI POINTER TKJ K13
MATERI POINTER TKJ K13MATERI POINTER TKJ K13
MATERI POINTER TKJ K13Ali Must Can
 
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 05 pointer part 3
Materi kuliah 05   pointer part 3Materi kuliah 05   pointer part 3
Materi kuliah 05 pointer part 3kua
 
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 03 pointer part 1
Materi kuliah 03   pointer part 1Materi kuliah 03   pointer part 1
Materi kuliah 03 pointer part 1Budi Yono
 
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 03 pointer part 1
Materi kuliah 03   pointer part 1Materi kuliah 03   pointer part 1
Materi kuliah 03 pointer part 1Budi Yono
 
Pertemuan 8.ppt
Pertemuan 8.pptPertemuan 8.ppt
Pertemuan 8.pptfauziahUG
 
6. pemrograman pointer
6. pemrograman pointer6. pemrograman pointer
6. pemrograman pointerRoziq Bahtiar
 
Materi kuliah 21 pointer part 1
Materi kuliah 21   pointer part 1Materi kuliah 21   pointer part 1
Materi kuliah 21 pointer part 1Budi Yono
 

Similar to POINTER-FUNGSI (20)

Pointer
PointerPointer
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
 
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
 
MATERI POINTER TKJ K13
MATERI POINTER TKJ K13MATERI POINTER TKJ K13
MATERI POINTER TKJ K13
 
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 05 pointer part 3
Materi kuliah 05   pointer part 3Materi kuliah 05   pointer part 3
Materi kuliah 05 pointer part 3
 
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 03 pointer part 1
Materi kuliah 03   pointer part 1Materi kuliah 03   pointer part 1
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 1
 
Materi kuliah 03 pointer part 1
Materi kuliah 03   pointer part 1Materi kuliah 03   pointer part 1
Materi kuliah 03 pointer part 1
 
Pointer.ppt
Pointer.pptPointer.ppt
Pointer.ppt
 
Pertemuan 8.ppt
Pertemuan 8.pptPertemuan 8.ppt
Pertemuan 8.ppt
 
Pertemuan5.ppt
Pertemuan5.pptPertemuan5.ppt
Pertemuan5.ppt
 
Pointer
PointerPointer
Pointer
 
6. pemrograman pointer
6. pemrograman pointer6. pemrograman pointer
6. pemrograman pointer
 
Materi kuliah 21 pointer part 1
Materi kuliah 21   pointer part 1Materi kuliah 21   pointer part 1
Materi kuliah 21 pointer part 1
 
pertemuan 3.pptx
pertemuan 3.pptxpertemuan 3.pptx
pertemuan 3.pptx
 
Pertemuan6.ppt
Pertemuan6.pptPertemuan6.ppt
Pertemuan6.ppt
 

POINTER-FUNGSI

  • 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