PEMROGRAMAN BERORIENTASI OBJEK OBJECT

dokumen-dokumen yang mirip
KELAS DAN OBJEK KELAS

PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS

Inheritance dan Polimorfisme

Pemrograman C++ BAGIAN II PEMROGRAMAN BERORIENTASI OBJEK

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO

Pointer dan Referensi

PEMROGRAMAN BERORIENTASI OBJEK

Inheritance dan Polimorfisme

PEMROGRAMAN BERORIENTASI OBJEK. Tipe Data. Budhi Irawan, S.Si, M.T

Konsep Array dalam PBO

MINGGU VI : PBO (LANJUTAN)

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

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

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

TAMBAHAN MATERI BAB 15 BUKU DIKLAT PEMROGRAMAN KOMPUTER 2

Penggunaan Private dan Public dalam C++

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

Komentar, Identifier, Konstanta dan Variabel

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

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

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

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

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

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

Fungsi 2. Ekohariadi FT Unesa

Kurikulum Qt. Chapter 4 Function. Fungsi

Bahasa Pemrograman II Modul 1 : Pemrograman Berbasis Objek

Konsep Dasar Pemrograman Dan Pengenalan C++

Spesifikasi: Ukuran: 14x21 cm Tebal: 225 hlm Harga: Rp Terbit pertama: Februari 2005 Sinopsis singkat:

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

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

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

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

A. TUJUAN 1. Memecah program dalam fungsi fungsi yang sederhana. 2. Menjelaskan tentang pemrograman terstruktur.

MODUL V POINTER DAN STRING

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

Pemograman Berorientasi Objek. Week 4 Initialization dan Instance dalam Kelas

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

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

Game Technology Design Course College of Multi Media Yogyakarta Spring Tri Anggraeni, S.Kom., M.Sc.

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

PEMROGRAMAN BERORIENTASI OBJEK. Input / Output. Budhi Irawan, S.Si, M.T

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

SL 1201 Materi tentang Fungsi

BAB 14 OPERATOR OVERLOADING

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2016

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

Chapter 9 Operator Types dan Operator Overloading

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

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

P3 Dasar Struktur Data TIF42/SIF42

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET BAHASA PEMROGRAMAN Fungsi : Passing Parameter by Value & Semester 3

DISUSUN OLEH BAB XI POINTER. alamat. memori. sepenuhnya. pointer. dan Pointer. menggunakan. menyebabkan. Alamat. untuk.

Konsep Pemrograman. Bab 13. Pointer 3. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

BAB IV HASIL PENELITIAN DAN PENERAPAN

Dasar Pemrograman Java

By : Agus Priyanto, M.Kom ST3 Telkom Purwokerto Structure and Pointer

INTERAKSI ANTAR OBJECT

Michael Lionardi

C V.S. C++ Oleh : Rasim

Pointer (Penunjuk) Modul 6

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

3. Elemen Dasar C++ S. Indriani S. L., M.T L.,

Variabel Class. Pertemuan 5

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

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

BAB VI OBYEK DAN KELAS

BAB VI OBYEK DAN KELAS

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

Pengantar Pemrograman Dengan C++

Paradigma Pemrograman Berorientasi Objek

Pemrograman Lanjut. Class, dan Instance Variable. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

PRAKTIKUM 12 POINTER 2

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

Fungsi 1. Ekohariadi FT Unesa

SUB PROGRAM P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

PRAKTIKUM 4 PERCABANGAN

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

IT210 Pemrograman Visual. Ramos Somya

Pointer dan Array Dinamik. IF2121 / Algoritma dan Struktur Data Sem /2018

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart

Modul II Object Oriented Programming

POINTER. Tim Alpro Teknik Informatika

Class & Object 2. Imam Fahrur Rozi

Fungsi : Dasar Fungsi

ELEMEN DASAR C++ C++ mempunyai cara untuk menyatakan karakter-karakter yang tidak mempunyai kode tombol (seperti karakter tombol) misalnya \n.

OBJECT ORIENTED PROGRAMMINGS

BEKERJA DENGAN JAVA CLASS LIBRARY

Konsep Pemrograman. Bab 8. Fungsi 2. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

8.1 FUNGSI, DEKLARASI DAN DEFINISI NYA

TUGAS TEORI ALGO LANJUT

Pengenalan C++ Oleh : Dewi Sartika

POINTER II. Oleh : Mike Yuliana PENS-ITS

A. TUJUAN 1. Menjelaskan tentang prinsip dasar fungsi. 2. Menjelaskan tentang.parameter formal dan parameter aktual

BAB II VARIABEL DAN TIPE DATA

Transkripsi:

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

OBJEK SEBAGAI PARAMETER DALAM SEBUAH FUNGSI Dalam C++, objek dapat juga berperan sebagai parameter dalam pendefinisian sebuah fungsi. Objek ini akan dilewatkan secara standar yaitu dengan menggunakan metoda pass by value (dikirimkan berdasar nilai) Hal ini sebenarnya bertujuan untuk mengakses suatu data (yang bersifat public) didalam sebuah kelas dimana pemrosesannyadilakukan didalam fungsi luar (bukan member function)

OBJEK SEBAGAI PARAMETER DALAM SEBUAH FUNGSI #include <iostream> using namespace std; class CONTOH { int X; public: void SetX(int XX) { X = XX; int GetX() { return X; ; int Kuadrat(CONTOH A, int N) { A.SetX(N); return (A.GetX() * A.GetX()); int main() { CONTOH O; // Memanggil fungsi Kuadrat cout<<"kuadrat dari 10 adalah: " <<Kuadrat(O,10); return 0;

OBJEK SEBAGAI NILAI KEMBALIAN DALAM SEBUAH FUNGSI Selain menjadi parameter, sebuah objek juga dapat digunakan sebagai nilai kembalian dari seuatu fungsi. Didalam fungsi akan tercipta satu objek sementara (temporary) yang kemudian akan dibebaskan kembali sesaat setelah proses pengembalian nilai.

OBJEK SEBAGAI NILAI KEMBALIAN DALAM SEBUAH FUNGSI #include <iostream> using namespace std; class CONTOH { int X; public: void SetX(int XX) { X = XX; int GetX() { return X; ; CONTOH MyFunc() { CONTOH A; A.SetX(30); // Mengembalikan nilai berupa objek return A; int main() { CONTOH O; // Memanggil fungsi MyFunc() // dan nilainya dimasukkan // ke dalam objek O O = MyFunc(); cout<<"nilai X di dalam O adalah: " <<O.GetX(); return 0;

FRIEND FUNCTION Dalam C++, kita diizinkan untuk membuat fungsi luar (bukan member function) yang dapat mengakses bagian private suatu kelas. Fungsi seperti ini dinamakan dengan Friend Function. Cara untuk mendefinisikan fungsi tersebut sama seperti fungsi-fungsi biasa, hanya saja fungsi ini perlu dideklarasikan terlebih dahulu didalam kelas yang bersangkutan, yaitu dengan menggunakan kata kunci friend

FRIEND FUNCTION #include <iostream> using namespace std; class CONTOH{ int X, Y; public: void SetXY(int XX, int YY) { X = XX; Y = YY; // Deklarasi friend function 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); // Fungsi utama int main() { // Melakukan instansiasi kelas CONTOH CONTOH O; // Mengisi nilai X=20 dan Y=3 O.SetXY(20, 3); cout<<"hasil kali: "<<KALI(O); return 0;

FRIEND FUNCTION Seperti yang kita lihat diatas bahwa fungsi KALI() bukan merupakan fungsi anggota (member function) dari kelas CONTOH, tapi fungsi tersebut dapat mengakses bagian private (dalam hal ini X dan Y) dari kelas tersebut. Hal ini dapat terjadi karena fungsi tersebut berlaku sebagai teman (friend) dari kelas CONTOH.

FRIEND CLASS Friend Class yaitu kelas yang dapat mengakses semua data (termasuk bagian private) dari kelas lain. Kedua kelas tersebut masing-masing adalah kedua kelas yang terpisah dan tidak ada hubungan turunan sama sekali. Sama halnya seperti pada friend function, friend class juga harus dilakukan deklarasi terlebih dahulu, yaitu dengan menggunakan keyword friend.

#include <iostream> using namespace std; FRIEND CLASS class KESATU { int X, Y; public: KESATU(int XX, int YY) { X = XX; Y = YY; // Mendeklarasikan friend class friend class KEDUA; ; // Definisi dari kelas KEDUA class KEDUA { // public: int Kali(KESATU A); // ; int KEDUA::Kali(KESATU A) { // Mengakses data private // pada kelas KESATU return (A.X * A.Y); ; int main() { // 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);

