OOP
“OBJECT
ORIENTED PROGGRAMMING”
·
Pengertian
OOP (Object Oriented Programming)
adalah Pemrograman berorientasi objek. Pemrograman ini mempertinggi kualitas
dan produktifitas pengembangan software.
·
Keuntungan
Konsep
orientasi objek mendukung pewarisan, selain itu konsep OOP berkemampuan untuk
menggunakan nama variabel yang sama secara berulang-ulang. Itu sebabnya konsep
OOP sangat bagus digunakan untuk proyek pembangunan web yang besar.
Dalam
pemograman berorientasi Objek dikenal Ada beberapa pengertian dasar yang harus
kita ketahui yaitu:
·
Class, dimana class adalah merupakan
penggambaran dari sebuah objec atau benda,sifat objek, dan juga apa yang bisa
dilakukan oleh objek tersebut.
Sebagai contoh adalah pengambaran yang real dalam
kehidupan kita adalah tentang dunia transportasi. Tentunya kita semua
mengetahui bahwa sangatlah banyak jenis alat transportasi yang ada seperti
motor, mobil,pesawat terbang,kapal laut, dan lain sebagainya.Kemudian marilah
kita anggap berbagai alat transportasi tersebut sebagai suatu class. Maka
motor tentunya mempunyai no polisi,tahun pembuatan,merk dll demikian juga
dengan alat transportasi yang lainnya, oleh karenanya hal ini bisa disebut
sebagai properties. Selanjutnya motor itu sendiri bisa berjalan maju, berjalan
mundur,belok kiri, belok kanan yang mana kegiatan ini disebut method.
Contoh :
public class ApaMotormu
{
public static void main(String[] args)
{
Motor punyaku=new Motor();
punyaku.motorku();
Motor punyaku=new Motor();
punyaku.motorku();
}
}
- Object, adalah merupakan suatu bentuk dari class.
Kalau kita mengikuti analogi di atas, maka object
dari class HEWAN adalah Burung, KAMBING, AYAM, KUDA. Mereka adalah
CONTOH dari class HEWAN. Semua dari mereka adalah HEWAN yang mempunyai nama,
kaki, Jenis makanan dst. Dan bisa berlari, bersuara, berkembang biak dll.
Contoh :
public class Peliharaanmu
{
public static void main(String[] args)
{
Hewan
punyaku=new Hewan();
punyaku.hewanku();
}
}
- Inheritance, yaitu salah satu bentuk teknis untuk membuat sebuah class lebih spesifik lagi.
Sebagai contoh dari kasus ini menurut analogi di atas.
Misalkan kita akan membuat class yang lebih spesifik dari ORANG yaitu
siswa/student. Maka class ini mempunyai properti tambahan sekolah tempat
dia belajar. Akan tetapi, semua properti sebagai orang ada juga pada
class siswa ini.
Contoh:
Public Class ORANG_TUA
'variabel untuk menampung nama bapak
Private XBapak As String
'variabel untuk menampung nama ibu
Private XIbu As String
'property (atribut/informasi) class
Public Property Nama_Bapak() As String
'Get : hanya ijinkan akses data
Get
Return XBapak
End Get
'Set : mengijinkan ubah data
Set(ByVal value As String)
XBapak = value
End Set
End Property
'property (atribut/informasi) class
Public Property Nama_Ibu() As String
Get
Return XIbu
End Get
Set(ByVal value As String)
XIbu = value
End Set
End Property
End Class
Turunkan dengan inheritance :
Public Class ANAK_WANITA
'membuat turunan dari base class
Inherits ORANG_TUA
Private XWanita As String
Private XUsia_W As String
Public Property Nama_Wanita() As String
Get
Return XWanita
End Get
Set(ByVal value As String)
XWanita = value
End Set
End Property
Public Property Usia_Wanita() As Byte
Get
Return XUsia_W
End Get
Set(ByVal value As Byte)
XUsia_W = value
End Set
End Property
End Class
- Encapsulation, yaitu mengemas suatu objek sehingga pada saat kita akan memakai objek tersebut kita tidak perlu lagi tahu tentang detail bagaimana suatu action itu terjadi.
Contoh dalam hal ini, misal siswa (suatu object)
sedang menulis (method). Maka detail dari tentang cara siswa itu menulis
(bagaimana otot tangan itu bekerja untuk menulis, bagaimana sistem saraf
pusat memerintahkan untuk menulis) kita tidak perlu mengerti. Kita hanya
melihat si siswa sedang menulis.
Contoh :
class Siswa
{
String nama;
String nim;
void isiData ( String namaku,String
nimku )
{
nama = namaku;
nim = nimku;
}
String ambilNama()
{
return nama;
}
String ambilNim()
{
return nim;
}
}
public class Mahasiswa
{
public static void main ( String []
args)
{
Siswa mahasiswa_itn = new Siswa();
//membuat variable instant
mahasiswa_itn.isiData(“Dina
Damayanti”,”0412585″);
System.out.println( “Nama : ” +
mahasiswa_itn.ambilNama());
System.out.println( “Nim : ” +
mahasiswa_itn.ambilNim());
}
}
- Polymorphism, yaitu suatu object bisa bertindak lain terhadap message/method yang sama.
Misalkan kita punya satu class hewan dan
diturunkan menjadi dua class hewan berkaki dua dan hewan berkaki
empat. Ketika hewan berkaki dua melakukan method makan maka yang
dilakukan adalah makan dengan paruhnya, dan ketika hewan berkaki empat juga makan
maka dia akan menggunakan mulutnya. Keduanya melakukan aksi yang sama yaitu
makan akan tetapi perlakuannya lain..
Contoh :
class Binatang
{
public void info()
{
System.out.println(” Info tentang
Hewan : “);
}
}
class Herbivora extends Binatang
{
public void info()
{
System.out.println (“Info pada herbivora: Memakan makanan
berupa tumbuh – tumbuhan”);
}
}
class Kelinci extends Herbivora
{
public void info()
{
System.out.println(“Info pada Kelinci: Memakan makanan
berupa wortel”);
}
}
public class Polimorfisme
{
public static void main(String[] args)
{
Herbivora herbivora;
Kelinci kelinciku;
Binatang hewan;
herbivora=new Herbivora();
kelinciku=new Kelinci();
hewan=herbivora;
hewan.info();
hewan=kelinciku;
hewan.info();
}
}
Contoh
dalam bahasa C++
#include
#include
#include
class titik{
private :
int x,y;
public:
titik(int=0,int=0);
void setX(int);
void setY(int);
int getX();
int getY();
};
titik::titik(int x,int y){
this->x=x;
this->y=y;
}
void titik::setX(int n){
this->x=n;
}
void titik::setY(int n){
this->y=n;
}
int titik::getX(){
return x;
}
int titik::getY(){
return y;
}
class lingkaran: public titik{
private :
double radius;
public :
lingkaran(int=0,int=0,double=0.0);
void setradius(double);
double getradius();
double getluas();
double getkeliling();
};
lingkaran::lingkaran(int x, int y, double radius) : titik(x,y){
this->radius=radius;
}
void lingkaran::setradius(double n){
this->radius=n;
}
double lingkaran::getradius(){return radius;}
double lingkaran::getluas(){
return 22.0/7 * radius * radius;
}
double lingkaran::getkeliling(){
return 22.0/7*radius*2;
}
class tabung :public lingkaran{
private:
double tinggi;
public:
tabung(int=0,int=0,double=0.0,double=0.0);
void settinggi(double);
double gettinggi();
double getluas();
double getvolume();
};
tabung::tabung(int x,int y, double radius, double tinggi):lingkaran(x,y,radius){
this->tinggi=tinggi;
}
void tabung::settinggi(double tinggi){
this->tinggi=tinggi;
}
double tabung::gettinggi(){
return tinggi;
}
double tabung::getluas(){
return 2*lingkaran::getluas() + lingkaran::getkeliling()*tinggi;
}
double tabung::getvolume(){
return lingkaran::getluas() * tinggi;
}
void main(){
titik tik(2,4);
lingkaran ling(2,3,6);
tabung tab(2,5,6,4);
getch();
}
#include
#include
class titik{
private :
int x,y;
public:
titik(int=0,int=0);
void setX(int);
void setY(int);
int getX();
int getY();
};
titik::titik(int x,int y){
this->x=x;
this->y=y;
}
void titik::setX(int n){
this->x=n;
}
void titik::setY(int n){
this->y=n;
}
int titik::getX(){
return x;
}
int titik::getY(){
return y;
}
class lingkaran: public titik{
private :
double radius;
public :
lingkaran(int=0,int=0,double=0.0);
void setradius(double);
double getradius();
double getluas();
double getkeliling();
};
lingkaran::lingkaran(int x, int y, double radius) : titik(x,y){
this->radius=radius;
}
void lingkaran::setradius(double n){
this->radius=n;
}
double lingkaran::getradius(){return radius;}
double lingkaran::getluas(){
return 22.0/7 * radius * radius;
}
double lingkaran::getkeliling(){
return 22.0/7*radius*2;
}
class tabung :public lingkaran{
private:
double tinggi;
public:
tabung(int=0,int=0,double=0.0,double=0.0);
void settinggi(double);
double gettinggi();
double getluas();
double getvolume();
};
tabung::tabung(int x,int y, double radius, double tinggi):lingkaran(x,y,radius){
this->tinggi=tinggi;
}
void tabung::settinggi(double tinggi){
this->tinggi=tinggi;
}
double tabung::gettinggi(){
return tinggi;
}
double tabung::getluas(){
return 2*lingkaran::getluas() + lingkaran::getkeliling()*tinggi;
}
double tabung::getvolume(){
return lingkaran::getluas() * tinggi;
}
void main(){
titik tik(2,4);
lingkaran ling(2,3,6);
tabung tab(2,5,6,4);
getch();
}
0 komentar: