Pertemuan-2 (Krakteristik-OOP)

Download Report

Transcript Pertemuan-2 (Krakteristik-OOP)

UPI CONVENTION CENTER [UPI-CC]
UNIVERSITAS PUTRA INDONESIA “ YPTK “
PADANG, 08 Agustus 2012
KARAKTERISTIK OBJECT ORIENTED
1.
2.
3.
4.
5.
6.
7.
8.
Objek
Kelas
Abstract Data Type / Tipe Data Abstrak
Instantiation / Instansiasi
Inheritance / Inheritas / Pewarisan
Encapsulation / Enkapsulasi
Abstraction / Abstraksi
Polymorphism / Polimorfisme
KARAKTERISTIK OBJECT ORIENTED
1. Abstraksi, prinsip untuk merepresentasikan dunia nyata
yang komplek menjadi satu bentuk model yang
sederhana dengan mengabaikan aspek-aspek lain yang
tidak sesuai dengan permasalahan.
2. Enkapsulasi, pembungkusan atribut data dan layanan
(operasi-operasi)
yang
dipunyai
obyek,
untuk
menyembunyikan implementasi dari obyek sehingga
obyek lain tidak mengetahui cara kerjanya
3. Pewarisan
(inheritance),
mekanisme
yang
memungkinkan suatu obyek (kelas) mewarisi sebagian
atau seluruh definisi dari obyek lain sebagai bagian dari
dirinya.
KARAKTERISTIK OBJECT ORIENTED
4. Reusability, pemanfaatan kembali obyek yang sudah
didefinisikan untuk suatu permasalahan pada
permasalahan lainnya yang melibatkan obyek tersebut.
5. Generalisasi dan spesialisasi, menunjukan hubungan
antara kelas dan obyek yang umum dengan kelas dan
obyek yang khusus.
6. Komunikasi antar obyek, dapat dilakukan lewat pesan
(message) yang dikirim dari satu obyek ke obyek lainnya.
7. Polymorphism,
kemampuan suatu obyek untuk
digunakan dibanyak tujuan yang berbeda dengan nama
yang sama sehingga dapat menghemat pemakaian baris
program.
TENTANG OBJECT
1. Segala sesuatu yang ada.
2. Objek terdiri dari attribute / state dan behaviour /
event.
3. Attribute adalah segala ciri atau sifat yang
melekat pada objek.
4. Behaviour adalah perilaku / perbuatan / aksi /
kejadian yang dapat dilakukan / diterima oleh
objek.
5. Contoh: anjing, kucing, manusia, meja, dsb.
6. Attr & behav dari contoh tsb adalah???
TENTANG CLASS
1. Cetakan / template / blue print dari objek.
2. Kelas mendefinisikan attribute (diwujudkan dalam
bentuk field / variable global [variable yang melekat pada
kelas, bukan pada sebuah method / fungsi / prosedur])
dan behaviour (diwujudkan dalam bentuk method /
prosedur / fungsi) dari objek dalam suatu unit untuk
suatu tujuan tertentu.
3. Sebagai contoh 'class of dog' adalah suatu unit yang
terdiri atas definisi-definisi data dan fungsi-fungsi yang
menunjuk pada berbagai macam perilaku/turunan dari
anjing.
4. Sebuah class adalah dasar dari modularitas dan struktur
dalam pemrograman berorientasi object.
TENTANG CLASS
5. Sebuah class secara tipikal sebaiknya dapat dikenali oleh
seorang non-programmer sekalipun terkait dengan
domain permasalahan yang ada, dan kode yang terdapat
dalam sebuah class sebaiknya (relatif) bersifat mandiri
dan independen (sebagaimana kode tersebut digunakan
jika tidak menggunakan OOP).
6. Dengan modularitas, struktur dari sebuah program akan
terkait dengan aspek-aspek dalam masalah yang akan
diselesaikan melalui program tersebut.
7. Cara seperti ini akan menyederhanakan pemetaan dari
masalah ke sebuah program ataupun sebaliknya.
ABSTRACT DATA TYPE
1. Adalah tipe data tertentu yang didefinisikan oleh
pemrogram untuk kemudahan pemrograman serta
untuk mengakomodasi tipe-tipe data yang tidak secara
spesifik diakomodasi oleh bahasa pemrograman yang
digunakan.
2. Dalam OOP kita dapat mendefinisikan tipe data baru.
3. Dapat berisi attribute saja, behaviour saja maupun
keduanya.
4. ADT diwujudkan dalam kelas – kelas buatan programmer
sesuai dengan kebutuhan / keinginan programmer.
5. Singgung tipe data primitive!
ABSTRACT DATA TYPE
INSTANTIATION
1. Adalah proses penciptaan objek
berdasarkan kelas yang ada.
2. Sama dengan pembuatan variable berdasar
kelas tertentu.
3. Biasanya ditandai dengan penggunaan kata
kunci “new”.
4. Contoh: A a = new A();
INHERITANCE
• Pewarisan
attribute
dan
behaviour sebuah kelas kepada
kelas yang lain.
• Contoh real: seorang anak
memiliki anggota tubuh (mata,
rambut) yang sama / mirip
(bentuk, warna, etc) dengan
orang tuanya, pewarisan DNA,
etc.
INHERITANCE
INHERITANCE
INHERITANCE
INHERITANCE
INCAPSULATION
• Pembungkusan attribute atau behaviour sehingga
tidak dapat diganti secara sembarangan dengan cara
yang tidak seharusnya.
• Setiap objek mengakses interface yang menyebutkan
bagaimana objek lainnya dapat berinteraksi
dengannya.
• Objek lainnya tidak akan mengetahui dan tergantung
kepada representasi dalam objek tersebut.
INCAPSULATION
• Manfaat dari proses enkapsulasi adalah :
– Modularitas: Kode sumber dari sebuah objek dapat
dikelola secara independen dari kode sumber objek
yang lain.
– Information Hiding: Karena kita dapat menentukan hak
akses(public, private, protected, default) sebuah
variabel/method dari objek, dengan demikian kita bisa
menyembunyikan informasi yang tidak perlu diketahui
objek lain.
ABSTRACTION
• Berbagai objek yang sejenis dapat memiliki
behaviour
yang
sama
namun
berbeda
implementasinya.
• Sebagai contoh, objek anjing sama – sama
memiliki behaviour menggonggong namun suara
gonggongan anjing berbeda – beda.
• Inilah yang mendasari abstraksi pada OOP.
• Pada OOP sebuah kelas dapat mendefinisikan
behaviour yang sama secara abstract yang
kemudian dapat diimplementasikan secara
berbeda pada saat digunakan.
POLYMORPHISM
1. Kata polimorfisme berarti satu objek dengan
banyak bentuk yang berbeda
2. Adalah konsep sederhana dalam pemrograman
berorientasi objek yang berarti kemampuan dari
suatu variabel referensi objek untuk memiliki aksi
berbeda bila method yang sama dipanggil,
dimana aksi method tergantung dari tipe
objeknya.
3. Menciptakan berbagai macam bentuk yang
berbeda dari sebuah kelas yang sama.
4. Proses ini dilakukan melalui proses pewarisan.
POLYMORPHISM
POLYMORPHISM
public class Time1
{
private:
int hour, int minute, int second;
public:
void Time1() { settime(0,0,0); }
void Time1(h) { settime(h,0,0); }
void Time1(h,m) { settime(h,m,0); }
void Time1(h,m,s) { settime(h,m,s); }
};
CLASS DAN OBJECT
• Class Creation:
–class <name> {
}
• Object Creation / Instantiation:
–<Class Name> <object name> = new <Class
Constructor>;
CONSTRUCTOR
• Adalah sebuah method yang otomatis akan
dipanggil setiap kali melakukan instansiasi
terhadap suatu kelas dan digunakan untuk
melakukan inisialisasi nilai dari data – data
yang terdapat di dalam kelas yang
bersangkutan.
• Namanya == nama kelas.
• Tidak ada return type sama sekali.
• Jika tidak dideklarasikan == use default
class Pegawai
{ private :
char NIP[13];
char Nama[100];
char Gol[15];
double GaPok;
public:
void Input_Data()
{
cout << "Input Data Pegawai"<<endl;
cout << "NIP
:";cin>>NIP;
fflush(stdin);
cout << "Nama
:";cin>>Nama;
cout << "Golongan [II/A] :";cin>>Gol;
cout << "Gaji Pokok Rp:";cin>>GaPok;
GP=GaPok;
}
void Cetak_Data()
{
cout << "Informasi Data Pegawai"<<endl;
cout << "NIP
:" << NIP << endl;
cout << "Nama
:" << Nama << endl;
cout << "Golongan [II/A] :" << Gol << endl;
cout << "Gaji Pokok Rp:" << GaPok << endl;
}
};
class Manager: public Pegawai
{ char KodeJabatan[10];
char NamaJabatan[45];
double Tunjangan;
public:
void Input_Data()
{
Pegawai::Input_Data();
cout << "Kode Jabatan
:";cin>>KodeJabatan;
cout << "Nama Jabatan
:";cin>>NamaJabatan;
cout << "Besar Tunjangan Rp:";cin>>Tunjangan;
}
void Cetak_Data()
{
Pegawai::Cetak_Data();
cout << "Kode Jabatan
:" << KodeJabatan << endl;
cout << "Nama Jabatan
:" << NamaJabatan << endl;
cout << "Besar Tunjangan Rp:" << Tunjangan << endl;
cout << "Gaji Total
Rp:" << Tunjangan+GP << endl;
}
};
void main()
{
char pil='0';
Pegawai P1;
Manager M1;
clrscr();
cout << "Menu Pilihan "<<endl;
cout << "[1].Input Data Pegawai"<<endl;
cout << "[2].Input Data Manager"<<endl;
cout << "[3].Tampil Data Pegawai"<<endl;
cout << "[4].Tampil Data Manager"<<endl;
cout << "[5].Exit (Kalua)"<<endl;
while (pil!='5')
{
cout << "Pilahan Anda [1..5]";cin>>pil;
switch (pil)
{
case '1':
P1.Input_Data();
break;
case '2':
M1.Input_Data();
break;
case '3':
P1.Cetak_Data();
break;
case '4':
M1.Cetak_Data();
break;
case '5':
exit(1);
default:
cout << endl << "Anda Salah Pilih [1..5]"<<endl;
break;
}
}
}
OVERLOADING
• Adalah mendefinisikan method yang
memiliki nama yang sama, tetapi
dengan signature (data type parameter
& parameter number) yang berbeda
dalam definisi class yang sama.
• Constructor == method  bisa
dioverload (see previous sample)
OVERLOADING
NEXT DASAR-DASAR MYSQL
PEMROGRAMAN BERORIENTASI OBYEK (PBO)