Selasa, 22 September 2009

Polymorphism

Sebagai ciri khas dari program c++ , ini adalah penjelasan dari polymorphism.

Di fungsi utama, diciptakan 2 pointer yang menunjuk pada objek suatu kelas.
CPolygon (ppoly1 and ppoly2). Lalu direferebsikan ke rect dan trgl ke pointer yang tadi. Karena keduanya merupakan kelas dari objek dari CPolygon, keduanya valid untuk
dijalankan.

Limit dalam penggunaan *ppoly1 and *ppoly2 sebagai ganti rect and
trgl adalah kedua *ppoly1 and *ppoly2 merupakan tipe CPolygon* dan
hanya bisa menggunankan pointer tersebut untuk menunjuk ke anggota
CRectangle and CTriangle yang diambil dari CPolygon. Karena itu saat
memanggil anggota area() di akhir program harus menggunakan nama objek
rect and trgl dibanding menggunakan pointer *ppoly1 and *ppoly2.

Untuk menggunakan area() dengan pointer menunjuk kelas CPolygon, anggotanya
harus dideklarasikan pada kelas CPolygon, tapi masalahnya CRectangle serta
CTriangle mengimplementasikan versi area yang berbeda, makanya tidak bisa diimplementasikan di kelas yang sama.


Contoh :

class CPolygon {
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b; }
virtual int area ()
{ return (0); }
};

class CRectangle: public CPolygon {
public:
int area ()
{ return (width * height); } ----- versi area yang berbeda
};

class CTriangle: public CPolygon {
public:
int area ()
{ return (width * height / 2); } ----- versi area yang berbeda
};

int main () {
CRectangle rect;
CTriangle trgl;
CPolygon poly;
CPolygon * ppoly1 = ▭
CPolygon * ppoly2 = &trgl;
CPolygon * ppoly3 = &poly;
ppoly1->set_values (4,5);
ppoly2->set_values (4,5);
ppoly3->set_values (4,5);
cout <<>area() <<>
cout <<>area() <<>
cout <<>area() <<>
return 0;
}

Encapsulation

Pada C++, ada istilah encapsulation dimana data dan fungsi digabung pada sebuah kelas.

Contoh:

class CPolygon {
protected: int width, height; ---- data
public: void set_values (int a, int b) ---- function
{
width=a; height=b;
}
};

Inheritance

Salah satu ciri khas dari kelas C++ adalah inheritance. Inheritance dapat
membuat suatu kelas yang diambil dari kelas lain lagi, jadi secara otomatis
mengikutsertakan anggota dari "parent's" serta "dia"nya sendiri.

Untuk membuat sebuah kelas dari kelas lainnya, digunakanlah colon (:) .
Contoh format :

class derived_class_name: public base_class_name
{ /*...*/ };


Contoh :

class CPolygon {
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b;}
};

class CRectangle: public CPolygon { --- contoh penulisan inheritance
public:
int area ()
{ return (width * height); }
};

Friend Functions dan Classes

Friend Functions

Friend functions dapat membuat, misalnya, menjalankan operasi antara
dua kelas yang berbeda. Umumnya, penggunaan dari friend functions
sama sekali tidak berhubungan dengan metode pemrograman berorientasi,
jadi bila mungkin , lebih baik memakai anggota yang sama untuk dijalankan.

Contoh :

class CRectangle {
int width, height;
public:
void set_values (int, int);
int area () {return (width * height);}
friend CRectangle duplicate (CRectangle);
};



Friend Classes

Contoh:

class CSquare {
private:
int side;
public:
void set_side (int a)
{side=a;}
friend class CRectangle;
};

Constructors dan Destructors

Constructor -- kelas yang dapat berisi fungsi spesialuntuk dipanggil kapanpun
saat objek baru dibuat.

Constructors tidak bisa dipanggil secara eksplisit bila merupakan anggota dari fungsi biasa.
Akan dijalankan hanya saat objek baru dari kelas tersebut dibuat.

For example :

CRectangle::CRectangle (int a, int b) {
width = new int;
height = new int;
*width = a;
*height = b;
}


Destructor -- kelas yang dapat berisi fungsi spesialuntuk dipanggil kapanpun saat objek ingin dihilangkan. Dan bisa juga dijalankan ketika akhir program sudah dicapai , seperti operasi delete.

