ABSTRAK
Dalam aplikasi yang menggunakan sistem basis data tersebar yang melintas
jaringan komputer, akses terhadap terhadap tabel-tabel yang ada dalam basis data
(baca: operasi-operasi CRUD [Create-Read/Retrieve-Update-Delete]) merupakan
hal yang konsisten terjadi. Dalam hal ini, saat pengembang aplikasi tersebar
menggunakan teknologinya Microsoft Corp., mereka sesungguhnya memiliki 3
pilihan untuk menangani tabel-tabel yang ada di dalam sistem basis data, yaitu
ADO.NET (SQL-based), prosedur/fungsi tersimpan (stored procedure/function),
serta LINQ (Language INtegrated Query). Tulisan ini bertujuan untuk melakukan
perbandingan secara konseptual berkaitan dengan akses dan manipulasi terhadap
tabel-tabel yang tersimpan di dalam basis data tersebar menggunakan ketiga
teknologi itu. Operasi-operasi yang akan ditelaah adalah operasi-operasi yang
berjalan di beberapa tabel sekaligus sebab seringkali (pada sistem-sistem basis data
tersebar) dilakukan pemartisian tabel utama (partisi vertikal dan/atau horisontal)
menjadi beberapa tabel sekunder.
Kata kunci : Sistem Basis Data Tersebar, ADO.NET, Prosedur Tersimpan (Stored
Procedure), LINQ
I LATARBELAKANG
Aplikasi-aplikasi basis data tersebar (distributed database applications), yang berjalan di komputer-
komputer yang secara geografis tersebar, merupakan aplikasi yang umum dijumpai saat ini dengan
bertumbuhnya perusahaan-perusahaan yang beberapa tahun yang lalu masih merupakan perusahaan-
perusahaan berskala relatif kecil dan saat ini telah bertumbuh menjadi perusahaan-perusahaan berskala
raksasa (Enterprise) [7]. Sebagai contoh, saat ini beberapa perusahaan perbankan berskala nasional pada
umumnya memiliki jaringan ATM (Anjungan Tunai Mandiri) yang melayani nasabah-nasabahnya yang
secara geografis tersebar di seluruh penjuru Indonesia. Dalam hal ini, penanganan transaksi-transaksi
yang terjadi karena keterbatasan perangkat keras, terutama kecepatan dan kapasitas jaringan komputer-
1
Staf Pengajar Program S3 Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam - Universitas Gadjah
Mada (FMIPAUGM) di Jogyakarta. Email :shartati@ugm.ac.id
2
Staf pengajar di Fakultas Teknologi Informasi Universitas Kristen Satya Wacana (FTIUKSW) di Salatiga
Jawa Tengah. Saat ini sedang menempuh studi di Program S3 Ilmu Komputer Fakultas Matematika dan Ilmu
Pengetahuan Alam Universitas Gadjah Mada (FMIPAUGM) di Jogyakarta. Email : adi.nugroho@staff.uksw.edu
jarang sekali dilakukan secara terpusat, melainkan seringkali dilakukan di server-server lokal yang
tersebar di seluruh penjuru Indonesia dan baru di saat-saat tertentu dilakukan sinkronisasi dengan data
yang ada di pusat [7]. Saat aplikasi basis data tersebar dijalankan, seringkali pada bagian basis data
tertentu yang ada di pusat dipartisi (beberapa literatur menyebutnya sebagai fragmentasi), baik secara
vertikal ataupun horisontal, dan diletakkan secara lokal [7]. Jika data yang utuh diperlukan, pada
umumnya diperlukan operasi-operasi SQL (Structured Query Language) untuk mendapatkannya. Dalam
hal ini, untuk partisi/fragmentasi vertikal, pemrogram aplikasi tersebar bisa menggunakan operasi SQL
JOIN [6, 7], dan untuk partisi/fragmentasi horisontal pemrogram aplikasi tersebar bisa menggunakan
operasi SQL UNION [6, 7], dimana pada kedua kasus ini permasalahan kinerja (baca: kecepatan)
operasi-operasi (Create-Read/Retrieve-Update-Delete) dan kemudahan pemrograman menjadi suatu hal
yang sangat penting untuk dipertimbangkan.
Saat aplikasi-aplikasi basis data tersebar melakukan akses ke sistem basis data, jika aplikasi basis data
dikembangkan menggunakan teknologinya Microsoft Corp., pemrogram aplikasi basis data tersebar saat
ini sesungguhnya memiliki 3 pilihan untuk melakukannya. Ketiga pilihan itu adalah [4, 6]: 1) Melakukan
akses langsung menggunakan SQL ke sistem basis data dari arah aplikasi menggunakan teknologi
ADO.NET, 2) Menanamkan kode akses basis data ke dalam sistem basis data yang mendasari dan
membentuknya menjadi prosedur/fungsi tersimpan (stored procedure/function), serta 3) Membentuk tabel
dan data yang tersimpan di dalamnya menjadi objek-objek di aras aplikasi tersebar menggunakan
teknologi akses basis data Microsoft Corp. yang terbaru saat ini [4, 5, 6], yaitu LINQ (Language
INtegrated Query).
Gambar 2
Partisi Vertikal
Gambar 3
Partisi Horisontal
Gambar 4
Arsitektur ADO.NET [7]
3.1 ADO.NET
ADO.NET merupakan teknologi akses data yang benar-benar baru, yang dirancang oleh Microsoft
Corp. dengan cara yang cukup revolusioner [5, 6, 7], sehingga cukup banyak perbedaannya dengan
teknologi akses basis data sebelumnya yang dikenal sebagai teknologi ADO (ActiveX Data Object).
(ADO.NET bukan singkatan dari ActiveX Data Object.NET seperti yang banyak dipikirkan orang.)
Selama perancangan teknologi framework .NET, aplikasi-aplikasi yang akan dikembangkan oleh para
pemrogram aplikasi dirancang untuk mampu berbagi model tunggal dimana semua pustaka kelas (class
library) diintegrasikan ke dalam suatu framework tunggal dan diorganisasi dalam kesatuan logika yang
dinamakan sebagai namespace dan dideklarasikan secara terbuka sebagai kelas-kelas bersifat public
sedemikian rupa sehingga bisa dimanfaatkan oleh semua aplikasi basis data yang mau menggunakannya
[5, 6, 7]. Dalam hal ini, komponen-komponen ADO.NET dirancang sedemikian rupa oleh Microsoft
Corp. untuk dapat bekerja dengan cara terhubung (connected) dan tidak-terhubung (disconnected) dengan
sumber data yang mendasari aplikasi basis data [5, 6, 7].
API ADO.NET, yang memungkinkan pemrogram aplikasi terhubung (connect) ke sistem basis data
relasional pada dasarnya menggunakan kelas DataReader, dimana kelas DataReader ini
memelihara hubungan/koneksi tersebut terus menerus sementara melakukan aplikasi melakukan
manipulasi data atau selama aplikasi membutuhkannya, dan kemudian memutusnya (disconnect) saat
aplikasi tidak membutuhkannya lagi [7]. Meski demikian, karena koneksi (connection) sesungguhnya
merupakan hal yang mahal dari sudutpandang penggunaan sumberdaya komputasi (computational
resources) -sumberdaya waktu kerja komputer dan alokasi memori, komponen-komponen ADO.NET
sebenarnya juga memungkinkan pemrogram aplikasi untuk bekerja dengan modus tidak terhubung
dengan sistem basis data relasional (disconnected) [7]. Dalam hal ini, teknologi ADO.NET mengatasi
permasalahan mahalnya sumberdaya komputasi ini dengan menyediakan model tidak terhubung
(disconnected) yang cukup canggih menggunakan kelas DataSet [7]. Menggunakan kelas DataSet
ini, aplikasi bisa mengambil data yang dibutuhkan dari sistem basis data, memutus koneksi (disconnect),
dan selanjutnya bekerja dengan data yang tersimpan di memori komputer klien. Jika terjadi modifikasi-
modifikasi, koneksi ke sistem basis data dapat dilakukan lagi, sehingga modifikasi-modifikasi data dapat
disimpan secara permanen.
Gambar 5
Sintak Umum SQL
ADO.NET pada dasarnya merupakan sejumlah API (Application Programming Interface) yang
memungkinkan aplikasi terhubung dengan sistem basis data relasional [5, 6, 7]. Meski demikian, untuk
mendapatkan data sesungguhnya yang ada di basis data relasional, aplikasi yang bersangkutan harus
mengirimkan pernyataan-pernyataan SQL (Structured Query Language) ke server basis data. Adapun
sintak dari pernyataan SQL secara umum diperlihatkan Gambar 5 di atas [5, 6, 7]. Dalam hal ini,
pendekatan ADO.NET sering disebut dengan pendekatan akses data berbasis SQL (SQL-based).
Gambar 5
Arsitektur LINQ [7]
C#
var query = from element in collection[, from element2 in collection2]
where condition _
orderby orderExpression [ascending|descending][, orderExpression2 ...]
select [alias = ]columnExpression[,[alias2 = ]columnExpression2]
Visual Basic.NET
Dim Query = From Element In Collection[,Element2 In Collection2] _
Where Condition _
Order By OrderExpression [Ascending|Descending][, _
OrderExpression2 ...] _
Select [Alias = ]ColumnExpression[,[Alias2 = ]ColumnExpression2]
Gambar 6
Sintak Dasar LINQ [8]
V ANALISIS
Berdasarkan apa yang telah kami singgung di atas, kami akan mencoba membuat perbandingan secara
konseptual di antara ketiga teknologi akses basis data di atas (dengan batasan kondisi jaringan yang
dianggap seragam untuk semua teknologi yang dibandingkan).
Hal yang ADO.NET Prosedur Tersimpan LINQ
dibandingkan
Paradigma pemrograman Sistem berorientasi objek Sistem berorientasi objek Konsisten dengan
dari sudutpandang di sisi aplikasi dan model di sisi aplikasi dan model paradigma pemrograman
pengembang aplikasi basis relasional di sisi basis relasional di sisi basis berorientasi objek baik di
data tersebar. data. data. sisi aplikasi maupun di
sisi basis data.
Kemampuan menangani Hanya mampu menangani Hanya mampu menangani Selain mampu menangani
data selain basis data basis data relasional. basis data relasional. basis data relasional juga
relasional. mampu menangani
beragam data yang lain,
seperti XML, lembar kerja
(spreadsheet), dan
sebagainya, tanpa
pemrogram aplikasi
tersebar perlu mempelajari
berbagai API yang baru.
Akses ke server basis data. Menggunakan SQL. Menggunakan SQL, Akses ke basis data
Kompilasi SQL akan Kompilasi SQL akan dilakukan dengan
dilakukan setiap saat dilakukan 1 kali saja pada membentuk objek-objek
aplikasi menerbitkan saat prosedur tersimpan dalam aplikasi yang
pernyataan SQL ke server pertama kali ditulis dan bersesuaian dengan tabel-
basis data. dikompilasi. tabel yang ada di server
basis data.
Beban kerja server basis Kecil pengaruhnya sebab Jika prosedur/fungsi yang Tidak terlalu banyak
data. SQL ditanamkan di tersimpan dalam server pengaruhnya, kecuali
aplikasi (walaupun basis data terlalu banyak, karena setiap objek yang
eksekusinya dilakukan di maka server basis data berasal dari sistem basis
sisi server basis data). kemungkinan besar akan data dan manipulasinya
menurun kinerjanya menuntut kerja tambahan
karena prosedur/fungsi prosesor di sisi klien
tersimpan memerlukan maupun server basis data,
alokasi memori dan juga karena setiap aksi yang
menuntut kerja prosesor dilakukan pada objek yang
yang lebih banyak. berasal dari sistem basis
data perlu diterjemahkan
menjadi kode-kode
ADO.NET.
Bahasa pengakses. Visual Basic, C#, C++, J#, Semua bahasa Visual Basic.NET dan
ASP.NET (bahasa-bahasa pemrograman yang C#.
yang beradaptasi dengan beradaptasi terhadap basis
teknologi .NET-nya data relasional.
Microsoft Corp.)
Data yang dapat diakses. Basis data relasional . Basis data relasional. Basis data relasional,
berkas XML, lembar kerja
(spreadsheet), dan masih
banyak lagi.
Konversi data. Seringkali diperlukan Seringkali diperlukan Konversi data dari basis
konversi data yang cukup konversi data yang cukup data ke aras aplikasi tidak
kompleks antara data yang kompleks antara data yang perlu dilakukan secara
tersimpan di basis data tersimpan di basis data intensif sebab LINQ
agar dapat dimanipulasi di agar dapat dimanipulasi di mengenal tipe data
aras aplikasi yang ditulis aras aplikasi yang ditulis anonymous.
menggunakan bahasa menggunakan bahasa
pemrograman tertentu. pemrograman tertentu.
Kecepatan akses dari arah Relatif lebih rendah karena Cepat karena kompilasi Lambat karena pada
aplikasi. kompilasi SQL akan hanya dilakukan 1 kali dasarnya setiap query
dilakukan setiap saat saja. Eksekusi LINQ akan diterjemahkan
pernyataan SQL prosedur/fungsi tersimpan dulu menjadi kode-kode
diterbitkan oleh aplikasi. berikutnya dilakukan ADO.NET.
berdasarkan
prosedur/fungsi tersimpan
yang telah dikompilasi
sebelumnya.
Perbaikan kinerja akses Kecepatan akses dapat Kecepatan akses dapat Kecepatan akses dapat
basis data. ditingkatkan dengan ditingkatkan dengan sangat ditingkatkan
penggunaan indeks. penggunaan indeks. dengan menggunakan
mekanisme caching
(dengan konsekuensi
memori server basis data
harus berukuran besar).
Gambar 7
Perbandingan Secara Konseptual Teknologi ADO.NET,
Prosedur Tersimpan, dan LINQ
Terlihat dari Gambar 7 di atas, masing-masing teknologi memiliki kelemahan dan keunggulannya
masing-masing. Meski demikian, tentunya teknologi yang terbaru, yang diciptakan belakangan, secara
umum pasti (dengan batasan-batasan tertentu) memiliki keunggulan-keunggulan dibandingkan teknologi-
teknologi sebelumnya.
VI KESIMPULAN
Saat aplikasi basis data tersebar akan dikembangkan, para pengembang akan dihadapkan dengan 3 pilihan
untuk melakukannya: ADO.NET, prosedur tersimpan, atau LINQ. Jika perangkat keras bukan kendala
yang paling menentukan, teknologi LINQ merupakan teknologi yang paling baik untuk digunakan karena
konsisten dengan bahasa-bahasa pemrograman berorientasi objek yang semakin marak digunakan saat ini.
Untuk sistem-sistem tersebar yang memerlukan beberapa akses ke server basis data sekaligus, perlu
dipertimbangkan penggunaan prosedur/fungsi tersimpan karena hal ini akan meningkatkan kinerja
aplikasi sekaligus juga akan memelihara integritas data (dengan catatan: pengembang aplikasi harus bisa
menentukan pernyataan-pernyataan SQL mana yang layak untuk dikembangkan menjadi prosedur
tersimpan). Sebaliknya, jika perangkat keras menjadi kendala yang menentukan, tentunya akses basis data
menggunakan metoda lama dengan ADO.NET (SQL-based) dan kombinasinya dengan prosedur/fungsi
tersimpan menjadi alternatif yang paling baik untuk diterapkan. Selain hal-hal yang telah disebutkan tadi,
saat ini aplikasi-aplikasi tersebar juga seringkali memerlukan data yang memiliki berbagai format yang
berbeda, misalnya berkas XML, lembar kerja (spreadsheet), berkas audio, video, dan sebagainya. Jika hal
ini memang terjadi, pilihan terbaik adalah dengan memanfaatkan teknologi LINQ secara penuh, sebab
LINQ mampu bekerja dengan cara yang relatif seragam saat dibutuhkan berbagai data yang berasal dari
sumber-sumber yang berbeda. Sintaks LINQ yang relatif seragam untuk berbagai sumber data yang
berbeda juga akan sangat meringankan beban para pengembang/pemrogram aplikasi-aplikasi tersebar
karena mereka pada dasarnya tidak perlu belajar terlalu banyak untuk menangani data dari berbagai
sumber data tersebut.
DAFTAR PUSTAKA
1. Ahmad, Noraziah, Ahmed N. Abdalla, Roslina Mohd Sidek, 2010. Data Replication Using Read-
One-Write-All Monitoring Synchronization Transaction System in Distributed Environment.
Journal of Computer Science 6 (10): 1033-1036, 2010 ISSN 1549-3636 2010 Science
Publications.
2. Definisi partisi basis data. http://en.wikipedia.org/wiki/Partition_(database). Diakses 1 November
2011.
3. Hasegawa, Masaki, Subbash Balla, Laurence T. Yang, 2009. Performance Considerations of
Embedded Computations in Distributed Databases. Journal of Embedded Computing 3
(2007/2009) 277287 277 DOI 10.3233/JEC-2009-0099 IOS Press.
4. Jenning, Roger, 2009. Professional ADO.NET 3.5 with LINQ and the Entity Framework .
Indianapolis Indiana: Wiley Publishing, Inc.
5. Perbandingan kinerja/kecepatan teknologi Microsoft ADO.NET, Stored Procedure, LINQ.
http://www.codeproject.com/KB/linq/performance_comparisons.aspx.
6. McClure, Wallace B., Gregory A. Beamer, John J. Croft IV, J. Ambrosse Little, Bill Ryan, Phill
Wilstanley, David Yack, Jeremy Zongker, 2006. Proffesional ADO.NET 2.0 Programming with
SQL Server 2005, Oracle, and MySQL. Indianapolis: Wiley Publishing, Inc.
7. Nugroho, Adi, 2010. Mengembangkan Aplikasi Basis Data Menggunakan C# dan SQL Server .
Jogyakarta: Penerbit ANDI Offset.
8. Nugroho, Adi, Arie Setyawan Prasidha, Herawitzen Flahsconer Souisa, 2011. Implementasi
Teknologi LINQ (Language Integrated Query) pada Pengembangan Aplikasi Sistem Pengarsipan
Surat (Studi Kasus di DisHubKomBudpar Kota Salatiga). Jurnal Sistem Informasi, Universitas
Kristen Maranatha, Bandung.
9. Nugroho, Adi, Sri Hartati, 2011. Pengukuran Kinerja Beberapa Sistem Basis Data Relasional
Dengan Kemampuan Menyimpan Data Berformat GML Yang Mendasari Aplikasi-aplikasi Sistem
Informasi Geografis. Jurnal Informatika, Universitas Kristen Petra, Surabaya.
10. Tiwari, Sanjay Kumar, A.K. Sharma, Vishnu Swaroop, 2011. Distributed Real Time Replicated
Database: Concept and Design. International Journal of Engineering and Technology Vol. 3 No. 6.