Class dan Object. PBO/Java/Ayuliana/Revisi

dokumen-dokumen yang mirip
1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

Object Oriented Programming (OOP) --Inheritance- Saniati STMIK Teknokrat, Bandar Lampung

Inheritance (Pewarisan) Pengertian dasar inheritance

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

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

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

Output : Beavis Mess With Butthead Beavis : Damn You!!! Butthead Butthead Make Revenge To Beavis Butthead : Damn You!!! Beavis

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Bahasa Pemrograman :: Polimorfism and Abstraction

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Java Application. Aplikasi: Menampilkan Tulisan

Java Application. Menampilkan Tulisan

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

Pemrograman Berorientasi. Class dan Obyek 2

Gambar 1. Deklarasi Interface MouseListener

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman Berorientasi. Polimorfisme dan Binding

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

Pemrograman Lanjut Review Class dan Object PTIIK

Pemrograman Berorientasi Objek

Pemrograman Berorientasi. Abstract & Interface

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

Polymorphism (Polimorfisme)

Modul Bahasa Pemrograman 1

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

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

PERTEMUAN 3 OBJEK DAN CLASS

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Gambar 1: Hirarki class

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

Bahasa Pemrograman :: Inheritance

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

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

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

Praktikum 3 Konsep Class, Attribute dan Method

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Bahasa Pemrograman 2.

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

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Membuat dan Menggunakan Class

Pewarisan, Polimorfisme, dan Interface

Modul II Object Oriented Programming

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

ALUR PROGRAM A.PERCABANGAN 1. IF. 2. IF-ELSE Percabangan ini untuk memilih salah satu dari dua kemungkinan kemunculan.

MODUL 1 PENGENALAN OOP

Inheritance dan Kata Kunci static

PEMROGRAMAN JAVA. Yoannita, S.Kom. Class & Method sederhana Konsep Pemrograman Berorientasi Objek. Company LOGO

IKG2I4 / Software Project I

KONSEP OOP: POLYMORPHISM

BEKERJA DENGAN JAVA CLASS LIBRARY

Bahasa Pemrograman 2.

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

Konsep Dasar Pemrograman Berorientasi Objek

subclass class manapun private default protected public package yang sama

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

2 Class dan Object (1)

INHERITANCE. Gambar 1. Kelas Hierarki Java

Bahasa Pemrograman 2.

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Pertemuan 4 Halaman 1/1. Class Inheritance

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

SUMBER BELAJAR PENUNJANG PLPG

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

Pengenalan pemrograman berorientasi obyek

Pertemuan 11 Object Oriented Program

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

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PENGENALAN OBJECT ORIENTED PROGRAMMING

Obyektif : KONTROL ALUR PROGRAM

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

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

Inheritance. Topik 5/17/2013

Pemrograman Berbasis Objek Inheritance

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

Chapter 10 Polimorphism

(INHERITANCE) Nurochman

KONSEP OOP: POLYMORPHISM

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Pemrograman Berorientasi Objek Danu Wira Pangestu

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

LAPORAN RESMI INHERITANCE

PEMROGRAMAN BERORIENTASI OBJEK

IKG2I4 / Software Project I

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

Praktikum 6 Abstract, Interface, Overloading, Overriding, dan Package

9/26/2011. Tujuan. Bekerja dengan Java Class Library. Pengenalan OOP. Pengenalan OOP. Class dan Object. Enkapsulasi

IKG2I4 / Software Project I

[Lanjutan] Nurochman

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

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

Pengenalan Java, Tipe Data, Variabel dan Operator. Putu Putra Astawa

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

C#, Programming, Object-oriented. Pengenalan C# Erick Pranata. Edisi I

Pemrograman Lanjut. Class : Deeper Look 2

Class & Object 2. Imam Fahrur Rozi

BAB VII. CLASS DAN OBJECT

Transkripsi:

