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 Database 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 Database ii

Kata Pengantar
Jenis pendidikan satu tahun sekarang ini sudah mulai banyak jumlahnya. 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

I Ketut Edi Purnama, MT

Sistem Database 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

Sistem Database iv .

Sistem Database v .

1 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. . • Mendeskripsikan relationship antara OLE DB dan ADO. • Mendefinisikan tiga bagian umum data access method.Sistem Database Universal Data Access 1 .

dan graphical data. Kekuatan dari strategy Microsoft UDA adalah strategy is that it is delivered through a common set of object-oriented interfaces. OLE DB. file systems. Sekilas tentang Universal Data Access Universal Data Access (UDA) adalah starategi Microsoft strategy untuk menyediakan akses ke semua type daari informasi. Karena ADO dibangun pada puncak dari OLE DB. Gambar 1. text. e-mail.Sistem Database Universal Data Access 1 . Dimana ODBC dibuat untuk . ADO menguntungkan dari UDA infrastructure.1 The universal data access architecture OLE DB adalah terbuka didesain terperinci untuk membangun pada Open Database Connectivity (ODBC) application programming interface (API). dan banyak lagi. Ini merupakan standart untuk mengakses semua type dari data. seperti DAO dan RDO. spreadsheets.1. Modern data-intensive application membutuhkan penggabungan dari informasi tidak hanya dalam mengatur system database tradisional tapi juga file systems. dari berbagai macam source disampint relational database sederhana. hierarchical databases. e-mail. Microsoft ActiveX Data Objects (ADO) dikembangkan untuk OLE DB.1. OLE DB mendasari interface yang mampu UDA. These interfaces aere based on the Microsoft Component Object Model (COM). yang mana berdasar pada COM. Data source ini termasuk mainframe ISAM/VSAM. ADO menggantikan database programming interfaces debelumnya.2 I. digunakan untuk menyediakan akses ke data melewati organisasi seperti ilustrasi dalam gambar 1.

OLE DB didesain untuk relational dan non-relational information source. termasuk Microsoft Visual Basic.2.2.2 OLE DB components I. Gambar 1. seperti diilustrasikan dalam gambar 1. Semua dari data access methods ini adalah COM interfaces dan dapat digunakan dari berbagai macam tools. Membandingkan ADO dengan metode Data Access lain Meskipun aplikasi dapat menggunakan Data Access Objects (DAO) dan Remote Data Objects (RDO) dalam Visual Basic 6. Microsoft Access. data consumers. Component OLE DB terdiri dari data providers. berbedaannya adalah: .3 mengakses relational databases. dan Microsoft Office. dan service components.0.Sistem Database Universal Data Access 1 . OLE DB termasuk langsung mendukung ODBC untuk kemampuan kedepan untuk broad range dari ODBC driver relational database tersedia hari ini. Yang mana. ADO adalah data-access method Microsoft menganjurkan untuk suatu aplikasi database.

• DAO adalah object model untuk mengakses local atau SQL data melalui Jet. ADO object model tidak sekomplek seperti RDO atau DAO dan oleh karena itu mudah menggunakan. ADO merupakan penggabungan dari keistemewaan RDO dan DAO dan akan menggantikan RDO dan DAO. Seperti Visual Basic. .4 • ADO adalah object model untuk mengakses semua type data melalui OLE DB.Sistem Database Universal Data Access 1 . kamu mungkin ingin tagu mengapa kamu membutuhkan ADO jika kamu telah menggunakan RDO/DAO. Paradox. and installable indexed sequential access method (ISAM) data sources. sepeti teman. Access. Dengan DAO. dan JScript dapat menggunakan ADO yang mana dapat mengakses data dari OLE DB source apa saja. • RDO adalah object model untuk mengakses relational data melalui ODBC. Microsoft Jet-connected ODBC databases. DAO. C++. Office. semula didesain untuk mendukung ISAM data access. Setelah melihat setiap metode mengakses data. mengingat RDO dan DAO mengakses hanya relational data. termasuk Visual Basic. VBScript. dan Microsoft Internet Information Server. kamu dapat mengakses data dalam Microsoft Jet databases. sepeerti FoxPro. Java. DAO adalah terlambat. 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. dengan sedikit pengkodean. atau Lotus 1-2-3. Kamu dapat menggunakan ADO untuk mengakses relational data denga baik seperti e-mail atau data yang berada pada dalam spreadsheet. Disini dasar jawaban untuk menjawaba pertanyaan tersebut : • • • • ADO dapar mengakses semua type data. DAO paling tua dari tiga data access methods. ADO adalah standart data access object model melalui Microsoft tools. seperti SQL Server dan Oracle. Microsoft Jet database engine. Bandingkan ke teknologi ADO terbaru dan RDO. kurang mampu data access alternative. RDO didesain untuk mengambil keuntungan dari database server yang menggunakan sophisticated query engines.

1 BAB 2 Pengenalan Object Model ADO Tujuan : Pada Bab Ini diharapkan mahasiswa dapat : • Mengenali Organisasi dari ADO object model. . • Mendeskripsikan role dari ADO Command object. • Mendeskripsikan role dari ADO Connection object. • Mendeskripsikan role dari ADO Recordset object.Sistem Database Pengenalan Object Model ADO 2 .

objects yang ada dalam hierarchical relationships. Konsep ini biasanya disebut "flat" object model. • Recordset object Berisi rekord dari query. Command object berguna dimana kamu membutuhkan untuk mendefinikan query parameter atau menjalankan stored procedure yang mengembalikan hasil suatu parameter. seperti stored procedure dalam SQL Server database. jika pertama kamu dengan jelas membuat Connection object. Kamu dapat membuka rekordset tanpa secara eksplisit (jelas) membuka Connection object.Sistem Database Pengenalan Object Model ADO 2 . properties. Kamu dapat menjalankan command string pada Connecton object atau query string seperti sewaktu membuka Recordset object. Dengan ADO. seperti ditunjukkan dalam gambar 2.1. kamu tidak harus membuat Connection object sebelum mengakses Recordset object. Meskipun ADO objects mampu keluaar dari scope hierarchy.1 Membuat Object ADO ADO object model menyediakan kemudahan untuk me-set object. tidak seperti dengan interface pemrograman database sebelumnya. dan metode untuk membuat aplikasi yang mengakses dan memanipulasi data. yang mana automatis membuat termasuk koneksinya. Yang mana.1 The ADO Object Model ADO object model mempunyai tujuh objects: • Connection object Memelihara informasi koneksi dengan data provider. tanpa mendefinisikan Command object. kamu dapat langsung membuat Recordset object. Contahnya. Gambar 2. kamu dapat membuka multiple .2 II. • Command object Memelihara informasi tentang command.

Sistem Database Pengenalan Object Model ADO 2 . . Command. • Parameter object Single parameter untuk parameter perintah. The Recordset object supports the Fields collection. Sejak adanya pernyataan tunggal dapat menghasilkan dua atau lebih error. Ini mengurangi aplikasi dan mengurangi beban server.3 Recordset objects pada koneksi yang sama. Ketika kamu bekerja dengan pemrograman ADO. • Property object Berisi kaarakteristik pendefinisian provider dari ADO object. Catatan Sebelum kamu menggunakan ADO dalam aplikasi Visual Basic.2 ADO Connection Object Contoh. Property object digunakan ketika data provider membutuhkan untuk mendukung informasi specifik tentang data source yang tidak didukung oleh that ADO. Property ini menentukan berapa lama seharusnya ADO menunggu ketika membangun koneksi sebelum menghentikan ussaha membangun koneksi dan akan menghasilkan error bila gagal mengadakan koneksi. sebelum membangun koneksi. kamu seperlunya menggunakan tiga ADO objects: Connection.0 Library atau versi yang lebih tinggi. • Error object Berisi penyampaian informasi error tentang kondisi yang berlansung oleh provider. Property object membuat ADO extensible. and Recordset objects. Command object mendukung Kumpulan parameter. II. Koneksi juga membolehkan kamu untuk konfigurasi property CommandTimeout. Errors collection dapat berisi lebih dari satu Error object. Setiap keistemewaan ADO object dari properties dan methods yang membolehkan kamu untuk memanipulasi object. dalam aplikasi dapat membuat koeksi string yang termasuk user's logon name dan password. • Field object Contains information about a single column of data within a recordset. kamu harus set reference ke Microsoft ActiveX Data Objects 2.

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. Dynamic cursor automatis meng-update ketika user menambah atau menghapus rekord atau merubah banyak rekord yang ada dalam rekordset. Catatan . maka nilainya adalah Static cursor.4 II. ketika kamu membuat rekordset. Setiap saat client meminta rekord. Dynamic cursor pilihan yang baik jika aplikasi harus mendeteksi semua perubahan yang dibuat oleh user lain. Kamu dapat merubah atau menghapus rekord yang aktif itu tanpa mempengaruhi rekord yang lain. Ketika kamu gunkan data dalam recordset object. Cursor ini tersedia hanya sebagai server-side cursor. ADO menggunakan boookmark untuk membaca nilai yang ditunjuk pointer. sejak lebih daari satu Command object dapat menggunakan Connection object yang sama.1 Setting CursorType Property Property CursorType menentukan bagaimana kamu dapat menggunakan rekord dalam rekordset. Command objects dapat berdasarkan object database yang lain (seperti tabel. berart koneksi baru dibangun untuk Command object. hanya satu rekord yang aktif. kamu bekerjaja dengan database cursor.3 ADO Command Object Command objects didefinisikan menentukan secaara detail informasi tentang data yang diterima daari database. Semua Recordset objects dibangunan menggunakan records (baris) dan field (kolom). Kamu gunkan Recordset objects untuk manipulasi data daari provider. 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. II. atau stored prosedure) atau Structured Query Language (SQL) query. ini berari yang at effisient.4. Kamu dapat menyeting lebih dahulu property CursorType sebelum membuka recordset. Cursor aalah database object digunkan aplikasi untuk memanipulasi data secara individu rekord yang ada. Empat macam type cursor yang tersedia pada ADO: • Dynamic cursor Berisi sekumpulan bookmark pada data sebenarnya dalam data source. Jika kamu menentukan property ActiveConnection dengan connection string. II. Yang artinya aplikasi selalu membaca nilai terakhir yang disimpan oleh user.Sistem Database Pengenalan Object Model ADO 2 .4 ADO Recordset Object Recordset object mewakili seluruh rekord dari tabel atau executed command. Jika kamu tidak menetukan property sebelum kamu membuka recordset. Misalkan. view. Yang mana.

Kamu tidak harus melakukan sesuatu yang sepesial untuk menggunakan cursor ini (noncursor) karena cursor ini default untuk ADO. tapi setiap user lain mengadakan perubahan pada data maka tidak langsung ditampakan dalam rekordset.5 Microsoft Jet Engine tidak mendukung dynamic cursor. Cursor ini sangat efisien khususnya jika kamu set LockType = adReadOnly dan CacheSize = 1. • Forward-only cursor Forward-only cursor adalah nilai default untuk server-side cursor dan hanya tersedia untuk server-side cursor. jadi jika kamu memaksakan untuk membuka dynamic cursor dengan Jet OLE DB Provider kamu selalu menerima hasil seperti membuka denga keyset cursor. Statuc cursor biasanya merupakan pilihan terbaik untuk menerima data dari stored prosedure. Kamu dapat menafigasi forward-only Rekordset hanya menggunkan MoveNext mothod. Kamu sehaaarusnya membuat client-side static cursor hanya ketika client workstation mempunyai memori yang cukup. Banyak programer dan pengarang menyebut juga seperti noncursor. Kamu dapat membaca dan memodifikasi semua rekord. bila user lain merubah data pada database maka tidak akan langsung terlihat pada user yang mengakses database dengan static cursor. tapi kamu akan mendapat error jika kamu mengakses rekord yang telah dihapus oleh user lain.Sistem Database Pengenalan Object Model ADO 2 . • Keyset cursor Serupa dengan dynamic cursor. . Jika kamu ingin mendapat penampilan aplikasi yang baik untuk meng-update rekord. Keyset cursor hanya tersedia sebagai serve-side cursor. kamu seharusnya lakukan semua update melalui SQL commands atau stored prosedure. • Static cursor Static cursor sebenarnya adalah seakan-akan menyalin data dari database ke rekordset.

Sistem Database Mengatur Koneksi ke Data Source 3 .1 BAB 3 Mengatur Koneksi ke Data Source Tujuan : Pada Bab Ini diharapkan mahasiswa dapat: • Menghubungkan Data Source dengan menggunakan object ADO Connection .

3. Menutup koneksi.2 Membangun Koneksi Dengan menggunakan metode Open untuk membuat koneksi ke database dan ketika koneksi sedang berjalan. Mendeklarasikan variabel object Koneksi. • Password String bernilai berisi informasi password user ketika membangun koneksi. UserID.2 III. III. Contoh membangun koneksi : . 4. Options Penjelasan metode untuk membuka koneksi: • ConnectionString String yang bernilai berisi informasi koneksi.1 Definisi ADO Connection Object Dasar aplikasi sederhana menggunakan ADO untuk mengakses data source: 1. Koneksi ke data souce server resources bebas.Sistem Database Mengatur Koneksi ke Data Source 3 . 2. Nama dari provider – berupa file. Menjalankan perintah SQL. Informasi ini menentukan : o o Nama provider yang digunakan koneksi. • Options Optional ConnectOptionEnum bernilai menentukan apakah metode open bernilai akan mengembalikan sesudah (synchronously) atau sebelum (asynchronously) koneksi terjadi.Syntax untuk membuka koneksi : connection. Sejak koneksi dibuka. kamu dapat menjalankan query yang mengubah rekord atau megembalikan dari rekord yang disebut recordset. Mencoba untuk membangun hubungan dengan data source (membuka koneksi). semua peritah ke database dapat dijalankan.Open ConnectionString. • UserID String bernilai berisis nama user ketika membangun koneksi. Kamu dapat menge-set dengan adConnectUnspecified atau adAsyncConnect. Password.

ConnectionString = "Provider=SQLOLEDB. Contoh." & _ "UID=sa.3 Private Sub cmdConnect_Click() ' Declare the object variable Dim cnPubs As ADODB.2.Open strConnect." & _ "Initial Catalog=Pubs" ' Call the Open method without any arguments cnPubs. "" End Sub CATATAN "Data Source=" bernilai dalam connection string adala nama dari remote server. Semua penjelasan untuk metode Open adalah optional karena kamu dapat menentukan informasi koneksi menggunakan property ConnectionString Connection object's ConnectionString property. Dengan menggunakan metode Execute Connection object's .Connection ' This variable will contain the connection information Dim strConnect As String ' Instantiate the object variable Set cnPubs = New ADODB.Connection ' Set the ConnectionString property value cnPubs." & _ "Initial Catalog=Pubs" ' Open the database connection cnPubs." & _ "Data Source=VB6ENTSVR. kamu dapat mengirim peerintah SQL ke database tanpa mengebalikan semua rekord ke client. kamu mungkin membutuhkan meng-update semua prices dalam database dengan 10 percent.1 Melakukan Update dengan Connection Object Sejak koneksi telah terjadi." & _ "Data Source=VB6ENTSVR. kamu dapat me-update rekord dalam database. "Initial Catalog=" bernilai nama database dalam external data source. "sa".Open End Sub III. Dalam .pwd=.Connection ' Define the OLE DB connection string strConnect = "Provider=SQLOLEDB. seperti ditunjukkan dibawah ini : Private Sub cmdConnect_Click() ' Declare the object variable Dim cnPubs As ADODB.Sistem Database Mengatur Koneksi ke Data Source 3 .Connection ' Instantiate the object variable Set cnPubs = New ADODB.

4 hal ini. klik References.Close ' Clear the object to free client resources Set cnPubs = Nothing End Sub III.2.State = adStateOpen Then MsgBox "Connection successful. Buka Visual Basic dan buat project baru Standard EXE. code programnya : Private Sub cmdConnect_Click() Dim cnData As Connection ' Instanciate the connection Set cnData = New Connection With cnData .2 Disconnecting dari Data Source Sejak kamu mengahkiri koneksi.ConnectionString = "User ID=sa. Check Microsoft ActiveX Data Objects 2." & _ "Data Source=VB6ENTSVR.0 Library dan klik OK. Code mengahkiri koneksi dari data source : Sub cmdClose_Click() cnPubs. Kamu menghubungkan database dengan menggunakan OLE DB provider." End If . Tambahkan CommandButton ke Form1.1" End Sub III. 2. kamu dapat menggunakan perintah query update melalui metode Execute.Open End With If cnData.3 Latihan: Membuat Koneksi Pada Latihan ini.Provider = "SQLOLEDB" .Sistem Database Mengatur Koneksi ke Data Source 3 . Dalam cmdConnect_Click event procedure. kamu menggunakan metode Close untuk memutuskan hubungan dari data source. seperti contoh dibawah ini : Sub cmdUpdatePrices_Click() cnPubs. 3. 5.Execute "UPDATE Titles Set Price = Price * 1. dan property Caption ke &Connect. set property Name property ke cmdConnect." & _ "Initial Catalog=Pubs" . Ini merupakan teknik yang baik untuk menutup semua koneksi yang terbuka sebelum applikasi berakhir. • Untuk menghubungkan OLE DB provider menggunakan code 1. Pada Menu Project. 4.

Jika kamu mengirim lebih dari satu pernyataan Select. Misalnya. Sekali Command object dibuat. pada umumnya lebih effisient untuk menggunakan satu koneksi. Koneksi baaru dibangun untuk Command object. Jika koneksi sukses. Jika kamu menentukan property ActiveConnection dengan connection string. Yang mana. Command object yang lain terbuka dalam koneksi baru atau menggunakan koneksi untuk melakukan query. atau hanya merubah rekord dalam database. Ini dapat berdasarkan object yang lain pada database(such as a table. The ConnectionString has a parameter value that uses the SQL Server OLE DB provider. III. Each OLE DB provider requires a different value for the ConnectionString property. menggunakan pernyataan Select untuk menghasilk rekord.Close Set cnData = Nothing End Sub CATATAN The Data Source parameter of the ConnectionString must point to a SQ Server. atau stored procedure. Jika kamu set property ActiveConnection dengan referensi ke Connection object. klik Start. Ketika selesai.4 Menggunakan ADO Command Object Command object didefinisikan dari menentukan perintah yang dijalankan untuk data source. 7. 6. Klik tombol Connect button. Query strings menghasilkan records seperti recordset. dimana pernyataan SQL Update atau Delete hanya menrubah rekord. sejak itu lebih dari satu Command object dapat menggunakan Connectionobject yang sama. you have to change the value of the Data Source parameter. kamu dapat menggunakan itu untuk menjalankan perintah yang ditentukan atau membangun recordset. Dengan enggunakan property CommandText untuk menentukan pernyatan SQL. Command object menggunakan koneksi yang berjalan dari Connection object. view. kamu dapat mengembalikan banyak rekordset recordsets dengan satu pernyataan. kamu tidak akan meneripa kotak pesan (pesan error). tergantung pada apa yang kamu tentukan didalam property ActiveConnection. Pada menu Run. . klik End pada menu Run. or stored procedure) atau perintah SQL. untuk mengakses pada data source. If the name of the SQL Server is different (than VB6ENTSVR) on your network.Sistem Database Mengatur Koneksi ke Data Source 3 .5 ' Close the connection and release the cnData object cnData. 8.

Jika error terjadi jika semua dari usaha tersebut gagal. Daftar nilai yang diidukung CommandType : Value adCmdText adCmdTable adCmdStoredProc adCmdFile Description Digunakan jika query string adalah perintah SQL.ActiveConnection = "Provider=SQLOLEDB." & _ "Data Source=VB6ENTSVR. tetapi kamu harus juga menggunkan property CommandType untuk menentuka type dari command yang digunakan.Execute End With End Sub .1" ' Call the Execute method to update the Discounts .Sistem Database Mengatur Koneksi ke Data Source 3 . adCmdUnknown Digunakan ketika command type tidak jelas diketahui. 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 Set comDiscountUpdate = New Command With comDiscountUpdate . Ini merupakan varisi pada adCmdTable. Digunakan jika query string adalah nama dari stored procedure. adCmdTableDirect Digunakan spesifik untuk OLE DB providers yang mendukung pernyataan SQL dan mempu untuk langsung membukan tabel berdasarkan nama tabel.6 Berbagai macam kemungkinan printah yang kamu tempatkan pada property CommandText. Digunkan jika query string adalah nama dari suatau tabel. Karena Command object harus menunjukkan langkah tersebut untuk menentukan type dari query string.CommandText = "UPDATE Discounts SET Discount = Discount * 1. Ini adalah nilai default." & _ "Initial Catalog=Pubs" . dan ahkirnya seperti nama tabel.CommandType = adCmdText . Hasil adalah menurun. Digunakan jika query string adalah nama dari file yang digunakan untuk menyimpan rekord dalam object Rekordset sebelumnya. kemudian seperti stored procedure." & _ "User ID=sa. dan provider mencoba untuk menjalankan command text pertama seperti pernyataan SQL.

7 CATATAN Query string dapat juga nama dari stored procedure atau table. .Sistem Database Mengatur Koneksi ke Data Source 3 .

.1 BAB 4 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.Sistem Database Navigating Records 4 .

Optional. Nilai yang menentukan type dari cursor provider yang digunakan ketika membuka rekordset.1 Menggunakan ADO Recordset Object Recordset object mewakili hasi dari pelaksanaan perintah pda data source. nama tabel. Nama variabel koneksinya atau String berisi parameter ConnectionString. Options IV. ActiveConnection. 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 . CursorType.Open Source. kamu dapta mengebalikan rekord dengan menggunakan metode Open Recordset object's. yang mana dibatasi jumlah dari koneksi dan mengurangi sejumlah resouce client dan server yang digunakan dalam applikasi. Nilai ynag menentukan apa type dari locking (concurrency) provider yang digunakan ketika membuka rekordset.1 Menggunakan Explicit Connection Object Kamu dapat membangun Recordset object berdasarkan active connection ke data source. pernyataan SQL. Berikut ini syntax untuk mengakse rekord dalam data source : recordset. atau yang menunjukkan recordset yang disimpan daei file dimana file tersebut disimpan sebelumnya.1. CursorType LockType Optional.2 IV. Benilai Long yang menandakan bagaimana provider menilai Source argument jika menunjukkan sesuatu yang lain dari Command object.Sistem Database Navigating Records 4 . ActiveConnection Optional. Kamu dapta menggunakan object tersebut untuk memanipulasi data. Bisa berupa Nama variaberl yang berisi. Bergantung pada kebutuhan dari rekordset. LockType. Options Penjelasan metode Open pada rekordset : Argument Source Description Optional. memanggil stored procedure. Sekali koneksi dibangun ke data source. Optional. kamu boleh membutuhkan untuk membangun dalam explicit Connection object atau Command object lebih dahulu.

Ini automatis ditutup ketika rekordset ditutup. cnPubs IV. new connection dibuat pada data source. mengingat explicit Connection objects ketika mengakses data source. menggunakan teknik ini mengurangi sejumlah kode yang akan kamu tulis.Open ' Retrieve records from the data source rsTitles. seperti dengan Microsoft SQL Server.Open "Select * from Titles".2 Menggunakan Implicit Connection Object Alternative untuk menggunakan Connection object yang ada adalah untuk membuka rekordset baru menggunakan implicit connection. Yang mana. penambahan connections menggunakan valuable resources. Sebagaian kasus. Ini lebih effisient untuk membuat single Connection object dan membuka yang dibutuhkan rekordset dari koneksi itu.Open "Select * from Titles". Kamu dapat membuat banyak recordsets dari satu koneksi tanpa menambahkan connection resources. Ketika memanggil Recordset object secara langsung.1. untuk setiap rekordset yang menggunakan implicit connection." & _ "Initial Catalog=Pubs" End Sub Seperti kamu lihat." & _ "Data Source=VB6ENTSVR.User ID=sa.Sistem Database Navigating Records 4 . Satu dari keistemewaan dariADO object model adalah kemampuan memanggil objects langsung.ConnectionString = "Provider=SQLOLEDB. ." & _ "Initial Catalog=Pubs" cnPubs." & _ "User ID=sa. 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. ADO automatis membuat background Connection object (You cannot access this object programmatically)." & _ "Data Source=VB6ENTSVR.3 ' Open the connection cnPubs. CATATAN Menggunakan implicit connections menyebabkan scalability problems ketika programming enterprise-level applications. _ "Provider=SQLOLEDB.

