OOP Java. 05 Encapsulation & Inheritance

dokumen-dokumen yang mirip
KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

INTERAKSI ANTAR OBJECT

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

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

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

IKG2I4 / Software Project I

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

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

subclass class manapun private default protected public package yang sama

Pemrograman Berorientasi Objek

Praktikum 3 Konsep Class, Attribute dan Method

Inheritance dan Kata Kunci static

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Dasar-Dasar OOP di Java

Pemrograman Berorientasi. Class dan Obyek 2

Inheritance (Pewarisan) Pengertian dasar inheritance

KONSEP OOP: PEWARISAN / INHERITANCE

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

KONSEP OOP: PEWARISAN / INHERITANCE

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

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

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

Inheritance. Topik 5/17/2013

Pemrograman Berbasis Objek Inheritance

Class & Object 2. Imam Fahrur Rozi

Pemrograman Berorientasi. Abstract & Interface

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

[Lanjutan] Nurochman

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

Bahasa Pemrograman 2.

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Bab 8. Dasar-Dasar OOP

Dasar-Dasar OOP di Java

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

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

Pemrograman Lanjut. Constructor. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

Bahasa Pemrograman :: Polimorfism and Abstraction

UNIVERSITAS GUNADARMA

Pemrograman Berorientasi. Inheritance

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

PRAKTIKUM I Class dan Obyek

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

IKG2I4 / Software Project I

LAPORAN RESMI INHERITANCE

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

Bahasa Pemrograman :: Inheritance

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

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

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

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

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

Membuat dan Menggunakan Class

KONSEP OOP: PEWARISAN / INHERITANCE

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Ismail Wibi Wicaksono

Pewarisan atau Inheritance

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Dalam penulisan sebuah kelas di java, ada beberapa aturan yang biasanya dilakukan. Nama kelas tidak menggunakan tanda spasi, dash (-) dan tanda lain.

BAB 6 INHERITANCE Tujuan:

Konsep Dasar Pemrograman Berorientasi Objek

Jobsheet 09. Overloading and Overriding Method

Bahasa Pemrograman 2.

Java Application. Aplikasi: Menampilkan Tulisan

MODUL 1 PENGENALAN OOP

Pemrograman Lanjut Review Class dan Object PTIIK

Modul Bahasa Pemrograman 1

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

Dasar Pemrograman Java

BAB II TEORI DAN KONSEP PEMROGRAMAN BERBASIS OBJECT

Object Oriented Programming 1

Pengenalan pemrograman berorientasi obyek

Pemrograman Berorientasi Objek Danu Wira Pangestu

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

Bahasa Pemrograman 2.

Pemrograman Berorientasi Obyek. Ramos Somya

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

8 - Overriding dan Overloading

Pemrograman Lanjut Tipe Data dan Constructor PTIIK

Daftar Isi. Daftar Isi... ii MODUL 1 PENGENALAN OOP Pengantar Class Atribut Method This Access Modifier...

MODUL 1. Class, Object, Constructor dan Method

Praktikum 6 Class Design (Encapsulation)

Pemrograman Berorientasi. Polimorfisme dan Binding

Pemrograman Lanjut. Class : Deeper Look 2

Pemrograman Berorientasi Objek INHERITANCE

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

Inheritance (Pewarisan Sifat) Imam Fahrur Rozi

Other OOP Basic. Viska Mutiawani, M.Sc

PEMROGRAMAN BERORIENTASI OBJEK

Pemograman Berorientasi Objek. Week 3 Abstrak dan Interface dalam suatu kelas

OBJECT ORIENTED PROGRAMMING (OOP)

Modul 4: Lebih Dalam lagi tentang Class, Objek dan Method

KONSEP OOP: POLYMORPHISM

(INHERITANCE) Nurochman

Pewarisan (Inheritance)

OBJECT, CLASS DAN METHOD. 1. Mengetahui pengertian dari objek & class 2. Dapat membuat program sederhana dari java dengan menggunakna objek dan class

Parent dan Child di Java

Other OOP Basic. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah

INHERITANCE. Gambar 1. Kelas Hierarki Java

Transkripsi:

OOP Java 05 Encapsulation & Inheritance

Materi yg akan dibahas : Encapsulation Access control modifier Get & set methods Constructor Inheritance Inheritance Keyword this & super Overloading Overloading Constructors Overloading Methods

Encapsulation ( pembungkusan ) Atribut & method digabung menjadi satu kelas / objek Akses terhadap atribut & method dapat diatur akses control modifier & get/set method

Access control modifier Modifier =class private default protected public ya ya ya ya =package subclass universe tdk ya ya ya tdk tdk tdk tdk ya ya tdk ya Modifier default berlaku jika tidak ditulis modifier lain (tanpa ditulis secara eksplisit). Access control subclass tidak boleh lebih sempit / tertutup dari kelas induknya

Get / set method ( 1 ) public class Mobil1 { private String tipe; private int jumlahroda; public void settipe(string ptipe) { tipe = ptipe; public void setjumlahroda(int pjumlah_roda) { jumlahroda = pjumlah_roda; public String gettipe() { return tipe; public int getjumlahroda() { return jumlahroda;

Get / set method ( 2 ) Latihan : Buatlah kelas TestMobil1 dan coba mengakses atribut kelas Mobil1 secara langsung & menggunakan get & set method. Good practice : Biasakan membuat & menggunakan get / set method.

Get / set method ( 3 ) public class TestMobil1 { public static void main(string[] args) { Mobil1 mbl = new Mobil1(); mbl.tipe = Jeep ; mbl.jumlahroda = 4; System.out.println( Tipe : + mbl.tipe); System.out.println( Jml Roda : + mbl.jumlahroda); mbl.settipe( Bus Bus ); mbl.setjumlahroda(6); System.out.println( Tipe : + mbl.gettipe()); System.out.println( Jml Roda : + mbl.getjumlahroda());

Get / set method ( 4 ) Bagaimana caranya mengakses atribut yg aksesnya terbatas? jawab : menggunakan get (ambil) & set (ubah) method. Get & set method dibuat didalam kelas supaya pihak luar tidak mengakses atribut secara langsung, sehingga kontrol & konsistensi dapat dijaga. Get & set method biasanya memiliki akses kontrol public.

Constructor ( 1 ) public class Mobil2 { private String tipe; private int jumlahroda; public Mobil2() { //default constructor tipe = tidak diketahui ; jumlahroda = 4; System.out.println( Mobil2() dijalankan ); public Mobil2(String ptipe, int pjroda) { //user-defined constructor tipe = ptipe; jumlahroda = pjroda; System.out.println( Mobil2(String ptipe, int pjroda) dijalankan ); // get & set methods letakkan disini

Constructor ( 2 ) public class TestMobil2 { public static void main(string[] args) { Mobil2 mob1 = new Mobil2(); // default constructor dipanggil Mobil2 mob2 = new Mobil2( SUV SUV,, 4); //user-defined System.out.println( Tipe mobil 1 : + mob1.gettipe()); System.out.println( Jml roda mobil 1 : + mob1.getjumlahroda()); mob1.settipe( Truck Truck ); mob1.setjumlahroda(6); System.out.println( Tipe mobil 1 : + mob1.gettipe()); System.out.println( Jml roda mobil 1 : + mob1.getjumlahroda()); System.out.println( Tipe mobil 2 : + mob2.gettipe()); System.out.println( Jml roda mobil 2 : + mob2.getjumlahroda());

Constructor ( 3 ) Method khusus yg otomatis dijalankan ketika objek dibuat dari kelasnya. Memiliki nama yg sama dengan nama kelasnya Dalam satu kelas bisa terdapat beberapa konstruktor (dengan parameter yg berbeda2). Default constructor adalah constructor yg tidak memiliki parameter. Format constructor : public <nama_kelas>(<parameter>) { Constructor dapat digunakan untuk inisialisasi

Constructor ( 4 ) Lakukanlah hal berikut : Cobalah jalankan Mobil2 & TestMobil2, amatilah constructor mana saja yg dijalankan. Cobalah buang (ubah menjadi komentar) semua constructor dan jalankan kelas Testnya. Apa yg terjadi? Cobalah buang (ubah menjadi komentar) default constructor dan jalankan kelas Testnya. Apa yg terjadi? Jika tidak terdapat konstruktor secara eksplisit, maka secara otomatis dibuatkan sebuah default constructor. Sebaliknya jika terdapat constructor, maka default constructor tidak akan dibuatkan secara otomatis. Good practice : Biasakan membuat semua constructor (default, user defined dg 1 s/d n ( parameter

Inheritance ( 1 ) Komputer Desktop Notebook Server Games Multimedia studentnb subnb Internet LAN MultimediaNb Video Audio MailSrv ChatSrv Graphic WebSrv GameSrv Arcade RPG

Inheritance ( 2 ) public class Angkot extends Mobil2 { private String jurusan; public Angkot() { System.out.println( Angkot() dijalankan ); //buat get & set untuk atribut jurusan //---------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------- public class TestAngkot { public static void main(string[] args) { Angkot a = new Angkot(); a.settipe( Kijang Kijang ); a.setjumlahroda(4); a.setjurusan( Pasteur Stasiun Hall ); System.out.println( Angkot : + a.getjurusan() + + a.gettipe() + + a.getjumlahroda();

Inheritance ( 3 ) public class MobilSport extends Mobil2 { private String nama; private int maxspeed; public MobilSport() { //default constructor nama = nama mobil sport ; maxspeed = 300; System.out.println( MobilSport() dijalankan ); public MobilSport(String pnama, int pmaxspeed) { //user-defined constr super( sport sport,, 4); nama = pnama; maxspeed = pmaxspeed; System.out.println( MobilSport(String pnama, int pmaxspeed) dijalankan ); public MobilSport(String pnama) { //user-defined constr this(pnama, 350); System.out.println( MobilSport(String pnama) dijalankan ); // get & set methods untuk atribut nama & maxspeed dibuat disini

Inheritance ( 4 ) public class TestMobilSport { public static void main(string[] args) { MobilSport mbl1 = new MobilSport(); MobilSport mbl2 = new MobilSport( Toyota Celica,, 250); MobilSport mbl3 = new MobilSport( Ferrari F50 ); System.out.println( Tipe mbl1 : + mbl1.gettipe()); System.out.println( Jumlah roda mbl1 : + mbl1.getjumlahroda()); System.out.println( Nama mbl1 : + mbl1.getnama()); System.out.println( Max Speed mbl1 : + mbl1.getmaxspeed()); System.out.println( Tipe mbl2 : + mbl2.gettipe()); System.out.println( Jumlah roda mbl2 : + mbl2.getjumlahroda()); System.out.println( Nama mbl2 : + mbl2.getnama()); System.out.println( Max Speed mbl2 : + mbl2.getmaxspeed()); System.out.println( Tipe mbl3 : + mbl3.gettipe()); System.out.println( Jumlah roda mbl3 : + mbl3.getjumlahroda()); System.out.println( Nama mbl3 : + mbl3.getnama()); System.out.println( Max Speed mbl3 : + mbl3.getmaxspeed());

Inheritance ( 5 ) Inheritance (pewarisan) digunakan pada kelas2 yg memiliki hubungan generalization-specification atau whole-part. Mewarisi semua atribut & method kelas induknya. Menggunakan keyword extends. Keyword super( ) digunakan untuk memanggil konstruktor kelas induknya (jika diperlukan). Jika digunakan harus merupakan statement pertama dari constructor. Keyword this( ) digunakan untuk memanggil konstruktor lain dikelas yg sama. Keyword super.[atribut method()] : memanggil atribut / method dari kelas induknya Keyword this.[atribut method()] : memanggil atribut / method dari objek / kelas yg sama

Overloading ( 1 ) Overloading : constructor / method dalam kelas yg sama yg memiliki nama sama, tetapi signature (tipe / jumlah / urutan parameter) berbeda. Ketika dipergunakan, method mana yg akan dipanggil ditentukan secara otomatis berdasarkan kesesuaian tipe / jumlah / urutan parameternya. Perhatian : jangan tertukar dengan overriding. Overriding : method pada kelas anak yg memiliki nama, return type & parameter yg sama dengan method pd kelas induknya.

Overloading Constructors ( 2 ) public class Kotak { private String id; private int panjang; private int lebar; public Kotak(String pid, int p, int l) { id = pid; panjang = p; lebar = l; public Kotak(int p, int l) { this("unknown", p, l); //id = "Unknown"; //panjang = p; //lebar = l; public Kotak() { this(0, 0); //id = "Unknown"; //panjang = 0; //lebar = 0; this(0,0) memanggil constructor Kotak(int p, int ( l this( Unknown, p, l) memanggil constructor Kotak(String pid, int p, int l)

Overloading Constructors ( 3 ) Meng-Overload Constructor sering terjadi karena didalam sebuah kelas biasanya terdapat beberapa konstruktor. Reference this dapat digunakan untuk meneruskan pemanggilan ke constructor yang lain dalam kelas yang sama. Berguna supaya tidak mengulang kode yang sama di setiap constructor.

Overloading Methods ( 4 ) public class Mahasiswa { private String nrp = 0472001 ; private String nama = Andri ; private int nilai_akhir = 80; private char nilai_huruf = A ; public class TestMahasiswa { public static void main(string[] ar) { Mahasiswa mhs = new Mahasiswa(); //terusin ya kan udah bisa. //constructors //methods public void Cari(String pnrp) { // algoritma pencarian disini System.out.println( Ketemu : + nrp); public void Cari(String pnama) { //error already defined // algoritma pencarian disini System.out.println( Ketemu : + nama); public void Cari(int pnilai_akhir) { // algoritma pencarian disini System.out.println( Ketemu : + nilai_akhir); public void Cari(char pnilai_huruf) { // algoritma pencarian disini System.out.println( Ketemu : + nilai_huruf);

Overloading Methods ( 5 ) Sama seperti constructor, method juga dapat di overload Jika tipe, jumlah & urutan parameter sama error. Apa penyebabnya (tanya ken-apa)?

Overloading Methods ( 6 ) public class TypeConv { public static void main(string[] args) { Overload2 ov = new Overload2(); int i = 10; double d = 12.5; byte b = 77; short s = 10; float f = 3.14F; ov.f(i); //yg dipanggil ( f(int ov.f(d); //yg dipanggil ( f(double ov.f(b); //yg dipanggil f(int) - konversi tipe otomatis ov.f(s); //yg dipanggil f(int) - konversi tipe otomatis ov.f(f); //yg dipanggil f(double) - konversi tipe otomatis Konversi tipe data otomatis dapat berpengaruh terhadap pemanggilan method yg di overload class Overload2 { void f(int x) { System.out.println("Didalam fungsi f(int), x = " + x); void f(double x) { System.out.println("Didalam fungsi f(double), x = " + x);

Programming everyday keeps The Brain Healthy