Pages

Kamis, 19 April 2012

Pewarisan (Inheritance) dan Polimorfisme (Polymorphism)

Kali ini saya akan meneruskan tulisan blog saya. Sebelumnya saya sudah menuliskan materi tentang Perbedaan pemrograman terstruktur dengan pemrograman berbasis objek dan serta penjelasan tentang Encapsulation atau sering kita sebut dengan metode pengkapsulan. Untuk sekarang saya akan melanjutkan materi tulisan saya tentang Pewarisan (Inheritance) dan Polimorfisme (Polymorphism) beserta dengan contoh-contohnya. Baik Para pembaca kita langsung saja ya ke materi selanjutnya........
A.      Pewarisan ( Inheritance )
Pewarisan adalah memberikan atau mewariskan sesuatu kepada keturunan berikutnya. Misalnya, seorang anak pasti akan mewarisi beberapa sifat atau prilaku yang dimiliki oleh ibu atau bapaknya. Dalam konteks ini, suatu kelas dalam program dapat diturunkan menjadi kelas – kelas baru lainnya yang akan mewarisi beberapa sifat atau prilaku dari kelas induknya. Sebagai contoh, apabila anda memiliki kelas A dalam program yang anda buat, maka anda dapat membentuk kelas – kelas turunan dari kelas A tersebut (misalnya kelas B) yang mewarisi sifat- sifat yang terkandung dalam kelas A. Dalam proses pembuatan kelas turunan tersebut, anda dapat menambahkan sifat dan prilaku baru kedalam kelas B, yang sebelumnya tidak dimiliki dalam kelas A. Dalam terminologi Java, kelas induk dinamakan superclass dan kelas turunan disebut dengan Subclass. Untuk membuat kelas anak atau subclass berdasarkan kelas yang telah ada, anda dapat gunakan kata kunci extenddalam mendeklarasikan class. Sebuah kelas hanya dapat meng-extend satu kelas induk.
Keterangan : Extend Artinya Diturunkan

Contoh Program Inheritance :

Simpan Program dengan nama programinheritance.java
// membuat kelasA untuk dibuat sebagai SuperClass
import javax.swing.*;
class kelasA{
                int x,y;
                void tampilnilaixy(){
                System.out.println("Nilai X : " + x + "  nilai Y : " + y);
                }
                }
//kelasB adalah Extend(turunan) dari kelasA
class kelasB extends kelasA{
                int z;
                void tampilkanjumlah(){
                System.out.println("\n");
                System.out.println("jumlah x+y+z = "+(x+y+z));
                System.out.println("\n");
                }
}
//class programinheritance berikut adalah extends (turunan) dari kelasB
class programinheritance {
                public static void main (String []args){
                                                kelasA superClass = new kelasA();
                                                kelasB subClass = new kelasB();
System.out.println("\n");
                                                System.out.println("Program Inheritance ");
                                                System.out.println("============================");
                                                System.out.println("\n");
                                                System.out.println("SuperClass adalah Kelas A");
                                                superClass.x=50;
                                                superClass.y=100;
                                                superClass.tampilnilaixy();
                                                System.out.println("\nSubClass adalah Kelas B");
                                                subClass.x=2;
                                                subClass.y=4;
                                                subClass.tampilnilaixy();
// membuat inputan melalui keyboard dengan menggunakan JoptionPane
     yang di deklarasikan pada import javax.swing.*; pada bagian atas.
                                                String data1 = JOptionPane.showInputDialog("Masukkan Nilai Z : ");
                                                subClass.z=Integer.parseInt(data1);
                                                System.out.println ("Nilai Z yang Dimasukkan : "+subClass.z);
                                                subClass.tampilkanjumlah();
                }
}

Output Program


B.       Polimorfisme ( Polymorphisme )
Polimorfisme adalah suatu kejadian ketika objek dapat mengungkap banyak hal melalui suatu cara yang sama. Secara harfiah, poli berarti “banyak” dan morph berarti “bentuk”. Jadi, polimorphisme berarti “mempunyai banyak bentuk”. Sebagai contoh, ada kelas A yang diturunkan menjadi kelas B,C, dan D. Dengan konsep Polimorfisme, anda dapat menjalankan method – method yang terdapat pada kelas B,C, dan D hanya dari objek yang diinstansiasi dengan kelas A. Polimorfisme memungkinkan anda mengenali kesamaam diantara kelas yang berbeda. Polimorfisme sering dinamakan dengan Dynamic binding, late binding, atau runtime binding.
Contoh Program Polymorphisme :

import java.*;
import java.io.*;
// membuat kelas untuk di jadikan bentuk objek dan sebagai superclass
class bentukwajah{
                public String respons(){
                                return("perhatikan reaksi wajah saya\n");
                }
}
// membuat kelas untuk di jadikan bentuk objek dan sebagai subclass dari kelas bentukwajah
class senyum extends bentukwajah{
                public String respons(){
                                return (" senyum karena senang\n");
                }
}
class tertawa extends bentukwajah{
                public String respons(){
                                return (" tertawa karena gembira\n");
                }
}
class marah extends bentukwajah{
                public String respons(){
                                return (" marah karena kesal\n");
                }
}
class sedih extends bentukwajah{
                public String respons(){
                                return (" sedih karena kecewa\n");
                }
}
// Program utama
class programpolimorpis{
                // method main
                public static void main (String []args){
                                System.out.println("\nprogram polimorpis");
                                System.out.println("----------------------------------------\n");
                                // membuat objek – objek raut (ekspresi) dari wajah
                                bentukwajah objbentuk = new bentukwajah();
                                senyum objsenyum = new senyum();
                                tertawa objtertawa = new tertawa();
                                marah objmarah = new marah();
                                sedih objsedih = new sedih();
                                // polimorpis dari bentuk wajah ada lima dimulai dari 0-4
                                bentukwajah [] bentuk=new bentukwajah[5];
                                bentuk[0]= objbentuk;
                                bentuk[1]= objsenyum;
                                bentuk[2]= objtertawa;
                                bentuk[3]= objmarah;
                                bentuk[4]= objsedih;
                                System.out.println("Bentuk [0]:"+bentuk[0].respons());
                                System.out.println("Bentuk [1]:"+bentuk[1].respons());
                                System.out.println("Bentuk [2]:"+bentuk[2].respons());
                                System.out.println("Bentuk [3]:"+bentuk[3].respons());
                                System.out.println("Bentuk [4]:"+bentuk[4].respons());
                }
}
                               
Output Program



Rabu, 11 April 2012

Pembungkusan ( Encapsulation )

Pada pembahasan kali ini saya akan membahas tentang Pembungkusan (encapsulation) pada pemrograman berbasis objek. Seperti tulisan / artikel yang saya sudah post ke blog ini tentang perbedaan pemrograman terstruktur dan berbasis objek di tulisan/artikel tersebut saya sudah memberikan sedikit definisi atau pengertian dari Pembungkusan (encapsulation) pada pemrograman berbasis objek. Langsung saja kita meihat definisi atau pengertian dari pembungkusan (encapsulation) pada pemrograman berbasis objek serta contoh programnya ;
            Saya mengutip dari buku pemrogaman java dasar-dasar pengenalan dan pemahaman yang diterbitkan oleh andi. Pada buku tersebut dijelaskan atau di definisikan bahwa ;