Contoh :

CRectangle::~CRectangle () {
delete width;
delete height;
}

Kelas

Kelas adalah suatu konsep perluasan dari struktur data, selain menyimpan data, jadi mampu menyimpan data and fungsi.

Biasanya kelas dideklarasikan menggunakan keyword class, dengan format :


class class_name {
access_specifier_1:
member1;
access_specifier_2:
member2;
...
} object_names;


Class_name adalah identifikasi yang vaild untuk sebuah kelas, object_names
adalah berbagai kemungkinan nama yang digunakan untuk menamai objek di kelas.
Di bagian deklarasi dapat berisi anggota-anggota, dapat berupa deklarasi data atau fungsi, dapat ditambahkan juga specifier.

Pada deklarasi di struktur data sebenarnya sama, kecuali sekarang dapat menuliskan
fungsi serta anggota, dan tentunya specifier. Ada 3 keyword dari specifier ini :
  • private -- anggota kelasnya hanya bisa diakses oleh anggota kelas yang sama ataupun teman.
  • protected -- anggota kelasnya bisa diakses oleh anggota kelas yang sama ataupun teman, juga bisa dari anggota kelas yang didatangkan.
  • public -- anggota kelasnya bisa diakses dari mana saja asalkan objeknya visible.

Overloaded functions

Pada C++ 2 fungsi berbeda bisa memiliki nama yang sama di tipe maupun jumlah parameter
yang berbeda.

Contoh :

// overloaded function
#include
using namespace std;

int operate (int a, int b)
{
return (a*b);
}

float operate (float a, float b)
{
return (a/b);
}

int main ()
{
int x=5,y=2;
float n=5.0,m=2.0;
cout <<>
cout << "\n";
cout <<>
cout << "\n";
return 0;
}

Pada contoh di atas ada fungsi yang memiliki nama dan operasi sama, tapi tipenya
berbeda, ada yang int dan float. Compilernya tahu yang mana yang harus dipanggil dengan melihat tipe yang dilewati sebagai argumen. Kalau yang diipanggil 2 ints maka akan memanggil fungsi yang mempunyai 2 parameter int di prototypenya dan bila yang dipanggil 2 floats , akan memanggil fungsi yang memiliki 2 parameter float di prototype.

Saat pertama kali mengoperasikan dua argumen yang terlewati adalah tipe dari int,
lalu fungsi yang memiliki ; dipanggil. Saat yang kedua dipanggil ( dua argumen tipe float ). lalu prototype kedua dipanggil. Jadi, pemanggilan ini berdasarkan tipe dari argumennya karena sudah terjadi overloaded function.

Karena sebuah fungsi tidak bisa overloaded hanya karena return type.
Maka dari itu parameter harus memiliki tipe yang berbeda.

Default Values pada Parameters

Saat deklarasi fungsi dapat menentukan nilai default untuk masing-masing parameter.
Akan berguna bila argumen kosong saat memanggil fungsi di program. Caranya dengan menggunakan operator dan nilai argumen di fungsi yang dideklarasikan.
Bila sebuah nilai parameter yang sudah ditentukan tidak dilalui, nilai default digunakan.

Contoh :

// default values in functions
#include
using namespace std;

int divide (int a, int b=2)
{
int r;
r=a/b;
return (r);
}

int main ()
{
cout <<>
cout <<>
cout <<>
return 0;
}



Ada dua fungsi pemanggilan divide :

  • divide (12)
Karena diketahui int b = 2, maka hasil dari fungsi tersebut adalah 6 (12/2).
Parameter kedua adalah 2 karena sudah dispesifikasi bila parameter tidak dilalui
adalah yang tercantum pada fungsi.

  • divide (20,4)
Sudah ada dua parameter, jadi nilai default untuk b (int b=2) tidak digunakan, maka
b menggunakan nilai dari soal, yaitu 4. Hasilnya adalah 5 (20/4).


Ini adalah penggunaan default parameter dijalankan.

Fungsi.. 2

Passed by Value

Saat fungsi tambahan dipanggil, nilai dari variabel lokal a dan b menjadi 5 dan 3, tapi walaupun dilakukan modifikasi tetap tidak merubah apapun pada nilai x dan y di luar itu, karena variabel x dan y itu bukan dilewati dari fungsi tapi hanya di-copy nilainya saat fungsi dipanggil.


