Pemrograman Berorientasi Objek (OOP) - Pengertian, Konsep Dasar, Kelebihan dan Kekurangan
20 Agu 2020
Tulis Komentar
Pengertian
Pemrograman Berorientasi Objek (PBO) atau bahasa asingnya adalah Object Oriented Programming (OOP) merupakan sebuah paradigma atau teknik pemrograman yang berorientasikan Objek. Pada OOP, Fungsi dan variabel dibungkus dalam sebuah objek atau class yang dapat saling brinteraksi, sehingga membentuk sebuah program.
Di dalam OOP terdapat Class dan Objek. Class adalah blueprint atau prototype atau rancangan cetakan untuk membuat sebuah objek. Sedangkan objek adalah (instansi) perwujudan dari sebuah class.
Contoh Class :
class namaClass(){ }
Contoh Objek :
NamaClass namaObjek = new NamaClass();
Kata kunci new berfungsi untuk membuat objek baru dari class tertentu. Setelah membuat objek, kita bisa mengakses atribut dan method dari objek tersebut. Berikut ini merupakan contoh codingan untuk mengakses atribut dan method.
Contoh :
namaObj.namaMethod(); namaObj.atribut1;
Tanda titik (.) berfungsi untuk mengakses atribut dan method.
Konsep Dasar OOP
Berikut ini merupakan konsep - konsep dasar OOP adalah sebagai berikut.
1. Class
Di dalam sebuah objek Class merupakan prototype atau rancangan yang menafsirkan variabel dan berbagai method pada sebuah objek tertentu. Fungsinya adalah untuk menampung konten atau isi dari sebuah program yang akan dijalankan. Dengan kata lain, kelas/class adalah rancangan atau prototype dari sebuah objek dalam pemrograman berorientasi objek.
Untuk mempermudah kita memahami tentang class, salah satu contoh dari class adalah class person, class animal, class vehicle, class fruit, dan lain-lain. Dalam bidang pemrograman, sebuah class haruslah dapat dikenali bahkan oleh orang bukan programmer, karena class merupakan dasar dari sebuah program.
Contoh class :
class namaClass(){ } class Mahasiswa(){ }
2. Objek
Yang dimaksud dengan objek dalam pemrograman berorientasi objek adalah kumpulan perangkat lunak yang terdiri dari metode-metode dan variabel yang saling berkaitan. Objek juga merupakan wujud nyata dari prototype atau rancangan yang disebutkan dalam class tadi.
Contoh :
NamaClass namaObjek = new NamaClass(); Mahasiswa mhs = new Mahasiswa();
3. Atribut
Atribut adalah variabel global yang dimilki sebuah kelas, contoh :
class Mahasiswa(){ //atribut String nama; int npm; }
4. Method
Method atau metode merupakan suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu objek. Method didefinisikan pada class, namun dipanggil melalui objek. Contoh, pada objek buah pear: terdapat ‘metode ambil rasa’, ‘kupas kulit’ dan lain-lain.
Dalam pemrograman berorientasi objek, method merupakan kumpulan dari berbagai program yang memiliki nama. Ini adalah alat yang digunakan oleh seorang programmer dalam memecah sebuah program menjadi bagian yang kecil-kecil dan kompleks sehingga dapat digunakan berulang kali.
Contoh :
class LuasPersegiPanjang(){ //atribut int panjang; int lebar; //method int hitung(panjang, lebar){ int hasil; hasil = panjang * lebar; return hasil; } }
5. Enkapsulasi
Enkapsulasi adalah suatu bentuk dimana pengguna dari sebuah objek tidak dapat mengganti atau mengubah (memodifikasi) suatu keadaan dari sebuah objek dengan cara yang tidak layak, oleh karena itu keadaan ini hanya dapat dimodifikasi sesuai dengan ketentuan yang terdapat di dalam objek tersebut. Begitupun ketika kita ingin mengganti interfacenya haruslah memenuhi aturan dari objek yang bersangkutan. Objek yang lainnya tidak akan tergantung dengan objek tersebut.
Berikut ini merupakan macam - macam Enkapsulasi :
Visibility | Public | Protected | Default | Private |
---|---|---|---|---|
From the same class | Yes | Yes | Yes | Yes |
From any class in the same package | Yes | Yes | Yes | No |
From a sub-class in the same package | Yes | Yes (Package, Inheritance) | Yes (Package) | No |
From a sub-class outside the same package | Yes | Yes (Inheritance) | No | No |
From any non sub-class class outside the package | Yes | No | No | No |
Contoh penggunaan :
public class LuasPersegiPanjang(){ //atribut private int panjang; private int lebar; //method public int hitung(panjang, lebar){ int hasil; hasil = panjang * lebar; return hasil; } }
Pola enkapsulasi paling sering yang digunakan oleh class adalah public, atribut adalah private, dan method adalah public. Kenapa? supaya class dapat diakses semuanya, method juga sama, tapi tidak dengan atribut. Atribut di beri private agar hanya kelas itu saja yang bisa mengolah variabel itu. Untuk mengakses nilai atribut dibuatlah method GET dan SET supaya bisa diakses semua, seperti dibawah ini.
public class LuasPersegiPanjang(){ //atribut private int panjang; private int lebar; //method public int hitung(panjang, lebar){ int hasil; hasil = panjang * lebar; return hasil; } public void setPanjang(int panjang){ this.panjang = panjang; } public void setLebar(int lebar){ this.lebar = lebar; } public int getPanjang(){ return this.panjang; } public int getLebar(){ return this.lebar; } }
6. Inheritance
Inheritance itu adalah sebuah konsep, konsep pewarisan. Jadi seperti bapak dan anak, bapak mewarisi sifat ke anak.
Di dalam kasus java, sebuah kelas (super class) dapat menurunkan sifatnya (berupa atribut dan method dengan syarat enkapsulasi yang) kepada anaknya (sub class).
Contoh super class :
class Superclass{ int umur; //ini namanya konstruktor Superclass(int umur) { this.umur = umur; } public void getUmur(){ System.out.println("umur : " + umur); } }
Contoh sub class :
public class Subclass extends Superclass { //subclass dapat menggunakan atribut super class Subclass(int umur) { super(umur); } public static void main(String arguments[]) { //subkelas dapat menggunakan metode super kelas Subclass s = new Subclass(24); s.getUmur(); } }
Penjelasanya :
Untuk mewarisi sifat yang dimiliki super class kita menggunakan keyword “extends”. Jadi, kita bebas menggunakan atribut ataupun method yang dimiliki super class, namun super class tidak dapat menggunakan atribut dan metode yang dimiliki sub kelasnya.
Untuk mewarisi sifat yang dimiliki super class kita menggunakan keyword “extends”. Jadi, kita bebas menggunakan atribut ataupun method yang dimiliki super class, namun super class tidak dapat menggunakan atribut dan metode yang dimiliki sub kelasnya.
Untuk kasus lainnya dikarenakan satu sub class hanya boleh meng-extends satu super class dan apabila sub class ingin menggunakan method dari class lainnya, digunakanlah interface.
Sebagai contoh :
interface Bicycle { //wheel revolutions per minute void changeCadence(int newValue); void changeGear(int newValue); void speedUp(int increment); void applyBrakes(int decrement); }
7. Abstraksi
Abstraksi merupakan kemampuan dari sebuah program untuk melewati aspek informasi yang diproses olehnya, atau bisa juga disebut sebagai kemampuan untuk memfokuskan pada intinya. Setiap objek dalam sistem OOP merupakan model dari “pelaku” abstrak yang dapat melakukan suatu pekerjaan, pelaporan dan perubahan pada keadaannya, dan melakukan komunikasi dengan objek lainnya yang ada di dalam sistem suatu program, tanpa memperlihatkan bagaimana hal ini diterapkan.
Contoh :
//kelas Abstrak public abstract class komponen { //method Abstrak abstract void bahan_bahan(); abstract void peralatan(); abstract void proses_pembuatan(); }
Kelebihan dan Kekurangan OOP
Berikut ini merupakan kelebihan dan kekurangan OOP.
Kelebihan OOP :
- Improved software-development productivity
- Modularity : Pembuatan program dengan membuat modul-modul berupa object.
- Flexibility : Sistem Program dapat dimodifikasi tanpa melibatkan banyak modul, hanya object yang terlibat saja.
- Extensibility : Class Object dapat dikembangkan dengan menambahkan attributes dan behaviors baru.
- Expandability : Sistem Program dapat dikembangankan sampai skala yang paling kompleks (large scale software system).
- Reusability : Class Object dipakai lagi pada lintas aplikasi program.
- Improved software maintainability
Karena desainnya modular, bagian dari software system dapat dengan mudah di-maintain jika ada perubahan meskipun dalam skala yang besar. - Faster developmentOOP disupport oleh banyak library object yang reusable, sehingga mempercepat penyelesaian program dan juga project berikutnya.
- Lower cost of developmentFaster development tentu akan mengurangi biaya pengembangan proyek software.
- Higher-quality softwareFaster development akan memberikan lebih banyak waktu dan resource untuk melakukan proses verification software. Banyak library object yang digunakan juga sudah teruji.
Kekurangan OOP :
- Lebih kompleks untuk dipelajari.
- Untuk beberapa programmer, butuh waktu untuk terbiasa dengan OOP. Program OOP yang komprehensif melibatkan banyak konsep, seperti abstraction, inheritance dan polymorphism.
- Ukuran program OOP lebih besar dibandingkan dengan program POP (Procedural Oriented Programming).
- Runtime program OOP lebih lambat dari pada POP karena ukurannya lebih besar.
- Tidak semua masalah program diselesaikan dengan OOP. Beberapa solusi lebih efisien menggunakan POP atau programming style yang lain.
Cukup sekian artikel mengenai Pemrograman Berorientasi Objek (OOP) - Pengertian, Konsep Dasar, Kelebihan dan Kekurangan. Semoga bermanfaat bagi para pembaca, jangan lupa untuk membagikan artikel ini kepada teman - teman yang lainnya agar ilmu ini terus mengalir sampai jauh tiada hentinya. Tunggu artikel berikutnya .. Terimakasih
Belum ada Komentar untuk "Pemrograman Berorientasi Objek (OOP) - Pengertian, Konsep Dasar, Kelebihan dan Kekurangan"
Posting Komentar