Pemrograman Berbasis Objek (PBO) ke 1.Ringkasan by Ony Prabowo

Posted: September 12, 2011 in Pemrograman Berbasis Objek ( PBO )

Pada pertemuan pertama ini saya akan membahas perkenalan terlebih dahulu ,apa yang dimaksud Pemrograman Berorientasi Objek (PBO). Disini kita akan membahas apa saja yang dibutuhkan bila kita ingin membuat program yang berorientasi objek.Kita akan belajar dengan menggunakan bahasa JAVA,sudah tidak asing lagi bukan?ok mari kita langsung ke TKP😀

  1. Software,software yang dibutuhkan tidak terlalu banyak.Berikut ini yang kita butuhkan :
    1. Kompiler Java (SDK)  = SDK disini adalah Software Development Kit

Contoh: JDK,JRE

  1. Text Editor                 = Text editor kita bisa menggunakan Notepad ++
  2. c.       IDE (Integrated Development Environtment)

i.      Dr Java

ii.      Eclipse ( lebih kearah pengembangan Andoid )

iii.      NetBeans

  1. Blue J
  2. Green Foot

DEFINISI OOP

Object Oriented Programming ( OOP ) is a Programming paradigm using “ Object “ –data structures consisting of data fields and “ Methods” together with their interactions to design applications and computer programs.

Jadi konsep OOP atau pemrograman berorientasi object telah mengubah padadigma manusia dalam dunia pemrograman komputer. Setiap entitas yang terlibat dalam pemrograman dianggap sebagai sebuah Objek. Sasaran Utama dari konsep ini adalah kemudahan dalam pengembangan sistem. Intinya sebuah aplikasi baru tidak harus dibangun dari nol,tetapi bisa dibangun dengan cara “ MENERUSKAN” dari aplikasi sebelumnya. Contoh : Jika TV Plasma LED dibangun dari NOL / 0 ,berapa biaya dan waktu yang harus dikelaurkan?bisa kita bayangkan bukan?!?maka dari itu untuk mengefisienkan TV plasma LED dikembangkan dari TV LCD sebelumnya.rancangan yang dibangun tidak jauh beda dengan TV LCD,hanya saja pengembangannya yang beda.

Tetapi kehadiran OOP ini juga mempunyai masalah,

  1. Yang utama adalah kebutuhan akan memori dalam jumlah besar menjadi sesuatu yang mutlak harus dipenuhi.mengapa?karena aplikasi yang dibuat berbasis OOP memerlukan memori dalam jumlah besar agar bisa menampung dan mengolah Objek. Setiap objek akan menempati sejumlah area memori dan kebetuhuan ini akan terus bertambah seiring dengan kehadiran objek baru meskipun jenisnya sama dengan objek yang telah ada.

Jadi tidak salah bila sekarang banyak sekali aplikasi yang baru dan bagus tetapi kebutuhan space yang diminta tidak tanggung-tanggung.tetapi semua itu ditutupu oleh performance aplikasi tersebut.

CLASS dan OBJEK

Sebelum membahas tentang Class dan objek mari kita lihat tentang konsep pemrograman klasik.

Misalnya : untuk menghitung luas segitiga,rumus yang berlaku seperti yang kita ketahui adalah ½ x alas x tinggi . ½ disini disebut konstanta.konstanta adalah nilai yang bersifat tetap.maka dari itu hasil luas segitiga di tentukan dengan berapa besar kecilnya alas kali tinggi

Alas

Tinggi

Proses

Hasil

2 3 ½ x alas x tinggi à ½ x 2 x 3

3

4 6 ½ x alas x tinggi à ½ x 4 x 6

12

6 8 ½ x alas x tinggi à ½ x 6 x 8

24

Melalui fungsi yang sama bisa diperoleh hasil perhitungan yang berbeda-beda tergantung data masukan yang diberikan. Kelebihan dari cara ini adalah fungsi yang digunakan untuk proses perhitungan hanya ada satu. Kelemahan dari cara ini Adalah “ Jika fungsi tersebut mengalami perubahan , misalnya rumus yang digunakan diperbarui,maka yang akan menerima dampaknya adalah seluruh data akan berubah mengikuti fungsi tersebut,otomatis hasilnya juga ikut berubah.”

Nah,maka dari itu untuk mengantisipasi perubahan tersebut adalah dengan membuat “ MODEL “ objek yang berisi proses menghitung luas lingkaran. Sebut saja objek tersebut objek persegi. Sebelum bisa menggunakan objek lingkara,kita harus membuat strukturnya lebih dulu; à ini yang dinamakan membuat CLASS

