Operator overloading.

Slides:



Advertisements
Presentasi serupa
Inheritance (pewarisan)
Advertisements

assignment unary binary ternary
BAB III – CLASS (1) DIKTAT PBO Oleh: Adam Mukharil B. S.Kom.
Pertemuan 7 Struktur Kendali Percabangan SWITCH Dasar Pemrograman Renni Angreni, S.Kom.
Struktur.
Komentar, Identifier dan Tipe Data
Pertemuan 17 ENUM & STRUCT Dasar Pemrograman Renni Angreni, S.Kom.
STRUCT 1.
STRUKTUR PEMILIHAN (KONTROL PROGRAM) Minggu III - 40 menit
Pointer Dr. Lily Wulandari.
POINTER (VAR.PENUNJUK)
Pertemuan 22 POINTER Bag.2 Dasar Pemrograman Renni Angreni, S.Kom.
#include //bagian modul int hitung(x,y) { return(x+y); } //bagian utama main() { int jumlah,a,b; a=8; b=2; jumlah=hitung(a,b); cout
Pertemuan 6 IF Bersarang / IF Bertingkat Nested IF Dasar Pemrograman.
Pertemuan 19 FUNGSI (Method) Bag.2 Dasar Pemrograman Renni Angreni, S.Kom.
1 Pertemuan 14 Operator Overloading Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Operator Overloading Pertemuan 20 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
Object Oriented Programming Bag.2 Pertemuan 24 Dasar Pemrograman Renni Angreni, S.Kom.
1 Pertemuan 4 ELEMEN DASAR C++ Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Friend. Adalah fungsi bukan anggota kelas yg dapat mengakses anggota kelas. Secara umum friend berguna jika terdapat suatu operasi yg hendak mengakses.
1 Pertemuan 6 Encapsulation Lanjutan Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Bab 05 Tipe Data dan Mengisi Variabel
Pertemuan 19 FUNGSI (Method) Bag.2 Dibuat oleh : Renni Angreni, S.Kom. Triana Elizabeth, S.Kom.
STRUKTUR KONTROL PENYELEKSIAN KONDISI LANJUTAN…….
POINTER Bag.2 Pertemuan 22 Dibuat oleh : Renni Angreni, S.Kom. Triana Elizabeth, S.Kom.
Fungsi, Array dan String
1 Pertemuan 18 Template Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
1 Pertemuan 12 Template Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
// Contoh program c++ dengan fungsi template
Kontrak Kuliah Pengenalan OOP
Linked List & POINTER Pertemuan POINTER
4. File Data Structure + Algorithm = Program UNIV. INDONUSA Esa Unggul.
File & Stream - Yessy Asri
VARIABEL DAN JENISNYA A. Ridwan Siregar.
Elemen Dasar C++ Norma Amalia, ST.,M.Eng.
Statement Control (if dan switch)
Informatique Engineering Ahmad Dahlan University May 17, 2004
PERULANGAN (LOOPING).
3. Elemen Dasar C++ S. Indriani L., M.T 3. Elemen Dasar C++
File & Stream - Yessy Asri
Struktur.
POINTER (VAR.PENUNJUK)
Class dan Objek Lanjutan Pertemuan 18
C++ static.
Sumber : repository.binus.ac.id/content/T0454/T ppt
ARRAY Oleh : sgo.
Elemen-elemen Dasar Pada Bahasa C++
Tipe Data Dasar Variabel dan Konstanta
As’ad Djamalilleil Array (Larik) As’ad Djamalilleil
Operator dan Operasi Input Output pada C++ Pertemuan 11
Pengantar Pemrograman
Class.
Operator By Harifuddin,ST,MT..
~ PERTEMUAN 4 KONSEP TIPE DATA ~
PERBEDAAN C DAN C++ Meriska Defriani, S
FOR Perulangan Menggunakan Pertemuan 10 Dasar Pemrograman
Generic Data Type Pertemuan 25
KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
CLASS.
Operator Unary & Operator Ternary Pertemuan 9 Dasar Pemrograman
Algoritma Struktur Data
Akademi Komunitas Negeri Lamongan
POINTER (VAR.PENUNJUK)
Operator.
Pertemuan 3 Input/output Statement Assignment Statement
#include using namespace std; int main(){ // deklarasi tipe data variabel string nama; int umur; char jenis_kelamin; // --- proses input --- cout
C++ Polymorphism.
PEMROGRAMAN DASAR Varian dan Invarian.
PERTEMUAN V F U N G S I Tujuan membuat suatu fungsi
File & Stream - Yessy Asri
Transcript presentasi:

Operator overloading

Konsep overloading terhadap operator didasarkan pada operasi yang terjadi sehari-hari misalkan operator + biasa digunakan untuk menjumlahkan bilangan bulat ataupun bilangan pecahan. 4 + 5 3.56 + 3.08 Bagaimana jika operator + digunakan untuk penjumlahan bilangan kompleks?

Untuk menjumlahkan bilangan kompleks, perlu sedikit modifikasi dalam penggunaan operator + Penambahan bilangan kompleks melibatkan penambahan sisi real dan imajiner (3 - 5i) + (6 + 7i) = (3 + 6) + (-5 + 7)i = 9 + 2i

