KELAS DAN OBJEK KELAS

dokumen-dokumen yang mirip
PEMROGRAMAN BERORIENTASI OBJEK OBJECT

PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS

Pemrograman C++ BAGIAN II PEMROGRAMAN BERORIENTASI OBJEK

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO

Inheritance dan Polimorfisme

TAMBAHAN MATERI BAB 15 BUKU DIKLAT PEMROGRAMAN KOMPUTER 2

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

Pointer dan Referensi

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

INTERAKSI ANTAR OBJECT

MINGGU VI : PBO (LANJUTAN)

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

MODUL 1. Class, Object, Constructor dan Method

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

PEMROGRAMAN BERORIENTASI OBJEK

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

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

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

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

Pemograman Berorientasi Objek. Week 4 Initialization dan Instance dalam Kelas

Class & Object 2. Imam Fahrur Rozi

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

BAB 12 PEWARISAN SIFAT OBJEK

Pertemuan 11 Object Oriented Program

OBJECT ORIENTED PROGRAMMINGS

OBJECT ORIENTED PROGRAMMING DENGAN PHP. Janitra Panji

MODUL. Pointer. Modul Praktikum C++ Dasar Pemrograman Komputer JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

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

BAB VIII SUB PROGRAM : Fungsi Tanpa Pengembalian Nilai

Bahasa Pemrograman 2.

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

Pemrograman Berorientasi. Class dan Obyek 2

FUNGSI II. Variabel Statis. Sifat variabel statis: Sintaks: static tipe_data nama_variabel; Contoh: static int angka;

Pemrograman I Bab III Tipe Data, Variabel, dan Operasi Perhitungan. Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia

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

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

Michael Lionardi

Inheritance dan Polimorfisme

Alpro & Strukdat 1 C++ (Sub Program) Dwiny Meidelfi, S.Kom., M.Cs.

PRAKTIKUM 12 POINTER 2

BAB 14 OPERATOR OVERLOADING

Data structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta

MODUL V POINTER DAN STRING

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK

Modul 2. [access specifier] [tipe data] [nama variabel];

Inheritance dan Kata Kunci static

MODUL 7 FUNGSI A. Tujuan. B. Petunjuk. C. Dasar Teori

Variabel Class. Pertemuan 5

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

