Wednesday, January 4, 2023

Konsep kelas, objek, inheritance, polymorphism, dan encapsulation merupakan konsep dasar dalam OOP (Oriented Object Programming). Berikut ini adalah penjelasan detail terkait masing-masing konsep tersebut: 

#Class

Kelas adalah sebuah template atau blue print yang menentukan atribut dan behavior dari sebuah object. Atribut adalah data yang disimpan di dalam object, sedangkan behavior adalah aksi yang dapat dilakukan oleh object tersebut. Contoh kelas adalah sebagai berikut:

class Mobil {
// Atribut
String merk;
String warna;
int tahunProduksi;

// Behavior
void jalankan() {
System.out.println("Mobil sedang berjalan");
}

void berhenti() {
System.out.println("Mobil berhenti");
}
}

#Objek

Objek adalah sebuah instance atau realisasi dari sebuah kelas. Objek memiliki atribut dan behavior yang sama dengan kelasnya, namun setiap objek dapat memiliki atribut yang berbeda satu sama lain. Contoh pembuatan objek adalah sebagai berikut:

Mobil mobil1 = new Mobil();
mobil1.merk = "Toyota";
mobil1.warna = "Merah";
mobil1.tahunProduksi = 2019;

Mobil mobil2 = new Mobil();
mobil2.merk = "Honda";
mobil2.warna = "Biru";
mobil2.tahunProduksi = 2020;

#Inheritance

Inheritance adalah konsep dimana sebuah class dapat "menurunkan" atribut dan behavior-nya kepada class lain yang disebut dengan child class. Dengan inheritance, proses pembuatan class baru menjadi lebih mudah karena tidak perlu menuliskan kembali atribut dan behavior yang sudah ada pada class parent-nya. Contoh penggunaan inheritance adalah sebagai berikut:

class Kendaraan {
// Atribut
String merk;
String warna;
int tahunProduksi;

// Behavior
void jalankan() {
System.out.println("Kendaraan sedang berjalan");
}

void berhenti() {
System.out.println("Kendaraan berhenti");
}
}

class Mobil extends Kendaraan {
// Atribut tambahan
int jumlahRoda;

// Behavior tambahan
void ngebut() {
System.out.println("Mobil sedang ngebut");
}
}

#Polymorphisme

Polymorphisme adalah konsep dimana sebuah object dapat memiliki banyak bentuk atau sifat. Ada dua jenis polymorphisme yang dikenal dalam OOP yaitu polymorphisme method dan polymorphisme tipe data. Polymorphisme method adalah dimana sebuah method dapat memiliki beberapa bentuk yang berbeda. Hal ini dapat dicapai dengan cara method overloading, yaitu dengan membuat method yang memiliki nama yang sama tetapi memiliki jumlah atau tipe parameter yang berbeda. Contoh penggunaan polymorphisme method adalah sebagai berikut:

class Matematika {
// Method overloading
int tambah(int a, int b) {
return a + b;
}

int tambah(int a, int b, int c) {
return a + b + c;
}

double tambah(double a, double b) {
return a + b;
}
}

class Main {
public static void main(String[] args) {
Matematika math = new Matematika();

System.out.println(math.tambah(1, 2)); // Output: 3
System.out.println(math.tambah(1, 2, 3)); // Output: 6
System.out.println(math.tambah(1.1, 2.2)); // Output: 3.3
}
}

#Polymorphisme tipe data

Polymorphisme tipe data adalah dimana sebuah tipe data dapat mengacu pada beberapa jenis object yang berbeda. Hal ini dapat dicapai dengan cara inheritance, yaitu dengan membuat child class yang mewarisi atribut dan behavior dari parent class-nya. Contoh penggunaan polymorphisme tipe data adalah sebagai berikut:

class Kendaraan {
// Atribut
String merk;

// Behavior
void jalankan() {
System.out.println("Kendaraan sedang berjalan");
}
}

class Mobil extends Kendaraan {
// Atribut tambahan
int jumlahRoda;

// Behavior tambahan
void ngebut() {
System.out.println("Mobil sedang ngebut");
}
}

class Motor extends Kendaraan {
// Atribut tambahan
int jumlahRoda;

// Behavior tambahan
void modifikasi() {
System.out.println("Motor sedang dimodifikasi");
}
}

class Main {
public static void main(String[] args) {
Kendaraan kendaraan1 = new Mobil();
kendaraan1.merk = "Toyota";
kendaraan1.jalankan();
// Output: Kendaraan sedang berjalan

Kendaraan kendaraan2 = new Motor();
kendaraan2.merk = "Honda";
kendaraan2.jalankan();
// Output: Kendaraan sedang berjalan
}
}
Di sini, tipe data Kendaraan dapat mengacu pada object mobil maupun motor, sehingga method jalankan dapat dipanggil pada kedua object tersebut. Namun, object mobil tidak dapat memanggil method ngebut karena method tersebut hanya ada pada class Mobil, dan sebaliknya object motor tidak dapat memanggil method modifikasi karena method tersebut hanya ada pada class Motor. 


#Encapsulation

Encapsulation adalah konsep dimana sebuah object dapat menyembunyikan atribut dan behavior-nya dari object lainnya. Encapsulation dapat dicapai dengan cara memberikan hak akses private pada atribut dan behavior yang tidak ingin diketahui oleh object lain. Hak akses private hanya dapat diakses oleh object yang memilikinya saja, sehingga menjamin kerahasia Contoh penggunaan encapsulation adalah sebagai berikut:

class Mobil {
// Atribut private
private String merk;
private String warna;
private int tahunProduksi;

// Method public untuk mengakses atribut private
public String getMerk() {
return merk;
}

public void setMerk(String merk) {
this.merk = merk;
}

public String getWarna() {
return warna;
}

public void setWarna(String warna) {
this.warna = warna;
}

public int getTahunProduksi() {
return tahunProduksi;
}

public void setTahunProduksi(int tahunProduksi) {
this.tahunProduksi = tahunProduksi;
}
}

class Main {
public static void main(String[] args) {
Mobil mobil = new Mobil();

// Mencoba mengakses atribut merk secara langsung
// Akan terjadi error karena atribut merk bersifat private
// mobil.merk = "Toyota";

// Mengakses atribut merk melalui method public
mobil.setMerk("Toyota");
System.out.println(mobil.getMerk()); // Output: Toyota
}
}
Di sini, atribut merk, warna, dan tahunProduksi diberikan hak akses private sehingga tidak dapat diakses secara langsung dari luar class Mobil. Namun, agar atribut tersebut dapat diakses, dibuat method public bernama setter dan getter yang bertugas untuk mengatur dan mengambil nilai atribut tersebut. Dengan demikian, atribut merk hanya dapat diakses melalui method setMerk dan getMerk, sehingga menjamin kerahasiaan atribut tersebut. Itulah penjelasan mengenai konsep kelas, objek, inheritance, polymorphism, dan encapsulation dalam OOP. Konsep-konsep tersebut merupakan dasar dari pemrograman OOP yang digunakan dalam bahasa pemrograman Java dan banyak bahasa pemrograman lainnya.

0 komentar:

Post a Comment