CLASS = kumpulan Object

..

Jadi pengertianya adalah :

  1. Class    = adalah Cetak biru / blueprint atau rancangan dari sebuah model objek.
  2. Objek    = adalah instantsi atau perwujudan dari sebuah class

Objek memiliki identitas.

Contohnya :

SEPEDA terdiri dari :

  1. Roda
  2. Rantai
  3. Setir
  4. Velg

Disini SEPEDA  adalah  Class  dan  roda,rantai,setir,velg  adalah  Object

Sebuah class bisa di instan menjadi satu atau lebih objek. Sebuah class tidak bisa digunakan untuk menyimpan,memanipulasi dan menampilkan data. Kita bisa melakukan proses-proses tersebut terhadap objek.

Masih belum nyambung? Oke ,saya analogikan seperti ini :

“ Developer perumahan membangun hanya rumah berdasarkan satu gambar desan yang dimiliki. Jadi gambarnya Cuma ada satu,dan rumah yang diwujudkan dari gambar tersebut ada banyak sekali. Kita bisa menempati rumah tersebut,tapi tidak bisa menempati gambarnya. “

Kesimpulannya :

  • Gambar           = Class
  • Rumah            = Objek

Agar lebih mudah lagi memahami konse objek,hendaknya kita mampu memposisikan diri sebagai produsen dan konsumen ketika memandang suatu objek.

  1. 1.      SEBAGAI PRODUSEN OBJEK =

Produsen objek tidak akan repot memikirkan siapa user yang akan menggunakan objek buatannya ; produsen hanya perlu berpikir tentang 2 hal ini :

  • Fitur apa yang perlu dimasukan ke dalam objek
  • Bagaimana fitur tersebut di implementasikan dalam bentuk kode program
  1. 2.      SEBAGAI KONSUMEN OBJEK =

Konsumen objek tidak akan repot berpikir tentang siapa yang membuat suatu objek dan bagaimana kondisi orang tersebut; konsumen yanha perlu berpikir tentang 2 hal ini :

  • Fitur apa saja yang disediakan oleh objek yang digunakan
  • Bagaimana cara menggunakan fitur tersebut

Berikut gambar struktur class model UML :

Nama Class

Daftar Property

Daftar Method

Sebuah objek berisi property yang menjadi ciri atau karakteristik objek tersebut, dan method yang bertugas mengolah atau memanipulasi property tersebut.

Method = sebutan lain untuk function atau procedure.

Jika objek yang digunakan dalam pemrograman ada banyak dan sejenis,maka seluruh objek tersebut memiliki property dan method masing masing tanpa ada hubungan di antara mereka, Jika satu objek mengalami perubahan nilai property, maka perubahan itu tidak berpengaruh kepada objek lain meskipun kedua objek ini sejenis.

User tidak boleh memanipulasi nilai property secara langsung karena bisa jadi nilai yang dimasukan kedalam objek adalah data invalid. Disini method berperan sebagai sarana interaksi antara user dengan objke. Melalui method iilah user memasukan data kedalam objek. Bisa tidaknya method ini tergantung kepada uji validitas yang dilakukan oleh method yang menrima data tersebut.

KETENTUAN dalam penamaan CLASS di JAVA :

  1. Nama class diawali dengan huruf kapital
  2. Jika nama class terdiri dari dua kata atau lebih,setiap kata diawali dengan huruf kapital dan harus terus tersambung.
  3. Nama class harus sama dengan nama file,dan harus tepat sama besar kecil hurufnya
  4. Jika dalam sebuah file terdapat lebih dari satu class,maka hanya ada satu class yang didefinisikan public dan yang lainnya private atau modifier. Nama class yang public ini akan menjadi nama file
  5. Keyword abstract digunaka pada saat kita ingin membuat class yang belum bi di instan secara langsung.

Contoh kita langsung praktek dengan membuat kode program di JAVA :

public class SepedaOntel {

            private String merk,tipe;

            private long harga;

            private String Sadel;

 

public void setMerk (String Merk) {

            this.merk = merk ;

}

 

public  String getMerk() {

            return merk;

     }

}

PARADIGMA DASAR (pilar-pilar) pemrograman berorientasi objek ada 4,yaitu :

  1. 1.      Abstraction
  2. 2.      Encapsulation
  3. 3.      Inheritance
  4. 4.      Polymorphism

