Project polimorfisme : interface Poligon // Deklarasi methode double Luas(); double Keliling(); String displayinfo(); 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() ); 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() ); 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() ); // 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
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"); //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