Model Aplikasi Client/Server Untuk Meringankan Beban Sistem

advertisement
Model Aplikasi Client/Server Untuk Meringankan
Beban Sistem Aplikasi
Ahmad Jupri
Abstract : Client model application / server application or with known two-level, where the first
level contains the code that displays the data and interact with the user in this application form of
Visual Basic. While the second level is a database server or a DBMS are the form in which SQL
Server store procedure as a business service. With the work load split between the client and the
server is possible to do so each application in accordance with the best hardware specifications
that are used.
Keywords : SQL Server, Visual Basic, client, server, store procedur, business service
PENDAHULUAN
Pemrograman database multi user sampai dengan saat ini masih sering dijumpai terutama pada perusahaan kecil,
bahkan pada perusahaan sekala menengahpun tidak sedikit yang masih menggunakan. Pada database dengan
ukuran tidak terlalu besar dan pengguna jaringan yang tidak terlalu banyak, sistem tersebut tidak sulit untuk
dilaksanakan. Tetapi jika dengan data yang cukup banyak (lebih dari 2 GB) atau pemakai jaringan sudah banyak,
sistem jaringan akan sangat terbebani dengan lalu lintas data yang mengakibatkan kinerja menurun bahkan sistem
bisa lumpuh. Padahal sejalan dengan perkembangan, data-data gambar yang berukuran besar mulai dilibatkan
dalam pengolahan data. Hal ini menuntut dikembangkannya model sistem jaringan yang lebih baik. Misalnya
dengan pemrograman client/server.
Pada artikel ini penulis mengimplementasikan arsitektur aplikasi client/server dalam pemrograman database
menggunakan SQL Server sebagai data provider dan ditempatkan pada tier pertama, serta Visual Basic sebagai
user intervace ditempatkan pada tier kedua, sedangkan business services akan ditempatkan pada tier pertama dan
tier kedua dengan contoh aplikasi yang berbeda.
PEMBAHASAN
Arsitektur Aplikasi Client/Server
Ada beberapa tipe arsitektur model aplikasi yang dapat digunakan untuk membangun aplikasi. Salah satu yang
akan dibahas pada artikel ini adalah model arsitektur clent/server. Dalam model arsitektur ini terdapat dua tingkat.
Ahmad Jupri adalah Dosen Fakultas Ilmu Komputer UDINUS Semarang
107
108
Techno.COM, Vol. 7 No. 2, Agustus 2008
Tingkat pertama dari aplikasi client/server adalah client tier atau presentation tier atau tingkat user interface.
Tingkatan ini mengadung kode yang menampilkan data dan berinteraksi dengan user, dalam artikel ini berupa
aplikasi Visual Basic. Aplikasi client meminta data dari database server dan menampilkannya pada suatu form.
Setelah data berada pada komputer client, komputer mampu menampilkan data dalam berbagai cara dan mampu
memanipulasi data secara lokal. Komunikasi antara clinet dan server dilangsungkan melalui komponen
ADO(ActiveX Data Object)
Tingkatan kedua adalah database server atau DBMS. DBMS menerima banyak permintaan-permintaan data dari
client dan harus mampu melayani semua. Server harus mampu mengambil data yang dibutuhkan dari tabel dan
mengirimkannya kepada client dalam bentuk cursor. Server hanya perlu mengirimkan cursor kepada client dan
membiarkan client yang memproses data.
Dari dua tingkatan diatas arsitektur client/server juga dikenal dengan istilah two-tier application, user interface
berada pada tier pertama sedangkan data provider berada pada tier kedua. Ada dua macam arsitekur client/server
yaitu :
 Client Centric
Selain user interface dan database server ada lagi satu komponen yang melekat pada arsitektur client/server,
yaitu business services. Pada client centric business service berada pada tier client (dalam hal ini aplikasi
Visual Basic). Proses validasi ataupun proses yang berhubungan dengan kegiatan bisnis akan dilakukan dalam
tier client, dan server hanya digunakan sebagai penyedia dan penyimpan data.
 Server Centric
Kebalikan dari client centric, pada server centric proses validasi maupun proses yang berhubungan dengan
kegiatan bisnis berada pada komputer server. Server selalu melakukan pengecekan terhadap setiap transaksi
termasuk melakukan penolakan terhadap suatu transaksi. Dalam artikel ini digunakan salah satu fasilitas yang
dimiliki oleh SQL Server yaitu store procedur sebagai contoh.
Dari kedua macam arsitektur client/server tersebut masing-masing mempunyai kelebihan dan kekurangan. Jika
suatu aplikasi client/server yang menerapkan client centric dimana semua proses bisnis dilakukan di client, yaitu
sebelum melakukan transaksi dengan server, maka fungsi server disini hanya sebagai penyedia dan penyimpan
data. Sedangkan keuntungan dari server centric adalah pada saat suatu aplikasi melakukan perubahan pada proses
bisnis. Misalnya suatu aplikasi penjualan barang, jika terjadi perubahan diskon terhadap barang yang dijual,
cukup dilakukan perubahan pada server tanpa perlu melakukan perubahan pada setia client.
Database dan Tabel pada SQL Server
Dalam artikel ini penulis tidak membahas cara membuat database dan tabel dengan SQL Server karena sudah
pernah dibahas pada artikel sebelumnya dan juga banyak buku-buku maupun artikel yang mengulasnya.
Diasumsikan sudah ada sebuah database yang mempunyai beberapa tabel didalamnya salah satunya adalah tabel
barang yang akan digunakan sebagai contoh aplikasi client/server pada pembahasan selanjutnya dalam artikel ini.
Model Aplikasi Client / Server (Jupri)
109
Database dan tabel disimpan pada Server/Tier Kedua sebagai Data Provider. Sedangkan struktur tabel tersebut
adalah sebagai berikut :
Nama Database : Inventory
Nama Tabel
: Barang
Primary Key : KodeBrg
Foreign Key
:-
Tabel 1. Tabel barang
No
Nama Field
Type
Size
Keterangan
1
KodeBrg
VarChar
5
Kode Barang
2
Nama
VarChar
20
Nama Barang
3
Satuan
VarChar
10
Nama Satuan
4
HargaBeli
Int
4
Harga Beli
5
HargaJual
Int
4
Harga Jual
Design Tampilan pada Tier Pertama (User Interface)
Gambar 1. Design Tampilan Form Barang
Techno.COM, Vol. 7 No. 2, Agustus 2008
110
Business Service diletakkan pada Tier Kedua (Data Provider)
Proses bisnis dalam aplikasi ini berupa perintah untuk memanipulasi 90
data baik statment insert, update, delete dan select. Statement insert dan update akan diletkkan pada komputer
server dengan memanfaatkan salah satu fasilitas yang dimiliki oleh SQL Server, yaitu stored procedure.
Sedangkan statement select dan delete akan ditempatkan pada komputer clinet menyatu dengan user interface. Hal
ini bukan suatu keharusan melainkan penulis hanya bermaksud memberikan contoh tentang kedua arsitektur
model client/server diatas (client centric dan server centric). Untuk server centric penulis memanfaatkan salah
satu fasilitas dari SQL Server yaitu stored procedure. Pembuatan stored procedure ini dibuat dengan
menggunakan statement Transact-Sql. Untuk menjalankan stored procedure digunakan perintah execute diikuti
nama stored procedure dan diikuti oleh parameter masukan jika ada. Adapun stored procedure yang dibuat antara
lain :

Stored procedure untuk menambah data barang
CREATE PROCEDURE AddBarang
@pKodeBrg nvarchar(5), @pNama nchar(20), @pSatuan nvarchar(10),
@pHargaBeli int, @pHargaJual int
AS
DECLARE @ErrorCode int
INSERT Barang(KODEBRG, NAMA, SATUAN, HARGABELI, HARGAJUAL)
VALUES (@pKodebRG, @pNama, @pSatuan, @pHargaBeli, @pHargaJual)
SET @ErrorCode=@@ERROR
IF (@ErrorCode=0)
RETURN (0)
ELSE
RETURN (@ErrorCode)
GO

Stored procedure untuk mengedit data barang
CREATE PROCEDURE EditBarang
@pKodeBrg nvarchar(5), @pNama nvarchar(20), @pSatuan nvarchar(10),
@pHargaBeli Int, @pHargaJual int
AS
DECLARE @ErrorCode int
UPDATE Barang SET KODEBRG=@pKodeBrg, NAMA=@pNama, SATUAN=@pSatuan,
HARGABELI=@pHargaBeli, HARGAJUAL=@pHargaJual WHERE KodeBrg=@pKodeBrg
SET @ErrorCode=@@ERROR
IF (@ErrorCode=0)
RETURN (0)
Model Aplikasi Client / Server (Jupri)
111
ELSE
RETURN (@ErrorCode)
GO
Untuk client centric penulis memanfaat event dari Visual Basic. Dalam artikel ini penulis membuat event untuk
menghapus data(delete) dan menapilkan data(select). Adapun event tersebut adalah :

Event untuk menghapus data
Private Sub cmdHapus_Click()
Dim x As String
x = MsgBox("Yakin Data diHapus", vbOKCancel, "Perhatian")
If x = vbOK Then
Set rs = New ADODB.Recordset
strsql = "delete from barang where kodebrg='" & txtKodeBrg.Text & "'"
rs.Open strsql, conn, adOpenDynamic, adLockOptimistic
Form_Load
End If
End Sub

Event untuk menampilkan data
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=SQLOLEDB.1;" & _
"Integrated Security=SSPI;" & _
"Persist Security Info=False;" & _
"Initial Catalog=inventory;" & _
"Data Source=fasilkom"
conn.Open
conn.CursorLocation = adUseClient
Set rs = New ADODB.Recordset
rs.Open "select * from barang", conn
Set DataGrid1.DataSource = rs
If rs.RecordCount = 0 Then
cmdSimpan.Enabled = False
kosong
Else
Tampil
cmdTambah.Enabled = True
End If
rs.Requery
End Sub
Techno.COM, Vol. 7 No. 2, Agustus 2008
112
Procedure-procedure selengkapnya pada Visual Basic
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim strsql As String
Private Sub cmdEdit_Click()
If cmdEdit.Caption = "Edit" Then
cmdEdit.Caption = "Batal"
cmdSimpan.Enabled = True
cmdTambah.Enabled = False
cmdHapus.Enabled = False
txtKodeBrg.SetFocus
txtKodeBrg.Enabled = False
Else
cmdEdit.Caption = "Edit"
Form_Load
End If
End Sub
Private Sub cmdHapus_Click()
Dim x As String
x = MsgBox("Yakin Data diHapus", vbOKCancel, "Perhatian")
If x = vbOK Then
Set rs = New ADODB.Recordset
strsql = "delete from barang where kodebrg='" & txtKodeBrg.Text & "'"
rs.Open strsql, conn, adOpenDynamic, adLockOptimistic
Form_Load
End If
End Sub
Private Sub cmdSimpan_Click()
Dim oParam As ADODB.Parameter
Dim ADOCmd As ADODB.Command
Dim ADOError As ADODB.Error
Set ADOCmd = New ADODB.Command
ADOCmd.ActiveConnection = conn
Set oParam = ADOCmd.CreateParameter
Param.Name = "RETURN_VALUE"
Param.Type = adInteger
Param.Direction = adParamReturnValue
ADOCmd.Parameters.Append oParam
'KODE BARANG
Model Aplikasi Client / Server (Jupri)
Set Param = ADOCmd.CreateParameter
Param.Name = "pKodeBrg"
Param.Type = adChar
Param.Size = 5
Param.Direction = adParamInput
Param.Value = txtKodeBrg.Text
ADOCmd.Parameters.Append Param
'Nama
Set Param = ADOCmd.CreateParameter
Param.Name = "pNama"
Param.Type = adChar
Param.Size = 20
Param.Direction = adParamInput
Param.Value = txtNama.Text
ADOCmd.Parameters.Append oParam
Set Param = ADOCmd.CreateParameter
Param.Name = "pSatuan"
Param.Type = adChar
Param.Size = 10
Param.Direction = adParamInput
Param.Value = txtSatuan.Text
ADOCmd.Parameters.Append oParam
Set Param = ADOCmd.CreateParameter
Param.Name = "pHargaBeli"
Param.Type = adInteger
Param.Direction = adParamInput
Param.Value = txtHargaBeli.Text
ADOCmd.Parameters.Append oParam
Set Param = ADOCmd.CreateParameter
Param.Name = "pHargaJual"
Param.Type = adInteger
Param.Direction = adParamInput
Param.Value = txtHargaJual.Text
ADOCmd.Parameters.Append oParam
If cmdTambah.Caption = "Batal" Then
ADOCmd.CommandText = "AddBarang"
ADOCmd.CommandType = adCmdStoredProc
Else
ADOCmd.CommandText = "EditBarang"
ADOCmd.CommandType = adCmdStoredProc
End If
113
Techno.COM, Vol. 7 No. 2, Agustus 2008
114
ADOCmd.Execute
If cmdTambah.Caption = "Batal" Then
MsgBox ("Tambah Data Sukses Penuh")
cmdTambah.Caption = "Tambah"
Else
MsgBox ("Update Data Sukses Penuh")
cmdEdit.Caption = "Edit"
End If
Set ADOCmd = Nothing
rs.Requery
rs.MoveLast
Form_Load
End Sub
Private Sub cmdTambah_Click()
If cmdTambah.Caption = "Tambah" Then
cmdTambah.Caption = "Batal"
cmdSimpan.Enabled = True
txtKodeBrg.SetFocus
kosong
Else
cmdTambah.Caption = "Tambah"
Form_Load
End If
End Sub
Private Sub Form_Load()
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=SQLOLEDB.1;" & _
"Integrated Security=SSPI;" & _
"Persist Security Info=False;" & _
"Initial Catalog=inventory;" & _
"Data Source=fasilkom"
conn.Open
conn.CursorLocation = adUseClient
Set rs = New ADODB.Recordset
rs.Open "select * from barang", conn
Set DataGrid1.DataSource = rs
rs.Requery
End Sub
Model Aplikasi Client / Server (Jupri)
115
Private Sub kosong()
txtKodeBrg.Text = ""
txtNama.Text = ""
txtSatuan.Text = ""
txtHargaBeli.Text = ""
txtHargaJual.Text = ""
End Sub
Private Sub Tampil()
Set txtKodeBrg.DataSource = Adodc1
Set txtNama.DataSource = Adodc1
Set txtSatuan.DataSource = Adodc1
Set txtHargaBeli.DataSource = Adodc1
Set txtHargaJual.DataSource = Adodc1
txtKodeBrg.DataField = "KodeBrg"
txtNama.DataField = "Nama"
txtSatuan.DataField = "Satuan"
txtHargaBeli.DataField = "HargaBeli"
txtHargaJual.DataField = "HargaJual"
End Sub
KESIMPULAN
Dengan arsitektur client/server komputer yang berbeda melakukan tugas yang berbeda, setiap komputer bisa
dioptimalkan untuk tugas tertentu, terjadi pembagian tugas antara komputer satu dengan yang lain dalam suatu
jaringan.
Pada server centric perubahan pada tingkat business service bisa dilakukan pada komputer server saja, tidak harus
ke semua client.
DAFTAR ISI
1. Evangelos Petroutsos, Menguasai Pemrograman Database dengan Visual Basic 6, PT Elex Media
Komputindo, Jakarta 2002
2. Imam A.W. SQL Server 2000 , Graha Ilmu, Yogyakarta 2005
3. Michael Halvorson, Step by Step Microsoftr Visual Basic 6.0 Profesional, PT Elex Media Komputindo,
Jakarta 2001
Download