OOP VII dari Dosen


OOP_ TULISANKU

BAGIAN  VII

REVIEW   KONSEP  OBJEK ORIENTED PROGRAM

Dari Tulisan pertama  sampai terakhir sebenarnya para mahasiswa telah mengenal , memperaktekan program yang berorientasi objek, yakni dengan menggunakan bahasa java. Terdapat  beberapa aspek yang berkaitan dengan sebuah program berorientasi objek antara lain :

  • Class  dan Objek
  • inheritance
  • Encapsulasi
  • Polymorpish
  • Construktor
  1. I. Class dan Objek

Dalam konsep OOP class dan objek , merupakan sesuatu  yang tidak bisa dipisahkan class dan objek dapat diibaratkan sebagai , “ resep kue dengan kue itu sendiri“. Pada mulanya ( untuk pertama kali ) yang di bangun adalah sebuah class , sebagai master program ( prototype), selanjutnya kita dapat membuat sebuah objek, dengan jalan melakukan instanisasi sebuah class . Dengan melakukan istanisasi tersebut , maka sebuah objek akan dapat mengakses semua property yang dimiliki class tersebut, tanpa harus menulis ulang koding kembali.

Pada dasarnya sebuah objek mengandung / memiliki dua karakteristik utama yaitu :

a)      Setiap objek , memiliki attribute ( mungkin ) dalam buku lain disebut property yang merupakan status dari objek tersebut, selanjutnya atrribut / property objek kita nyatakan sebagai state objek.

b)      Setiap objek, memiliki tingkah laku yang kemudian disebut sebagai behavior, mungkin pada buku lain dinyatakan sebagai metode.

Sebagai contoh sederhana misalkan objeknya adalah : Mahasiswa

  • Attribute ( state) Mahasiswa : nama, tempat tanggal Lahir, umur, jenis kelamin , dan lain lain.
  • Behavior  Mahasiswa : StatusMahasiswa, IPK, dll.  StatusMahasiswa dapat dinyatakan sebagai metode , karena untuk menentukan status mahasiswa ditentukan dengan sebuah metode yang berdasarkan inputan tertentu. Misalnya berdasarkan jumlah SKS yang sudah ditempuh.
Inputan :

Jumlah SKS

Metode Status :

<= 30 SKS : Persiapan

<= 110 SKS : sarjana muda

<= 144 SKS : Sarjana

Dasar yang umum untuk menentukan apakah sebuah data dari sebuah objek merupakan behavior atau bukan, adalah apabila data didapatkan secara tidak langsung ( melalui sebuah proses metode) maka data tersebut biasanya merupakan behavior.

Berikut ini akan diberikan contoh sebuah class, selanjutnya bagaimana membentuk sebuah objek dengan jalan instanisasi, dan menentukan mana yang merupakan atrribut dan mana yang behavior objek.

Ilustrasi Class :

Class dibawah adalah untuk mencentak nama pengarang buku, class ini diberi nama buku , buatlah class ini didalam sebuah folder/package  ( didalam Project) lihat explorer ecllipsenya.

Letakan class , dalam sebuah package ( dalam contoh diatas Latihan OOP) project OOP

Analisa class

Jika kita lihat class diatas  terdiri atas

  • Atrribut : judul, pengarang
  • void isi (String judulBuku, String pengarangBuku)

{

judul = judulBuku;

pengarang = pengarangBuku;

}

Behavior/metode :  isi, cetak. Isi merupakan sebuah metode yang membutuhkan dua argument inputan yang bertipe string .

void  isi (String judulBuku, String pengarangBuku)

nama class                            inputan

Dalam metode ini kita harus memasukan 2 inputan, yang pertama diberi variable judulBuku dan yang kedua pengarangBuku.

Sekarang kita sudah memiliki sebuah class, selanjutnya kita akan membuat sebuah objek berdasarkan class buku yang sudah dibuat. Langkah pertama buatlah sebuah class baru misalnya diberi nama karangan ( dibuat dalam project dan folder yang sama dengan class buku )

Buat class baru dalam satu folder
package LatihanOOP;

public class karangan

