Jumat, 23 Januari 2009

PENGERTIAN OVERLOADING

Overloading

Overloading adalah suatu keadaan dimana
beberapa method memiliki nama yang sama
tetapi fungsionalitasnya berbeda

Contoh :

titik(x,y);

titik(x,y,z);

Ciri Overloading :

Nama method harus sama

Daftar parameter harus berbeda

Return type boleh sama, boleh berbeda

Overriding

Overriding menyatakan suatu keadaan
dimana method pada subclass menolak
method pada parent class-nya.

Ciri dari overriding :
– Nama method harus sama
– Daftar parameter harus sama
– Return type harus sama

Kamis, 22 Januari 2009

PENGERTIAN POLIMORFISME,OVERLOADING DAN ENCAPSULATION

A.1. Enkapsulasi/pengapsulan (encapsulation)

Pengemasan data dan fungsi dalam wadah bernama obyek dikenal dengan nama enkapsulasi. Data tidak lagi diperlakukan sebagai komponen kedua setelah fungsi melainkan mempunyai kedudukan yang sama dengan fungsi.

Enkasulasi sering juga dianggap sebagai penyembunyian informasi. Ini merupakan kemampuan sebuah obyek kelas untuk membatasi akses client ke representasi internal obyek kelas (data dan fungsi).

Sebuah client adalah suatu aplikasi, atau komponen yang meminta sebuah layanan dari obyek yang lain. Obyek yang menerima permintaan memberikan layanan yang ada lewat metode-metode publiknya. Karenanya, abyek ini adalah server dalam hubungan demikian karena ia menyediakan sebuah layanan. Sebuah obyek dapat menjadi server pada satu obyek dan sebuah client pada obyek lain secara bersamaan. Analognya dalam kehidupan kita sehari-hari: misalnya Anda (pembaca) adalah seorang client dan saya (penulis), dan saya memberikan Anda layanan informasi. Sebaliknya, saya adalah seorang client dari penulis lain yang telah mempublikasikan buku-buku yang saya pakai selama tahap penulisan artikel ini.

Beberapa metoda lebih lanjut dalam menerapkan enkapsulasi adalah: anggota-anggota kelas privat, anggota-anggota kelas privat statis, kawan-kawan, dan obyek-obyek kelas pembantu.

  • Anggota kelas privat, enkapsulasi diterapkan dengan mendefinisikan variabel-variabel dan fungsi-fungsi dari sebuah kelas sebagai privat. Anda bisa menganggap bahwa fungsi-fungsi anggota kelas (juga dikenal sebagai metode) didefinisikan sebagai publik yang secara internal memanipulasi variabel-variabel dan fungsi-fungsi anggota privat. Dalam istilah berorientasi obyek, metode-metode publik dari sebuah kelas merupakan abstraksi dari representasi privat kelas. Hasilnya adalah bahwa representasi privat dienkapsulasikan. Keuntungannya, Anda dapat menerapkan kelas kembali untuk memasukkantipe-tipe variabel dan kelas yang berbeda, dan Anda bisa memperbaharui implementasi dari motode publik bila perlu (dengan anggapan bahwa tanda-tanda fungsi dari metode publik tidak berganti).
  • Anggota kelas statis privat, sebuah fitur kelas standar yang mendukung enkapsulasi dalam kebanyakan bahasa berorientasi obyek adalah kemampuan untuk mendefinisikan anggota-anggota kelas statis. Variabel-variabel dan fungsi-fungsi anggota statis adalah anggota-anggota dari suatu kelas bukan angota-anggota dari obyek-obyek kelas. Anggota statis dibuat sekali untuk suatu kelas dan berlaku global untuk semua bentuk dari kelas itu. Anggota-anggota statis dapat didefinisikan sebagai privat, sehingga enkapsulasi dapat diterapkan. Anggota-anggota statis memungkinkan Anda untuk mengurangi keperluan diluar perkiraan untuk menjaga bentuk anggota-anggota terpisah yang dapat dipakai bersama oleh semua obyek-obyek kelas.
  • Kawan-kawan, Semua kita tahu bahwa kita tidak bermaksud untuk menyimpan terlalu banyak informasi pribadi sendirian, sehingga kita percaya pada seorang kawan dan memberikan mereka akses ke informasi pribadi kita. Skenario yang sama berlaku untuk obyek-obyek. Sebuah tipe obyek bisa berupa sebuah kawan bagi tipe lainnya. Dalam kenyataannya, seperti dalam persahabatan manusia, kepercayaan mungkin hanya satu arah. Setiap pihak (tipe obyek) dalam hubungan individual memutuskan apakah menerima yang lain sebagai kawan.

A.2. Pewarisan (Inheritance)

