Bab 1 Padanannya dalam Bahasa C/C++ : Contoh-01. // panjang // lebar // tinggi class oop01 { int Vol; // Volume Kotak k = new Kotak(); k.pjg = ; k.lbr = ; k.tgi = ; Vol = k.pjg * k.lbr * k.tgi; System.out.println(Vol); Tercetak : 0 Kotak pjg lbr tgi k Ini bukan sebuah area, tapi suatu pernayataan yang menyatakan atau menggambarkan struktur suatu area. Areanya sendiri akan dibentuk kemudian struct Kotak Ini areanya yang dibentuk dengan instruksi : K = new Kotak(); 0 Vol Area ini namanya k, semacam pointer dalam bahasa C/C++, (walaupun Java tidak menyebutnya pointer ). k ini berisi alamat suatu area, yaitu area yang berstruktur Kotak Area ini tanpa nama, tapi setiap elemenya dapat dinyatakan dengan (bernama) : k.pjg k.lbr k.tgi 1
02. class oop02 { int V1, V2; Kotak k1 = new Kotak(); Kotak k2 = new Kotak(); k1 k2 k1.pjg = ; k1.lbr = ; k1.tgi = ; k2.pjg = ; k2.lbr = ; k2.tgi = 2; V1 = k1.pjg * k1.lbr * k1.tgi; V2 = k2.pjg * k2.lbr * k2.tgi; 0 V1 2 8 V2 System.out.println(V1); System.out.println(V2); Tercetak : 0 8 0. class oop02 { int V1, V2; Kotak k1, k2; k1 = new Kotak(); k2 = k1; k1 k2 k1.pjg = ; k1.lbr = ; k1.tgi = ; V1 = k1.pjg * k1.lbr * k1.tgi; V2 = k2.pjg * k2.lbr * k2.tgi; 0 V1 0 V2 System.out.println(V1); System.out.println(V2); Tercetak : 0 0 2
0. class oop0 { int V1, V2; Kotak k1, k2; k1 k2 k1 = new Kotak(); k2 = k1; k1.pjg = ; k1.lbr = ; k1.tgi = ; 0 0 V1 = k1.pjg * k1.lbr * k1.tgi; V2 = k2.pjg * k2.lbr * k2.tgi; V1 V2 System.out.println(V1); System.out.println(V2); Tercetak : 0 0 20 0 k1 = new Kotak(); k1.pjg = 10; k1.lbr = ; k1.tgi = ; V1 = k1.pjg * k1.lbr * k1.tgi; V2 = k2.pjg * k2.lbr * k2.tgi; System.out.println(V1); System.out.println(V2); k1 10 20 V1 k1 menunjuk suatu area baru
0. void CetakVolume() { System.out.println("Volume = " + (pjg * lbr * tgi ) ); class oop0 { Kotak k1, k2, k; Dalam, ada method yang namanya : k1 CetakVolume() Suatu function yang berisi sejumlah instruksi k2 k1 = new Kotak(); k2 = new Kotak(); k = new Kotak(); k1.pjg = ; k1.lbr = ; k1.tgi = ; k2.pjg = ; k2.lbr = ; k2.tgi = ; k k.pjg = 7; k.lbr = ; k.tgi = ; 7 Tercetak : 0 120 210 k1.cetakvolume(); k2.cetakvolume(); k.cetakvolume(); k1.cetakvolume(); Yang dicetak data yang ditunjuk oleh k1
0. int HitungVolume() { int vol = pjg * lbr * tgi; return vol; class oop0 { Kotak k1, k2, k; Method HitungVolume() disini hanya berfungsi menghitung volume yang disimpan dalam variabel Vol, Hasil hitungan dalam Vol direturn ke main program Vol = variabel yang dibuat disini Nilainya di-return ke program yang memanggilnya k1 = new Kotak(); k2 = new Kotak(); k = new Kotak(); k1.pjg = ; k1.lbr = ; k1.tgi = ; k1 k2 k k2.pjg = ; k2.lbr = ; k2.tgi = ; 7 k.pjg = 7; k.lbr = ; k.tgi = ; System.out.println("Volume1 = " + k1.hitungvolume()); System.out.println("Volume2 = " + k2.hitungvolume()); System.out.println("Volume = " + k.hitungvolume()); Tercetak : Volume1 = 0 Volume2 = 120 Volume = 210 memanggil fungsi( baca : method ) HitungVolume()
07. int HitungVolume() { int vol = pjg * lbr * tgi; return vol; class oop07 { int V1, V2, V; Kotak k1, k2, k; V1 V2 V k1 = new Kotak(); k2 = new Kotak(); k = new Kotak(); k1.pjg = ; k1.lbr = ; k1.tgi = ; k2.pjg = ; k2.lbr = ; k2.tgi = ; k1 k2 k 7 k.pjg = 7; k.lbr = ; k.tgi = ; 0 120 210 V1 V2 V V1 = k1.hitungvolume(); V2 = k2.hitungvolume(); V = k.hitungvolume(); System.out.println("Volume1 = " + V1 ); System.out.println("Volume2 = " + V2 ); System.out.println("Volume = " + V ); Tercetak : Volume1 = 0 Volume2 = 120 Volume = 210
08. void IsiData (int p, int l, int t ) { pjg = p; lbr = l; tgi = t; int HitungVolume() { return(pjg*lbr*tgi); class oop08 { Kotak k; k = new Kotak(); k.isidata(,,); k Dalam, Ada 2 method IsiData Untuk mengisi data : p, l, t HitungVolume() Untuk menghitung volume yang nilainya di-return ke program main System.out.println("Volume = " + k.hitungvolume() ); Tercetak : Volume = 0 09. Kotak() { pjg = ; lbr = ; tgi = ; int HitungVolume() { return(pjg*lbr*tgi); k1 k2 class oop09 { Kotak k1, k2; k1 = new Kotak(); k2 = new Kotak(); System.out.println("Volume1 = " + k1.hitungvolume() ); System.out.println("Volume2 = " + k2.hitungvolume() ); Tercetak : Volume1 = 0 Volume2 = 0 7
10. Kotak( int p, int l, int t) { pjg = p; lbr = l; tgi = t; int HitungVolume() { return(pjg*lbr*tgi); class oop10 { Kotak k1, k2; k1 = new Kotak(,,); k2 = new Kotak(,,); k1 k2 System.out.println("Volume1 = " + k1.hitungvolume() ); System.out.println("Volume2 = " + k2.hitungvolume() ); Tercetak : Volume1 = 0 Volume2 = 120 11. Kotak( int p, int l, int t) { this.pjg = p; this.lbr = l; this.tgi = t; int HitungVolume() { return(pjg*lbr*tgi); k1 k2 class oop11 { Kotak k1, k2; k1 = new Kotak(,,); k2 = new Kotak(,,); System.out.println("Volume1 = " + k1.hitungvolume() ); System.out.println("Volume2 = " + k2.hitungvolume() ); Tercetak : Volume1 = 0 Volume2 = 120 8
12. Kotak( int pjg, int lbr, int tgi) { this.pjg = pjg; this.lbr = lbr; this.tgi = tgi; int HitungVolume() { return(pjg*lbr*tgi); k1 k2 class oop12 { Kotak k1, k2; k1 = new Kotak(,,); k2 = new Kotak(,,); System.out.println("Volume1 = " + k1.hitungvolume() ); System.out.println("Volume2 = " + k2.hitungvolume() ); Tercetak : Volume1 = 0 Volume2 = 120 1. int HitungVolume(int p, int l, int t) { return(p*l*t); double HitungVolume(double p, double l, double t) { return(p*l*t); class oop1 { Kotak k = new Kotak(); int V1 = k.hitungvolume(,, ); double V2 = k.hitungvolume(.,.,.0); System.out.println("Volume1 = " + V1 ); System.out.println("Volume2 = " + V2 ); Tercetak : Volume1 = 0 Volume2 = 7.2 k int double 0 7.2 V1 V2 9
1. { //int pjg; // // int HitungVolume(int p, int l, int t) { return(p*l*t); double HitungVolume(double p, double l, double t) { return(p*l*t); class oop1 { Kotak k = new Kotak(); int V1 = k.hitungvolume(,, ); double V2 = k.hitungvolume(.,.,.0); System.out.println("Volume1 = " + V1 ); System.out.println("Volume2 = " + V2 ); Tercetak : Volume1 = 0 Volume2 = 7.2 k int double 0 7.2 V1 V2 1. class Segitiga { //int Alas; //int Tgi; int HitungLuas(int Alas, int Tgi) { return(alas*tgi/2); double HitungLuas(double A, double T) { return(a*t/2.0); class oop1 { Segitiga k = new Segitiga(); k int L1 = k.hitungluas( 7, ); double L2 = k.hitungluas( 7.0,.0); System.out.println("Luas1 = " + L1 ); System.out.println("Luas2 = " + L2 ); Tercetak : Luas1 = 17 Luas2 = 17. int double 17 17. L1 L2 10
1. class Segitiga { //int Alas; //int Tgi; int HitungLuas(int Alas, int Tgi) { return(alas*tgi/2); double HitungLuas(double A, double T) { return(a*t/2.0); class oop1 { Segitiga k = new Segitiga(); int L1 = k.hitungluas( 7, ); double L2 = k.hitungluas( 7.0, ); System.out.println("Luas1 = " + L1 ); System.out.println("Luas2 = " + L2 ); Tercetak : Luas1 = 17 Luas2 = 17. 17. Kotak() { pjg = 0; lbr = 0; tgi = 0; Kotak(int sisi) { pjg=lbr=tgi=sisi+2; Kotak(int p, int l, int t) { pjg = p; lbr = l; tgi = t; int HitungVolume() { int vol = pjg * lbr * tgi; return vol; class oop17 { int V1, V2, V; Kotak k1, k2, k; k1 = new Kotak(); k2 = new Kotak(); k = new Kotak(,,); V1 = k1.hitungvolume(); V2 = k2.hitungvolume(); V = k.hitungvolume(); System.out.println("Volume1 = " + V1 ); System.out.println("Volume2 = " + V2 ); System.out.println("Volume = " + V ); Tercetak : Volume1 = 0 Volume2 = 12 Volume = 0 11
18. Kotak(int p, int l, int t) { pjg = p; lbr = l; tgi = t; int HitungVolume() { int vol = pjg * lbr * tgi; return vol; boolean sama(kotak k) { if( (k.pjg == this.pjg) && (k.lbr == this.lbr) && (k.tgi == this.tgi) ) { return true; else { return false; class oop18 { Kotak k1, k2, k, k; k1 = new Kotak(,,2); k2 = new Kotak(,,); k = new Kotak(,,2); k = new Kotak(,,); System.out.println("k1 == k2 : " + k1.sama(k2) ); System.out.println("k1 == k : " + k1.sama(k) ); System.out.println("k2 == k : " + k2.sama(k) ); Tercetak : k1 == k2 : false k1 == k : true k1 == k : true 12
19. Kotak(int p, int l, int t) { pjg = p; lbr = l; tgi = t; Kotak(Kotak k) { this.pjg = k.pjg; this.lbr = k.lbr; this.tgi = k.tgi; int HitungVolume() { int vol = pjg * lbr * tgi; return vol; boolean sama(kotak k) { if( (k.pjg == this.pjg) && (k.lbr == this.lbr) && (k.tgi == this.tgi) ) { return true; else { return false; class oop19 { Kotak k1, k2; k1 = new Kotak(,,2); k2 = new Kotak(k1); System.out.println("k1 == k2 : " + k1.sama(k2) ); System.out.println("Volume1 = " + k1.hitungvolume()); System.out.println("Volume2 = " + k2.hitungvolume()); Tercetak : K1 == k2 : true Volume1 = 2 Volume1 = 2 1
20. { int p,l,t; Kotak( int a, int b, int c ) { p=a; l=b; t = c; void Cetak(Kotak k) { System.out.println(this.p); System.out.println(k.p); public class dua void main(string[] args) { Kotak k1, k2; k1 = new Kotak(,,2); k2 = new Kotak(,7,8); k1.cetak(k2); Tercetak : Berasal dari k1.p Berasal dari k2.p Parameter berupa object 21. { int p,l,t; Kotak( int a, int b, int c ) { p=a; l=b; t = c; void Cetak(Kotak k) { System.out.println(this.p); System.out.println(k.p); public class dua void main(string[] args) { Kotak k1, k2; k1 = new Kotak(,,2); k2 = new Kotak(,7,8); k2.cetak(k2); Berasal dari k2.p Berasal dari k2.p Parameter berupa object Kalau ini k2, maka : Tercetak : 1
22. Tanpa Pewarisan 2. Dengan Pewarisan 1 2 7 8 9 10 11 12 1 1 1 1 17 18 19 20 21 22 2 2 2 2 27 28 29 0 1 2 7 8 class A { private int a; public void seta( int nilai) { a = nilai; public int geta() { return a; Tidak pakai : class B { private int b; public void setb( int nilai) { b = nilai; public int getb() { return b; public class Contoh void main(string[] args) { A obj1 = new A(); B obj2 = new B(); obj1.seta(10); obj2.setb(2); int x = obj1.geta(); int y = obj2.getb(); System.out.println(x); System.out.println(y); Tercetak : 10 2 1 2 7 8 9 10 11 12 1 1 1 1 17 18 19 20 21 22 2 2 2 2 27 28 29 0 1 2 7 8 class A { private int a; public void seta( int nilai) { a = nilai; public int geta() { return a; class B extends A { private int b; public void setb( int nilai) { b = nilai; public int getb() { return b; public class Contoh void main(string[] args) { B obj = new B(); obj.seta(10); obj.setb(2); int x = obj.geta(); int y = obj.getb(); System.out.println(x); System.out.println(y); Tercetak : 10 2 pakai : extends Lihat baris 12. class B berdiri sendiri, tidak mewarisi class A Lihat baris 27 sampai dengan 2. Object obj1 untuk class A, dan obj2 untuk class B. Lihat baris 12. Dengan extends A, Berarti class B mewarisi class A Lihat baris 27 sampai dengan 2. Object obj cukup menujnuk class B Karena class B mewarisi class A, Maka obj juga menunjuk class A 1
2. Class A Class C Class B class A { private int a; public void seta( int nilai) { a = nilai; public int geta() { return a; class B extends A { private int b; public void setb( int nilai) { b = nilai; public int getb() { return b; class C extends B { private int c; public void setc( int nilai) { c = nilai; public int getc() { return c; main() public class Contoh void main(string[] args) { C obj = new C(); obj.seta(10); obj.setb(2); obj.setc(7); int x = obj.geta(); int y = obj.getb(); int z = obj.getc(); System.out.println(x); System.out.println(y); System.out.println(z); Tercetak : 10 2 7 1
Proses ke- Proses ke- 2. Mengambil nilai a Berusaha mencetak nilai a dan nilai b class A { private int a; protected void seta( int nilai) { a = nilai; protected int geta() { return a; class B extends A { private int b; B( int NilaiA, int NilaiB) { seta(nilaia); b = NilaiB; public void showdata() { int x = geta(); System.out.println(x); System.out.println(b); class C { private int c; public void setc( int nilai) { c = nilai; public int getc() { return c; public void showc() { System.out.println(c); public class Contoh void main(string[] args) { B obj = new B(12, ); obj.showdata(); obj.seta(27); int x = obj.geta(); System.out.println(x); Tercetak: 12 27 7 Mengirim nilai 12 ke variabel a di class A, Mencetak nilai a 2 Mencetak nilai b Proses ke-2 Mengirim nilai 12 ke variabel a di class A, dan nilai ke variabel b di class B 8 1 Mengisi nilai a menggunakan seta( ), karena : a = NilaiA; akan menyebabkan ERROR, Sebab : a tidak dikenal di class B Proses ke- 9 Mengambil nilai a 10 Mencetak nilai a Mengisi nilai ke variabel b di class B. Proses pertama Menulis instruksi : obj.setc(0); disini, akan menyebabkan ERROR, karena obj hanya untuk class B atau class supernya. Harus membuat obj sendiri misal : C obj2 = new C( ); obj2. setc(0); System.out.println(obj2.getC( ) ) 17
Proses ke- 2. Mengambil nilai a Berusaha mencetak nilai a dan nilai b class A { private int a; protected void seta( int nilai) { a = nilai; protected int geta() { return a; class B extends A { private int b; B( int NilaiA, int NilaiB) { seta(nilaia); b = NilaiB; public void showdata() { int x = geta(); System.out.println(x); System.out.println(b); class C { private int c; public void setc( int nilai) { c = nilai; public int getc() { return c; public void showc() { System.out.println(c); Mengirim nilai 12 ke variabel a di class A, 2 Mengirim nilai 12 ke variabel a di class A, dan nilai ke variabel b di class B Proses ke-2 Proses ke- Mengirim nilai 12 ke variabel b di class B. menggunakan seta( ), karena : a = NilaiA; akan menyebabkan ERROR, Sebab : a tidak dikenal di class B Proses ke- public class Contoh void main(string[] args) { B obj = new B(12, ); obj.showdata(); obj.seta(27); int x = obj.geta(); System.out.println(x); 1 Proses pertama Tercetak: 12 27 17
2. class A { private int a; a, hanya dikenal dalam class A int main() Class C Class B Class A protected void seta( int nilai) { a = nilai; protected int geta() { return a; class B extends A { private int b; B( int NilaiA, int NilaiB) { seta(nilaia); b = NilaiB; public void showdata() { int x = geta(); System.out.println(x); System.out.println(b); class C { private int c; public void setc( int nilai) { c = nilai; public int getc() { return c; public void showc() { System.out.println(c); public class Contoh void main(string[] args) { B obj = new B(12, ); obj.showdata(); obj.seta(27); int x = obj.geta(); System.out.println(x); Karena protected, maka : seta(), dan geta() dikenal juga o;ah clss turunan A, dalam contoh ini class B class B merupakan turunan dari class A Constructor class B Tercetak : 12 Tercetak : Tercetak : 27 int Menggunakan method geta() class C bukan merupakan turunan dari class A b Menulis : SetA(27); disini akan menyebabkan ERROR, krena SetA( ) tidak dikenal di dalam class C yang bukan turunan dari class A. a Mengerjakan instruksi yang ada dalam showsata(). Dalam showdata() ternyata mencetak : 12 dan Tercetak: 12 27 17
2. { protected int pjg, lbr, tgi; Kotak() { pjg = lbr= tgi = 0; Kotak ( int p, int l, int t ) { pjg = p; lbr =l; tgi = t; public int HitungVol() { int vol = pjg * lbr * tgi; return (vol); 2 extends Kotak { private int bjenis, berat; Kotak2(int p, int l, int t, int b ) { pjg = p; lbr = l; tgi = t; bjenis = b; public int getberat() { int isi =berat = pjg * lbr * tgi; berat = isi * bjenis; return berat; public class kotak11 void main(string[] args) { Kotak2 k = new Kotak2 (,,, 2 ); bila berat = vol * bjenis Error, karena vol tidak dikenal disini vol ada di method HitungVol() dalam int x = k.hitungvol(); int y = k.getberat(); System.out.println(x); System.out.println(y); Bandingkan dengan program no. 27 Tercetak : 120 20 18
27. { protected int pjg, lbr, tgi; int vol; Kotak() { pjg = lbr= tgi = 0; Kotak ( int p, int l, int t ) { pjg = p; lbr =l; tgi = t; public int HitungVol() { vol = pjg * lbr * tgi; return (vol); 2 extends Kotak { private int bjenis, berat; Kotak2(int p, int l, int t, int b ) { pjg = p; lbr = l; tgi = t; bjenis = b; public int getberat() { berat = vol * bjenis; return berat; public class kotak12 void main(string[] args) { Kotak2 k = new Kotak2 (,,, 2 ); int x = k.hitungvol(); int y = k.getberat(); System.out.println(x); System.out.println(y); Tercetak : 120 20 19
28. { protected int pjg, lbr, tgi; int vol; Kotak() { pjg = lbr= tgi = 0; Kotak ( int p, int l, int t ) { pjg = p; lbr =l; tgi = t; public int HitungVol() { vol = pjg * lbr * tgi; return (vol); 2 extends Kotak { private int bjenis, berat; Kotak2(int b ) { bjenis = b; public int getberat() { System.out.println(bjenis); // tercetak : System.out.println(pjg); // tercetak : 0 System.out.println(lbr); // tercetak : 0 System.out.println(tgi); // tercetak : 0 berat = vol * bjenis; // vol nilainya = 0 return berat; public class kotak1 void main(string[] args) { Kotak k = new Kotak (,, ); Kotak2 k2 = new Kotak2(); int x = k.hitungvol(); int y = k2.getberat(); System.out.println(x); // tercetak : 120 System.out.println(y); // tercetak : 0 Tercetak : 0 0 0 120 0 20
//PROGRAM 7-1 // Mendefinisikan kelas induk class Penyanyi { public void bernyanyi() { System.out.println("Karakteristik nadanya " + "belum didefinisikan"); // Mendefinisikan kelas-kelas turunan dari kelas Penyanyi class PenyanyiJazz extends Penyanyi { // melakukan override terhadap method bernyanyi() public void bernyanyi() { System.out.println("Bernyanyi dengan irama Jazz"); class PenyanyiPop extends Penyanyi { // melakukan override terhadap method bernyanyi() public void bernyanyi() { System.out.println("Bernyanyi dengan irama Pop"); class PenyanyiDangdut extends Penyanyi { // melakukan override terhadap method bernyanyi() public void bernyanyi() { System.out.println("Bernyanyi dengan irama Dangdut"); class DemoPolimorfisme1 { public static void main(string[] args) { Penyanyi p; PenyanyiJazz musmujiono = new PenyanyiJazz(); PenyanyiPop audi = new PenyanyiPop(); PenyanyiDangdut inul = new PenyanyiDangdut(); p = musmujiono; // p mengacu pada objek PenyanyiJazz // akan memanggil method pada kelas PenyanyiJazz p.bernyanyi(); p = audi; // p mengacu pada objek PenyanyiPop // akan memanggil method pada kelas PenyanyiPop p.bernyanyi(); p = inul; // p mengacu pada objek PenyanyiDangdut // akan memanggil method pada kelas PenyanyiDangdut p.bernyanyi(); 21
class Penyanyi { public void bernyanyi() {System.out.println("Karakteristik nadanya " + "belum didefinisikan ); class PenyanyiJazz extends Penyanyi { public void bernyanyi() { System.out.println("Bernyanyi dg irama Jazz"); class PenyanyiPop extends Penyanyi { public void bernyanyi() { System.out.println("Bernyanyi dg irama Pop"); class PenyanyiDangdut extends Penyanyi { public void bernyanyi() { System.out.println("Bernyanyi dg irama Dangdut"); /Mendefinisikan kelas induk Mulai dari sini Mendefinisikan kelas-kelas turunan dari kelas Penyanyi /melakukan override terhadap method bernyanyi() /melakukan override terhadap method bernyanyi() /melakukan override terhadap method bernyanyi() class DemoPolimorfisme1 void main(string[] args) { Penyanyi p; PenyanyiJazz musmujiono = new PenyanyiJazz(); PenyanyiPop audi = new PenyanyiPop(); PenyanyiDangdut inul = new PenyanyiDangdut(); p = musmujiono; p.bernyanyi(); p mengacu pada objek PenyanyiJazz akan memanggil method pada kelas PenyanyiJazz p = audi; p.bernyanyi(); p mengacu pada objek PenyanyiPop akan memanggil method pada kelas PenyanyiPop p = inul; p.bernyanyi(); p mengacu pada objek PenyanyiDangdut akan memanggil method pada kelas PenyanyiDangdut Tercetak : Bernyanyi dg irama Jazz Bernyanyi dg irama Pop Bernyanyi dg irama Dangdut Telihat : p dideklarasikan sebagai referensi ke tipe Penyanyi. Sampai disini belum terlihat apakah p merupakan penyanyi jazz, atau pop, atau angdut. Tetapi setelah p = masmujiono, maka p mengacu ke PenyanyJazz 21
//PROGRAM 7-1 class Bentuk { public double luas() { System.out.println("Tidak didefinisikan"); return 0; // Mendefinisikan kelas induk class PersegiPanjang extends Bentuk { private double panjang; private double lebar; PersegiPanjang(int p, int l) { panjang = p; lebar = l; public double luas() { System.out.println("Dalam objek persegi panjang:"); return (panjang * lebar); class BujurSangkar extends Bentuk { private double sisi; BujurSangkar(int s) { sisi = s; public double luas() { System.out.println("Dalam objek bujursangkar:"); return (sisi * sisi); class Segitiga extends Bentuk { private double alas; private double tinggi; Segitiga(int a, int t) { alas = a; tinggi = t; public double luas() { { System.out.println("Dalam objek segitiga:"); return ((alas * tinggi)/2); class Lingkaran extends Bentuk { private double jarijari; private final double PI =.11; Lingkaran(int r) { jarijari = r; public double luas() { System.out.println("Dalam objek lingkaran:"); return (PI * jarijari * jarijari); 22
class DemoPolimorfisme2 void main(string[] args) { Bentuk obj; PersegiPanjang pp = new PersegiPanjang(, ); BujurSangkar bs = new BujurSangkar(); Segitiga st = new Segitiga(, ); Lingkaran lk = new Lingkaran(2); // obj mengacu pada objek PersegiPanjang obj = pp; // akan memanggil method yang terdapat pada PersegiPanjang System.out.println("Luas : " + obj.luas()); System.out.println(); // obj mengacu pada objek PersegiPanjang obj = bs; // akan memanggil method yang terdapat pada BujurSangkar System.out.println("Luas : " + obj.luas()); System.out.println(); // obj mengacu pada objek PersegiPanjang obj = st; // akan memanggil method yang terdapat pada Segitiga System.out.println("Luas : " + obj.luas()); System.out.println(); // obj mengacu pada objek PersegiPanjang obj = lk; // akan memanggil method yang terdapat pada Lingkaran System.out.println("Luas : " + obj.luas()); System.out.println(); Tercetak : Dalam objek persegi panjang : Luas : 1.0 Dalam objek bujursangkar : Luas : 1.0 Dalam objek segitiga : Luas :.0 Dalam objek lingkaran : Luas : 12. 22