int fungsi_2() { int main() { fungsi_1(); fungsi_2(); return 0;

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

Pointer (Penunjuk) Modul 6

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

FUNGSI. tipe Tipe nilai yang dihasilkan oleh fungsi. Jika tidak dinyatakan, hasil fungsi dianggap bilangan bulat (int)

STRUKTUR DENGAN ARRAY DAN FUNCTION

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

subclass class manapun private default protected public package yang sama

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

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

MODUL VI OBJECT ORIENTED PROGRAMMING (OOP)

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

BAB VI OBYEK DAN KELAS

BAB VI OBYEK DAN KELAS

Praktikum 3 Konsep Class, Attribute dan Method

Pengenalan pemrograman berorientasi obyek

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

Modul Praktikum Pemrograman Terstruktur LEMBAR PENYUSUN. Dosen Pengampu : Bambang Hermanto, M.Cs. Penyusun : Tim Asisten Pemrograman Terstruktur

void naikkan_nilai (int *x, int *y) { *x = *x + 2; *y = *y + 2; }

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK

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

CLASS. Bentuk Umum : class nama_class { Data elemen_class ; ... Public : Data elemen_class ; Data elemen_class ; } nama_object; BENTUK

FUNGSI & PROSEDUR. Pertemuan ke-12 dan 13

Pertemuan Pemograman Berorientasi Objek. Obyektif Praktikum : 1. Memahami konsep Object Oriented Programming.

xxxx alamat Praktikum 11 POINTER

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

Classes. class class_name { permission_label_1: member1; permission_label_2: member2;... } object_name;

MODUL. Fungsi (Function) Modul Praktikum C++ Dasar Pemrograman Komputer JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

Komentar, Identifier, Konstanta dan Variabel

Pemrograman Lanjut. Constructor. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

Scope Variable. Sebuah variabel di dalam sebuah fungsi memiliki jangkauan tertentu. Skop variabel terdiri dari:

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

PRAKTIKUM 12 POINTER 2

Class C++ Dasar. Harimurti Widyasena Deklarasi dan Definisi

Pengenalan C++ Oleh : Dewi Sartika

OBJECT, CLASS DAN METHOD. 1. Mengetahui pengertian dari objek & class 2. Dapat membuat program sederhana dari java dengan menggunakna objek dan class

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit

MODUL 5 SUBPROGRAM / FUNGSI

Membuat dan Menggunakan Class

MODUL 1 PRAKTIKUM PEMROGRAMAN BERORIENTASI OBYEK(PBO) KELAS DAN OBJEK. TGL PRAKTIKUM : 24 September 2012 :ACHMAD FAJAR NORULLAH NRP :

Bahasa Pemrograman II Modul 1 : Pemrograman Berbasis Objek

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

Pemrograman Lanjut. Class : Deeper Look 2

Dasar Pemrograman Java

Daftar lsi... :;.:;:(:;;::t

KONSEP POINTER DAN LINKED LIST

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

Algoritma Pemrograman [BS204]

SL 1201 Materi tentang Fungsi

Transkripsi:

KELAS DAN OBJEK KELAS Adalah bentuk penyederhanaan dari suatu permasalahan yang berkaitan dengan objek yang digunakan untuk merepresentasikan sebuah objek tertentu sehingga akan membantu dalam proses penyelesaian masalah kompleks. BU kelas : Class nama kelas{ Acces specifier1; Data member; Member function;... Acces specifier2; Data member; Member function;... BU dari pendefinisian fungsi tersebut Tipedata nama_kelas::nama_fungsi(daftar parameter) { Statement yang akan dilakukan; BU dari proses pengaksesan data atau fungsi dari sebuah kelas Nama_instance.data Atau Nama_instance.nama_fungsi(daftar parameter) Kode program 11-1 class CONTOH { int X; void set_x(int XX); // Mendeklarasikan fungsi set_x int get_x(); // Mendeklarasikan fungsi get_x

// Bagian implementasi dari fungsi set_x void CONTOH::set_X(int XX) { X = XX; // Bagian implementasi dari fungsi get_x int CONTOH::get_X() { return X; // Membuat instance dari kelas CONTOH dengan nama ob CONTOH ob; // Mengakses fungsi set_x yang terdapat pada kelas CONTOH ob.set_x(100); // Mengakses fungsi get_x yang terdapat pada kelas CONTOH cout<<ob.get_x(); 100 CONSTRUCTOR DAN DESTRUKTOR Construktor adalah sebuah fungsi khusus yang otomatis akan dipanggil setiap kali melakukan instansiasi terhadap suatu kelas. Ciri 1. Namanya sama dengan nama kelas 2. Selalu menjadi pemberian nilai awal 3. Secara otomatis terpanggil pada saat suatu kelas didefinisikan Kode Program 11-2

// Membuat kelas dengan nama CONTOH class CONTOH { int X; // Membuat constructor CONTOH() { X = 10; // Melakukan inisialisasi nilai X dengan nilai 10 // Membuat member function void ShowX() { cout<<"nilai X : "<<X<<endl; //... ; // Melakukan instansiasi terhadap kelas CONTOH // dengan nama instance O CONTOH O; // Memanggil fungsi ShowX O.ShowX(); Nilai X= 10 Kode Program 11-3

// Membuat kelas dengan nama CONTOH class CONTOH { int X; // Membuat constructor tanpa parameter CONTOH() { X = 10; // Melakukan inisialisasi nilai X dengan nilai 10 // Membuat constructor dengan menggunakan satu parameter CONTOH(int XX) { X = XX; // Membuat member function void ShowX() { cout<<"nilai X : "<<X<<endl; //... ; // Melakukan instansiasi terhadap kelas CONTOH // dengan nama instance O CONTOH O; // Melakukan instansiasi terhadap kelas CONTOH // dengan nama instance P

CONTOH P(200); // Memanggil fungsi ShowX O.ShowX(); P.ShowX(); Nilai X=10 Nilai X=200 Kode Program 11-4 // Membuat kelas dengan nama CONTOH class CONTOH { int X; // Membuat constructor tanpa parameter CONTOH() : X(10) { // Membuat constructor dengan menggunakan satu parameter CONTOH(int XX) : X(XX) { // Membuat member function void ShowX() { cout<<"nilai X : "<<X<<endl; //... ;

// Melakukan instansiasi terhadap kelas CONTOH // dengan nama instance O CONTOH O; // Melakukan instansiasi terhadap kelas CONTOH // dengan nama instance P CONTOH P(200); // Memanggil fungsi ShowX O.ShowX(); P.ShowX(); Destruktor (~). 1. namanya sama dengan construktor karena harus berpasangan 2. menggunakan tanda (~) 3. prosesnya berlawanan dengan konstruktor dan dilaksanakan di akhir proses program Kode Program 11-5 // Membuat kelas dengan nama CONTOH class CONTOH { int *X; // Membuat constructor CONTOH(int XX) {

X = new int; // Memesan ruang memori *X = XX; // Membuat destructor ~CONTOH() { delete X; // Menghapus pointer X; void ShowX() { cout<<"nilai X : "<<*X<<endl; //... ; CONTOH O(10); O.ShowX(); Nilai X=10 TINGKAT AKSES 1.Private Berguna untuk memberikan hak akses data hanya sebagai kepada kelas yang bersangkutan saja Kode Program 11-6

class CONTOH { int X; // X bersifat private void SetX(int XX) { X = XX; void ShowX() { cout<<"nilai X : "<<X<<endl; ; CONTOH O; O.SetX(100); O.ShowX() Hasil : 100 2. Public Berfungsi untuk memberikan hak akses secara umum (public) kepada kelas kelas turunannya maupun terhadap lingkungan luar di dalam program. Kode Program 11-7 class CONTOH { int X;

void SetX(int XX) { X = XX; int KuadratX() { return X * X; // ; CONTOH O; int hasil; // Melakukan pemanggilan terhadap fungsi-fungsi di dalam // kelas CONTOH O.SetX(10); hasil = O.KuadratX(); cout<<"hasil : "<<hasil; Hasil : 100 3.Protected Digunakan untuk memberikan hak akses terhadap data dalam suatu kelas sehingga data tersebut dapat diakses oleh kelas keturunannya, namun lingkungan luar di dalam program masih tetap tidak diberi hak untuk mengaksesnya. Kode Program 11-8

// Membuat kelas DASAR yang didalamnya terdapat data // dalam bagian protected class DASAR { protected: int X; DASAR() { X = 10; // Inisialisasi nilai X dengan nilai 10 //... ; // Membuat kelas TURUNAN sebagai hasil turunan dari kelas DASAR class TURUNAN: public DASAR { int Y, hasil; void SetY(int YY) { Y = YY; void KaliXY() { hasil = X * Y; // Menggunakan nilai X dari kelas DASAR int GetHasil() { return hasil; ;

DASAR A; TURUNAN B; B.SetY(5); B.KaliXY(); cout<<"\nhasil X kali Y : "<<B.GetHasil(); Hasil X kali Y : 50 HUBUNGAN ANTARA STRUKTUR DAN KELAS 1. Membuat Kelas dengan Menggunakan Kata Kunci struct // Membuat kelas MOTOR struct MOTOR { char* merk; long tahun; char* nopolisi; char* warna; void SetMotor() { merk = "Honda GL Pro"; tahun = 1997; nopolisi = "G 5879 BF"; warna = "Hitam"; void ShowInfoMotor() { cout<<"merk : "<<merk<<endl; cout<<"tahun : "<<tahun<<endl; cout<<"no Polisi : "<<nopolisi<<endl; cout<<"warna : "<<warna<<endl; ;

// Melakukan instansiasi terhadap kelas MOTOR MOTOR M; M.SetMotor(); M.ShowInfoMotor(); 2. Membuat Kelas dengan Menggunakan Kata Kunci class // Membuat kelas MOTOR class MOTOR { char* merk; long tahun; char* nopolisi; char* warna; void SetMotor() { merk = "Honda GL Pro"; tahun = 1997; nopolisi = "G 5879 BF"; warna = "Hitam"; void ShowInfoMotor() { cout<<"merk cout<<"tahun cout<<"no Polisi : "<<merk<<endl; : "<<tahun<<endl; : "<<nopolisi<<endl;

; cout<<"warna : "<<warna<<endl; // Melakukan instansiasi terhadap kelas MOTOR MOTOR M; M.SetMotor(); M.ShowInfoMotor(); Merk : Honda GL Pro Tahun : 2007 No. Polisi : G 5879 BF Warna : Hitam ANGGOTA KELAS YANG BERSIFAT STATIS Data Statis Kode Program 11-11 class CONTOH { static int X; int Y; // variabel statik // variabel non-statik // Constructor kelas CONTOH CONTOH(int XX, int YY) {

X = XX; Y = YY; // Fungsi untuk menampilkan nilai X dan Y void ShowXY() { cout<<"nilai X : "<<X<<endl; cout<<"nilai Y : "<<Y<<endl; cout<<endl; ; // Mendefinisikan X int CONTOH::X; // Membuat instance A dengan X=10 dan Y=10 CONTOH A(10, 10); // Menampilkan nilai X dan Y dari instance A cout<<"di dalam objek A"<<endl; A.ShowXY(); // Membuat instance B dengan X=50 dan Y=50 CONTOH B(50, 50); // Menampilkan nilai X dan Y dari instance B cout<<"di dalam objek B"<<endl; B.ShowXY(); // Menampilkan kembali nilai X dan Y dari instance A cout<<"di dalam objek A"<<endl;

A.ShowXY(); Di dalam objek A Nilai X : 10 Nilai Y : 10 Di dalam objek B Nilai X : 50 Nilai Y : 50 Di dalam objek A Nilai X : 50 Nilai Y : 10 Fungsi Statis Kode Program 11-12 class CONTOH { static int X; static void Inisialisasi(int XX) { X = XX; void ShowX() { cout<<"nilai X : "<<X<<endl; ; // Mendefinisikan X int CONTOH::X; // Memanggil fungsi Inisialisasi sebelum // sebuah objek/instance dibuat CONTOH::Inisialisasi(25); // Melakukan instansiasi terhadap kelas CONTOH // dengan nama instance A CONTOH A;

// Memanggil fungsi ShowX kepunyaan kelas CONTOH A.ShowX(); Nilai X : 25 POINTER KE OBJEK // Membuat kelas class CONTOH { int X; void SetX(int XX) { X = XX; void ShowX() { cout<<"nilai X : "<<X<<endl; ; // Mendeklarasikan pointer yang menunjuk ke kelas CONTOH CONTOH *P; // Mengalokasikan memori untuk kelas CONTOH P = new CONTOH; // P menunjuk ke alamat // yang baru dialokasikan // Memanggil fungsi-fungsi milik kelas CONTOH, // yaitu dengan operator -> P->SetX(100); // Ingat, bukan menggunakan titik, // karena P adalah pointer P->ShowX(); Nilai X : 100

POINTER this Adalah pointer otomatis yng dilewatkan setiap kali objek dibuat di dalam memori dan akan mewakili nama kelas yang bersangkutan. Kode Program 11-14 class KUBUS { int S; void SetS(int SS); int GetVolume(); void ShowVolume(); ; void KUBUS::SetS(int SS) { this->s = SS; int KUBUS::GetVolume() { return (this->s * this->s * this->s); void KUBUS::ShowVolume() { cout<<"volume Kubus : "<<this->getvolume()<<endl; KUBUS K; K.SetS(5); K.ShowVolume(); Volume Kubus : 125 OBJEK SEBAGAI PARAMETER DALAM SEBUAH FUNGSI

class CONTOH { int X; void SetX(int XX) { X = XX; int GetX() { return X; ; int Kuadrat(CONTOH A, int N) { A.SetX(N); return (A.GetX() * A.GetX()); CONTOH O; // Memanggil fungsi Kuadrat cout<<"kuadrat dari 10 adalah : "<<Kuadrat(O,10); Kuadrat dari 10 adalah : 100 OBJEK SEBAGAI NILAI KEMBALIAN DALAM SEBUAH FUNGSI Kode Program 11-16 class CONTOH { int X; void SetX(int XX) { X = XX; int GetX() { return X; ; CONTOH MyFunc() { CONTOH A; A.SetX(30);

return A; // Mengembalikan nilai yag berupa objek CONTOH O; // Memanggil fungsi Kali2 dan nilainya dimasukkan // ke dalam objek O O = MyFunc(); cout<<"nilai X di dalam O adalah : "<<O.GetX(); Nilai X di dalam O adalah : 30 FRIEND FUNCTION Kita diizinkan membuat fungsi luar yang dapat mengakses bagian private suatu kelas Kode Program 11-17 class CONTOH{ int X, Y; void SetXY(int XX, int YY) { X = XX; Y = YY; friend int KALI(CONTOH A); ; // Mendefinisikan fungsi KALI yang bukan termasuk member function // dari kelas CONTOH int KALI(CONTOH A) { // Mengakses bagian private secara langsung dari kelas CONTOH return (A.X * A.Y); // Melakukan instansiasi kelas CONTOH

CONTOH O; O.SetXY(20, 3); // Mengeset nilai X=20 dan Y=3 cout<<"hasil kali : "<<KALI(O); Hasil kali : 60 FRIEND CLASS Kelas yang dapat mengakses semua data ( termasuk bagian private) dari kelas lain Kode Program 11-18 class KESATU { int X, Y; KESATU(int XX, int YY) { X = XX; Y = YY; friend class KEDUA; // Mendeklarasikan sebuah friend class ; // Definisi dari kelas KEDUA class KEDUA { // int Kali(KESATU A); // ; int KEDUA::Kali(KESATU A) { return (A.X * A.Y); ; // Melakukan instansiasi dari kelas KESATU KESATU O(40, 3); // Melakukan instansiasi dari kelas KEDUA KEDUA P;

// Memanggil fungsi Kali yang terdapat pada kelas KEDUA cout<<"hasil kali : "<<P.Kali(O); Hasil Kali : 120 Oooo 00000 oooo