• Tidak ada hasil yang ditemukan

Objek dan Kelas C ++

Dalam dokumen MODUL PRAKTIK TA. 2020/2021 (Halaman 143-157)

Tujuan :

Mahasiswa dapat menggunakan Objek dan Kelas C ++, Pembuat C ++, dalam pembuatan program.

Sebagai latihan untuk meningkatkan kemampuan dalam membuat program.

Kelas dan Objek C ++

Dalam bagian ini, kita akan belajar tentang objek dan kelas dan bagaimana menggunakannya dalam C ++ dengan bantuan contoh. Dalam bagian sebelumnya, kita belajar tentang fungsi dan variabel. Terkadang diinginkan untuk meletakkan fungsi dan data terkait di satu tempat sehingga logis dan lebih mudah untuk dikerjakan.

Misalkan, kita perlu menyimpan panjang, lebar, dan tinggi sebuah ruangan persegi panjang dan menghitung luas dan volumenya. Untuk menangani tugas ini, kita dapat membuat tiga variabel, katakanlah, panjang , lebar , dan tinggi bersama dengan fungsi calculateArea() dan calculateVolume() .

Namun, di C ++, daripada membuat variabel dan fungsi terpisah, kita juga bisa menggabungkan data dan fungsi terkait ini di satu tempat (dengan membuat objek ).

Paradigma pemrograman ini dikenal dengan istilah pemrograman berorientasi objek.

Tetapi sebelum kita dapat membuat objek dan menggunakannya dalam C ++, pertama-tama kita perlu belajar tentang kelas .

Kelas C ++

Kelas adalah cetak biru untuk objek tersebut.

Kita dapat menganggap kelas sebagai sketsa (prototipe) sebuah rumah. Ini berisi semua detail tentang lantai, pintu, jendela, dll. Berdasarkan uraian ini kami membangun rumah.

Rumah adalah objeknya.

Buat Kelas

Kelas didefinisikan dalam C ++ menggunakan class kata kunci diikuti dengan nama kelas.

Badan kelas ditentukan di dalam tanda kurung kurawal dan diakhiri dengan titik koma di bagian akhir.

