PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO

dokumen-dokumen yang mirip
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS

Inheritance dan Polimorfisme

KELAS DAN OBJEK KELAS

Inheritance dan Polimorfisme

Pemrograman C++ BAGIAN II PEMROGRAMAN BERORIENTASI OBJEK

PEMROGRAMAN BERORIENTASI OBJEK OBJECT

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

Pertemuan 11 Object Oriented Program

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

Object Oriented Programming LOGO

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs

STRUKTUR DENGAN ARRAY DAN FUNCTION

Pointer dan Referensi

PEMROGRAMAN BERORIENTASI OBJEK

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Pemrograman Berorientasi Obyek (C++) Departemen Ilmu Komputer FMIPA IPB 2013

Praktikum Minggu VI 1 dan 2 Dasar-dasar Object Oriented Programming PHP

MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

Michael Lionardi

PEWARISAN D E W I S A R T I K A, M. K O M

OBJECT ORIENTED PROGRAMMING DENGAN PHP. Janitra Panji

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Pemograman Berorientasi Objek. Week 3 Abstrak dan Interface dalam suatu kelas

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

Pemrograman Berorientasi. Abstract & Interface

Konsep Array dalam PBO

Paradigma Pemrograman Berorientasi Objek

TAMBAHAN MATERI BAB 15 BUKU DIKLAT PEMROGRAMAN KOMPUTER 2

Pemrograman Berorientasi Objek Danu Wira Pangestu

Object Oriented Programming (Class, Inheritance, Encapsulation dan Interface)

Komentar, Identifier, Konstanta dan Variabel

MINGGU V : PBO (PEWARISAN)

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

INTERAKSI ANTAR OBJECT

Kurikulum Qt. { Basic OOP } Chapter 6. Class dan Object

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

Modul II Object Oriented Programming

MINGGU VI : PBO (LANJUTAN)

PERTEMUAN 2 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O

Inheritance dan Kata Kunci static

Konsep Pemrograman Berbasis Obyek

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI

Sebagai contoh misalnya akan dibuat kelas turunan Silinder dari kelas dasar Lingkaran, maka dapat dituliskan :

Kurikulum Qt. Chapter 8 - Polymorphism. Polimorfisme. Problema Pewarisan Tunggal (Single Inheritance)

Pemrograman Berorientasi Obyek. Ramos Somya

Pemrograman Berorientasi. Class dan Obyek 2

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Pemograman Berorientasi Objek. Week 4 Initialization dan Instance dalam Kelas

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

BAB II TEORI DAN KONSEP PEMROGRAMAN BERBASIS OBJECT

KONSEP Pemrograman Berorientasi Objek KARMILASARI

Pemrograman Berorientasi. Inheritance

PEMROGRAMAN BERORIENTASI OBJEK

Algoritma Alg dan Pemr P ograman emr 1 C++ Class & Object

MODUL 1 PENGENALAN OOP

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

Pemograman Berorientasi Objek

Pemrograman Berorientasi Objek

Pemrograman Berbasis Objek Inheritance

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

Kurikulum Qt. Chapter 5 Pointer dan References. Agenda. Apa itu Pointer? Memory Komputer. Mengambil Alamat Memory dari Variabel

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

PERTEMUAN 11 KONSEP PEMROGRAMAN BERORIENTASI OBJEK

MODUL PRAKTIKUM I PEMOGRAMAN BERORIENTASI OBJEK DENGAN PHP

PEMROGRAMAN BERORIENTASI OBJEK. Pengulangan. Budhi Irawan, S.Si, M.T

Pewarisan atau Inheritance

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

Class. Object. Object Oriented Programming (OOP) Object Oriented Programming (OOP)

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

BAB VI OBYEK DAN KELAS

BAB VI OBYEK DAN KELAS

Object OrientedProgramming

BAB X. Struct Dalam C++, kita dapat membuat sebuah tipe data baru. Maka penulisan variabel baru kita akan menjadi:

MODUL VI OBJECT ORIENTED PROGRAMMING (OOP)

Inheritance. Topik 5/17/2013

Pemrograman Lanjut Review Class dan Object PTIIK

PRAKTIKUM OBJECT ORIENTED PROGRAMING

Bahasa Pemrograman 2.

Bahasa Pemrograman 2.

Gambar 1: Hirarki class

Robby Cokro Buwono. Badiyanto, S.Kom.,M.Kom. Sesi 12. Memahami cara membuat aplikasi dasar PHP dengan OOP

Penggunaan Private dan Public dalam C++

