Bahasa Pemrograman 1

63
Chapter 06 bimocahyo Konsep Dasar Database Konsep Dasar Database

description

Bahasa Pemrograman 1. Konsep Dasar Database. Chapter 06 bimocahyo. Konsep Database Basisdata , kumpulan data yang saling berhubungan satu dengan lainnya. - PowerPoint PPT Presentation

Transcript of Bahasa Pemrograman 1

Page 1: Bahasa Pemrograman 1

Chapter 06

bimocahyo

Konsep Dasar DatabaseKonsep Dasar Database

Page 2: Bahasa Pemrograman 1

2

Konsep Database

Basisdata, kumpulan data yang saling berhubungan satu dengan lainnya.

Data, kenyataan yang menggambarkan suatu kejadian-kejadian dari kesatuan yang nyata. Data tersimpan secara terintegrasi dan dipakai secara bersama-sama

DBMS, sistem perangkat lunak bertujuan khusus untuk mengelola penyimpanan dan memanipulasi informasi. Atau Program untuk pengelolaan basis data.

Page 3: Bahasa Pemrograman 1

3

Terdapat beberapa konsep yang perlu diketahui pada penyimpanan data antara lain : File adalah Sekumpulan record dari tipe

tunggal yang berisi elemen-elemen data yang menggambarkan himpunan entitas.

Record adalah rangkaian field yang berisi elemen-elemen data yang menggambarkan beberapa entitas.

Field adalah suatu elemen yang memiliki atribut (panjang, tipe data, dll) dan harga dan merupakan unit informasi terkecil yang bisa diakses.

Page 4: Bahasa Pemrograman 1

4

FILE MAINTENANCE (perawatan file)

File adalah tempat penyimpanan informasiAgar file mutakhir/uptodate :::: file harus di

mutakhirkan/update

Update terdiri dari :::: Insert :::: menambahkan data (record)

baru Delete :::: Menghapus data (record) Modify :::: Mengubah data (field)

Page 5: Bahasa Pemrograman 1

5

KEY Elemen record yang dipakai untuk menemukan record pada waktu akses.

Primary Key :::Field yang mengidentifikasikan sebuah record dalam fileBersifat unix

NIM NAMA ALAMAT

9455500001 ABDULAH Benda Raya No. 4

9455500002 AMINAH Ciledug Tengah No. 31

9455500003 BUDIMAN HALIMUN No. 7

Primary Key

Page 6: Bahasa Pemrograman 1

6

Secondary Key ::: Field yang mengidentifikasikan sebuah record dalam

file Tidak bersifat unix

NIM NAMA ALAMAT

9455500001 ABDULAH Benda Raya No. 4

9455500002 AMINAH Ciledug Tengah No. 31

9455500003 BUDIMAN HALIMUN No. 7

Secondary Key

Page 7: Bahasa Pemrograman 1

7

Candidate Key ::: Field-field yang bisa dipilih (dipakai) menjadi primary key

Candidate Key

NIM NAMA No. Kwitansi Jumlah

9455500001 ABDULAH 637 50.000

9455500002 AMINAH 412 60.000

9455500003 BUDIMAN 910 40.000

Page 8: Bahasa Pemrograman 1

8

Alternate Key ::: Candidate key yang tidak terpilih menjadi

Primary key

Candidate KeyPrimary Key Alternate Key

NIM NAMA No. Kwitansi Jumlah

9455500001 ABDULAH 637 50.000

9455500002 AMINAH 412 60.000

9455500003 BUDIMAN 910 40.000

Page 9: Bahasa Pemrograman 1

9

Composite Key ::: Primary key yang dibentuk dari beberapa Field

Hari Ruang Matakuliah

Selasa 3.2.1 Sistem Berkas

Selasa 3.2.2 Pascal

Rabu 2.2.2 Pancasila

Composite Key

Page 10: Bahasa Pemrograman 1

10

Foreign Key ::: Field yang bukan key, tapi key pada file yang

lain

KD-MTK Matakuliah SKS KD-Dosen

K15 IMK 3 511

P27 Pemrogramman Visual 3 512

K1A Internet 2 513

K29 Lab. Jarkom 3 514

Primary Key

KD-Dosen NM-Dosen

511 Hari S.

512 James P.

513 Rey Mannix

514 Abdullah A.

