• Tidak ada hasil yang ditemukan

PENDIDIKAN JARINGAN KOMPUTER DAN SISTEM INFORMASI

N/A
N/A
Protected

Academic year: 2021

Membagikan "PENDIDIKAN JARINGAN KOMPUTER DAN SISTEM INFORMASI"

Copied!
40
0
0

Teks penuh

(1)

PENDIDIKAN JARINGAN KOMPUTER DAN SISTEM INFORMASI ©Copyright PIKSI-ITS 2002 Ruang C.2 Telp: (031)5929871 Fax: (03

03 Jurusan Teknik Elektro ITS Keputih Sukolilo - Surabaya 1)5929870 : piksi-its@ee.its.ac.id

(2)

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

(3)

Kata Pengantar

Jenis pendidikan satu tahun sekarang ini sudah mulai banyak jumlah-nya. Salah satunya adalah Pendidikan Jaringan Komputer dan Sistem Informasi – ITS atau disingkat PIKSI – ITS. PIKSI pertama mengkhususkan diri pada bidang Jaringan Komputer dan Basis Data. Kemudian menyesuaikan diri dengan perkembangan dan minat masyarakat, dibuka kelas baru Aplikasi Perkantoran.

Salah satu bidang yang diajarkan PIKSI sekarang ini adalah Sistem Database. Diharapkan bahwa buku ini akan menunjuang bagi mereka yang berminat mendalami bidang ini, juga sebagai pembantu dalam perkuliahan PIKSI-ITS.

Saran dan kritik anda tentang buku atau kualitas pengajaran dapat anda kirimkan ke email : piksi-its@ee.its.ac.id.

Ketua PIKSI-ITS

(4)

iii

Daftar Isi

Kata Pengantar………...ii Daftar Isi………...iii

Universal Data Access………1-1 I.1. Sekilas tentang Universal Data Access ... 1-2 I.2. Membandingkan ADO dengan metode Data Access lain ... 1-3

Pengenalan Object Model ADO……… 2-1 II.1 Membuat Object ADO ... 2-2 II.2 ADO Connection Object ... 2-3 II.3 ADO Command Object... 2-4 II.4 ADO Recordset Object... 2-4 II.4.1 Setting CursorType Property... 2-4

Mengatur Koneksi ke Data Source……… 3-1 III.1 Definisi ADO Connection Object... 3-2 III.2 Membangun Koneksi ... 3-2 III.2.1 Melakukan Update dengan Connection Object ... 3-3 III.2.2 Disconnecting dari Data Source... 3-4 III.3 Latihan: Membuat Koneksi... 3-4 III.4 Menggunakan ADO Command Object... 3-5

Menerima Record dari Data Source………4-1 IV.1 Menggunakan ADO Recordset Object ... 4-2 IV.1.1 Menggunakan Explicit Connection Object... 4-2 IV.1.2 Menggunakan Implicit Connection Object... 4-3 IV.1.3 Locking the Recordset ... 4-4 IV.2 Mengakses Record dalam Recordset ... 4-4 IV.3 Binding Control ke ADO Recordset... 4-5 IV.4 Membuat Multiple Recordset ... 4-6

Navigating Records……… 5-1 V.1 ADO Navigation Properties ... 5-2 V.2 ADO Navigation Methods ... 5-2 V.3 Latihan : Navigating an ADO Recordset ... 5-2

Memodifikasi Record………. 6-1 VI.1 Memodifikasi dengan Perintah SQL ... 6-2 VI.2 Memodifikasi Record dalam Recordset... 6-2 VI.2.1 Menambah Rekord... 6-2 VI.2.2 Menghapus Record ... 6-3 VI.2.3 Modifikasi Record ... 6-3 VI.2.4 Membatalkan Perubahan atau Penambahan Rekord... 6-3

(5)
(6)
(7)

BAB

1

Universal Data Access

Tujuan :

Pada Bab Ini diharapkan mahasiswa dapat :

Mendeskripsikan tujuan dari strategy universal data access strategy

Mengidentifikasikan component dari OLE DB.

Mendefinisikan tiga bagian umum data access method.

(8)

Universal Data Access 1 - 2

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.

ambar 1.1 The universal data access architecture

bangun pada Open Database Connectivity (ODBC) application programming interface (API). Ini merupakan standart untuk mengakses semua type dari data. Dimana ODBC dibuat untuk

G

(9)

mengakses relational databases, OLE DB didesain untuk relational dan non-relationa information source. OLE DB termasuk langsung mendukung ODBC untuk

kemampuan kedepan untuk broad range dari ODBC driver relational database hari ini.

Component OLE DB terdiri dari data providers, data consumers, dan service compone

l

tersedia

nts, seperti diilustrasikan dalam gambar 1.2.

I.2. Membandingkan ADO dengan metode Data Access lain