OVERLOADING, CONSTRUCTOR DAN DESTRUCTOR. Dewi Sartika, M.Kom

Bahasa Pemrograman :: Polimorfism and Abstraction

:: abstract class + interface. :: abstract class

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

MODUL 1. Class, Object, Constructor dan Method

BAB II VARIABEL DAN TIPE DATA

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

Transkripsi:

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO Budhi Irawan, S.Si, M.T 1

PENDAHULUAN Meskipun bahasa C adalah bahasa pemrograman yang berkekuatan tinggi (powerful) atau bisa digunakan untuk membuat program apa saja, tapi bahasa C tidak mendukung adanya pemrograman berorientasi objek. Bahasa C masih merupakan prosedural, salah satu alasan Bjarne Stroustrup menciptakan bahasa C++ adalah untuk menambahkan kemampuan pemrograman berorientasi objek (PBO) kedalam bahasa C sehingga mula-mula dia menamai C++ sebagai bahasa C dengan Kelas 2

PEMROGRAMAN BERORIENTASI OBJEK Perlu diperhatikan bahwa PBO bukanlah sebuah bahasa pemrograman melainkan sebuah cara atau metodologi yang digunakan agar program yang kita buat menjadi lebih modular karena suatu permasalahan akan dikumpulkan dalam satu objek. Dalam kode program yang dibuat, suatu objek akan diterjemahkan kedalam bentuk kelas. 3

C++ DAN PBO Bahasa C++ merupakan bahasa yang telah diakui keunggulannya, selain itu sudah sangat populer dan banyak digunakan diseluruh dunia. Bahasa C++ merupakan bahasa C yang ditambahkan kemampuan PBO, maka dari itu, C++ tentu menjadi bahasa yang istimewa. Ini berarti bahwa dengan menggunakan C++ maka dapat dikembangkan suatu program yang menggunakan fitur-fitur PBO, tanpa harus meninggalkan kemampuan-kemampuan hebat yang dimiliki oleh bahasa C. 4

PERBEDAAN PEMROGRAMAN PROSEDURAL DENGAN PBO PBO merupakan bentuk penyederhanaan dari prosedural sehingga program akan lebih mudah dikembangkan. Dalam bahasa prosedural, untuk menyelesaikan salah satu permasalahan dalam program, kita harus membuat banyak fungsi yang tentunya akan memakan waktu dan konsentrasi. Dengan kata lain, dalam bahasa prosedural akan lebih difokuskan dengan Bagaimana Cara Membuat?, bukan Apa yang Akan Dibuat? 5

PERBEDAAN PEMROGRAMAN PROSEDURAL DENGAN PBO Berdasar kepada pengalaman, satu buah program / aplikasi sistem yang kompleks ditulis menggunakan bahasa C rata-rata berisi 25.000 s/d 100.000 baris kode. Hal ini tentu akan menyebabkan program tersebut menjadi sangat rumit dan susah untuk dipahami alurnya. Karena alasan inilah bahasa C++ diciptakan dengan tujuan dapat menyederhanakan program tersebut dengan cara memecahnya kedalam subsub program yang dinamakan dengan kelas. 6

PERBEDAAN PEMROGRAMAN PROSEDURAL DENGAN PBO Kelas itu sendiri kemudian dapat digunakan kembali dalam pembuatan program lain tanpa harus melakukan pengkodean ulang. Melalui cara ini tentu kita dapat lebih berkonsentrasi ke arah pembentukan program sehingga waktu yang dibutuhkan juga akan lebih cepat. 7

PERBEDAAN PEMROGRAMAN PROSEDURAL DENGAN PBO Meskipun demikian, tingkat kesulitan yang biasanya akan muncul dalam bekerja dengan PBO adalah pada saat perancangan program. Walaupun dari segi konsep PBO merupakan materi yang mudah dipahami, tapi pada kenyataannya PBO akan susah diimplementasi kan. Bagi para pemula, pada umumnya mereka akan kesulitan dalam menerjemahkan suatu permasalahan kedalam bentuk kelas. 8

PERBEDAAN PEMROGRAMAN PROSEDURAL DENGAN PBO PEMROGRAMAN PROSEDURAL PBO data1 data2 fungsi1() fungsi2() dataa datab fungsia() fungsib() main() (fungsiutama) objek1 objek2 main() (fungsiutama) 9

KARAKTERISTIK PBO Semua bahasa pemrograman yang mendukung PBO harus mengimplementasikan konsep abstraksi, pembungkusan, pewarisan sifat, dan polimorfisme. Konsep-konsep tersebut merupakan ciri atau karakteristik utama dari bahasa yang mendukung PBO 10