Berikut penjelasan dari masing-masing pilar diatas :

  1. Abstraction = memproyeksikan dunia nyata jadi model

Sudah tahu gambar disamping apa kan? Yupss benar itu globe. Globe diciptakan atas dasar apa?atas dasar bentuk bumi yang sebenarnya..nah proses membuat globe di sebut abstraction…globe sendiri disebut  MODEL.

Dengan kata lain Abstraction dapat diartikan sebagai cara pandang kita terhadap suatu sistem yang terdiri dari kumpulan subsistem yang saling berinteraksi. Subsistem dapat pula diartikan sebagai suatu objek.

Contohnya pada Radio. Dalam Radio terdapat bermacam macam subsistem, antara lain : sistem antena dan channel, sistem playback, sistem on, sistem off dan lain sebagainya.

Semua objek ( sub sistem ) yang terdapat dalam sistem Radio tersebut saling berinteraksi satu sama lain. Interaksi disini berupa “pesan” yang dapat disebut juga sebagai parameter.

Contoh penerapan Abstraction dapat dilihat dibawah ini :

class Radio

 {

 int volume = 0;

 

void naikkanvolume(int volume)

 {

 this.volume = this.volume + volume;

 System.out.println(“Volume Radio : ” + this.volume);

 }

 }

 

public class RadioBeraksi

 {

 public static void main (String[] args)

 {

 Radio radioku = new Radio();

radio.naikkanvolume(5);

 }

 }

Dari contoh diatas, dapat dilihat terjadinya interaksi antar objek didalam system Radio, saya mengambil contoh volume Radio. Dari public class Radio Beraksi berinteraksi dengan class Radio dengan mengirimkan pesan informasi yang berupa parameter –> naikkanvolume(5).

Selain itu abstraction bisa disebut FILTERING,sistem apa saja yang di butuhkan/digunakan dalam membangun aplikasi.

Dipilih relevan sistem yangakan dibangun.

  1. Encapsulation            = Information Hiding

Jadi maksudnya begini, meski tujuan semula adalah sebagai sarana interaksi dengan user, Method yang ada dalam suatu objek tidak seluruhnya didefinisikan public,melainkan tergantung kebutuhan.Jadi ada kalanya method dirancang tidak untuk umum/di publish melainkan dirancang hanya untuk internal saja.

Untuk property,seluruh property haruslah didefinisikan PRIVATE, sekalipun property tersebut di desain untuk lingkungan luar objek. Encapsulation adalah Segala jenis pengaksesan terhadap property harus dilakukan melalui method. Jadi kita bisa membungkus propertty objek sehingga tidak bisa diakses secara langsung dari luar

Ilustrasi

Nama Class
Data
Method
Pasien
Nama : String
RegistrasiPembayaran

Contoh lainnya sebagai berikut ,

Berdasarkan nilai panjang sisi-sisinya dapat dihitung sebagai berikut,

Persegi
Int sisi
Int Luas ()Int keliling ()

Ada kalanya lingkungan luar ingin mengubah dara sisi atau sekedar mengambil informasi mengenai nilai sisi tersebut. Untuk itu disediakan method dengan fungsi setter(pengubah) dan getter(pengambil). Dalam JAVA ,method yang berfungsi untuk mengubah nilai property objek diawali dengan kata “set” à setSize(), dan method ang berfungsi untuk mengambiil nilai diawali dengan kata “get” à getWidth.

Tipe method “set” selalu void,sedangkan tipe dari method “get” disesuaikan dengan tipe property yang akan diambil nilainya.sehingga terjadi perubahan sebagai berikut :

Persegi
int sisi
Void setSisi(int)int getSisi()int luas()

int keliling()

Definisi class persegi

public class Persegi

{

Private int sisi= 8;

public void setSisi(int s)

{

If (s > 0 )

sisi = s;

}

public int getSisi()

{

return sisi;

}

public int luas()

{

Return sisi * sisi ;

}

public int keliling()

{

Return sisi + sisi + sisi + sisi;

}

}

Dan pemakainnya sebagai berikut,

Public class PersegiOk

{

            Public static void main (String [] args)

            {

                        Persegi abc = new Persegi();

 

            System.out.println(“================================”);

            System.out.println(“===Program Luas & Keliling Persegi===”);

            System.out.println(“”);

            System.out.println(“Panjang Sisi       : ” + abc.getSisi());

System.out.println(“Luas Persegi      : ” + abc.luas());

System.out.println(“Keliling Persegi : ” + abc.keliling());

System.out.println(“”);

}

}

  1. 3.      Inheritance     = Turunan

Salah satu keunggulan OOP adalah kemampuannya untuk mengembangkan class yang sudah ada menjadi banyak class baru,maka dari itu metode ini disebut Inheritance atau pewarisan. Dan disini akan ada base-class (class induk) dan ada yang disebut derived – class(class anak).

Dari ilustrasi diatas dapat dibaca bahwa class Wlogin turunan dari class window.

Sifat dari turunan sama persis dengan class awal.

Simbol “à” artinya turunan / inheritance

Contoh lain :

Class vixie dan MTB merupakan

Turunan dari class Sepeda

Inheritance mempunyai suatu aturan yaitu SINGLE PARENT.dimana turunan tidak lebih dari 1 induk.

Contoh ,misal ada balok.balok disini  sisi-sisinya adalah persegi,coba kita lihat kalau dibalik alasnya adalah persegi(persegi yang kita gunakan adalah ilsustrasi persegi yang sebelumnya).disini kita memakai persegi yang lama,hanya saja yang sebelumnya adalah objek 2D, yang ini sudah 3-D.Disini kita akan  mengambil nilai Volumenya

Berikut struktur classnya :

Balok

int sisiint tinggi
void setSisi(int)void setTinggi(int)int getSisi()

int getTinggi()

int luas()

int Volume()

Karena class balok merupakan class turunan dari class persegi ,maka akan seperti ini :

Persegi
int sisi
Void setSisi(int)int getSisi()int luas()

int keliling()

Balok

int sisiint tinggi
void setSisi(int)void setTinggi(int)int getSisi()

int getTinggi()

int luas()

int Volume()

Maka kode programmnya seperti ini :

Public class balok extends persegi

{

            private int tinggi;

 

            public balok()

                        {

                                    super();

                                    tinggi = 10;

                        }

Public persegi(int t)

{

            This();

            setTinggi(t);

}

Public persegi(int s,int t)

{

            Super(r);

            setTinggi(t);

}

Public void setTinggi(int t)

{

            If (t > 0)

                        Tinggi = t;

}

Public int getTInggi()

{

            Return tinggi;

}

Public int luas ()

{

            Int luas1 = 2 * super.luas();

 

            return luas1;

}

Public int volume()

{

            Return tinggi  *  super.luas();

}

}

  1. Polymorphism = terjadi bila 1 class induk diturunkan menjadi banyak kelas dan mempunyai karakteristik sendiri-sendiri.

Jadi dengan kata lain beberapa objek yang berada dalam satu hirarki bisa jadi memiliki method dengan nama sama akan tetapi implementasinya berbeda-beda.

Syarat bisa menjadi polymorphism adalah seluruh objek tersebut berada dalam satu hirarrki.

Contoh lainnya : beberapa objek sepeda motor akan memberi repon berbeda-beda ketika motor itu di gas.

Honda honda = new Honda().bersuara();

Yamaha yamaha = new Yamaha().bersuara();

Suzuki suzuki = new Suzuki().bersuara();

Berikut kode programnya :

Class Motor

{

            Public void bersuara()

            {

            }

}

Class Honda

{

            Public void bersuara()

            {

                        System.out.println(“Bremmm…..bremmm….”);

            }

}

Class Yamaha

{

            Public void bersuara()

            {

                        System.out.println(“reng…..rengg….renggggggg…”);

            }

}

Class Suzuki

{

            Public void bersuara()

            {

                        System.out.println(“trenggg..trengggg.tttreeeeenggg..ttrenngg..”);

            }

}

Public class TestMotor

{

            Public static void main(String [] args)

{

            Cetak(new Honda());

            Cetak(new Yamaha());

            Cetak(new Suzuki());

}

Static void cetak (Motor abc)

{

            abc.bersuara();

}

}

Untuk lebih jelasnya,silahkan anda klik link dibawah ini untuk mendownload file aslinya

Download File Resume


DAFTAR PUSTAKA

  1. http://roymubarak.wordpress.com/2008/12/09/konsep-oop-inheritance. Diakses pada jam 8 Malam hari minggu tanggal 11 september 2011
  2. Purnama,Rangsang. 2008. Tuntutan Pemrograman Java Jilid 2 edisi revisi.Prestasi  Pustaka, Jakarta.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s