Penjelasan Lengkap tentang Object Oriented Thinking




Pemrograman berorientasi objek (Object-Oriented Programming/OOP) adalah paradigma pemrograman yang memandang program sebagai kumpulan objek yang saling berinteraksi satu sama lain untuk mencapai tujuan tertentu. Konsep ini digunakan untuk mengorganisasi kode dalam bentuk kelas dan objek, sehingga memungkinkan program lebih mudah diatur, dipelihara, dan diubah.


OOP terdiri dari beberapa konsep, diantaranya adalah:

Class (kelas)

kelas adalah blueprint atau template yang digunakan untuk membuat objek. Sebuah kelas berisi atribut (variabel) dan metode (fungsi) yang mendefinisikan data dan perilaku objek


Object (objek)

objek adalah instance konkret dari sebuah kelas. Setiap objek memiliki state (keadaan) dan behavior (perilaku), yang ditentukan oleh variabel dan metode dalam kelasnya.

Enkapsulasi (Encapsulation)

Enkapsulasi adalah konsep untuk menyembunyikan detail implementasi suatu objek dan hanya mengekspos fungsionalitasnya saja. Konsep ini memungkinkan kita untuk menjaga integritas data dan menjaga objek agar tetap terisolasi dari objek lain yang tidak terkait. Dalam OOP, enkapsulasi dapat dicapai dengan menggunakan access modifier seperti public, private, dan protected.


Abstraksi (Abstraction)

Abstraksi adalah konsep untuk menyederhanakan kompleksitas program dengan cara memisahkan perilaku (behavior) dari detail implementasinya. Dalam OOP, abstraksi dapat dicapai dengan menggunakan kelas abstrak dan antarmuka (interface).


Pewarisan (Inheritance)

Pewarisan adalah konsep dimana sebuah objek mewarisi sifat dan perilaku dari objek lain yang lebih umum atau abstrak. Konsep ini memungkinkan kita untuk mengatur kembali kode yang sudah ada dan memperluas fungsionalitas dari sebuah kelas. Dalam OOP, pewarisan dapat dicapai dengan menggunakan kelas induk (superclass) dan kelas turunan (subclass).


Polimorfisme (Polymorphism)

Polimorfisme adalah konsep dimana sebuah objek dapat memiliki banyak bentuk atau perilaku yang berbeda-beda. Konsep ini memungkinkan kita untuk memperlakukan objek yang berbeda-beda dengan cara yang sama. Dalam OOP, polimorfisme dapat dicapai dengan menggunakan konsep pewarisan dan antarmuka.


Dalam pemrograman Java, konsep OOP sangatlah penting dan sering digunakan. Beberapa contoh implementasi OOP dalam Java adalah pembuatan kelas-kelas untuk mengatur data seperti kelas Mahasiswa, kelas Guru, kelas Mobil, dan sebagainya. Dalam kelas-kelas tersebut, kita dapat menggunakan konsep enkapsulasi untuk menyembunyikan detail implementasi, abstraksi untuk menyederhanakan kompleksitas, pewarisan untuk mewarisi perilaku dan sifat dari kelas-kelas yang lebih abstrak, serta polimorfisme untuk memperlakukan objek dengan cara yang sama.


Secara keseluruhan, pemrograman berorientasi objek (OOP) adalah paradigma pemrograman yang sangat berguna dan dapat membantu mengorganisasi kode yang lebih terstruktur dan mudah diatur. Dengan memahami konsep-konsep dalam OOP seperti enkapsulasi, abstraksi, pewarisan, dan polimorfisme, kita dapat membuat program yang lebih mudah dipelihara, diubah, dan diperluas fungsionalitasnya.


Berikut adalah contoh sederhana pembuatan class dan object pada bahasa pemrograman Java:

java
public class Mobil
 String merek; 
 String warna; 
int tahunProduksi; 
public void infoMobil()
 System.out.println("Merek mobil: " + merek); 
 System.out.println("Warna mobil: " + warna); 
 System.out.println("Tahun produksi: " + tahunProduksi); 
 } 
}

Dalam contoh di atas, kita membuat sebuah class Mobil yang memiliki tiga atribut yaitu merek, warna, dan tahunProduksi. Selain itu, kita juga membuat sebuah method infoMobil() yang bertujuan untuk menampilkan informasi tentang mobil tersebut.

Setelah kita membuat class Mobil, kita dapat membuat objek dari class tersebut dengan cara berikut:

java
public static void main(String[] args) { Mobil mobilSaya = new Mobil(); mobilSaya.merek = "Toyota"; mobilSaya.warna = "Merah"; mobilSaya.tahunProduksi = 2020; mobilSaya.infoMobil(); }

Dalam contoh di atas, kita membuat sebuah objek mobilSaya dari class Mobil dengan menggunakan kata kunci new. Setelah itu, kita mengisi nilai dari setiap atribut dengan menggunakan operator . dan memanggil method infoMobil() pada objek tersebut. Hasil yang akan ditampilkan adalah informasi mengenai mobil yang sudah kita isi nilainya.

Dengan menggunakan class dan objek, kita dapat memisahkan kode program menjadi beberapa bagian yang terpisah dan mudah dipelihara. Class digunakan untuk menentukan blueprint dari objek, sedangkan objek digunakan untuk melakukan operasi tertentu berdasarkan blueprint tersebut. Hal ini membuat kode program menjadi lebih modular dan mudah dipahami.




1. Enkapsulasi (Encapsulation)

Berikut adalah contoh kode dalam Java yang mengimplementasikan konsep encapsulation:

java
public class Mahasiswa
private String nama; 
private int nim; 
private String jurusan; 
public String getNama()
return nama; 
 } 
public void setNama(String nama) {
this.nama = nama; 
 } 
public int getNim() {
return nim; 
 } 
public void setNim(int nim) {
this.nim = nim; 
 } 
public String getJurusan()
return jurusan; 
 } public void setJurusan(String jurusan) {
this.jurusan = jurusan; 
 } 
}

Dalam contoh kode di atas, kelas Mahasiswa memiliki tiga atribut yaitu nama, nim, dan jurusan. Ketiga atribut tersebut memiliki access modifier private, yang berarti bahwa mereka hanya dapat diakses dan dimodifikasi oleh method di dalam kelas Mahasiswa itu sendiri.

Untuk dapat mengakses dan memodifikasi nilai dari ketiga atribut tersebut dari luar kelas Mahasiswa, kita menggunakan method get dan set. Method get digunakan untuk mengambil nilai dari atribut, sedangkan method set digunakan untuk mengubah nilai dari atribut.

Contoh penggunaan method get dan set pada kelas Mahasiswa:

java
Mahasiswa mhs = new Mahasiswa(); mhs.setNama("John Doe"); mhs.setNim(123456789); mhs.setJurusan("Teknik Informatika"); System.out.println("Nama Mahasiswa: " + mhs.getNama()); System.out.println("NIM Mahasiswa: " + mhs.getNim()); System.out.println("Jurusan Mahasiswa: " + mhs.getJurusan());

Dalam contoh di atas, kita membuat objek mhs dari kelas Mahasiswa. Kemudian, kita menggunakan method set untuk mengatur nilai dari atribut nama, nim, dan jurusan pada objek mhs. Terakhir, kita menggunakan method get untuk mengambil nilai dari ketiga atribut tersebut dan mencetaknya ke layar.

2. Abstraksi (Abstraction)

Berikut adalah contoh kode dalam Java yang mengimplementasikan konsep abstraction:

java
public abstract class Hewan
private String nama; 
public Hewan(String nama) {
this.nama = nama; 
 } 
public abstract void suara()
public void bergerak() {
 System.out.println("Bergerak..."); 
 } 
public class Kucing extends Hewan 
public Kucing(String nama) {
super(nama); 
 } 
public void suara()
 System.out.println("Meong!"); 
 } 
public class Anjing extends Hewan {
public Anjing(String nama)
super(nama); 
 } public void suara() {
 System.out.println("Guk Guk!"); 
 } 
}

Dalam contoh kode di atas, kelas Hewan adalah kelas abstrak yang memiliki satu atribut yaitu nama. Kelas Hewan juga memiliki dua method yaitu suara() dan bergerak(). Method suara() dijadikan abstract dengan keyword abstract sehingga tidak memiliki implementasi dan harus diimplementasikan pada subclass dari Hewan.

Kelas Kucing dan Anjing adalah subclass dari Hewan yang mengimplementasikan method suara(). Method bergerak() pada kelas Hewan memiliki implementasi default, sehingga tidak perlu diimplementasikan pada subclass.

Contoh penggunaan pada main method:

java
Hewan hewan1 = new Kucing("Tom"); Hewan hewan2 = new Anjing("Spike"); hewan1.suara(); hewan1.bergerak(); hewan2.suara(); hewan2.bergerak();

