Anda di halaman 1dari 20

BAB 9

POINTER

PROGRAM 9.1
//*----------------------------------------------------------------*
//* alifbata.cpp *
//* *
//* contoh untuk menampilkan alamat suatu variabel *
//*----------------------------------------------------------------*

#include<iostream.h>
#include<conio.h>

void main()
{
int alif = 5;
float ba = 7.5;
double ta = 17.777;

clrscr(); //hapus layar

cout<<"isi variabel : "<<endl;


cout<<"alif = " <<alif<<endl;
cout<<"ba = "<<ba<<endl;
cout<<"ta = "<<ta<<endl;

cout<<"\nAlamat variabel :"<<endl;


cout<<"alif = "<<&alif<<endl;
cout<<"ba = "<<&ba<<endl;
cout<<"ta = "<<&ta<<endl;
getche();
}

HASIL
PROGRAM 9.2
//*-------------------------------------------------------------------*
//* ptr1.cpp *
//* contoh pendefinisian variabel pointer dan *
//* pengisian alamat ke variabel tersebut *
//*--------------------------------------------------------------------*

#include<iostream.h>
#include<conio.h>

void main()
{
int vint = 55; //variabel bukan pointer
int *pint; //variabel pointer

clrscr(); //hapus layar

pint = &vint ; //pointer menunjuk ke vint

cout<<"alamat vint ="<<&vint<<endl;


cout<<"pint = "<<pint<<endl;
getche();
}

HASIL
PROGRAM 9.3
//*---------------------------------------------------------------*
//* ptr2.cpp *
//* *
//* contoh pengaksesan nilai melalui *
//*---------------------------------------------------------------*

#include<iostream.h>
#include<conio.h>

void main()
{
int vint = 55; //variabel bukan pointer
int *pint; //variabel pointer

clrscr(); //hapus layar

pint = &vint; //pointer menunjuk ke vint

cout << "nilai yang ditunjuk oleh pint: "


<< vint << endl;
getche();
}

HASIL
PROGRAM 9.4
//*------------------------------------------------------------*
//* ptr3.cpp *
//* *
//* contoh pengubahan nilai melalui *
//* suatu pointer *
//*------------------------------------------------------------*

#include<iostream.h>
#include<conio.h>

void main()
{
int vint = 55; //variabel bukan ponter
int *pint; //variabel pointer

clrscr(); //hapus layar

cout<<"vint semula : "<<vint<<endl;

pint = &vint; //pointer menunjuk ke vint


*pint = 77; //nilai yang dituhjuk diubah menjadi 77

cout<<"vint sekarang : "<<vint<<endl;


getche();
}

HASIL
PROGRAM 9.5
//*-------------------------------------------------------------*
//* ptrvoid.cpp *
//* *
//* contoh pointer void *
//*-------------------------------------------------------------*

#include<iostream.h>
#include<conio.h>

void main()
{
clrscr(); //hapus layar

void *ptr; //pointer tak bertipe

int vint = 50;


float vfl = 51.5;

ptr = &vint; //menunjuk ke int, diperkenankan

cout <<"nilai ang ditunjuk oleh ptr: "


<<*(int*)ptr<<endl;

ptr = &vfl; //menunjuk ke float, diperkenankan

cout<<"nilai yang ditunjuk oleh ptr: "


<<*(float*)ptr<<endl;
getche();
}

HASIL
PROGRAM 9.6
// * _______________________________________ *
// * ptrvoid2.cpp *
// * *
// * Mengubah suatu nilai melalui pointer void. *
// * _______________________________________ *

#include <iostream.h>
#include <conio.h>

void main ()
{
clrscr (); // Hapus layar
void *ptr; // Pointer tak bertipe
int vint = 50;
ptr = &vint; // menunjuk ke int, diperkenankan
cout << "vint semula : " << vint << endl;
* (int *) ptr = 77;// Nilai vint diubah via ptr
cout << "vint sekarang : " << vint << endl;
getche();
}

HASIL
PROGRAM 9.7
// * _______________________________________ *
// * ptrarr.cpp *
// * *
// * Contoh pointer yang menunjuk ke array. *
// * _________________________________ *

#include <iostream.h>
#include <conio.h>

void main ()
{
clrscr (); // Hapus layar
int tgl_lahir[] = {24, 6, 1965};
int *ptgl;
ptgl = tgl_lahir; // ptgl menunjuk ke array
cout << "Nilai yang ditunjuk oleh ptgl : "
<< *ptgl << endl;
cout << "Nilai dari tgl_lahir[0] : "
<< tgl_lahir[0] << endl;
getche();
}

HASIL
PROGRAM 9.8
// * _________________________________ *
// * ptrarr2.cpp *
// * *
// * Mengakses elemen array via pointer. *
// * _________________________________ *

#include <iostream.h>
#include <conio.h>

void main ()
{
clrscr (); // Hapus layar
int tgl_lahir[] = {24, 6, 1965};
int *ptgl;
ptgl = tgl_lahir; // ptgl menunjuk ke array
for (int i = 0; i < 3; i++)
cout << *(ptgl + i) << endl;
getche();
}

HASIL
PROGRAM 9.9

// * _________________________________ *
// * ptrarr2.cpp *
// * *
// * Mengakses elemen array melalui pointer. *
// * _________________________________ *

#include <iostream.h>
#include <conio.h>

void main ()
{
clrscr (); // Hapus layar
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
}
getche();
}

HASIL
PROGRAM 9.10

// * _________________________________ *
// * ptrstr1.cpp *
// * *
// * Contoh pointer yang menunjuk ke string. *
// * _________________________________ *

#include <iostream.h>
#include <conio.h>