Operator overloading artinya melakukan modifikasi / overloading pada operator (+, -, *, dsb) sesuai kebutuhan Syntax operator overloading: Tipe operator simbol_operator ( argument )

Operator yang dapat di-overloading + - * / % ^ & | ~ ! = > < += -= *= /= %= ^= &= |= >= <= && || == != <<= >>= << >> ++ -- ->* , -> [] () new New[] delete Delete[]

Operator yang tidak dapat di-overloading Kegunaan Contoh . Operator anggota struct atau class Cin.getline() .* Operator pointer ke anggota Object.*anggota : : Operator lingkup Class::anggota ? : Ungkapan kondisi C=(a>b)?a:b

Overloading operator biner Operator biner merupakan operator dengan dua operand, contoh operator+. Bentuk umum overloading operator biner adalah: TipeData operator simbol_operator (object )

#include <iostream> using namespace std; class complex { float riil; float imajiner; public: complex() { riil=0; imajiner=0; }; complex(float real, float imaginer) riil=real; imajiner=imaginer; void display(void) cout<<"["<<riil<<"]+["<<imajiner<<"i]\n"; complex operator +(complex c) { complex temp; temp.riil = riil+c.riil; temp.imajiner=imajiner+c.imajiner; return(temp); }; main() complex c1(2.5, 6.1); complex c2(3.3, 4.5); complex c3; c3=c1+c2; cout<<"\nC1="; c1.display(); cout<<"\nC2="; c2.display(); cout<<"\nC3="; c3.display(); system("pause"); }

Lengkapi program di atas untuk operasi berikut Addition (a + bi) + (c + di) = (a + c) + (b + d)i. Substraction (a + bi) - (c + di) = (a - c) + (b - d)i. Multiplication (a + bi) * (c + di) = (ac - bd) + (ad + bc)i. c* (a + bi) = c*a + c*bi Addition dengan bilangan integer (a + bi) + x= (a+x) + bi

Lengkapi program di atas untuk operasi berikut Increment (a + bi)++ = (a ++) + (b++)i Operator << (operator keluaran setelah cout) tampil : Riil = a, Imajiner=b; Operator >> (operator masukan setelah cin) tampil : Masukkan bilangan riil : Masukkan bilangan imajiner :

Overloading operator increment dan decrement Operator increment ada dua macam yaitu: Pre increment, dengan format: Nama_kelas operator++(); Post increment dengan format: Nama_kelas operator++(int); Operator decrement juga ada dua yaitu: Predecrement, dengan format: Nama_kelas operator--(); Post decrement, dengan format: Nama_kelas operator--(int);

Contoh Program // Program c++ dengan operator decrement &increment #include <constream.h> class Date { private: int month, day, year; static const int days[ ] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; void helpIncrement(); public: Date(int m=1, int d=1, int y=1990); void setDate(int m, int d, int y); Date operator++(); Date operator++( int ); const Date operator+= ( int ); int leapYear( int ); int endOfMonth( int ); };

// pre increment Date Date::operator++() { helpIncrement(); return (*this) } // post increment Date Date::operator++(int){ Date temp = *this void Date::helpIncrement(){ if (endOfMonth( day ) && month == 12) { day = 1; month = 1; ++year;

else if ( endOfMonth(day) ) { } else ++day; int Date::endOfMonth( int d) { if ( month ==2 && leapYear( year ) ) return (d == 29); return (d == days[ moth ]); int Date::leapYear( int yr){ if ( (yr%40 == 0) || (yr%100 != 0 && yr%4 == 0) ) return 1;

return 0; } const Date operator+= ( int addays) { for (int I=0; I < addays; I++) helpIncrement(); return *this;

Operator overloading dengan friend Operator overloading yang sering menggunakan friend adalah << pada cout dan >> pada cin Dengan overloading ini dimungkinkan menuliskan statement: cin >> object; cout << object;

Operator overloading dengan friend Bentuk umum dari overloading terhadap operator << adalah: ostream& operator << (ostream& output, object) { // tubuh fungsi return (output); } Bentuk umum dari overloading terhadap operator >> adalah: istream& operator >> (istream& input, object &) { return (input);

Contoh Program // program C++ operator >> dan << dengan friend #include <constream.h> #include <string.h> class Buku { private: int Nomor; char Judul[30]; char Pengarang[10]; public: Buku(); friend ostream& operator << (ostream& o, Buku b1); friend istream& operator >> (istream& i, Buku &b1); };

// definisi fungsi Buku::Buku() { Nomor = 0; strcpy(Judul, ""); strcpy (Pengarang, ""); } //definisi fungsi friend ostream& operator<<(ostream& out, Buku b1){ out << "Nomor buku: " << b1.Nomor << endl; out << "Judul buku: " << b1.Judul << endl; out << "Pengarang: " << b1.Pengarang << endl; return (out); istream& operator>> (istream& in, Buku& b1){ cout << "inputkan Nomor buku "; in >> b1.Nomor; cout << "inputkan Judul buku ";

in >> b1.Judul; cout << "inputkan Pengarang "; in >> b1.Pengarang; return (in); } void main() { Buku buku_C; cin >> buku_C; cout << buku_C;