Foreign Key

Page 11: Bahasa Pemrograman 1

11

Teknologi Manipulasi DataTeknologi Manipulasi Data

Sejarah Singkat

Sebelum kita bergerak terlalu jauh ada baiknya kita mengenal dulu apa itu ADO, DAO dan RDO pada Visual Basic. Bagi pendatang baru di pemrograman basis data dengan menggunakan Visual Basic, perlu diketahui bahwa khusus pada VB 6.0 terdapat tiga 'interface' untuk pengaksesan data, yaitu ;

ADO :  ActiveX Data Objects

RDO :  Remote Data Object

DAO :  Data Access Objects  

Page 12: Bahasa Pemrograman 1

12

Kenapa ada tiga 'interface' untuk data access pada Visual Basic? 

Seperti kita ketahui, teknologi data access selalu berkembang dengan cepat. Teknologi terakhir adalah ADO, yang menawarkan kemudahan dan fleksibilitas dibandingkan dengan RDO atau DAO. Selain itu ADO juga mudah untuk dipelajari. 

Menurut Microsoft, teknologi RDO dan DAO yang masih diikutsertakan kedalam VB 6.0 hanyalah untuk menjaga kompatibilitas dengan program yang dikembangkan dengan Visual Basic versi sebelumnya (versi 3,4 dan 5).

Page 13: Bahasa Pemrograman 1

13

Jadi kesimpulannya, untuk mengembangkan suatu aplikasi basis data baru, gunakan saja teknologi terakhir yang disebut ADO —(ActiveX Data Objects)—.

Mengapa menggunakan ADO?Mengapa menggunakan ADO?Alasan menggunakan teknologi ini karena, ADO (ActiveX Data Objects) di disain untuk memudahkan interaksi aplikasi dengan data access sesuai dengan paradigma baru yang dikembangkan oleh Microsoft yaitu OLE DB. OLE DB menyedikan 'high-performance' untuk meng-akses semua jenis data source, termasuk didalamnya non-relational database dan relational (ORACLE-InterBase-BD2), email dan file systems, text dan grafik, dan lainnya.

Page 14: Bahasa Pemrograman 1

14

Database dan Data KontrolDatabase dan Data Kontrol

Database merupakan koleksi dari informasi yang berhubungan dengan subjek atau fungsi tertentu, seperti menangani nilai-nilai ujian mahasiswa atau menangani suatu daftar koleksi musik. Jika database anda tidak tersimpan dalam komputer, maka anda harus menangani informasi tersebut dari berbagai sumber dan mengkoordinir serta mengorganisasinya sendiri.

Dengan mengunakan suatu Sistem Manajemen Database (DBMS) anda dapat menempatkan database anda dalam suatu file, dan mengorganisasikannya menjadi tabel-tabel, dan mengkoordinir data tersebut menjadi laporan dengan berbagai fasilitas seperti Form, Query, Report.

Page 15: Bahasa Pemrograman 1

15

Konsep Database RelationalKonsep Database RelationalModel relational merupakan standar untuk rancangan database, dimana database disimpan dan ditampilkan sebagai suatu koleksi dari tabel-tabel.

Page 16: Bahasa Pemrograman 1

16

Suatu struktur didefinisikan dengan membuat relasi antar tabel, kaitan data antar tabel ini di dalam database merupakan model dari relationship.

Page 17: Bahasa Pemrograman 1

17

Adapun model database relational menawarkan keuntungan sebagai berikut :

Mengorganisasikan data didalam suatu koleksi tabel-tabel membuat rancangan menjadi mudah dipahami.

Menyediakan suatu bahasa yang relatif lengkap untuk mendefinisikan data, mengambil dan mengupdate. 

Menyediakan aturan integritas yang mana mendefinisikan suatu keadaan yang konsisten untuk meningkatkan reliabilitas data.

Page 18: Bahasa Pemrograman 1

18

Tabel

Model database relational menampilkan data sebagai suatu koleksi dari tabel-tabel. Suatu tabel adalah pengelompokan secara logika dari informasi yang berhubungan.

Sebagai contoh, pada database Northwind memiliki suatu daftar dari tabel-tabel karyawan, pelanggan, order.

Tabel-tabel dibentuk oleh baris-baris dan kolom-kolom. Baris-baris sering disebut sebagai record-record dan kolom-kolom disebut sebagai field-field.