delete records.1. Option ini dibutuhkan untuk client-side cursors. locking ensures that no two users can change the same record at the same time. In the event your application intends to add records. you will need to specify a different locking option. ini dipaksa ke immediate update mode. Locking Value adLockReadOnly adLockPessimistic Description Data bersifat read-only. adLockOptimistic IV. adOpenDynamic. Provider memastikan sukses melakukan edit pada rekords. Ini merupakan nilai defaultnya. Menggunakan property LockType untuk menyeting pilihan untuk rekordset.2 Mengakses Record dalam Recordset Sekali recordset telah dibuat. cnPubs.3 Locking the Recordset ADO menghasilkan cursors yang read-only. Provides for the best performance and lowest system resource requirements. Berikut ini contoh membuta dynamic recordset menggunakan optimistic locking: rsTitles. kamu dapat mengakses field dari setiap rekord dengan jalan : • Referensi nama field Jika kamu mengetahui nama dari fied yang kamu akses.Open "Select * from Titles". adLockOptimistic adLockBatchOptimistic Records di-lock dalam mode batch update. • Menggunakan Fields collection . Provider menggunakan optimistic locking.4 IV. In a multi-user environment. kamu dapat menggunakan syntax berikut untuk mengakses nilai tertentu dari field : RecordsetObject!FieldName Ini adalah paling efisien dari dua cara untuk referensi field. biasanya rekords di-lock secara tiba-tiba ketika sedang di-edit. termasuk disconnected recordsets.Sistem Database Navigating Records 4 . Berikut ini tabel yang memberi keterangan nilai dari property LockType. or edit existing records. yang mana locks records hanya ketika kamu memanggil metode Update rekordset.

Recordset Dim strConnect As String strConnect = "Provider=SQLOLEDB.Print rsTitles!Title -atauDebug.Connection Dim rsTitles As ADODB. rsTitles.Sistem Database Navigating Records 4 .Fields(0) NOTE Field Title pada field pertama dalam collection. Berikut ini syntax untuk mengaksis nilai dari field dengan menggunakan Fields collection: recordsetobject. "" ' Instantiate the Recordset object Set rsTitles = New Recordset .DataSource = rsAuthor txtAuthor.3 Binding Control ke ADO Recordset Visual Basic menyediakan kemampuan untuk control bind seperti text box untuk ADO recordsets.Fields(0) atau recordsetobject. Dim cnPubs As ADODB." & _ "Initial Catalog=Pubs" ' Instantiate a Connection object Set cnPubs = New Connection ' Open a new connection cnPubs. IV. control automatis menggambarkan data record's saat itu. Berikut ini code membuka koneksi ke SQL Server.Print rsTitles." & _ "Data Source=VB6ENTSVR. Cara ini tidak efisient ketika mengakses recordset. dibuka menggunakan cnPubs Connection object.Fields("FieldName") Berkut ini contoh menampilkan fieldTitle dalam window Immediate: Debug. Ketika control bound ke recordset. "sa".5 Kamu dapat juga menggunakan Recordset object's Fields collection. Berikut contoh melakukan binds text box ke rekordset rsAuthor : Set txtAuthor. Recordset. dan property Hierarchical Flexgrid's DataSource didefinisikan seperti rekordset rsTitles.Open strConnect.User ID=sa.DataField = "au_fname" Kamu dapat juga melakukan bind control lebih komplek ke rekordset.

Open "SELECT * From Titles". yang mana lebih efisien. Hasilnya seperti perintah tunggal yang mengembalikan lebih dari satu rekordset.1 Mendapatkan Rekordset Selanjutnya Setiap pernyataan dalam perintah gabungan dijalankan dalam urutan masuk. Berikut ini contoh membuat dua recordsets dari pernyataan single Open: rsInfo. " & _ ." & _ "Data Source=VB6ENTSVR. Multefficient than calling a data source multiple times. cnPubs IV." strSQL = "SELECT * FROM authors. jika kamu dengan jelas menutup Recordset object sebelum langkah melalui seluruh pernyataan perintah." & _ "Initial Catalog=pubs. ADO tidak pernah menjalankan perintah yang tersisa. Gunakan metode NextRecordset untuk bergerak kem rekordset berikutnya ketika multiple recordsets dikembalikan. Syntaxnya sebagai berikut : Set rsInfo = rsInfo.4. Sejak metode NextRecordset hanya pernyataan perintah selanjutnya yang dijalankan.Sistem Database Navigating Records 4 ." & _ "User Id=sa.DataSource = rsTitles IV. Multiple recordsets dapat dibuat menggunakan metode Execute dari Command object atau metode Open daari Recordset object. dan hanya satu rekordset dikembalikan di satu waktu. cnPubs ' Fill the Hierarchial Flexgrid control with ' data from the Titles table Set flexTitles.4 Membuat Multiple Recordset Menggunakan ADO kamu dapat mendefinisikan pernyataan perintah yang berisi pernyataan multiple Select.SELECT * From Authors".NextRecordset Berikut ini contoh menggunakan metode NextRecordset method untuk melihat data dalam rekordset yang menggunakan peryataan perintah gabungan dari tiga peryataan SELECT yang terpisah : Private Sub cmdCompoundRecordsets_Click() Dim Dim Dim Dim rsCompound As Recordset Count As Integer strConnect As String strSQL As String strConnect = "Provider=SQLOLEDB.Password=.Open "SELECT * From Titles.6 ' Open a new recordset using the ' cn connection and return the appropriate records rsTitles.

EOF Debug.CursorLocation = adUseClient rsCompound. _ adLockUnspecified Do Until rsCompound Is Nothing Debug. " & _ "SELECT * FROM jobs" Set rsCompound = New Recordset rsCompound. strConnect.Sistem Database Navigating Records 4 .Print .Fields(1) rsCompound. _ adOpenUnspecified. _ rsCompound.Print "Recordset #" & Count Do While Not rsCompound.7 "SELECT * FROM stores.MoveNext Loop Set rsCompound = rsCompound.Open strSQL.Fields(0).NextRecordset Count = Count + 1 Loop End Sub . rsCompound.

1 BAB 5 Navigating Records Tujuan : Pada Bab Ini diharapkan mahasiswa mampu : • Menggunakan ADO recordset navigation methods • Menjelaskan bermacam-macam ADO recordset navigation properti .Sistem Database Memodifikasi Record 5 .

Aplikasi ini akan mempunyai tombol nafigasi seperti gambar dibawah ini. BOF Bookmark Menandakan jika pointer rekord telah digerakkan sebelum rekord pertama. Bergerak ke rekord pertama. Bergerak ke rekord selanjutnya." End If V. Menandakan jika pointer rekord digerakkan setelah rekord terahkir. EOF Berikut ini contoh menggunakan property EOF: If rsAuthor. maju atau mundur. Mengembalikan unique identifier untuk nilai rekord. AbsolutePosition Letak atau mengembalikan posisi sebenarnya dari nilai rekord (ini dapat dipakai oleh rekord menambah atau menghapus).EOF Then _ MsgBox "The end of the recordset has been reached. .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.Sistem Database Memodifikasi Record 5 . Bergerak ke rekord sebelumnya. Bergerak ke rekord terakhir.2 V.2 ADO Navigation Methods Berikut ini daftar metode daari Recordset object yang digunakan untuk navigasi melalui recordset. Method Move MoveFirst MoveLast MoveNext MovePrevious Description Bergerak ditentukan nomor dari rekordset. Setting property ini untuk menentukan record's bookmark perpindahan record pointer ke rekord.1 ADO Navigation Properties Berikut ini daftaar properties dari Recordset object yang digunakan untuk nafigasi recordset: Property AbsolutePage Description Letak atau mengembalikan halaman sebenarnya. V.

6. • To create a connection and a recordset . Tambahkan empat controlsCommandButton dan control Label ke form. Pada Menu Project. 3. Set property dari Form1 ke frmAuthors Tambahka dua control Textbox ke form. 2. Berikut ini setting prperties : Control Command1 Command2 Command3 Command4 Label1 Property Name Caption Name Caption Name Caption Name Caption Name Caption CmdFirst |< CmdPrevious << CmdNext >> CmdLast >| LblRecordCount <blank> Value 8.Sistem Database Memodifikasi Record 5 . Buka Visual Basic Standard EXE baru. klik References. Check Microsoft ActiveX Data Objects 2.1 Database navigation controls on the form • To connect to the SQL Server 1. 4. 5.3 Gamabar 5. Set properties name ke txtFirst dan txtLast. Set property Nama project ke PracL4. 7.0 Library dan klik OK. Simpan project files ke folder \Practice\Ch06.

LockType = adLockOptimistic rsAuthors.DataSource = rsAuthors txtLast. dynamic Recordset object dari tabel Authors. "" ' Instantiate the Recordset object Set rsAuthors = New ADODB. • To add navigation features to the form 1. LockType and CursorLocation rsAuthors.Connection 2. Kemedian membuat client-side. Berikut ini contoh kode pada prosedure event klik : Private Sub cmdFirst_Click() rsAuthors.Open strConnect. Tambahkan kode beerikut ini pada prosedur event Form_Load.Sistem Database Memodifikasi Record 5 .Open "Select * from Authors".4 1. cn ' Bind the Textbox controls Set txtFirst. 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.CursorLocation = adUseClient ' Open a new recordset using the ' cn connection and return the appropriate records rsAuthors.DataField = "au_fname" Set txtLast. MovePrevious. Private Sub Form_Load() ' Use your local SQL Server name for the Data Source strConnect = "Provider=SQLOLEDB.Recordset ' Set the CursorType." amp.Connection ' Open a new connection cn. "sa".DataField = "au_lname" End Sub Kode ini membuaat koneksi ke Pubs database pada SQL Server." & _ "Data Source=VB6ENTSVR. Menggunakan MoveFirst.CursorType = adOpenDynamic rsAuthors. Control TxtFirst dan txtLast controls bound ke kolom au_fname dan au_lname. MoveNext dan MoveLast methods dalam command button pada event Click untuk memberi user kemampuan nafigasi rekord.MoveFirst End Sub Private Sub cmdLast_Click() .DataSource = rsAuthors txtFirst. _ "Initial Catalog=Pubs" ' Instantiate a Connection object Set cn = New ADODB.User ID=sa.

