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

Metamtika teknik 04-aplikasi nyata pd
Metamtika teknik 04-aplikasi nyata pdMetamtika teknik 04-aplikasi nyata pd
Metamtika teknik 04-aplikasi nyata pdel sucahyo
 
DIGITAL SIGNATURE ALGORITHM (DSA)
DIGITAL SIGNATURE ALGORITHM (DSA) DIGITAL SIGNATURE ALGORITHM (DSA)
DIGITAL SIGNATURE ALGORITHM (DSA) Catur Setiawan
 
Pertemuan 4-5-6 Metode Pelacakan dan Pencarian
Pertemuan 4-5-6 Metode Pelacakan dan PencarianPertemuan 4-5-6 Metode Pelacakan dan Pencarian
Pertemuan 4-5-6 Metode Pelacakan dan PencarianEndang Retnoningsih
 
Aljabar boolean(1)
Aljabar boolean(1)Aljabar boolean(1)
Aljabar boolean(1)tafrikan
 
K6_INDRALAYA_DISTRIBUSI NORMAL_STATISTIKA PENDIDIKAN.pptx
K6_INDRALAYA_DISTRIBUSI NORMAL_STATISTIKA PENDIDIKAN.pptxK6_INDRALAYA_DISTRIBUSI NORMAL_STATISTIKA PENDIDIKAN.pptx
K6_INDRALAYA_DISTRIBUSI NORMAL_STATISTIKA PENDIDIKAN.pptxTriOktariana2
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galatKelinci Coklat
 
Rpp persamaan dan fungsi kuadrat rev
Rpp persamaan dan fungsi kuadrat revRpp persamaan dan fungsi kuadrat rev
Rpp persamaan dan fungsi kuadrat revFera Sofian
 
Logika dan Pembuktian
Logika dan PembuktianLogika dan Pembuktian
Logika dan PembuktianFahrul Usman
 
PPT INTERPOLASI POLINOMIAL
PPT INTERPOLASI POLINOMIALPPT INTERPOLASI POLINOMIAL
PPT INTERPOLASI POLINOMIALHastih Leo
 
LKPD Soal Materi Bilangan Berpangkat Bulat Positif
LKPD Soal Materi Bilangan Berpangkat Bulat PositifLKPD Soal Materi Bilangan Berpangkat Bulat Positif
LKPD Soal Materi Bilangan Berpangkat Bulat PositifIra Marion
 
6. metode inferensi
6. metode inferensi6. metode inferensi
6. metode inferensieman02
 
powerpoint logika matematika
powerpoint logika matematikapowerpoint logika matematika
powerpoint logika matematikaSuryo Wedo Susilo
 
Differensial analisis 1
Differensial   analisis 1Differensial   analisis 1
Differensial analisis 1Iwan Umri
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanFahrul Razi
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01KuliahKita
 
Skripsi MPG, Pemecahan Masalah, dan Disposisi Matematis
Skripsi MPG, Pemecahan Masalah, dan Disposisi MatematisSkripsi MPG, Pemecahan Masalah, dan Disposisi Matematis
Skripsi MPG, Pemecahan Masalah, dan Disposisi MatematisNyayu Husnul Chotimah
 

What's hot (20)

Metamtika teknik 04-aplikasi nyata pd
Metamtika teknik 04-aplikasi nyata pdMetamtika teknik 04-aplikasi nyata pd
Metamtika teknik 04-aplikasi nyata pd
 
DIGITAL SIGNATURE ALGORITHM (DSA)
DIGITAL SIGNATURE ALGORITHM (DSA) DIGITAL SIGNATURE ALGORITHM (DSA)
DIGITAL SIGNATURE ALGORITHM (DSA)
 
TURUNAN TINGKAT TINGGI
TURUNAN TINGKAT TINGGITURUNAN TINGKAT TINGGI
TURUNAN TINGKAT TINGGI
 
Pertemuan 4-5-6 Metode Pelacakan dan Pencarian
Pertemuan 4-5-6 Metode Pelacakan dan PencarianPertemuan 4-5-6 Metode Pelacakan dan Pencarian
Pertemuan 4-5-6 Metode Pelacakan dan Pencarian
 
Aljabar boolean(1)
Aljabar boolean(1)Aljabar boolean(1)
Aljabar boolean(1)
 
K6_INDRALAYA_DISTRIBUSI NORMAL_STATISTIKA PENDIDIKAN.pptx
K6_INDRALAYA_DISTRIBUSI NORMAL_STATISTIKA PENDIDIKAN.pptxK6_INDRALAYA_DISTRIBUSI NORMAL_STATISTIKA PENDIDIKAN.pptx
K6_INDRALAYA_DISTRIBUSI NORMAL_STATISTIKA PENDIDIKAN.pptx
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galat
 
Tipe data dan variabel
Tipe data dan variabelTipe data dan variabel
Tipe data dan variabel
 
Rpp persamaan dan fungsi kuadrat rev
Rpp persamaan dan fungsi kuadrat revRpp persamaan dan fungsi kuadrat rev
Rpp persamaan dan fungsi kuadrat rev
 
Logika dan Pembuktian
Logika dan PembuktianLogika dan Pembuktian
Logika dan Pembuktian
 
02.logika
02.logika02.logika
02.logika
 
PPT INTERPOLASI POLINOMIAL
PPT INTERPOLASI POLINOMIALPPT INTERPOLASI POLINOMIAL
PPT INTERPOLASI POLINOMIAL
 
5 perulangan
5 perulangan5 perulangan
5 perulangan
 
LKPD Soal Materi Bilangan Berpangkat Bulat Positif
LKPD Soal Materi Bilangan Berpangkat Bulat PositifLKPD Soal Materi Bilangan Berpangkat Bulat Positif
LKPD Soal Materi Bilangan Berpangkat Bulat Positif
 
6. metode inferensi
6. metode inferensi6. metode inferensi
6. metode inferensi
 
powerpoint logika matematika
powerpoint logika matematikapowerpoint logika matematika
powerpoint logika matematika
 
Differensial analisis 1
Differensial   analisis 1Differensial   analisis 1
Differensial analisis 1
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi Boolean
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
 
Skripsi MPG, Pemecahan Masalah, dan Disposisi Matematis
Skripsi MPG, Pemecahan Masalah, dan Disposisi MatematisSkripsi MPG, Pemecahan Masalah, dan Disposisi Matematis
Skripsi MPG, Pemecahan Masalah, dan Disposisi Matematis
 

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