oop

5
konsep access modifier : public, private dan protected 1. Public : Kita telah mengetahui bahwa arti dari public itu adalah bahwa siapapun yang menjalankan program dapat mengakses member ini baik code yang terdapat di dalam class itu sendiri maupun code yang terdapat di luar class tersebut. Selama ini kita selalu mendeklarasikan method main() yang telah dibuat menggunakan public. Ini karena method main() akan dipanggil dari luar class itu, yaitu oleh Java run-time system. Atau Public adalah kode akses yang bersifat umum. dengan kata lain, data maupun method dalam suatu kodingan tersebut dapat diakses oleh semua bagian di dalam program. 2. Private : Anggota yang telah dideklarasikan sebagai class private hanya dapat digunakan oleh pihak dalam/ internal member dari class tersebut saja. Tidak ada yang diperbolehkan member dari class lain yang dapat mengakses/ mengubah dari member di dalam class yang sudah dideklarasikan sebahai class private. Atau Private adalah kode yang sesuai dengan namanya, akses ini bersifat private. dengan kata lain data maupun method hanya dapat diakses oleh kelas yang dimilikinya saja. 3. Protected : Anggota spesifikasi ini sebenarnya memiliki hubungan erat dengan kegunaan dari fungsi package dalam konsep pewarisan. Member yang akan dideklarasikan menggunakan spesifikasi ini hanya dapat diakses oleh member class itu sendiri. member dari class turunannya, dan member yang berada tepat didalam package yang sama. Atau Protected adalah kode akses yang membuat suatu data atau method yang didefinisikan dengan tingkatan akses ini dapat diakses oleh kelas yang memilikinya saja dan juga kelas-kelas yang memasih memiliki keturunan atau Encapsulation data. 1. Pelajari konsep tentang inheritance/pewarisan, polymorphism,abstract class dan interface. 1. INHERITANCE Perngertian dari inheritance adalah dimana sebuah objek dapat mempunyai objek turunan. Dalam hal pemrogramman makan dapat diimpelementasikan dengan sebuah class yang mempunyai class turunan. Class yang mempunyai class turunan disebut sebagai Parent Class atau Base Class, sedangkan class yang menjadi turunan dari Parent Class disebut sebagai Subclass atau Child Class. Secara sederhana misal

Upload: putri-lemuel

Post on 13-Apr-2016

6 views

Category:

Documents


0 download

DESCRIPTION

oop

TRANSCRIPT

Page 1: Oop

konsep access modifier : public, private dan protected

1. Public : Kita telah mengetahui bahwa arti dari public itu adalah bahwa siapapun yang menjalankan program dapat mengakses member ini baik code yang terdapat di dalam class itu sendiri maupun code yang terdapat di luar class tersebut. Selama ini kita selalu mendeklarasikan method main() yang telah dibuat menggunakan public. Ini karena method main() akan dipanggil dari luar class itu, yaitu oleh Java run-time system. Atau Public adalah kode akses yang bersifat umum. dengan kata lain, data maupun method dalam suatu kodingan tersebut dapat diakses oleh semua bagian di dalam program.

2. Private : Anggota yang telah dideklarasikan sebagai class private hanya dapat digunakan oleh pihak dalam/ internal member dari class tersebut saja. Tidak ada yang diperbolehkan member dari class lain yang dapat mengakses/ mengubah dari member di dalam class yang sudah dideklarasikan sebahai class private. Atau Private adalah kode yang sesuai dengan namanya, akses ini bersifat private. dengan kata lain data maupun method hanya dapat diakses oleh kelas yang dimilikinya saja.

3. Protected : Anggota spesifikasi ini sebenarnya memiliki hubungan erat dengan kegunaan dari fungsi package dalam konsep pewarisan. Member yang akan dideklarasikan menggunakan spesifikasi ini hanya dapat diakses oleh member class itu sendiri. member dari class turunannya, dan member yang berada tepat didalam package yang sama. Atau Protected adalah kode akses yang membuat suatu data atau method yang didefinisikan dengan tingkatan akses ini dapat diakses oleh kelas yang memilikinya saja dan juga kelas-kelas yang memasih memiliki keturunan atau Encapsulation data.

1. Pelajari konsep tentang inheritance/pewarisan, polymorphism,abstract class dan interface.

1.      INHERITANCEPerngertian dari inheritance adalah dimana sebuah objek dapat mempunyai objek turunan. Dalam

hal pemrogramman makan dapat diimpelementasikan dengan sebuah class yang mempunyai class turunan. Class yang mempunyai class turunan disebut sebagai Parent Class atau Base Class, sedangkan class yang menjadi turunan dari Parent Class disebut sebagai Subclass atau Child Class. Secara sederhana misal Hewan adalah parent class maka child class bisa berupa ayam,kucing,bebek dll.

a.      Dekalarasi InheritanceCara untuk mendeklarasikan inheritance adalah dengan memberikan keywordextends setelah nama class diikuti denga nama parent class.Kata kunci extends memberikan informasi pada kompiler Java bahwa kita ingin melakukan perluasan class.

b.      Konsep Inheritance dalam JavaKonsep inheritane yang ada di Java adalah hanya memperkenankan adanya Single inheritance.Konsep Single inheritane artinya bahwa sebuah subclass hanya diperkenankan memiliki satu parent class. Konsep inheritance yang ada di java memperkenankan adanya multilevel inheritance. Konsep multilevel inheritance berarti bahwa sebuah subclass dapat memiliki subclass lagi sebagai turunannya.Subclass menggunakan keyword super untuk mereferensi data dan fungsi dari parent class-nya. Dengan kata lain keyword super ini berfungsi sebagai alias dari Parent class.Format penulisan dari keyword ini :

Ø      super.data_member  ->  merujuk pada data member dari parent classØ      super.function_member()  ->  merujuk pada function member dari parent classØ      super()  ->  merujuk pada konstruktor dari parent class

c.       Keuntungan dari inheritanceØ      Bersifat reusable. Bayangkan bila anda perlu membuat beberapa class yang mempunyai sifat dasar dan

basis class yang sama, dan pada masing masing class tersebut ditambahkan data dan method yang unique.

Page 2: Oop

Tanpa inheritance anda harus menyalin semua data dan method dari suatu class. Hal tersebut mungkin masih bisa dilakukan jika basis class anda definisikan sendiri.

Ø      Kemudahan dalam me-manage kelas yang memiliki data dan method yang sama. Jika anda ingin melakukan modifikasi suatu data atau method pada semua sub class anda tidak perlu melakukan perubahan pada masing masing sub class. Modifikasi cukup dilakukan pada super class.

Ø      Dalam inheritance dikenal dengan istilah overriding. Overidding adalah kemampuan sub class untuk melakukan modifikasi data dan method dari super class. Sebelum anda melakukan overidding terhadap method atau data dari class induk, anda harus memperhatikan aksesibelitas dari data dan method dari super class.[ overidding hanya bisa dilakukan untuk data dan method yang memiliki modifier default, public dan protected..

2.      POLYMORPHISM Polymorphism berarti “mempunyai banyak bentuk” juga merupakan salah satu sifat class yang

memungkinkan sebuah method mempunyai nama yang sama, namun memiliki aksi yang berbeda.Polymorphism adalah pemikiran bahwa objek dinamis suatu class dasar dapat berperilaku seperti

class turunan. Jika objek menunjuk class dasar maka ia perilaku seperti class dasar, dan jika ia menunjuk class turunan ia akan berperilaku seperti class turunan.

Dalam hal ini obkjek memiliki beberapa bentuk, tergantung ia menunjuk kemana. Dalam hal ini suatu objek atau class dan perubahan perilakunya adalah dari kelas dasar ke kelas turunan, tidak bisa objek kelas turunan menunjuk ke kelas dasar. Polimorfisme dimungkinkan karena adanya mekanisme ikatan dinamis, ikatan ini adalah ikatan yang terjadi ketika program dijalankan (run-time), ikatan yang terjadi pada saat compiling disebut ikatan dinamis. Ikatan dinamis hanya akan terjadi antara suatu objek dinamis dengan metode yang dinamis juga, dalam hal ini metode virtual (maya)

Pada dasarnya ada 2 tipe polymorphism, yaitu:a.      Static atau trivial

merupakan, function overloading (penggunaan kembali nama fungi yang sama tapi dgn argumen yang berbeda) yang terbagi dalam 3 signature yaitu:

-         Jenis Array-         Letak Array-         Type Array

Contoh function overloading :-         void tambah (int a, int b);-         void tambah(float d, float c);

b.      Dynamic atau trueMerupakan function overriding (sebuah fungsi dalam class turunan yang memiliki nama, return type argumen function yang sama dengan fungsi dalam class induk). Menggunakan virtual method.

3.      INTERFACEDi kelas kita  sudah belajar apa interface tersebut, untuk mengulang materi di kelas, semoga

postingan saya tentang interface kali ini bisa memperjelas tentang konsep interface yang kita pelajari di kelas praktikum dan penjelasan tugas yang sudah dikumpulkan minggu lalu.

Kenapa kita butuh interface?  Sebagai pengantar kita harus mengetahui apa yang disebut interface dan kegunaan’nya dalam pemrograman java / pemrograman berorientasi objek, karena kita akan bermain banyak dengan objek tersebut.

Interface adalah jenis khusus dari blok yang hanya berisi method signature (atau constant).   Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh. Interface

Page 3: Oop

mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan sifat-sifat yang umum. Dengan catatan bahwa interface-interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe object yang melewati pemanggil method interface.

Untuk memahami lebih mudah, interface sekumpula dari method-method yang dibuat tapi belum ada operasi di dalam tubuh method tersebut, interface ini bisa diturunkan atau diwariskan kepada class yang ingin memakai method yang ada dalam masing-masing interface tersebut dengan keyword extends [interface yang didefinisikan]. Dan juga sebuah class mengimplementasi 1 interface yang sudah dibuat dengan keyword implements.

Ciri-ciri dari interface adalah sebagai berikut..·         Method interface tidak punya tubuh, sebuah interface hanya dapat mendefinisikan konstanta dan

interface tidak langsung mewariskan hubungan dengan class istimewa lainnya, mereka didefinisikan secara independent.

·         Tidak bisa membuat instance atau objek baru dari sebuah interface.Ciri umum lain adalah baik interface maupun class dapat mendefinisikan method. Bagaimanapun, sebuah interface tidak punya sebuah kode implementasi sedangkan class memiliki salah satunya.

4. Abstract class adalah kelas yang terletak pada posisi tertinggi pada hierarki kelas. Kelas ini digunakan sebagai basis bagi penurunan kelas lainnya, sehingga abstract class tidak dapat diinstansiasi secara langsung menjadi object. Suatu abstract class bisa mengandung method kongkrit dan/atau method abstract. Abstract method meruapakan suatu method yang tidak mempunyai badan method. Hanya berupa nama method dan parameter inputan method. Ketika suatu abstract class diturunkan/ di-extends, maka subclass harus mengimplementasikan semua method abstract pada parent/ base class. Jika tidak mengimplementasikan semua method abstract maka subclass harus dideklarasikan sebagai abstract class.

Interface adalah kumpulan method yang hanya memuat deklarasi dan struktur method, tanpa detail implementasinya. Sedangkan detail dari method berada pada class yang mengimplementasikan interface tersebut. Interface digunakan bila Anda ingin mengaplikasikan suatu method yang spesifik, yang tidak diperoleh dari proses inheritance. Tipe data yang boleh pada interface hanya tipe data konstan. Setelah mengetahui apa itu interface. Timbul pertanyaan Mengapa membutuhkan interface?

Memecahkan bagian yang rumit dan spesifik. Dengan menggunakan class atau interface oleh vendor maka dalam pembuatan perangkat lunak menjadi lebih cepat.

Keterbatasan inheritance pada Java. Interface menjawab kebutuhan untuk melakukan multiple inheritance

Apakah Interface = Abstract class ?

Ya menurut saya sih antara keduanya memiliki kemiripan, tapi tidak sama. Mirip bukan berarti sama kan? Terdapat beberapa perbedaan antara keduanya yaitu

Abstract class dapat memiliki tipe data dengan semua tipe data, sedangkan interface tipe datanya hanya berupa konstanta

Method pada abstract class dapat berupa method kongkrit dan method abstract. Sedangkan pada interface semua method harus berupa method abstract.