Rabu, 30 Desember 2009

PERBANDINGAN PERFORMA TEKNIK RELASIONAL DAN PROSEDURAL DALAM DATABASE

Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com

PERBANDINGAN PERFORMA TEKNIK RELASIONAL DAN PROSEDURAL DALAM DATABASE


Djoni Darmawikarta
djoni_darmawikarta@yahoo.ca




Lisensi Dokumen:
Copyright © 2003 IlmuKomputer .Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan
secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus
atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap
dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin
terlebih dahulu dari IlmuKomputer.Com.

Pemanfaatan teknologi relasional didalam database membantu pencapaian performance (kecepatan
pengolahan data) yang optimum dan kemudahan pengertian program sehingga pemeliharaannya jadi
lebih nyaman. Dua manfaat ini tidaklah susah dicapai bila kita, sebagai developer, berani berpaling
dari tradisi memprogram teknik prosedural ke relasional.

Untuk memperjelas dan meyakinkan keunggulan teknik pemrograman relasional dibanding
prosedural dalam pengolahan data didalam database relasional, berikut contoh sederhana yang
membuktikannya. Contoh menggunakan database MySQL.

Contoh kasus

Setiap akhir hari, besarnya transaksi penjualan diminta untuk diringkas per kode produk. Ringkasan
(total penjualan) adalah netto, yaitu besar penjualan dikurangi diskon. Ringkasan disimpan dalam
tabel untuk digunakan selanjutnya, misalnya untuk pelaporan pimpinan, masukan (input) aplikasi lain
seperti pemesanan ke pabrikan produk dan system akutansi.

Tabel transaksi_penjualan, seperti ditunjukkan dilayar mysql monitor Gambar 1 berikut ini, memiliki
tiga kolom yaitu kode_produk, besar_penjualan, dan diskon.
1Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com


Gambar 1 Struktur tabel transaksi_penjualan.
Sedang tabel penjualan_harian memiliki dua kolom (kode_produk dan total_penjualan) seperti
ditunjukkan di Gambar 2.


Gambar 2 Struktur tabel penjualan_harian.

Pelaksanaan pemrograman prosedural misalnya seperti di Script 1 berikut ini (dalam bentuk stored
produre).

2Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com


Script 1 Program prosedural (nama stored procedurenya adalah prosedur_penj_har)

Terlihat, program prosedural ini memproses transaksi row demi row dengan menggunakan cursor.
Sedang pemrograman relasional adalah sebagai berikut (Script 2)



Script 2 Program relasional (nama stored procedurenya adalah relasional_penj_har).

Terlihat betapa jauh lebih sederhananya yang program relasional dibanding prosedural, karena yang
relasional memanfaatkan teknologi databasenya dengan benar, meminta databasenya untuk
melaksanakan kerumitan langkah-langkah dalam bentuk perintah SQL yang sederhana.

Untuk mengadu kecepatan dan memahami karakteristik kedua jenis program diatas, kita gunakan tiga
macam volume data transaksi, yaitu 1000, 100000, dan 1000000. Script 3 adalah stored procedure
untuk mengisikan 1000 transaksi. Untuk volume 100000 dan 1000000, parameter counter didalam
stored procedure ini disesuaikan dengan kedua volume ini.

3Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com

Script 3 Stored procedure untuk loading 1000 data transaksi.

Semua script diatas harus di-compile terlebih dahulu sebelum dapat dijalankan. Contoh
meng-compile dan menjalankannya (call statement) adalah seperti dicontohkan di Gambar 3 dibawah
ini untuk load_1000_trans_penj.


Gambar 3 Compile dan Call stored procedure load_1000_trans_penj.

Pastikan data sudah masuk kedalam tabel, misalnya dengan 2 buah query seperti di Gambar 4 berikut
(banyaknya data dan contoh isinya)
4Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com


Gambar 4 Memastikan data yang diinginkan sudah masuk kedalam tabel transaksi_penjualan.

Berikut eksekusi program prosedural dan relasional untuk 1000 buah transaksi dan kecepatan
keduanya. Setelah ekekusi prosedural, tabel penjualan_harian dikosongkan terlebih dahulu sebelum
eksekusi relasional agar pengukuran setara (keduanya mulai dari tabel penjualan_harian yang
kosong).



Gambar 5 Perbandingan kecepatan prosedural dan relasional untuk 1000 transaksi penjualan.

Berikut berturu-turut pelaksanaan pengukuran kecepatan untuk volume 100000 dan 1000000.

5Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com


Gambar 6 Perbandingan kecepatan prosedural dan relasional untuk 10000 dan 1000000 transaksi penjualan.

Ringkasan pengukuran kecepatan untuk ketiga macam volume ada di Tabel 1 berikut.

Tabel 1 Ringkasan kecepatan Prosedural dan Relasional untuk volume transaksi 1000, 100000, dan 1000000.

VOLUME PROSEDURAL RELASIONAL
1000 0.04 0.02
100000 1.18 0.27
1000000 42.33 1.72

Terlihat bahwa makin besar volume transaksi (banyaknya baris data didalam tabel) makin nyata
keunggulan kecepatan program relasional.


Kesimpulan
Optimumkan keampuhan teknologi relasional didalam database melalui pemrograman teknik
relasional, setidaknya untuk kemudahan pemeliharaan dan kecepatan ekekusi program dibanding
teknik prosedural, terutama untuk pengolahan data volume besar.

6

Tidak ada komentar: