Implementasi Stored Routine Dalam Pengembangan
Network Database Application
Paskalis Andrianus Nani
Program Studi Teknik Informatika Universitas Katolik Widya Mandira Jl. Achmad Yani No.50-52 Kupang 85225 NTT
paskalisnani@gmail.com
Abstrak -- SQL Statement baik berupa Data Definition Language dan Data Manipulation Language adalah cara yang umum bagi aplikasi untuk memperoleh data untuk ditampilkan. Namun seiring dengan faktor performa jaringan, penggunaan adhoc query akan sangat membebani lalu lintas jaringan karena statement tersebut harus dieksekusi oleh server untuk mencari kesalahannya, baru setelah itu mengirimkan hasilnya ke client. Terdapat alternatif SQL Statement untuk dibungkus dalam Stored procedure untuk mengatasi masalah ini. Stored procedure menyimpan statement-statement SQL dalam sebuah berkas yang disimpan di database server, sehingga dari sisi performa eksekusi, utilitas jaringan, dan keamanan, stored procedure banyak dipakai sebagai solusi akses data.
Hasil penelitian ini membuktikan bahwa penggunaan stored procedure sangat efektif dalam mengurangi beban jaringan dibandingkan dengan penggunaan adhoc query. Permintaan query oleh pengguna dapat langsung diperoleh karena eksekusi tidak dilakukan dua kali, melainkan sekali saja di komputer server. Selain itu, jika ingin melakukan perombakan aplikasi, tidak perlu membuat query lagi karena query sebelumnya sudah tersimpan dalam database dan kita dapat mengatur siapa saja yang dapat mengakses stored procedure tersebut sehingga keamanan data dapat lebih terjamin.
Kata Kunci: Stored Routine, Network Database Application
PENDAHULUAN
Sistem informasi sekarang ini sudah menjadi suatu hal penting bagi sebuah perusahaan. Sistem informasi yang baik
pada sebuah perusahaan sangat
mempengaruhi kesuksesan perusahaan
tersebut. Model kesuksesan sistem informasi
diukur berdasarkan system quality,
information quality, use, user satisfaction, individual impact dan organization impact
(Jogiyanto, 2007). Sistem informasi
dibangun untuk mengelola data dan
informasi.
Data dan Informasi telah menjadi bagian vital dalam pertumbuhan bisnis. Saat ini data dan informasi pada umumnya disimpan dalam satu atau lebih database. Data dan informasi tersebut dikelola oleh
sistem khusus yang dikenal dengan Database Management System (DBMS).
DBMS tidak hanya berperan untuk menyimpan data ataupun informasi, tetapi juga dapat berperan besar dalam pengelolaan dan manipulasi data. DBMS seperti SQL Server, MySQL, PostgreSQL, ataupun Oracle, pada umumnya berkomunikasi
dengan antarmuka aplikasi dengan
menggunakan pendekatan SQL Statement. SQL Statement baik berupa Data Definition Language dan Data Manipulation Language adalah cara yang umum bagi aplikasi untuk memperoleh data untuk ditampilkan. Namun seiring dengan faktor performa jaringan, penggunaan adhoc query akan sangat membebani lalu lintas jaringan karena statement tersebut harus dieksekusi
Vol. 1 No. 1 hal. 31 - 35
oleh server untuk mencari kesalahannya, baru setelah itu mengirimkan hasilnya ke client. Terdapat alternatif SQL Statement untuk dibungkus dalam Stored procedure untuk mengatasi masalah ini. Stored procedure menyimpan statement-statement SQL dalam sebuah berkas yang disimpan di database server, sehingga dari sisi performa eksekusi, utilitas jaringan, dan keamanan, stored procedure banyak dipakai sebagai solusi akses data.
Penelitian ini dilakukan untuk
mengetahui sejauh mana efektifitas
penggunaan stored procedure dalam
mengurangi beban jaringan dalam proses komunikasi antara DBMS dan antarmuka aplikasi dengan pendekatan SQL Statement.
METODE
Metode yang akan digunakan dalam penelitian ini terdiri dari langkah-langkah berikut:
a. Tinjauan pustaka
Tinjauan pustakan dilakukan untuk mendapatkan berbagai referensi yang berkaitan dengan penelitian yang dilakukan.
b. Desain dan implementasi database
Pada tahapan ini dilakukan perancangan dan pembuatan database yang akan
digunakan serta rule yang akan
digunakan dalam pengembangan
network database application.
c. Implementasi stored procedure
Mengimplementasikan stored procedure pada database yang telah dibuat.
d. Membangun aplikasi (database interafce)
Membuat dua buah aplikasi yang akan terhubung dengan database yang sama. Bedanya, aplikasi yang pertama hanya akan memanggil stored procedure yang telah disimpan di database sedangkan aplikasi kedua tidak akan memanggil (menggunakan) stored procedure yang ada melainkan menggunakan adhoc query.
e. Uji coba sistem
Uji coba dilakukan dengan menjalankan kedua aplikasi yang telah dibangun di dua komputer client dan melihat aktifitas jaringan apakah beban jaringan
benar-benar dapat dikurangi dengan
mengimplementasikan stored procedure. Alat yang digunakan dalam penelitian ini adalah :
a. Sebuah komputer server
b. Dua buah komputer client dengan
spesifikasi minimum
c. Sebuah switch untuk menghubungkan
komputer server dan client
d. Kabel LAN
e. Konektor RJ-45
f. Perangkat lunak MySQL Server,
MySQL Connector ODBC dan MySQL GUI Tools
g. Perangkat lunak pemrograman visual
Borland Delphi 7
HASIL DAN PEMBAHASAN
Desain dan Implementasi Database Yang Digunakan
Kasus yang akan diambil dalam pengembangan sistem adalah pendataan mahasiswa. Terdapat empat buah tabel yang akan digunakan yaitu sebuah tabel yang berisi data mahasiswa, sebuah tabel yang berisi data program studi dan sebuah tabel yang berisi data jurusan serta sebuah tabel yang berisi data fakultas.
Berikut disajikan entity-relationship diagram dari basis data yang akan digunakan dalam pengembangan aplikasi:
Dari diagram di atas dapat dilihat bahwa mahasiswa dan program studi memiliki relasi many to one dimana banyak mahasiswa memiliki program studi yang sama. Begitu pula dengan relasi antara program studi dan jurusan serta jurusan dan fakultas, dimana sebuah jurusan dapat memiliki lebih dari satu program studi dan sebuah fakultas dapat memiliki lebih dari satu jurusan.
Berdasarkan diagram yang telah dipaparkan di atas, maka dibuatlah struktur tabel yang akan digunakan sebagai berikut:
Gambar 2. struktur tabel mahasiswa Tabel mahasiswa terdiri dari 19 field
dengan primary key adalah field
No_Registrasi dengan tipe data varchar dan lebar data maksimum 20.
Gambar 3. struktur tabel ref_program_studi Tabel ref_program_studi terdiri dari 4 field dengan primary key adalah field ID_Program_Studi dengan tipe data varchar dan lebar data maksimum 6. Tabel ini berfungsi untuk menyimpan data program studi.
Gambar 4. struktur tabel ref_jurusan Tabel ref_jurusan terdiri dari 3 field dengan primary key adalah field ID_Jurusan dengan tipe data varchar dan lebar data maksimum 4. Tabel ini berfungsi untuk menyimpan data jurusan.
Gambar 4. struktur tabel ref_fakultas Tabel ref_fakultas terdiri dari 2 field
dengan primary key adalah field
ID_Fakultas dengan tipe data varchar dan lebar data maksimum 2. Tabel ini berfungsi untuk menyimpan data fakultas.
Pembuatan Stored Procedure
Pada tahap ini, stored procedure mulai dibuat dan siap untuk digunakan atau dipanggil oleh aplikasi interface. Stored procedure yang akan dibuat adalah sebagai berikut:
a. stored procedure untuk menampilkan
data mahasiswa per program studi CREATEPROCEDURE `sp_mhsprodi`(IN `prodi`VARCHAR(6)) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITYDEFINER COMMENT '' BEGIN
select* from MahasiswawhereID_Progam_Studi =
prodi; END
Routine di atas berfungsi untuk
menampilkan data mahasiswa
berdasarkan program studi yang
ditentukan. Data mahasiswa akan
diseleksi berdasarkan parameter
masukan (prodi). Contoh cara
pemanggilan routine tersebut adalah sebagai berikut:
CALL sp_mhsprodi(“020301”);
Hasil pemanggilan routine di atas adalah data seluruh mahasiswa program studi Teknik Informatika.
b. stored procedure untuk menampilkan
data mahasiswa per fakultas
CREATEPROCEDURE `sp_mhsfak`(IN`fak` VARCHAR(2)) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITYDEFINER COMMENT '' BEGIN
select* from Mahasiswa,Program_Studi,Jurusan,
Fakultas
wheremahasiswa2.ID_Program_Studi =
Program_Studi.ID_Program_Studi
and Program_Studi.ID_Jurusan = Jurusan.ID_Jurusan
and Jurusan.ID_Fakultas= Fakultas.ID_Fakultas
and Fakultas.ID_Fakultas= fak; END
Routine di atas berfungsi untuk
menampilkan data mahasiswa
Data mahasiswa akan diseleksi berdasarkan parameter masukan (fak).
Contoh cara pemanggilan routine
tersebut adalah sebagai berikut: CALL sp_mhsfak(“02”);
Hasil pemanggilan routine di atas adalah data seluruh mahasiswa fakultas Teknik.
c. stored procedure untuk menambah data
mahasiswa
CREATEPROCEDURE `sp_insertmhs`(IN`noreg`VARCHAR(50),
IN`prodi` VARCHAR(50), IN`angk` INT, IN`status`
VARCHAR(50),IN`nm`VARCHAR(50), IN`jk`VARCHAR(50),
IN`tmpt`INT,IN`tgl` INT) LANGUAGESQL NOTDETERMINISTIC CONTAINSSQL SQLSECURITYDEFINER COMMENT'' BEGIN
insertintoMahasiswa
values(noreg,prodi,angk,status,nm,jk,tmpt,tgl); END
Routine di atas berfungsi untuk
menambah data mahasiswa. Data
mahasiswa akan ditambahkan
berdasarkan parameter masukan. Contoh cara pemanggilan routine tersebut adalah sebagai berikut:
CALL
sp_insertmhs(“23111999”,”020301”,2011,”A”,”Emerensiana Ngaga”,”P”,”Kupang”,”1986-03-02”);
Hasil pemanggilan routine di atas adalah data bertambahnya sebuah record untuk data mahasiswa atas nama Emerensiana
Ngaga dengan nomor registrasi
23111999.
d. stored procedure untuk meng-update
data mahasiswa
CREATEPROCEDURE `sp_updatemhs`(IN`angk`INT,
IN`status`VARCHAR(1)) LANGUAGESQL NOTDETERMINISTIC CONTAINSSQL SQLSECURITYDEFINER COMMENT'' BEGIN update Mahasiswa
set Angkatan= angk
where Status_Mahasiswa=status; END
Routine di atas berfungsi untuk
mengubah data mahasiswa. Sebuah field dari data mahasiswa akan diubah berdasarkan parameter masukan. Contoh cara pemanggilan routine tersebut adalah sebagai berikut:
CALL sp_updatemhs(2011,”A”);
Hasil pemanggilan routine di atas adalah
data berubahnya status mahasiswa
angkatan 2011 menjadi aktif.
Uji Coba dan Perbandingan Kinerja Aplikasi
Pada tahap ini, kedua aplikasi yang telah dibuat akan dipasang pada masing-masing komputer client. Pengujian akan dilakukan terhadap empat buah perintah SQL yang telah dijelaskan sebelumnya dan akan dilakukan dengan panjang kabel LAN yang berbeda-beda pula.
Berikut ini disajikan hasil pengujian yang dilakukan terhadap aplikasi dan dengan panjang kabel LAN yang bervariasi:
Tabel 1.
Hasil Pengujian menggunakan kabel LAN sepanjang 5 meter
NO SQL
Waktu Rata-Rata Yang Dibutuhkan Menggunakan Stored Procedure Tanpa Stored Procedure 1 Tampil data mahasiswa
berdasarkan program studi 3.45 detik 3.89 detik 2 Tampil data mahasiswa
berdasarkan fakultas 3.86 detik 4.12 detik 3 Insert data Mahasiswa 4.13 detik 5.01 detik 4 Update Data Mahasiswa 6.57 detik 8.34 detik
Tabel 2.
Hasil Pengujian menggunakan kabel LAN sepanjang 15 meter
NO SQL
Waktu Rata-Rata Yang Dibutuhkan Menggunakan Stored Procedure Tanpa Stored Procedure 1
Tampil data mahasiswa berdasarkan program studi
7.29 detik 7.89 detik 2 Tampil data mahasiswa
berdasarkan fakultas 8.82 detik 9.34 detik 3 Insert data Mahasiswa 9.62 detik 10.42 detik 4 Update Data Mahasiswa 11.71 detik 13.21 detik
Tabel 3.
Hasil Pengujian menggunakan kabel LAN sepanjang 20 meter
NO SQL
Waktu Rata-Rata Yang Dibutuhkan Menggunakan Stored Procedure Tanpa Stored Procedure 1
Tampil data mahasiswa berdasarkan program studi
9.27 detik 9.89 detik 2 Tampil data mahasiswa
berdasarkan fakultas 9.88 detik 10.34 detik 3 Insert data Mahasiswa 10.62 detik 11.17 detik 4 Update Data Mahasiswa 14.71 detik 16.41 detik
Berdasarkan hasil pengujian dapat dilihat bahwa panjang kabel LAN (jarak antara database server dan komputer client)
sangt mempengaruhi waktu atau lama proses eksekusi perintah SQL dan Penggunaan stored procedure dapat mereduksi waktu
yang dibutuhkan untuk mengeksekusi
perintah SQL.
KESIMPULAN DAN SARAN Kesimpulan
Berdasarkan hasil penelitian, dapat disimpulkan bahwa penggunaan stored procedure sangat efektif dalam mengurangi
beban jaringan dibandingkan dengan
penggunaan adhoc query. Permintaan query oleh pengguna dapat langsung diperoleh karena eksekusi tidak dilakukan dua kali, melainkan sekali saja di komputer server. Selain itu, jika ingin melakukan perombakan aplikasi, tidak perlu membuat query lagi karena query sebelumnya sudah tersimpan dalam database dan kita dapat mengatur siapa saja yang dapat mengakses stored procedure tersebut sehingga keamanan data dapat lebih terjamin.
Saran
Saran yang ingin penulis berikan adalah khusus bagi para system analyst dan
programmer, agar lebih memilih
menggunakan stored procedure daripada adhoc query dalam pengembangan aplikasi database khususnya yang berbasis network karena lebih efektif dan aman.
Pengujian hanya dilakukan terhadap dua buah aplikasi saja (dua orang client), oleh karena itu saran bagi peneli selanjutnya adalah agar memperhatikan jumlah client user karena hasil pengujian yang maksimal dapat diperoleh jika dilakukan secara multiuser (banyak transaksi atau permintaan dari server secara bersamaan).
DAFTAR PUSTAKA
Ani Thakar and Alex Szalay. 2008. The
Catalog Archive Server Database
Management System. Computing In Science And Engineering. 1521-9615 IEEE.
Fathansyah. 2001. Basis Data. Bandung : Informatika.
Hutabarat, Bernaridho. 2005. SQL Server 2000. Jakarta : Dian Rakyat.
J. Chen, D. J. DeWitt, F. Tian, and Y. Wang. 2006. NiagaraCQ: A Scalable Continuous Query System for Internet Databases. SIGMOD.
Jogiyanto, H.M. 2007. Model Kesuksesan Sistem Teknologi Informasi. Yogyakarta : Andi Offset.
Kadir, Abdul. 2001. Konsep Dan Tuntunan Praktis Basis Data. Yogyakarta : Andi Offset.
Kristanto, Harianto. 2004. Konsep Dan Perancangan Database. Yogyakarta : Andi Offset.
Kroenke, David M. 2004. Database
Processing Fundamental, Design &
Implementation. Ohio : Prentice Hall Melton, J. 2008. Understanding SQL Stored
Procedures: a complete guide to
SQL/PSM. IEEE Data Engineering
Bulletin.
Saputro, Wahju T. 2005. MySQL Untuk Pemula. Yogyakarta : Pena Media.
Saracco, C.M. 2006. Leveraging stored procedures through enterprise javabeans. IBM Research.
Shimin Chen, Phillip B. Gibbons, and Suman Nath. 2008. Stored Procedure For Distributed XML Databases. Technical Report : Intel Research Pittsburg.
Sidik, Betha Ir. 2005. MySQL Untuk
Pengguna, Administrator dan
Pengembang Aplikasi Web. Bandung : Informatika.
Simarmata, Janner. 2006. Basis Data. Yogyakarta : Andi Offset.
Uwe Röhm and Thanh-Mai Diep. 2009. A Study Of Stored Procedure For BLAST Searches. University Of Sydney, School Of Information Technologies, Australia. Yuswanto dan Subari. 2005. Mengolah
Database Dengan SQL Server 2000. Jakarta : Prestasi Pustaka.