Kamis, 25 Juni 2009

OOP part Two

OOP

OOP (object oriented programming) merupakan suatu kata yang sudah tidah asing lagi dalam dunia pemrograman. Ada beberapa kelebihan menggunakan pemrograman berorientasi objek, diantaranya adalah :

1. memudahkan programmer dalam menulis program

2. Mempercepat penulisan programmer dalam menulis program

3. Mempermudah pemeliharaan program

4. Extensibility dan reusability

Setiap permasalahan yang diselesaikan dengan menggunakan OOP akan diimplementasikan dalam bentuk objek. Biasanya permasalahan yang ada merupakan permasalahan yang ada dala dunia nyata yang kemudian diimplementasikan dalam bentuk code-code tertentu dan ditulis dengan bahasa pemrograman tertentu yang mendukung pemrograman berorientasi objek, seperti Java, C++,Vb.net, dan bahasa pemrograman lainnya.

Ada beberapa point penting yang harus diperhatikan dala konsep pemrograman berorientasi objek, diantaranya:

a. Kelas

b. Objek

c. Atribut

d. Method

e. Instansiasi

f. Inheritance

g. Enkapsulasi

Berikut ini akan kita bahas satu demi satu point-point penting dari konsep Pemrograman Beorientasi Objek (OOP). Disini saya akan menggunakan Bahasa pemrograman Java untuk mengimplementasikan konsep OOP.

a. Kelas

Kelas dapat kita ibaratkan sebagai suatu wadah, kumpulan, atau himpunan. Biasanya kelas akan memuat objek-objek yang memiliki sifat dan perilaku yang sama. Kelas dapat juga disebut sebagai suatu cetakan atau template. Misalkan terdapat sebuah kelas bernama PK_Deplu, maka dalam kelas PK_Deplu tersebut akan memuat sekumpulan objek yang memiliki sifat dan perilaku yang sama.

Dalam Bahasa Java, sebuah kelas dideklarasikan dengan menggunakan keyword Class.

Contoh implementasi deklarasi class dalam Java:

Class PK_Deplu{ //deklarasi class

//body class

}

b. Objek

Objek dapat kita ibaratkan sebagai anggota dari suatu kelas. Dalam satu kelas bisa terdapat lebih dari satu objek. Objek-objek tersebut dibuat dari template yang sama (dalam hal in template berarti class) . Misalkan dari kelas PK_Deplu bisa dibuat 3 objek. Setiap objek yang dibuat dari class yang sama akan memiliki sifat dan perilaku yang sama. Contoh deklarasi objek dengan menggunakan Java yaitu:

PK_Deplu dewo=new PK_Deplu;

PK_Deplu deni=new PK_Deplu;

PK_Deplu ayi=new PK_Deplu;

Pada contoh di atas, dari Kelas PK_Deplu dibuat 3 buah objek yaitu dewo, deni, dan ayi. Untuk semua objek dari class PK_Deplu tersebut akan memiliki sifat dan perilaku yang sama, karena ketiganya dibuat dari template yang sama, yaitu dari class PK_Deplu.

c. Atribut

Atribut adalah sesuatu yang dimiliki oleh objek. Setiap objek yang dibuat dari kelas yang sama akan memiliki atribut yang sama. Pada implementasi program, sebuah atribut ditulis dalam bentuk data/ variable. Misalkan dari Kelas PK_Deplu dideklarasikan atribut NIP, Nama, dan Kelompok. Deklarasi pada java:

double NIP;

String Nama;

int Kelompok;

Maka untuk setiap objek dewo, deni, dan ayi, ketiganya akan memiliki atribut yang sama, tapi setiap atribut bisa di-assign dengan nilai yang berbeda. Contoh deklarasi atribut dengan menggunakan Java yaitu:

//assign nilai atribut untuk objek dewo

dewo.NIP = 22062008;

dewo.Nama=”Dedy Wibowo”;

dewo.Kelompok=1;

//assign nilai atribut untuk objek deni

deni.NIP = 65335297;

deni.Nama=”Deni Wijaya”;

deni.Kelompok=2;

//assign nilai atribut untuk objek ayi

ayi.NIP = 12346527;

ayi.Nama=”Ayi Dianitasari”;

ayi.Kelompok=3;

Dari contoh deklarasi di atas, dapat kita lihat bahwa setiap objek akan memiliki atribut yang sama, yaitu NIP, Nama, dan Kelompok. Tetapi, masing-masing atribut dari setiap objek bisa diberi nilai yang berbeda.

d. Method

Method adalah sesuatu yang dapat dilakukan oleh objek. Method dalam implementasi program ditulis dalam bentuk fungsi. Misalkan pada kelas PK_Deplu dideklarasikan method kuliah, tidur, makan. Maka untuk setiap objek pada kelas PK_Deplu bisa melakuka makan, kuliah, dan tidur. Contoh implemtasinya adalah:

