J. Tek. Informasi, Juni 2011 Vol. 1 No. 1 hal. 31 - 35
ISSN: 2088 - 6160
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
[email protected] 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
32
J. Tek. Informasi Vol. 1 No. 1, 2011
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 langkahlangkah 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 benarbenar 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:
Gambar 1. entity-relationship diagram
Implementasi Stored Routine (Paskalis Andrianus Nani)
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:
33
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 CREATE PROCEDURE `sp_mhsprodi`(IN `prodi` VARCHAR(6)) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN select * from Mahasiswa where ID_Progam_Studi = prodi; END
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.
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”);
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.
Hasil pemanggilan routine di atas adalah data seluruh mahasiswa program studi Teknik Informatika. b. stored procedure untuk menampilkan data mahasiswa per fakultas CREATE PROCEDURE `sp_mhsfak`(IN `fak` VARCHAR(2)) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN select * from Mahasiswa, Program_Studi, Jurusan, Fakultas where mahasiswa2.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 berdasarkan fakultas yang ditentukan.
34
J. Tek. Informasi Vol. 1 No. 1, 2011
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 CREATE PROCEDURE `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) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN insert into Mahasiswa 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 CREATE PROCEDURE `sp_updatemhs`(IN`angk`INT, IN`status`VARCHAR(1)) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER 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 masingmasing 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
1 2 3 4
SQL
Tampil data mahasiswa berdasarkan program studi Tampil data mahasiswa berdasarkan fakultas Insert data Mahasiswa Update Data Mahasiswa
Waktu Rata-Rata Yang Dibutuhkan Menggunakan Tanpa Stored Stored Procedure Procedure 3.45 detik
3.89 detik
3.86 detik
4.12 detik
4.13 detik 6.57 detik
5.01 detik 8.34 detik
Tabel 2. Hasil Pengujian menggunakan kabel LAN sepanjang 15 meter NO
1 2 3 4
SQL
Tampil data mahasiswa berdasarkan program studi Tampil data mahasiswa berdasarkan fakultas Insert data Mahasiswa Update Data Mahasiswa
Waktu Rata-Rata Yang Dibutuhkan Menggunakan Tanpa Stored Stored Procedure Procedure 7.29 detik
7.89 detik
8.82 detik
9.34 detik
9.62 detik 11.71 detik
10.42 detik 13.21 detik
Tabel 3. Hasil Pengujian menggunakan kabel LAN sepanjang 20 meter NO
1 2 3 4
SQL
Tampil data mahasiswa berdasarkan program studi Tampil data mahasiswa berdasarkan fakultas Insert data Mahasiswa Update Data Mahasiswa
Waktu Rata-Rata Yang Dibutuhkan Menggunakan Tanpa Stored Stored Procedure Procedure 9.27 detik
9.89 detik
9.88 detik
10.34 detik
10.62 detik 14.71 detik
11.17 detik 16.41 detik
Berdasarkan hasil pengujian dapat dilihat bahwa panjang kabel LAN (jarak antara database server dan komputer client)
Implementasi Stored Routine (Paskalis Andrianus Nani)
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.
35
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.