19 Apr 2012

Inheritance dan Polimorfisme pada Java

Inheritance dan Polimorfisme pada Java
disertai contoh program


Inheritance

Inheritance adalah pewarisan. Pewarisan dalam pemrograman berorientasi objek, Inheritance memungkinkan suatu Class bisa mewariskan atribut dan Method kepada Class yang lainnya atau subClass, sehingga membentuk Class hirarki. Inheritance sangat mirip dengan hubungan orang tua dengan anak. Manakala suatu kelas menerima warisan dari semua anggota data dan fungsi menerima warisan, walaupun tidak semua di antara mereka dapat diakses oleh anggota fungsi dari kelas.
Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.
# Superclass adalah class induk atau class orang tua, class yang letaknya di atas class tertentu di dalam hierarki.
# Subclass adalah class anak. Semua property, methode, ataupun konstruktor yang dimiliki oleh superclass jika  diwariskan, maka subclass memiliki semua yang dimiliki oleh superclass.

Contoh Program :

public class Striker extends posisi {
    public static void main (String[]args){
        Striker a = new Striker();
        a.cetak1();
        a.cetak2();
    }
}
class posisi {
    public void cetak1(){
        System.out.println("Saya di posisi depan !");}
        protected void cetak2(){
        System.out.println("I am a Striker !");}  
        private void cetak3(){
            System.out.println("P="   +P);
        }
 int P = 8;
}


Listing

Output 

Keuntungan penggunaan Inheritance dalam OOP : Reusability
Ketika behavior(method) dideklarasikan dalam superclass, behavior tersebut otomatis diwariskan ke seluruh subclass
Jadi, Anda dapat meng-enkode method hanya sekali dan method tersebut dapat digunakan oleh seluruh subclass
Sebuah subclass hanya perlu mengimplementasikan perbedaan antara dirinya sendiri dan parent-nya.



Polimorfisme

Suatu kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda agar tidak terjadi duplikasi object kita kenal sebagai polymorphism.

Antara penurununan sifat (inheritance) maupun polymorphism merupakan konsep yang memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah tersebut.

Contoh Program :

//Membuat Class hewan
class hewan {
public void suara (){
System.out.println("Hewan bersuara :");
}
}
// Membuat kelas turunan kuda yang merupakan turunan dari class hewan :
class kuda extends hewan {
public void suara(){
System.out.println("Kuda mengikik...");
}
}
//Membuat kelas turunan kucing yang merupakan turunan dari class hewan :
class kucing extends hewan {
public void suara (){
System.out.println("Kucing mengeong...");
}
}
//Membuat kelas turunan ayam yang merupakan turunan dari class hewan :
class ayam extends hewan {
public void suara(){
System.out.println("Ayam berkokok...");
}
}
// Membuat class suarahewan untuk mengetes class-class yang telah dibuat :
public class suarahewan {
public static void main(String[] args){
hewan HEWAN = new hewan();
kuda KUDA = new kuda();
kucing KUCING = new kucing();
ayam AYAM = new ayam();


HEWAN.suara();


HEWAN = KUDA;
HEWAN.suara();


HEWAN = KUCING;
HEWAN.suara();


HEWAN = AYAM;
HEWAN.suara();
}
}
Listing
 


Output


Sumber :
http://andra-ulatbulu.blogspot.com/2009/11/inheritance-dan-contoh-program-dalam.html
http://avrilblue.blogspot.com/2011/12/contoh-polimorfisme-dalam-bahasa.html


Nama : Nanda Fitriya Hayati
NPM : 54410908
 Kelas : 2IA14

Partner : Nama : Ni Putu Yuan Antaputeri
NPM : 54410952
Kelas : 2IA14
Link : yuanantaputeri.blogspot.com

Tanggal : 19 April 2012

 

12 Apr 2012

Enkapsulasi beserta contoh program

Enkapsulasi Java


Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Dua hal yang mendasar dalam enkapsulasi yakni :
• Information hiding.
• Interface to access data.

Information hiding
Sebelumnya kita dapat mengakses anggota class baik berupa atribut maupun method secara langsung dengan menggunakan objek yang telah kita buat. Hal ini dikarenakan akses kontrol yang diberikan kepada atribut maupun method yang ada di dalam class tersebut adalah 'public'. Kita dapat menyembunyikan informasi dari suatu class sehingga anggota class tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan akses kontrol 'private' ketika mendeklarasikan atribut atau method. Proses ini disebut dengan information hiding.

Interface to access data
Jika kita telah melakukan information hiding terhadap suatu atribut pada suatu class, lalu bagaimana cara melakukan perubahan terhadap atribut yang kita sembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut.

 Berikut adalah contoh program sederhana :


import javax.swing.*;
import java.io.*;
public class Enkapsulasi{
/*Main Method*/
public static void main (String[] args){
//Membuat dari kelas hitungGaji untuk suatu-
//pegawai, dan memanggil method-methodnya
Penggajian pegawai = new Penggajian();
double sg;
String Nilai;

Nilai = JOptionPane.showInputDialog("");

sg = Double.parseDouble(Nilai);

pegawai.setGaji(sg);
pegawai.hitungGaji();
System.out.println("\nBesar Gaji Bersih : "+ pegawai.getGajiBersih());

}

}

/*Kelas Penggajian*/
class Penggajian {
//Mendeklarasikan variabel-variabel internal kelas Penggajian.

private double gajipokok, gajiSetelahPajak,pajakgaji;
public double gajiBersih;
private double potongan = 100000;

//Method untuk mengeset variabel internal gaji pokok.
public void setGaji(double gaji){

gajipokok = gaji;

}

//Method untuk menghitung gaji bersih.
public void hitungGaji(){
gajiSetelahPajak = gajipokok - (0.1 * gajipokok);
pajakgaji = (gajipokok*0.1);
gajiBersih = gajiSetelahPajak - potongan;

System.out.println("\nBesar Pajak Gaji : "+ pajakgaji);
System.out.println("\nBesar potongan Gaji : "+ potongan);
}

//Method yang mengembalikan gaji Pokok (Gaji sebelum-
//ada pengurangan)
public double getGajipokok(){
return gajipokok;

}

//Method yang mengmbalikan besar gaji bersih
public double getGajiBersih(){
return gajiBersih;
}
}



LISTING :





OUTPUT :




Pembungkusan atau pengkapsulan merupakan proses membuat paket data objek bersama dengan metode-metodenya. Berdasarkan kode program, proses memisahkan aspek-aspek objek dilakukan dengan cara pembungkusan.

Dalam melakukan pembungkusan kode dan data di dalam java, terdapat tiga tingkat akses yang harus diketahui, yaitu private, protected, dan public.


Sumber :

http://littlebro-note.blogspot.com/2008/10/java-enkapsulasi.html
http://ebestmateri.blogspot.com/2010/07/pembungkusan-enkapsulasi-pada-java.html


Nama : Nanda Fitriya Hayati
NPM : 54410908
 Kelas : 2IA14

Partner :
Nama : Ni Putu Yuan Antaputeri
NPM : 54410952
Kelas : 2IA14
Link : yuanantaputeri.blogspot.com

Tanggal : 12 April 2012

5 Apr 2012

Perbedaan Pemrograman Terstruktur dan OOP

PERBEDAAN PEMROGRAMAN BERORIENTASI OBJEK DAN PEMROGRAMAN TERSTRUKTUR

24OKT

Pengertian Pemrograman Berorientasi Objek
Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.
Bahasa pemrograman yang mendukung OOP antara lain:
  1. Visual Foxpro
  2. Java
  3. C++
  4. Pascal (bahasa pemrograman)
  5. Visual Basic.NET
  6. SIMULA
  7. Smalltalk
  8. Ruby
  9. Python
  10. PHP
  11. C#
  12. Delphi
  13. Eiffel
  14. Perl
  15. Adobe Flash AS 3.0
Pengertian Pemrograman Terstruktur
Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program.

Selain pengertian diatas Pemrograman Terstruktur adalah suatu aktifitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.

Prinsip dari pemrograman terstruktur adalah Jika suatu proses telah sampai pada suatu titik / langkah tertentu , maka proses selanjutnya tidak boleh mengeksekusi langkah sebelumnya / kembali lagi ke baris sebelumnya, kecuali pada langkah – langkah untuk proses berulang (Loop).
Bahasa pemrograman yang mendukung pemrograman terstruktur:
  1. Cobol Turbo Prolog
  2. C
  3. Pascal
  4. Delphi
  5. Borland Delphi
Pemrograman terstruktur memilki beberapa sifat – sifat seperti :
a. Memuat teknik pemecahan masalah yang logis dan sistematis

b. Memuat algoritma yang efisien, efektif dan sederhana

c. Program disusun dengan logika yang mudah dipahami

d. Tidak menggunakan perintah GOTO

e. Biaya pengujian program relatif rendah
f. Memiliki dokumentasi yang baik
g. Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah

Berdasarkan penjelasan diatas, sangat jelas sekali bahwa pemrograman tersktruktur unggul dalam melakukan pemrograman sederhana karena lebih efisien dan lebih murah dalam hal perawatannya tetapi permodelan ini lebih susah untuk dipahami oleh orang – orang selain pembuat program itu sendiri (contohnya ketika dlakukan tracing program ).
Beberapa keuntungan OOP :

1.Maintenance program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.

2.Pengubahan program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya.
3.Dapat digunakannya obyek-obyek sesering yang diinginkan, kita dapat menyimpan obyek-obyek yang yang dirancang dengan baik ke dalam sebuah tolkit rutin yang bermanfaat yang dapat disisipkan kedalam kode yang baru dengan sedikit perubahan atau tanpa perubahan pada kode tersebut.
Jadi, sangat jelas sekal bahwa pemrograman berorientasi objek sangat cocok sekali digunakan dalam kasus pembuatan software yang rumit dan kompleks karena memberikan berbagai kemudahan kepada pemrogram seperti yang telah disebutkan diatas.
Perbedaan mendasar antara OOP dan pemrograman terstruktur adalah:
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. Sedangkan untuk pemrograman terstruktur,  menggunakan prosedur/tata cara yang teratur untuk mengoperasikan data struktur
Untuk tata nama, keduanya pun memiliki tatanan yang sama walaupun memiliki pengertian tersendiri:
object oriented menggunakan “method” sedangkan terstruktur menggunakan “function”. Bila di OOP sering didengar mengenai “objects” maka di terstruktur kita mengenalnya dengan ” modules”. Begitu pula  halnya dengan “message” pada OOP dan “argument” pada terstruktur. “attribute” pada OOP juga memiliki tatanan nama yang sepadan dengan “variabel” pada pemrograman terstruktur.



Referensi :
http://www.ms-room.com/index.php?topic=3789.0


Nama : Nanda Fitria Hayati
NPM  : 54410908
Kelas : 2IA14

Partner :
Nama : Ni Putu Yuan Antaputeri
NPM   : 54410952
Kelas  : 2IA14
Link   : yuanantaputeri.blogspot.com

Tanggal : 5 April 2012

Pages - Menu