Bab. Contoh-01. class Kotak { int pjg; // panjang int lbr; // lebar int tgi; // tinggi } Kotak pjg lbr tgi

dokumen-dokumen yang mirip
//PROGRAM 7-9. class A { A() { //PROGRAM System.out.println("Constructor dari kelas A"); // Mendefinisikan kelas abstract. abstract class A {

PEWARISAN SIFAT OBYEK

class contohj01 { public static void main (String[] args ) { int pjg, lbr, tgi; pjg = 5; lbr = 4; tgi = 3; int Vol = pjg * lbr * tgi ;

class contohj02 { public static void main (String[] args ) { int pjg, lbr, tgi; pjg = 5; lbr = 4; tgi = 3; int Vol = pjg * lbr * tgi ;

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

//PROGRAM class contohbiner { System.out.println("Bentuk biner dari 1 : " + Integer.toBinaryString(1));

Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs

//PROGRAM 5-8. class Kotak { double panjang; double lebar; double tinggi; // Mendefinisikan constructor untuk kelas Kotak. Kotak() { panjang = 4;

//constraktor awal class Kotak6 { double panjang;

Projek Kelompok 4. //tipe array nama array={nilai elemen 1,...,elemen N}; Fajar[] a = {new Fajar("Hallo"), new Fajar("Apa"), new Fajar("Kabar")};

BAB VII. CLASS DAN OBJECT

Inheritance (Pewarisan) Pengertian dasar inheritance

PAKET DAN INTERFACE MUH. IZZUDDIN MAHALI, M.CS. PT. Elektronika FT UNY

Paket dan Interface. Nur Hasanah, M.Cs

Pemrograman Berbasis Objek (Polimorfisme)

LAPORAN RESMI INHERITANCE

PEWARISAN D E W I S A R T I K A, M. K O M

IKG2I4 / Software Project I

INHERITANCE. Gambar 1. Kelas Hierarki Java

Membuat dan Menggunakan Class

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

KONSEP OOP: PEWARISAN / INHERITANCE

Pemrograman Berorientasi Objek (PBO) By : Jeffry Montolalu, ST PERTEMUAN XII KELAS DAN OBYEK

Bahasa Pemrograman :: Polimorfism and Abstraction

KONSEP OOP: PEWARISAN / INHERITANCE

Method yang ada pada parent class(superclass) didefinisikan kembali oleh kelas anaknya (subclass).

Praktikum Pemrograman. Pengantar OOP STMIK AMIKOM YOGYAKARTA. Bayu Setiaji, S.Kom

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

BAB 6 INHERITANCE Tujuan:

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Inheritance. Topik 5/17/2013

Pemrograman Berbasis Objek Inheritance

Pemrograman Berorientasi Objek INHERITANCE

IKG2I4 / Software Project I

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

INTERAKSI ANTAR OBJECT

BAB II VARIABEL DAN TIPE DATA

A. TUJUAN PEMBELAJARAN 1. Mengenal berbagai macam bentuk operator 2. Memahami penggunaan berbagai macam jenis operator yang ada di Java

Modul Bahasa Pemrograman 1

Inheritance dan Kata Kunci static

Overriding. Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuan: subclass memiliki tingkah laku yang lebih

Percabangan & Perulangan

Abstract Class dan Interface. Viska Mutiawani, M.Sc

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

LAPORAN V PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

(INHERITANCE) Nurochman

OBJECT ORIENTED PROGRAMMING (OOP)

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

Dasar-Dasar OOP di Java

PEMROGRAMAN JAVA. Operator. Yoannita. Special thanks : Some slides are from Josephine Petrina K & Gasim Alkaff

Method / Fungsi / Sub Program

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

Pemrograman Berorientasi Objek (PBO) By : Jeffry Montolalu, ST PERTEMUAN XIII POLYMORPHISM

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

PROJECT KELOMPOK 5 R5L. package polimorfisme; interface Poligon { // Deklarasi methode. double Luas(); double Keliling(); String displayinfo();

PEMROGRAMAN JAVA. Operator. Yoannita

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

SUMBER BELAJAR PENUNJANG PLPG

Pemrograman Berorientasi Objek

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Bahasa Pemrograman :: Inheritance

COMPOSITION FAKULTAS TEKNOLOGI INFORMASI. PBO Lanjutan UNIVERSITAS BUDI LUHUR. Kelas (Lanjutan) HAL : 1

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

subclass class manapun private default protected public package yang sama

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

Pemrograman Lanjut Review Class dan Object PTIIK

private double panjang, lebar; // Definisi method // Konstruktor public SegiEmpat(double p, double l) {

Dasar-Dasar OOP di Java

MODUL 1. Class, Object, Constructor dan Method

1.Tujuan. 2. Latar Belakang. Mendefinisikan superclasses dan subclasses Override method dari superclasses Membuat method final dan class final

Kelompok 5. import javax.swing.joptionpane; public class enkapsulasi. public static void main (String[]args)

Bahasa Pemrograman 2.

Beberapa Contoh Penggunaan Array

PERTEMUAN 5 OOP. Objektif : Praktikan mengetahui konsep OOP. Praktikan dapat membuat program sederhana dengan konsep OOP.

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

Modul 2 Dasar Pemrograman Java. Oleh: Mike Yuliana PENS-ITS

Gambar 1: Hirarki class

Keyword this untuk memanggil private String pengarang; private String judul;

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK (PBO) MODUL 5 INTERFACE

Pewarisan (Inheritance)

2 TIPE DATA DAN VARIABEL

Polymorphism. Oleh : Agus Priyanto, M.Kom

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

SEKUEN, PERCABANGAN & PENGULANGAN

Pertemuan 4 Halaman 1/1. Class Inheritance

Jobsheet 09. Overloading and Overriding Method

Penjebakan Eksepsi. Nur hasanah, M.Cs

Array. Pengantar. int a, b, c, d, e;

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

BAHASA PEMROGRAMAN JAVA

[Lanjutan] Nurochman

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Elemen Dasar Dalam Bahasa Java

KONSEP OOP: PEWARISAN / INHERITANCE

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

Transkripsi:

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