Pembungkusan (Encapsulation) sering pula disebut pengkapsulan. Artinya, proses membuat paket(memaketkan) data objek bersama dengan metode-metodenya. Berdasarkan kode program, proses memisahkan aspek-aspek objek dilakukan dengan cara pembungkusan. Proses pembungkusan itu sendiri cara atau mekanisme untuk melakukan abstraksi. Dalam pemrograman tradisional, proses semacam ini sering dinamakan dengan penyembunyian informasi(information hidding). Dalam melakukan pembungkusan kode dan data didalam java, terdapat 3 tingkat akses yang perlu anda ketahui, yaitu Private, Protected, dan Public.
a. private = tidak bisa diakses oleh sembarang class
b. public = bisa diakses oleh siapapun, semua default method, class atau variable itu public jika tidak
    diberi enkapsulasi
c. protected ane belum paham ini gan tapi jarang dipake kok
Contoh Program Encapsulation.....
class belajar{
public String x ="Pintar";
private String y = "Java";
}
class Pintar{
public static void main(String[]args){
belajar panggil = new belajar();
System.out.println("Panggil X : "+panggil.x);
System.out.println("Panggil Y : "+panggil.y);}}

simpan dalam belajar.java

Jumat, 06 April 2012

Perbedaan Pemrograman terstruktur dengan Pemrograman Berorientasi Objek

Pemrograman berorientasi objek (Object-Oriented Programming atau 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, Sedangkan untuk pemrograman terstruktur adalah kebalikan dari pemrograman berorientasi objek yaitu sebuah cara pemrosesan data yang terstruktur dalam analisa, cara dan penulisan pemrograman. Dikarenakan harus terstruktur sehingga dalam pembuatannya antara satu line pemrograman dengan yang lainnya berhubungan. Konsep utama dari Pemrograman Berbasis Objek terletak pada kondisi kode/line pemrogramanannya dimana merupakan sebuah kesatuan modular.


Untuk program yang simpel/sederhana biasanya menggunakan pemrograman terstruktur karena masih mudah dan tidak banyak dilakukan perubahan yang berarti, sedangkan untuk line lebih dari 100 atau bisa dikatakan rumit, maka digunakan pemrograman berorientasi objek. Pemrograman Terstruktur terdiri dari pemecahan masalah yang besar menjadi masalah yang lebih kecil dan seterusnya, sedangkan untuk pemrograman berorientasi objek terdiri dari pengkelompokan kode dengan data yang mana setiap objek berfungsi secara independen sehingga untuk setiap perubahan kode tidak tergantung pada kode yang lainnya, atau lebih dikenal dengan modular. Terdapat juga perbedaan secara spesifik antara Pemrograman Berorientasi Objek dengan Pemrograman Terstruktur, yaitu pada kelas dan objek. Pada Pemrograman Terstruktur tidak terdapat kelas dan objek.


Sifat-sifat dari pemrograman terstruktur dapat diuraikan sebagai berikut :

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


Berbeda dengan OOP. Suatu program disebut dengan pemrograman berbasis obyek (OOP) karena terdapat :


Encapsulation (pembungkusan)

Encapsulation adalah mekanisme pemrograman yang membungkus kode dan data yang dimanipulasi dan menjaganya supaya terhindar dari interferensi dan penggunaan yang tidak perlu. Salah satu caranya dengan membentuk objek.


Inheritance (pewarisan)

Inheritance memungkinkan programer meletakkan member yang sama dalam satu class dan class-class lain dapat mewarisi member tersebut. Class yang mengandung member yang sama dari beberapa class lain dinamakan superclass atau parent class. Class yang mewarisi dinamakan subclass atau child class. Inheritance menghasilkan class hierarchy.


Polymorphism (polimorfisme –perbedaan bentuk)

Polymorphisme artinya mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic, bila objek-objek itu mempunyai antar muka yang identik namun mempunyai perilaku-perilaku yang berbeda


Bisa dikatakan pada pemrograman berorientasi objek, dapat dilakukan sebuah programming terhadap code yang lebih baik daripada pemrograman terstruktur, itu juga untuk kaliber atau skala rumit atau besar, sedangkan untuk coding yang skala kecil lebih mudah menggunakan pemrograman terstruktur dikarenakan lebih singkat dan mudah tanpa banyak perubahan yang penting.