Back to IF3110 Pengembangan Aplikasi Berbasis Web

Topic: Performance Engineering Fundamentals

Questions/Cues

  • Definisi PE vs Testing

  • 3 Kategori Performa

  • Tujuan Utama PE

  • Dampak Kegagalan (Contoh)

  • PE dalam SDLC

  • Strategi Pemodelan

Reference Points

  • Slides: IF3110-12-Performance-Engineering (Pages 1-12)

  • Book: Foundations of Software and System Performance Engineering (André B. Bondi)

Apa itu Performance Engineering (PE)?

Proses sistematis di mana perangkat lunak diuji dan di-tune (disesuaikan) dengan tujuan mencapai performa yang dibutuhkan.

  • Bukan sekadar testing di akhir: PE adalah usaha proaktif, bukan reaktif.

  • 3 Kategori Utama (3S):

    1. Speed: Seberapa cepat respons sistem? (Latency).

    2. Scalability: Bisakah sistem menangani lonjakan beban pengguna? (Throughput).

    3. Stability: Apakah sistem tetap berjalan normal di bawah tekanan beban tinggi? (Availability).

Mengapa PE Penting? (Objektif)

  1. Pendapatan (Revenue): Sistem lambat = pengguna pergi = rugi.

  2. Efisiensi Infrastruktur: Mengoptimalkan penggunaan server agar tidak boros biaya (cloud cost).

  3. Mengurangi Biaya Maintenance: Mencegah system failure fatal yang mengharuskan penulisan ulang kode dari nol.

Studi Kasus Kegagalan

  • Kasus Pajak (DJP Online): Bandwidth habis saat deadline pelaporan pajak karena lonjakan trafik.

  • Kasus Paspor: Antrean menumpuk karena permohonan fiktif (bot), menunjukkan kurangnya validasi beban.

  • Trading Saham: Keterlambatan sekian milidetik bisa berarti kerugian finansial besar.

Integrasi PE dengan Software Engineering

PE harus berjalan paralel dengan siklus pengembangan (SDLC), bukan fase terpisah di akhir.

  • Requirements: Menentukan target performa (misal: response time < 2 detik).

  • Design/Architecture: Memilih teknologi yang scalable (misal: NoSQL vs SQL, Monolith vs Microservices).

  • Implementation: Coding dengan efisiensi memori dan CPU.

  • Testing: Load testing dan profiling.

Strategi Pemodelan Performa

Sebelum coding, kita bisa memprediksi performa menggunakan model:

  1. Simple-Model Strategy: Mulai dengan model tersimpel untuk mengidentifikasi masalah arsitektur dasar.

  2. Best and Worst-case Strategy: Hitung estimasi terbaik dan terburuk untuk menetapkan batas atas dan bawah (managing uncertainty).

  3. Adapt-to-Precision Strategy: Detail model disesuaikan dengan seberapa banyak kita tahu tentang sistem saat itu.

Validasi Model

Model hanyalah prediksi. Penting untuk melakukan Verifikasi (apakah modelnya benar secara logika?) dan Validasi (apakah hasil model sesuai kenyataan di lapangan?). Ini proses berulang (iteratif).

Summary

Performance Engineering adalah disiplin proaktif untuk memastikan Speed, Scalability, dan Stability sistem sejak awal desain, bukan hanya saat testing akhir. Tujuannya bukan hanya kecepatan teknis, tapi juga efisiensi biaya dan keberlangsungan bisnis. Dengan menggunakan pemodelan awal (seperti best/worst case scenario), pengembang dapat mendeteksi risiko arsitektur sebelum kode ditulis.