2.5.3 Struktur dasar Java: Variabel, fungsi, dan kelas

Untuk memahami Java dari sudut pandang seorang QA (Quality Assurance), kita perlu memulainya dari pemahaman terhadap struktur dasar pemrograman itu sendiri. Java adalah bahasa yang berorientasi objek (object-oriented programming/OOP), artinya struktur dasarnya berpusat pada objek yang memiliki data (disebut variable) dan perilaku (disebut fungsi atau method). Bagi seorang QA, terutama yang akan menulis automation script atau melakukan analisis kode backend, memahami elemen-elemen ini adalah hal fundamental.

Mari kita analogikan dengan dunia nyata: bayangkan kamu sedang menguji aplikasi e-commerce. Dalam satu halaman login, kamu bisa melihat bahwa ada input field untuk email dan password, serta tombol login yang jika diklik akan melakukan aksi tertentu. Semua interaksi ini, baik yang kamu lihat maupun yang terjadi di balik layar, bisa direpresentasikan dalam kode Java menggunakan struktur: class, variable, dan fungsi.

1. Class: Kerangka Dasar (Blueprint)

Dalam Java, class adalah pondasi utama dalam membangun struktur program. Bisa dibilang, class adalah cetakan atau desain awal dari sesuatu yang ingin kita buat dalam dunia nyata, baik itu entitas seperti "Produk", "Pengguna", atau "Transaksi".

Secara teknis, class berisi dua hal utama:

      Variable (atau field): yang menyimpan data atau atribut.

      Fungsi (atau method): yang mendefinisikan perilaku atau aksi dari data tersebut.

Sebagai analogi:

Jika kita memiliki class Mobil, maka variabelnya bisa berupa warna, merek, dan kecepatanMaksimum, sedangkan fungsinya bisa berupa jalan(), rem(), atau klakson().

Namun, class bukanlah benda nyata, ia hanyalah kerangka dasar. Untuk menjadikannya sesuatu yang bisa digunakan, kita harus membuat object.

Object: Wujud Nyata dari Class

Object adalah hasil dari instansiasi class, yaitu proses membuat versi nyata dari desain yang ada di class. Ketika kamu menulis Mobil mobilSaya = new Mobil(); kamu sedang menciptakan object nyata bernama mobilSaya dari class Mobil.

Setiap object memiliki data dan perilaku sendiri, walaupun berasal dari class yang sama:

Mobil mobilA = new Mobil();
mobilA.warna = "Merah";

Mobil mobilB = new Mobil();
mobilB.warna = "Hitam";

Di sini, mobilA dan mobilB berasal dari class yang sama, tetapi memiliki atribut (warna) yang berbeda.

Konsep class dan object sangat penting karena:

      Membantu memecah program menjadi bagian-bagian modular.

      Memudahkan pengorganisasian kode dan penggunaan kembali (reuse).

      Memungkinkan tim besar untuk bekerja secara terpisah tapi terintegrasi, karena setiap fitur dapat dibungkus dalam class-nya sendiri.

Untuk QA Engineer yang terlibat dalam automation testing:

      Class digunakan untuk mengelompokkan skenario test tertentu. Misalnya:

      LoginTest.java: untuk menguji login.

      CheckoutTest.java: untuk menguji alur belanja.

      Objek digunakan untuk mengakses halaman web atau elemen UI, seperti:

      LoginPage login = new LoginPage(driver);

      login.enterUsername("user123");

2. Variable: Tempat Menyimpan Data

Variable digunakan untuk menyimpan informasi yang dibutuhkan oleh program saat dijalankan. Data bisa berupa teks (seperti nama pengguna), angka (seperti harga produk), atau nilai boolean (seperti hasil verifikasi login: true/false). Variable sangat penting dalam testing karena digunakan untuk menyimpan input dan output dari sistem yang sedang diuji.

Java adalah bahasa yang strongly typed, artinya setiap variable harus dideklarasikan dengan tipe data tertentu. Ini membantu QA dalam mendeteksi error lebih awal, misalnya ketika kita mencoba memasukkan angka ke tempat yang seharusnya menerima teks. Contoh variable:

String username = "qa_user";
int price = 100000;
boolean isLoginSuccess = false;

3. Fungsi (Method): Logika atau Aksi

Fungsi atau method adalah bagian dari kode yang digunakan untuk melakukan tugas tertentu. Di dalam fungsi, kamu bisa mengatur aksi seperti login ke sistem, menambahkan barang ke keranjang, atau memverifikasi tampilan tombol. Dalam automation testing, fungsi seringkali dipakai untuk menulis urutan langkah pengujian yang bisa dipanggil berulang kali agar tidak menulis ulang kode (code duplication).

Contoh fungsi:

public void login(String username, String password) {
    driver.findElement(By.id("email")).sendKeys(username);
    driver.findElement(By.id("password")).sendKeys(password);
    driver.findElement(By.id("loginButton")).click();
}

Fungsi di atas menerima dua parameter (username dan password) dan digunakan untuk mengisi login form, kemudian menekan tombol. Fungsi seperti ini sangat umum dalam Selenium-based automation test.

  Mengapa QA Perlu Memahami Ini?

