Minggu, 16 Desember 2018

Modul6 (POLIMORPHISM)



PEMROGRAMAN BERORIENTASI OBJEK (PBO)
“POLIMORPHISM”
                                                   MODUL 6
Disusun Untuk Memenuhi Tugas Praktikum Pemrograman Berorientasi Objek (PBO)
Dosen Pembimbing : Dede Irawan, M.Kom



Disusun Oleh:
IYAS SONA                 (20160910021)
SI-A 2016


UNIVERSITAS KUNINGAN
Jln. Cut Nyak Dhien No. 36A Cijoho Kuningan, Jawa Barat
Tlp/Fax. (0232)874824

KATA PENGANTAR
Alhamdulilah, puji syukur saya haturkan kehadirat Allah SWT. Atas rahmat-Nya lah saya dapat menyelesaikan makalah ini dengan baik.
Tak lupa saya juga haturkan terima kasih yang sebesar-besarnya kepada semua pihak yang telah mendukung dan membantu dalam menyelesaikan makalah ini. Saya menyadari bahwa Makalah ini memang belum mencapai kesempurnaan, masih banyak kekurangan-kekurangan yang harus diperbaiki. Untuk itu, saya sebagai penyusun mengharapkan kritik dan saran yang membangun dari para pembaca agar dapat memperbaiki dalam penulisan Makalah yang saya buat selanjutnya. Akhirnya saya sebagai penyusun berharap, semoga Makalah yang saya buat dapat menambah wawasan kepada saya pada khususnya dan kepada para pembaca pada umumnya.









 Kuningan, Desember  2018
Iyas Sona
                                                                                                                                                i
Daftar Isi
Kata Pengantar ________________________________________________________      i
Daftar isi _____________________________________________________________      ii
BAB I PEMBAHASAN                                       
  1. Dasar Teori ___________________________________________________           3
A.    Polimorphis ________________________________________________         3
  1. Praktikum ____________________________________________________           3
  2. Latihan / Post Test _____________________________________________           14
  3. Tugas Individu ________________________________________________           15

















A.    Dasar Teori
Polymorphism adalah salah satu dari tiga kemampuan yang mendasar yang dimiliki oleh OOP, setelah data abstraction dan inheritance. Polymorphism menyediakan cara yang berbeda pada pemisahan interface dari implementasinya, untuk memasangkan ulang apa dari bagaimana. Polymorphism memberikan organisasi kode yang lebih baik dan kode menjadi lebih mudah dibaca, juga memberikan suatu kemampuan pada program untuk berkembang secara terus menerus baik pada tahap pengembangan awal ataupun pada saat ingin menambahkan kemampuan-kemampuan yang baru.
Polymorphism dapat disamakan dengan Method Overloading, dimana di dalam sebuah class terdapat beberapa method dengan nama sama. Sebuah Method bernama CetakData() yang misalnya berfungsi menampilkan data String, tentu tidak bisa menangani masukan berupa data numerik, boolean, ataupun karakter, demikian juga sebaliknya. Solusi yang bisa dilakukan adalah dengan menyediakan beberapa MethodCetakData() yang akan menangani setiap tipe data, sehingga data apapun yang diberikan sebagai parameter tetap bisa diproses.

B.     Praktikum
Praktikum1
  Source Kode :
package Modul6;
class Bentuk {
    public void gambar(){System.out.println("Menggambar");}
    public void hapus(){System.out.println("Menghapus gambar\n");}   
}
class Lingkaran extends Bentuk{
    public void gambar(){System.out.println("Gambar Lingkaran");}
    public void hapus(){System.out.println("Hapus Lingkaran\n");}   
   
}
class Elips extends Bentuk{
    public void gambar(){System.out.println("Gambar Elips");}
    public void hapus(){System.out.println("Hapus Elips \n");}   
   
}
class Segitiga extends Bentuk{
    public void gambar(){System.out.println("Gambar Segitiga");}
    public void hapus(){System.out.println("Hapus Segitiga\n");}  
   
}
public class TesBentuk{
    public static void main(String[]args){
    Bentuk b = new Bentuk();
    Lingkaran l= new Lingkaran();
    Elips e= new Elips();
    Segitiga s= new Segitiga();
    System.out.println("Bentuk");
    b.gambar(); b.hapus();
    System.out.println("Bentuk Lingkaran");
     l.gambar(); l.hapus();
    System.out.println("Bentuk Elips");
     e.gambar(); e.hapus();
    System.out.println("Bentuk Segitiga");
     s.gambar(); s.hapus();
    }
}     

  Hasil :

Praktikum2
  Source Kode :
package Modul6;
import java.*;
import java.io.*;
class BentukWajah {
    //membuat sebuah method respons pada class induk dimana mengembalikan
    public String respons ()
    {return("Perhatikan reaksi wajah saya\n");
    }
}
/*Membuat class-class lain dengan turunan dari class 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("Kemarahan disebabkan bertengkar\n");
     }
   }
    class Sedih extends BentukWajah
    {
       public String respons ()
       {return("Sedih disebabkan cemburu\n");
       }
}

  Source Kode :
package Modul6;
public class Programpolimorphism {
    //**Main Method*?
    public static void main(String []args)
    {
    System.out.println("\n Program Polimorphis");
    System.out.println("=====================");
    //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();
    //polimoripish dari bentuk wajah ada 5 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());
    }
}

  Hasil :

 Praktikum3
  Source Kode :
package Modul6;
public class Hewan
    {String jenis,ciri;
    public void suara(){System.out.println("Suara Hewan");}
    public void berjalan(){System.out.println("Cara berjalan hewan");}
}
class Singa extends Hewan
{
    public void suara(){System.out.println("WaouWaou");}
    public void berjalan(){
        System.out.println("Berlari");
        System.out.println("=======================");
    }
}
class Elang extends Hewan
{
    public void suara(){System.out.println("Ieoooookkk");}
    public void berjalan(){
        System.out.println("Terbang");
        System.out.println("=======================");
    }
}
class Lebah extends Hewan
{
    public void suara(){System.out.println("wunggg");}
    public void berjalan(){
        System.out.println("Terbang");
        System.out.println("=======================");
    }
}
class Paus extends Hewan
{
    public void suara(){System.out.println("booom");}
    public void berjalan(){
        System.out.println("Berenang");
        System.out.println("=======================");
    }
}

  Source Kode :
package Modul6;
public class DemoHewan {
    public static void main(String[]asdasd){
        Lebah HewanLebah = new Lebah();
        Paus HewanPaus = new Paus();
        Singa HewanSinga = new Singa();
        Elang HewanElang = new Elang();
        Hewan h;
        System.out.println("Lebah");
        h = HewanLebah; h.suara(); h.berjalan();
        System.out.println("Singa");
        h = HewanSinga; h.suara(); h.berjalan();
        System.out.println("Elang");
        h = HewanElang; h.suara(); h.berjalan();
        System.out.println("Paus");
        h = HewanPaus; h.suara(); h.berjalan();
    }
}

  Hasil :


C.      Latihan/Posttest
Buatlah Program Polimorphism dengan case studi yang berbeda dari praktikum diatas.

Tampil :

D.     Tugas Individu
·         Apa perbedaan Inheritence dengan Polimorphism, Jelaskan.!
Inheritance (penurunan sifat / pewarisan), ini merupakan ciri khas dari OOP yang tidak terdapat pada pemrograman prosedural gaya lama sedangkan Polymorphism suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.





Modul5 (INHERITANCE / PEWARISAN)



PEMROGRAMAN BERORIENTASI OBJEK (PBO)
“INHERITANCE (PEWARISAN)”
                                                   MODUL 5
Disusun Untuk Memenuhi Tugas Praktikum Pemrograman Berorientasi Objek (PBO)
Dosen Pembimbing : Dede Irawan, M.Kom



Disusun Oleh:
IYAS SONA                 (20160910021)
SI-A 2016


UNIVERSITAS KUNINGAN
Jln. Cut Nyak Dhien No. 36A Cijoho Kuningan, Jawa Barat
Tlp/Fax. (0232)874824

KATA PENGANTAR
Alhamdulilah, puji syukur saya haturkan kehadirat Allah SWT. Atas rahmat-Nya lah saya dapat menyelesaikan makalah ini dengan baik.
Tak lupa saya juga haturkan terima kasih yang sebesar-besarnya kepada semua pihak yang telah mendukung dan membantu dalam menyelesaikan makalah ini. Saya menyadari bahwa Makalah ini memang belum mencapai kesempurnaan, masih banyak kekurangan-kekurangan yang harus diperbaiki. Untuk itu, saya sebagai penyusun mengharapkan kritik dan saran yang membangun dari para pembaca agar dapat memperbaiki dalam penulisan Makalah yang saya buat selanjutnya. Akhirnya saya sebagai penyusun berharap, semoga Makalah yang saya buat dapat menambah wawasan kepada saya pada khususnya dan kepada para pembaca pada umumnya.









 Kuningan, Desember  2018
Iyas Sona
                                                                                                                                                i
Daftar Isi
Kata Pengantar ________________________________________________________      i
Daftar isi _____________________________________________________________      ii
BAB I PEMBAHASAN                                       
  1. Dasar Teori _____________________________________________________       3
A.    INHERITANCE (PEWARISAN) ________________________________      3
  1. Praktikum ______________________________________________________       3
  2. Latihan / Post Test ________________________________________________     14
  3. Tugas Individu ___________________________________________________     15

















A.    Dasar Teori
Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi kode program. Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam kode program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent class), super class, atau base class. Sedangkan class yang ‘menerima penurunan’ bisa disebut sebagai class anak (child class), sub class, derived class atauheir class. Tidak semua property dan method dari class induk akan diturunkan. Property dan method dengan hak akses private, tidak akan diturunkan kepada class anak. Hanya property dan method dengan hak akses protected dan public saja yang bisa diakses dari class anak.

B.   Praktikum 1
  Source Kode :
package Modul5;
class Person {
    private String Nama;
    private String Alamat;
    private int Umur;
    public Person(){
}
    public Person(String Nama, String Alamat, int Umur){
        this.Nama = Nama;
        this.Alamat = Alamat;
        this.Umur = Umur;}
    public String getNama(){
        return Nama;}
    public String getAlamat(){
        return Alamat;}
    public int getUmur(){
        return Umur;}
    public void setNama (String Nama){
        this.Nama = Nama;}
    public void setAlamat (String Alamat){
        this.Alamat = Alamat;}
    public void setUmur (int Umur){
        this.Umur = Umur;}
    public void InfoPerson(){
        System.out.println("\nInfo Person");
        System.out.println("Nama\t\t: " + getNama());
        System.out.println("Alamat\t\t: " + getAlamat());
        System.out.println("Umur\t\t: " + getUmur());
    }
   }

  Source Kode :
package Modul5;
class Dosen extends Person{
    private String IdDosen;
    public Dosen()
    {
    }
    public Dosen(String Nama, String Alamat,int Umur,String IdDosen)
    {
        super(Nama, Alamat, Umur);
        this.IdDosen = IdDosen;
    }
    public String getIdDosen()
    {
        return IdDosen;
    }
    public void setIdDosen(String idDosen)
    {
        this.IdDosen = IdDosen;
    }
    public void InfoDosen()
    {
        System.out.println("\nInfo Dosen");
        System.out.println("idDosen\t\t: " + getIdDosen());
        System.out.println("Nama\t\t: " + getNama());
        System.out.println("Alamat\t\t: " + getAlamat());
        System.out.println("Umur\t\t: " + getUmur());
    } 
}
  Source Kode :
package Modul5;
class Mahasiswa extends Person{
    private String NIM;
    public Mahasiswa()
    {
    }
    public Mahasiswa(String Nama, String Alamat,int Umur,String NIM)
    {
        super(Nama, Alamat, Umur);
        this.NIM = NIM;
    }
    public String getNIM()
    {
        return NIM;
    }
    public void setNIM(String NIM)
    {
        this.NIM = NIM;
    }
    public void InfoMahasiswa()
    {
        System.out.println("\nInfo Mahasiswa");
        System.out.println("NIM\t\t: " + getNIM());
        System.out.println("Nama\t\t: " + getNama());
        System.out.println("Alamat\t\t: " + getAlamat());
        System.out.println("Umur\t\t: " + getUmur());
    }
}
  Source Kode :
package Modul5;
class Tampil {
    public static void main(String[] asdasd){
        Person a = new Person("Iyas","Kuningan",21);
        a.InfoPerson();
        Dosen b = new Dosen("Sona","Kuningan",22,"22.04.98");
        b.InfoDosen();
        Mahasiswa c = new Mahasiswa("Iyas Sona","Kuningan",20,"20160910021");
        c.InfoMahasiswa();
        System.out.println("========================================");
    }
}
  Hasil Running :

Praktikum 2 
  Source Kode :
package Modul5;
public class Kakek {
    protected String namaKakek;
    protected String address;
    public Kakek()
    {
        System.out.println("\n Program Demo Inheritance");
        System.out.println("============================");
        System.out.println(" Masukan construktor kakek ");
        System.out.println("-Dijalankan oleh class Bapak-");
        namaKakek="Joyo Cokro Aminoto";
        address="Sleman Djogjakarta";
    }
    public Kakek(String nama, String address)
    {
        this.namaKakek=namaKakek;
        this.address=address;
    }
    public String getNama()
    {
        return namaKakek;
    }
    public String getAddress()
    {
        return address;
    }
}
  Source Kode :
package Modul5;
public class Bapak extends Kakek{
    protected String namaBapak;
    protected String addressBapak;
    public Bapak()
    {
        System.out.println("nama Kakek :"+namaKakek);
        System.out.println("address Kakek :"+address);
        System.out.println("\n");
        System.out.println(" Masukan construktor Bapak ");
        System.out.println("-Dijalankan oleh class Cucu-");
        namaBapak="Rohaedi";
        addressBapak="Kuningan";
    }
    public Bapak(String namaBapak, String addressBapak)
    {
        this.namaBapak=namaBapak;
        this.addressBapak=addressBapak;
    }
    public String getNama()
    {
        return namaBapak;
    }
    public String getAddress()
    {
        return addressBapak;
    }
    public static void maain(String []args)
    {
        Bapak Asri=new Bapak();
    }
}
  Source Kode :
package Modul5;
public class Cucu extends Bapak{
    public Cucu()
    {
        System.out.println("Nama Bapak :"+namaBapak);
        System.out.println("address Bapak :"+addressBapak);
    }
    public static void main(String []args)
    {
        String namaCucu;
        Cucu lagan=new Cucu();
        System.out.println("\nSaya adalah Cucu");
        System.out.println("Nama saya : Rio Andriyat Krisdiawan");
        System.out.println("");
    }
}
  Hasil Running :

C.    Latihan/Posttest
Buatlah Program inheritance dengan case studi yang berbeda dari praktikum diatas.
v  vespa

v  Scoopy

v  Tampil

v  Hasil
  
D.     Tugas Individu
·         Modifikasi program Praktikum 2, sehingga terdapat sub class cicit.java


  


                   Hasil :