class className { // some data // some functions };

Sebagai contoh,

Modul Praktek Bahasa C++ Shell Marto Sihombing class Room { public: double length; double breadth; double height; double calculateArea(){ return length * breadth; }

double calculateVolume(){ return length * breadth * height; } };

Di sini, kami mendefinisikan kelas bernama Room .

Variabel panjang , lebar , dan tinggi yang dideklarasikan di dalam kelas dikenal sebagai anggota data . Dan, fungsi calculateArea() dan calculateVolume() dikenal sebagai fungsi anggota kelas.

Objek C ++

Ketika kelas didefinisikan, hanya spesifikasi untuk objek yang ditentukan; tidak ada memori atau penyimpanan yang dialokasikan.

Untuk menggunakan data dan fungsi akses yang ditentukan di kelas, kita perlu membuat objek.

Sintaks untuk Mendefinisikan Objek di C ++

className objectVariableName;

Kita dapat membuat objek kelas Room (didefinisikan dalam contoh di atas) sebagai berikut:

// sample function void sampleFunction() { // create objects Room room1, room2; } int main(){ // create objects Room room3, room4; }

Di sini, dua objek room1 dan room2 dari kelas Room dibuat di sampleFunction() . Demikian pula, objek room3 dan room4 dibuat di main() .

Seperti yang bisa kita lihat, kita dapat membuat objek kelas dalam fungsi apa pun dari program. Kita juga dapat membuat objek kelas di dalam kelas itu sendiri, atau di kelas lain.

Juga, kita dapat membuat objek sebanyak yang kita inginkan dari satu kelas.

C ++ Akses Anggota Data dan Fungsi Anggota

Kita dapat mengakses data anggota dan fungsi anggota kelas dengan menggunakan file . operator (titik). Sebagai contoh,

room2.calculateArea();

Ini akan memanggil fungsi calculateArea() di dalam kelas Room untuk objek room2 . Demikian pula, data anggota dapat diakses sebagai:

room1.length = 5.5;

Dalam hal ini, ia menginisialisasi variabel panjang ruangan1 hingga 5.5 . Contoh 1: Objek dan Kelas dalam Pemrograman C ++

// Program to illustrate the working of // objects and class in C++ Programming

#include <iostream>

using namespace std; // create a class

class Room { public: double length; double breadth; double height; double calculateArea() { return length * breadth; } double calculateVolume() { return length * breadth * height; } };

int main() { // create object of Room class Room room1; // assign values to data members room1.length = 42.5;

Modul Praktek Bahasa C++ Shell Marto Sihombing

room1.breadth = 30.8; room1.height = 19.2; // calculate and display the area and volume of the room cout << "Area of Room = " << room1.calculateArea() << endl;

cout << "Volume of Room = " << room1.calculateVolume() << endl;

return 0; } Keluaran

Luas Kamar = 1309 Volume Kamar = 25132,8

Dalam program ini, kita telah menggunakan class Room dan objeknya room1 untuk menghitung luas dan volume ruangan.

Di main() , kami menetapkan nilai panjang , lebar , dan tinggi dengan kode:

room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2;

Kami kemudian memanggil fungsi calculateArea() dan calculateVolume() untuk melakukan kalkulasi yang diperlukan.

Perhatikan penggunaan kata kunci public dalam program tersebut. Ini berarti anggotanya bersifat publik dan dapat diakses di mana saja dari program.

Sesuai kebutuhan kami, kami juga dapat membuat anggota pribadi menggunakan kata kunci private . Anggota privat kelas hanya dapat diakses dari dalam kelas. Sebagai contoh, class Test { private:

int a; void function1() { } public: int b;

void function2() { } }

Here, a and function1() are private and are. Thus they cannot be accessed from outside the class.

Di sisi lain, b dan function2() dapat diakses dari mana saja di dalam program.

Contoh 2: Menggunakan publik dan pribadi di Kelas C ++

// Program to illustrate the working of // public and private in C++ Class

#include <iostream>

using namespace std;

class Room { private: double length; double breadth; double height;

public: // function to initialize private variables

void getData(double len, double brth, double hgt) { length = len; breadth = brth; height = hgt; } double calculateArea() { return length * breadth; } double calculateVolume() { return length * breadth * height; } };

int main() { // create object of Room class Room room1; // pass the values of private variables as arguments room1.getData(42.5, 30.8, 19.2);

cout << "Area of Room = " << room1.calculateArea() << endl;

cout << "Volume of Room = " << room1.calculateVolume() << endl;

return 0; } Keluaran

Luas Kamar = 1309 Volume Kamar = 25132,8

Modul Praktek Bahasa C++ Shell Marto Sihombing Contoh di atas hampir identik dengan contoh pertama, kecuali bahwa variabel kelas sekarang bersifat pribadi.

Karena variabel sekarang bersifat pribadi, kita tidak dapat mengaksesnya langsung dari main() . Karenanya, menggunakan kode berikut tidak valid:

// invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;

Sebagai gantinya, kami menggunakan fungsi publik getData() untuk menginisialisasi variabel privat melalui parameter fungsi double len , double brth , dan double hgt . Pembuat C ++

Dalam bagian ini, kita akan belajar tentang konstruktor C ++ dan tipenya dengan contoh bantuan.

Konstruktor adalah tipe khusus dari fungsi anggota yang dipanggil secara otomatis ketika sebuah objek dibuat.

Dalam C ++, konstruktor memiliki nama yang sama dengan kelas dan tidak memiliki tipe kembalian. Sebagai contoh,

class Wall { public: // create a constructor Wall() { // code } };

Di sini, fungsi Wall() adalah konstruktor Wall kelas. Perhatikan bahwa konstruktor

memiliki nama yang sama dengan kelasnya,

tidak memiliki tipe pengembalian, dan

adalah public

Pembuat Default C ++

Konstruktor tanpa parameter dikenal sebagai konstruktor default . Dalam contoh di atas, Wall() adalah konstruktor default.

Contoh 1: Pembuat Default C ++

// C++ program to demonstrate the use of default constructor

#include <iostream>

using namespace std; // declare a class class Wall { private: double length; public: // create a constructor Wall() { // initialize private variables length = 5.5; cout << "Creating a wall."

<< endl; cout << "Length = " << length << endl; } }; int main() { // create an object Wall wall1; return 0; }

Keluaran:

Membuat Dinding Panjang = 5,5

Di sini, ketika objek wall1 dibuat, konstruktor Wall() dipanggil. Ini menetapkan variabel panjang objek menjadi 5.5 .

Catatan: Jika kita belum mendefinisikan konstruktor di kelas kita, maka compiler C ++

secara otomatis akan membuat konstruktor default dengan kode kosong dan tanpa parameter.

C ++ Pembuat Parameter

Dalam C ++, konstruktor dengan parameter dikenal sebagai konstruktor berparameter. Ini adalah metode yang disukai untuk menginisialisasi data anggota

Modul Praktek Bahasa C++ Shell Marto Sihombing Contoh 2: C ++ Parameterized Constructor

// C++ program to calculate the area of a wall #include <iostream> using namespace std; //

declare a class class Wall { private: double length; double height; public: // create parameterized constructor Wall(double len, double hgt) { // initialize private variables length = len; height = hgt; } double calculateArea() { return length * height; } }; int main() { // create object and initialize data members Wall wall1(10.5, 8.6); Wall wall2(8.5, 6.3);

cout << "Area of Wall 1: " << wall1.calculateArea() << endl; cout << "Area of Wall 2: "

<< wall2.calculateArea() << endl; return 0; } Keluaran:

Luas Tembok 1: 90.3 Luas Tembok 2: 53.55

Di sini, kami telah membuat konstruktor parameterized Wall() yang memiliki 2 parameter:

double len dan double hgt . Nilai-nilai yang terkandung dalam parameter ini digunakan untuk menginisialisasi panjang dan tinggi variabel anggota.

Saat kami membuat objek kelas Room , kami meneruskan nilai untuk variabel anggota sebagai argumen. Kode untuk ini adalah:

Wall wall1(10.5, 8.6); Wall wall2(8.5, 6.3);

Dengan variabel anggota yang diinisialisasi, sekarang kita dapat menghitung luas dinding dengan fungsi calculateArea() .

Pembuat Salinan C ++

Konstruktor salinan di C ++ digunakan untuk menyalin data dari satu objek ke objek lainnya

Contoh 3: Pembuat Salinan C ++

#include <iostream>

using namespace std; // declare a class class Wall { private: double length; double height;

public: // parameterized constructor Wall(double len, double hgt) { // initialize private variables length = len; height = hgt; } // copy constructor with a Wall object as parameter Wall(Wall &obj) { // initialize private variables length = obj.length; height = obj.height; } double calculateArea() { return length * height; } };

int main() { // create an object of Wall class Wall wall1(10.5, 8.6); // print area of wall1 cout << "Area of Room 1: " << wall1.calculateArea() << endl; // copy contents of room1 to another object room2 Wall wall2 = wall1; // print area of wall2 cout << "Area of Room 2: " << wall2.calculateArea() << endl;

return 0; } Keluaran

Luas Kamar 1: 90.3 Luas Kamar 2: 90.3

Dalam program ini, kami telah menggunakan konstruktor salinan untuk menyalin konten dari satu objek kelas Wall ke objek lain. Kode dari konstruktor salinan adalah:

Room(Room &obj) { length = obj.length; height = obj.height; }

Perhatikan bahwa parameter konstruktor ini memiliki alamat objek kelas Wall .

Kami kemudian menetapkan nilai variabel dari objek pertama ke variabel yang sesuai dari objek kedua. Beginilah cara konten objek disalin.

Modul Praktek Bahasa C++ Shell Marto Sihombing Di main() , kita lalu buat dua objek wall1 dan wall2 lalu copy isi objek pertama ke objek kedua dengan kode

Wall wall2 = wall1;

Catatan : Konstruktor terutama digunakan untuk menginisialisasi objek. Mereka juga digunakan untuk menjalankan kode default ketika sebuah objek dibuat.

C ++ Operator Overloading

Dalam bagian ini, kita akan belajar tentang operator overloading dengan bantuan contoh.

Di C ++, kita dapat mengubah cara kerja operator untuk tipe yang ditentukan pengguna seperti objek dan struktur. Ini dikenal sebagai kelebihan beban operator . Sebagai contoh, Misalkan kita telah membuat tiga objek c1 , c2 dan hasil dari kelas bernama Complex yang merepresentasikan bilangan kompleks.

Karena kelebihan beban operator memungkinkan kita untuk mengubah cara kerja operator, kita dapat mendefinisikan kembali cara kerja operator + dan menggunakannya untuk menambahkan bilangan kompleks c1 dan c2 dengan menulis kode berikut:

result = c1 + c2;

bukannya sesuatu seperti result = c1.addNumbers(c2);

Ini membuat kode kami intuitif dan mudah dipahami.

Catatan: Kita tidak bisa menggunakan operator overloading untuk tipe data fundamental seperti int , float , char dan sebagainya.

Sintaks untuk C ++ Operator Overloading

Untuk membebani operator, kami menggunakan fungsi operator khusus.

class className { ... .. ... public returnType operator symbol (arguments) { ... .. ... } ... .. ...

};

Sini,

returnType adalah tipe hasil dari fungsi.

operator adalah kata kunci.

symbol adalah operator yang ingin kita overload. Seperti: + , < , - , ++ , dll.

arguments adalah argumen yang diteruskan ke fungsi Operator Overloading di Unary Operator

Operator unary hanya beroperasi pada satu operan. Operator increment ++ dan operator decrement -- adalah contoh operator unary

Contoh1: ++ Operator (Unary Operator) Overloading

// Overload ++ when used as prefix #include <iostream> using namespace std; class Count { private: int value; public: // Constructor to initialize count to 5 Count() : value(5) {} //

Overload ++ when used as prefix void operator ++ () { ++value; } void display() { cout <<

"Count: " << value << endl; } }; int main() { Count count1; // Call the "void operator ++

()" function ++count1; count1.display(); return 0; } Keluaran

Hitung: 6

Di sini, saat kita menggunakan ++count1; , void operator ++ () dipanggil. Ini meningkatkan atribut nilai untuk objek count1 sebesar 1.

Catatan: Saat kami membebani operator, kami dapat menggunakannya untuk bekerja sesuka kami. Misalnya, kita dapat menggunakan ++ untuk meningkatkan nilai sebesar 100.

Modul Praktek Bahasa C++ Shell Marto Sihombing Namun, ini membuat kode kami membingungkan dan sulit dipahami. Tugas kami sebagai programmer adalah menggunakan operator overloading dengan benar dan dengan cara yang konsisten dan intuitif.

Contoh di atas hanya berfungsi jika ++ digunakan sebagai awalan. Untuk membuat ++

berfungsi sebagai postfix kami menggunakan sintaks ini.

void operator ++ (int) { // code }

Perhatikan int di dalam tanda kurung. Ini sintaks yang digunakan untuk menggunakan operator unary sebagai postfix; itu bukan parameter fungsi.

Contoh 2: ++ Operator (Unary Operator) Overloading // Overload ++ when used as prefix and postfix

#include <iostream>

using namespace std;

class Count { private: int value;

public: // Constructor to initialize count to 5 Count() : value(5) {} // Overload ++ when used as prefix void operator ++ () { ++value; } // Overload ++ when used as postfix void operator ++ (int) { ++value; }

void display() { cout << "Count: " << value << endl; } };

int main() { Count count1; // Call the "void operator ++ (int)" function count1++;

count1.display(); // Call the "void operator ++ ()" function ++ count1;

count1.display();

return 0; } Keluaran Hitung: 6 Hitung

Contoh 2 berfungsi ketika ++ digunakan sebagai prefiks dan postfix. Namun, itu tidak berhasil jika kita mencoba melakukan sesuatu seperti ini:

Count count1, result; // Error result = ++count1;

Ini karena jenis kembalian dari fungsi operator kami tidak void . Kita dapat menyelesaikan masalah ini dengan menjadikan Count sebagai tipe kembalian dari fungsi operator.

// return Count when ++ used as prefix Count operator ++ () { // code } // return Count when ++ used as postfix Count operator ++ (int) { // code }

Contoh 3: Nilai Pengembalian dari Fungsi Operator (++ Operator)

#include <iostream>

using namespace std;

class Count { private: int value; public : // Constructor to initialize count to 5 Count() : value(5) {} // Overload ++ when used as prefix Count

operator ++ () { Count temp; // Here, value is the value attribute of the calling object temp.value = ++value; return temp; } // Overload ++ when used as postfix Count operator ++ (int) {

Count temp; // Here, value is the value attribute of the calling object temp.

Modul Praktek Bahasa C++ Shell Marto Sihombing

Di sini, kami telah menggunakan kode berikut untuk overloading operator prefiks:

// Overload ++ when used as prefix Count operator ++ () { Count temp; // Here, value is the value attribute of the calling object temp.value = ++value; return temp; }

Kode untuk overloading operator postfix juga sama. Perhatikan bahwa kita telah membuat temp objek dan mengembalikan nilainya ke fungsi operator.

Perhatikan juga kodenya temp.value = ++value;

Nilai variabel milik objek count1 di main() karena count1 memanggil fungsi, sedangkan temp.value milik objek temp .

Overloading Operator di Operator Biner

Operator biner mengerjakan dua operan. Sebagai contoh, result = num + 9;

Di sini, + adalah operator biner yang bekerja pada operan num dan 9 .

Saat kami membebani operator biner untuk tipe yang ditentukan pengguna dengan menggunakan kode:

obj3 = obj1 + obj2;

Fungsi operator dipanggil menggunakan objek obj1 dan obj2 dilewatkan sebagai argumen ke fungsi tersebut.

Contoh 4: C ++ Binary Operator Overloading

// C++ program to overload the binary operator + // This program adds two complex numbers

#include <iostream>

using namespace std;

class Complex { private: float real; float imag; public: // Constructor to initialize real and imag to 0

Complex() : real(0), imag(0) {}

void input() { cout << "Enter real and imaginary parts respectively: ";

cin >> real; cin >> imag; } // Overload the + operator Complex operator + (const Complex& obj) {

Complex temp; temp.real = real + obj.real; temp.imag = imag + obj.imag; return temp; }

void output() {

Modul Praktek Bahasa C++ Shell Marto Sihombing if (imag < 0)

cout << "Output Complex number: " << real << imag << "i";

else cout << "Output Complex number: " << real << "+" << imag << "i"; } };

int main() { Complex complex1, complex2, result;

cout << "Enter first complex number:\n"; complex1.input();

cout << "Enter second complex number:\n"; complex2.input(); //

complex1 calls the operator function // complex2 is passed as an argument to the function result = complex1 + complex2; result.output();

return 0; } Keluaran

Masukkan bilangan kompleks pertama:

Masukkan bagian nyata dan imajiner masing-masing: 9 5 Masukkan bilangan kompleks kedua:

Masukkan bagian nyata dan imajiner masing-masing: 7 6 Output Bilangan Kompleks: 16 + 11i

Dalam program ini, fungsi operatornya adalah:

Complex operator + (const Complex& obj) { // code } Alih-alih ini, kami juga bisa menulis fungsi ini seperti:

Complex operator + (Complex obj) { // code } Namun,

menggunakan & membuat kode kita efisien dengan mereferensikan objek complex2 daripada membuat objek duplikat di dalam fungsi operator.

menggunakan const dianggap sebagai praktik yang baik karena mencegah fungsi operator memodifikasi kompleks2 .

Membebani operator biner di C ++

Hal yang Perlu Diingat di C ++ Operator Overloading

1. Dua operator = dan & sudah kelebihan beban secara default di C ++. Misalnya, untuk menyalin objek dari kelas yang sama , kita bisa langsung menggunakan operator = . Kami tidak perlu membuat fungsi operator.

Modul Praktek Bahasa C++ Shell Marto Sihombing 2. Beban berlebih operator tidak dapat mengubah prioritas dan asosiasi operator .

Namun, jika kita ingin mengubah urutan evaluasi, gunakan tanda kurung.

3. Ada 4 operator yang tidak dapat kelebihan beban di C ++. Mereka:

a. :: (resolusi lingkup) b. . (pemilihan anggota)

c. .* (pemilihan anggota melalui penunjuk ke fungsi) d. ?: (operator terner)

Contoh 3: Kalkulator sederhana menggunakan templat Kelas

Program untuk menambah, mengurangi, mengalikan dan membagi dua angka menggunakan templat kelas

#include <iostream>

using namespace std;

template <class T> class Calculator { private: T num1, num2;

template <class T> class Calculator { private: T num1, num2;

public: Calculator(T n1, T n2) { num1 = n1; num2 = n2; } void displayResult() { cout

<< "Numbers are: " << num1 << " and " << num2 << "." << endl;

cout << "Addition is: " << add() << endl; cout << "Subtraction is: " << subtract() <<

endl; cout << "Product is: " << multiply() << endl;

cout << "Division is: " << divide() << endl; } T add() { return num1 + num2; }

T subtract() { return num1 - num2; } T multiply() { return num1 * num2; } T divide() { return num1 / num2; } };

Modul Praktek Bahasa C++ Shell Marto Sihombing int main() { Calculator<int> intCalc(2, 1); Calculator<float> floatCalc(2.4, 1.2);

cout << "Int results:" << endl; intCalc.displayResult();

cout << endl << "Float results:" << endl;

floatCalc.displayResult();

return 0; } Keluaran Hasil Int:

Angka tersebut adalah: 2 dan 1.

Penambahannya adalah: 3 Pengurangan adalah: 1 Produk adalah: 2 Divisi adalah: 2 Hasil mengambang:

Angka-angka tersebut adalah: 2.4 dan 1.2.

Penambahannya adalah: 3.6 Pengurangan adalah: 1.2 Produk adalah: 2.88 Divisi adalah: 2

Dalam program di atas, templat kelas Calculator dideklarasikan.

Kelas berisi dua anggota pribadi tipe T : num1 & num2 , dan konstruktor untuk menginitalisasi anggota.

Ini juga berisi fungsi anggota publik untuk menghitung penambahan, pengurangan, perkalian dan pembagian bilangan yang mengembalikan nilai tipe data yang ditentukan oleh pengguna. Begitu juga dengan fungsi displayResult() untuk menampilkan hasil akhir ke layar.

Dalam fungsi main() , dua objek Calculator berbeda intCalc dan floatCalc dibuat untuk tipe data: int dan float masing-masing. Nilai diinisialisasi menggunakan konstruktor.

Perhatikan kami menggunakan <int> dan <float> saat membuat objek. Ini memberi tahu compiler tipe data yang digunakan untuk pembuatan kelas.

Ini menciptakan definisi kelas masing-masing untuk int dan float , yang kemudian digunakan sesuai.

Kemudian, displayResult() dari kedua objek dipanggil yang menjalankan operasi Kalkulator dan menampilkan hasilnya.

Soal Modul ke – 11

 Masalah : buatlah Program untuk menampilkan :

 Solusi, Algoritma

 Flowchart

 Program

Modul Praktek Bahasa C++ Shell Marto Sihombing

Modul ke –12

Struktur C ++

Mahasiswa dapat menggunakan Struktur C ++ dalam pembuatan program.

Sebagai latihan untuk meningkatkan kemampuan dalam membuat program.

Struktur C ++

Kita akan mempelajari tentang struktur dalam pemrograman C ++; apa itu, bagaimana mendefinisikannya dan menggunakannya dalam program Anda. Struktur adalah kumpulan variabel dari tipe data yang berbeda di bawah satu nama. Ini mirip dengan kelas dalam hal itu, keduanya menyimpan kumpulan data dari tipe data yang berbeda.

Misalnya:kita ingin menyimpan beberapa informasi tentang seseorang: namanya, nomor kewarganegaraan dan gajinya.kita dapat dengan mudah membuat nama variabel yang berbeda , citNo, gaji untuk menyimpan informasi ini secara terpisah.

Namun, di masa mendatang,kita ingin menyimpan informasi tentang banyak orang.

Sekarang,kita perlu membuat variabel berbeda untuk setiap informasi per orang: nama1, citNo1, gaji1, nama2, citNo2, gaji2

Anda dapat dengan mudah memvisualisasikan seberapa besar dan berantakan tampilan kode tersebut. Juga, karena tidak ada hubungan antara variabel (informasi) yang akan ada, itu akan menjadi tugas yang menakutkan.

Pendekatan yang lebih baik adalah dengan mengumpulkan semua informasi terkait di bawah satu Nama Person , dan menggunakannya untuk setiap orang. Sekarang, kodenya juga terlihat jauh lebih bersih, mudah dibaca, dan efisien.

Kumpulan semua informasi terkait di bawah satu nama Person adalah sebuah struktur

Modul Praktek Bahasa C++ Shell Marto Sihombing Bagaimana cara mendeklarasikan struktur dalam pemrograman C ++?

Modul Praktek Bahasa C++ Shell Marto Sihombing Bagaimana cara mendeklarasikan struktur dalam pemrograman C ++?

Dalam dokumen MODUL PRAKTIK TA. 2020/2021 (Halaman 143-157)