Konstruktor dan Polimorfisme

dokumen-dokumen yang mirip
INHERITANCE. Gambar 1. Kelas Hierarki Java

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

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

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

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

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

Inheritance (Pewarisan) Pengertian dasar inheritance

Pemrograman Berorientasi Objek Danu Wira Pangestu

Inheritance dan Kata Kunci static

8 - Overriding dan Overloading

PRAKTIKUM I Class dan Obyek

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

Pewarisan (Inheritance)

Pemrograman Berorientasi. Abstract & Interface

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

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

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

MODUL PRAKTIKUM BERORIENTASI OBJEK NINF615 SEMESTER GASAL 2016/2017 PROGRAM STUDI S1 TEKNIK INFORMATIKA

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

Abstract Class dan Interface. Viska Mutiawani, M.Sc

INTERAKSI ANTAR OBJECT

Pemrograman Berorientasi Objek INHERITANCE

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Tutorial FDM Nurul Huda 2008, bundled by samsonasik. Modul Java 1

Pemrograman Berorientasi. Polimorfisme dan Binding

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Konsep Pemrograman Berorientasi Pada Objek Dengan. Java Netbeans

IKG2I4 / Software Project I

Pemrograman Berorientasi. Class dan Obyek 2

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

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

Pemrograman Berorientasi Objek

LAPORAN RESMI INHERITANCE

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

Overriding Method Overloading Method Class(iii) [Superclass and subclass] [constructor overloading] Keyword Super

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

PERTEMUAN 13 PERANCANGAN BERORIENTASI OBJEK UNTUK MULTI KELAS

KONSEP OOP: POLYMORPHISM

KONSEP OOP: POLYMORPHISM

PERTEMUAN 3 OBJEK DAN CLASS

Bahasa Pemrograman 2.

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

Pemrograman Berorientasi. Inheritance

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

PEMROGRAMAN BERORIENTASI OBJEK

Class & Object 2. Imam Fahrur Rozi

Bahasa Pemrograman :: Polimorfism and Abstraction

Pewarisan(Inheritance) Oleh: Mike Yuliana PENS-ITS

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

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

[Lanjutan] Nurochman

Modul Bahasa Pemrograman 1

SILABUS MATA KULIAH PEMROGRAMAN JAVA

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

PEMROGRAMAN BERORIENTASI OBJEK

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

BAB 12 ENKAPSULASI, INHERITANCE DAN POLIMORPISME

Polymorphism. Oleh : Agus Priyanto, M.Kom

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

Chapter 10 Polimorphism

Bahasa Pemrograman 2.

Object Oriented Programming 1

Overriding, Overloading, Polymorphism. Pertemuan 10 Pemrograman Berbasis Obyek Dr. Rodiah

Bahasa Pemrograman :: Inheritance

Praktikum 3 Konsep Class, Attribute dan Method

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

KONSEP OOP: PEWARISAN / INHERITANCE

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

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN

UNIVERSITAS GUNADARMA

PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman Berorientasi Obyek. Ramos Somya

ENKAPSULASI. 1. Kompetensi Setelah kegiatan perkuliahan selesai, mahasiswa diharapkan dapat:

KONSEP OOP: PEWARISAN / INHERITANCE

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

BAB VII. CLASS DAN OBJECT

Pemrograman Berbasis Objek Inheritance

PEMROGRAMAN I. By : Sri Rezeki Candra Nursari

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

subclass class manapun private default protected public package yang sama

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

BAB IV KONSEP PEMROGRAMAN BERORIENTASI OBJEK

Gambar 1: Hirarki class

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

Modul 2. [access specifier] [tipe data] [nama variabel];

OVERLOADING, CONSTRUCTOR DAN DESTRUCTOR. Dewi Sartika, M.Kom

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

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

TUGAS DASAR PEMROGRAMAN KELAS C DOSEN PENGAMPU : IKA ATSARI DEWI, STP, MP

MODUL 1 PRAKTIKUM PEMROGRAMAN BERORIENTASI OBYEK(PBO) KELAS DAN OBJEK. TGL PRAKTIKUM : 24 September 2012 :ACHMAD FAJAR NORULLAH NRP :

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

Membuat dan Menggunakan Class

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

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

Java Generic & Collection

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

Pemograman Berorientasi Objek. Week 4 Initialization dan Instance dalam Kelas

Inheritance. Topik 5/17/2013

Transkripsi:

