Praktikum Topik 2.6 Pemrograman Berorientasi Objek (OOP) dalam Java

Tujuan Praktikum

Peserta mampu:

  1. Menjelaskan dan mengidentifikasi penerapan pilar OOP (Encapsulation, Inheritance, Polymorphism, Abstraction) dalam Java.
  2. Menerapkan pilar OOP untuk membuat struktur dasar Automation Testing Framework sederhana.
  3. Menghubungkan konsep OOP dengan peran QA Engineer dalam membuat kode yang reusable, maintainable, dan scalable.

Deskripsi Singkat Aktivitas

Peserta akan membuat proyek Java sederhana yang mensimulasikan kerangka kerja automation testing dengan memanfaatkan prinsip OOP. Praktikum ini akan berfokus pada pembuatan class BaseTest, TestData, LoginService, dan LoginTest untuk memahami bagaimana konsep OOP digunakan dalam mengelola kode yang terstruktur.

Langkah-Langkah Praktikum

  1. Persiapan Lingkungan

      Instal Java JDK minimal versi 8.

      Gunakan IDE seperti IntelliJ IDEA, Eclipse, atau VS Code.

      Pastikan environment variable JAVA_HOME telah dikonfigurasi.

      Buat folder proyek baru: OOPAutomationPractice.

  1. Membuat Class BaseTest (Inheritance)

Buat file BaseTest.java:

public class BaseTest {

    public void setup() {

        System.out.println("Menjalankan setup test...");

    }

 

    public void teardown() {

        System.out.println("Menjalankan teardown test...");

    }

}

  1. Membuat Class TestData (Encapsulation)

Buat file TestData.java:

public class TestData {

    private String username;

    private String password;

    public TestData(String username, String password) {

        this.username = username;

        this.password = password;

    }

    public String getUsername() {

        return username;

    }

    public String getPassword() {

        return password;

    }

}

  1. Membuat Class LoginService (Abstraction)

Buat file LoginService.java:

public class LoginService {

    public boolean login(String username, String password) {

        System.out.println("Autentikasi pengguna...");

        return username.equals("admin") && password.equals("admin123");

    }

}

  1. Membuat Class LoginTest (Inheritance + Composition)

Buat file LoginTest.java:

public class LoginTest extends BaseTest {

    public void testLoginSuccess() {

        setup();

        TestData user = new TestData("admin", "admin123");

        LoginService service = new LoginService();

        boolean result = service.login(user.getUsername(), user.getPassword());

        if (result) {

            System.out.println("Login berhasil.");

        } else {

            System.out.println("Login gagal.");

        }

        teardown();

    }

    public static void main(String[] args) {

        LoginTest test = new LoginTest();

        test.testLoginSuccess();

    }

}

  1. Menjalankan Program

Compile semua file Java:

javac *.java

   

Jalankan:

java LoginTest

       

Output yang Diharapkan

Saat dijalankan, program akan menampilkan:

Menjalankan setup test...

Autentikasi pengguna...

Login berhasil.

Menjalankan teardown test...

Kriteria Keberhasilan

Peserta dinyatakan berhasil jika:

      Program dapat dijalankan tanpa error.

      Keempat prinsip OOP dapat diidentifikasi dalam kode.

      Output sesuai dengan yang diharapkan.

      Peserta dapat menjelaskan peran setiap class dalam framework.

Petunjuk Troubleshooting

      Jika terjadi error javac: command not found, pastikan Java telah terinstal dan JAVA_HOME sudah diset.

      Jika output tidak sesuai, periksa kembali parameter yang digunakan di TestData dan validasi di LoginService.

      Gunakan fitur “Run” di IDE untuk mempermudah eksekusi.

Estimasi Waktu

± 45 menit

Aksi Lanjutan / Refleksi

      Modifikasi LoginService agar menggunakan Polymorphism dengan membuat interface LoginMethod dan beberapa implementasinya.

      Tambahkan class CheckoutService untuk mensimulasikan proses checkout dalam e-commerce.

      Analisis: Bagaimana perubahan pada 1 class dapat memengaruhi class lain dalam framework?

 

Last modified: Sunday, 31 August 2025, 9:47 PM