Simpan aplikasi kamu.5 rsAuthors. select rsAuthors dari Object drop-down list (lihat gambaar 6.MoveLast End Sub Private Sub cmdNext_Click() rsAuthors.2). • To use ADO object events 1. Dari frmAuthors module window. Jalankan aplikasi kamu dan coba Run the application and try navigating through the Authors records. .Sistem Database Memodifikasi Record 5 .MovePrevious End Sub 2.MoveNext End Sub Private Sub cmdPrevious_Click() rsAuthors. 3.

MoveFirst End If ' Set the label's caption to show current record ' and total record count lblRecordCount. Simpan dan jalank aplikasi kamu. select prosedure MoveComplete.RecordCount End Sub _ 3. Tambahkan kode berikutnini untuk event MoveComplete: Private Sub rsAuthors_MoveComplete(ByVal adReason As _ ADODB. ByVal pError As ADODB.AbsolutePosition _ & " of " & rsAuthors.6 Gamabar 5.BOF Then rsAuthors. adStatus As ADODB.EventReasonEnum. Gambar 5.EOF Then rsAuthors.EventStatusEnum.Caption = "Record " & _ rsAuthors.Recordset) ' Avoid reading beyond the end of file (EOF) or the ' beginning of file (BOF) If rsAuthors.3 illustrasi from secara lengkap sewaktu aplikasi dijalankan.3 The completed form . Dari Procedure drop-down list. _ ByVal pRecordset As ADODB.2 The Object list 2. Gambaar 6.Sistem Database Memodifikasi Record 5 .MoveLast ElseIf rsAuthors.Error.

• Memodifikasi single record menggunakan Recordset Object.Sistem Database Memodifikasi Record 6 .1 BAB 6 Memodifikasi Record Tujuan : Pada Bab Ini diharapkan mahasiswa dapat: • Memodifikasi multiple records menggunakan perintah SQL. .

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. Berikut ini contoh menggunakan AddNew method untuk menambah rekord Author: rsAuthors. Gunkan Connection object ketika pernyataan hanya akan dipanggil sekali. "sa".AddNew rsAuthors!au_fname = "Nancy" rsAuthors!au_lname = "Davolio" rsAuthors. Gunakan Command object jika perintah akan dijalankan oleh aplikasi kamu lebih dari sekali jika kamu membutuhkan untuk memanggil stored procedure. VI. Memodifikasi rekord dengan Recordset object terbatas untuk satu penambahan. atau update pada satu waktu.Open strConnect. kamu dapat menjalankan perintah SQL menggunakan Connection atau Command object's Execute method. penghapusan.1 Menambah Rekord Dalam perintah untuk menambah rekord baru gunakan AddNew method.Execute "UPDATE Titles Set Price = Price * 1.Sistem Database Memodifikasi Record 6 .2 VI.2 Memodifikasi Record dalam Recordset Jika aplikasi kamu telah membuka rekordset. "" ' Execute the SQL statement cnPubs." & _ "Data Source=VB6ENTSVR. Segera setelah rekord baru tersebut terisi gunakan Update method untuk menyimpan ke rekordset dan data source.1" cnPubs.Update .1 Memodifikasi dengan Perintah SQL Jika aplikasi kamu membutuhkan untuk update sejumlah rekord. kamu dapat memodifikasi data menggunakan recordset's methods.2.Close Set cnPubs = Nothing End Sub VI." & _ "Initial Catalog=Pubs" ' Open the database connection cnPubs.

Berikut ini contoh merubah dan meupdate suatu record: rsAuthors!au_fname = "Nancy" rsAuthors!au_lname = "Davolio" rsAuthors.Update VI. Kamu hanya dapat menggunakan CancelUpdate sebelum mejalankan Update method. Jika kamu gunakan CancelUpdate dengan AddNew.Sistem Database Memodifikasi Record 6 .3 VI.AddNew rsAuthors!au_fname = "Nancy" rsAuthors!au_lname = "Davolio" rsAuthors. Berikut ini contoh membatalkan AddNew menggunakan CancelUpdate: rsAuthors. cursor mengembalikan ke rekord sebelumnya. atau hasil dari AddNew method.2. pertama kamu harus nafigasi ke rekord yang tepat.2 Menghapus Record Untuk menghapus rekord dari recordset. Kemudian menggunakan Update method. kamu dapat menyimpan perubahan untuk recordset dan data source. Berikut ini contoh menghapus suatu rekord: rsAuthors. kamu dapat menggunakan CancelUpdate method.CancelUpdate . Gunakan Delete method untuk permanen menghapus record dari recordset dan data source.3 Modifikasi Record Untuk merubah suatu rekord dalam recordset.2.Delete VI. aplikasi kamu dapat memodifikasi nilai daari setiap field.2.4 Membatalkan Perubahan atau Penambahan Rekord Jika kamu membutuhkan pembatalan perubahan suatu record.

4 .Sistem Database Memodifikasi Record 6 .

Sistem Informasi Manajemen Tambahan 1 .

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.