Konstruktor dan Polimorfisme Konstruktor Konstruktor merupakan metode yang digunakan untuk memberi nilai awal pada objek saat pertama kali objek tersebut dibuat. Konstruktor akan otomatis dibuat saat kata kunci new dipanggil. Terdapat beberapa karakteristik untuk penamaan konstruktor: 1. Nama konstruktor sama dengan nama kelas 2. Tidak menggunakan kata kunci void 3. Tidak dapat mengembalikan nilai Berikt merupakan contoh kode untuk konstruktor: //berkas : CarConstructor.java public class CarConstructor { //atribut String color; int builtyear; //konstruktor dengan dua parameter public CarConstructor(String color, int builtyear){ this.color=color; this.builtyear=builtyear; //metode void info(){ System.out.println("Color: " + color); System.out.println("Year: " + builtyear); //berkas : CarConstructorAction.java public class CarConstructorAction{ public static void main(string[] args){ //membuat objek mycar dan yourcar dengan nilai awal yang di set dengan konstruktor CarConstructor mycar = new CarConstructor("Merah", 2013); mycar.info(); CarConstructor yourcar = new CarConstructor("Biru", 1970); yourcar.info(); Saat dieksekusi dan dijalankan kedua berkas ini akan menghasilkan: C:\Program> javac CarConstructorAction.java C:\Program> java CarConstructorAction Color: Merah Year: 2013 Color: Biru Year: 1970 C:\Program >

Polimorfisme Menurut kamus definisi polimorfisme yang mengacu pada prinsip dalam biologi adalah di mana suatu organisme atau spesies dapat memiliki berbagai bentuk atau tingkatan. Prinsip ini juga dapat diterapkan untuk pemrograman berorientasi objek secara khusus disini adalah bahasa Java. Dalam Java subclass dari kelas dapat menentukan perilaku mereka sendiri yang unik dan namun dapat berbagi beberapa fungsi yang sama dari super kelas. Pendek kata sebuah objek dapat memiliki bentuk yang berbeda. Implementasi dari konsep polimorfisme yaitu: 1. Overloading : Mengunakan satu nama untuk tiap-tiap metode dengan parameter yang berbeda 2. Overriding: Terjadi ketika subkelas memiliki metode yang sama persis dengan metode yang ada pada super kelasnya. Polimorfisme - Overloading Overloading terjadi ketika terdapat minimal dua metode dengan nama yang sama tetapi memiliki jenis dan jumlah parameter yang berbeda. Hal ini dapat terjadi jika dua metode itu terdapat dalam satu kelas atau keduanya diwariskan, atau satu metode diwariskan dan satu metode dideklarasikan dalam kelas itu sendiri. Overloading Terhadap Konstruktor Merupakan suatu mekanisme untuk membuat berbagai macam konstruktor pada satu kelas. Berikut merupakan contoh kode overloading terhadap konstruktor yang terjadi dalam satu kelas yang sama:

//berkas : Bicycle.java public class Bicycle{ int speed; int gear; //konstruktor dengan parameter speed dan gear public Bicycle(int speed, int gear){ this.speed = speed; this.gear = gear; //konstructor dengan parameter gear public Bicycle(int gear){ this.gear = gear; //konstructor tanpa parameter public Bicycle(){ //metode void info(){ System.out.println("Speed: " + this.speed); System.out.println("Gear: " + this.gear); Yang membedakan ketiga konstruktor diatas adalah jumlah dan tipe data parameter. //berkas : BicycleOverloading.java public class BicycleOverloading{ public static void main(string[] args){ //menggunakan konstruktor dengan parameter speed dan gear Bicycle mybike = new Bicycle(10, 1); mybike.info(); //menggunakan konstruktor dengan parameter gear Bicycle yourbike = new Bicycle(1); yourbike.info(); //menggunakan konstruktor tanpa parameter Bicycle nnbike = new Bicycle(); nnbike.info(); Overloading Terhadap Metode Selain dapat dilakukan pada konstruktor Overloading juga dapat dilakukan terhadap metode non konstruktor.

//berkas : KelasKuadrat.java public class KelasKuadrat{ //metode public double kuadrat(double input){ return input*input; public int kuadrat(int input){ return input*input; public double kuadrat(string input){ double bilangan; bilangan= Double.valueOf(input).doubleValue(); //mengubah nilai string menjadi double return bilangan*bilangan; //berkas : ObjekKuadrat.java public class ObjekKuadrat { KelasKuadrat pangkatdua = new KelasKuadrat(); System.out.println(pangkatDua.kuadrat(25.0)); System.out.println(pangkatDua.kuadrat(25)); System.out.println(pangkatDua.kuadrat("25")); Pada kode diatas terdapat tiga buah metode yang sama dengan jumlah parameter yang sama akan tetapi berbeda tipe data saja, hal tersebut merupakan salah satu bentuk overloading. Jika kedua kode diatas dieksekusi maka akan mendapatkan hasil berikut: C:\Program> javac ObjekKuadrat.java C:\Program> java ObjekKuadrat 625.0 625 625.0 C:\Program>

//berkas : KelasSiswa.java public class KelasSiswa { // Atribut String nama; String nim; // Metode public void setdata(string nama, String nim) { this.nama = nama; this.nim = nim; public void setdata(string nama) { this.nama = nama; public void cetakdata() { System.out.println("Nim siswa = " + nim); System.out.println("Nama siswa = " + nama); //berkas : KegiatanSiswa.java public class KegiatanSiswa extends KelasSiswa { // Atribut String kegiatan; // Metode public void setkegiatan(string kegiatan) { this.kegiatan = kegiatan; public void cetakkegiatan() { System.out.println("Kegiatan siswa = " + kegiatan); //Metode utama KegiatanSiswa ksiswa1 = new KegiatanSiswa(); ksiswa1.setdata("boni Mangunjiwo","A11.2013.00001"); ksiswa1.setkegiatan("dncc"); ksiswa1.cetakdata(); ksiswa1.cetakkegiatan(); KegiatanSiswa ksiswa2 = new KegiatanSiswa(); ksiswa2.setdata("rubi Arjuna"); ksiswa2.setkegiatan("basket"); ksiswa2.cetakdata(); ksiswa2.cetakkegiatan(); C:\Program> javac KegiatanSiswa.java C:\Program> java KegiatanSiswa Nim siswa = A11.2013.00001 Nama siswa = Boni Mangunjiwo Kegiatan siswa = DNCC Nim siswa = null Nama siswa = Rubi Arjuna Kegiatan siswa = Basket C:\Program>

//berkas : KelasSiswa2.java public class KelasSiswa2 { // Atribut String nama; String nim; // Metode public void setdatasiswa(string nama, String nim) { this.nama = nama; this.nim = nim; public void cetakdatasiswa() { System.out.println("Nim siswa = " + nim); System.out.println("Nama siswa = " + nama); //berkas : KegiatanSiswa2.java public class KegiatanSiswa2 extends KelasSiswa2 { // Atribut String kegiatan; // Metode public void setdatasiswa(string nama, String nim, String kegiatan) { this.nama = nama; this.nim = nim; this.kegiatan = kegiatan; public void cetakdatakegitansiswa () { System.out.println("Nim siswa = " + nim); System.out.println("Nama siswa = " + nama); System.out.println("Kegiatan siswa = " + kegiatan); //Metode utama KegiatanSiswa2 ksiswa1 = new KegiatanSiswa2(); ksiswa1.setdatasiswa("milka Susanti","A11.2013.00001","Paduan Suara"); ksiswa1. cetakdatakegitansiswa(); KegiatanSiswa2 ksiswa2 = new KegiatanSiswa2(); ksiswa2.setdatasiswa("putri Rahayu","A11.2013.00001"); ksiswa2.cetakdatasiswa(); Polimorfisme Overriding Keuntungan dari melakukan overriding metode adalah ketika sebuah sub kelas mewarisi metode dari super kelas, dan metode tersebut masih terbatas penggunaannya, sub kelas dapat memodifikasi metode tersebut ketika dibutuhkan. Ciri dari overriding adalah memiliki nama metode, tipe metode, jumlah parameter, nama parameter, tipe parameter yang sama dengan metode yang akan di overide. Perhatikan contoh kode berikut ini:

//berkas : SuperKelas.java public class SuperKelas { public void metodecetak() { System.out.println("Di cetak di super kelas "); //berkas : SubKelas.java public class SubKelas extends SuperKelas { // override metodecetak in Superclass public void metodecetak() { System.out.println("Di cetak di sub kelas "); SubKelas s = new SubKelas(); s.metodecetak(); Jika kedua kode tersebut dieksekusi maka akan menghasilkan tampilan seperti berikut: C:\Program> javac SubKelas.java C:\Program> java SubKelas Di cetak di sub kelas C:\Program > Hidding //berkas : Animal.java public class Animal { //metode kelas public static void testclassmethod() { System.out.println("The class" + " method in Animal."); //metode instan public void testinstancemethod() { System.out.println("The instance " + " method in Animal.");

//berkas : Cat.java public class Cat extends Animal { //metode kelas Cat (sub kelas) memiliki kesamaan dengan metode kelas Animal (super // kelas) sehinga menyembunyikan metode kelas Animal (super kelas) public static void testclassmethod() { System.out.println("The class method" + " in Cat."); //metode instan public void testinstancemethod() { System.out.println("The instance method" + " in Cat."); Cat mycat = new Cat(); Animal myanimal = mycat; Animal.testClassMethod(); //memaggil metode kelas pada super kelas myanimal.testinstancemethod(); C:\Program> javac Cat.java C:\Program> java Cat The class method in Animal. The instance method in Cat. C:\Program >

Sumber dan Referensi: Dasar Pemrograman Java 2, Abdul kadir, hal 160-168 http://docs.oracle.com/javase/tutorial/java/javaoo/constructors.html http://docs.oracle.com/javase/tutorial/java/iandi/polymorphism.html http://docs.oracle.com/javase/tutorial/java/iandi/override.html