Passed by Reference


Untuk variabel di-passed by reference bukan meng-copy nilainya, melainkan bahkan meng-copy variabelnya sendiri dan modifikasi yang dilakukan pada variabel lokal memiliki pengaruh.
Passing by reference juag merupakan jalan yang baik untuk mengizinkan fungsi mengembalikan lebih dari satu nilai.

Selasa, 15 September 2009

Fungsi.. 1

Fungsi adalah kumpulan dari statement yang dijalankan ketika dipanggil.
Format dari fungsi adalah sbb:

type name ( parameter1, parameter2, ...) { statements }


Keterangan :
  • type -- tipe data specifier dari data yang dikembalikan oleh fungsi
  • name -- identifier untuk memungkinkan memanggil fungsi
  • parameters (sebanyak yang dibituhkan) -- setiap parameter terdiri dari tipe data specifier yang diikuti oleh identifier . Parameter yang berbeda dipisahkan oleh koma (,).
  • statements -- bagian dari fungsi yang biasanya ditandai dengan kurung {}

Contoh :

int main(int a, int b)
{
int r;
r=a+b;
return (r);
}


Dan ada juga fungsi yang tidak memiliki tipe. Contoh :

void printmessage ()
{
cout << "I'm a function!"; --- langsung perintah print pada statementnya
}

The Selective Structure - Switch

switch (expression)
{
case constant1:
group of statements 1;
break;
case constant2:
group of statements 2;
break;
.
.
.
default:
default group of statements
}



Urutan proses: switch mengevaluasi ekspresi dan mengecek apakah ekuivalen dengan constant1. Jika iya, akan dieksekusi statement-statement1 sampai tiba di break statement. Saat sampai, program akan berakhir.

JIka tidak, akan dicek ke constant2. Bila ekuivalen dengan constant2, proses yang dijalankan juga sama dengan di atas.

Akhirnya , jika nilai ekspresi tidak ada yang cocok dengan constant2 sebelumnya ( dapat menambah case label sebagai nilai yang ingin dicek) , program akan eksekusi statement setelah default: label, jika ada .

Pengulangan pada C++

while loop
Format :

while (expression) statement


Fungsinya untuk mengulang statement saat kondisinya adalah true.

Contoh:

 while (n>0) {
cout << class="str">", ";
--n;
}

do-while loop
Format :

do statement while (condition);


Fungsinya sama persis dengan while loop, kecuali kondisi pada do-while dievaluasi setelah statement dieksekusi, palong sedikit satu kali meskipun kondisinya tidak pernah tercapai.

Contoh :

do {
cout << "Enter number (0 to end): ";
cin >> n;
cout << "You entered: " << class="str">"\n";
} while (n != 0);


for loop
Format :

for (initialization; condition; increase) statement;


Fungsinya untuk mengulang statement saat kondisinya true. Dan dilakukan penulisan specific location (ada inisialisasi statement dan increase statement). Loop ini dirancang untuk melakukan repetition dengan sebuah counter yang diinisialisasi dan akan bertambah di masing-masing iteration.

Contoh :
 for (int n=10; n>0; n--) {
cout << class="str">", ";
}

Conditional Statement pada c++

If digunakan untuk mengeksekusi sebuah statement maupun blok statement hanya bila kondisinya terpenuhi.

Saat kondisi dari ekspresi dievaluasi , bila bernilai true maka statement akan dijalankan. Sedangkan bila bernilai false, statement tidak dijalankan dan program berlanjut sampai selesai.

Contohnya :

Program untuk mencetak x is 100 hanya bila nilai yang disimpan di variabel x benar-benar 100 :

if (x == 100)
cout << "x is 100";

or

if (x == 100)
{
cout << "x is ";
cout << x;
}

Dapat menambahkan specify lain bila kondisi tidak terpenuhi dengan menggunakan keyword lainnya :

if (x == 100)
cout << "x is 100"; else
cout << "x is not 100";

Dapat digunakan untuk menunjukkan x is positive, negative or bukan keduanya (mis. 0):

if (x > 0)
cout << "x is positive";
else if (x < 0)
cout << "x is negative";
else
cout << "x is 0";