Dalam contoh di atas, kita membuat objek hewan1 dan hewan2 dari kelas Kucing dan Anjing. Kedua objek tersebut diassign pada variabel tipe Hewan. Kita dapat memanggil method suara() dan bergerak() pada kedua objek meskipun tipe variabelnya adalah Hewan, karena kelas Kucing dan Anjing adalah subclass dari Hewan. Hal ini menunjukkan konsep polimorfisme pada pemrograman berorientasi objek.

3. Pewarisan (Inheritance)


Berikut adalah contoh kode dalam Java yang mengimplementasikan konsep pewarisan:

java
public class Manusia {
private String nama; 
private int umur; 
public Manusia(String nama, int umur) {
this.nama = nama; 
this.umur = umur; 
 } 
public void berjalan()
 System.out.println("Berjalan..."); 
 } 
public void bicara()
 System.out.println("Halo, saya " + nama + " dan berusia " + umur + " tahun."); 
 } 
public class Pelajar extends Manusia
private String nim; 
private String jurusan; 
public Pelajar(String nama, int umur, String nim, String jurusan) {
super(nama, umur); 
this.nim = nim; 
this.jurusan = jurusan; 
 } 
public void belajar()
 System.out.println("Belajar..."); 
 } 
@Override public void bicara()
 System.out.println("Halo, saya " + getNama() + ", seorang pelajar dengan NIM " + nim + " dan jurusan " + jurusan + "."); 
 } 
}

Dalam contoh kode di atas, kelas Manusia memiliki dua atribut yaitu nama dan umur, serta dua method yaitu berjalan() dan bicara(). Kelas Pelajar adalah subclass dari Manusia yang memiliki tambahan dua atribut yaitu nim dan jurusan, serta satu method yaitu belajar(). Kelas Pelajar juga meng-override method bicara() dari superclass Manusia untuk menambahkan informasi mengenai NIM dan jurusan pelajar.

Contoh penggunaan pada main method:

java
Manusia manusia1 = new Manusia("John Doe", 30); manusia1.berjalan(); manusia1.bicara(); Pelajar pelajar1 = new Pelajar("Jane Doe", 20, "123456789", "Teknik Informatika"); pelajar1.berjalan(); pelajar1.bicara(); pelajar1.belajar();

Dalam contoh di atas, kita membuat objek manusia1 dan pelajar1 dari kelas Manusia dan Pelajar. Kita dapat memanggil method berjalan() dan bicara() pada kedua objek, namun hanya objek pelajar1 yang memiliki method belajar(). Kita juga dapat melihat bagaimana method bicara() pada objek pelajar1 memanggil method getNama() yang diwarisi dari superclass Manusia. Hal ini menunjukkan konsep pewarisan pada pemrograman berorientasi objek.

4. Polimorfisme (Polymorphism)


Berikut adalah contoh kode dalam Java yang mengimplementasikan konsep polimorfisme:

java
public interface Binatang
public void suara()
public class Kucing implements Binatang {
@Override public void suara()
 System.out.println("Meow"); 
 } 
public class Anjing implements Binatang 
@Override public void suara()
 System.out.println("Guk guk"); 
 } 
public class Burung implements Binatang
@Override public void suara()
 System.out.println("Cuit cuit"); 
 } 
}

Dalam contoh kode di atas, kita memiliki sebuah interface Binatang yang memiliki satu method suara(). Ketiga kelas Kucing, Anjing, dan Burung meng-implementasikan interface Binatang dan meng-override method suara() sesuai dengan suara yang dihasilkan oleh binatang tersebut.

Contoh penggunaan pada main method:

java
Binatang[] binatang = new Binatang[3]; binatang[0] = new Kucing(); binatang[1] = new Anjing(); binatang[2] = new Burung(); for (int i = 0; i < binatang.length; i++) { binatang[i].suara(); }

Dalam contoh di atas, kita membuat array binatang yang berisi objek dari kelas Kucing, Anjing, dan Burung. Kita melakukan looping pada array tersebut dan memanggil method suara() pada setiap objek. Meskipun objek-objek tersebut memiliki tipe yang berbeda, namun karena semuanya meng-implementasikan interface Binatang dan memiliki method suara(), maka kita dapat memanggil method tersebut pada setiap objek. Hal ini menunjukkan konsep polimorfisme pada pemrograman berorientasi objek.



Penjelasan Lengkap tentang Object Oriented Thinking Penjelasan Lengkap tentang Object Oriented Thinking Reviewed by andre septian on Jumat, Februari 24, 2023 Rating: 5

Tidak ada komentar:

Diberdayakan oleh Blogger.