Banyak tools dan framework untuk automation test seperti Selenium WebDriver, Appium, Cucumber, dan lainnya menyediakan API dalam berbagai bahasa, termasuk Java. Dalam banyak perusahaan, Java menjadi pilihan utama karena kestabilannya dan ekosistem tools yang lengkap. Oleh karena itu, QA yang mampu memahami struktur dasar Java dapat:

      Menulis automation test script dengan lebih baik dan efisien.

      Bekerja lebih dekat dengan developer karena familiar dengan struktur kode backend.

      Mampu membaca, memahami, bahkan me-review logic aplikasi ketika troubleshooting bug.

      Membangun framework test modular berbasis OOP seperti POM (Page Object Model).

Dengan memahami struktur dasar Java ini, kamu sedang membangun pondasi untuk menjadi QA Engineer yang mampu beradaptasi di lingkungan kerja modern, baik dalam peran manual maupun automation. Berikut adalah penjelasan tambahan terkait struktur dalam Java:

   Keyword static dan penggunaannya
Method atau variable static bisa diakses tanpa membuat objek class-nya terlebih dahulu. Dalam automation test, ini berguna untuk fungsi utilitas seperti waitForElement() atau getTimestamp().

   this keyword untuk referensi diri sendiri
Digunakan untuk membedakan antara variable lokal dan variable class (instance variable).
Berguna saat menginisialisasi objek atau passing data antar fungsi dalam class yang sama.

   Scope variable: local, instance, dan class level
-
Local: hanya digunakan dalam satu blok (biasanya dalam method).
- Instance: spesifik untuk objek yang dibuat dari class.
- Class/static:
dimiliki oleh seluruh class, berbagi antar instance.
QA perlu memahami ini agar tidak terjadi konflik nilai saat menjalankan test paralel.

   Naming convention di Java
-
Class: PascalCase (LoginPage, CartTest)
- Method/variable: camelCase (
clickLoginButton, totalAmount)
Konvensi ini penting untuk keterbacaan dan kolaborasi lintas tim (QA–Dev).

   Relevansi terhadap debugging dan maintainability
Struktur variable dan method yang rapi akan memudahkan QA menemukan bug dalam script test. Class yang modular membuat automation test lebih mudah diperbarui saat ada perubahan fitur.

   if statement: Pengambilan Keputusan dalam Program
Digunakan untuk menjalankan blok kode tertentu berdasarkan kondisi. Misalnya:

if (harga > 100000) {
    System.out.println("Produk termasuk kategori premium");
}

Dalam automation test, if berguna untuk membuat keputusan dinamis saat menjalankan test (misalnya validasi kondisi UI atau hasil respon).

   for loop: Pengulangan Terstruktur
Dipakai untuk mengeksekusi kode secara berulang, cocok untuk memproses list produk atau elemen web. Contoh:

for (int i = 0; i < 3; i++) {
    System.out.println("Data ke-" + i);
}

Dalam QA, for loop umum digunakan untuk mengecek banyak elemen dalam satu halaman atau melakukan validasi berulang.

  Studi Kasus: Menampilkan Informasi Produk di E-Commerce

Bayangkan kamu sedang membuat sistem backend sederhana untuk menampilkan daftar produk. Setiap produk punya nama, harga, dan status ketersediaan. Kita ingin membuat program Java yang:

      Menyimpan informasi produk (menggunakan variable)

      Menampilkan informasi produk (menggunakan fungsi)

      Mengelompokkan semua dalam satu class bernama Produk

Struktur Program Java

Membuat class Produk :

public class Produk {
    // Variable untuk menyimpan data produk
    String nama = "Kaos Polos";
    double harga = 75000;
    boolean tersedia = true;

    // Fungsi untuk menampilkan informasi produk
    void tampilkanInfo() {
        System.out.println("Nama Produk: " + nama);
        System.out.println("Harga: Rp" + harga);
        System.out.println("Tersedia: " + (tersedia ? "Ya" : "Tidak"));
    }

    // Fungsi utama untuk menjalankan program
    public static void main(String[] args) {
        Produk produk = new Produk();   // Membuat satu objek produk
        produk.tampilkanInfo();         // Memanggil fungsi untuk menampilkan info
    }
}

Output Saat Program Dijalankan:

Nama Produk: Kaos Polos 
Harga: Rp75000.0 
Tersedia: Ya 
---------------------------- 

Penjelasan:

      Class: Blueprint atau cetakan untuk membuat objek.

public class Produk { ... }

Class Produk menyatukan variable dan fungsi menjadi satu kesatuan logis. Objek produk akan dibuat berdasarkan class ini.

      Variable: Tempat menyimpan data atau informasi.

String nama;
double harga;
boolean tersedia;

Ketiga variable di atas menyimpan nama produk, harga, dan status ketersediaan.

      Fungsi (Method): Sekumpulan kode yang melakukan tugas tertentu dan bisa dipanggil berulang kali.

void tampilkanInfo() {
    System.out.println("Nama Produk: " + nama);
}

Fungsi ini bertugas menampilkan data produk ke konsol.

      main(): Fungsi khusus yang dijalankan pertama kali oleh Java. Di sini kita membuat dan menjalankan objek produk langsung dari class Produk.

Last modified: Thursday, 4 September 2025, 12:27 AM