Note : Bila menginginkan lebih dari satu statement yang dijalankan, maka harus di-group dan diberikan tanda kurung {}.

Dua Objek pada Satu Kelas

// contoh: satu kelas, dua objek
#include
using namespace std;

class CRectangle {
int x, y;
public:
void set_values (int,int);
int area () {return (x*y);}
};

void CRectangle::set_values (int a, int b) {
x = a;
y = b;
}

int main () {
CRectangle rect, rectb;
rect.set_values (3,4);
rectb.set_values (5,6);
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
return 0;
}

Salah satu keunggulan dari kelas adalah dapat mendeklarasikan beberapa objek. Misalnya, kelas CRectangle, yang mendeklarasikan objek rectb sebagai tambahan dari objek rect.
Yang masing-masing memiliki anggota variabel serta fungsi sendiri .

Panggilan terhadap rect.area() tidak memberikan hasil yang sama dengan panggilan terhadap rectb.area(). Karena CRectangle memiliki variable x dan y serta memiliki anggota fungsi sendiri members set_value() and area() yang digunakan masing-masing untuk dioperasikan.

Konsep dasar dari object-oriented programming:
Data dan fungsi adalah bagian dari objek.

Yang Terbaik dari C++

Setelah membaca posting saya sebelumnya, tentang pengenalan, detail tentang c++, tentu saja diketahui bahwa C++ merupakan pemrograman yang berorientasi pada objek.

Object-oriented programs lebih mudah untuk dimengerti, dibenarkan serta dimodifikasi. Banyak bahasa yang berorientasi objek telah ditemukan, diantaranya adalah Smalltalk.

Keunggulan dari C++ :

Senin, 14 September 2009

Operator pada C++

C++ memiliki lebih dari 30 operator, melingkupi aritmatika dasar, bit manipulation, indirection, perbandingan, operator logika dan lain-lain.


Dan masih banyak lagi operator.

Hampir semua operator dapat overloading untuk setiap tipe, dengan pengecualian (. dan.*). Overloading sebuah operator tidak merubahaturan kalkulasi operator yang seharusnya, dan juga tidak merubah jumlah operand yang opertaor gunakan .

Konstanta pada C++

INTEGER NUMERAL

1776
707
-273

