Difference between revisions of "JAVA: OOPS Concept"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 57: | Line 57: | ||
==Pillar 1: Abstraction== | ==Pillar 1: Abstraction== | ||
− | Data Abstraction | + | Data Abstraction adalah properti yang hanya menampilkan detail penting kepada pengguna. Unit / komponen yang tidak penting tidak ditampilkan kepada pengguna. Contoh: Mobil dipandang sebagai sebuah mobil bukan sebagai kumpulan banyak individual komponen. |
− | + | Data Abstraction juga dapat didefinisikan sebagai proses mengidentifikasi hanya karakteristik yang diperlukan dari suatu objek mengabaikan detail yang tidak relevan. Sifat dan perilaku suatu object membedakannya dari object lain yang sejenis dan juga membantu dalam mengklasifikasikan/mengelompokkan object. | |
− | + | Pertimbangkan contoh kehidupan nyata dari seorang pria yang mengendarai mobil. Pria itu hanya tahu bahwa menekan pedal gas akan meningkatkan kecepatan mobil atau menginjak rem akan menghentikan mobil tetapi dia tidak tahu tentang bagaimana menekan pedal gas kecepatan sebenarnya meningkat, dia tidak tahu tentang mekanisme bagian dalam mobil atau penerapan pedal gas, rem dll di dalam mobil. Inilah yang dimaksud dengan abstraksi. | |
− | + | ||
− | + | Di java, abstraction dicapai dengan interface dan abstract class. Kita dapat mencapai abstraksi 100% menggunakan interface. | |
==Pillar 2: Encapsulation== | ==Pillar 2: Encapsulation== | ||
− | + | Ini didefinisikan sebagai pembungkus data dalam satu unit. Ini adalah mekanisme yang menyatukan kode dan data yang dimanipulasinya. Cara lain untuk melihat enkapsulasi adalah sebagai perisai pelindung yang mencegah data diakses oleh kode di luar perisai ini. | |
+ | |||
+ | Secara teknis dalam enkapsulasi, variabel atau data dari suatu Class disembunyikan dari Class lain dan hanya dapat diakses melalui fungsi anggota Class itu sendiri di mana mereka dideklarasikan. | ||
− | + | Seperti dalam enkapsulasi, data dalam suatu Class disembunyikan dari Class lain, sehingga disebut juga sebagai data-hiding. Enkapsulasi dapat dicapai dengan mendeklarasikan semua variabel di kelas sebagai private dan menulis method publik di Class untuk mengatur dan mendapatkan nilai variabel. | |
− | |||
− | |||
==Pillar 3: Inheritence== | ==Pillar 3: Inheritence== | ||
− | Inheritance | + | Inheritance adalah pilar penting dalam OOP(Object Oriented Programming). Ini adalah mekanisme di java dimana satu Class diizinkan untuk inheritance (mewarisi) fitur (field dan method) dari Class lain. |
+ | |||
+ | Mari kita bahas beberapa istilah penting yang sering digunakan: | ||
+ | |||
+ | * Super Class: Class yang fitur-fiturnya inherited (diwarisi) dikenal sebagai superclass (atau base class atau parent class). | ||
− | + | * Sub Class: Class yang mewarisi Class lain dikenal sebagai subclass (atau derived class, extended class, or child class). Subclass dapat menambahkan field dan method-nya sendiri selain field dan method superclass. | |
− | + | * Reusability: Inheritance mendukung konsep “reusability”, yaitu ketika kita ingin membuat Class baru padahal sudah ada Class yang menyertakan beberapa kode yang kita inginkan, kita dapat menurunkan Class baru kita dari Class yang ada. Dengan melakukan ini, kami menggunakan kembali field dan method Class yang ada. | |
− | |||
− | * Reusability: Inheritance | ||
==Pillar 4: Polymorphism== | ==Pillar 4: Polymorphism== | ||
− | + | Ini mengacu pada kemampuan bahasa pemrograman OOP untuk membedakan antara entitas dengan nama yang sama secara efisien. Ini dilakukan oleh Java dengan bantuan signature dan deklarasi entitas tersebut. | |
− | + | Catatan: Polymorphism dalam Java ada dua (2) tipe: | |
* Overloading | * Overloading | ||
* Overriding | * Overriding |
Latest revision as of 14:27, 29 April 2022
Seperti namanya, Object-Oriented Programming atau OOP mengacu pada bahasa yang menggunakan objek dalam pemrograman. Pemrograman berorientasi objek bertujuan untuk mengimplementasikan entitas dunia nyata seperti inheritance, hiding, polymorphism, dll dalam pemrograman. Tujuan utama OOP adalah untuk menyatukan data dan fungsi yang beroperasi di dalamnya sehingga tidak ada bagian lain dari kode yang dapat mengakses data ini kecuali fungsi itu.
Mari kita diskusikan prasyarat dengan memoles konsep deklarasi dan passing metode. Dimulai dengan deklarasi metode, terdiri dari enam komponen:
- Access Modifier: Mendefinisikan jenis akses metode yaitu dari mana itu dapat diakses di aplikasi Anda. Di Java, ada 4 tipe penentu akses.
- public: dapat diakses di semua class di aplikasi Anda.
- protected: dapat diakses di dalam paket di mana ia didefinisikan dan di dalam subclass-nya (termasuk subclass yang dideklarasikan di luar paket)
- private: hanya dapat diakses di dalam class di mana ia didefinisikan.
- default (dideklarasikan/didefinisikan tanpa menggunakan modifier apa pun): dapat diakses di dalam class dan paket yang sama di mana class didefinisikan.
- The return type: Tipe data dari nilai yang dikembalikan oleh metode atau batal jika tidak mengembalikan nilai.
- Method Name: aturan untuk nama field berlaku untuk nama method juga, tetapi konvensinya sedikit berbeda.
- Parameter list: Daftar parameter input yang dipisahkan koma ditentukan, didahului dengan tipe datanya, di dalam kurung terlampir. Jika tidak ada parameter, Anda harus menggunakan tanda kurung kosong ().
- Exception list: Exception yang Anda harapkan dengan metode ini dapat dilemparkan, Anda dapat menentukan exception ini.
- Method body: Itu tertutup di antara kurung kurwal. Kode yang perlu Anda jalankan untuk melakukan operasi yang Anda inginkan.
- Message Passing: Objek berkomunikasi satu sama lain dengan mengirim dan menerima informasi satu sama lain. Message untuk suatu objek adalah permintaan untuk eksekusi suatu prosedur dan oleh karena itu akan memanggil fungsi di objek penerima yang menghasilkan hasil yang diinginkan. Message passing melibatkan penentuan nama objek, nama fungsi dan informasi yang akan dikirim.
Nah dengan prasyarat dasar untuk langkah pembelajaran 4 pilar OOPS adalah sebagai berikut. Mari kita mulai dengan belajar tentang karakteristik yang berbeda dari bahasa Object-Oriented Programming.
Konsep OOP adalah sebagai berikut:
- Class
- Object
- Method and method passing
- Pillars of OOPS
- Abstraction
- Encapsulation
- Inheritance
- Polymorphism
- Compile-time polymorphism
- Run-time polymorphism
Class adalah cetak biru atau prototipe yang ditentukan pengguna dari mana object dibuat. Ini mewakili set properti atau method yang umum untuk semua object dari satu jenis. Secara umum, deklarasi kelas dapat mencakup komponen-komponen ini, dengan urutan:
- Modifiers: Class dapat bersifat publik atau memiliki akses default.
- Class name: Nama harus dimulai dengan huruf besar (kapital menurut konvensi).
- Superclass (jika ada): Nama parent Class (superclass), jika ada, didahului dengan kata kunci extends. Sebuah class hanya dapat meng-extend (subclass) satu parent.
- Interfaces (jika ada): Daftar interface yang dipisahkan koma yang diimplementasikan oleh Class, jika ada, didahului oleh implementasi keyword. Sebuah class dapat mengimplementasikan lebih dari satu interface.
- Body: Badan Class yang dibatasi oleh kurung kurawal, { }.
Object adalah unit terkecil Object Oriented Programming dan mewakili entitas kehidupan nyata. Program Java biasanya dibentuk oleh banyak object, yang seperti yang Anda ketahui, berinteraksi dengan memanggil method. Sebuah object terdiri dari:
- State : Diwakili oleh atribut suatu object. Ini juga mencerminkan sifat-sifat suatu object.
- Behavior : Ini diwakili oleh method suatu object. Hal ini juga mencerminkan respon suatu object dengan object lainnya.
- Identity : Ini memberi nama unik untuk suatu object dan memungkinkan satu object untuk berinteraksi dengan object lain.
- Method: Method adalah kumpulan statement yang melakukan beberapa tugas tertentu dan mengembalikan hasil ke pemanggil. Suatu method dapat melakukan beberapa tugas tertentu tanpa mengembalikan apa pun. Method memungkinkan kita untuk menggunakan kembali kode tanpa mengetik ulang kode. Di Java, setiap method harus menjadi bagian dari beberapa Class yang berbeda dari bahasa seperti C, C++ dan Python. Method menghemat waktu dan membantu kita menggunakan kembali kode tanpa mengetik ulang kode.
Sekarang mari kita bahas 4 pilar OOPS:
Pillar 1: Abstraction
Data Abstraction adalah properti yang hanya menampilkan detail penting kepada pengguna. Unit / komponen yang tidak penting tidak ditampilkan kepada pengguna. Contoh: Mobil dipandang sebagai sebuah mobil bukan sebagai kumpulan banyak individual komponen.
Data Abstraction juga dapat didefinisikan sebagai proses mengidentifikasi hanya karakteristik yang diperlukan dari suatu objek mengabaikan detail yang tidak relevan. Sifat dan perilaku suatu object membedakannya dari object lain yang sejenis dan juga membantu dalam mengklasifikasikan/mengelompokkan object.
Pertimbangkan contoh kehidupan nyata dari seorang pria yang mengendarai mobil. Pria itu hanya tahu bahwa menekan pedal gas akan meningkatkan kecepatan mobil atau menginjak rem akan menghentikan mobil tetapi dia tidak tahu tentang bagaimana menekan pedal gas kecepatan sebenarnya meningkat, dia tidak tahu tentang mekanisme bagian dalam mobil atau penerapan pedal gas, rem dll di dalam mobil. Inilah yang dimaksud dengan abstraksi.
Di java, abstraction dicapai dengan interface dan abstract class. Kita dapat mencapai abstraksi 100% menggunakan interface.
Pillar 2: Encapsulation
Ini didefinisikan sebagai pembungkus data dalam satu unit. Ini adalah mekanisme yang menyatukan kode dan data yang dimanipulasinya. Cara lain untuk melihat enkapsulasi adalah sebagai perisai pelindung yang mencegah data diakses oleh kode di luar perisai ini.
Secara teknis dalam enkapsulasi, variabel atau data dari suatu Class disembunyikan dari Class lain dan hanya dapat diakses melalui fungsi anggota Class itu sendiri di mana mereka dideklarasikan.
Seperti dalam enkapsulasi, data dalam suatu Class disembunyikan dari Class lain, sehingga disebut juga sebagai data-hiding. Enkapsulasi dapat dicapai dengan mendeklarasikan semua variabel di kelas sebagai private dan menulis method publik di Class untuk mengatur dan mendapatkan nilai variabel.
Pillar 3: Inheritence
Inheritance adalah pilar penting dalam OOP(Object Oriented Programming). Ini adalah mekanisme di java dimana satu Class diizinkan untuk inheritance (mewarisi) fitur (field dan method) dari Class lain.
Mari kita bahas beberapa istilah penting yang sering digunakan:
- Super Class: Class yang fitur-fiturnya inherited (diwarisi) dikenal sebagai superclass (atau base class atau parent class).
- Sub Class: Class yang mewarisi Class lain dikenal sebagai subclass (atau derived class, extended class, or child class). Subclass dapat menambahkan field dan method-nya sendiri selain field dan method superclass.
- Reusability: Inheritance mendukung konsep “reusability”, yaitu ketika kita ingin membuat Class baru padahal sudah ada Class yang menyertakan beberapa kode yang kita inginkan, kita dapat menurunkan Class baru kita dari Class yang ada. Dengan melakukan ini, kami menggunakan kembali field dan method Class yang ada.
Pillar 4: Polymorphism
Ini mengacu pada kemampuan bahasa pemrograman OOP untuk membedakan antara entitas dengan nama yang sama secara efisien. Ini dilakukan oleh Java dengan bantuan signature dan deklarasi entitas tersebut.
Catatan: Polymorphism dalam Java ada dua (2) tipe:
- Overloading
- Overriding