Matakuliah
Tahun
Versi
: T0044/Pemrograman Berorientasi Obyek
: 2005
: 1.0
Pertemuan 8
Array & Pointer of Class
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• Mendemonstrasikan prinsip kerja array of
class
• Mendemonstrasikan prinsip kerja pointer
of class
2
Outline Materi
•
•
•
•
Array Class
Pointer of Class
Operator new & delete
Operator '&' dan '->'
3
Array Class
•
Arrays in C++
–
–
–
–
No range checking
Cannot be compared meaningfully with ==
No array assignment (array names const pointers)
Cannot input/output entire arrays at once
•
•
One element at a time
Example:Implement an Array class with
–
–
–
–
–
Range checking
Array assignment
Arrays that know their size
Outputting/inputting entire arrays with << and >>
Array comparisons with == and !=
4
Array Class
• Copy constructor
– Used whenever copy of object needed
• Passing by value (return value or parameter)
• Initializing an object with a copy of another
– Array newArray( oldArray );
– newArray copy of oldArray
– Prototype for class Array
• Array( const Array & );
• Must take reference Otherwise, pass by value and invoke
infinite loop
– Tries to make copy by calling copy constructor…
5
Kasus Program Array Class
• Pelajarilah Program Array Class pada buku
Deitel chapter 8 Page 556
• Buatlah Analisa dari Program tersebut
menangani masalah array pada C++ dengan
Array Class:
–
–
–
–
–
Range checking
Array assignment
Arrays that know their size
Outputting / inputting entire arrays with << and >>
Array comparisons with == and !=
6
Pointer of Class
• Pointer sebagai Data Members
• Pointers tdk dpt di-initialized dalam class
declaration
• Normally, Initialized pada derived class constructor
• Penggunaan pointers to class data
members
• Umumnya melalui function yg menggunakan
pointers to class data members
• sebagai debuging function yg meng-access 2
bytes pertama dari data member tiap object &
mengambil nilainya
7
Pointer of Class
#include<constrea.h>
class First
{ public:
int value;
First() {value = 0;}
int GetValue() {return value;}
};
class Second
{ int id;
public:
First *obj1;
Second() {id = 0;}
int GetName(){ return id;}
};
int main()
{ Second Obj2;
int num;
num = Obj2.GetName();
return 0;
}
Declaration of Pointer
to class First
Saat Obj2 dicreate, constructor Second tidak
memanggil constructor First.
8
sebagai debuging function
#include<constrea.h>
class Pointer
{ public: int data1, data2;
int value;
int id;
void foo1() {}
void foo2() {}
};
void SetValue(Pointer& object)
{ int Pointer::*ip = &Pointer::value;
object.*ip = 3;
}
void SetId(int *member)
{ *member = 7; }
Debug result:
void main()
{ int Pointer::*ip1 = &Pointer::data1;
int Pointer::*ip2 = &Pointer::data2;
Pointer obj1;
//access 2 public data members via
reference
obj1.*ip1 = 5;
obj1.*ip2 = 10;
//access data member via SetValue()
method
SetValue(obj1);
//create 2 pointers to object member
int *pointer1 = &obj1.value;
int *pointer2 = &obj1.id;
//pass the pointers to SetValue()
SetId(pointer1);
SetId(pointer2);
}
Obj1 = {5,10,7,7}
Data1 = 5
Data2 = 10
Value = 7 (after Fuction SetId run, it was 3)
Id = 7
9
Latihan
//Array of Objek
#include <constrea.h>
class Bilangan
{
private:
int tot, Num;
public:
Bilangan () {Num = ++tot;}
void show ( int i )
{ cout << “Bilangan # “ << i << “ of “ << tot
<< “objek\n”;
}
int Ret_Num ()
{ return Num; }
};
void main()
{ Bilangan A[10];
for ( int i=0; i<10; i++ )
Bilangan :: show ( A[i].Ret_Num () )
}
10
Latihan
// Pointer to Objek
#include <constrea.h>
class Square
{ private:
float Panjang, Lebar;
public:
void Masuk_Data ( float pj, float lb )
{ Panjang = pj; Lebar = lb; }
void Tampil_Data
{ cout << “Panjang Square = “
<< Panjang << endl;
cout << “Lebar Square = “
<< Lebar << endl;
}
};
void main()
{ Square B[3];
Square *s;
B[0].Masuk_Data (10, 5, 8 );
s = &B[1];
s -> Masuk_Data (8, 4, 6);
s++;
s -> Masuk_Data ( 20,10, 8 );
s--;
s -> Tampil_Data ( );
s--;
s -> Tampil_Data ( );
}
11
Tugas 8
• Tugas 8A: Mahasiswa membuat ringkasan
tentang Array of class dan Pointer of class
• Tugas 8B: Mahasiswa menganalisis
program kasus Array Class yang diberikan
oleh dosen
• Tugas 8C: Mahasiswa mencari output
Latihan program dengan menggunakan
Object Array dan Pointer to Object
12
© Copyright 2026 Paperzz