Di atas adalah angka-angka yang termasuk ke nilai desimal integer .
Dan tidak memiliki aturan penulisan quote (") pada karakter spesial.

C++ juga mengizinkan penggunaan konstanta bilangan oktal (basis 8) dan heksadesimal (basis 16).
Jika ingin menggunakan octal number harus dimulai dengan angka 0 (zero ).
Dan bila ingin menggunakan hexadecimal number harus dimulai dengan 0x (zero, x).


Contoh :
75 // decimal
0113 // octal
0x4b // hexadecimal



CHARACTER dan STRING

x // string
'x' // character

x akan menunjukkan huruf x itu sendiri, sedangkan 'x' (menggunakan kutip satu ) menunjukkan karakter konstan 'x'.

Pemahaman character dan string memiliki sedikit keanehan, seperti kode untuk melarikan diri. Karena itu karakter-karakter spesial diekspresikan saat menulis source code program dengan penulisan backslash (\).


Inisialisasi Variabel

Saat mendeklarasi variabel lokal, bila ingin menyimpan nilai di waktu yang sama saat dideklarasikan, juga bisa dengan menginisialisasikan variabel.

Ada 2 cara untuk melakukan di c++ :

Yang pertama, dikenal dengan nama c-like, dilakukan dengan menuliskan tanda sama dengan diikuti dengan nilai yang ingin diinisialisasi :

type identifier = initial_value ;

Contoh:

int a = 0 ;



Yang kedua, dikenal dengan nama constructor initialization, dilakukan dengan menggunakan tanda kurung (()) :

type identifier (initial_value) ;

Contoh :

int a(0);

Keduanya dapat digunakan dan ekuivalen pada pemrograman C++.

Penggunaan Variabel

Semua variabel yang digunakan dalam pembuatan program harus dideklarasikan pada awal coding, sama seperti di awal fungsi main dideklarasikan a, b dan hasil termasuk tipe int.

Variabel dapat berupa scope global atau lokal.
Variabel global adalah variabel yang dideklarasikan di main body source code, di luar semua fungsi.



Variabel lokal dibatasi oleh tanda kurung ({}) di tempat dideklarasikan.
Variabel lokal ini tidak bisa diakses dari fungsi yang lain.

Deklarasi Variabel

Untuk menggunakan variabel pada C++, pertama-tama harus mendeklarasikan dulu tipe data yang ingin digunakan.Syntax penulisannya adalah dengan menspesifikasikan tipe data (misal : int, bool, float...) dan diikuti valid variable identifier.

Contoh :

int a; -- tipe data int, identifier a
float mynumber; -- tipe data float, identifier my number


Jika ingin mendeklarasikan lebih dari satu identifier juga bisa, tapi harus memiliki tipe data yang sama. Penulisannya bisa dipisahkan dengan koma (,) :

int a, b, c;

atau

int a;
int b;
int c;



Contoh program :
// variabel yang dideklrasi

#include
using namespace std;

int main ()
{
// deklarasi variabel:
int a, b;
int result;

// proses:
a = 5;
b = 2;
a = a + 1;
result = a - b;

// cetak result:
cout << result;

// program dijalankan:
return 0;
}

Tipe Data Fundamental

Saat membuat program, variabel yang dibuat disimpan pada memori komputer,tapi komputer harus tahu tipe data apa yang disimpan, karena cakupan memori yang dibutuhkan pun berbeda, serta cara interpretasinya pun beda.

Memori dalam komputer dihitung dalam satuan byte.
Satu byte adalah satuan minimum memori yang dapat digunakan dalam C++. Satu byte ini juga dapat menyimpan data : satu single character atau small integer
(generally an integer between 0 and 255). Dan nyatanya, komputer juga dapat memanipulasi tipe data kompleks dari long - numbers atay non-integer numbers.

Komentar pada C++

Komentar adalah sebuah teks yang tidak dianggap ada oleh compiler namun sangat berguna sekali untuk programmer.Komentar biasanya digunakan untuk menuliskan keterangan-keterangan untuk referensi selanjutnya.

Komentar mempiliki tujuan, yaitu untuk mengizinkan programmer agar dapat menyisipkan catatan-catatan penting di dalam source code.
Komentar juga dapat digunakan untuk mengetes beberapa baris kode dapat dijalankan atau tidak.

Cara penulisan komentar pada C++ :

  • /* (slash, asterisk) karakter, diikuti urutan karakter lainnya (bisa jadi baris baru) , lalu kembali diikuti */ karakter. Syntax ini dinamakan ANSI C.
  • The // (2 slashes) karakter, diikuti urutan karakter lainnya. Biasanya disebut single-line comment.



Contoh program :
/*program ke2 di C++
dengan komentar */

#include
using namespace std;

int main ()
{
cout << "Hello World! "; // cetak Hello World!
cout << "I'm a C++ program"; // cetak I'm a C++ program
return 0;
}


Penulisan komentar pada C++ hanya akan dianggap sebagai ekspresi oleh compiler C++, karena mungkin akan menyebabkan satu atau beberapa error message saat dicompile.

Struktur Program .. 2

Pada posting sebelumnya , sudah dipelajari bagaimana menulis kode.

Program ini sudah dituliskan di baris yang berbeda agar lebih mudah dibaca, tapi pada C++, tidak ada peraturan yang ketat untuk membagi kode di beberapa baris.

Contoh :
int main ()
{
cout << " Hello World!";
return 0;
}

Dapat juga ditulis :

int main (){ cout << " Hello World!"; return 0;}


Keduanya merupakan penulisan yang memiliki maksud sama, dan saat dijalankan programnya akan menghasilkan hasil yang sama.

Pada C++, pemisahan statement dilakukan dengan menggunakan semicolon (;) di akhir masing-masing statement. Hal ini juga dilakukan agar lebih mudah dibaca serta dimengerti.

Struktur Program .. 1

Dan berikut ini adalah cara penulisan program di C++ :

// program pertama di C++

#include
using namespace std;

int main ()
{
cout << "Hello World!"; // cetak Hello World!
return 0;
}


Ini adalah sedikit keterangan dari masing-masing bagian yang ada pada kode di atas :

// program pertama di C++
Ini adalah baris komentar. Semua baris yang diawali dengan dua slash (//) dianggap sebagai komentar dan tidak memiliki efek apapun pada program. Programer dapat menggunakanny untuk memberikan penjelasan singkat tentang program itu sendiri.

#include
Baris yang dimulai dengan tanda hash (#) dianggap sebagai preprosesor. BUkan merupakan barisan kode dengan ekspresi tapi merupakan indikasi dari preprosesor compiler.Contohnya #include merupakan preprocessor untuk mengikutsertakan iostream standard file. Iostream ini adalad deklarasi input-output standard di C++, dan fungsinya akan digunakan nanti di programnya.

using namespace std;
Semua elemen standar C++ dideklarasikan oleh namespace, yang diberi nama std. Elemen ini digunakan sebagai standard library, dan faktanya seringkali digunakan setiap source code.

int main ()
Ini adalah awal dari pendefinisian fungsi main. Disini adalah awal dari suatu program dijalankan pada source code. Dan tidak ada masalah bila ada pula fungsi-fungsi yang lainnya, tetap fungsi main saja yang dijalankan. Maka sangat penting, di C++ untuk memiliki fungsi main.

Penulisan (()) setelah main karena ini adalah deklarasi suatu fungsi. Dan ada juga beberapa parameter yang dituliskan di dalam tanda kurung tersebut.

Setelah itu penulisan ({}) sebagai tempat yang berisi langkah-langkah fungsi saat dijalankan.

cout << "Hello World!";
Ini adalah baris statement. Dan hanya menjalankan hal yang sifatnya visible saat dijalankan hasilnya.

cout adalah standard output stream di C++, dan lanjutannya adalah karakter-karakter apa yang diinginkan untuk keluar sebagai tampilan output di layar.

cout sudah dideklarasikan pada iostream standard file dengan nama std namespace, maka dari itiu dibutuhkan specific file dan namespace di awal code.
Akhir statement , seperti biasa, diakhiri dengan tanda semicolon character (;).

return 0;
Statement return ini menyebabkan fungsi main selesai. Biasanya diinterpretasikan agar program yang dijalankan terhindar dari error.

Pengenalan C++

Pertama kali mendengar tentang C++, mungkin akan ada beberapa orang yang mengerutkan kening. Dan mungkin ada juga yang berpikir itu adalah salah satu fungsi matematika. Ternyata , keduanya bukan yang dimaksud dari C++.

Dan ini adalah penjelasan mengenai C++ :

C++ (dieja "C plus plus") adalah bahasa pemrograman yang multi paradigma, bebas, bisa dicompile. Ditemukan oleh Bjarne Stroustrup pada tahun 1979, dengan nama asli "C with Classes". Dan diubah namanya menjadi C++ pada tahun 1983.

C++ digunakan untuk industri software, dan termasuk salah satu dari bahasa pemrograman yang populer. Beberapa aplikasinya termasuk sistem software, aplikasi software, software embeddedm aplikasi client dan lain-lain. Dan ada juga yang menyediakan compiler gratis, seperti GNU Project, Borland, Microsoft, dan lain-lain.

Pertama-tama dimulai dari adanya kelas, lalu fungsi virtual, operator overloading, multiple inheritance, templates dan excepteion handling di antaranya. Setelah beberapa tahun, C++ diratifikasi pada tahun 1998 sebagai ISO.IEC 14882:1998. Lalu ada juga standard versi lainnya, yaitu C++ox yang muncul pada tahun 2003.


Langkah terbaik agar semakin lancar membuat coding adalah dengan modifikasi dan menambah fungsi baru ke program yang benar-benar dimengerti.


Say HI ...

Hi..Ini adalah blog saya yang ke-3..
Dua blog lainnya saya buat di blogspot ini dan wordpress. Tapi sayangnya saya kadang tidak mempunyai cukup waktu untuk meng-update blog-blog tersebut. Dan ternyata, saya masih harus membuat jenis blog yang sama untuk mata kuliah di semester 3 ini di Universita Bina Nusantara. Yang pada Bahasa Indonesia disebut Pemrograman Berorientasi Objek dnegan dosennya Mr. Hendra,S.Kom.,MT.

Dan akhirnya , saya pun harus memulai blog ini.
Akan ada beberapa pemahaman mengenai program c++ serta codingan program c++.


Hormat,


Noviandita . P . H