https://doi.org/10.28926/ilkomnika.v2i1.101 http://journal.unublitar.ac.id/ilkomnika
Analisis dan Perancangan Software Pengukuran Metrik Skala dan
Kompleksitas Query Database
Moh. Ariffudin1,*, Hafizzudin Sifaulloh2, Eka Manggala Putra3, Muhammad Ainul Yaqin4 Teknik Informatika, Universitas Islam Negeri Maulana Malik Ibrahim, Indonesia
1ariffudinnotresponding@gmail.com; 2picman.h@gmail.com; 3imphyku888@gmail.com
* corresponding author
PENDAHULUAN
Pengukuran perangkat lunak menjadi salah satu kebutuhan saat ini disaat meningkatnya pertumbuhan perangkat lunak yang beredar dan kemajuan akses terhadap internet ini membuat aplikasi mobile berlomba-lomba untuk membuat perangkat lunak yang dapat digunakan secara gratis maupun berbayar pada perangkat komunikasi. Pertumbuhan secara massif ini membuat sebuah pengukuran perangkat lunak menjadi sangat perlu dilakukan sebagai sarana untuk menilai kualitas sebuah perangkat lunak [1]. Walaupun hingga saat ini belum ada regulasi yang terstruktur dan spesifikasi untuk mengukur kualitas perangkat lunak yang beredar agar memenuhi standar kualitas tertentu, tidak membuat pengukuran perangkat lunak menjadi suatu hal yang kalah penting dibandingkan proses pembuatan dan pengujian perangkat lunak tersebut, karena fungsinya sangat krusial dalam penetuan kualitas perangkat lunak [2].
Sama seperti sebuah program, sebuah Query Database perlu diukur juga kompleksitasnya. Sejauh ini, insinyur perangkat lunak telah mengedepankan ratusan metrik untuk meningkatkan kualitas dari program perangkat unak mengabaikan Query Database. Padahal aspek data pada perangkat lunak penting karena ukuran data berkontribusi pada banyak kualitas sistem [3]. Maka diperlukam sebuah kompleksitas metriks yang dapat mengukur tingkat kerumitan dalam mendapatkan data, dilihat dari jumlah tabel, kolom,
statement, kedalaman dan fungsi logika yang digunakan pada Query Database [5].
Untuk menciptakan sebuah formula kompleksitas Query Database yang komprehensif dan sensitive terhadap pembuahan kecil haruslah menyertakan setiap metrik untuk Query
Database. Beberapa formul telah dianjurkan sebelumnya untuk menyelesaikan masalah ini.
Namun masih ada metrik yang belum disertakan didalamnya dan ada pula metriks yang
I N F O A R T I K E L A B S T R A K
Sejarah Artikel
Diterima: 18 Desember 2019 Direvisi: 13 Januari 2020 Diterbitkan: 30 April 2020
Kompleksitas Query Database dalam suatu sistem semakin meningkat seiring pertumbuhan data. Kompleksitas Query Database yang meningkat mengakibatkan kerumitan dalam mendapatkan data yang sesuai dengan kebutuhan. Insinyur perangkat lunak telah mengedepankan banyak metriks untuk meningkatkan kualitas dari program perangkat lunak, mengabaikan Query Database yang digunakan. Sehingga belum ada metriks yang dapat mengukur tingkat kerumitan dalam mendapatkan data. Padahal aspek data pada perangkat lunak penting karena ukuran data berkontribusi pada banyak kualitas sistem. Paper ini menggunakan metode GQM untuk mengidentifikasi metriksnya. Paper ini mengidentifikasi bahwa metriks untuk sebuah
Query Database meliputi jumlah tabel, kolom, statement, kedalaman
dan fungsi logika. Dari beberapa formula kompleksitas yang sudah pernah diajukan, kami hanya menghitung dari statement select dan diformulasikan dengan metode Analytic Hierarchy Process (AHP).
Kata Kunci
Skala metrik Kompleksitas Query database
opsional untuk diukur jika dilihat dari view data language (VDL). Sehingga saat ini digunakan untuk mengukur kompleksitas Query Database yang strukturnya hampir identik, maka hasil yang diperoleh bisa memiliki nilai yang sama
METODE
Vashistha dkk. dalam pengukuran kompleksitas Query Database menggunakan nilai perhitungan regression yang dikalikan dengan metriks Query Database yaitu tabel, kolom,
length, logika, statement dan runtime. Setelah itu, nilai yang sudah diukur kemudian
dijumlahkan untuk mendapatkan nilai kompleksitas Query Database [4]. Berikut ini adalah penjelasan metriks-metriks yang ada pada Query Database:
• Jumlah Tabel (T) : jumlah tabel dalam Query Database • Jumlah Kolom (K) : jumlah kolom dalam sebuah tabel • Length (L) : panjang Query string
• Kedalaman (Dp) : ukuran kedalaman sebuah tree Query
• Statement (S) : jumlah statement/expression yang digunakan dalam Query • Logika (Log) : jumlah fungsi logika/operator yang digunakan dalam Query • Runtime (Rt) : lama waktu yang diperlukan untuk menjalankan sebuah Query
Tabel 1. Metrik-metrik yang telah disertakan dalam formula kompleksitas
T K L Dp S Log Rt
Vashista
dkk., 2012 Ya Ya Ya Tidak Ya Ya Ya
Formula yang
kami ajukan Ya Ya Tidak Ya Ya Ya Tidak
Kami mengidentifikasi metriks menggunakan Goal Question Metric (GQM), yang akan menghasilkan metriks-metriks dalam pengukuran kompleksitas Query. Kemudian, metriks akan direpresentasikan menggunakan model Weighted Tree, diformulasikan dengan metode
Analytic Hierarchy Process (AHP).
Identifikasi Menggunakan GQM
Tabel 2. Hasil Identifikasi Menggunakan GQM
Pencapaian Objek : Formula kompleksitas Query Database
Pertanyaan Jawaban
Apa yang hasil Query Database? Tabel
Pertanyaan Jawaban
Apa yang membentuk sebuah tabel? Baris, kolom
Pertanyaan Jawaban
Apa saja yang terdapat pada baris dan kolom? Logika, statement, kedalaman
Pertanyaan Jawaban
Apa saja logika pada Query Database? AND, OR, XOR
Pertanyaan Jawaban
Apa saja metriks Query Database yang pernah diajukan? Tabel, kolom, statement, logika, kedalaman
Pertanyaan Jawaban
Apa saja metriks Query Database yang belum diajukan?
Statement yang hanya menggunakan select
Representasi Menggunakan Weighted Tree
Representasi metriks dengan menggunakan weighted tree dapat dilihat pada Gambar 1.
Node pada weighted tree merepresentasikan metriksnya.
Gambar 1. Weighted Tree Formulasi Metrik Menggunakan AHP
Dengan menggunakan metode Analytical Hierarchy Process (AHP), diperoleh bobot untuk setiap metriks yang terdapat dalam Query Database. Bobot untuk setiap metriks pada
Query Database disajikan dalam Tabel 3.
Tabel 3. Bobot setiap metrik menggunakan AHP
Metriks Bobot Tabel 0.40 Kolom 0.06 Logika 0.10 Kedalaman 0.17 Statement 0.27
Untuk penilaian bobot dari Query logika Database, kami menggunakan perhitungan
cognitive complexity [2]. Bobot logika dengan menggunakan cognitive complexity disajikan
dalam Tabel 4.
Tabel 4. Bobot Logika dengan Cognitive Complexity
Logika Bobot Keterangan
AND 4 Setiap AND mengaktifkan links yang keluar secara parallel,
AND-join yang sesuai, menyinkronkan aliran kontrol.
OR 7 Nilai atau bobotnya ditentukan dari percabangan logika
case, yang nantinya diikuti oleh eksekusi secara paralel. Hal
ini juga dapat dikatakan bahwa nilai dari logika OR merupakan gabungan dari nilai logika AND dan logika XOR yang menggunakan ‘ case’
XOR 2/3 Jika dalam suatu Query menggunakan logika ‘ if’ maka nilai XOR adalah 2. Sedangkan jika Query menggunakan logika ‘ case’ maka nilai XOR adalah 3
Pencarian Metrik Tabel
Pencarian metrik tabel bisa dicari apabila dibawah node from tidak merupakan statement
select. Misal:
Gambar 2. Bagian Weighted Tree (From)
Pada gambar diatas menunjukkan bahwa terdapat sebuah tabel dikarenakan tidak berupa
statement select.
Pencarian Metrik Kolom
Pencarian merik kolom mirip seperti mencari metrik tabel. Apabila dibawah statement
select tidak berupa statement select. Misal:
Gambar 3. Bagian Weighted Tree (Kolom)
Metrik kolom pada tree diatas ada lima dikarenakan tidak adanya statement select yang terdapat dibawah node select diatas.
Pencarian Metrik Logika
Metrik logika bisa dicari apabila setelah kondisi seletah where mempunyai logika, diantara logika tersebut adalah and, or dan xor. Misal:
Gambar 4. Bagian Weighted Tree (Logika)
Metrik logika tersebut ada satu dikarenakan adanya logika berupa and.
Pencarian metrik kedalaman dicari dengan banyaknya urutan berdasarkan vertikal
statement select yang ada pada tree. Misal:
Gambar 5. Bagian Weighted Tree (Kedalaman)
Metrik kedalaman pada tree diatas adalah dua. Dikarenakan adanya statement select yang ada pada tree diatas berada pada urutan pertama dan kedua berdasarkan urutan vertikal.
Pencarian Metrik Statement
Metrik statement didapat apabila statement tersebut berupa statement select.
HASIL DAN PEMBAHASAN Bagian Formula Metrik Kompleksitas
QC = (0.4*T) + (0.06*K) + (0.1*Log) + (0.17*Dp) + (0.27*S)
Studi Kasus
Query 1
SELECT `nama`, `kelas`, `alamat`, `nama_ayah ` FROM `siswa` WHERE `kelas` NOT IN (SELECT `kelas` FROM `siswa` WHERE `kelas` = 'X') AND `nama` IN (SELECT `nama ` FROM `siswa` WHERE `nama ` = 'Amir');
Query 2
SELECT `id`, `nama`, `kelas` FROM `siswa` ORDER BY `nama`, `kelas`;
Query 3
SELECT `id_siswa`, `nama_ayah`, `nama_ibu`, `alamat` FROM `siswa`ORDER BY `id_siswa`
Pengukuran Matriks Weighted Tree
Weighted tree pada masing-masing Query Database diatas bisa dilihat pada Gambar 6,
Gambar 6. Weighted Tree Query 1
Gambar 7. Weighted Tree Query 2
Gambar 8. Weighted Tree Query 3 Pencarian Metriks Tabel
Pencarian metrik tabel bisa dicari apabila dibawah node from tidak merupakan statement
select. Untuk pencarian metriks tabel pada Query 1, 2 dan 3 bisa dilihat pada Gambar 9, 10,
& 11.
Gambar 9. Weighted Tree Query 1 (Tabel)
Pada weighted tree diatas ditemukan tiga banyaknya tabel yang diberi tanda bold. Dikarenakan tiga nama tabel pada weighted tree tersebut sama maka tabel tersebut dijadikan hanya satu tabel.
Gambar 10. Weighted Tree Query 2 (Tabel)
Pada weighted tree diatas ditemukan satu banyaknya tabel yang diberi tanda bold dengan bobot sebesar 1 x 0.4.
Gambar 11. Weighted Tree Query 3 (Tabel)
Pada weighted tree diatas ditemukan satu banyaknya tabel yang diberi tanda bold dengan bobot sebesar 1 x 0.4. Setelah banyaknya tabel ditemukan, hasil dari pencarian metriks tabel bisa dilihat pada Tabel 5.
Tabel 5. Metriks dan Bobot Metriks Tabel (T)
Query 1 Query 2 Query 3
Banyaknya Tabel 1 1 1
Bobot 0.4 0.4 0.4
Pencarian Metriks Kolom
Pencarian merik kolom mirip bisa ditemukan apabila dibawah statement select tidak berupa statement select. Untuk pencarian metriks kolom pada Query 1, 2 dan 3 bisa dilihat pada Gambar 12, 13, & 14.
Gambar 12. Weighted Tree Query 1 (Kolom)
Pada weighted tree diatas ditemukan empat banyaknya kolom yang diberi tanda bold. Nama kolom tidak boleh sama, apabila nama kolom sama maka nama kolom tersebut dijadikan menjadi satu.
.
Gambar 13. Weighted Tree Query 2 (Kolom)
Pada weighted tree diatas ditemukan tiga banyaknya kolom yang diberi tanda bold dengan bobot 3 x 0.06.
Gambar 14. Weighted Tree Query 3 (Kolom)
Pada weighted tree diatas ditemukan empat banyaknya kolom yang diberi tanda bold dengan bobot 4 x 0.06. Setelah banyaknya tabel ditemukan, hasil dari pencarian metriks tabel bisa dilihat pada Tabel 6.
Tabel 6. Metriks dan Bobot Metriks Kolom (K)
Query 1 Query 2 Query 3
Banyaknya Kolom 4 3 4
Bobot 0.24 0.18 0.24
Pencarian Metriks Logika
Metriks logika bisa dicari apabila setelah kondisi seletah where mempunyai logika, diantara logika tersebut adalah and, or dan xor. Pencarian metriks logika pada Query 1, 2, & 3 bisa dilihat pada Gambar 15, 16 & 17.
Gambar 15. Weighted Tree Query 1 (Logika)
Pada Gambar 15 dinyatakan bahwa Query 1 hanya mempunyai satu logika yang berada dibawah where. Bobot logika yang dipunyai oleh Query 1 bernilai 1 x 4 dikarenakan bobot logika and bernilai 4.
Gambar 16. Weighted Tree Query 2 (Logika)
Metriks logika pada Query 2 tidak ada dikarenakan tidak adanya salah satu logika and, or & xor, maka bobot metriks logika yang dipunyai oleh Query 2 berjumlah 0.
Gambar 17. Weighted Tree Query 3 (Logika)
Setelah melihat weighted tree pada Gambar 17 dinaytakan bahawa Query 3 tidak mempunyai metriks logika diakrenakan tidak adanya logika yang terdapat dibawah where, maka bobot metriks logika pada Query 3 bernilai 0. Banyaknya logika dan bobot pada masing-masing Query 1, 2 & 3 bisa dilihat pada Tabel 7.
Tabel 7. Metriks dan Bobot Metriks Logika (L)
Query 1 Query 2 Query 3
Banyaknya Logika 1 0 0
Bobot 4 0 0
Pencarian Metriks Kedalaman
Pencarian metrik kedalaman dicari dengan banyaknya urutan berdasarkan vertikal
statement select yang ada pada tree. Pencarian metriks kedalaman pada Query 1, 2 & 3
diperoleh pada Gambar 18, 19 & 20.
Gambar 18. Weighted Tree Query 1 (Kedalaman)
Query 1 mempunyai dua kedalaman (depth), dikarenakan ada dua urutan vertikal pada statement select. Bobot yang dipunyai Query 1 bernilai 2 x 0.17.
Gambar 19. Weighted Tree Query 2 (Kedalaman)
Metriks kedalaman yang dipunyai Query 2 berjumlah satu karena pada weighted tree diatas hanya mempunyai satu urutan vertikal pada statement select. Bobot kedalaman yang dipunyai Query 2 berjumlah 1 x 0.17.
Gambar 20. Weighted Tree Query 3 (Kedalaman)
Pada weighted tree diatas dinyatakan bahwa Query 3 hanya mempunyai satu metriks kedalaman karena pada weighted tree diatas hanya mempunyai satu urutan vertikal pada statement select. Bobot kedalaman yang dipunyai Query 3 berjumlah 1 x 0.17. Setelah banyaknya metriks dan bobot pada metriks kedalaman, maka disimpulkan pada Tabel 8.
Tabel 8. Metriks dan Bobot Metriks Kedalaman (Dp)
Query 1 Query 2 Query 3
Banyaknya Logika 2 1 1
Bobot 0.34 0.17 0.17
Pencarian Metriks Statement
Metrik statement didapat apabila statement tersebut berupa statement select. Bisa dilihat pada setiap Query 1, 2 & 3.
Query 1
SELECT `nama`, `kelas`, `alamat`, `nama_ayah ` FROM `siswa` WHERE `kelas` NOT IN (SELECT `kelas` FROM `siswa` WHERE `kelas` = 'X') AND `nama` IN (SELECT `nama ` FROM `siswa` WHERE `nama ` = 'Amir');
Statement yang dipunyai pada Query 1 adalah tiga dikarenakan adanya tiga statement select pada Query tersebut, maka bobot metriks statement pada Query 1 berjumlah 3 x 0.27.
Query 2
SELECT `id`, `nama`, `kelas` FROM `siswa` ORDER BY `nama`, `kelas`;
Pada Query 2 dinyatakan bahwa Query 2 hanya memiliki satu metriks statement, maka bobot metriks statement yang dimiliki adalah 1 x 0.27.
Query 3
SELECT `id_siswa`, `nama_ayah`, `nama_ibu`, `alamat` FROM `siswa`ORDER BY `id_siswa`
Pada Query 3 dinyatakan bahwa Query 3 memiliki satu metriks statement, maka bobot metriks statement yang dimiliki adalah 1 x 0.27. Setelah jumlah metriks dan bobot statement diperoleh, jumlah metriks dan bobot metriks statement bisa dilihat pada Tabel 9.
Tabel 9. Metriks dan Bobot Metriks Statement (S)
Query 1 Query 2 Query 3
Banyaknya Logika 3 1 1
Bobot 0.91 0.27 0.27
Hasil Pengukuran
Setelah hasil pengukuran metriks dan bobot yang dimiliki setia Query, maka jumlah metriks yang dimiliki setiap Query tersebut disajikan pada Tabel 10.
Tabel 10. Banyaknya Metriks.
Query 1 Query 2 Query 3
Tabel 1 1 1
Kolom 4 3 4
Logika 1 0 0
Statement 3 1 1
Kedalaman 2 1 1
Adapun jumlah bobot metriks yang dimiliki setiap Query disajikan pada Tabel 11.
Tabel 11. Jumlah Bobot Metriks.
Query 1 Query 2 Query 3
Tabel 0.4 0.4 0.4
Kolom 0.24 0.18 0.24
Logika 0.4 0 0
Statement 0.91 0.27 0.27
Kedalaman 0.34 0.17 0.17
Jumlah kompleksitas yang berdasarkan formula yang kami ajukan disajikan pada Tabel 12.
Tabel 12. Jumlah Kompleksitas Query.
Query 1 Query 2 Query 3
Tabel 0.16 0.16 0.16
Kolom 0.0144 0.0108 0.0144
Logika 0.04 0 0
Statement 0.1547 0.0459 0.0459
Kedalaman 0.0918 0.0459 0.0459
Hasil perbandingan pengukuran dengan menggunakan tiga formula kompleksitas disajikan dalam Tabel 13.
Tabel 13. Hasil Pengukuran Formula Komplelsitas.
Query 1 Query 2 Query 3 Metode
Vashistha dkk., 2016 -0.0010 -0.0009 -0.0010 Regresi
Formula yang kami
ajukan 0.4609 0.2626 0.2662
AHP
KESIMPULAN
Paper ini telah mengindentifikasi bahwa metriks yang dijadikan untuk sebuah Query
Database adalah: jumlah tabel, kolom, logika, kedalaman dan statement Query. Formula
kompleksitas yang disajikan pada paper ini dapat direpresentasikan menggunakan model weighted tree. Bentuk formula kompleksitas dapat dilihat pada persamaan QC = (0.4*T) + (0.06*K) + (0.1*Log) + (0.17*Dp) + (0.27*S). Setelah dilakukan pengujian dengan membandingan hasil pengukuran yang diperoleh menggunakan formula kompleksitas dari peneliti lain, ditemukan bahwa formula kompleksitas yang kami ajukan lebih komprehensif dan lebih sensitif terhadap perubahan kecil.
REFERENSI
[1] M. A. Yaqin, R. Sarno, and A. C. Fauzan, “Scalability measurement of business process model using business processes similarity and complexity,” Int. Conf. Electr. Eng. Comput. Sci. Informatics, vol. 4, no. September, pp. 306–312, 2017, doi: 10.11591/eecsi.4.1033.
[2] G. Volker, and R. Laue. "Adopting the cognitive complexity measure for business process models." 2006 5th IEEE international conference on cognitive informatics. Vol. 1. IEEE, 2006. [3] P. Mario, C. Calero, and M. Genero. "Table oriented metrics for relational Databases." Software
Quality Journal 9.2 (2001): 79-97.
[4] V. Aditya, and S. Jain. "Measuring Query complexity in SQLShare workload." Proceedings of the
2019 international conference on management of data. 2016.
[5] A. Yunus, A. C. Fauzan, A. N. Faizin, and K. Sabbihatul, “Analisis Control Flow Complexity Untuk Komparasi Kompleksitas Proses Bisnis Penerimaan Mahasiswa Baru Universitas Nahdlatul Ulama Blitar Berbasis Petri Net Modelling Language,” Ilk. J. Comput. Sci. Appl. Informatics, vol. 1, no. 2, pp. 39–46, 2019.