{

/**

* Aplikasi Object

*/

public static void main(String[] args)

{

// cara membentuk objek ( instanisasi)

// dibawah ini ada 4 objek.

buku a = new buku();

buku b = new buku();

buku c = new buku();

buku d = new buku();

// untuk objek a mengakses metode isi dan cetak dari klass buku

// namun isi iputan dikosongi

a.isi(null,null );

a.cetak();

// untuk objek b mengakses metode isi dan cetak  dari klass buku

// namun isi iputan diberikan argument ( inputan)

b.isi(“Program Java”,” IG. aris G – ITS Surabaya” );

b.cetak();

// untuk objek lain mengakses metode isi  dan cetak dari klass buku

c.isi(“Kalkulus” , “Tomas Finnan – Ohio Univers”  );

c.cetak();

d.isi (“Optika”, “Ali Yunus Rohedi- ITS Surabaya”);

d.cetak();

}

}

Dari class buku akan dibuat objek, dalam contoh diatas  dibuat 4 buah objek  : a,b,c,d

( ini hanya contoh, nama objek boleh dibuat sesuai kehendak programmer ). Cara membuat sebuah objek adalah dengan jalan instanisasi sebuah class , strukturnya sebagai berikut :

(Nama class)   ( nama Objek )  =  new  (nama class) ( );

Sebagai contoh dalam class karangan kita membuat 4 buah omembjek : a,b,c,d  maka instanisasi dilakukan dengan cara :

Setelah instanisasi dilakukan , jika kita perlu menggunakan data apa saja yang ada di class buku , cukup mengakses dengan objeknya saja tidak usah menuliskan kembali codingnya.

Prinsip utama OOP adalah  don’t repeat to make the something that have been made”

Maksudnya adalah  Jangan  membuat kembali sesuatu yang sudah dibuat sebelumnya.

Cara sebuah objek mengakseses data class asalnya adalah :

( Objek ) . ( nama Data yang diakses )

Data yang diakses bisa berupa :

–         data atrribut

–         data behavior atau metode.

Pada contoh diatas terlihat bagaimana metode a,b,c,d mengases data ( metode ) isi dan cetak dari class buku.

// untuk objek a mengakses metode isi dan cetak dari klass buku

// namun isi iputan dikosongi

a.isi(null,null );

a.cetak();

// untuk objek b mengakses metode isi dan cetak  dari klass buku

// namun isi iputan diberikan argument ( inputan)

b.isi(“Program Java”,” IG. aris G – ITS Surabaya” );

b.cetak();

// untuk objek lain mengakses metode isi  dan cetak dari klass buku

c.isi(“Kalkulus” , “Tomas Finnan – Ohio Univers”  );

c.cetak();

d.isi (“Optika”, “Ali Yunus Rohedi- ITS Surabaya”);

d.cetak();

Hasil Kompilasinya dan Running Program  adalah :

  1. Inheritance

Inheritance  secara harpiah dapat diterjemahkan sebagai pewarisan, artinya disini adalah ada sebuah class yang dianggap sebagai leluhur ( ancestor ) dari class lain ( turunannya / decestor ). Sebagai ilustrasi perhatikan bagan dibawah ini , class A dianggap ancestor dari class B, C.

Misalkan class A , berisi metode tambah dan metode kurang

Jika kita ingin class B, berisi metode tambah, kurang, bagi

Class C berisi , metode tambah, kurang, kali

Maka disini pada saat membuat class B dan C, kita tidak usah membuat metode tambah, kurang, dan bagi secara lengkap . Tapi cukup menyatakan bahwa class B adalah keturunan dari class A, sehingga yang cukup ditulis hanya metode “bagi” saja, karena metode “tambah” dan “kurang “otomatis juga menjadi metode dalam class B ( begitu dinyatakan sebagai turunan dari  A ). Demikian juga dengan class C , yang perlu ditulis hanya metode “kali” saja

Skema  Inherintance pada class :

Class A:

Metode :

–         tambah ( )

–         kurang ( )

Class B:

Metode :

–         bagi ()

Class C:

Metode :

–         kali ( )

Dengan menyatakan B dan C sebagai turunan dari A maka otomatis B,C akan mewarisi apa yang di miliki A.

