Selasa, 15 Desember 2009
Inheritance (Lanjutan)
Contoh:
class Pegawai
{ protected:
char NIP[10], Nama[30];
};
class Pendidikan
{ protected:
char Tingkat[20], Sekolah[80];
};
class Manajer : public Pegawai, public Pendidikan //Multiple Inheritance
{ private:
char Titel[20], Telpon[20];
};
class Peneliti : public Pegawai, public Pendidikan //Multiple Inheritance
{ private:
int Publikasi;
};
class Satpam : public Pegawai //Single Inheritance
{ };
Construcor dan Destructor pada Kelas Turunan
Constructor untuk kelas turunan perlu dibuat untuk melakukan inisialisasi kelas itu sendiri dan kelas induknya. Jika Constructor kelas induk memiliki parameter (argument), maka parameter Constructor kelas induk tersebut harus dimasukkan dalam Constructor kelas turunan. Destructor kelas turunan dijalankan dengan urutan yang terbalik dengan urutan Constructor, yaitu Destructor kelas turunan dijalankan terlebih dahulu baru destructor kelas induknya. Apabila kelas turunan memiliki lebih dari satu klas induk, setelah menjalankan destructor kelas turunan kemudian destructor kelas induk terakhir dijalankan sampai destructor kelas induk pertama dijalankan (sesuai dengan urutan terbalik dari penurunan kelas-kelas induk di dalam definisi kelas turunan tersebut).
Rabu, 09 Desember 2009
Inheritance
Ada 2 jenis inheritance, yaitu single inheritance dan multiple inheritance. Single berarti 1 kelas induk menhasilkan 1 atau lebih kelas turunan. Sedangkan multiple berarti 2 atau lebih kelas induk menhasilkan 1 atau lebih kelas turunan.
Pada perancangan hirarki kelas, kelas induk merupakan kelas yang mempunyai sifat (property) yang paling umum atau yang harus dimiliki oleh seluruh kelas turunannya. Sedangkan sifat yang khusus dimiliki oleh kelas-kelas turunannya, dimana sifat-sifat khusus tersebut digunakan untuk meningkatkan sifat atau kemampuan dari kelas induknya.
Contoh single inheritance:
class Mobil
{ protected: int roda;
};
class Kijang : public Mobil
{ protected: char tipe[20];
};
Anggota kelas induk dapat diakses hanya oleh anggota kelas turunan apabila jenis akses dari anggota kelas induk adalah public atau protected (private tidak dapat diakses).
Anggota protected suatu kelas tetap tidak dapat diakses oleh fungsi / kelas lainnya dalam program yang tidak menjadi anggota kelas turunan tersebut.
Selasa, 01 Desember 2009
Array & Pointer of Class
Sedangkan apabila kita mengimplemantasikan Array pada Class, maka akan dilakukan range checking terlebih dahulu. Jadi apabila terdapat isi array yang lebih, pada waktu dicompile akan terjadi warning/error. Dengan penggunaan Array pada Class, maka array dapat langsung dibandingkan dengan yang lainnya.
Pada implementasi Array pada class, juga dapat digunakan copy constructor agar dapat mengcopy object yang dibutuhkan.
Implementasi Pointer pada Class, apabila kita menggunakan Array, maka tempat yang disediakan akan terbatas sesuai dengan yang sudah kita alokasikan, tetapi apabila kita menggunakan pointer, kita dapat menggunakan sesuai kebutuhan kita. Alokasi memory pada array adalah static (sesuai dengan yang dialokasikan pada awal, apabila kurang, kita harus mengalokasikan lebih pada awalnya), sedangkan pada pointer alokasinya adalah dynamic (di mana alokasi memory sesuai dengan yang kita butuhkan).
Contoh implementasi pointer pada Class:
#include
class First
{ public:
int value;
First() {value = 0;}
int GetValue() {return value;}
};
class Second
{ int id;
public:
First *obj1;
Second() {id = 0;}
int GetName(){ return id;}
};
int main()
{ Second Obj2;
int num;
num = Obj2.GetName();
return 0;
}
Selasa, 03 November 2009
Class (lanjutan)
#include
class data
{
private:
int no;
public:
int getNo() // getter
{
return(no);
}
void setNo(int x) // setter
{
no=x;
}
};
void main()
{
data obj;
obj.setNo(5);
cout << "Nilai dari No adalah: " << obj.getNo;
cout << endl;
cin.get();
}
Sebuah class dapat berisi object dari class lain (hal ini disebut dengan nested object). Member object disusun berurutan. Contohnya adalah class dengan member objects (host objects) berada setelah deklarasi class host object tersebut (perlu class prototype).
class B; // class prototype
class A
{ public: int i;
}
class B
{ public: int j;
A obj_A; //host object
}
B obj_B; // create object class B
Obj_B.Obj_A.i = 0; // inisialisasi member class A via object B
Tiap class member function memiliki hidden parameter -> pointer "this". This menunjuk kepada individual object. Pointer this dapat digunakan secara explicit.
Contoh penggunaan this:
class data
{
private:
int no;
public:
int getNo() // getter
{
return(no);
}
void setNo(int no) // setter
{
this->no=no; //dimaksudkan agar no yang berada di dalam class yang mendapat nilai
}
};
Jumat, 30 Oktober 2009
Class
contoh pembuatan class:
class Product
{ public:
int Prod_id;
char Prod_Name;
float Price;
int Stock_qty;
};
Product Brg1;
3 Access Level Class
Public:
Bagian class yang dapat diakses oleh umum baik dari dalam maupun dari luar class.
Protected:
Bagian class yang dapat diakses oleh linkungan internal class dan class turunannya.
Private:
Bagian class yang hanya dapat diakses oleh linkungan internal class itu sendiri.
Constructor dan Destructor
class Time
{ private:
int hour;
int minute;
int second;
public:
Time(); //constructor
void setTime( int, int, int );
void printUniversal();
void printStandard();
~Time(); //destructor
};
Constructor adalah member function yang pertama kali di kerjakan ketika satu object di create. Nama constructor harus sama dengan nama classnya dan digunakan untuk inisiasi object. Minimal harus ada 1 constructor dan bisa dioverload. Apalagi tidak ada constructor, maka compiler akan mengenerate default constructor untuk class tersebut
Destructor adalah member function yang di kerjakan ketika satu object di destroy / death (sebagai pengakhiran object). Nama destructor sama dengan nama class nya hanya ditambahkan tanda tilde (~) di awalannya dan digunakan untuk de-inisialisasi/dealokasi memori. Destructor hanya ada 1.
Deklarasi Object Class
Time timeObject; //object biasa
Time timeArray[ 10 ]; // object array
Time *timePtr; //object pointer
Time &timeRef = timeObject; // object reference
Kamis, 22 Oktober 2009
Struct
Cara mendeklarasikan struct adalah sebagai berikut:
struct Time // struct tag
{
int hour; // struct member
int minute; // struct member
int second; // struct member
};
dan cara untuk mendeklarasikannya adalah sebagai berikut:
Time timeObject; //variable biasa
Time timeArray[ 10 ]; // variable array
Time *timePtr; //variable pointer
Time &timeRef = timeObject; //reference
Cara untuk mengakses member struct adalah dengan menggunakan .(dot) apabila menggunakan variable basa, contohnya adalah cout << timeObject.hour;
Apabila menggunakan variable pointer/reference, digunakan ->(arrow) untuk mengakses datanya, contohnya adalah cout << timePtr->hour;
Nested Struct adalah struct yang terdapat didalam struct. Contohnya adalah sebagai berikut:
struct Date
{
int tgl;
int bln;
int thn;
};
struct Employee
{
int ID;
int Name;
Date hire;
};
Sabtu, 17 Oktober 2009
Set IOS Flags
cout.setf(ios::showpos); -> Memberikan tanda + / - pada output
contoh :
double x=5.35;cout.setf(ios::showpos);
cout << x;
hasil : +5.35
cout.setf(ios::dec); -> Mengubah bilangan menjadi basis 10 (desimal)
contoh :
int bil = 125; cout.setf(ios::dec);
cout << bil;
hasil : 125
cout.setf(ios::hex); -> Mengubah bilangan menjadi basis 16 (hexadesimal)
contoh :
int bil = 125; cout.setf(ios::hex);
cout << bil;
hasil : 7d
cout.setf(ios::oct); -> Mengubah bilangan menjadi basis 8 (octal)
contoh :
int bil = 125; cout.setf(ios::oct);
cout << bil;
hasil : 175
cout.setf(ios::fixed); -> Menampilkan bilangan nol di belakang koma (apabila ia double)
contoh :
double x=5.35;cout.setf(ios::fixed);
cout << x;
hasil : 5.350000
cout.setf(ios::scientific); -> Menampilkan bilangan nol di belakang koma (apabila ia double)
contoh :
double x=5.35;cout.setf(ios::scientific);
cout << x;
hasil : 5.350000e+00
cout<-> Menyiapkan tempat sebanyak variabel x.default rata kanan
contoh : double x=5.35; cout << x;
hasil : _5.35
cout.setf(ios::showpos | ios::internal); -> Menampilkan tanda positif atau negatif di kanan
contoh :
double x=5.35; cout.setf(ios::showpos | ios::internal);
cout << setw(10) << x;
hasil : + _____5.35
cout.setf(ios::right); -> Membuat rata kanan
contoh :
int bil=125; cout.setf(ios::right);
cout << bil;
hasil : __125
cout.setf(ios::left); -> Membuat rata kiri
contoh :
int bil=125; cout.setf(ios::left);
cout << setw(5) << bil;
hasil : 125
cout.setf(ios::hex | ios::uppercase); -> Mengubah A-F menjadi huruf besar pada bilangan hexadesimal
contoh :
int bil = 125; cout.setf(ios::hex | ios::uppercase);
cout << bil;
hasil : 7D
cout.setf(ios::showbase | ios::hex); -> Untuk menunjukkan base karakter untuk bilangan octal atau hexa
contoh :
int bil = 125; cout.setf(ios::showbase | ios::hex);
cout << bil;
hasil : 0x7d
cout.setf(ios::showpoint); -> Menunjukkan desimal point untuk semua float
contoh :
float b=3; cout.setf(ios::showpoint);
cout << b
hasil : 3.00000
Untuk menghentikan cout.setf, kita dapat menggunakan cout.unsetf.
Jumat, 09 Oktober 2009
Recursive Function
Kelebihan dari recursive function ini adalah kita dapat membuat function yang lebih singkat apabila dibandingkan dengan function yang biasa (iteration function).
Minggu, 20 September 2009
C++
“Eh lu tau ga cara pake C++?” “Hah? C++? Apaan tuh? Game baru?”
Mungkin banyak sekali orang yang tidak tahu tentang C++. Memangnya, C++ itu apa sih? Di sini, saya akan menjelaskan sedikit mengenai C++ dan kemudian apa sih karakteristik C++. Saya tidak mungkin menjelaskannya semua dikarenakan dunia C++ sangatlah luas. Mari kita mulai dengan apa sih C++ itu.
C++ adalah bahasa pemrograman yang mempunyai multi-paradigma, bahasa yang terstruktur dan merupakan bahasa pemrograman yang multi-purpose. C++ merupakan bahasa pemrograman tingkat tengah karena merupakan gabungan dari bahasa pemrograman tingkat tinggi dan tingkat rendah. C++ diciptakan dan dikembangkan oleh Bjarne Stroustrup pada tahun 1979 yang merupakan pemgembangan dari C dan nama aslinya adalah “C with Classes” yang kemudian diganti dengan mana C++ pada tahun 1983. Contoh server yang menyediakan compiler C++ adalah Microsoft, GNU Project, Intel, Borland, dan lain-lain. Penambahan karakteristik pada C adalah penambahan classes, virtual functions, operator overloading, multiple inheritance, templates, dan exception handling. C++ digunakan dalam industri software dan masih merupakan bahasa yang popular dalam pemrograman. Contoh bidang-bidang yang menggunakan C++ adalah system software, aplikasi software, embedded software, video games, dan lain-lain.
“Kenapa sih namanya harus C++?
Pada awalnya, namanya memanglah C with Classes, tetapi pada tahun 1983, Rick Mascitti mengganti namanya menjadi C++ dan mulai digunakan sejak mulai tahun 1993. Kenapa C++? Kenapa tidak Evoluted C atau nama lainnya? Dalam pemrograman dalam C maupun C++, ++ merupakan penambahan nilai 1, contohnya adalah sebagai berikut: i++; yang berarti bahwa nilai variable i ditambahkan nilainya dengan 1, sehingga apabila nilai variable i yang awalnya adalah 1, menjadi 2. ++ (dibaca plus plus) adalah increment, penambahan nilai, sehingga C++ berarti adalah C yang telah ditambahkan nilai-nilainya.
Berikut ini adalah karakteristik dari C++:
1. C++ merupakan bahasa pemrograman yang terstruktur sehingga penggunaannya sangat effisien dan juga mudah digunakan seperti sama halnya dengan C
2. C++ mensupport beberapa programming styles seperti procedural programming, data abstraction, object-oriented programming, and generic programming
3. C++ memberikan kebebasan pada programmer untuk memilih, walaupun pilihannya bisa saja salah
4. C++ cocok dengan C sehingga program yang kita buat di C, dapat dijalankan di C++
5. C++ tidak mempunyai fungsi yang tidak bersifat tidak general-purpose
6. C++ tidak mempunyai fungsi yang tidak digunakan
7. C++ dirancang untuk bekerja tanpa memerlukan pengetahuan yang tinggi akan bahasa pemrograman (user friendly ya J)
Demikian penjelasan singkat mengenai C++ dari saya. Semoga membantu