1. ABSTRAKSI (ABSTRACTION) Abstraksi adalah proses pengabstrakan atau penyembunyian detail program yang sangat rumit sehingga kita tidak perlu untuk mempermasalahkan pembuatannya. Kita hanya perlu objek tersebut dapat kita gunakan sesuai fungsinya, sebagai contoh lihatlah objek disekitar kita misalnya mobil, pembuat mobil tidak perlu mendefinisikan cara pembuatan maupun komponen-komponen yang diperlukan untuk merakit satu unit mobil. 11

1. ABSTRAKSI (ABSTRACTION) Disini berarti bahwa pembuat mobil telah mengabstraksikan proses dan data yang terdapat didalamnya. Yang penting bagi kita (sebagai pengendara) adalah mobil tersebut dapat kita gunakan sebagaimana mestinya. Hal ini tidak berbeda dengan abstraksi suatu fungsi yang terdapat pada sebuah kelas didalam program. 12

2. PEMBUNGKUSAN (ENCAPSULATION) Pembungkusan yang dimaksud disini adalah sebuah proses penggabungan antara data dan fungsi-fungsi yang berkaitan kedalam sebuah objek. Dengan demikian kita dapat membuat program yang terintegrasi tanpa harus mendeklarasikan variabel-variabel yang bersifat eksternal. 13

2. PEMBUNGKUSAN (ENCAPSULATION) Dalam C++, data (bisa berupa variabel atau konstanta) dalam sebuah kelas disebut dengan data members, sedangkan fungsi-fungsinya dikenal dengan istilah member function. Dalam bahasa pemrograman lain yang mendukung PBO, ada yang menyebut data dalam sebuah kelas dengan istilah field maupun properti dan Fungsi-fungsi yang terdapat didalam kelas disebut sebagai method. 14

2. PEMBUNGKUSAN (ENCAPSULATION) OBJEK data1 datan fungsi1 fungsin Data Members Member Functions 15

3. PEWARISAN (INHERITANCE) Dalam PBO, kita dapat menciptakan kelas baru yang diturunkan dari kelas lain yang sudah didefinisikan sebelumnya. Kelas baru ini sering disebut dengan kelas turunan (derived class) sedangkan objek induknya disebut dengan kelas dasar (base class). Dalam bahasa java, kelas dasar disebut superclass dan kelas turunan disebut subclass, dalam Delphi, kelas dasar disebut ancestor dan 16 kelas turunannya disebut descendant.

3. PEWARISAN (INHERITANCE) Sifat yang terkandung pada objek turunannya adalah sifat hasil pewarisan dari sifat-sifat yang terdapat pada objek induk. Maka dari itu, proses seperti ini sering dikenal dengan istilah pewarisan (inheritance). Dengan fitur seperti ini, kita dapat membuat objek baru yang memiliki kemampuan lebih dibanding objek induknya, yaitu dengan cara menambahkan sifat-sifat baru kedalam objek tersebut. 17

KELAS Kelas merupakan cetak biru (blue print) atau prototipe/kerangka yang mendefinisikan variabelvariabel (data) dan fungsi-fungsi (perilaku) umum dari sebuah objek tertentu. Sebagai contoh kita ambil objek mobil yang mana mobil memiliki data seperti warna, tahun, merk, tipe, nomor polisi dan sebagainya. Selain data ciri-ciri pisik tersebut, mobil juga memiliki perilaku-perilaku spesifik yang dapat membedakan antara mobil yang satu dengan yang lainnya seperti : sistem18 pengereman, perubahan roda gigi (persneling) dll

KELAS Sekarang kita ambil contoh objek lain, misalnya manusia yang memiliki data atau ciriciri isik seperti : nama, tinggi dan berat badan, bentuk sidik jari, model rambut dll. Selain itu manusia memiliki prilaku-prilaku seperti cara berjalan, cara berbicara, dll Dalam program, objek-objek seperti ini dapat didefinisikan sebagai sebuah kelas. 19

KELAS Dalam dunia pemrograman sebenarnya kelas tidak jauh berbeda dengan tipe data sederhana seperti yang telah kita bahas pada materi sebelumnya. Perbedaanya, tipe data sederhana digunakan untuk mendeklarasikan variabel normal sedangkan kelas digunakan untuk mendeklarasikan sebuah variabel yang berupa objek. 20

