Anda di halaman 1dari 11

Project polimorfisme :

package polimorfisme;

interface Poligon {

// Deklarasi methode

double Luas();

double Keliling();

String displayInfo();

package polimorfisme;

class Lingkaran implements Poligon {

// Deklarasi atribut

Nita Oktavia_201143501480 1
private double radius;

private final double PI = 3.14;

// Definisi method

// Konstruktor

public Lingkaran(double r) {

radius = r;

// Selector

public double getRadius() {

return radius;

// Definisi method dari kelas induk

public double Luas() {

return (PI*radius*radius);

public double Keliling() {

return (2*PI*radius);

public String displayInfo() {

return ( "Lingkaran"

Nita Oktavia_201143501480 2
+ "\no Jari-jari: " + (float)getRadius()

+ "\no Luas : " + (float)Luas()

+ "\no Keliling : " + (float)Keliling() );

package polimorfisme;

import java.lang.Math;

class SegiTiga implements Poligon {

// Deklarasi atribut

private double alas, tinggi;

// Konstruktor

public SegiTiga(double a, double t) {

alas = a;

tinggi = t;

public double getAlas() {

return alas;

public double getTinggi() {

return tinggi;

public double Luas() {

Nita Oktavia_201143501480 3
return (alas*tinggi)/2;

public double Keliling() {

double d;

d = (double)Math.sqrt((alas*alas)+(tinggi*tinggi));

return (alas+tinggi+d);

public String displayInfo() {

return ( "Segi Tiga"

+ "\no Alas : " + (float)getAlas()

+ "\no Tinggi : " + (float)getTinggi()

+ "\no Luas : " + (float)Luas()

+ "\no Keliling : " + (float)Keliling() );

package polimorfisme;

class SegiEmpat implements Poligon {

// Deklarasi atribut

private double panjang, lebar;

// Definisi method

Nita Oktavia_201143501480 4
// Konstruktor

public SegiEmpat(double p, double l) {

panjang = p;

lebar = l;

// Selector

public double getPanjang() {

return panjang;

public double getLebar() {

return lebar;

public double Luas() {

return (panjang*lebar);

public double Keliling() {

return (2*(panjang+lebar));

public String displayInfo() {

return ( "Segi Empat"

+ "\no Panjang : " + (float)getPanjang()

Nita Oktavia_201143501480 5
+ "\no Lebar : " + (float)getLebar()

+ "\no Luas : " + (float)Luas()

+ "\no Keliling : " + (float)Keliling() );

package polimorfisme;

// Program utama

class TesPoligon {

public static void main(String args[]) {

// Deklarasi array

Poligon p[] = new Poligon[4];

SegiEmpat se = new SegiEmpat(17,8);

SegiTiga sg = new SegiTiga(21,4);

Lingkaran lg = new Lingkaran (10);

Lingkaran lh = new Lingkaran (7);

//bentuk polimorfisme

p[0] = se;

p[1] = sg;

p[2] = lg;

p[3] = lh;

Nita Oktavia_201143501480 6
Lingkaran x = new Lingkaran(8);

// Display informasi

for (int i=0; i < p.length; i++) {

System.out.println("\n"+p[i].displayInfo());

Output :

Nita Oktavia_201143501480 7
package polimorfisme;

import java.*;

import java.io.*;

/*class induk dengan nama Bentukwajah*/

class Bentukwajah

/*Membuat sebuah method respons pada class induk dimana mengembalikan

*sebuah nilai String*/

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()

Nita Oktavia_201143501480 8
return("Tertawa karena gembira\n");

class Marah extends Bentukwajah

public String respons()

return("kemarahan disebabkan bertangkar\n");

class Sedih extends Bentukwajah

public String respons()

return("Sedih disebabkan cemburu\n");

package polimorfisme;

//program utama

public class Programpolimorphis

/**Main method*/

public static void main(String []args)

Nita Oktavia_201143501480 9
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();

//polimorphis 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());

Nita Oktavia_201143501480 10
Output :

Nita Oktavia_201143501480 11

Anda mungkin juga menyukai