Monthly Archives: March 2015

The basic concept in OOP Programming (OBJECT ORIENTED PROGRAMING)

1. Abstraction

Abstraksi adalah kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

  • Kelas merupakan deskripsi abstrak informasi dan tingkah laku dari sekumpulan data.
  • Kelas dapat diilustrasikan sebagai suatu cetak biru(blueprint) atau prototipe yang digunakan untuk menciptakan objek.
  • Kelas merupakan tipe data bagi objek yang mengenkapsulasi data dan operasi pada data dalam suatu unit tunggal.
  • Kelas mendefinisikan suatu struktur yang terdiri atas data kelas (data field), prosedur atau fungsi (method), dan sifat kelas (property).

Contoh Source Code Abstraction :

// buat kelas Mobil.java

abstract class Mobil {

abstract public void injakPedal();

public void injakRem(){

System.out.println(“Mobil Berhenti”);

}

}

 

// buat kelas Kijang.java

public class Kijang extends Mobil{

public void injakPedal(){

System.out.println(“Kecepatan 80 km/jam”);

}

}

 

//buat kelas Panther.java

public class Panther extends Mobil{

public void injakPedal(){

System.out.println(“Mobil melambat”);

}

}

 

//buat kelas tesMobil.java

//jalankan program AppMobil.java untuk melihat hasilnya,

public class tesMobil{

public static void main (String args []){

Mobil mob = new Mobil() {

@Override

public void injakPedal() {

// TODO Auto-generated method stub

System.out.println(“Mobil melaju lambat”);

}

};

Kijang kj = new Kijang();

Panther pan = new Panther();

mob.injakPedal();

mob = kj;

kj.injakPedal();

mob = pan;

pan.injakPedal();

}

}

hasil running program :

2. Encapsulation

Definisi enkapsulasi: Pembungkusan variabel dan method dalam sebuah obyek yang terlindungi serta menyediakan interface untuk mengakses variabel tersebut. Variabel dan method yang dimiliki oleh suatu objek, bisa ditentukan hak aksesnya. Dalam OOP, konsep enkapsulasi sebenarnya merupakan perluasan dari struktur dalam bahasa C.

Contoh: jam tangan. Dalam hal ini, penting sekali untuk mengetahui waktu, sedangkan cara jam mencatat waktu dengan baik antara jam bertenaga baterai atau bertenaga gerak tidaklah penting kita ketahui.

Dengan kata lain enkapsulasi berfungsi untuk memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam/dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

Manfaat Enkapsulation :

1. Modularitas

Source code dari sebuah class dapat dikelola secara independen dari source code class yang lain. Perubahan internal pada sebuah class tidak akan berpengaruh bagi class yang menggunakannya.

2. Information Hiding

Penyembunyian informasi yang tidak perlu diketahui objek lain.

Contoh Source Code Encapsulation :

public class siswa {

private int nrp;

public void setNrp(int n){

nrp = n;

}

}

/* buat kelas baru dengan nama Mahasiswa.java */

public class Mahasiswa {

private int nrp;

private String nama;

public Mahasiswa(int i, String n) {

this.nrp = i;

this.nama = n;

}

public void  setNRP(int nrp) {

this.nrp = nrp;

}

public int getNRP () {

return nrp;

}

public void setNama(String nama) {

this.nama = nama;

}

public String getNama() {

return nama;

}

}//end class

/* buat kelas main untuk menjalankan program dengan nama TesMahasiswa.java */

public class TesMahasiswa {

public static void main (String []args){

int nomer;

String nm;

Mahasiswa siswa = new Mahasiswa(123, “1”);

System.out.println(siswa.getNRP());

System.out.println(siswa.getNama());

siswa.setNama(“SoOn”);

siswa.setNRP(111);

System.out.println(siswa.getNRP());

System.out.println(siswa.getNama());

}

} //end class

output program :

 

3. Inheritance (Pewarisan)

Pewarisan merupakan pewarisan atribut dan method dari sebuah class ke class lainnya. Class yang mewarisi disebut superclass dan Class yang diwarisi disebut subclass. Subclass bisa berlaku sebagai superclass bagi class lainya, disebut sebagai multilevel inheritance.

Contoh : terdapat class sepeda dan sepeda gunung. Sepeda termasuk superclass.  Sepeda gunung termasuk subclass. Hal ini dikarenakan sepeda gunung memiliki variabel dan method yang dimiliki oleh sepeda.

Prinsip dasar inheritance yaitu persamaan-persamaan yang dimiliki oleh beberapa kelas dapat digabungkan dalam sebuah class induk sehingga setiap kelas yang diturunkannya memuat hal-hal yang spesifik untuk kelas yang bersangkutan.

Contoh Pewarisan

Keuntungan Pewarisan

  • Subclass menyediakan state/behaviour yang spesifik yang membedakan dengan superclass, sehingga memungkinkan programmer untuk menggunakan ulang source code dari superclass yang telah ada.
  • Programmer dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class (abstraksi), untuk mendefinisikan class dengan tingkah laku dan state secara umum.

Single & Multiple Inheritance

Bahasa C adalah contoh multiple inheritance. Suatu class diperbolehkan untuk mempunyai lebih dari satu superclass. Variabel dan method yang diwariskan merupakan kombinasi dari superclass-nya. Java adalah contoh single inheritance. Suatu class hanya boleh mempunyai satu superclass.

Multilevel Inheritance

Suatu subclass bisa menjadi superclass bagi class yang lain.

Contoh Source Code Inheritance :

/* Definisi kelas A */

public class A {

}

 

/* Definisi subkelas B turunan kelas A */

public class B extends A {

}

Apa yang diwariskan?

Semua fields bertipe “protected” or “public”.

“private” fields are only visible to the class that declared them *.

“protected” fields are only visible to the class that declared them, and any subclasses

Semua public dan protected methods.

public class list {

protected int[] values;

private   int   size;

}

public class stack extends list {

public void some_method () {

values[i] = myinteger; // legal

size++;  // illegal

}

Kapan kita menerapkan inheritance?

Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class yang dapat diperluas dari class lain.

Sebagai contoh kelas manusia diturunkan menjadi kelas : programer, tentara :

perhatikan contoh berikut :

/* Disimpan dalam file manusia.java */

public class Manusia {

protected String nama;

Manusia(String n){

this.nama = n;

}

}

/* buat kelas lagi dan simpan dalam file Programmer.java dan ketik source code nya */

public class programmer extends Manusia {

public programmer(String a){

super(a);

}

public String tampilkanNama(){

return nama;

}

public void kerja(){

System.out.println(“tak.,.tik.,.tukk,.taakkkkkk”);

}

public void makan(){

System.out.println(“Nyam.,nyam.,nyammm..,.,”);

}

public void bersantai(){

System.out.println(“Time Up., Game Over”);

}

} //end class

/* buat kelas main dengan nama SonArif.java dan ketik source code nya */

 

public class SonArif {

public static void main (String []args){

programmer Soon = new programmer(“Ahmad Son Arif”);

System.out.println(“Nama “+Soon.tampilkanNama());

Soon.makan();

Soon.kerja();

Soon.bersantai();

}

} //end class

hasil running program SonArif.java sebagai berikut:

/* buat kelas tentara.java dan ketik source code nya */

public class tentara extends Manusia {

public String pangkat;

public tentara(String h, String i){

super(h);

this.pangkat = i;

}

public String TampilkanPangkat(){

return pangkat;

}

public String TampilkanNama(){

return nama;

}

public void mengabdi(){

System.out.println(“Dor.,.Dorr.,DOORRRR”);

}

public void maem(){

System.out.println(“Makan Nasi di barengi senpi”);

}

} // end class

 

/* kemudian buat kelas main dengan nama BalaTentara.java untuk menjalankan program dan ketik source code berikut : */

public class balaTentara {

public static void main (String []args){

tentara tt = new tentara(“Badu”, “Kopral”);

System.out.println(“Nama “+tt.TampilkanNama());

System.out.println(“Pangkat “+tt.TampilkanPangkat());

tt.maem();

tt.mengabdi();

}

}//end class

hasil running BalaTentara.java sebagai berikut ;

 

4. Polymorphism

Polimorfisme adalah kemampuan suatu obyek untuk mempunyai lebih dari satu bentuk. Polimorfisme tidak bergantung kepada pemanggilan subrutin. Metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim.

Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

Sebagai Ilustrasiya :
Sebagai contoh adalah sebuah obyek wanita, beberapa peran yang mungkin dimiliki adalah:
Bagi suami maka dia berperan sebagai seorang istri.
Buat anak-anak berperan sebagai ibu.
Di tempat kerja maka dia akan berperan sebagai seorang karyawan.
Di tempat kuliah berperan sebagai mahasiswi.
Di tempat arisan berperan sebagai ketua arisan.

Dari contoh diatas bisa kita lihat bahwa wanita tersebut adalah orang yang sama, tetapi memiliki peran yang berbeda bagi orang yang berinteraksi dengannya.

Contoh Source C0de Polymorphism

/* Disimpan dalam file “sopir.java” */

polimorfisme
Dedi adalah seorang sopir keturunan manusia, untuk menginstantiasi objek dedi

ditunjukkan dalam kode berikut.

/* Disimpan dalam file “dedi.java” */

contoh polimorfisme
Kemudian Andi sang programmer, Badu sang tentara dan Dedi sang sopir diperintahkan untuk bekerja, apa reaksinya?

Untuk melihat reaksi masing-masing, perhatikan kode java berikut!

/* Disimpan dalam file “pekerja.java” */

contoh polimorfisme
Hasil eksekusi para pekerja adalah sebagai berikut:

Tak…Tak…Klik…
Dor… Dor… Dor…
Ngung… Ngung… Ngung…Ciiit.

Kesimpulan :
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bagian administrasi, maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagian administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah, dapat dilakukan dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.

 

 

Referensi :

  1. https://ahmadsonarif.wordpress.com/category/praktikum-pemrograman-berorientasi-objek-java/
  2. http://www.adityarizki.net/2012/06/konsep-dasar-pemrograman-berorientasi-objek/
  3. https://fatihamaliah.wordpress.com/2013/04/02/pengertian-konsep-oop-object-oriented-programming/

OBJECT AND CLASS

1. CLASS PERPUSTAKAAN

Attribute/Variabel :

– Judul_Buku,

-Genre_Buku,

-Harga_sewa ;

Contoh source

irfan_prps

 

Pada class Perpustakaan akan ada akses modifier berupa private pada atribut/variabel ‘Judul_Barang’ bertipe data String, variabel ‘Genre_Buku’ bertipe data String, dan variabel ‘Harga_sewa’ bertipe data int.  Kemudian terdapat juga beberapa method setter dan getter, dimana setter digunakan untuk mengisi nilai pada variabel variabel itu sendiri, sedangkan getter digunakan untuk mengambil nilai pada variabel yang sebelumnya telah diisi oleh method setter. Adapun method toString digunakan untuk merepresentasikan objek ke dalam bentuk string. Lebih jelasnya perhatikan Source Code.

2. Class Main

irfan_main

Penjelasan :

Pada kelas main ini adalah dimana contoh kelas sebelumnya akan dipanggil. Maka deklarasikan terlebih dahulu class Perpustakaan ke dalam variabel bernama “prps1”. Setelah di deklarasikan, maka kita perlu mengisikan nilai terhadap attribute – attribute pada objek tersebut dengan menggunakan method setter. Setelah semuanya dilakukan maka kita bisa menampilkan objek tersebut dengan cara seperti pada gambar. Pada class Perpustakaan, adalah dimana pemanggilan menggunakan method toString sebaliknya pada class Perpustakaan, menggunakan method getter untuk pemanggilannya. Lebih jelasnya perhatikan source code.

Hasil Running :

run_prps