void main ()
{
clrscr (); // Hapus layar
char *ptokoh = "Gatotkaca"; // ptokoh menunjuk ke string
cout << ptokoh << endl;
getche();
}

HASIL
PROGRAM 9.11

// * ______________________________________ *
// * ptrstr2.cpp *
// * *
// * Contoh untuk menunjukkan perbedaan *
// * array karakter dan pointer yang menunjuk *
// * ke string. *
// * ______________________________________ *

#include <iostream.h>
#include <conio.h>

void main ()
{
clrscr (); //Hapus layar
char tokoh [] = "Gatotkaca";
char *ptokoh = "Gatotkaca";
cout << "tokoh = " << tokoh << endl ;
cout << "*ptokoh = " << ptokoh << endl;
// tokoh++; // Tidak diperkenankan
ptokoh++; // Diperkenankan
cout << "ptokoh = " << ptokoh << endl;
getche();
}

HASIL
PROGRAM 9.12

// * __________________________ *
// * arrptr.cpp *
// * *
// * Contoh array pointer. *
// * __________________________ *

#include <iostream.h>
#include <conio.h>

void main ()
{
clrscr (); // Hapus layar
char *namahari[] = { "Senin", "Selasa", "Rabu", "Kamis",
"Jum'at", "Sabtu", "Minggu" };
for (int i = 0; i < 7; i++)
cout << namahari[i] << endl;
getche();
}

HASIL
PROGRAM 9.13

// * ____________________________________________ *
// * ptrptr.cpp *
// * *
// * Contoh pointer yang menunjuk ke pointer lain. *
// * ____________________________________________ *

#include <iostream.h>
#include <conio.h>

void main ()
{
clrscr (); // Hapus layar
int var_x = 273;
int *ptr1; // Pointer ke variabel bukan pointer
int *ptr2; // Pointer ke pointer
cout << "var_x = " << var_x << endl;
// Penugasan alamat
ptr1 = &var_x; // ptr1 menunjuk ke var_x
ptr2 = ptr1; // ptr2 menunjuk ke ptr1
// Mengakses nilai var_x melalui ptr1
cout << "*ptr1 = " << *ptr1 << endl;
// Mengakses nilai var_x melalui ptr2
cout << "**ptr2 = " << *ptr2 << endl;
getche ();
}

HASIL
PRGRAM 9.14

//*---------------------------------------------------------------*
//* argref.cpp *
//* *
//* argumen berupa referensi *
//*---------------------------------------------------------------*

#include<iostream.h>
#include<conio.h>

void ubah_nilai (int &x); //prototipe

void main ()
{
clrscr (); //hapus layar
int pinokio = 80;
cout << "nilai mula-mula untuk pinokio : "
<< pinokio << endl;
ubah_nilai (pinokio);
cout << "nilai untuk pinokio sekarang : "
<< pinokio << endl;
getche ();
}

// definisi fungsi

void ubah_nilai (int &x)


{
x = 95;
getche();
}

HASIL
PROGRAM 9.15
//*------------------------------------------------------------*
//* ptrbulan.cpp *
//* *
//* contoh fungsi dengan nilai balik berupa pointer *
//*------------------------------------------------------------*

#include<iostream.h>
#include<conio.h>

char *nama_bulan (int n); // prototipe

void main ()
{
int bln;
clrscr (); // hapus layar
cout << "bulan (1...12) : ";
cin >> bln;
cout << nama_bulan (bln) <<endl;
getche();
}
// definisi fungsi

char *nama_bulan (int n)


{
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] );
getche();
}
HASIL

PROGRAM 9.16
//*---------------------------------------------------*
//* ptrkon1.cpp *
//* *
//* contoh untuk memberikan gambaran *
//* pointer konstan *
//* nilai pointer tidak dapat diubah *
//*---------------------------------------------------*

#include<iostream.h>
#include<conio.h>

void main ()
{
clrscr (); // hapus layar

char * ptr = "C++";

cout << "ptr = " << ptr << endl;

ptr = "pemrograman C++"; //penyebab kesalahan

cout << "ptr = " << ptr << endl;


getche ();
}
HASIL

PROGRAM 9.17
//*------------------------------------------------------------*
//* ptrkon2.cpp *
//* *
//* contoh untuk memberikan gambaran *
//* pointer konstan *
//* mengubah isi yang ditunjuk oleh pointer *
//* diperkenankan *
//*------------------------------------------------------------*

#include<iostream.h>
#include<conio.h>

void main ()
{
clrscr (); // hapus layar

char * ptr = "C++";

cout << "ptr = " << ptr << endl;

ptr = "D++"; //Mengubah isi yang ditunjuk ptr

cout << "ptr = " << ptr << endl;


getche();
}
HASIL

PROGRAM 9.18
//*------------------------------------------------------------*
//* argbp2.cpp *
//* *
//* contoh untuk membaca argumen baris perintah *
//* (VERSI 2) *
//*------------------------------------------------------------*

#include<iostream.h>
#include<conio.h>

void main (int argc, char *argv [ ] )


{
clrscr (); // hapus layar

while (argc > 0)


{
argc--;
cout << *argv << endl;
argv++;
}
getche();
}
HASIL

PROGRAM 9.20
//*------------------------------------------------------*
//*bacaenv.cpp *
//* *
//*contoh untuk membaca varibel lingkungan *
//*------------------------------------------------------*

#include<iostream.h>
#include<conio.h>
void main(int argc, char *argv[], char *env[])
{
clrscr(); //hapuslayar
while( *env )
{
cout<< *env <<endl;
env++; //ke variabel lingkungan berikutnya
}
getche ();
}
HASIL

Anda mungkin juga menyukai