Page 19: Bahasa Pemrograman 1

19

Page 20: Bahasa Pemrograman 1

20

RecordRecord

Suatu record mengandung informasi dari suatu isian tunggal dalam suatu tabel.

Sebagai contoh, sebuah record dalam suatu tabel Karyawan akan mengandung informasi dari karyawan-karyawan.

FieldField

Suatu record dibentuk oleh banyak field. Setiap field dalam suatu record mengandung suatu potongan tunggal dari informasi tentang record.

Sebagai contoh, suatu record Karyawan memiliki No Induk Karyawan, Nama, Marga dan yang lainnya.

Page 21: Bahasa Pemrograman 1

21

KeyKey

Untuk secara unik mengenali suatu baris (record), setiap tabel harus memiliki suatu primary key.

Primary key adalah suatu field, atau kombinasi dari field-field, yang mana nilainya bersifat unik untuk tiap baris atau record dalam tabel.

Sebagai contoh, field Nomor Induk Karyawan adalah primary key untuk tabel Karyawan. Tidak ada dua karyawan yang memiliki Nomor Induk yang sama.

Suatu tabel dapat mengandung field yang merupakan  foreign key.

Suatu foreign key "menunjuk pada" suatu field primary key pada tabel yang berhubungan.

Page 22: Bahasa Pemrograman 1

22

Hubungan antara tabel Pesanan dan Pelangan adalah one-to-many relationship—yang mana adalah, setiap pelanggan dapat melakukan lebih dari satu pesanan.

Dalam ERD, hubungan antar table dikenal sebagai cardinality (tingkat hubungan antar entitas/table). Cardinality terdiri dari :

1-1 (one to one)

1-M (one to many)

M-N (many to many)

Page 23: Bahasa Pemrograman 1

23

IndexIndex

Untuk mempercepat akses, banyak database menggunakan index. Data tabel yang terindex berurut akan lebih cepat pencariaannya dibandingkan dengan tabel. Setiap isi index menunjuk ke posisi ditabelnya

Page 24: Bahasa Pemrograman 1

24

Membuat Database dengan Visual Membuat Database dengan Visual Data ManagerData Manager

Pada Visual Basic, anda dapat membuat database dengan menggunakan Visual Data Manager yang dapat diaktifkan dari menu Add Ins ->Visual Data Manager

Page 25: Bahasa Pemrograman 1

25

Page 26: Bahasa Pemrograman 1

26

Membuat Database anda yang pertama

Dari menu File, pilih New, Microsoft Access, Version 7.0

Page 27: Bahasa Pemrograman 1

27

Tentukan lokasi penyimpanan dan nama database anda, misalnya: Barang.mdb

Page 28: Bahasa Pemrograman 1

28

Selanjutnya akan ditampilkan dua jendela yaitu :Database Window, menunjukan koleksi dari database.SQL Statement, tempat anda mengetikkan bahasa SQL

Page 29: Bahasa Pemrograman 1

29

Membuat Tabel anda yang pertama

Klik kanan pada "Properties" yang berada pada Database Window

Page 30: Bahasa Pemrograman 1

30

Pilih New Table, sehingga akan muncul kotak dialog Table Structure

Page 31: Bahasa Pemrograman 1

31

Pada Table Name ketikkan nama tabel yang ingin anda buat, misalnya BarangKlik pada Add Field untuk mengetikkan field-field tabel anda,

Di klik untuk menambah field

Isi dengan nama table

Page 32: Bahasa Pemrograman 1

32

Akan muncul kotak dialog Add Field, Name ketikkan nama field anda, pilihlah Type data yang bersesuaian dan ukuran dari field tersebut

Page 33: Bahasa Pemrograman 1

33

Bila kita telah menambahkan beberapa field dalam table, maka akan terlihat seperti contoh berikut:

Beberapa field yg telah ditambahkan

Page 34: Bahasa Pemrograman 1

34

Langkah selanjutnya adalah membuat Primary Key untuk tabel anda dengan melakukan klik pada tombol Add Index. Pada Name ketikkan nama Index, dan double klik pada field yang ingin di Index pada kotak Available Fields.

Page 35: Bahasa Pemrograman 1

35

