pewarisan, polimorfisme, dan interface

20
LAPORAN AKHIR PRAKTIKUM PEMROGRAMAN OBJEK DASAR MODUL 9 PEWARISAN, POLIMORFISME, DAN INTERFACE NAMA : ANDRI ARIYANTO NIM : 3411 14 1 137

Upload: andri-ariyanto

Post on 16-Feb-2016

383 views

Category:

Documents


52 download

DESCRIPTION

Menjelaskan tentang PEWARISAN, POLIMORFISME, DAN INTERFACE pada java programming

TRANSCRIPT

Page 1: PEWARISAN, POLIMORFISME, DAN INTERFACE

LAPORAN AKHIR PRAKTIKUM PEMROGRAMAN OBJEK DASAR

MODUL 9PEWARISAN, POLIMORFISME, DAN INTERFACE

NAMA : ANDRI ARIYANTO

NIM : 3411 14 1 137

PROGRAM STUDI INFORMATIKAFAKULTAS MATEMATIKAN DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS JENDERAL ACHMAD YANITAHUN AJARAN 2015

Page 2: PEWARISAN, POLIMORFISME, DAN INTERFACE

BAB 1HASIL PRAKTIKUM

1. Program IX-1 Person.java

a. Source Code

public class Person{protected String name;protected String address;

public Person(){System.out.println("Inside Person Constructor");name="";address="";

}public Person(String name, String address){

this.name = name;this.address =address;

}public String getName(){

return name;}public String getAddress(){

return address;}public void setName(String name){

this.name = name;}public void setAddress(String add){

this.address = add;}

}b. Hasil Program

c. Analisa Program

Program IX-1 tidak dapat dieksekusi secara langsung karena program ini tidak

memiliki main method. Program ini berisi atribut yang memiliki access modifier

bersifat protected, beberapa method, dan beberapa construktor yang dapat

digunakan program lain yang memiliki main method dan subclass atau childclass

dari program ini.

2. Program IX-2 Student.java

a. Source Code

public class Student extends Person{public Student(){

//super("SomeName", "SomeAddress");//super()

Page 3: PEWARISAN, POLIMORFISME, DAN INTERFACE

//super.name = "name"System.out.println("Inside Student Constructor");

}public static void main(String[] args){

Student anna = new Student();}}

b. Hasil Program

c. Analisa Program

Program IX-2 merupakan subclass dari program IX-1. Program ini dapat

menggunakan atribut dan method yang ada pada program IX-1. Pada program ini

terdapat sebuah constructor yang berfungsi untuk menampilkan tulisan “Inside

Student Constructor” ketika melakukan pembuatan object dari class itu sendiri,

serta akan menampilkan tulisan “Inside Person Constructor” yang merupakan

salah satu fungsi dari constructor yang dimiliki superclass.

3. Program IX-3 Superclass and Subclass

a. Source Code

Pakaian.java

public class Pakaian{private int ID = 0;private String keterangan = "-keterangan diperlukan-";private double harga= 0.0;private int jmlStok=0;private static int UNIQUE_ID = 0;

public Pakaian(){ID = UNIQUE_ID++;

}public int getID(){

return ID;}public void setKeterangan(String d){

keterangan = d;}public String getKeterangan(){

return keterangan;}public void setHarga(double p){

harga = p;}public double getHarga(){

return harga;}public void setJmlStok(int q){

jmlStok = q;

Page 4: PEWARISAN, POLIMORFISME, DAN INTERFACE

}public int getJmlStok(){

return jmlStok;}

} Baju.java