FRIEND CLASS Seperti yang kita lihat diatas bahwa dengan menjadikan kelass KEDUA sebagai friend class dari KESATU, maka kelas KEDUA mempunyai hak akses penuh terhadap semua data yang terdapat pada kelass KESATU meskipun data tersebut bersifat private.

POINTER KE OBJEK Seperti halnya pada tipe data dasar maupun tipe data bentukan, pointer juga dapat menunjuk ke tipe kelas. Sama seperti pada pointer yang menunjuk ke tipe struktur, pointer ke objek juga akan mengakses data atau fungsi kedalam kelas dengan menggunakan operator -> dan bukanlah menggunakan operator titik (.) seperti pada instance yang bukan merupakan pointer.

POINTER KE OBJEK #include <iostream> using namespace std; // Membuat kelas class CONTOH { int X; public: void SetX(int XX) { X = XX; void ShowX() { cout<<"nilai X: "<<X<<endl; ; // Fungsi utama int main() { // Mendeklarasikan pointer yang menunjuk ke kelas CONTOH CONTOH *P; // Mengalokasikan memori untuk objek dari 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(); // Mendealokasikan memori delete P; return 0;

POINTER THIS Pointer This adalah pointer secara otomatis yang dilewatkan setiap kali objek dibuat dalam memori dan akan mewakili nama kelas yang bersangkutan. Pointer This pada umumnya digunakan ketika kita mendefinisikan fungsi yang nama parameternya sama dengan nama data anggota. Contoh : class CONTOH { int x; // X berperan sebagai nama data public: void SetX(int X) { // X berperan sebagai parameter this->x = x;

POINTER THIS Pada kode diatas, nama data (X) sama dengan nama parameter yang dilewatkan kedalam fungsi SetX(). Dalam situasi semacam ini, kita perlu menggunakan pointer This untuk menunjukan bahwa X yang kita gunakan adalah X yang berperan sebagai data anggota kelas, bukan X yang berperan sebagai parameter, dengan demikian kode : this->x = X; sama artinya dengan X milik kelas CONTOH = X parameter;

POINTER THIS -1 #include <iostream> #include <cstring> using namespace std; enum TIPETRANSMISI {automatic, manual; // Membuat kelas MOBIL class MOBIL { char merk[25]; TIPETRANSMISI transmisi; int tahun; int silinder; char nopolisi[11]; char warna[15]; public: void SetMobil(char *merk, TIPETRANSMISI transmisi, int tahun, int silinder, char *nopolisi, char *warna) { strcpy(this->merk, merk); this->transmisi = transmisi; this->tahun = tahun; this->silinder = silinder; strcpy(this->nopolisi, nopolisi); strcpy(this->warna, warna);

POINTER THIS -1 void ShowInfoMobil() { cout<<"merk \t: "<<merk<<endl; cout<<"transmisi \t: "; switch (transmisi) { case 0: cout<<"automatic\n"; break; case 1: cout<<"manual\n"; break; cout<<"tahun \t: "<<tahun<<endl; cout<<"silinder \t: "<<silinder<<endl; cout<<"no Polisi\t: "<<nopolisi<<endl; cout<<"warna \t: "<<warna<<endl; ; // Fungsi utama int main() { // Melakukan instansiasi terhadap kelas MOBIL MOBIL M;

POINTER THIS -1 // Menentukan data ke dalam objek M M.SetMobil( (char*) "Ferrari 430 Spider", automatic, 2012, 4500, (char*) "D 1212 SK", (char*) "Kuning" ); // Menampilkan data pada objek M M.ShowInfoMobil(); return 0;

POINTER THIS -2 #include <iostream> using namespace std; // Membuat kelas BALOK class BALOK { double p; double l; double t; public: void SetData(double p, double l, double t) { this->p = p; this->l = l; this->t = t; double GetVolume() { return (p * l * t); void ShowVolume() { cout<<"volume balok: " <<GetVolume(); ; int main() { // Mendeklarasikan objek b // bertipe BALOK BALOK b; // Memanggil fungsi SetData() b.setdata(5.0, 3.0, 2.0); // Memanggil fungsi ShowVolume() b.showvolume(); return 0;