Hal
67 dari 101
OPTIMASI QUERY PADA SISTEM INFORMASI
PENCATATAN AKTIFITAS PERUBAHAN DATA NILAI
MAHASISWA
1Nilaliliana Prihatin, 2Dwi Sakethi, 3Febi Eka Febriansyah
1Jurusan Ilmu Komputer FMIPA Unila 2Jurusan Ilmu Komputer FMIPA Unila 3Jurusan Ilmu Komputer FMIPA Unila
email : 1[email protected], 2[email protected], 3[email protected]
Abstract
A large amount of data can affect the search process the data in a database. The greater the amount of data, then the data search process will take longer. In a process of value management, activity data changes the value of an activity that is often overlooked by managers value. This system is used to listing activites done by student grades manager.The recording process will make the amount of data increases and pencarianya time it will take substantial time. The prior research explained that relational operators combined with indexing strategy in sub query has a better performance compared to using the other methods. This research using indexing strategy and nested query for activity listing information system for student grades data changes. The process of system testing conducted several experiments such as comparing data using index and data that did not use the index (table scan) to several conditions, namely the data on the amount of 517, 980, 2369, and 4221. Nested query testing and regular query or query were tested directly using the same amount of data and applied on subjects data search. Indexing strategy that is applied to the big amount of data will generate faster execution time than a search without indexing strategy, in contrary to the small amount of data indexing strategy does not really affect the search process. The use of nested query in the subjects data search will be faster than the search time regular query or query directly.
Key word: query optimazation, index, nested query.
1. Pendahuluan
Pada sistem informasi, perubahan data sangat mungkin dilakukan oleh pengelola nilai. Perubahan data dilakukan ketika data tidak sesuai dengan keadaan yang semestinya. Sistem informasi pencatatan aktifitas perubahan data akan membantu pengelola nilai mengingat aktifitas perubahan yang pernah dilakukan. Banyayaknya perubahan data yang dilakukan akan membuat data yang terkumpul akan sangat banyak dan memerlukan waktu lebih lama untuk proses pencarian data, sehingga optimasi penting dilakukan ketika proses pencarian.
1.1 Query optimizer
Query optimization adalah suatu proses untuk menganalisis query, menentukan sumber-sumber
apa saja yang digunakan oleh query tersebut dan apakah penggunaan dari sumber tersebut dapat dikurangi tanpa merubah output. Query optimization dapat juga dikatakan sebuah prosedur untuk meningkatkan strategi evaluasi dari suatu query untuk membuat evaluasi tersebut menjadi lebih efektif.Input dari optimizer adalah sebuah tree yang sudah mengalami proses parsing di dalam
query parser. Tree tersebut biasanya disebut dengan parse tree. Sedangkan output dari optimizer
adalah berupa rencana eksekusi (execution plan) yang siap untuk dikirimkan ke dalam kode query
generator dan query processor untuk diproses untuk mendapatkan hasil akhir dari query tersebut
Hal
68 dari 101
1.2 Query performent
Menurut penelitian Oktavia dan Sujarwo [2] yang berjudul “Evaluation of Sub Query
Performance in SQL Server” dijelaskan bahwa penggunaan index pada tabel dapat meningkatkan
performa query. Tabel yang digunakan dalam percobaan menggunakan dua pengindeksan. Eksperimen yang telah dilakukan menunjukkan bahwa menggunakan operator relasional dikombinasikan dengan strategi pengindeksan di sub query memiliki kinerja yang lebih baik dibandingkan dengan menggunakan metode yang sama tanpa strategi pengindeksan dan juga metode lainnya.
1.3 Index
Index adalah objek pada MySQL yang berisi data yang terurut dari nilai-nilai pada satu atau lebih field dalam suatu tabel. Penggunaan index pada database merupakan salah satu teknik pembuatan database yang baik. Cecilia Dan Mihai [3] mengemukakan bahwa index pada tabel
memungkinkan SQL server untuk mendapatkan hasil pencarian tanpa mencari seluruh data di dalam tabel. Tabel dengan menggunakan index adalah cara terbaik untuk mengurangi logical read
and disk input/output karena menyediakan mekanisme pencarian terstruktur
Cara penulisan untuk membuat index dalam database dapat dilihat seperti berikut:
CREATE UNIQUE INDEX index_name
ON tabel_name (column1, column2, ….);
1.4 Query nested
Nested query atau query bersarang adalah query yang memiliki query lain di dalamnya. Sub Query
merupakan pernyataan Select yang merupakan bagian dari pernyataan Insert, Select. Nested query digunakan untuk menangani masalah dalam query yang kompleks, bahkan nilai yang akan dilakkan perintah select atau insert tidak diketahui[4].
1.5 Pencatatan
Menurut Kamus Besar Bahasa Indonesia (KBBI) catat atau mencatat adalah menuliskan sesuatu untuk peringatan (dalam sebuah buku catatan); menuliskan apa yang sudah ditulis atau diucapkan orang lain; menyalin; memasukkan ke dalam daftar; memperoleh atau mencapai hasil; memasukkan (suara atau ujaran) ke dalam pita perekam. Dalam KBBI pencatatan didefinisikan sebagai proses, cara perbuatan mencatat[5].
1.6 Trigger
Trigger adalah blok SQL atau prosedur yang berhubungan dengan tabel, view, skema atau database yang dijalankan secara implicit pada saat terjadi sebuah event. Trigger berisi program
yang dihubungkan dengan suatu tabel atau view yang secara otomatis melakukan suatu aksi ketika suatu baris di dalam tabel atau view dikenai oprerasi insert, update atau delete. Trigger dibuat sesuai dengan keperluan [6].
2. Metodologi
Dalam penelitian ini pengembang menggunakan metodologi pengembangan sistem Waterfall.
Waterfall model adalah “Linear Sequential Model”. Model ini kadang-kadang disebut dengan
Hal
69 dari 101
menunggu selesainya tahap sebelumnya dan berjalan berurutan. Waterfall menunjukkan sebuah pendekatan sistematis untuk pengembangan perangkat lunak [7]. Model ini dimulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing, dan maintenance.Gambar 1 Fase-Fase Pengembangan Sistem Waterfall [8].
2.1 Data Flow Diagram Level 1
PROSES MENEJEMEN DATA MASTER PENGELOLA
DATA TABEL MASTER
CATATAN DATA PERUBAHAN
DATA JURUSAN DATA PERUBAHAN
DATA FAKULTAS
DATA MAHASISWA DATA MASTER
DATA MASTER
Gambar 2. Data Flow Diagram Level 0
Gambar 2 merupakan Data Flow Diagram (DFD) dari sistem yang dibuat. Dalam DFD pada Gambar 2 pengelola data dapat melakukan proses kelola data master. Data master yang dimaksud berupa: data catatan perubahan data, data mahasiswa, data jurusan, data fakultas, dan data nilai.
2.2 Entity Relationship Diagram
Entity relationship diagram (ERD) merupakan gambaran hubungan data yang di buat pada sebuah database yang diimplementasikan pada sistem .ERD yang digunakan disajikan pada Gambar 3.
Hal
70 dari 101
Fakultas Jurusan matakuliah
Nilai mahasiswa
Table_log
Kode_fakultas Nama_fakultas Kode_jurusan Nama_jurusan Kode_makul Nama_makul sks
npm nama Kode_nilaia nilai ip Browser ttl Jenis_kelamin agama npm Kode_makul makul semester sks semester nilai pengambilan ip browser memiliki memiliki memiliki memiliki 1 N 1 N 1 N N 1
Gambar 3. Entity Relationship Diagram (ERD)
3. Hasil Dan Pembahasan
Sistem informasi pencatatan aktifitas perubahan data nilai merupakan sistem yang dibuat untuk mempermudah pengelola nilai mengingat aktifitas yang pernah dilakukan pada saat mengelola nilai. Sistem pencatatan aktifitas perubahan data akan mencatat semua perubahan aktifitas yang dilakukan oleh pengelola nilai. Nilai yang disimpan dan dirubah akan tercatat sehingga pengelola nilai akan mengetahui aktifitas yang pernah dilakukan meskipun aktifitas itu telah dilakukan dalam jangka waktu yang sangat lama.
Optimasi yang dilakukan pada sistem pencatatan aktifitas perubahan data nilai menggunakan pengideksan dalam pengelolaan datanya, sehingga proses pencarian data akan lebih cepat, Sedangkan dalam proses query membandingkan query nested dan query yang biasa digunakan tanpa menggunakan nested.
3.1 Implementasi Sistem
Berikut merupakan source code pembuatan index yang diimplementasikan pada sistem informasi pencatatan aktifitas perubahan data.
CREATE INDEX nci ON log_nilai (npm, nilai, tanggal_perubahan, kejadian, ip);
Kode 3.2.1 Pembuatan Index Berikut potongan program dari proses pencarian data mata kuliah:
Hal
71 dari 101
$query=mysql_query
("SELECT mahasiswa.nama_mahasiswa, mahasiswa.npm, matakuliah.kopel, matakuliah.matakuliah
FROM mahasiswa, matakuliah, nilai WHERE mahasiswa.npm = nilai.npm AND matakuliah.kopel = nilai.kopel AND matakuliah.$pencarian='$cari'"); $cek=mysql_num_rows($query);
Kode 3.2.2 Query Pencarian Data Mata Kuliah
Berikut potongan program dari proses pencarian data mata kuliah menggunakan
query nested:
$query=mysql_query
("SELECT mahasiswa.nama_mahasiswa, mahasiswa.npm FROM mahasiswa WHERE npm IN
(SELECT nilai.npm FROM nilai WHERE kopel IN (SELECT matakuliah.kopel FROM matakuliah WHERE $pencarian='$cari'));");
$cek=mysql_num_rows($query);
Kode 3.2.3 Query Nested Pencarian Data Mata Kuliah
3.2 Hasil Pengujian
Berikut ini merupakan tabel hasil perbandingan waktu pengujian yang dihasilkan oleh sistem dengan jumlah data 517, 980, 2369 dan 4221 data.
Keterangan:
waktu pencarian lebih cepat
Tabel 1. Waktu Hasil Pengujian Terhadap 517 Data
No
Input
Index
Non Index
1
1217051048
0.003971
0.004034
2
1217051048
0.005584
0.004825
3
1217051048
0.004821
0.003818
4
1217051048
0.003801
0.003741
5
1217051048
0.004019
0.003926
6
1217051048
0.003782
0.003867
7
1217051048
0.003539
0.003858
8
1217051048
0.003709
0.004052
9
1217051048
0.004029
0.004512
10
1217051048
0.003569
0.003534
11
1217051020
0.004133
0.00417
12
1217051020
0.003564
0.00332
13
1217051020
0.003650
0.00379
14
1217051020
0.003901
0.00418
No
Input
Index
Non Index
15
1217051020
0.003453
0.00380
Hal
72 dari 101
Tabel 2 Waktu Hasil Pengujian Terhadap 980 DataNo
Input
Index
Non Index
1
1217051048
0.005201
0.005599
2
1217051048
0.005473
0.006576
3
1217051048
0.005489
0.005546
4
1217051048
0.006231
0.005692
5
1217051048
0.005822
0.005502
6
1217051048
0.006463
0.005609
7
1217051048
0.007914
0.005378
8
1217051048
0.005374
0.005012
9
1217051048
0.005671
0.007251
10
1217051048
0.004843
0.006186
11
1217051020
0.006573
0.004714
12
1217051020
0.005688
0.004751
13
1217051020
0.005272
0.006878
14
1217051020
0.005177
0.005177
15
1217051020
0.004683
0.005012
Rata-rata
0.0057248
0.0056588
Tabel 3. Waktu Hasil Pengujian Terhadap 2369 Data
No
Input
Index
Non Index
1
1217051048
0.010263
0.010306
2
1217051048
0.009477
0.011059
3
1217051048
0.009089
0.009694
4
1217051048
0.010797
0.010216
5
1217051048
0.009902
0.010673
6
1217051048
0.009561
0.009095
7
1217051048
0.008798
0.010259
8
1217051048
0.010833
0.010844
9
1217051048
0.008924
0.010210
10
1217051048
0.010851
0.009922
11
1217051020
0.009868
0.010722
12
1217051020
0.009531
0.009786
13
1217051020
0.010401
0.009255
14
1217051020
0.009071
0.010071
15
1217051020
0.011114
0.093758
Rata-rata
0.009898667
0.015725027
Hal
73 dari 101
Tabel 4 Waktu Hasil Pengujian Terhadap 4221 DataNo
Input
Index
Non index
1
1217051048
0.015149
0.015501
2
1217051048
0.015372
0.017426
3
1217051048
0.016162
0.014864
4
1217051048
0.016366
0.015244
5
1217051048
0.015352
0.016957
6
1217051048
0.014631
0.015928
7
1217051048
0.014703
0.015126
8
1217051048
0.014778
0.015264
9
1217051048
0.015658
0.015812
10
1217051048
0.016463
0.016175
11
1217051020
0.014867
0.013875
12
1217051020
0.015053
0.014851
13
1217051020
0.015625
0.014262
14
1217051020
0.014178
0.016566
15
1217051020
0.014677
0.020794
Rata-rata
0.015268933
0.015909667
Berdasarkan hasil perbandingan tabel 1, 2, 3 dan 4 menunjukan bahwa pada data yang berukuran lebih besar penggunaan index lebih efektif di banding dengan penggunaan non index pada saat pencarian data.
3.3 Perbandingan Query Nested
Berikut ini waktu hasil pengujian pencarian data mata kuliah dengan menggunakan query biasa dan nested. Data yang dipakai dalam percobaan adalah data mahasiswa dengan jumlah data 923, data mata kuliah dengan jumlah data 146 dan data nilai dengan jumlah data 236. Data masukan untuk pengujian adalah nama mata kuliah dan kode mata kuliah.
.
Keterangan:
Waktu yang tercepat
Tabel 5 Waktu Hasil Pengujian Query
No
Index
Non Index
Nested+Index Nested
1
0.026981
0.055583
0.002718
0.002966
2
0.002726
0.002667
0.002762
0.004921
3
0.003413
0.002605
0.004626
0.002908
4
0.003146
0.002835
0.002623
0.002709
5
0.002627
0.002366
0.002583
0.005367
6
0.003663
0.002419
0.002663
0.002917
7
0.002701
0.002589
0.002731
0.003067
8
0.002771
0.002671
0.003276
0.004081
9
0.002693
0.002543
0.002835
0.002778
10
0.002647
0.005023
0.002712
0.003532
11
0.002583
0.002647
0.002453
0.003402
Hal
74 dari 101
12
0.003124
0.002444
0.003317
0.002979
13
0.003061
0.002579
0.002656
0.004496
14
0.004454
0.002721
0.002875
0.003369
15
0.002722
0.002398
0.003079
0.002418
Rata-Rata
0.0046208 0.006272667
0.002927267 0.003460667
Dari tabel 5 terlihat bahwa waktu pencarian pada data yang tidak menggunakan index lebih sedikit dibandingkan dengan yang lainya, tetapi tidak konsisten. Rata-rata waktu pencarian menunjukan bahwa pencarian data menggunakan query nested dan index lebih baik karena data yang didapatkan konsisten
3.4 Tampilan Sistem
1. Halaman Tambah Data Catatan
Pada halaman tambah data catatan, pengelola nilai dapat menambahkan data aktifitas yang baru saja dilakukan ke dalam sistem.
Gambar 4. Halaman Tambah Data Catatan 2. Halaman pencarian data aktifitas menggunakan index
Halaman pencarian ini akan mencari data catatan dengan menggunakan index sebagai optimasinya.
Gambar 5. Halaman Pencarian Data Aktifitas Menggunakan Index 3. Halaman Pencarian Data Aktifitas Tanpa Menggunakan Index
Hal
75 dari 101
Gambar 6. Halaman Pencarian Data Aktifitas Tanpa Menggunakan Index4. Simpulan
Berdasarkan hasil pengujian dan analisis pada Optimasi query pada sistem informasi pencatatan aktifitas perubahan data nilai, maka didapatkan kesimpulan sebagai berikut:
1. Penggunaan index untuk optimasi query pada database akan berfungsi pada jumlah data diatas 2000 record.
2. Penggunaan query nested yang di gabungkan dengan penggunaan index akan membantu mempercepat waktu pencarian pada data lebih dari 1000 record.
3. Sistem informasi pencatatan aktifitas perubahan data dapat membantu pengelola nilai mencatat aktifitas yang dilakukan.
5.Referensi
[1] Ermattita. 2009. Analisis Opimasi Query Pada Data Mining, Jurnal System Informasi
(JSI), Vol.1, No. 1. Universitas Sriwijaya: Palembang.
[2] Oktavia Dan Sujarwo. 2014. Evaluation Of Sub Query Performance In Sql Server. Bina Nusantara University
[3]
Cecilia dan Mihai. 2011. Increasing Database Performance Using Indexes. Database Sytems Jurnal Vol.II, No. 2.[4] Maulani, Berry, A. Haidar Mirza, Dan Maria Ulfa. 2015. Analisis Perbandingan
Optimasi Query Nested Join Dan Hash Join Pada Aplikasi Pencarian Data Berbasis Web.Jurnal Ilmiah Vol. 1, No. 1. Universitas Bina Darma. Palembang
[5] Tim penyusun kamus. 2005. Kamus Besar Bahasa Indonesia edisi ke tiga. Jakarta. Balai pustaka.