public class Baju extends Pakaian{//kode warna R = merah; B = Biru; G= hijau; U = Belum

ditentukanpublic char kodeWarna='U';

//method menampilkan nilai suatu itempublic void tampilInformasiBaju(){

System.out.println("ID Baju : " +getID());System.out.println("Keterangan:

"+getKeterangan());System.out.println("Kode Warna: "+kodeWarna);System.out.println("Harga: "+getHarga());System.out.println("Jumlah Stok:

"+getJmlStok());}

}b. Hasil Program

c. Analisa Program

Program IX-3 memiliki dua class, yaitu class Pakaian.java yang digunakan

sebagai superclass dan class Baju.java yang merupakan subclass dari class

Pakaian.java. Program Pakaian.java dan Baju.java tidak memiliki main method

sehingga tidak dapat dieksekusi secara langsung.

Program Pakaian.java memiliki beberapa atribut yang memiliki access modifier

bersifat private serta method accessor dan mutator untuk merubah atribut

tersebut.

Program Baju.java merupakan exstends dari program Pakaian.java sehingga

program memiliki sifat-sifat yang ada pada program Pakaian.java.

4. Program IX-4 Polimorfisme

a. Source Code

Person.java

public class Person{protected String name;protected String address;

Page 5: PEWARISAN, POLIMORFISME, DAN INTERFACE

//default constructorpublic Person(){

System.out.println("Inside Person Constructor");name="";address="";

}//constructor 2 parameterpublic Person(String name, String address){

this.name = name;this.address =address;

}//public String getName(){

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

}public String getAddress(){

return address;}public void setName(String name){

this.name = name;}public void setAddress(String add){

this.address = add;}

} Student.java

public class Student extends Person{public Student(){

//super("SomeName", "SomeAddress");//super()//super.name = "name"System.out.println("Inside Student

Constructor");}public String getName(){

System.out.println("Student name: "+name);return name;

}public static void main(String[] args){

Student anna = new Student();}

} Employee.java

public class Employee extends Person{public String getName(){

System.out.println("Employee name: "+name);return name;

}public static void main(String[] args){

Person ref;Student studentObject =new Student();Employee employeeObject = new Employee();

Page 6: PEWARISAN, POLIMORFISME, DAN INTERFACE

ref = studentObject; //person menunjuk kepada student obect

String temp = ref.getName(); //getname dari student class dipanggil

System.out.println(temp);

ref = employeeObject; //person menunjuk kepada employeeObject

temp = ref.getName(); //getname dari student class dipanggil

System.out.println(temp);

}}

b. Hasil Program

c. Analisa Program

Program class Employee.java merupakan subclass kedua setelah class

Student.java. Class Employee.java mewarisi semua atribut yang terdapat

pada class Person.java. Program ini hanya menampilkan method getName

dari class student.java dan melakukan pembuatan object Person.java, serta

melakukan dua kali definisi object Person.java dengan mengisi object

Person.java dengan object Student.java dan object Employee.java.

5. Program IX-5 Encapsulation

a. Source Code

PrivateElevator2.java

public class PrivateElevator2{private boolean bukaPintu = false;private int lantaiSkrg = 1;private int berat =0;private final int KAPASITAS = 1000;private final int LANTAI_ATAS = 5;private final int LANTAI_BAWAH = 1;

public void buka(){bukaPintu = true;

}public void tutup(){

hitungKapasitas();if(berat <= KAPASITAS){

bukaPintu=false;

Page 7: PEWARISAN, POLIMORFISME, DAN INTERFACE

}else{System.out.println("Elevator kelebihan

beban!");System.out.println("Pintu akan tetap

terbuka sampai seseorang keluar");}

}

public void hitungKapasitas(){berat=(int)(Math.random()*1500);System.out.println("Berat :" +berat);

}

public void naik(){if(!bukaPintu){

if(lantaiSkrg < LANTAI_ATAS){lantaiSkrg++;System.out.println(lantaiSkrg);

}else{System.out.println("Sudah mencapai

lantai atas");}

}else{System.out.println("Pintu masih terbuka");

}}

public void turun(){if(!bukaPintu){

if(lantaiSkrg > LANTAI_ATAS){lantaiSkrg--;System.out.println(lantaiSkrg);

}else{System.out.println("Sudah mencapai

lantai bawah");}

}else{System.out.println("Pintu masih terbuka");

}}

public void setLantai(int tujuan){

if((tujuan>=LANTAI_BAWAH)&&(tujuan<=LANTAI_ATAS)){while(lantaiSkrg != tujuan){

if(lantaiSkrg < tujuan){naik();

}else{turun();

}}

}else{System.out.println("Lantai salah");

}}

Page 8: PEWARISAN, POLIMORFISME, DAN INTERFACE

public int getLantai(){return lantaiSkrg;

}

public boolean getStatusPintu(){return bukaPintu;

}}

PrivateElevator2Test.java

public class PrivateElevator2Test{public static void main(String[] args){

PrivateElevator2 privElevator = new PrivateElevator2();

privElevator.buka();privElevator.tutup();privElevator.turun();privElevator.naik();privElevator.naik();privElevator.buka();privElevator.tutup();privElevator.turun();privElevator.buka();privElevator.turun();privElevator.tutup();privElevator.turun();privElevator.turun();

int lantai = privElevator.getLantai();

if(lantai != 5 && !privElevator.getStatusPintu()){

privElevator.setLantai(5);}privElevator.setLantai(10);privElevator.buka();

}}

b. Hasil Program

c. Analisa Program

Pada program IX-5 terdapat dua class yang dibuat, yaitu class

PrivateElevator2.java dan PrivateElevator2Test.java. pada program

PrivateElevator2.java terdapat beberapa atribut yang memiliki access modifier

Page 9: PEWARISAN, POLIMORFISME, DAN INTERFACE

bersifat private dan beberapa bersifat final, serta terdapat method-method

accessor dan mutator. Program PrivateElevator2.java dibuat untuk digunakan

oleh program PrivateElevator2Test.java.

6. Program IX-6 Abstract Class

a. Source Code

LivingThing.java

public abstract class LivingThing{public void breath(){

System.out.println("Living thing breathing ... ");

}public void eat(){

System.out.println("Living thing eating ... ");

}//abstract method walkpublic abstract void walk();

} Human.java

public class Human extends LivingThing{public void walk(){

System.out.println("Human walks ... ");}public static void main(String[] args){

Human hooman = new Human();hooman.walk();hooman.breath();hooman.eat();

}}

b. Hasil Program

c. Analisa Program

Pada Program IX-6 terdapat dua class yang dibuat, yaitu class LivingThing.java

dan class Human.java. Class LivingThing.java merupakan class abstract, yaitu

class yang memiliki method yang harus didefinisikan oleh class lain yang

menjadikannya sebagai superclass. Pada class Human.java, class

LivingThing,java dijadikan superclass sehingga class Human.java harus

mendefinisikan method abstract yang ada pada class LivingThing.java.

Page 10: PEWARISAN, POLIMORFISME, DAN INTERFACE

7. Program IX-7 Interface

a. Source Code

Line.java

public class Line implements Relation{private double x1, x2, y1, y2;

public Line(double x1, double x2, double y1, double y2){

this.x1 = x1;this.x2 = x2;this.y1 = y1;this.y2 = y2;

}public double getLength(){

double length = Math.sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));

return length;}public boolean isGreater(Object a, Object b){

double aLen = ((Line)a).getLength();double bLen = ((Line)b).getLength();return(aLen > bLen);

}public boolean isLess(Object a, Object b){

double aLen = ((Line)a).getLength();double bLen = ((Line)b).getLength();return(aLen < bLen);

}public boolean isEqual(Object a, Object b){

double aLen = ((Line)a).getLength();double bLen = ((Line)b).getLength();return(aLen == bLen);

}

} Relation.java

public interface Relation{public boolean isGreater(Object a, Object b);public boolean isLess(Object a, Object b);public boolean isEqual(Object a, Object b);

}b. Hasil Program

Page 11: PEWARISAN, POLIMORFISME, DAN INTERFACE

c. Analisa Program

Pada Program XI-7 terdapat dua buah class yang dibuat, yaitu class Relation.java

dan Line.java. class Relation.java meruakan class interface yang di implements

oleh class Line.java, sehigga class Line.java harus mendefinisikan method-

method yang ada pada class Relation.java. kedua class ini tidak memiliki main

method sehingga tidak dapat dieksekusi secara langsung.

BAB 2

TUGAS AKHIR

1. Program Extends

a. Source Code

StudentRecord.java

public class StudentRecord{private String name;private String address;private int age;private double mathGrade;private double englishGrade;private double scienceGrade;private double average;private static int studentCount;

public StudentRecord(){studentCount++;

}public StudentRecord(String temp){

this.name = temp;studentCount++;

}public StudentRecord(String name, String address){

this.name = name;this.address = address;studentCount++;

}public StudentRecord(double mGrade, double eGrade,

double sGrade){mathGrade = mGrade;englishGrade = eGrade;scienceGrade = sGrade;studentCount++;

}public String getName(){

return name;}public void setName(String temp){

name = temp;}

Page 12: PEWARISAN, POLIMORFISME, DAN INTERFACE

public void setAddres(String temp){address = temp;

}

public String getAddress(){return address;

}public double getAverage(){

double result = 0;result = (mathGrade + englishGrade +

scienceGrade)/3;return result;

}public static int getStudentCount(){

return studentCount;}

} Mahasiswa.java

public class Mahasiswa extends StudentRecord{

public Mahasiswa(){

System.out.println("Mahasiswa merupakan

Subclass");

}

public void setAddress()

{

System.out.println("Andri anak yang rajin

menabung");

}

public static void main(String[] args){

Mahasiswa budak = new Mahasiswa();

budak.setName("erik andri ariyanto");

System.out.println("Nama :"+budak.getName());

budak.setAddress();

}

}

b. Hasil Program

Page 13: PEWARISAN, POLIMORFISME, DAN INTERFACE

c. Analisa Program

Program Mahasiswa.java dapat menggunakan semua atribut setra method yang

ada pada class StudentRecord.java, dikarenakan program Mahasiswa.java telah

melakukan extends terhadap class StudentRecord.java sehingga program

Mahasiswa.java telah mewarisi sifat StudentRecord.java.

2. Program Class Abstract

d. Source Code

Shape.java

public abstract class Shape{public abstract int getArea();public abstract String getName();

} Cyrcle.java

public class Cyrcle extends Shape{public int getArea(){

int temp = 90;return temp;

}public String getName(){

String nama = "Lingkaran";return nama;

}public static void main(String[] args){

Cyrcle lingkaran = new Cyrcle();System.out.println("Nama :

"+lingkaran.getName());System.out.println("Luas :

"+lingkaran.getArea()); }

} Square.java

public class Square extends Shape{public int getArea(){

int temp = 60;return temp;

}public String getName(){

String nama = "Persegi";return nama;

}public static void main(String[] args){

Square persegi = new Square();System.out.println("Nama : "+persegi.getName());System.out.println("Luas : "+persegi.getArea());

}}

Page 14: PEWARISAN, POLIMORFISME, DAN INTERFACE

e. Hasil Program

f. Analisa Program

Terdapat tiga class yang di buat, yaitu class Shape.java, class Cyrcle.java, dan

class Square.java. Class Shape.java dibuat bertipe abstract dengan dua method

abstract di dalamnya. Class Shape.java dijadikan superclass oleh class

Cyrcle.java dan class Square.java sehingga class-class tersebut harus

mendefinisikan method abstract yang ada pada class Shape.java.

BAB 3

KESIMPULAN

Pewarisan (Inheritance) merupakan sifat dalam bahasa berorientasi objek yang memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain. Sistem OOP memungkinkan kita untuk mendefinisikan suatu kelas baru dengan mewarisi sifat ,dari kelas lain yang sudah ada. Penurunan sifat ini bisa dilakukan dilakukan secara bertingkat-tingkat, sehingga semakin ke bawah maka kelas tersebut semakin spesifik.

Polimorfisme merupakan suatu konsep yang menyatakan sesuatu yang sama dapat memiliki berbagai bentuk dan perilaku berbeda. Istilah ini sendiri berasal dari bahasa Yunani, yang berarti “Mempunyai banyak bentuk”.Polimorfisme merupakan kemampuan objek-objek yang berbeda kelas namun terkait dalam pewarisan untuk merespon secara berbeda terhadap suatu pesan yang sama. Polimarfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan.

Interface adalah kumpulan method yang hanya memuat deklarasi dan struktur method, tanpa detail implementasinya. Sedangkan detail dari method berada pada class yang mengimplementasikan interface tersebut. Interface digunakan jika ingin mengaplikasikan suatu method yang spesifik, yang tidak diperoleh dari proses inheritance. Tipe data yang boleh pada interface hanya tipe data konstan.

Page 15: PEWARISAN, POLIMORFISME, DAN INTERFACE

DAFTAR PUSTAKA

Yuniarti Rezki,.Modul Pratikum Pemrograman Objek Dasar. Informatika

Fakultas MIPA-UNJANI,Cimahi.