![]() |
| Bukti Testing |
Pendahuluan
Setelah implementasi Zeos Connection Pooling pada backend berbasis Brook Framework dan SQLite3, dilakukan pengujian performa untuk mengukur stabilitas, throughput, serta kemampuan sistem dalam menangani akses konkuren.
Pengujian dilakukan menggunakan utilitas ApacheBench (ab.exe) yang merupakan bagian dari Apache HTTP Server.
Konfigurasi Connection Pool
Implementasi Connection Pool dilakukan pada saat inisialisasi server dengan kode berikut:
procedure TFormUtama.acStartExecute(Sender: TObject);
begin
// --- KONFIGURASI ZEOS CONNECTION POOL ---
ZConnectiondb.Disconnect;
// Aktifkan fitur pooling bawaan Zeos 8.0
ZConnectiondb.Properties.Values['controls'] := 'true';
ZConnectiondb.Properties.Values['pooled'] := 'true';
// Pengaturan kapasitas pool
ZConnectiondb.Properties.Values['maxconnections'] := '50';
ZConnectiondb.Properties.Values['idle_timeout'] := '60';
try
ZConnectiondb.Connect;
except
on E: Exception do
begin
ShowMessage('Gagal inisialisasi Database Pool: ' + E.Message);
Exit;
end;
end;
// Jalankan HTTP Server Brook
BrookURLRouter1.Open;
BrookHTTPServer1.Open;
end;
Konfigurasi tersebut memungkinkan Zeos mengelola koneksi database secara otomatis sehingga koneksi dapat digunakan ulang (reuse) tanpa perlu membuat koneksi baru pada setiap request.
Metodologi Pengujian
1. Verifikasi Alat Penguji
Pengujian menggunakan ApacheBench (ab.exe) yang tersedia pada paket Apache HTTP Server.
Lokasi executable:
C:\xampp\apache\bin\ab.exe
ApacheBench dipilih karena ringan, portable, serta mampu menghasilkan simulasi beban secara cepat tanpa ketergantungan tambahan.
2. Skenario Pengujian
Backend dijalankan pada port:
http://localhost:8888
Kemudian dilakukan simulasi akses serentak menggunakan perintah berikut:
C:\xampp\apache\bin\ab.exe -n 500 -c 50 -H "Authorization: ismail" http://localhost:8888/barang
Parameter Pengujian
| Parameter | Nilai |
|---|---|
| Total Request (-n) | 500 |
| Concurrent User (-c) | 50 |
| Authorization Header | ismail |
| Endpoint | /barang |
Hasil Pengujian
A. Ringkasan Kinerja Utama
| Metrik | Hasil |
|---|---|
| Time Taken for Tests | 0.029 detik |
| Complete Requests | 500 |
| Failed Requests | 0 |
| Non-2xx Responses | 500 |
| Requests per Second | 17,040.42 Req/Sec |
| Transfer Rate | 2,795.69 KB/Sec |
Interpretasi
Seluruh 500 request berhasil diproses.
Tidak ditemukan kegagalan akses database.
Tidak terjadi error akibat konflik akses simultan.
Server mampu menangani sekitar 17 ribu request per detik.
B. Waktu Respons (Connection Times)
| Tahapan | Minimum | Rata-rata | Median | Maksimum |
|---|---|---|---|---|
| Connect | 0 ms | 0 ms | 0 ms | 2 ms |
| Processing | 2 ms | 3 ms | 3 ms | 4 ms |
| Waiting | 0 ms | 2 ms | 2 ms | 4 ms |
| Total | 2 ms | 3 ms | 3 ms | 4 ms |
Analisis Latensi
Waktu koneksi yang mendekati nol menunjukkan bahwa koneksi database telah tersedia di dalam pool dan tidak memerlukan proses pembentukan koneksi baru.
Rata-rata waktu respons hanya sekitar 3 ms dengan waktu maksimum 4 ms.
C. Distribusi Persentase Waktu Respons
| Persentase Request | Waktu Respons |
|---|---|
| 50% | 3 ms |
| 66% | 3 ms |
| 75% | 3 ms |
| 80% | 3 ms |
| 90% | 3 ms |
| 95% | 3 ms |
| 98% | 3 ms |
| 99% | 3 ms |
| 100% | 4 ms |
Interpretasi
Hampir seluruh request memiliki waktu respons yang konsisten pada kisaran 3 ms.
Bahkan request paling lambat tetap dapat diselesaikan hanya dalam waktu 4 ms.
Analisis Hasil
1. Validasi Connection Pool
Indikator utama keberhasilan implementasi Connection Pool adalah:
Failed Requests : 0
Hasil tersebut menunjukkan bahwa seluruh request berhasil diproses tanpa terjadinya kegagalan akses database.
Tidak ditemukan kondisi:
Database Locked
Deadlock
Timeout Koneksi
Thread Crash
2. Efisiensi Latensi
Rata-rata waktu respons sebesar 3 ms menunjukkan bahwa:
Overhead pembentukan koneksi berhasil diminimalkan.
Koneksi database dapat digunakan kembali melalui pool.
Brook Framework mampu menangani request secara efisien.
Native Pascal menghasilkan performa eksekusi yang sangat cepat.
3. Throughput Sistem
Dengan capaian:
17,040.42 Request/Sec
server mampu menangani ribuan permintaan dalam waktu yang sangat singkat.
Nilai throughput tersebut menunjukkan bahwa arsitektur backend memiliki kapasitas yang memadai untuk melayani beban kerja tinggi pada lingkungan internal maupun layanan API berskala menengah.
Kesimpulan
Implementasi Zeos Connection Pool pada SQLite3 berhasil meningkatkan efisiensi pengelolaan koneksi database.
Berdasarkan hasil pengujian menggunakan ApacheBench dengan 500 request dan 50 koneksi konkuren:
✓ Seluruh request berhasil diproses tanpa kegagalan.
✓ Tidak terjadi konflik akses database.
✓ Rata-rata waktu respons hanya 3 ms.
✓ Waktu respons maksimum hanya 4 ms.
✓ Throughput mencapai 17.040 request per detik.
Dengan hasil tersebut, arsitektur backend berbasis Brook Framework, Zeos Database Library, dan SQLite3 dapat dikategorikan sebagai Production Ready untuk kebutuhan sistem internal dengan tingkat transaksi yang tinggi.

0 komentar