Anda dapat menentukan option Primary, Unique dan IgnoreNulls, klik OK jika telah selesai, dan akhirnya Close

Field yg terpilih menjadi index

Nama index yg dibuat

Page 36: Bahasa Pemrograman 1

36

Akhirnya klik pada Build The Table

Table yg dibuat

Page 37: Bahasa Pemrograman 1

37

Mengetik data pada Visual Data Manager

Pada Database Windows klik kanan pada tabel yang ingin anda ketik datanya. Contoh: adalah tabel Barang

Pilih Open (atau double klik), klik Add

dan mulai mengetikkan data anda, dan akhirnya klik Update

Page 38: Bahasa Pemrograman 1

38

Membuat Relasi antar databaseMembuat Relasi antar database

Sesuai dengan konsep database relational, tentu saja tabel-tabel didalam suatu database memiliki link berdasarkan field tertentu yang bertindak sebagai foreign key dan primary key.

Page 39: Bahasa Pemrograman 1

39

Tabel Aktifitas berisi data aktifitas peserta dimana seorang Peserta dapat mengikuti lebih dari satu forum Diskusi, dan sebuah forum diskusi dapat diikuti oleh lebih dari satu peserta, dan status Peserta pada masing-masing forum diskusi dapat berbeda-beda.

Tabel Aktifitas

Nama Field (Foreign key)

Foreign Tabel

Foreign Field

Email Peserta Email

ForumID Forum ForumID

Status Status Status

Page 40: Bahasa Pemrograman 1

40

Untuk membuat Relasi antar tabel pada Visual Data Manager dapat menggunakan Bahasa SQL yang diketikan pada jendela SQL Language dan kemudian di Execute.

Adapun DDL (Data Definition Language)  SQL untuk membuat Relasi antar tabel adalah sebagai berikut :

ALTER TABLE table ADD CONSTRAINT name    FOREIGN KEY (ref1[, ref2 [, ...]]) REFERENCES foreigntable [(foreignfield1 [, foreignfield2 [, ...]])]

Page 41: Bahasa Pemrograman 1

41

dimana :

table Nama tabel

name Nama Constraint yang akan dibuat

ref Nama field yang akan dibuat relasi

foreigntable Nama foreign table

foreignfield Nama foreign field

Contoh :

ALTER TABLE Aktifitas ADD CONSTRAINT AktifitasEmail FOREIGN KEY (Email) REFERENCES Peserta (Email);

ALTER TABLE Aktifitas ADD CONSTRAINT AktifitasForumID FOREIGN KEY (ForumId) REFERENCES Forum (ForumId);

ALTER TABLE Aktifitas ADD CONSTRAINT AktifitasStatus FOREIGN KEY (Status) REFERENCES Satus (Status);

Page 42: Bahasa Pemrograman 1

42

Jika dibuka dengan Relationship pada Microsoft Access maka hasil perintah SQL diatas akan membuat relasi antar tabel sebagai berikut :

Page 43: Bahasa Pemrograman 1

43

Memahami Jenis RecordSetMemahami Jenis RecordSet

Visual Basic menerima dan menampilkan record  dari database dengan menggunakan objek Recordset. Recordset menampilkan record dari suatu Tabel atau record yang merupakan hasil Query (SQL). Ada tiga jenis recordset yang dapat ditentukan pada properti RecordSetType pada data control, adapun ketiga jenis recordset tersebut adalah sebagai berikut :

Page 44: Bahasa Pemrograman 1

44

Jenis Recordset Keterangan

Table Suatu himpunan dari record yang diambil dari suatu tabel tunggal database. Anda dapat menambah, mengubah, atau menghapus record pada jenis recordset ini.

Dynaset Suatu himpunan dari record secara dinamis yang di ambil dari suatu tabel tunggal maupun hasil Query (SQL) dari satu atau lebih tabel. Anda dapat menambah, mengurangi, atau menghapus record pada jenis recordset ini, dan perubahan akan mempengaruhi tabel yang bersangkutan.

Snapshot Suatu himpunan dari record yang merupakan duplikasi secara statis. Anda dapat menggunakan recordset jenis ini untuk mencari data, dan membuat laporan. Recorset  Snapshot dapat mengandung field dari satu atau lebih tabel yang tidak dapat di update.

Page 45: Bahasa Pemrograman 1

45

Anda dapat memilih jenis objek Recordset yang ingin anda gunakan pada Property (RecordsetType), dan nilai defaultnya adalah vbDynasetType.

Catatan :

Pada Dynaset dan Snapshot, recordset disimpan pada memori lokal, jika aplikasi anda tidak menggambil data lebih dari satu tabel, ataupun sumber data non-ODBC, maka Recordset jenis Table merupakan pilihan yang baik dari segi kecepatan dan efisiensi pemakaian memori.

Page 46: Bahasa Pemrograman 1

46

A.A. Bergerak dalam RecordSetBergerak dalam RecordSet

Metoda Fungsi

MoveFirstMemindahkan keaktifan pointer ke awal recordset

MoveLastMemindahkan keaktifan pointer ke akhir recordset

MovePreviousMemindahkan keaktifan pointer ke record sebelumnya

MoveNextMemindahkan keaktifan pointer ke record berikutnya

Contoh :Data1.Recordset.MoveFirst

Page 47: Bahasa Pemrograman 1

47

B. Mencari suatu record tertentuB. Mencari suatu record tertentuUntuk RecordSet jenis Dynaset dan SnapShotUntuk RecordSet jenis Dynaset dan SnapShot

Metoda Fungsi

FindFirst kriteriaMencari record pertama yang memenuhi kriteria

FindLast kriteriaMencari record terakhir yang memenuhi kriteria

FindNext kriteriaMencari record berikutnya yang memenuhi kriteria

FindPrevious KriteriaMencari record sebelumnya yang memenuhi kriteria

Contoh :

Data1.Recordset.FindFirst "'

Page 48: Bahasa Pemrograman 1

48

Untuk RecordSet jenis Table Untuk RecordSet jenis Table

Pada recordset jenis table anda dapat menggunakan metoda Seek, tetapi sebelumnya anda perlu menentukan index yang digunakan dengan properti index

Data1.RecordSet.Index = NamaIndex

Data1.RecordSet.Seek perbandingan, key1, key2, ...Perbandingan

Keterangan

"=" Sama dengan

">=" Lebih besar atau sama

">" Lebih besar

"<=" Lebih kecil atau sama

"<" Lebih kecil

Page 49: Bahasa Pemrograman 1

49

Contoh :Data1.Recordset.Index = "P_Key“Data1.Recordset.Seek "=",[email protected]

Page 50: Bahasa Pemrograman 1

50

C. Memeriksa hasil pencarian recordC. Memeriksa hasil pencarian record

Anda dapat menggunakan properti NoMatch untuk memeriksa hasil pencarian dengan metoda Find maupun metoda Seek.

Contoh:

Data1.Recordset.FindFirst "Email = [email protected]'“If Data1.Recordset.NoMatch Then

MsgBox "Peserta belum terdaftar !“Else

MsgBox "Peserta telah terdaftar !“End If

Page 51: Bahasa Pemrograman 1

51

Data1.Recordset.Index = "P_Key“Data1.Recordset.Seek "=",[email protected] Data1.Recordset.NoMatch Then

MsgBox "Peserta belum terdaftar !“Else

MsgBox "Peserta telah terdaftar !“End If

Page 52: Bahasa Pemrograman 1

52

D. Menandai posisi recordD. Menandai posisi recordUntuk menyimpan posisi record anda dapat menggunakan properti bookmark.

Contoh :

Dim MyBookMark As Variant

MyBookMark=Data1.RecordSet.Bookmark

Data1.RecordSet.MoveFirst

Data1.RecordSet.Bookmark = MyBookMark

Page 53: Bahasa Pemrograman 1

53

E. Mengambil nilai field dari record aktifE. Mengambil nilai field dari record aktif

Jika suatu kontrol di bound pada data kontrol, maka kontrol tersebut akan menampilkan nilai field dari record yang sedang aktif.

Untuk mengambil nilai field dari record yang sedang aktif secara koding, anda dapat menggunakan salah satu cara berikut :

Page 54: Bahasa Pemrograman 1

54

Data1.Recordset.Fields(0).Value ' Mengacu pada nilai pada field pertama

n = 0 ' Mengacu tidak langsung dengan suatu field number.

Data1.Recordset.Fields(n) ' Mengacu pada nilai pada field pertama.

Data1.Recordset.Fields("FName")

' Mengacu pada FName field.

