๐งญ Konsep Dasar OOP (Object-Oriented Programming) dalam Java¶
Java adalah bahasa pemrograman berorientasi objek (Object-Oriented Programming, OOP), yang berfokus pada pembuatan kelas (class) dan objek (object) untuk membangun kode yang modular, fleksibel, dan mudah dipelihara. OOP memungkinkan pengembang untuk memodelkan entitas dunia nyata dalam kode, seperti mobil, mahasiswa, atau hewan. Bagian ini menjelaskan konsep dasar OOP, termasuk class, object, dan empat pilar utama: Encapsulation, Inheritance, Polymorphism, dan Abstraction.
๐ง 1. Apa Itu Class dan Object?¶
Class¶
Class adalah cetak biru (blueprint) atau template yang mendefinisikan struktur (data) dan perilaku (aksi) dari sebuah entitas. Class berisi field (atribut) dan method (fungsi).
public class Mobil {
// Field
String merk;
int tahun;
}
Object¶
Object adalah instance nyata dari class, dibuat menggunakan kata kunci new. Object mewakili wujud konkret dari class.
public class MobilDemo {
public static void main(String[] args) {
// Membuat object dari class Mobil
Mobil m1 = new Mobil();
m1.merk = "Toyota";
m1.tahun = 2020;
System.out.println("Mobil: " + m1.merk + ", Tahun: " + m1.tahun);
}
}
๐จ๏ธ Output:
Mobil: Toyota, Tahun: 2020
๐ Catatan: Class seperti desain rumah, sedangkan object adalah rumah yang dibangun berdasarkan desain tersebut.
๐ฏ 2. Empat Pilar OOP¶
OOP di Java dibangun di atas empat pilar utama yang memungkinkan pembuatan kode yang terstruktur dan efisien.
a) Encapsulation (Enkapsulasi)¶
Encapsulation menyembunyikan detail implementasi data dan hanya memberikan akses terkontrol melalui getter dan setter. Ini meningkatkan keamanan dan fleksibilitas kode.
public class Mahasiswa {
// Field private untuk encapsulation
private String nama;
// Getter
public String getNama() {
return nama;
}
// Setter
public void setNama(String nama) {
this.nama = nama;
}
}
Penggunaan:¶
public class EncapsulationDemo {
public static void main(String[] args) {
Mahasiswa mhs = new Mahasiswa();
mhs.setNama("Marno");
System.out.println("Nama: " + mhs.getNama());
}
}
๐จ๏ธ Output:
Nama: Marno
๐ก Tips: Gunakan modifier
privateuntuk field dan sediakan methodpublic(getter/setter) untuk mengontrol akses.
b) Inheritance (Pewarisan)¶
Inheritance memungkinkan kelas anak mewarisi field dan method dari kelas induk, mempromosikan reuse kode.
public class Hewan {
public void makan() {
System.out.println("Hewan sedang makan");
}
}
class Kucing extends Hewan {
public void suara() {
System.out.println("Meong");
}
}
Penggunaan:¶
public class InheritanceDemo {
public static void main(String[] args) {
Kucing kucing = new Kucing();
kucing.makan(); // Diwarisi dari Hewan
kucing.suara(); // Method khusus Kucing
}
}
๐จ๏ธ Output:
Hewan sedang makan
Meong
๐ Catatan: Gunakan kata kunci
extendsuntuk mewarisi kelas induk.
c) Polymorphism (Polimorfisme)¶
Polymorphism memungkinkan satu method memiliki banyak perilaku tergantung pada objek yang memanggilnya, biasanya melalui method overriding.
public class Bentuk {
public void gambar() {
System.out.println("Menggambar bentuk");
}
}
class Lingkaran extends Bentuk {
@Override
public void gambar() {
System.out.println("Menggambar lingkaran");
}
}
Penggunaan:¶
public class PolymorphismDemo {
public static void main(String[] args) {
Bentuk bentuk = new Lingkaran(); // Polymorphism
bentuk.gambar();
}
}
๐จ๏ธ Output:
Menggambar lingkaran
๐ก Info: Polymorphism memungkinkan fleksibilitas dengan menggunakan tipe induk untuk merujuk ke objek anak.
d) Abstraction (Abstraksi)¶
Abstraction menyembunyikan kompleksitas implementasi dan hanya menampilkan fungsi esensial melalui kelas abstrak atau interface.
public abstract class Kendaraan {
public abstract void jalan();
}
public class Mobil extends Kendaraan {
@Override
public void jalan() {
System.out.println("Mobil berjalan di jalan raya");
}
}
Penggunaan:¶
public class AbstractionDemo {
public static void main(String[] args) {
Kendaraan kendaraan = new Mobil();
kendaraan.jalan();
}
}
๐จ๏ธ Output:
Mobil berjalan di jalan raya
๐ Catatan: Gunakan kata kunci
abstractuntuk kelas atau method yang tidak memiliki implementasi langsung.
๐งช Studi Kasus: Class dan Object¶
Berikut adalah contoh sederhana yang menggabungkan konsep class dan object.
public class Mahasiswa {
// Field
String nama;
int umur;
// Method
public void sapa() {
System.out.println("Halo, nama saya " + nama + ", umur " + umur);
}
}
class MahasiswaDemo {
public static void main(String[] args) {
// Membuat object
Mahasiswa m1 = new Mahasiswa();
m1.nama = "Marno";
m1.umur = 22;
m1.sapa();
}
}
๐จ๏ธ Output:
Halo, nama saya Marno, umur 22
๐ Kesimpulan¶
Empat pilar OOP membentuk dasar untuk membangun aplikasi Java yang terstruktur:
| Konsep | Penjelasan Sederhana |
|---|---|
| Class | Cetak biru untuk mendefinisikan struktur dan perilaku. |
| Object | Instance nyata dari class. |
| Encapsulation | Melindungi data dengan akses terkontrol. |
| Inheritance | Mewarisi fitur dari kelas induk untuk reuse kode. |
| Polymorphism | Satu nama method dengan banyak perilaku. |
| Abstraction | Menyembunyikan kompleksitas, menampilkan esensi. |
Memahami konsep-konsep ini adalah langkah awal untuk menguasai OOP di Java.
๐ Langkah Selanjutnya¶
Pelajari lebih lanjut tentang Encapsulation (Enkapsulasi) untuk memahami cara melindungi data dalam class dengan lebih mendalam.
โฌ ๏ธ Kembali: Membuat Class dan Object