Flashback OOP Java ☕
Sebelum terjun bikin UI estetik, kita harus throwback dikit nih. Kenapa? Karena di Android, HAMPIR SEMUA HAL ADALAH OBJEK! Tombol itu objek, teks itu objek, layar pun objek.
1. Class vs Object
Banyak yang masih ketuker nih. Gampangnya pakai analogi Cetakan Kue!
CLASS (Cetakan)
Rancangan atau blueprint abstrak. Kamu nggak bisa "memakan" cetakan kue kan? Ini cuma pendefinisian bentuknya.
OBJECT (Kue Asli)
Hasil jadinya! Punya wujud nyata, rasa spesifik, dan bisa dimanipulasi. 1 Class bisa bikin banyak Object.
2. Anatomi Sebuah Class
A Attribute (Sifat)
Karakteristik atau data yang disimpan objek. Di Java disebut Variabel. Misal: String nama;, int hp;.
M Method (Aksi)
Hal yang BISA DILAKUKAN oleh objek. Di Java disebut Fungsi/Void. Misal: public void serang() {}.
public class Hero {
// Attributes (Sifatnya)
String nama;
int healthPoint;
// Method (Aksinya)
public void serang() {
System.out.println(nama + " menyerang!");
}
}
3. Tiga Pilar Sakti OOP
Encapsulation
Membungkus data (private) agar tidak sembarangan diubah dari luar. Ngaksesnya pakai getter & setter layaknya kapsul obat.
Inheritance
Pewarisan sifat! Class `MobilSport` mewarisi sifat Class `Mobil`. Menghemat kita ngetik kode ulang (pakai kata kunci `extends`).
Polymorphism
Banyak bentuk. Method `bersuara()` kalau dipanggil sama Anjing bunyinya "Guk", kalau dipanggil Kucing bunyinya "Meow".
4. Hands-on: Mainan Logcat!
Di Android, kita nggak pakai System.out.println(), tapi pakai Log.d("TAG", "Pesan");. Logcat adalah console rahasia developer untuk melihat apa yang terjadi di balik layar aplikasi. Mari kita coba buat Object Hero!
Misi Kamu Hari Ini:
- Buka project
AplikasiPertamaku. - Buka file
MainActivity.java. - Di dalam fungsi
onCreate, tambahkan codingan OOP sederhana ini:
// 1. Kita bikin Class Hero di bawah (atau di file terpisah)
// 2. Sekarang kita bikin Object-nya dari Class Hero!
Hero heroSatu = new Hero();
heroSatu.nama = "Gatotkaca";
heroSatu.healthPoint = 1000;
Hero heroDua = new Hero();
heroDua.nama = "Arjuna";
heroDua.healthPoint = 800;
// 3. Kita suruh mereka beraksi, dan cetak di Logcat
Log.d("HERO_LOG", "Hero 1: " + heroSatu.nama + " HP: " + heroSatu.healthPoint);
heroSatu.serang();
// Class Hero di dalam MainActivity (Inner Class)
class Hero {
String nama;
int healthPoint;
public void serang() {
Log.d("HERO_LOG", nama + " mengeluarkan jurus pamungkas!");
}
}
- Jalankan aplikasi (Run ▶️).
- Buka tab Logcat di bawah Android Studio, lalu ketik
HERO_LOGdi kolom pencarian.
Object Builder Simulator
Tugas Mandiri (Challenge)
Terapkan OOP di project Android Studio asli kamu:
- Buka
MainActivity.javakamu. - Bikin Class baru bernama
Mahasiswa(bisa inner class atau file terpisah). - Beri atribut:
nama,nim, danjurusan. - Beri method
belajar()yang mencetak Logcat: "Budi dari TI sedang belajar Android!" - Di dalam fungsi
onCreate(), instansiasi 2 objek Mahasiswa, isi datanya, dan panggil method belajar(). - Run aplikasi, buka tab Logcat, filter, dan Screenshot hasilnya! 📸
Kunci Jawaban:
// 1. Buat Class-nya (Taruh di luar onCreate)
class Mahasiswa {
String nama;
String nim;
String jurusan;
public void belajar() {
Log.d("MAHASISWA_LOG", nama + " dari " + jurusan + " sedang belajar Android!");
}
}
// 2. Panggil di dalam onCreate()
Mahasiswa mhs1 = new Mahasiswa();
mhs1.nama = "Budi";
mhs1.nim = "123456";
mhs1.jurusan = "TI";
mhs1.belajar();
Mahasiswa mhs2 = new Mahasiswa();
mhs2.nama = "Siti";
mhs2.nim = "654321";
mhs2.jurusan = "SI";
mhs2.belajar();