//deklarasi method kuliah

public void kuliah(){

System.out.println(“sedang kuliah…”);

}

//deklarasi method tidur

public void tidur(){

System.out.println(“sedang tidur…”);

}

//deklarasi method makan

public void makan(){

System.out.println(“sedang makan…”);

}

//pemanggilan method oleh objek dewo

dewo.kuliah();

dewo.tidur();

dewo.makan();

//pemanggilan method oleh objek deni

deni.kuliah();

deni.tidur();

deni.makan();

//pemanggilan method oleh objek ayi

ayi.kuliah();

ayi.tidur();

ayi.makan();

Dari contoh di atas dapat kita lihat bahwa untuk setiap objek pada kelas PK_Deplu bisa memanggil method yang dideklarasikan pada kelas PK_Deplu.

e. Instansiasi

Instansiasi adalah proses pembuatan objek dari kelas yang sudah ada. Di bagian sebelumnya sudah dibahas mengenai pembuatan objek dari kelas PK_Deplu, yaitu:

PK_Deplu dewo=new PK_Deplu;

PK_Deplu deni=new PK_Deplu;

PK_Deplu ayi=new PK_Deplu;

Deklarasi tersebut merupakan contoh dari deklarasi untuk melakukan instansiasi. Untuk membuat objek dari suatu class dalam Java digunakan keyword new. Jadi, dalam satu kelas bisa dilakukan lebih dari 1 instansiasi.

f. Inheritance

Inheritance merupakan konsep pewarisan pada OOP. Pada OOP kelas yang satu bisa dihubungkan dengan kelas lainnya. Dimana kelas yang satu bisa dibuat menjadi turunan dari kelas lainnya. Kelas yang satu disebut sebagai parent, dan kelas lainnya disebut sebagai child. Berarti dalam hal ini kelas parent menurunkan atribut dan methodnya ke kelas child.

Ada 3 tipe akses yang bisa diturunkan dari kelas parent ke kelas child, yaitu:

a. Public: data dan method bisa diakses oleh semua kelas, baik itu kelas parent, child, ataupun kelas lainnya.

b. Private: data dan method hanya bisa diakses oleh kelas itu sendiri.

c. Protected: data dan method bisa diakses oleh kelas parent dan kelas child

Misalkan dari kelas PK_Deplu yang sudah kita buat akan dibuat kelas turunannya, bernama kelas PK_kelompok1. Untuk membuat suatu kelas merupakan turunan dari class parent, implementasi pada java menggunakan keyword extends. Contoh:

class PK_Kelompok1 extends PK_Deplu{ //inheritance

//atribut pada kelas PK_Kelompok1

int umur;

//method pada kelas PK_Kelompok1

public void setumur(int a){}

public double getumur(){} //

}

Dari deklarasi di atas, kelas PK_Kelompok1 merupakan turunan dari kelas PK_Deplu. Perhatikan terdapat kata kunci extends pada deklarasi di atas. Maka, setiap objek yang diinstansiasi dari kelas PK_Kelompok1 akan memiliki atribut umur (atribut asli), atribut NIP,Nama, dan Kelompok (atribut turunan dari kelas PK_Deplu). Dengan catatan atribut dan method yang dideklarasikan pada kelas parent harus diberi tipe akses public atau protected agar dapat diturunkan ke kelas child. Bila digabungkan menjadi:

Class PK_Deplu{ //deklarasi class

//deklarasi property dengan tipe akses protected

protected double NIP;

protected String Nama;

protected int Kelompok;

//deklarasi method kuliah

public void kuliah(){

System.out.println(“sedang kuliah…”);

}

//deklarasi method tidur

public void tidur(){

System.out.println(“sedang tidur…”);

}

//deklarasi method makan

public void makan(){

System.out.println(“sedang makan…”);

}

}

class PK_Kelompok1 extends PK_Deplu{ //inheritance

//atribut pada kelas PK_Kelompok1

int umur;

//method pada kelas PK_Kelompok1

public void setumur(int a){}

public double getumur(){} //

}

public static void main(String[] args) {

//instansiasi objek PK_Deplu

PK_Deplu dewo=new PK_Deplu;

//assign nilai atribut

dewo.NIP = 22062008;

dewo.Nama=”Dedy Wibowo”;

dewo.Kelompok=1;

//pemanggilan method

Dewo.kuliah();

//instansiasi objek PK_Kelompok1

PK_Kelompok1 heni = new PK_Kelompok1;

//assign nilai atribut dari class PK_Deplu

heni.umur=22;

//atribut dari class PK_Kelompok1

heni.Nama = “Heni Rahmini Handayani”;

}

Contoh Kasus

Kasus 1: Lingkaran dan kerucut

  1. Source Code

public class Lingkaran {

public double jari;

public void setJari(double a){

this.jari=a;

}

public double getJari(){

return jari;

}

public double HitungLuas(){

return 3.14*jari*jari;

}

/** Creates a new instance of Lingkaran */

public Lingkaran() {

}

}

public class Kerucut extends Lingkaran {

double tinggi;

public void setTinggi(double a){

this.tinggi=a;

}

public double gettinggi(){

return tinggi;

}

public double HitungVolume(){

return (3.14*HitungLuas()*tinggi)/3;

}

/** Creates a new instance of Kerucut */

public Kerucut() {

}

}

public static void main(String[] args) {

// TODO code application logic here

Lingkaran l=new Lingkaran();

Kerucut k=new Kerucut();

k.setJari(5);

k.setTinggi(9);

double luas=k.HitungLuas();

double volume=k.HitungVolume();

System.out.println("Luas Lingkaran adalah : "+luas);

System.out.println("Volume Kerucut adalah :"+volume);

}

  1. Output program:

Luas Lingkaran adalah : 78.5

Volume Kerucut adalah :739.4699999999999

Kasus 2: pajak

  1. Source code

public class Pajak {

protected double Pendapatan;

String Provinsi;

public double HitungPajak(){

double PajakUmum=0;

if(Pendapatan <>

PajakUmum=Pendapatan*0.04;

}

else{

PajakUmum=Pendapatan*0.05;

}

return PajakUmum;

}

/** Creates a new instance of Pajak */

public Pajak() {

}

}

public class PajakJabar extends Pajak {

public double hitungPajakDaerah(double PajakUmum){

double PajakDaerah=PajakUmum-200;

return PajakDaerah;

}

/** Creates a new instance of PajakJabar */

public PajakJabar() {

}

}

public static void main(String[] args) {

// TODO code application logic here

Pajak p=new Pajak(); //membuat objek

//memberikan nilai untuk variabel pendapatan

p.Pendapatan=1000000;

//memberikan nilai untuk variabel provinsi

p.Provinsi="Jawa Barat";

//menghitung pajak

double PajakAnda=p.HitungPajak();

PajakJabar p1=new PajakJabar();

Double PajakAndaDaerah=p1.hitungPajakDaerah(PajakAnda);

//Menampilkan Hasil

System.out.println("Pajak Anda Adalah :Rp. "+PajakAnda);

System.out.println("Provinsi Anda Adalah : Rp."+p.Provinsi);

System.out.println("Pajak Daerah Anda Adalah : Rp. "+PajakAndaDaerah);

}

  1. Output pogram

Pajak Anda Adalah :Rp. 50000.0

Provinsi Anda Adalah : Rp.Jawa Barat

Pajak Daerah Anda Adalah : Rp. 49800.0





-------------------- all design by --------------------------------

---- Dedy Wibowo featuring Heni Rahmini Handayani ----



Rabu, 17 Juni 2009

Object-oriented Programming

Wah, gaya banget perkenalannya pake bahasa inggris (mungkin alasannya agar bisa dikenal oleh dunia internasional. Tapi, bukan bermaksud tuk membanggakan diri hanya mempublikasikan diri. Dan selanjutnya akan menggunakan bahasa indonesia dengan campuran bahasa inggris.)
Awal cerita membuat blog ini yaitu untuk memenuhi tugas dari Bapak Pedjoeang a.k.a. Romi Satria Wahono (pendiri ilmukomputer.com dan perusahaan IT Brainmatics). Kami diharapkan dapat menyusun kalimat mengenai salah satu konsep dari OOP.

Apa sich OOP itu? khayalak dunia programmer mengenalnya sebagai Object-oriented programming yang merupakan ide pemrograman yang berorientasikan kepada objek.
Apa saja konsep dari OOP? Beberapa diantaranya adalah class, object, inheritance, encapsulation, dan polymorphism. (untuk kali ini saya akan coba membahas di posting selanjutnya mengenai salah satu konsep OOP tersebut)
Trus mengapa perlu belajar OOP?
Jawabannya adalah: Mempermudah programmer dalam menulis program serta mempercepat proses pembuatan program.

Bahasa pemrograman yang mendukung OOP antara lain:
1. Java
2. C++
3. C#
4. Visual Basic.NET
5. PHP
6. Delphi
7. Perl
8. dan program-program lainnya {saya tidak begitu mengenalnya:)}

Silahkan anda mencobanya...

Selasa, 16 Juni 2009

a civil servant for the Indonesian citizens

Hello everyone, my name is Dedy Wibowo. Just call me 'adewo', i graduated from Bogor Agricultural University majoring in Information Technology. Now, i'm working as a goverment official of Indonesian Republic. I'm happy to dedicated my life as a civil servant for the Indonesian citizens.