Berikut ini merupakan contoh aplikasinya :

–         ClassA

–         Class B

package LatihanOOP;

public class B extends A

{

int bagi (int x1 , int y1)

{

x= x1;

y = y1;

z = x1/y1;

return z;

}

}

Pada class B digunakan / dideklarasikan   “public class  B extends A”  artinya class B merupakan turunan dari class A, jadi walaupun dalam class B hanya dituliskan  satu metode ( bagi), tapi sebenarnya hanya class B punya 3 metode tambah, kurang , dan bagi. Untuk membuktikan buatlah sebuah class baru untuk menctak tampilan , missal class Tampil_Inheritanc

package LatihanOOP;

public class Tampil_Inheritanc {

/**

* melihat bagaimana class B

* mewarisi class A

*/

public static void main(String[] args)

{

// variabel

int P;

int Q;

int R;

// buat sebuah objek berdasarkan class B

B contoh1 = new B ();

// objek contoh1 mengakses metode baik di class A & B

// hasil akses di tampung dalam variabel P,Q,R

P = contoh1.tambah(10, 15);

Q = contoh1.kurang(10, 15);

R = contoh1.bagi(10, 15);

// Tampilkan Hasilnya

System.out.println(” hasil Tambah :”+ P);

System.out.println(” hasil Kurang :” + Q);

System.out.println(“hasil bagi:”+ R);

}

}

Pada  class  Tampil_Inheritanc , diatas dibuat sebuah objek  contoh1 yang berasal dari class B

B contoh1 = new B ();

Maka contoh1 dapat menggkses motode yang diwarisi dari A, maupun yang benar benar berasal dari B, ini membuktikan B merupakan class yang mewarisi sifat yang ada di class A

Hasil Runningnya adalah :

  1. III. Polymorfish

Polymorfish dapat diartikan sebagai “ banyak bentuk”, poly berarti banyak, morfish bentuk. Polymorfish merupakan salah satu konsep dalam OOP, dalam sebuah class dimungkinkan terdapat beberapa metode dengan nama yang sama, namun walaupun nama dan proses didalamnya sama, tapi metode ini memiliki inputan argument yang berbeda. Sehingga sebuah objek dapat memanggil metode yang sama, tapi memberikan hasil yang berbeda. Untuk lebih jelas perhatikan contoh dibawah ini

package LatihanOOP;

public class tampilData

{

public void tulisData (String data)

{

System.out.println(data);

}

public void tulisData (int data)

{

System.out.println(data);

}

public void tulisData (double data)

{

System.out.println(data);

}

public void tulisData (char data)

{

System.out.println(data);

}

}

Pada class diatas ada  metode tulisData ( ) , dideklarasikan beberapa kali ,tetapi hasil tidak  sama.

Untuk melihat perbedaannya dapat dibuat sebuah objek untuk mengaksesnya

package LatihanOOP;

public class Polimorfish {

/**

* contoh aplikasi polymorfish

*/

public static void main(String[] args)

{

tampilData poli1 = new tampilData();

System.out.print(“Cetak hasil String:”);

poli1.tulisData(“ITS , Surabaya”);

System.out.print(“Cetak hasil integer:”);

poli1.tulisData(123);

System.out.print(“Cetak hasil double:”);

poli1.tulisData(123.67/78.876);

System.out.print(“Cetak hasil char:”);

poli1.tulisData(“A”);

}

}

Poli1 mengakses metode tulisData(), namun dengan argument yang berbeda , hasil running menunjukan hasil sebagai berikut :

TUGAS MANDIRI

Perseorangan

1.  BUAT 2 CONTOH PENERAPAN KONSEP OOP UNTUK PENERAPAN PADA:

– Objek dan Class

– Inheritance

– Polymorfish

Ketentuan :

–         Tugas Perorangan

–         Tidak Boleh Copy Paste ( Nilai = 0)

–         Dikumpul Hard Copy Saja , Format sama seperti Tugas sebelumnya .

Satu Balasan ke OOP VII dari Dosen

  1. prami mengatakan:

    tambAh lagi dUnks yang tErabturdit……..yar bisa belajar pemrograman lebih pinter lagi…..hehe…

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: