Anda di halaman 1dari 37

PENDIDIKAN

JARINGAN KOMPUTER
DAN
SISTEM INFORMASI

Copyright PIKSI-ITS 2002

Ruang C.203 Jurusan Teknik Elektro ITS Keputih Sukolilo - Surabaya


Telp: (031)5929871 Fax: (031)5929870
: piksi-its@ee.its.ac.id

Sistem Informasi Manajemen


i

Hak Cipta
Buku dan Logo dari PIKSI ITS ini adalah merupakan
hak cipta dari PIKSI-ITS.
Dilarang memperbanyak, memfotocopy sebagian atau seluruh isi
dari buku dan logo tanpa seijin dari pihak PIKSI-ITS

Disclaimer
Book and Logo PIKSI-ITS are copyright of PIKSI-ITS
No part of this book, including interior design , cover and logo
maybe reproduce without any permission from PIKSI-ITS

Sistem Informasi Manajemen


ii

Kata Pengantar
Ini adalah tempat kata pengantar dari Ketua PIKSI-ITS berserta saran
dan kritikannya. Beserta juga tanda tangan dari Ketua PIKSI-ITS.

Ketua PIKSI-ITS

I Ketut Edi Purnama, MT

Sistem Informasi Manajemen


iii

Daftar Isi
Kata Pengantar
Daftar Isi

ii
iii

BAB I
Universal Data Acces. 1
I.1 Sekilas Tentang UDA. 1
I.2 Membandingkan ADO dengan Metode Data Acces Lain.. 3
BAB II Pengenalan Object Model ADO. 5
II.1 Membuat Object ADO 5
II.2 ADO Conection Object... 7
II.3 ADO Command Object... 7
II.4 ADO Recordset Object 7
II.4.1 Setting CursorType Properties... 8
BAB III Mengatur Koneksi ke Data Source 10
III.1 Definisi ADO Connection Object 10
III.2 Membangun Koneksi... 10
III.2.1 Melakukan Update dengan Connection Object... 12
III.2.2 Disconecting dari Data Source 12
III.3 Latihan : Membuat Koneksi 12
III.4 Menggunakan ADO Command Object 13
BAB IV Menerima Rekord dari Data Source. 16
IV.1 Menggunakan ADO Rekordset Object 16
IV.1.1 Menggunakan Explicit Connection 17
IV.1.2 Menggunakan Implicit Connection 17
IV.1.3 Locking The Rekordset.. 18
IV.2 Mengakses Rekord Dalam Rekordset. 19
IV.3 Binding Control ke ADO Rekordset 19
IV.4 Membuat Multiple Rekordset.. 20
IV.4.1 Mendapatkan Rekordset Selanjutnya. 21
BAB V Navigating Records.. 22
V.1 ADO Navigation Properties. 22
V.2 ADO Navigation Methods... 23
V.3 Latihan : Navigating an ADO Rekordset. 24
BAB VI Memodifikasi Rekord.. 28
VI.1 Memodifikasi dengan Perintah SQL.. 29
VI.2 Memodifikasi Rekord dalam Rekordset 29
VI.2.1 Menambah Rekord 29
VI.2.2 Menghapus Rekord.... 29
VI.2.3 Memodifikasi Rekord 29
VI.2.4 Membatalkan Perubahan atau Penambahan Rekord.. 29

Sistem Informasi Manajemen


iv

Sistem Informasi Manajemen


v

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 1

BAB I
Universal Data Access
Setelah mempelajari pelajaran ini mahasiswa diharapkan akan mampu:

Medeskripsikan tujuan dari strategy universal data access strategy.


Mengidentifikasi component dari OLE DB.
Mendefinisikan tiga bagian umum data access method.
Mendeskripsikan relationship antara OLE DB dan ADO.

I.1. Sekilas tentang Universal Data Access


Universal Data Access (UDA) adalah starategi Microsoft strategy untuk menyediakan
akses ke semua type daari informasi, dari berbagai macam source disampint relational
database sederhana. Data source ini termasuk mainframe ISAM/VSAM, hierarchical
databases, e-mail, file systems, text, dan graphical data. OLE DB mendasari interface
yang mampu UDA.
Microsoft ActiveX Data Objects (ADO) dikembangkan untuk OLE DB. ADO
menggantikan database programming interfaces debelumnya, seperti DAO dan RDO.
Karena ADO dibangun pada puncak dari OLE DB, ADO menguntungkan dari UDA
infrastructure.
Modern data-intensive application membutuhkan penggabungan dari informasi tidak
hanya dalam mengatur system database tradisional tapi juga file systems, spreadsheets,
e-mail, dan banyak lagi. Kekuatan dari strategy Microsoft UDA adalah strategy is that
it is delivered through a common set of object-oriented interfaces. These interfaces
aere based on the Microsoft Component Object Model (COM). OLE DB, yang mana
berdasar pada COM, digunakan untuk menyediakan akses ke data melewati
organisasi seperti ilustrasi dalam gambar 1.1.

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 2

Gambar 1.1 The universal data access architecture


OLE DB adalah terbuka didesain terperinci untuk membangun pada Open Database
Connectivity (ODBC) application programming interface (API). Ini merupakan
standart untuk mengakses semua type dari data. Dimana ODBC dibuat untuk
mengakses relational databases, OLE DB didesain untuk relational dan non-relational
information source. OLE DB termasuk langsung mendukung ODBC untuk
kemampuan kedepan untuk broad range dari ODBC driver relational database tersedia
hari ini.
Component OLE DB terdiri dari data providers, data consumers, dan service
components, seperti diilustrasikan dalam gambar 1.2.

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 3

Gambar 1.2 OLE DB components

I.2. Membandingkan ADO dengan metode Data Access yang lain


Meskipun aplikasi dapat menggunakan Data Access Objects (DAO) dan Remote Data
Objects (RDO) dalam Visual Basic 6.0, ADO adalah data-access method Microsoft
menganjurkan untuk suatu aplikasi database.
Semua dari data access methods ini adalah COM interfaces dan dapat digunakan dari
berbagai macam tools, termasuk Microsoft Visual Basic, Microsoft Access, dan
Microsoft Office. Yang mana, berbedaannya adalah:

ADO adalah object model untuk mengakses semua type data melalui OLE DB.
Seperti Visual Basic, Java, C++, VBScript, dan JScript dapat menggunakan
ADO yang mana dapat mengakses data dari OLE DB source apa saja. Kamu
dapat menggunakan ADO untuk mengakses relational data denga baik seperti
e-mail atau data yang berada pada dalam spreadsheet.

RDO adalah object model untuk mengakses relational data melalui ODBC.

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 4
RDO didesain untuk memberikan perkembangan Visual Basic untuk
mengakses ODBC data tanpa melakukan pengkodean ke ODBC API melalui
COM interface ke ODBC API dan menyediakan funsi dari ODBC dalam
programmable object model. RDO didesain untuk mengambil keuntungan dari
database server yang menggunakan sophisticated query engines, seperti SQL
Server dan Oracle.

DAO adalah object model untuk mengakses local atau SQL data melalui Jet.
DAO paling tua dari tiga data access methods. Dengan DAO, kamu dapat
mengakses data dalam Microsoft Jet databases, Microsoft Jet-connected
ODBC databases, and installable indexed sequential access method (ISAM)
data sources, sepeerti FoxPro, Paradox, atau Lotus 1-2-3. Bandingkan ke
teknologi ADO terbaru dan RDO, DAO adalah terlambat, kurang mampu data
access alternative. DAO, sepeti teman, Microsoft Jet database engine, semula
didesain untuk mendukung ISAM data access.

Setelah melihat setiap metode mengakses data, kamu mungkin ingin tagu mengapa
kamu membutuhkan ADO jika kamu telah menggunakan RDO/DAO. Disini dasar
jawaban untuk menjawaba pertanyaan tersebut :

ADO dapar mengakses semua type data, mengingat RDO dan DAO
mengakses hanya relational data.
ADO object model tidak sekomplek seperti RDO atau DAO dan oleh karena
itu mudah menggunakan, dengan sedikit pengkodean.
ADO merupakan penggabungan dari keistemewaan RDO dan DAO dan akan
menggantikan RDO dan DAO.
ADO adalah standart data access object model melalui Microsoft tools,
termasuk Visual Basic, Access, Office, dan Microsoft Internet Information
Server.

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 5

BAB II
Pengenalan Object Model ADO
Pengenalan Object Model ADO Kamu dapat menggunakan ADO dengan Visual C++,
Visual Basic, Visual Basic Scripting Edition, Java, dan banyak platform yang
mendukung COM dan automation. ADO object model mempunyai sedikit object dan
lebih mudah untuk menggunakan ketika dibandingkan dengan data access objects
yang lain seperti RDO dan DAO.
Setelah mempelajari pelajaran ini mahasiswa diharapkan akan mampu:

Mengenali organisasi dari ADO object model.


Mendeskripsikan role dari ADO Connection object.
Mendeskripsikan role dari ADO Command object.
Mendeskripsikan role dari ADO Recordset object.

II.1 Membuat Object ADO


ADO object model menyediakan kemudahan untuk me-set object, properties, dan
metode untuk membuat aplikasi yang mengakses dan memanipulasi data. Meskipun
ADO objects mampu keluaar dari scope hierarchy, objects yang ada dalam
hierarchical relationships, seperti ditunjukkan dalam gambar 2.1. Contahnya, tidak
seperti dengan interface pemrograman database sebelumnya, kamu tidak harus
membuat Connection object sebelum mengakses Recordset object. Dengan ADO,
kamu dapat langsung membuat Recordset object, yang mana automatis membuat
termasuk koneksinya. Konsep ini biasanya disebut "flat" object model.

Gambar 2.1 The ADO Object Model

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 6
ADO object model mempunyai tujuh objects:

Connection object
Memelihara informasi koneksi dengan data provider.

Command object
Memelihara informasi tentang command, seperti stored procedure dalam SQL
Server database. Kamu dapat menjalankan command string pada Connecton
object atau query string seperti sewaktu membuka Recordset object, tanpa
mendefinisikan Command object. Command object berguna dimana kamu
membutuhkan untuk mendefinikan query parameter atau menjalankan stored
procedure yang mengembalikan hasil suatu parameter.

Recordset object
Berisi rekord dari query. Kamu dapat membuka rekordset tanpa secara
eksplisit (jelas) membuka Connection object. Yang mana, jika pertama kamu
dengan jelas membuat Connection object, kamu dapat membuka multiple
Recordset objects pada koneksi yang sama. Ini mengurangi aplikasi dan
mengurangi beban server.

Field object
Contains information about a single column of data within a recordset. The
Recordset object supports the Fields collection.

Parameter object
Single parameter untuk parameter perintah. Command object mendukung
Kumpulan parameter.

Error object
Berisi penyampaian informasi error tentang kondisi yang berlansung oleh
provider. Sejak adanya pernyataan tunggal dapat menghasilkan dua atau lebih
error, Errors collection dapat berisi lebih dari satu Error object.

Property object
Berisi kaarakteristik pendefinisian provider dari ADO object. Property object
digunakan ketika data provider membutuhkan untuk mendukung informasi
specifik tentang data source yang tidak didukung oleh that ADO. Property
object membuat ADO extensible.

Setiap keistemewaan ADO object dari properties dan methods yang membolehkan
kamu untuk memanipulasi object. Ketika kamu bekerja dengan pemrograman ADO,

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 7
kamu seperlunya menggunakan tiga ADO objects: Connection, Command, and
Recordset objects.
Catatan

Sebelum kamu menggunakan ADO dalam aplikasi Visual Basic, kamu


harus set reference ke Microsoft ActiveX Data Objects 2.0 Library
atau versi yang lebih tinggi.

II.2 ADO Connection Object


Contoh, sebelum membangun koneksi, dalam aplikasi dapat membuat koeksi string
yang termasuk user's logon name dan password. Koneksi juga membolehkan kamu
untuk konfigurasi property CommandTimeout. Property ini menentukan berapa lama
seharusnya ADO menunggu ketika membangun koneksi sebelum menghentikan
ussaha membangun koneksi dan akan menghasilkan error bila gagal mengadakan
koneksi.

II.3 ADO Command Object


Command objects didefinisikan menentukan secaara detail informasi tentang data
yang diterima daari database. Command objects dapat berdasarkan object database
yang lain (seperti tabel, view, atau stored prosedure) atau Structured Query Language
(SQL) query.
Command object membuka koneksi baru atau menggunakan koneksi yang ada,
tergangung pada apa yang kamu tentukan dalan property ActiveConnection. Jika
kamu set property ActiveConnection dengan refensi untuk Connection object yang
ada. Jika kamu menentukan property ActiveConnection dengan connection string,
berart koneksi baru dibangun untuk Command object. Yang mana, sejak lebih daari
satu Command object dapat menggunakan Connection object yang sama, ini berari
yang at effisient.

II.4 ADO Recordset Object


Recordset object mewakili seluruh rekord dari tabel atau executed command. Kamu
gunkan Recordset objects untuk manipulasi data daari provider. Semua Recordset
objects dibangunan menggunakan records (baris) dan field (kolom).
Ketika kamu gunkan data dalam recordset object, kamu bekerjaja dengan database
cursor. Cursor aalah database object digunkan aplikasi untuk memanipulasi data
secara individu rekord yang ada. Misalkan, ketika kamu membuat rekordset, hanya
satu rekord yang aktif. Kamu dapat merubah atau menghapus rekord yang aktif itu
tanpa mempengaruhi rekord yang lain.

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 8

II.4.1 Setting CursorType Property


Property CursorType menentukan bagaimana kamu dapat menggunakan rekord dalam
rekordset. Kamu dapat menyeting lebih dahulu property CursorType sebelum
membuka recordset. Jika kamu tidak menetukan property sebelum kamu membuka
recordset, maka nilainya adalah Static cursor. Empat macam type cursor yang tersedia
pada ADO:

Dynamic cursor
Berisi sekumpulan bookmark pada data sebenarnya dalam data source. Setiap
saat client meminta rekord, ADO menggunakan boookmark untuk membaca
nilai yang ditunjuk pointer. Yang artinya aplikasi selalu membaca nilai
terakhir yang disimpan oleh user. Dynamic cursor automatis meng-update
ketika user menambah atau menghapus rekord atau merubah banyak rekord
yang ada dalam rekordset. Dengan cursor ini membuat lalu lintas data pada
server sangat padat karena setiap kamu berpindah dari rekord satu ke rekord
lain selalu dipantau oleh sever. Dynamic cursor pilihan yang baik jika aplikasi
harus mendeteksi semua perubahan yang dibuat oleh user lain. Cursor ini
tersedia hanya sebagai server-side cursor.
Catatan

Microsoft Jet Engine tidak mendukung dynamic cursor, jadi jika kamu
memaksakan untuk membuka dynamic cursor dengan Jet OLE DB Provider
kamu selalu menerima hasil seperti membuka denga keyset cursor.

Keyset cursor
Serupa dengan dynamic cursor, tapi setiap user lain mengadakan perubahan
pada data maka tidak langsung ditampakan dalam rekordset. Kamu dapat
membaca dan memodifikasi semua rekord, tapi kamu akan mendapat error
jika kamu mengakses rekord yang telah dihapus oleh user lain. Keyset cursor
hanya tersedia sebagai serve-side cursor.

Static cursor
Static cursor sebenarnya adalah seakan-akan menyalin data dari database ke
rekordset, bila user lain merubah data pada database maka tidak akan langsung
terlihat pada user yang mengakses database dengan static cursor. Statuc cursor
biasanya merupakan pilihan terbaik untuk menerima data dari stored
prosedure. Kamu sehaaarusnya membuat client-side static cursor hanya ketika
client workstation mempunyai memori yang cukup.

Forward-only cursor

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 9
Forward-only cursor adalah nilai default untuk server-side cursor dan hanya tersedia
untuk server-side cursor. Cursor ini sangat efisien khususnya jika kamu set LockType
= adReadOnly dan CacheSize = 1. Banyak programer dan pengarang menyebut juga
seperti noncursor. Kamu tidak harus melakukan sesuatu yang sepesial untuk
menggunakan cursor ini (noncursor) karena cursor ini default untuk ADO. Kamu
dapat menafigasi forward-only Rekordset hanya menggunkan MoveNext mothod. Jika
kamu ingin mendapat penampilan aplikasi yang baik untuk meng-update rekord,
kamu seharusnya lakukan semua update melalui SQL commands atau stored
prosedure.

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 10

BAB III
Mengatur Koneksi ke Data Source
Tujuan: Bagaimana menghubungkan data source dengan menggunakan object ADO
Connection.

III.1 Definisi ADO Connection Object


Dasar aplikasi sederhana menggunakan ADO untuk mengakses data source:
1. Mendeklarasikan variabel object Koneksi.
2. Mencoba untuk membangun hubungan dengan data source (membuka
koneksi).
Sejak koneksi dibuka, kamu dapat menjalankan query yang mengubah rekord
atau megembalikan dari rekord yang disebut recordset.
3. Menjalankan perintah SQL.
4. Menutup koneksi.
Koneksi ke data souce server resources bebas.

III.2 Membangun Koneksi


Dengan menggunakan metode Open untuk membuat koneksi ke database dan ketika
koneksi sedang berjalan, semua peritah ke database dapat dijalankan.Syntax untuk
membuka koneksi :
connection.Open ConnectionString, UserID, Password, Options
Penjelasan metode untuk membuka koneksi:

ConnectionString
String yang bernilai berisi informasi koneksi. Informasi ini menentukan :
o
o

Nama provider yang digunakan koneksi.


Nama dari provider berupa file.

UserID
String bernilai berisis nama user ketika membangun koneksi.

Password

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 11
String bernilai berisi informasi password user ketika membangun koneksi.

Options
Optional ConnectOptionEnum bernilai menentukan apakah metode open
bernilai akan mengembalikan sesudah (synchronously) atau sebelum
(asynchronously) koneksi terjadi. Kamu dapat menge-set dengan
adConnectUnspecified atau adAsyncConnect.

Contoh membangun koneksi :


Private Sub cmdConnect_Click()
' Declare the object variable
Dim cnPubs As ADODB.Connection
' This variable will contain the connection information
Dim strConnect As String
' Instantiate the object variable
Set cnPubs = New ADODB.Connection
' Define the OLE DB connection string
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=VB6ENTSVR;" & _
"Initial Catalog=Pubs"
' Open the database connection
cnPubs.Open strConnect, "sa", ""
End Sub

CATATAN

"Data Source=" bernilai dalam connection string adala nama dari


remote server. "Initial Catalog=" bernilai nama database dalam
external data source.
Semua penjelasan untuk metode Open adalah optional karena kamu dapat
menentukan informasi koneksi menggunakan property ConnectionString Connection
object's ConnectionString property, seperti ditunjukkan dibawah ini :
Private Sub cmdConnect_Click()
' Declare the object variable
Dim cnPubs As ADODB.Connection
' Instantiate the object variable
Set cnPubs = New ADODB.Connection
' Set the ConnectionString property value
cnPubs.ConnectionString = "Provider=SQLOLEDB;" & _
"UID=sa;pwd=;" & _
"Data Source=VB6ENTSVR;" & _

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 12
"Initial Catalog=Pubs"
' Call the Open method without any arguments
cnPubs.Open
End Sub

III.2.1 Melakukan Update dengan Connection Object


Sejak koneksi telah terjadi, kamu dapat me-update rekord dalam database. Dengan
menggunakan metode Execute Connection object's , kamu dapat mengirim peerintah
SQL ke database tanpa mengebalikan semua rekord ke client. Contoh, kamu mungkin
membutuhkan meng-update semua prices dalam database dengan 10 percent. Dalam
hal ini, kamu dapat menggunakan perintah query update melalui metode Execute,
seperti contoh dibawah ini :
Sub cmdUpdatePrices_Click()
cnPubs.Execute "UPDATE Titles Set Price = Price * 1.1"
End Sub

III.2.2 Disconnecting dari Data Source


Sejak kamu mengahkiri koneksi, kamu menggunakan metode Close untuk
memutuskan hubungan dari data source. Ini merupakan teknik yang baik untuk
menutup semua koneksi yang terbuka sebelum applikasi berakhir.
Code mengahkiri koneksi dari data source :
Sub cmdClose_Click()
cnPubs.Close
' Clear the object to free client resources
Set cnPubs = Nothing
End Sub

III.3 Latihan: Membuat Koneksi


Pada Latihan ini. Kamu menghubungkan database dengan menggunakan OLE DB
provider.
Untuk menghubungkan OLE DB provider menggunakan code
1.
2.
3.
4.

Buka Visual Basic dan buat project baru Standard EXE.


Pada Menu Project, klik References.
Check Microsoft ActiveX Data Objects 2.0 Library dan klik OK.
Tambahkan CommandButton ke Form1, set property Name property ke
cmdConnect, dan property Caption ke &Connect.
5. Dalam cmdConnect_Click event procedure, code programnya :
Private Sub cmdConnect_Click()
Dim cnData As Connection

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 13

' Instanciate the connection


Set cnData = New Connection
With cnData
.Provider = "SQLOLEDB"
.ConnectionString = "User ID=sa;" & _
"Data Source=VB6ENTSVR;" & _
"Initial Catalog=Pubs"
.Open
End With
If cnData.State = adStateOpen Then
MsgBox "Connection successful."
End If
' Close the connection and release the cnData object
cnData.Close
Set cnData = Nothing
End Sub

CATATAN

The Data Source parameter of the ConnectionString must point to a SQ


Server. If the name of the SQL Server is different (than VB6ENTSVR)
on your network, you have to change the value of the Data Source
parameter.
The ConnectionString has a parameter value that uses the SQL Server OLE
DB provider. Each OLE DB provider requires a different value for the
ConnectionString property.
6. Pada menu Run, klik Start.
7. Klik tombol Connect button.
Jika koneksi sukses, kamu tidak akan meneripa kotak pesan (pesan error).
8. Ketika selesai, klik End pada menu Run.

III.4 Menggunakan ADO Command Object


Command object didefinisikan dari menentukan perintah yang dijalankan untuk data
source. Ini dapat berdasarkan object yang lain pada database(such as a table, view, or
stored procedure) atau perintah SQL.
Command object yang lain terbuka dalam koneksi baru atau menggunakan koneksi
untuk melakukan query, tergantung pada apa yang kamu tentukan didalam property
ActiveConnection. Jika kamu set property ActiveConnection dengan referensi ke
Connection object, Command object menggunakan koneksi yang berjalan dari
Connection object. Jika kamu menentukan property ActiveConnection dengan
connection string, Koneksi baaru dibangun untuk Command object. Yang mana, sejak
itu lebih dari satu Command object dapat menggunakan Connectionobject yang sama,

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 14
pada umumnya lebih effisient untuk menggunakan satu koneksi. Sekali Command
object dibuat, kamu dapat menggunakan itu untuk menjalankan perintah yang
ditentukan atau membangun recordset.
Query strings menghasilkan records seperti recordset, atau hanya merubah rekord
dalam database. Misalnya, menggunakan pernyataan Select untuk menghasilk rekord,
dimana pernyataan SQL Update atau Delete hanya menrubah rekord. Jika kamu
mengirim lebih dari satu pernyataan Select, kamu dapat mengembalikan banyak
rekordset recordsets dengan satu pernyataan. Dengan enggunakan property
CommandText untuk menentukan pernyatan SQL, atau stored procedure, untuk
mengakses pada data source.
Berbagai macam kemungkinan printah yang kamu tempatkan pada property
CommandText, tetapi kamu harus juga menggunkan property CommandType untuk
menentuka type dari command yang digunakan.
Daftar nilai yang diidukung CommandType :
Value

Description

adCmdText

Digunakan jika query string adalah perintah SQL.

adCmdTable

Digunkan jika query string adalah nama dari suatau tabel.

adCmdStoredProc

Digunakan jika query string adalah nama dari stored


procedure.

adCmdFile

Digunakan jika query string adalah nama dari file yang


digunakan untuk menyimpan rekord dalam object Rekordset
sebelumnya.

adCmdTableDirect Digunakan spesifik untuk OLE DB providers yang


mendukung pernyataan SQL dan mempu untuk langsung
membukan tabel berdasarkan nama tabel. Ini merupakan
varisi pada adCmdTable.
adCmdUnknown

Digunakan ketika command type tidak jelas diketahui, dan


provider mencoba untuk menjalankan command text
pertama seperti pernyataan SQL, kemudian seperti stored
procedure, dan ahkirnya seperti nama tabel. Jika error terjadi
jika semua dari usaha tersebut gagal. Karena Command
object harus menunjukkan langkah tersebut untuk
menentukan type dari query string, Hasil adalah menurun.
Ini adalah nilai default.

Berikut ini kode menggunakan Command object untuk menambah pesentase discount
untuk semua rekord dalam tabel Discount dengan nilai 10 percent:
Private Sub cmdDoCommand_Click()
Dim comDiscountUpdate As Command

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 15
Set comDiscountUpdate = New Command
With comDiscountUpdate
.CommandType = adCmdText
.ActiveConnection = "Provider=SQLOLEDB;" & _
"User ID=sa;" & _
"Data Source=VB6ENTSVR;" & _
"Initial Catalog=Pubs"
.CommandText = "UPDATE Discounts SET Discount = Discount
* 1.1"
' Call the Execute method to update the Discounts
.Execute
End With
End Sub

CATATAN

Query string dapat juga nama dari stored procedure atau table.

BAB IV
Menerima Record dari Data Source
Pada pelajaran ini, kamu akam mempelajari bagaimana menggunakan object
Rekordset untuk menerima dan mengatur rekord dari data source. Kamu dapat

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 16
membuat Recordsets dari Connection objects yang ada atua Command objects.
Recordset dapat membuat hubungan sendiri ke data source. Sesudah recordset dibuat,
applikasi kamu sekarang dapat manampilkan rekord dan kamu dapat melakukan
sesuatu (menambah, menghapus, update) terhadap rekord tersebut.
Setelah mempelajari pelajaran ini mahasiswa diharapkan akan mampu:

Mengembalikan records dari data source.


Defisi dan menggunakan cursors.
Mengembalikan dan mangatur banyak recordsets.

IV.1 Menggunakan ADO Recordset Object


Recordset object mewakili hasi dari pelaksanaan perintah pda data source. Kamu
dapta menggunakan object tersebut untuk memanipulasi data. Sekali koneksi
dibangun ke data source, kamu dapta mengebalikan rekord dengan menggunakan
metode Open Recordset object's.
Berikut ini syntax untuk mengakse rekord dalam data source :
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
Penjelasan metode Open pada rekordset :
Argument
Source

Description
Optional. Bisa berupa Nama variaberl yang berisi, pernyataan
SQL, nama tabel, memanggil stored procedure.

ActiveConnection Optional. Nama variabel koneksinya atau String berisi


parameter ConnectionString.
CursorType

Optional. Nilai yang menentukan type dari cursor provider


yang digunakan ketika membuka rekordset.

LockType

Optional. Nilai ynag menentukan apa type dari locking


(concurrency) provider yang digunakan ketika membuka
rekordset.

Options

Optional. Benilai Long yang menandakan bagaimana


provider menilai Source argument jika menunjukkan sesuatu
yang lain dari Command object, atau yang menunjukkan
recordset yang disimpan daei file dimana file tersebut
disimpan sebelumnya.

IV.1.1 Menggunakan Explicit Connection Object


Kamu dapat membangun Recordset object berdasarkan active connection ke data
source, yang mana dibatasi jumlah dari koneksi dan mengurangi sejumlah resouce
client dan server yang digunakan dalam applikasi. Bergantung pada kebutuhan dari

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 17
rekordset, kamu boleh membutuhkan untuk membangun dalam explicit Connection
object atau Command object lebih dahulu.
Berikut ini contoh membuka dengan rekordset baru dari koneksi yang sudah berjalan :
Dim cnPubs As Connection
Dim rsTitles As Recordset
' Instantiate the objects
Set cnPubs = New Connection
Set rsTitles = New Recordset
' Open the connection
cnPubs.ConnectionString = "Provider=SQLOLEDB;" & _
"User ID=sa;" & _
"Data Source=VB6ENTSVR;" & _
"Initial Catalog=Pubs"
cnPubs.Open
' Retrieve records from the data source
rsTitles.Open "Select * from Titles", cnPubs

IV.1.2 Menggunakan Implicit Connection Object


Alternative untuk menggunakan Connection object yang ada adalah untuk membuka
rekordset baru menggunakan implicit connection. Satu dari keistemewaan dariADO
object model adalah kemampuan memanggil objects langsung. Ketika memanggil
Recordset object secara langsung, ADO automatis membuat background Connection
object (You cannot access this object programmatically). Ini automatis ditutup ketika
rekordset ditutup.
Berikut ini contoh menggunkan implicit connection untuk mengembalikan records
dari tabel Titles:
Private Sub cmdOpenRecordset_Click()
Dim rsTitles As Recordset
' Instantiate the Recordset object
Set rsTitles = New Recordset
' Open a new connection and return the appropriate records
rsTitles.Open "Select * from Titles", _
"Provider=SQLOLEDB;User ID=sa;" & _
"Data Source=VB6ENTSVR;" & _
"Initial Catalog=Pubs"
End Sub

Seperti kamu lihat, menggunakan teknik ini mengurangi sejumlah kode yang akan
kamu tulis. Yang mana, untuk setiap rekordset yang menggunakan implicit
connection, new connection dibuat pada data source. Sebagaian kasus, penambahan
connections menggunakan valuable resources. Ini lebih effisient untuk membuat
single Connection object dan membuka yang dibutuhkan rekordset dari koneksi itu.

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 18
Kamu dapat membuat banyak recordsets dari satu koneksi tanpa menambahkan
connection resources.
CATATAN

Menggunakan implicit connections menyebabkan scalability problems


ketika programming enterprise-level applications, seperti dengan
Microsoft SQL Server, mengingat explicit Connection objects ketika
mengakses data source.

IV.1.3 Locking the Recordset


ADO menghasilkan cursors yang read-only. Provides for the best performance and
lowest system resource requirements. In the event your application intends to add
records, delete records, or edit existing records, you will need to specify a different
locking option. In a multi-user environment, locking ensures that no two users can
change the same record at the same time.
Menggunakan property LockType untuk menyeting pilihan untuk rekordset. Berikut
ini tabel yang memberi keterangan nilai dari property LockType.
Locking Value

Description

adLockReadOnly

Data bersifat read-only. Ini merupakan nilai defaultnya.

adLockPessimistic

Provider memastikan sukses melakukan edit pada


rekords, biasanya rekords di-lock secara tiba-tiba ketika
sedang di-edit.

adLockOptimistic

Provider menggunakan optimistic locking, yang mana


locks records hanya ketika kamu memanggil metode
Update rekordset.

adLockBatchOptimistic Records di-lock dalam mode batch update, ini dipaksa


ke immediate update mode. Option ini dibutuhkan
untuk client-side cursors, termasuk disconnected
recordsets.
Berikut ini contoh membuta dynamic recordset menggunakan optimistic locking:
rsTitles.Open "Select * from Titles", cnPubs, adOpenDynamic,
adLockOptimistic

IV.2 Mengakses Record dalam Recordset


Sekali recordset telah dibuat, kamu dapat mengakses field dari setiap rekord dengan
jalan :

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 19

Referensi nama field


Jika kamu mengetahui nama dari fied yang kamu akses, kamu dapat
menggunakan syntax berikut untuk mengakses nilai tertentu dari field :

RecordsetObject!FieldName
Ini adalah paling efisien dari dua cara untuk referensi field.

Menggunakan Fields collection


Kamu dapat juga menggunakan Recordset object's Fields collection. Cara ini
tidak efisient ketika mengakses recordset. Berikut ini syntax untuk mengaksis
nilai dari field dengan menggunakan Fields collection:

recordsetobject.Fields(0) atau recordsetobject.Fields("FieldName")


Berkut ini contoh menampilkan fieldTitle dalam window Immediate:
Debug.Print rsTitles!Title

-atauDebug.Print rsTitles.Fields(0)

NOTE

Field Title pada field pertama dalam collection.

IV.3 Binding Control ke ADO Recordset


Visual Basic menyediakan kemampuan untuk control bind seperti text box untuk
ADO recordsets. Ketika control bound ke recordset, control automatis
menggambarkan data record's saat itu. Berikut contoh melakukan binds text box ke
rekordset rsAuthor :
Set txtAuthor.DataSource = rsAuthor
txtAuthor.DataField = "au_fname"

Kamu dapat juga melakukan bind control lebih komplek ke rekordset. Berikut ini
code membuka koneksi ke SQL Server. Recordset, rsTitles, dibuka menggunakan
cnPubs Connection object, dan property Hierarchical Flexgrid's DataSource
didefinisikan seperti rekordset rsTitles.
Dim cnPubs As ADODB.Connection

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 20
Dim rsTitles As ADODB.Recordset
Dim strConnect As String
strConnect = "Provider=SQLOLEDB;User ID=sa;" & _
"Data Source=VB6ENTSVR;" & _
"Initial Catalog=Pubs"
' Instantiate a Connection object
Set cnPubs = New Connection
' Open a new connection
cnPubs.Open strConnect, "sa", ""
' Instantiate the Recordset object
Set rsTitles = New Recordset
' Open a new recordset using the
' cn connection and return the appropriate records
rsTitles.Open "SELECT * From Titles", cnPubs
' Fill the Hierarchial Flexgrid control with
' data from the Titles table
Set flexTitles.DataSource = rsTitles

IV.4 Membuat Multiple Recordset


Menggunakan ADO kamu dapat mendefinisikan pernyataan perintah yang berisi
pernyataan multiple Select, Hasilnya seperti perintah tunggal yang mengembalikan
lebih dari satu rekordset, yang mana lebih efisien. Multefficient than calling a data
source multiple times. Multiple recordsets dapat dibuat menggunakan metode Execute
dari Command object atau metode Open daari Recordset object. Berikut ini contoh
membuat dua recordsets dari pernyataan single Open:
rsInfo.Open "SELECT * From Titles;SELECT * From Authors", cnPubs

IV.4.1 Mendapatkan Rekordset Selanjutnya


Setiap pernyataan dalam perintah gabungan dijalankan dalam urutan masuk, dan
hanya satu rekordset dikembalikan di satu waktu. Gunakan metode NextRecordset
untuk bergerak kem rekordset berikutnya ketika multiple recordsets dikembalikan.
Sejak metode NextRecordset hanya pernyataan perintah selanjutnya yang dijalankan,
jika kamu dengan jelas menutup Recordset object sebelum langkah melalui seluruh
pernyataan perintah, ADO tidak pernah menjalankan perintah yang tersisa.
Syntaxnya sebagai berikut :
Set rsInfo = rsInfo.NextRecordset

Berikut ini contoh menggunakan metode NextRecordset method untuk melihat data
dalam rekordset yang menggunakan peryataan perintah gabungan dari tiga peryataan
SELECT yang terpisah :

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 21
Private Sub cmdCompoundRecordsets_Click()
Dim
Dim
Dim
Dim

rsCompound As Recordset
Count As Integer
strConnect As String
strSQL As String

strConnect = "Provider=SQLOLEDB;" & _


"Data Source=VB6ENTSVR;" & _
"Initial Catalog=pubs;" & _
"User Id=sa;Password=;"
strSQL = "SELECT * FROM authors; " & _
"SELECT * FROM stores; " & _
"SELECT * FROM jobs"
Set rsCompound = New Recordset
rsCompound.CursorLocation = adUseClient
rsCompound.Open strSQL, strConnect, _
adOpenUnspecified, _
adLockUnspecified
Do Until rsCompound Is Nothing
Debug.Print "Recordset #" & Count
Do While Not rsCompound.EOF
Debug.Print , rsCompound.Fields(0), _
rsCompound.Fields(1)
rsCompound.MoveNext
Loop
Set rsCompound = rsCompound.NextRecordset
Count = Count + 1
Loop
End Sub

BAB V
Navigating Records
ADO menyediakan beberapa metode dan properties untuk navigasi dan memonitor
rekordset. Option navigasi rekord boleh bermacam-macam, bergantung pada cursor

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 22
type dan location. Kamu membutuhkan untuk mempertimbangkan apa syarat navigasi
yang dibutuhkan membuka rekordset.
Dari semua ADO objects, hanya Recordset object membolehkan user untuk navigasi
melalui kumpulan dari records. Hanya satu rekord dalam rekordset ditunjuk suatu
cursor, oelh karena itu, Recordset object mendukung jumlah dari properties dan
metode yang membolehkan user untuk nafigasi melalui rekordset.
Setelah mempelajari pelajaran ini mahasiswa diharapkan akan mampu:

Menggunakan ADO recordset navigation methods.


Menjelaskan bermacam-macam ADO recordset navigation
properties.

V.1 ADO Navigation Properties


Berikut ini daftaar properties dari Recordset object yang digunakan untuk nafigasi
recordset:
Property
AbsolutePage

Description
Letak atau mengembalikan halaman sebenarnya.

AbsolutePosition Letak atau mengembalikan posisi sebenarnya dari nilai rekord


(ini dapat dipakai oleh rekord menambah atau menghapus).
BOF

Menandakan jika pointer rekord telah digerakkan sebelum


rekord pertama.

Bookmark

Mengembalikan unique identifier untuk nilai rekord. Setting


property ini untuk menentukan record's bookmark
perpindahan record pointer ke rekord.

EOF

Menandakan jika pointer rekord digerakkan setelah rekord


terahkir.

Berikut ini contoh menggunakan property EOF:


If rsAuthor.EOF Then _
MsgBox "The end of the recordset has been reached."
End If

V.2 ADO Navigation Methods


Berikut ini daftar metode daari Recordset object yang digunakan untuk navigasi
melalui recordset.
Method
Move

Description
Bergerak ditentukan nomor dari rekordset, maju atau mundur.

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 23
MoveFirst

Bergerak ke rekord pertama.

MoveLast

Bergerak ke rekord terakhir.

MoveNext

Bergerak ke rekord selanjutnya.

MovePrevious

Bergerak ke rekord sebelumnya.

V.3 Latihan : Navigating an ADO Recordset


Dalam latihan ini kamu akam membuat applikasi dengan membuat recordset object
berdasar pada tabel dalam database SQL Server Pubs. Aplikasi ini akan mempunyai
tombol nafigasi seperti gambar dibawah ini.

Gamabar 5.1 Database navigation controls on the form


To connect to the SQL Server
1.
2.
3.
4.
5.
6.

Buka Visual Basic Standard EXE baru.


Pada Menu Project, klik References.
Check Microsoft ActiveX Data Objects 2.0 Library dan klik OK.
Set property Nama project ke PracL4.
Set property dari Form1 ke frmAuthors
Tambahka dua control Textbox ke form. Set properties name ke txtFirst dan
txtLast.
7. Tambahkan empat controlsCommandButton dan control Label ke form.
Berikut ini setting prperties :
Control

Property

Value

Command1

Name
Caption

CmdFirst
|<

Command2

Name
Caption

CmdPrevious
<<

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 24
Command3

Name
Caption

CmdNext
>>

Command4

Name
Caption

CmdLast
>|

Label1

Name
Caption

LblRecordCount
<blank>

8. Simpan project files ke folder \Practice\Ch06.


To create a connection and a recordset
1. Tambahkan variabel ke frmAuthor's seperti berikut ini :
' Use the events of the Recordset object
Private WithEvents rsAuthors As ADODB.Recordset
Private strConnect As String
Private cn As ADODB.Connection

2. Tambahkan kode beerikut ini pada prosedur event Form_Load.


Private Sub Form_Load()
' Use your local SQL Server name for the Data Source
strConnect = "Provider=SQLOLEDB;User ID=sa;" & _
"Data Source=VB6ENTSVR;" amp; _
"Initial Catalog=Pubs"
' Instantiate a Connection object
Set cn = New ADODB.Connection
' Open a new connection
cn.Open strConnect, "sa", ""
' Instantiate the Recordset object
Set rsAuthors = New ADODB.Recordset
' Set the CursorType, LockType and CursorLocation
rsAuthors.CursorType = adOpenDynamic
rsAuthors.LockType = adLockOptimistic
rsAuthors.CursorLocation = adUseClient
' Open a new recordset using the
' cn connection and return the appropriate records
rsAuthors.Open "Select * from Authors", cn
' Bind the Textbox controls
Set txtFirst.DataSource = rsAuthors
txtFirst.DataField = "au_fname"
Set txtLast.DataSource = rsAuthors
txtLast.DataField = "au_lname"
End Sub

Kode ini membuaat koneksi ke Pubs database pada SQL Server. Kemedian
membuat client-side, dynamic Recordset object dari tabel Authors. Control
TxtFirst dan txtLast controls bound ke kolom au_fname dan au_lname.

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 25
To add navigation features to the form
1. Menggunakan MoveFirst, MovePrevious, MoveNext dan MoveLast
methods dalam command button pada event Click untuk memberi user
kemampuan nafigasi rekord. Berikut ini contoh kode pada prosedure event
klik :
Private Sub cmdFirst_Click()
rsAuthors.MoveFirst
End Sub
Private Sub cmdLast_Click()
rsAuthors.MoveLast
End Sub
Private Sub cmdNext_Click()
rsAuthors.MoveNext
End Sub
Private Sub cmdPrevious_Click()
rsAuthors.MovePrevious
End Sub

2. Simpan aplikasi kamu.


3. Jalankan aplikasi kamu dan coba Run the application and try navigating
through the Authors records.

To use ADO object events

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 26
1. Dari frmAuthors module window, select rsAuthors dari Object drop-down
list (lihat gambaar 6.2).

Gamabar 5.2 The Object list


2. Dari Procedure drop-down list, select prosedure MoveComplete. Tambahkan
kode berikutnini untuk event MoveComplete:
Private Sub rsAuthors_MoveComplete(ByVal adReason As _
ADODB.EventReasonEnum, ByVal pError As ADODB.Error,
adStatus As ADODB.EventStatusEnum, _
ByVal pRecordset As ADODB.Recordset)
' Avoid reading beyond the end of file (EOF) or the
' beginning of file (BOF)
If rsAuthors.EOF Then
rsAuthors.MoveLast
ElseIf rsAuthors.BOF Then
rsAuthors.MoveFirst
End If
' Set the label's caption to show current record
' and total record count
lblRecordCount.Caption = "Record " & _
rsAuthors.AbsolutePosition _
& " of " & rsAuthors.RecordCount
End Sub

3. Simpan dan jalank aplikasi kamu. Gambaar 6.3 illustrasi from secara lengkap
sewaktu aplikasi dijalankan.

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 27

Gambar 5.3 The completed form

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 28

BAB VI
Memodifikasi Record
Menggunakan ADO, aplikasi dapat memodifikasi rekord dalam data source. Ini
termasu memodifikasi rekord pada pointer rekord atau memodifikasi banyak rekort
melalui perintah single SQL. Bergantung pda apakah kamu membutuhkan untuk
memodifikasi single record atau multiple records, kamu dapat memilih menggunakan
Recordset object atau perintah SQL.
Ketika aplikasi kamu membutuhkan untuk update data dalam external data source,
kamu dapat menjalankan pernyataan SQL secara langsung or menggunakan
Recordset object dan berbagai macam metode untuk memodifikasi data. and its
various methods for modifying data. Sejak recordset hanya dakpat memodifikasi satu
rekord pada suatu waktu dan menggunakan client dan server resources, kamu
seharusnya menggunakan pernyataan SQL ketika me-update multiple records. Dalam
event multiple records , kamu dapat menggunakan pernyataan dari Command atau
Connection object dan execute SQL Insert, Update, atau Delete untuk menambah atau
memodifikasi records.
Setelah mempelajari pelajaran ini mahasiswa diharapkan akan mampu:

Memodifikasi multiple records menggunakanperintah SQL.


Memodifikasi single record menggunakan Recordset object.

VI.1 Memodifikasi dengan Perintah SQL


Jika aplikasi kamu membutuhkan untuk update sejumlah rekord, kamu dapat
menjalankan perintah SQL menggunakan Connection atau Command object's Execute
method. Gunkan Connection object ketika pernyataan hanya akan dipanggil sekali.
Gunakan Command object jika perintah akan dijalankan oleh aplikasi kamu lebih dari
sekali jika kamu membutuhkan untuk memanggil stored procedure. Command object
dapat dibuat di temporary stored procedure untuk lebih efisien ketika perintha
digunakan lebih dari satu kali
Berikut ini menggunakan pernyataan untuk memodifikasi multiple records dalam
single database:
Private Sub cmdConnect_Click()
Dim cnPubs As Connection
Dim strConnect As String
Set cnPubs = New Connection
' Define the OLE DB connection string
strConnect = "Provider=SQLOLEDB;" & _
"Data Source=VB6ENTSVR;" & _
"Initial Catalog=Pubs"
' Open the database connection

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 29
cnPubs.Open strConnect, "sa", ""
' Execute the SQL statement
cnPubs.Execute "UPDATE Titles Set Price = Price * 1.1"
cnPubs.Close
Set cnPubs = Nothing
End Sub

VI.2 Memodifikasi Record dalam Recordset


Jika aplikasi kamu telah membuka rekordset, kamu dapat memodifikasi data
menggunakan recordset's methods. Memodifikasi rekord dengan Recordset object
terbatas untuk satu penambahan, penghapusan, atau update pada satu waktu.

VI.2.1 Menambah Rekord


Dalam perintah untuk menambah rekord baru gunakan AddNew method. Segera
setelah rekord baru tersebut terisi gunakan Update method untuk menyimpan ke
rekordset dan data source. Berikut ini contoh menggunakan AddNew method untuk
menambah rekord Author:
rsAuthors.AddNew
rsAuthors!au_fname = "Nancy"
rsAuthors!au_lname = "Davolio"
rsAuthors.Update

VI.2.2 Menghapus Record


Untuk menghapus rekord dari recordset, pertama kamu harus nafigasi ke rekord yang
tepat. Gunakan Delete method untuk permanen menghapus record dari recordset dan
data source. Berikut ini contoh menghapus suatu rekord:
rsAuthors.Delete

VI.2.3 Modifikasi Record


Untuk merubah suatu rekord dalam recordset, aplikasi kamu dapat memodifikasi nilai
daari setiap field. Kemudian menggunakan Update method, kamu dapat menyimpan
perubahan untuk recordset dan data source. Berikut ini contoh merubah dan meupdate suatu record:
rsAuthors!au_fname = "Nancy"
rsAuthors!au_lname = "Davolio"
rsAuthors.Update

VI.2.4 Membatalkan Perubahan atau Penambahan Rekord


Jika kamu membutuhkan pembatalan perubahan suatu record, atau hasil dari AddNew
method, kamu dapat menggunakan CancelUpdate method. Kamu hanya dapat
menggunakan CancelUpdate sebelum mejalankan Update method. Jika kamu gunakan

Sistem Informasi Manajemen


Membuat Aplikasi 2 - 30
CancelUpdate dengan AddNew, cursor mengembalikan ke rekord sebelumnya.
Berikut ini contoh membatalkan AddNew menggunakan CancelUpdate:
rsAuthors.AddNew
rsAuthors!au_fname = "Nancy"
rsAuthors!au_lname = "Davolio"
rsAuthors.CancelUpdate

Sistem Informasi Manajemen


Tambahan 1

Tambahan

Anda mungkin juga menyukai