Class dan Object Beberapa orang pada awalnya, biasanya tidak memperhatikan perbedaan antara class dan object. Object adalah sekumpulan software yang terdiri dari variable dan method-method terkait. Class adalah blueprint, atau prototype, yang mendefinisikan variable dan method-method pada seluruh object tertentu. Object saling berinteraksi dengan saling memanggil metode dari satu object ke object lainnya, disebut message. Perhatikan kode berikut : 1 /*Di sini definisikan sebuah class bernama NiceGuy Disimpan sebagai file NiceGuy.java dan 2 compile file tersebut, maka akan didapat file bernama NiceGuy.class*/ 3 4 public class NiceGuy { 5 private String name; 6 public NiceGuy(String name) { 7 System.out.println("Instantiation of NiceGuy named " + name); 8 this.name=name; 9 10 public void sayhello() { 11 System.out.println("Hello object oriented world..."); 12 13 public void sayhellooutloud() { 14 System.out.println("HELLOOO OBJECT ORIENTED WORLD..."); 15 16 public String getname( ) { 17 return name; 18 Gambar 1. Definisi class NiceGuy 1 /*Di sini, dibuat sebuah java application yang bernama OurFirstCode. Simpan source ini 2 dalam file bernama OurFirstCode.java, di direktori yang sama dengan tempat disimpannya 3 NiceGuy.java. Kemudian compile file tersebut, maka akan didapatkan file OurFirstCode.class. 4 Lalu jalankan aplikasi ini dengan mengetikan java OurFirstCode pada command line*/ 5 6 public class OurFirstCode { 7 public static void main(string[ ] args) { 8 NiceGuy ng= new NiceGuy ( Deitel ); 9 ng.sayhello(); 10 ng.sayhellooutloud(); 11 12 //Mengembalikan nilai yang ada pada ng 13 String NiceGuyName = ng.getname( ); 14 System.out.println( OH!!!! HE S + NiceGuyName.toUpperCase()); 15 Gambar 2. Aplikasi Java Gambar 1 merupakan contoh pendefinisian sebuah class bernama NiceGuy. Gambar 2 merupakan kode dari sebuah aplikasi java yang bernama OurFirstCode. Pada aplikasi tersebut digunakan class NiceGuy untuk membuat objek bertipe NiceGuy. PENDEFINISIAN CLASS Sintaks dalam mendefinisikan class adalah sebagai berikut : [modifier-modifier] class namaclass [extends parentclass] [implements interface] { [deklarasi field-field] [definisi method-method] PBO/Java/Ayuliana/Revisi 2009 1

Yang tertera didalam kurung siku bersifat optional. Dengan demikian, definisi minimal dari sebuah class bisa jadi seperti berikut : class Useless { //.mmm. Pada Gambar 1, dideklarasikan 1 field dan 3 method yaitu field yang bernama name dengan tipe string., secara umum sintaks untuk mendeklarasikan field adalah : type namafield; Tipe dari field bisa primitif (seperti int, boolean, float, dan sebagainya), dan bisa juga Object (seperti String, Vector, Hashtable, dan sebagainya). Method-method yang dimiliki class NiceGuy adalah 1. method sayhello() merupakan method void, 2. method sayhellooutloud( ) merupakan method void, 3. method getname() merupakan method non-void. Secara umum sintaks dalam pendefinisian sebuah method adalah : [modifier-modifier] return-type namamethod ( [parameter1, [parameter2],, [parameter N] ) { [statement-statement]; Tipe Return bisa void, tipe data primitif, atau tipe data object. Method dengan tipe return non-void harus mencantumkan statement return <something> pada akhir deklarasi method. Kata return juga dapat digunakan pada method void untuk keluar dari method tersebut. Bagian penting lain dari definisi class adalah constructor. Pendefinisian constructor dicontohkan pada baris 6-8 class NiceGuy. Constructor digunakan pada saat penciptaan objek dari sebuah class. Pendeklarasian constructor mirip dengan pendeklarasian method, dengan satu pengecualian bahwa constructor tidak mencantumkan tipe return. [modifier-modifier] namaconstructor ([parameter 1], [parameter 2],, [parameter N]) { [statement-statement]; Hal lain yang perlu dicatat tentang constructor adalah, nama constructor harus sama dengan class. Constructor tanpa parameter disebut default constructor. Jika constructor sama sekali tidak dideklarasikan, maka compiler secara otomatis akan membuatkan sebuah default constructor. Pada Gambar 2, aplikasi OurFirstCode memanfaatkan class NiceGuy untuk menciptakan sebuah objek bertipe NiceGuy dimemori. Setelah itu, reference ng dapat digunakan untuk memanggil methodmethod (mengirimkan pesan kepadanya) atau mengakses field-field dari objek yang bersangkutan. Reference adalah seperti alamat rumah sedangkan objek adalah rumahnya. dengan mengetahui alamat, maka dapat mencapai rumah yang dimaksud. INHERITANCE Salah satu topik penting dalam OOP adalah inheritance (pewarisan sifat). Dengan inheritance, pengembangan software dapat bekerja lebih efisien dan lebih cepat. Berkat inheritance dapat menggunakan definisi class yang pernah dibuat sebelumnya untuk membuat class-class lain yang menyerupai class tersebut. Perhatikan contoh berikut : 1 public class KattWorld { 2 public static void main (String args[]) { 3 Katt k = new Katt(); 4 k.speak(); 5 Anggora a = new Anggora(); 6 a.speak(); a.jump(); 7 Siam s = new Siam(); PBO/Java/Ayuliana/Revisi 2009 2

8 s.speak(); 9 10 11 class Katt { 12 public Katt() { 13 system.out.println( Katt Constructor ); 14 15 public void speak() { 16 system.out.println( ); 17 18 19 class Anggora extends Katt { 20 public void jump() { 21 system.out.println( Crash Boom ); 22 23 24 class Siam extends Katt { 25 public Siam() { 26 system.out.println( Siam Constructor ); 27 28 public void speak() { 29 system.out.println( Mmurrrr mmurrrr ); 30 Gambar 3. Kisah kucing Hal pertama yang harus diperhatikan dari gambar 3 adalah cara melakukan inheritance. Contoh diatas mempunyai satu class bernama Katt. Kemudian dibuat class lainnya yang mempunyai sifat seperti Katt, tetapi memiliki keunikan sendiri. Contohnya adalah class Anggora, yang merupakan subclass dari Katt. Kini dapat dikatakan bahwa Katt menjadi parentclass (baseclass atau superclass) dari class Anggora. Secara umum suatu class sebagai turunan dari baseclass dapat didefinisikan dengan cara : class namaclass extends baseclass { [statement-statement]; METHOD OVERRIDING Misalkan dibuat varian baru lain dari Katt dengan cara mengeong Murr.Murr Murr. varian itu diberi nama Siam. Maka Siam didefinisikan sebagai subclass dari Katt, tapi kini dilakukan metode overriding, dengan mendefinisikan ulang method speak() didalam definisi class Siam. Jika dijalankan akan menghasilkan output : Crash Boom Siam constructor Mmurrr mmurrr Sewaktu berlangsung konstruksi/instantiasi objek bertipe Siam, default constructor Katt dijalankan terlebih dahulu. Ini menunjukkan bahwa default, kecuali diminta yang lain, dari baseclass secara otomatis dijalankan terlebih dahulu sebelum constructor dari class yang bersangkutan dijalankan. PBO/Java/Ayuliana/Revisi 2009 3

THE LAST SUPER Didefinisikan dua varian baru dari Katt, yaitu Alley dan Lucifer : 1 public class KattWorldReturn { 2 public static void main (String args[]) { 3 Alley al = new Alley(2); 4 al.speak(); 5 Lucifer lucy = new Lucifer(1, Thou shalt be killed!!! ); 6 lucy.speak(); 7 8 9 class Alley extends Katt { 10 int illnessseverity; 11 public Alley(int sick) { 12 illnessseverity = sick; 13 14 public void speak() { 15 super.speak(); 16 for (int i=0; i < illnessseverity; i++) { 17 system.out.println( eeerrrggghh.. <sendawa> ); 18 19 20 21 class Lucifer extends Alley { 22 string curse; 23 public Lucifer(int sick, string cs) { 24 super(sick); 25 curse = cs; 26 27 public void speak() { 28 super.speak(); 29 system.out.println(curse); 30 Gambar 4. Kisah kucing---return Jika dijalankan akan menghasilkan output : eeerrrggghh.. <sendawa> eeerrrggghh.. <sendawa> eeerrrggghh.. <sendawa> Thou shalt be killed CONTOH 1 : 1 class A { 2 int i; 3 A(){ System. out. print ("constructor A Tanpa Parameter\n"); 4 A(int a){ 5 System. out. print ("\n"); 6 System. out. print ("i in A = " + a + '\n'); 7 8 class B extends A { 9 int i; 10 B (){ System. out. print ("constructor B Tanpa Parameter\n"); 11 PBO/Java/Ayuliana/Revisi 2009 4

12 B (int a, int b) { 13 super(b); 14 super.i = b; i = a; 15 System. out. print ("constructor B Dengan Parameter\n"); 16 void show() { 17 System. out. println("i in superclass : "+ super.i); 18 System. out. println("i in subclass : "+ i); 19 20 class C extends B { 21 C(){ super(3,4); 22 System. out. print ("constructor C Tanpa Parameter\n"); 23 24 class SuperSub { 25 public static void main (String args[ ]) { 26 C SubOb = new C(); 27 B SubOb2 = new B(1,3); 28 SubOb.show(); 29 OUTPUT : i in A = 4 constructor B Dengan Parameter constructor C Tanpa Parameter i in A = 3 constructor B Dengan Parameter i in superclas : 4 i in subclass : 3 CONTOH 2 : 1 class A { 2 int i; 3 A(){ System. out. print ("constructor A Tanpa Parameter\n"); 4 A(int a){ 5 System. out. print ("\n"); 6 System. out. print ("i in A = " + a + '\n'); 7 8 class B extends A { 9 int i = 6; 10 B (){ super(5); 11 super.i= i*2; 12 System. out. print ("constructor B Tanpa Parameter\n"); 13 B (int a, int b) { 14 super.i = b; i = a; 15 System. out. print ("constructor B Dengan Parameter\n"); 16 void show() { 17 System. out. println("i in superclass : "+super.i); 18 System. out. println("i in subclass : "+ i); 19 20 class C extends B { 21 C(){ super(); 22 System. out. print ("constructor C Tanpa Parameter\n"); PBO/Java/Ayuliana/Revisi 2009 5

23 class SuperSub { 24 public static void main (String args[]) { 25 C SubOb = new C(); 26 B SubOb2 = new B(2,4); 27 B SubOb3 = new B(); 28 SubOb.show(); 29 OUTPUT : i in A = 5 constructor B Tanpa Parameter constructor C Tanpa Parameter constructor A Tanpa Parameter constructor B Dengan Parameter i in A = 5 constructor B Tanpa Parameter i in superclas : 12 i in subclass : 6 PBO/Java/Ayuliana/Revisi 2009 6