Praktikum Topik 2.6 Pemrograman Berorientasi Objek (OOP) dalam Java
Tujuan Praktikum
Peserta mampu:
- Menjelaskan dan mengidentifikasi penerapan pilar OOP (Encapsulation, Inheritance, Polymorphism, Abstraction) dalam Java.
- Menerapkan pilar OOP untuk membuat struktur dasar Automation Testing Framework sederhana.
- 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
- 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.
- 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...");
}
}
- 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;
}
}
- 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");
}
}
○
- 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();
}
}
- 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?