Pertemuan 2

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:

  1. Buka project AplikasiPertamaku.
  2. Buka file MainActivity.java.
  3. 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!");
    }
}
  1. Jalankan aplikasi (Run ▶️).
  2. Buka tab Logcat di bawah Android Studio, lalu ketik HERO_LOG di kolom pencarian.

Object Builder Simulator

Logcat Filter: HERO_LOG
I/System: Logcat started... waiting for actions.

Tugas Mandiri (Challenge)

Terapkan OOP di project Android Studio asli kamu:

  1. Buka MainActivity.java kamu.
  2. Bikin Class baru bernama Mahasiswa (bisa inner class atau file terpisah).
  3. Beri atribut: nama, nim, dan jurusan.
  4. Beri method belajar() yang mencetak Logcat: "Budi dari TI sedang belajar Android!"
  5. Di dalam fungsi onCreate(), instansiasi 2 objek Mahasiswa, isi datanya, dan panggil method belajar().
  6. Run aplikasi, buka tab Logcat, filter, dan Screenshot hasilnya! 📸