Meskipun aplikasi dapat menggunakan Data Access Objects (DAO) dan Remote Data bjects (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

Gambar 1.2 OLE DB components

O

berbagai macam tools, termasuk Microsoft Visual Basic, Microsoft Access, dan Microsoft Office. Yang mana, berbedaannya adalah:

(10)

Universal Data Access 1 - 4 • 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

e-mail atau data yang berada pada dalam spreadsheet.

l Basic untuk

mengakses ODBC data tanpa melakukan pengkodean ke ODBC API melalui

programmable object model. RDO didesain untuk mengambil keuntungan dari ti SQL

i tiga data access methods. Dengan DAO, kamu dapat mengakses data dalam Microsoft Jet databases, Microsoft Jet-connected

data sources, sepeerti FoxPro, Paradox, atau Lotus 1-2-3. Bandingkan ke ata ula

Setelah kamu m jawaba

itu mudah menggunakan, dengan sedikit pengkodean.

an akan

nternet Information dapat menggunakan ADO untuk mengakses relational data denga baik seperti

RDO adalah object model untuk mengakses relational data melalui ODBC.

RDO didesain untuk memberikan perkembangan Visua

COM interface ke ODBC API dan menyediakan funsi dari ODBC dalam

database server yang menggunakan sophisticated query engines, seper Server dan Oracle.

DAO adalah object model untuk mengakses local atau SQL data melalui Jet.

DAO paling tua dar

ODBC databases, and installable indexed sequential access method (ISAM)

teknologi ADO terbaru dan RDO, DAO adalah terlambat, kurang mampu d access alternative. DAO, sepeti teman, Microsoft Jet database engine, sem didesain untuk mendukung ISAM data access.

melihat setiap metode mengakses data, kamu mungkin ingin tagu mengapa embutuhkan ADO jika kamu telah menggunakan RDO/DAO. Disini dasar n 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

• ADO merupakan penggabungan dari keistemewaan RDO dan DAO d menggantikan RDO dan DAO.

• ADO adalah standart data access object model melalui Microsoft tools, termasuk Visual Basic, Access, Office, dan Microsoft I

(11)

Pengenalan Object Model ADO

Tujuan :

Pada Bab Ini diharapkan mahasiswa dapat :

Mengenali

Organisasi

dari ADO object model.

Mendeskripsikan role dari ADO Connection object.

Mendeskripsikan role dari ADO Command object.

Mendeskripsikan role dari ADO Recordset object.

BAB

(12)

Pengenalan Object Model ADO 2 - 2

II.1 Membuat Object ADO

del menyediakan kemudahan untuk me-set object, properties, dan etode untuk membuat aplikasi yang mengakses dan memanipulasi data. Meskipun

mpu keluaar dari scope hierarchy, objects yang ada dalam

tionships, seperti ditunjukkan dalam gambar 2.1. Contahnya, tidak terface pemrograman database sebelumnya, kamu tidak harus embuat Connection object sebelum mengakses Recordset object. Dengan ADO, amu dapat langsung membuat Recordset object, yang mana automatis membuat

rmasuk koneksinya. Konsep ini biasanya disebut "flat" object model.

Gambar 2.1 The ADO Object Model DO 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 ADO object mo m ADO objects ma ierarchical rela eperti dengan in h s m k te A

(13)

Recordset objects pada konek mengurangi beban server.

si yang sama. Ini mengurangi aplikasi dan

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

enghasilkan dua atau lebih

. Property object endukung informasi ak didukung oleh that ADO. Property

Setiap k es dan methods yang membolehkan

kamu u bekerja dengan pemrograman ADO,

ts: Connection, Command, and

• Field object

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

• Parameter object

• Error object

Berisi penyampaian informasi error tentang kondisi yang berlansung oleh provider. Sejak adanya pernyataan tunggal dapat m

error, Errors collection dapat berisi lebih dari satu Error object.

• Property object

Berisi kaarakteristik pendefinisian provider dari ADO object digunakan ketika data provider membutuhkan untuk m specifik tentang data source yang tid

object membuat ADO extensible.

eistemewaan ADO object dari properti ntuk memanipulasi object. Ketika kamu kamu seperlunya menggunakan tiga ADO objec Recordset objects.

Catatan

nakan ADO dalam aplikasi Visual Basic, kamu

II.2 A

Contoh

yang term embolehkan kamu

untuk konfigurasi property CommandTimeout. Property ini menentukan berapa lama seharusnya ADO embangun koneksi sebelum menghentikan

ussaha n

koneks

Sebelum kamu menggu

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

DO Connection Object

, sebelum membangun koneksi, dalam aplikasi dapat membuat koeksi string asuk user's logon name dan password. Koneksi juga m

menunggu ketika m

membangun koneksi dan akan menghasilkan error bila gagal mengadaka i.

(14)

Pengenalan Object Model ADO 2 - 4

II.3 A

Command objects didefinisikan menentukan secaara detail informasi tentang data yan i atabase. Command objects dapat berdasarkan object database yang lain (seperti tabel, view, atau stored prosedure) atau Structured Query Language (SQL)

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. Jik

berart koneksi baru dibangun untuk Command object. Yang mana, sejak lebih daari satu Command object dapat menggunakan Connection object yang sama, ini berari yan t

II.4 A

Record and. Kamu

gunkan Recordset objects untuk manipulasi data daari provider. Semua Recordset obj s gunakan records (baris) dan field (kolom).

Ketika cursor. secara

satu rek ah atau menghapus rekord yang aktif itu

e menentukan bagaimana kamu dapat menggunakan rekord dalam rekords enyeting 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:

pada data sebenarnya dalam data source. Setiap nggunakan boookmark untuk membaca artinya aplikasi selalu membaca nilai terakhir yang disimpan oleh user. Dynamic cursor automatis meng-update

kasi

sedia hanya sebagai server-side cursor.

Catatan

DO Command Object

g d terima daari d

query.

a kamu menentukan property ActiveConnection dengan connection string,

g a effisient.

DO Recordset Object

set object mewakili seluruh rekord dari tabel atau executed comm

ect dibangunan meng

kamu gunkan data dalam recordset object, kamu bekerjaja dengan database Cursor aalah database object digunkan aplikasi untuk memanipulasi data individu rekord yang ada. Misalkan, ketika kamu membuat rekordset, hanya

ord yang aktif. Kamu dapat merub tanpa mempengaruhi rekord yang lain.

II.4.1 Setting CursorType Property

Property CursorTyp et. Kamu dapat m

Dynamic cursor

Berisi sekumpulan bookmark

saat client meminta rekord, ADO me nilai yang ditunjuk pointer. Yang

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 apli harus mendeteksi semua perubahan yang dibuat oleh user lain. Cursor ini ter

(15)

• Keyset cursor

n

• Static cursor

seakan-akan menyalin data dari database ke g r

u set LockType ogramer dan pengarang menyebut juga an sesuatu yang sepesial untuk

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.

Serupa dengan dynamic cursor, tapi setiap user lain mengadakan perubaha 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 sebenarnya adalah

rekordset, bila user lain merubah data pada database maka tidak akan langsun terlihat pada user yang mengakses database dengan static cursor. Statuc curso 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

Forward-only cursor adalah nilai default untuk server-side cursor dan hanya tersedia untuk server-side cursor. Cursor ini sangat efisien khususnya jika kam

= adReadOnly dan CacheSize = 1. Banyak pr seperti noncursor. Kamu tidak harus melakuk

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.

(16)

Mengatur Koneksi ke Data Source 3 - 1

si ke Data Source

3

BAB

Mengatur Konek

Tuj

Pada

Menghubungkan Data Source dengan menggunakan object ADO

uan :

Bab Ini diharapkan mahasiswa dapat:

(17)

III.1 Definisi ADO Connection Object

ederhana menggunakan ADO untuk mengakses data source:

arasikan variabel object Koneksi.

untuk membangun hubungan dengan data source (membuka .

Sejak koneksi dibuka, kamu dapat menjalankan query yang mengubah rekord atau megembalikan dari rekord yang disebut recordset.

3. Menjala 4. Menutu

Koneksi ke data souce server resources bebas.

un Koneksi

embuat koneksi ke database dan ketika oneksi sedang berjalan, semua peritah ke database dapat dijalankan.Syntax untuk

enjelasan metode untuk membuka koneksi:

• ConnectionString

String yang bernilai berisi informasi koneksi. Informasi ini menentukan :

o Nama provider yang digunakan koneksi. o Nama dari provider – berupa file.

• UserID

String bernilai berisis nama user ketika membangun koneksi.

• Password

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.

ontoh membangun koneksi : Dasar aplikasi s 1. Mendekl 2. Mencoba koneksi) nkan perintah SQL. p koneksi.

III.2 Membang

enggunakan metode Open untuk m Dengan m

k

membuka koneksi :

connection.Open ConnectionString, UserID, Password, Options P

(18)

Mengatur Koneksi ke Data Source 3 - 3 Private Sub cmdConnect_Click()

' Declare the object variable

' This variable will contain the connection information

' Instantiate the object variable Set cnPubs = New ADODB.Connection

' st

"Data Source=VB6ENTSVR;" & _ "Initial Catalog=Pubs"

' Open the database connection cnPubs.Open strConnect, "sa", "" End Su

Dim cnPubs As ADODB.Connection

Dim strConnect As String

Define the OLE DB connection string rConnect = "Provider=SQLOLEDB;" & _

b

CATATAN

"Data Source=" bernilai dalam connection string adala nama dari remote server. "Initial Catalog=" bernilai nama database dalam

optional karena kamu dapat

menentukan informasi koneksi menggunakan property ConnectionString Connection object's roperty, seperti ditunjukkan dibawah ini :

Privat

' Declare the object variable Dim c u

' Instantiate the object variable Set cnPubs = New ADODB.Connection

'

cnPubs.ConnectionString = "Provider=SQLOLEDB;" & _ "UID=sa;pwd=;" & _

"Data Source=VB6ENTSVR;" & _ ' cnPubs.Open End u III.2.1 Sejak k . Dengan

menggu mu dapat mengirim peerintah

SQL ke database tanpa mengebalikan semua rekord ke client. Contoh, kamu mungkin ua prices dalam database dengan 10 percent. Dalam external data source.

Semua penjelasan untuk metode Open adalah

ConnectionString p

e Sub cmdConnect_Click()

nP bs As ADODB.Connection

Set the ConnectionString property value

"Initial Catalog=Pubs" Call the Open method without any arguments

S b

Melakukan Update dengan Connection Object

oneksi telah terjadi, kamu dapat me-update rekord dalam database nakan metode Execute Connection object's , ka

(19)

hal ini, kamu dapat menggunakan perintah query update melalui metode Execute,

metode Close untuk kan teknik yang baik untuk m applikasi berakhir.

Sub cmdClose_Click() cn

' Clear the object to free client resources Set cnPubs = Nothing

End Sub

III.3 L

baru Standard EXE. .

ects 2.0 Library dan klik OK. set property Name property ke

Connect.

programnya :

ata = New Connection With cnData

.Provider = "SQLOLEDB"

"Initial Catalog=Pubs"

End If

seperti contoh dibawah ini :

Sub cmdUpdatePrices_Click()

tles Set Price = Price * 1.1" cnPubs.Execute "UPDATE Ti

d Sub En

III.2.2 Disconnecting dari Data Source

Sejak kamu mengahkiri koneksi, kamu menggunakan memutuskan hubungan dari data source. Ini merupa menutup semua koneksi yang terbuka sebelu

Code mengahkiri koneksi dari data source :

Pubs.Close

atihan: Membuat Koneksi

Pada Latihan ini. Kamu menghubungkan database dengan menggunakan OLE DB provider.

Untuk menghubungkan OLE DB provider menggunakan code 1. Buka Visual Basic dan buat project

2. Pada Menu Project, klik References

3. Check Microsoft ActiveX Data Obj

4. Tambahkan CommandButton ke Form1,

cmdConnect, dan property Caption ke &

5. Dalam cmdConnect_Click event procedure, code

Private Sub cmdConnect_Click() Dim cnData As Connection

' Instanciate the connection Set cnD

.ConnectionString = "User ID=sa;" & _ "Data Source=VB6ENTSVR;" & _

.Open End With

If cnData.State = adStateOpen Then MsgBox "Connection successful."

(20)

Mengatur Koneksi ke Data Source 3 - 5 ' Close the connection and release the cnData object

cnData.Close

Set cnData = Nothing

TATAN End Sub CA SQ ource parameter.

The ConnectionString has a parameter value that uses the SQL Server OLE OLE DB provider requires a different value for the roperty.

tton.

meneripa kotak pesan (pesan error).

8. Ketika selesai, klik End pada menu Run.

nggunakan ADO Command Object

an untuk data source. Ini dapat berdasarkan object yang lain

stor p

Com a ksi

unt rty

Act rensi ke

Co dari

Connection object. Jika kamu menentukan property ActiveConnection dengan

connec uk Command object. Yang mana, sejak

itu lebi nggunakan Connectionobject yang sama,

pada um n satu koneksi. Sekali Command

object d menjalankan perintah yang

ditentu

Query merubah rekord

dalam d untuk menghasilk rekord,

dimana enrubah rekord. Jika kamu

mengiri pernyataan Select, kamu dapat mengembalikan banyak rekordset recordsets dengan satu

Comma ored procedure, untuk

mengak

The Data Source parameter of the ConnectionString must point to a Server. If the name of the SQL Server is different (than VB6ENTSVR) on your network, you have to change the value of the Data S

DB provider. Each ring p ConnectionSt

6. Pada menu Run, klik Start. 7. Klik tombol Connect bu

Jika koneksi sukses, kamu tidak akan

III.4 Me

Command object didefinisikan dari menentukan perintah yang dijalank

pada database(such as a table, view, or ed rocedure) atau perintah SQL.

m nd object yang lain terbuka dalam koneksi baru atau menggunakan kone uk melakukan query, tergantung pada apa yang kamu tentukan didalam prope

Connection. Jika kamu set property ActiveConnection

ive dengan refe

nnection object, Command object menggunakan koneksi yang berjalan

tion string, Koneksi baaru dibangun unt h dari satu Command object dapat me

umnya lebih effisient untuk menggunaka uk ibuat, kamu dapat menggunakan itu unt

recordset. kan atau membangun

strings menghasilkan records seperti recordset, atau hanya atabase. Misalnya, menggunakan pernyataa

Update atau Delete hanya m n Select pernyataan SQL

m lebih dari satu

pernyataan. Dengan enggunakan property ndText untuk menentukan pernyatan SQL, atau st

source. ses pada data

(21)

Berbag

Comma ntuk

menent unakan.

Daftar nilai yang diidukung CommandType :

Value Description

adCmdText Digunakan jika query string adalah perintah SQL. adCmd

adCmd

procedure. adCmd

set

adC fik untuk OLE DB providers yang

ataan SQL dan mempu untuk langsung erdasarkan nama tabel. Ini merupakan

adCmdUnknown Digunakan ketika command type tidak jelas diketahui, dan alankan command text pertama seperti pernyataan SQL, kemudian seperti stored

abel. Jika error terjadi jika semua dari usaha tersebut gagal. Karena Command

fault.

t ai macam kemungkinan printah yang kamu tempatkan pada property

harus juga menggunkan property CommandType u ndText, tetapi kamu

uka type dari command yang dig

Table Digunkan jika query string adalah nama dari suatau tabel. StoredProc Digunakan jika query string adalah nama dari stored

File Digunakan jika query string adalah nama dari file yang digunakan untuk menyimpan rekord dalam object Rekord sebelumnya.

mdTableDirect Digunakan spesi mendukung perny membukan tabel b

varisi pada adCmdTable.

provider mencoba untuk menj

procedure, dan ahkirnya seperti nama t

object harus menunjukkan langkah tersebut untuk

menentukan type dari query string, Hasil adalah menurun. Ini adalah nilai de

Berikut ini kode menggunakan Command object untuk menambah pesentase discoun untuk semua rekord dalam tabel Discount dengan nilai 10 percent:

Private Sub cmdDoCommand_Click() Dim comDiscountUpdate As Command

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

(22)

Mengatur Koneksi ke Data Source 3 - 7 CATATAN

d procedure atau table. Query string dapat juga nama dari store

(23)

Menerima Record dari Data Source

Tujuan :

Pada Bab Ini diharapkan mahasiswa mampu:

Mengembalikan records dari data source.

Definisi dan menggunakan cursors.

Mengembalikan dan mengatur banyak recordsets.

BAB

(24)

Navigating Records 4 - 2

IV.1 Menggunakan ADO Recordset Object

t mewakili hasi dari pelaksanaan perintah pda data source. Kamu apta menggunakan object tersebut untuk memanipulasi data. Sekali koneksi

source, kamu dapta mengebalikan rekord dengan menggunakan cordset object's.

erikut ini syntax untuk mengakse rekord dalam data source :

cordset.Open Source, ActiveConnection, CursorType, LockType, Options Penjelasan m

Argument Description

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

Optional. Nama variabel koneksinya atau String berisi parameter ConnectionString.

dari cursor provider rdset.

kan apa type dari locking membuka

ptions Optional. Benilai Longyang 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.

.1.1 Menggunakan Explicit Connection Object

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

kordset, kamu boleh membutuhkan untuk membangun dalam explicit Connection bject atau Command object lebih dahulu.

erikut ini contoh membuka dengan rekordset baru dari koneksi yang sudah berjalan :

im cnPubs As Connection im rsTitles As Recordset

Instantiate the objects et cnPubs = New Connection et rsTitles = New Recordset

Recordset objec d dibangun ke data etode Open Re m B re

etode Open pada rekordset :

So

ActiveConnection

CursorType Optional. Nilai yang menentukan type o yang digunakan ketika membuka rek LockType Optional. Nilai ynag menentu

(concurrency) provider yang digunakan ketika rekordset. O IV K so c re o B D D ' S S

(25)

' Open the connection

cnPubs.ConnectionString = "Provider=SQLOLEDB;" & _

' Retrieve records from the data source

n object yang ada adalah untuk membuka rekordset baru menggunakan implicit connection. Satu dari keistemewaan dariADO obj lah kemampuan memanggil objects langsung. Ketika memanggil Recordset object secara langsung, ADO auto t background Connection

ou cannot a

rekordset ditutup.

ecords dari tabel Titles:

Private Sub cmdO

Dim rsTitles As Recordset

' Instantiat Set rsTitles en a new ds tles.Ope "Provide "Data So "Initial End Sub

ah kode yang akan an implicit

n

"User ID=sa;" & _

"Data Source=VB6ENTSVR;" & _ "Initial Catalog=Pubs"

cnPubs.Open

rsTitles.Open "Select * from Titles", cnPubs

IV.1.2 Menggunakan Implicit Connection Object

Alternative untuk menggunakan Connectio

ect model ada

matis membua

object (Y access this object programmatically). Ini automatis ditutup ketik

Berikut ini contoh menggunkan implicit connection untuk mengembalikan r

penRecordset_Click()

e the Recordset object = New Recordset

' Op rsTi

connection and return the appropriate recor n "Select * from Titles", _

r=SQLOLEDB;User ID=sa;" & _ urce=VB6ENTSVR;" & _

Catalog=Pubs"

Seperti kamu lihat, menggunakan teknik ini mengurangi sejuml kamu tulis. Yang mana, untuk setiap rekordset yang menggunak

connection, new connection dibuat pada data source. Sebagaian kasus, penambaha connections menggunakan valuable resources. Ini lebih effisient untuk membuat single Connection object dan membuka yang dibutuhkan rekordset dari koneksi itu. Kamu dapat membuat banyak recordsets dari satu koneksi tanpa menambahkan connection resources.

CATATAN

nnections menyebabkan scalability problems applications, seperti dengan gingat explicit Connection objects ketika Menggunakan implicit co

ketika programming enterprise-level Microsoft SQL Server, men

(26)

Navigating Records 4 - 4 IV.1.3 Locking the Recordset

ly. Provides for the best performance and he event your application intends to add sting records, you will need to specify a different In a multi-user environment, locking ensures that no two users can

Menggunakan property LockType untuk menyeting pilihan untuk rekordset. Berikut e.

sedang di-edit.

locks records hanya ketika kamu memanggil metode Update rekordset.

mode batch update, ini dipaksa ode. Option ini dibutuhkan rs, termasuk disconnected

nakan optimistic locking:

les", cnPubs, adOpenDynamic, imistic

a dari fied yang kamu akses, kamu dapat syntax berikut untuk mengakses nilai tertentu dari field :

RecordsetObject!FieldName

ADO menghasilkan cursors yang read-on nts. In t lowest system resource requireme

records, or edit exi records, delete

cking option. lo

change the same record at the same time.

ini tabel yang memberi keterangan nilai dari property LockTyp

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

adLockOptimistic Provider menggunakan optimistic locking, yang mana

adLockBatchOptimistic Records

di-ke immediate update m lock dalam

untuk client-side curso recordsets.

Berikut ini contoh membuta dynamic recordset menggu

rsTitles.Open "Select * from Tit adLockOpt

IV.2 Mengakses Record dalam Recordset

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

• Referensi nama field

Jika kamu mengetahui nam menggunakan

Ini adalah paling efisien dari dua cara untuk referensi field.

(27)

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

window Immediate:

-atau-

tles.

nilai dari field dengan menggunakan Fields collection:

recordsetobject.Fields(0) atau recordsetobject.Fields("FieldName") Berkut ini contoh menampilkan fieldTitle dalam

Debug.Print rsTitles!Title

Debug.Print rsTi Fields(0)

NOTE

Field Title pada fi

Visual Basic menyediaka ntuk

ADO recordsets. Ketika c

menggambarkan data rec Berikut contoh melakukan binds text box ke rekordset rsAuthor :

Set txtAuthor.DataSource = rsAuthor

Kamu dapat juga melakukan bind control lebih komplek ke rekordset. Berikut ini , dibuka menggunakan cnPubs Connection object, dan property Hierarchical Flexgrid's DataSource

Dim cnPubs As ADODB.Connection Dim rsTitles As ADODB.Recordset Dim strConnect As String

strCon "D "I

on object Set cnPubs = New Connection

' Open

cnPubs.Open strConnect, "sa", ""

' Instantiate the Recordset object Set rsTitles = New Recordset

eld pertama dalam collection.

IV.3 Binding Control ke ADO Recordset

n kemampuan untuk control bind seperti text box u ontrol bound ke recordset, control automatis ord's saat itu.

txtAuthor.DataField = "au_fname"

code membuka koneksi ke SQL Server. Recordset, rsTitles

didefinisikan seperti rekordset rsTitles.

nect = "Provider=SQLOLEDB;User ID=sa;" & _ ata Source=VB6ENTSVR;" & _

nitial Catalog=Pubs"

' Instantiate a Connecti

(28)

Navigating Records 4 - 6

' Open

' cn connection and return the appropriate records rsTitles.Open "SELECT * From Titles", cnPubs

Set flexTitles.DataSource = rsTitles

unakan ADO kamu dapat mendefinisikan pernyataan perintah yang berisi pernyataan multiple Select, Hasilnya seperti perintah tunggal yang mengembalikan

ih efisien. Multefficient than calling a data source multiple times. Multiple recordsets dapat dibuat menggunakan metode Execute dari Co bject 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

, s menutup Recordset object sebelum langkah melalui seluruh pernyataan perintah, ADO tidak pernah menjalankan perintah yang tersisa.

at data ataan perintah gabungan dari tiga peryataan SELECT yang terpisah :

s_Click() g LOLEDB;" & _ _ _ ; " & _ a new recordset using the

' Fill the Hierarchial Flexgrid control with ' data from the Titles table

IV.4 Membuat Multiple Recordset

Mengg

lebih dari satu rekordset, yang mana leb

mmand o

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 jela

Syntaxnya sebagai berikut :

Set rsInfo = rsInfo.NextRecordset

Berikut ini contoh menggunakan metode NextRecordset method untuk melih dalam rekordset yang menggunakan pery

Private Sub cmdCompoundRecordset

Dim rsCompound As Recordset Dim Count As Integer

Dim strConnect As Strin

Dim strSQL As String

strConnect = "Provider=SQ

"Data Source=VB6ENTSVR;" & "Initial Catalog=pubs;" &

"User Id=sa;Password=;" thors strSQL = "SELECT * FROM au

(29)

"SELECT * FROM stores; " & _

rsCompound.Open strSQL, strConnect, _

Debug.Print "Recordset #" & Count

elds(0), _ rsCompound.Fields(1)

"SELECT * FROM jobs"

Set rsCompound = New Recordset

rsCompound.CursorLocation = adUseClient

adOpenUnspecified, _ adLockUnspecified

Do Until rsCompound Is Nothing

Do While Not rsCompound.EOF Debug.Print , rsCompound.Fi

rsCompound.MoveNext Loop

Set rsCompound = rsCompound.NextRecordset Count = Count + 1

Loop End Sub

(30)

Memodifikasi Record 5 - 1

Navigating Records

BAB

5

Tujuan :

ada Bab Ini diharapkan mahasiswa mampu :

Menggunakan ADO recordset navigation methods

Menjelaskan

bermacam-macam ADO recordset navigation properti

P

(31)

V.1 ADO Navigation Properties

ar properties dari Recordset object yang digunakan untuk nafigasi cordset:

Description

bsolutePage Letak atau mengembalikan halaman sebenarnya.

bsolutePosition Letak atau mengembalikan posisi sebenarnya dari nilai rekord (ini dapat dipakai oleh rekord menambah atau menghapus). BOF Menandakan jika pointer

rekord pertama.

ookmark Mengembalikan unique identifier untuk nilai rekord. Setting property ini untuk menentukan record's bookmark

perpindahan record pointer ke rekord.

Menandakan jika pointer rekord digerakkan setelah rekord terahkir.

MsgBox "The end of the recordset has been reached." nd If

.2 ADO Navigation Methods

erikut ini daftar metode daari Recordset object yang digunakan untuk navigasi elalui recordset.

Method Description

ove Bergerak ditentukan nomor dari rekordset, maju atau mundur. oveFirst Bergerak ke rekord pertama.

oveLast Bergerak ke rekord terakhir. oveNext Bergerak ke rekord selanjutnya. ovePrevious Bergerak ke rekord sebelumnya.

.3 Latihan : Navigating an ADO Recordset

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

Berikut ini dafta re

Property

A A

rekord telah digerakkan sebelum

B

EOF

Berikut ini contoh menggunakan property EOF:

If rsAuthor.EOF Then _ E

V

B m M M M M M

V

D b

(32)

Memodifikasi Record 5 - 3

Gamabar 5.1 Dat

To connect to the SQL Server

1. Buka Visual Basic Standard EXE baru. 2. Pada Menu Project, klik References.

2.0 Library dan klik OK. 4. Set property Nama project ke PracL4.

1 ke frmAuthors

e txtFirst dan 7. Tambahkan empat controlsCommandButton dan control Label ke form.

Name Caption

CmdFirst |<

Command2 Name CmdPrevious

man CmdNext

>>

man CmdLast

>|

LblRecordCount abase navigation controls on the form

3. Check Microsoft ActiveX Data Objects

5. Set property dari Form

6. Tambahka dua control Textbox ke form. Set properties name k

tLast.

tx

Berikut ini setting prperties :

Control Property Value

Command1 Caption << Com d3 Name Caption Com d4 Name Caption Label1 Name Caption <blank>

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

(33)

1. Tambahkan variabel ke frmAuthor's seperti be

' 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

Private Sub Form_Load()

' Use your local SQL Server name for the Data Source strConnect = "Provider=SQLOLEDB;User ID=sa;" & _ "Data Source=VB6ENTSVR;" amp; _

rikut ini :

_Load.

"Initial Catalog=Pubs"

' Open a new connection

"sa", ""

ecordset object

e and CursorLocation nDynamic

thors.Open "Select * from Authors", cn

"au_fname" Set txtLast.DataSource = rsAuthors txtLast.DataField = "au_lname" End Su

edian membuat client-side, dyn rdset object dari tabel Authors. Control

au_fna e.

To add navigation features to the form

1. Menggunakan MoveFirst evious, MoveNext dan MoveLast

methods dalam command button pada event Click emberi user uan nafigasi reko kut ini contoh kode pada prosedure event klik :

rsAuthors.MoveFirst

Private Sub cmdLast_Click()

' Instantiate a Connection object Set cn = New ADODB.Connection

cn.Open strConnect, ' Instantiate the R

Set rsAuthors = New ADODB.Recordset ' Set the CursorType, LockTyp

rsAuthors.CursorType = adOpe

rsAuthors.LockType = adLockOptimistic UseClient rsAuthors.CursorLocation = ad

' Open a new recordset using the

' cn connection and return the appropriate records rsAu

' Bind the Textbox controls

Set txtFirst.DataSource = rsAuthors txtFirst.DataField =

b

Kode ini membuaat koneksi ke Pubs database pada SQL Server. Kem amic Reco

TxtFirst dan txtLast controls bound ke kolom me dan au_lnam

, MovePr

untuk m

kemamp rd. Beri

Private Sub cmdFirst_Click()

(34)

Memodifikasi Record 5 - 5 rsAuthors.MoveLast

End Sub

Private Sub cmdPrevious_Click()

2. 3.

To u

1. rs dari Object drop-down

Private Sub cmdNext_Click() rsAuthors.MoveNext End Sub

rsAuthors.MovePrevious End Sub

Simpan aplikasi kamu.

ating Jalankan aplikasi kamu dan coba Run the application and try navig through the Authors records.

se ADO object events

Dari frmAuthors module window, select rsAutho

(35)

Gamabar 5.2 The Object list

2. ure drop-down list, select prosedure MoveComplete. Tambahkan Complete:

te(ByVal adReason As _ pError As ADODB.Error, _ entStatusEnum, _

yVal pRecordset As ADODB.Recordset)

' Avoid reading beyond the end of file (EOF) or the ile (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.

Dari Proced

kode berikutnini untuk event Move

Private Sub rsAuthors_MoveComple ADODB.EventReasonEnum, ByVal adStatus As ADODB.Ev B ' beginning of f If rsAuthors.EOF Then rsAuthors.MoveLast ElseIf rsAuthors.BOF

(36)

Memodifikasi Record 6 - 1

emodifikasi Record

BAB

6

M

Tuj

Pa

ords menggunakan perintah SQL.

Memodifikasi single record menggunakan Recordset Object.

uan :

da Bab Ini diharapkan mahasiswa dapat:

(37)

VI.1 Memodifikasi dengan Perintah SQL

u membutuhkan untuk update sejumlah rekord, kamu dapat

enjalankan perintah SQL menggunakan Connection atau Command object's Execute Connection object ketika pernyataan hanya akan dipanggil sekali. and object jika perintah akan dijalankan oleh aplikasi kamu lebih dari membutuhkan untuk memanggil stored procedure. Command object apat dibuat di temporary stored procedure untuk lebih efisien ketika perintha

igunakan lebih dari satu kali

erikut ini menggunakan pernyataan untuk memodifikasi multiple records dalam single database:

Private Sub cmdConnect_Click() Dim cnPubs As Connection Dim strConnect As String

New Connection

OLE DB connection string = "Provider=SQLOLEDB;" & _ "Data Source=VB6ENTSVR;" & _

cnPubs.Close

Set cnPubs = Nothing nd Sub

I.2 Memodifikasi Record dalam Recordset

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

I.2.1 Menambah Rekord

alam perintah untuk menambah rekord baru gunakan AddNew method. Segera telah rekord baru tersebut terisi gunakan Update method untuk menyimpan ke kordset dan data source. Berikut ini contoh menggunakan AddNew method untuk enambah rekord Author:

sAuthors.AddNew

sAuthors!au_fname = "Nancy" sAuthors!au_lname = "Davolio" sAuthors.Update

Jika aplikasi kam m

method. Gunkan unakan Comm ekali jika kamu G s d d B Set cnPubs = ' Define the strConnect "Initial Catalog=Pubs" ' Open the database connection cnPubs.Open strConnect, "sa", "" ' Execute the SQL statement

cnPubs.Execute "UPDATE Titles Set Price = Price * 1.1"

E

V

Ji m te V D se re m r r r r

(38)

Memodifikasi Record 6 - 3 VI.2.2 Menghapus Record

Untuk menghapus rekord dari recordset, pertama kamu harus nafigasi ke reko

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

rd yang

ilai Kemudian menggunakan Update method, kamu dapat menyimpan perubahan untuk recordset dan data source. Berikut ini contoh merubah dan

me-Authors!au_fname = "Nancy"

Penambahan Rekord

n suatu record, atau hasil dari AddNew pat

mu gunakan , cursor mengembalikan ke rekord sebelumnya.

ddNew menggunakan CancelUpdate:

rsAuthors!au_fname = "Nancy"

Untuk merubah suatu rekord dalam recordset, aplikasi kamu dapat memodifikasi n daari setiap field.

update suatu record:

rs

rsAuthors!au_lname = "Davolio" rsAuthors.Update

VI.2.4 Membatalkan Perubahan atau

Jika kamu membutuhkan pembatalan perubaha

method, kamu dapat menggunakan CancelUpdate method. Kamu hanya da Update sebelum mejalankan Update method. Jika ka menggunakan Cancel

CancelUpdate dengan AddNew contoh membatalkan A Berikut ini

rsAuthors.AddNew

rsAuthors!au_lname = "Davolio" rsAuthors.CancelUpdate

(39)
(40)

Gambar

Gambar 1.2 OLE DB components
Gambar 2.1 The ADO Object Model
Gambar 5.3 The completed form

Referensi

Dokumen terkait

Perbedaan pertumbuhan antara larva yang diberi berbagai jenis pakan dapat dijelaskan karena tingkat pencernaan dari nauplii Artemia lebih cepat dan lebih besar sejak pemberian

Anggota yang berpraktek bagi publik harus memperhatikan prinsip-prinsip pada kode etik profesi dalam menentukan. lingkup dan sifat jasa yang

Hal ini berarti pembelajaran pada siklus II telah memenuhi indikator keberhasilan dengan nilai rata-rata daya serap klasikal minimal 65% dan ketuntasan belajar

Dari hasil penelitian diketahui bahwa terdapat pengaruh yang signifikan pada kelompok eksperimen yang mendapatkan perlakuan (treatment) PNF terhadap fleksibilitas

Permasalahan yang dihadapi oleh KBBB adalah tidak tersedianya modal untuk produksi dalam jumlah besar... SKEMA WAKAF PRODUKTIF

Segala puji hanya bagi ALLAH SWT yang telah member petunjuk dan hidayah-Nya sehingga penulis dapat menyelesaikan tugas akhir dengan judul “ Hubungan Riwayat

Suwito mengemukakan Interferensi adalah peristiwa pemakaian unsur suatu bahasa alam yang terjadi dalam diri penutur (Suwito, 1983 : 54). Artinya interferensi bisa terjadi

Dalam kaitannya dengan perubahan iklim, lahan gambut memiliki kandungan karbon yang besar, sehingga gambut berperan sangat penting sebagai pengaman perubahan iklim