string$ = "FName" ' Mengacu tidak langsung dengan nama field.

Data1.Recordset.Fields(string$) ' Mengacu pada FName field

Data1.Recordset("FName") ' Mengacu kepada field sebagai collection default.

Data1.Recordset(n) ' Mengacu kepada field sebagai collection default.

Contoh :

Debug.Print Data1.Recordset("Email")

Page 55: Bahasa Pemrograman 1

55

F. Mengubah nilai field dari record aktifF. Mengubah nilai field dari record aktif

Jika suatu kontrol di bound pada data kontrol, maka perubahan nilai pada kontrol tersebut akan mempengaruhi isi field yang bersangkutan ketika posisi record pointer berpindah, maupun ketika dilakukan proses update dengan metoda UpdateRecord.

Contoh :

Private Sub cmdUpdate_Click()

Data1.UpdateRecord

End Sub

Untuk mengubah nilai field dari record yang sedang aktif secara koding, anda dapat melakukan langkah sebagai berikut :

Page 56: Bahasa Pemrograman 1

56

Posisikan current record ke record yang akan diedit.

Tentukan nilai baru kefield yang mau diubah

Gunakan method Update atau method Move, Find, atau Seek.

Contoh :

Data1.Recordset.Edit

Data1.Recordset("Email") [email protected]

...

Data1.RecordSet.Update

Page 57: Bahasa Pemrograman 1

57

G. Menambah record baru ke recordsetG. Menambah record baru ke recordset

Dapat menggunakan prilaku properti EOFAction untuk secara otomatis menambahkan record baru ketika posisi record pointer berada di EOF, anda dapat segera mengetikkan data pada kontrol-kontrol yang dibound pada kontrol data tersebut, dan memindahkan keaktifan record pointer untuk proses update, ataupun menggunakan metoda UpdateRecord.

Secara koding anda dapat melakukan langkah berikut untuk menambahkan record baru ke recordset :

Page 58: Bahasa Pemrograman 1

58

Membuat suatu record baru dengan method AddNew. Current record pointer disimpan dan berpindah ke record baru.

Tentukan nilai baru untuk record baru.

Simpan record baru dengan method Update.

Contoh :

Data1.Recordset.AddNew

Data1.Recordset("Email") = “[email protected]"

Data1.RecordSet.Update

Page 59: Bahasa Pemrograman 1

59

Catatan :Setelah update, posisi record pointer akan dikembalikan keposisi sebelum record baru tersebut ditambah. Untuk membuat posisi record berada di record baru tersebut anda dapat menggunakan bookmark yang diset ke lastmodified.Contoh :

Data1.Recordset.AddNew

Data1.Recordset("Email") = [email protected]

...

Data1.RecordSet.Update

Data1.RecordSet.Bookmark=Data1.Recordset.LastModified

Page 60: Bahasa Pemrograman 1

60

H. Menghapus record yang sedang aktifH. Menghapus record yang sedang aktif

Untuk menghapus seluruh record, posisikan ke record yang akan dihapus, dan gunakan method Delete. Sesaat setelah record tersebut dihapus, maka record tersebut menjadi invalid, sehingga anda harus menggunakan MoveNext untuk memindahkan posisi setelah setiap penghapusan.

Contoh :Data1.Recordset.Delete

Data1.Recordset.MoveNext

If Data1.Recordset.Eof Then

Data1.Recordset.MoveLast

End If

Page 61: Bahasa Pemrograman 1

61

I. Melakukan refresh data pada RecordsetI. Melakukan refresh data pada RecordsetAnda dapat menggunakan metoda Refresh untuk menutup dan membentuk ulang isi Recordset.Contoh :Data1.Refresh

Page 62: Bahasa Pemrograman 1

62

J.J. Menutup suatu RecordsetMenutup suatu Recordset

Method Close menutup recordset dan membebaskan resource yang dialokasikan padanya. Usaha untuk melakukan suatu metode atau akses pada element dari recordset yang telah terhapus akan menghasilkan kesalahan.

Contoh :

Data1.Recordset.Close

Database dan recordset akan secara otomatis tertutup ketika :

Anda menggunakan method Close terhadap recordset tertentu.

Form yang mengandung data control di unload

Program menjalankan statement End.

Page 63: Bahasa Pemrograman 1

63