KELAS Penting untuk diperhatikan bahwa kelas masih bersifat abstrak, yang mana pada saat kelas baru dibuat maka telah didefinisikan tipe data baru. Sekali didefinisikan maka tipe data baru ini dapat digunakan untuk membuat suatu objek dari tipe tersebut. Dengan kata lain kelas adalah pola (template) untuk pembuatan objek,dan objek adalah wujud nyata (instance) dari sebuah kelas. 21

KELAS Sebagai contoh manusia adalah kelas ; sedangkan objek atau wujud nyata dari kelas manusia adalah iwan, tono, soni dll. Contoh : // mendefinisikan kelas dengan nama manusia class Manusia{ // data dan fungsi // }; // Mendeklarasikan objek (instance)bertipe manusia manusia iwan, tono, soni; 22

MEMBUAT KELAS Dalam bahasa C++, kelas dibuat dengan menggunakan keyword class. Adapun bentuk umum penulisannya adalah sbb : class nama_kelas{ access_specifier1: data_members; member_functions; access_specifier2: data_members; member_functions; }; 23

MEMBUAT KELAS Untuk mendefinisikan atau membuat implementasi fungsi-fungsi yang terdapat dalam sebuah kelas, kita menggunakan operator :: Berikut ini adalah bentuk umum penulisannya : tipe_data nama_kelas::nama_fungsi(daftar_parameter){ statemen_yang_akan_dilakukan; } 24

MEMBUAT KELAS Selanjutnya, untuk mengakses data atau fungsi yang terdapat didalam kelas tersebut, kita menggunakan tanda titik. Berikut ini bentuk umum dari proses pengaksesan data atau fungsi dari sebuah kelas : nama_instance.data atau nama_instance.nama_fungsi(daftar_parameter) 25

MEMBUAT KELAS #include <iostream> using namespace std; class bangun{ private: float x,y; public: float luas(){return x*y;}; void beri_nilai(float panjang, float lebar); }; //scope operator (::) void bangun::beri_nilai(float panjang, float lebar){ x = panjang; y = lebar; } int main(){ bangun a,b; a.beri_nilai(4,3); b.beri_nilai(7,5); cout<<"luas persegi panjang a adalah = "<<a.luas()<<endl; cout<<"luas persegi panjang b adalah = "<<b.luas()<<endl; return 0; } 26

CONSTRUCTOR DAN DESTRUCTOR Constructor adalah sebuah fungsi yang otomatis akan dipanggil setiap kali melakukan instansiasi nilai dari data-data yang terdapat didalam kelas bersangkutan. Sama halnya seperti fungsi biasa, pada contructor juga dapat ditambahkan parameter ataupun dilakukan overload. Namun perlu diperhatikan bahwa nama dari fungsi constructor harus sama dengan nama kelasnya dan tidak memiliki tipe kembalian (tidak juga void) 27

CONSTRUCTOR #include <iostream> using namespace std; class bangun{ private: float x,y; public: float luas(){return x*y;}; bangun(float panjang, float lebar); }; //konstruktor bangun::bangun(float panjang, float lebar){ x = panjang; y = lebar; } int main(){ bangun a(4,7); bangun b(5,6); cout<<"luas persegi panjang adalah = "<<a.luas()<<endl; cout<<"luas persegi panjang adalah = "<<b.luas()<<endl; return 0; } 28

CONSTRUCTOR Pada program di atas, diimplementasikan fungsi beri_nilai dengan menggunakan konstruktor berparameter yaitu panjang dan lebar yang nantinya akan diumpan ke variabel x dan y. Sekarang bisa digunakan konstruktor ini dengan memanggil objek dari kelas bangun disertai parameter terkait 29 dengan konstruktor yang ada.

DESTRUCTOR Destrucor adalah fungsi yang merupakan kebalikan dari constructor, yaitu berguna untuk menghancurkan atau membuang sebuah objek (instance) dari memori. Fungsi ini juga akan dipanggil secara otomatis ketika program telah selesai dijalankan. Nama dari fungsi destructor adalah sama seperti nama kelas maupun nama constructor, tetapi didepannya ditambahkan tanda tilde ( ~ ). Destructor juga tidak memiliki tipe kembalian (tidak juga void). 30

DESTRUCTOR Karena tidak adanya deklarasi pada saat menghapus objek, maka destruktor tidak memiliki parameter. Berikut contoh sintaks sinkat penggunaan destruktor guna me-reset x dan y setelah objek berakhir masa kerjanya. bangun::~bangun(){ x = 0; y = 0; } ketika suatu objek telah melaksanakan tugasnya, maka 31 secara otomatis destruktor dipanggil.

DESTRUCTOR #include <iostream> using namespace std; class bangun{ private: float x,y; public: float luas(){return x*y;}; bangun(float panjang, float lebar); ~bangun(); }; //konstruktor bangun::bangun(float panjang, float lebar){ x = panjang; y = lebar; } //destruktor bangun::~bangun(){ cout<<"reset"<<endl; x=0; y=0; } int main(){ bangun a(4,7); bangun b(5,6); cout<<"luas persegi panjang adalah = "<<a.luas()<<endl; cout<<"luas persegi panjang adalah = "<<b.luas()<<endl; return 0; } 32

TINGKAT AKSES Dalam C++, penentu hak akses disebut dengan acces specifier, artinya akan terdapat pembatasan akses terhadap data maupun fungsi tersebut sehingga tidak semua kelas maupun lingkungan program dapat bebas mengaksesnya. Dalam C++, terdapat 3 buah tingkat akses yang dapat digunakan untuk menentukan bagaimana data maupun fungsi didalam suatu kelas dapat diakses dari lingkungan luar yaitu public, private dan protected. 33

1. PRIVATE Tingkat akses ini berguna untuk memberikan hak akses data hanya kepada kelas yang bersangkutan saja, artinya kelas-kelas turunan ataupun lingkungan luar didalam program tidak diizinkan untuk mengakses data tersebut. Dalam C++, untuk menentukan data tersebut bersifat private, maka kita harus menggunakan kata kunci private,. Secara default, jika tidak menuliskan tingkat akses dalam pendeklarasian data (maupun fungsi) dalam sebuah kelas, maka data atau fungsi tersebut akan dianggap sebagai data private. 34

1. PRIVATE #include <iostream> using namespace std; class CONTOH { int X; // X bersifat private public: void SetX(int XX) { X = XX; } void ShowX() { cout<<"nilai X: "<<X<<endl; } }; // Fungsi utama int main() { CONTOH O; O.SetX(100); O.ShowX(); return 0; } 35

1. PRIVATE Seperti dilihat diatas bahwa X bersifat private dan dia hanya dapat diakses oleh fungsi-fungsi yang terdapat didalam kelas CONTOH. Dengan kata lain, lingkungan luar maupun kelas-kelas lain tidak diizinkan untuk mengakses X 36

2. PUBLIC Tingkat akses ini berguna untuk memberikan hak akses secara umum atau publik kepada kelas-kelas turunannya maupun terhadap lingkungan luar didalam program. Bagian ini biasanya berisi fungsi-fungsi yang akan dijadikan sebagai penghubung (interface) dari bagian private suatu kelas dengan lingkungan luar. Untuk menjadikan data maupun fungsi dengan sifat publik, kita perlu menggunakan kata kunci public. 37

2. PUBLIC #include <iostream> using namespace std; class CONTOH { int X; public: void SetX(int XX) { X = XX; } int KuadratX() { return X * X; } //... }; // Fungsi utama int main() { CONTOH O; int hasil; // Melakukan pemanggilan thdp fungsi-fungsi yg terdapat di dlm kelas CONTOH O.SetX(10); hasil = O.KuadratX(); cout<<"hasil: "<<hasil; } return 0; 38

2. PUBLIC Seperti yang kita lihat bahwa kita dapat memanipulasi nilai X (yang bersifat private) dari lingkungan luar melalui fungsi-fungsi penghubung yang ditempatkan pada bagian public (yaitu fungsi SetX() dan KuadratX()) 39

3. PROTECTED Tingkat akses ini digunakan untuk memberikan hak akses terhadap data (maupun fungsi) dalam suatu kelas sehingga data tersebut dapat diakses oleh kelas turunannya. Namun, lingkungan luar didalam program masih tetap tidak diberi hak untuk mengaksesnya. Untuk menyatakan data maupun fungsi dengan sifat seperti ini maka perlu menggunakan keyword protected. 40

3. PROTECTED ##include <iostream> using namespace std; // Membuat kelas DASAR yang didalamnya terdapat data bersifat protected class DASAR { protected: int X; public: // Inisialisasi nilai X dengan nilai 10 DASAR() { X = 10; } //... }; // Membuat kelas TURUNAN yang merupakan turunan dari kelas DASAR class TURUNAN: public DASAR { int Y, hasil; public: void SetY(int YY) { Y = YY; } void KaliXY() { // Menggunakan nilai X dari kelas DASAR hasil = X * Y; } int GetHasil() { return hasil; } }; // Fungsi utama int main() { DASAR A; TURUNAN B; } B.SetY(5); B.KaliXY(); cout<<"\nhasil X kali Y: "<<B.GetHasil(); return 0; 41