2.5.2 Studi Kasus: Penggunaan Java sebagai backend service pada aplikasi e-commerce

Dalam pengembangan aplikasi modern, terutama aplikasi e-commerce, arsitektur sistem dibagi menjadi dua bagian besar: frontend dan backend. Frontend adalah tampilan yang dilihat dan digunakan oleh pengguna, sementara backend adalah "mesin" di balik layar yang mengatur bagaimana data diproses, disimpan, dan dikirim kembali ke frontend. Di sinilah Java sering kali menjadi pilihan utama sebagai backend service, terutama dalam sistem yang berskala besar dan membutuhkan performa tinggi serta stabilitas jangka panjang.

Java telah terbukti andal dalam mengelola transactional systems, seperti sistem pembayaran, pengelolaan stok produk, validasi pengguna, dan manajemen keranjang belanja. Framework seperti Spring Boot memungkinkan developer membangun microservice yang cepat, efisien, dan siap digunakan dalam lingkungan produksi. Layanan backend berbasis Java biasanya dikemas sebagai REST API, yang dapat diakses oleh frontend web, aplikasi mobile, bahkan sistem pihak ketiga.

Dari sisi QA, penting bagi kita untuk memahami bahwa ketika kita menguji aplikasi e-commerce, tidak semua proses berada di frontend. Misalnya, saat pengguna mengklik tombol "Checkout", frontend hanya mengirimkan permintaan (request) ke backend. Logika yang mengecek apakah stok mencukupi, menghitung total harga, memvalidasi diskon, dan menyimpan transaksi ke database, semuanya terjadi di backend Java.

Dengan memahami peran Java sebagai backend service, QA dapat:

Mengidentifikasi titik-titik pengujian penting di level API/backend.

Merancang test case yang tidak hanya fokus pada tampilan, tetapi juga pada data dan proses logika.

  Menggunakan automation tools seperti Rest Assured untuk menguji endpoint backend langsung.

  Memahami log aplikasi saat terjadi error, karena sebagian besar pesan error ditangani oleh sistem backend.

  Beberapa alasan mengapa Java digunakan untuk backend e-commerce:

      Stabil & scalable: Cocok untuk aplikasi dengan trafik tinggi (ribuan transaksi per detik).

      Framework yang powerful seperti Spring Boot untuk REST API dan microservice.

      Keamanan tinggi: Cocok untuk menangani proses sensitif seperti otentikasi dan pembayaran.

      Terintegrasi dengan baik dengan database dan message broker (MySQL, PostgreSQL, Kafka, RabbitMQ).

      Dukungan multithreading dan asynchronous: Menangani banyak request secara paralel.

      Kompatibel dengan DevOps pipeline: Bisa di-build dan dijalankan otomatis dengan Jenkins, Docker, Kubernetes.

Contoh proses backend berbasis Java dalam aplikasi e-commerce:

      Autentikasi pengguna saat login

      Menambahkan produk ke keranjang

      Validasi stok produk

      Perhitungan diskon dan ongkir

      Pembuatan invoice dan order ID

      Integrasi ke payment gateway

  Studi Kasus

Sebuah tim developer menggunakan Java dan Spring Boot untuk membangun layanan checkout dalam aplikasi e-commerce. Layanan ini bertanggung jawab untuk menangani transaksi dari ribuan pengguna per hari, termasuk validasi stok, kalkulasi harga, diskon, dan pemrosesan pembayaran.

Proses Checkout :

  1. Pengguna klik “Checkout” → Frontend kirim request ke /api/checkout
  2. Java backend memvalidasi apakah semua item tersedia.
  3. Backend menghitung subtotal, diskon, ongkir, dan total pembayaran.
  4. Data disimpan ke database → order ID dibuat.
  5. Backend memanggil API payment gateway (seperti Midtrans, Xendit).
  6. Jika berhasil → status transaksi = “paid” dan stok dikurangi.
  7. Response dikembalikan ke frontend → pengguna melihat halaman sukses.

Peran QA:

      Menguji endpoint /api/checkout dengan berbagai skenario (stok habis, harga salah, diskon valid/tidak valid).

      Menggunakan Postman atau Rest Assured untuk mengirim request langsung ke backend tanpa UI.

      Memastikan bahwa jika API gagal (misalnya payment gagal), sistem menampilkan pesan error yang tepat.

Melihat log Java backend untuk memastikan tidak ada NullPointerException, error 500, atau kesalahan logika lainnya

 

 

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