Pewarisan merupakan sifat dalam bahasa berorientasi obyek yang memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain. Ketika Anda membuat sebuah solusi pemrograman berorientasi obyek Anda berharap memperoleh pemanfaatan ulang sebagai hasilnya. Daripada membuat ulang kontrol pada setiap sistem baru, Anda mestinya membuat kelas-kelas dari obyek-obyek yang dapat dipakai kembali.

Pewarisan adalah suatu tindakan mengambil sebuah kelas dari yang lainnya. Pewarisan publik berarti bahwa kelas turunannya adalah sebuah sub kelas atau sub tipe dari kelas sebelumnya. Pewarisan non publik berarti kelas yang mewariskan bukanlah sebuah sub kelas dari pendahulunya melainkan hanya mewariskan ciri-cirinya saja.

Pewarisan dapat dikelompokkan lebih lanjut dalam dua bentuk utama, yaitu pewarisan implementasi dan pewarisan antar muka. Pewarisan implementasi mendukung konsep-konsep hirarki sebuah kelas, dimana sebuah kelas dapat dihasilkan dari kelas lain, dimungkinkan ia mewarisi struktur dan perilaku semua pendahulunya. Pewarisan antar muka adalah kemampuan sebuah kelas untuk mewariskan antar mukanya ke kelas lainnya. Antar muka adalah sekelompok properti kelas dan nama-nama metode yang dideklarasikan sebagai publik.

A.3. Polimorfisme (Polymorfisme)

Polimorfisme merupakan suatu konsep yang

10.6. Overloading Methods

Dalam class yang kita buat, kadangkala kita menginginkan untuk membuat method dengan

nama yang sama namun mempunyai fungsi yang berbeda menurut parameter yang

digunakan. Kemampuan ini dimungkinkan dalam pemrograman Java, dan dikenal sebagai

overloading method.

Overloading method mengijinkan sebuah method dengan nama yang sama namun memiliki

parameter yang berbeda sehingga mempunyai implementasi dan return value yang berbeda

pula. Daripada memberikan nama yang berbeda pada setiap pembuatan method,

overloading method dapat digunakan pada operasi yang sama namun berbeda dalam

implementasinya.

Pengenalan Pemrograman 1 13

J.E.N.I.

Sebagai contoh, pada class StudentRecord kita menginginkan sebuah method yang akan

menampilkan informasi tentang siswa. Namun kita juga menginginkan operasi penampilan

data tersebut menghasilkan output yang berbeda menurut parameter yang digunakan. Jika

pada saat kita memberikan sebuah parameter berupa string, hasil yang ditampilkan adalah

nama, alamat dan umur dari siswa, sedang pada saat kita memberikan 3 nilai dengan tipe

double, kita menginginkan method tersebut untuk menampilkan nama dan nilai dari siswa.

Untuk mendapatkan hasil yang sesuai, kita gunakan overloading method di dalam deklarasi

class StudentRecord.

public void print( String temp ){

System.out.println("Name:" + name);

System.out.println("Address:" + address);

System.out.println("Age:" + age);

}

public void print(double eGrade, double mGrade, double sGrade)

System.out.println("Name:" + name);

System.out.println("Math Grade:" + mGrade);

System.out.println("English Grade:" + eGrade);

System.out.println("Science Grade:" + sGrade);

}

Jika kita panggil pada method utama (main) :

public static void main( String[] args )

{

StudentRecord annaRecord = new StudentRecord();

annaRecord.setName("Anna");

annaRecord.setAddress("Philippines");

annaRecord.setAge(15);

annaRecord.setMathGrade(80);

annaRecord.setEnglishGrade(95.5);

annaRecord.setScienceGrade(100);

//overloaded methods

annaRecord.print( annaRecord.getName() );

annaRecord.print( annaRecord.getEnglishGrade(),

annaRecord.getMathGrade(),

annaRecord.getScienceGrade());

}

Pengenalan Pemrograman 1 14

J.E.N.I.

Kita akan mendapatkan output pada panggilan pertama sebagai berikut :

Name:Anna

Address:Philippines

Age:15

Kemudian akan dihasilkan output sebagai berikut pada panggilan kedua :

Name:Anna

Math Grade:80.0

English Grade:95.5

Science Grade:100.0

Jangan dilupakan bahwa overloaded method memiliki property sebagai berikut :

1. Nama yang sama

2. Parameter yang berbeda

3. Nilai kembalian (return) bisa sama ataupun berbeda

menyatakan sesuatu yang sama dapat memiliki berbagai bentuk dan perilaku yang berbeda. Istilah ini sendiri berasal dari bahasa Yunani, yang berarti mempunyai banyak bentuk. Pengertian dari polimorfisme ini secara sederhana saya umpamakan dengan ketika menulis artikel ini. Artikel yang saya tulis ini berasal dari berbagai sumber tulisan beberapa penulis, dengan bentuk penyampaian yang cirikhas dan gaya penulisan berbeda-beda, namun isi dari tulisannya secara keseluruhan tetap menggambarkan satu tema/topik tulisan yang sama.