0% menganggap dokumen ini bermanfaat (0 suara)
157 tayangan140 halaman

Modul Praktikum Lab SMBD All

Modul ini membahas tentang sistem manajemen basis data dengan menggunakan MS Access 2007 dan SQL Server. Modul ini menjelaskan cara membuat database, tabel, query, form dan report menggunakan MS Access, serta pengenalan SQL Server, SQL, dan pemodelan data entity relationship menggunakan perangkat lunak ER Win.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
157 tayangan140 halaman

Modul Praktikum Lab SMBD All

Modul ini membahas tentang sistem manajemen basis data dengan menggunakan MS Access 2007 dan SQL Server. Modul ini menjelaskan cara membuat database, tabel, query, form dan report menggunakan MS Access, serta pengenalan SQL Server, SQL, dan pemodelan data entity relationship menggunakan perangkat lunak ER Win.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 140

MODUL PRAKTIKUM

SISTEM MANAJEMEN BASIS DATA

Daftar Isi

Pendahuluan : Database dengan MS Access 2007 .......................................................................... 10


1.1

TUJUAN.................................................................................................................................. 10

1.2

PERANGKAT LUNAK................................................................................................................ 10

1.3

DASAR TEORI.......................................................................................................................... 10

1.3.1
1.4

PRAKTIKUM............................................................................................................................ 10

1.4.1

Membuat Database ........................................................................................................ 10

1.4.2

Membuat Tabel .............................................................................................................. 11

1.4.3

Membuat Query ............................................................................................................. 14

1.4.4

Membuat Form .............................................................................................................. 16

1.4.5

Membuat Report ............................................................................................................ 21

1.5

TUGAS.................................................................................................................................... 21

1.5.1
2

Microsoft Access 2007 .................................................................................................... 10

Pertanyaan ..................................................................................................................... 21

Pengenalan Structure Query Language (SQL)-1 dan SQL Server ...................................................... 22


2.1

TUJUAN.................................................................................................................................. 22

2.2

PERANGKAT LUNAK................................................................................................................ 22

2.3

DASAR TEORI.......................................................................................................................... 22

2.3.1

Microsoft SQL Server ...................................................................................................... 22

2.3.2

Perbandingan SQL Server dengan MS. Access ................................................................. 22

2.3.3

Versi SQL Server ............................................................................................................. 23

2.3.4

Layanan SQL Server ........................................................................................................ 25

2.3.5

Menjalankan dan Menghentikan Service ........................................................................ 25

2.3.6

Service Control Manager ................................................................................................ 26

2.4

MS SQL Server Express ........................................................................................................... 26

2.5

SQL Management Studio ........................................................................................................ 27

2.6

SQL ........................................................................................................................................ 29

2.6.1

Latar belakang SQL ......................................................................................................... 29

2.6.2

Fungsi bahasa SQL .......................................................................................................... 29

2.6.3

Sintax SQL ...................................................................................................................... 29

2.7

PRAKTIKUM............................................................................................................................ 31

2.7.1

Membuat database ........................................................................................................ 31

2.7.2

Restore Database ........................................................................................................... 32

2.7.3

Query Database .............................................................................................................. 35

2.8

Tugas ..................................................................................................................................... 35

2.8.1
3

Pertanyaan ..................................................................................................................... 35

Introduction to Structured Query Language (SQL) - 2 ..................................................................... 37


3.1

TUJUAN.................................................................................................................................. 37

3.2

PERANGKAT LUNAK................................................................................................................ 37

3.3

DASAR TEORI.......................................................................................................................... 37

3.3.1

Performing Calculation in SQL Queries............................................................................ 37

3.3.2

Querying Two of More Table with SQL ............................................................................ 39

3.3.3

SQL OUTER JOINT ........................................................................................................... 41

3.4

PRAKTIKUM............................................................................................................................ 42

3.4.1
3.5

Query dengan SQL (Latihan Modul 2) ............................................................................. 42

TUGAS.................................................................................................................................... 43
3

3.5.1
4

Membuat Data dengan ER Win ...................................................................................................... 44


4.1

TUJUAN.................................................................................................................................. 44

4.2

PERANGKAT LUNAK................................................................................................................ 44

4.3

DASAR TEORI.......................................................................................................................... 44

4.3.1

Pendahuluan .................................................................................................................. 44

4.3.2

Konsep dasar Pemodelan Data ....................................................................................... 45

4.3.3

Bentuk Normal ............................................................................................................... 52

4.4

PRAKTIKUM............................................................................................................................ 53

4.4.1

Membuat Model ............................................................................................................ 53

4.4.2

Memberi Nama Model ................................................................................................... 53

4.4.3

Menambahkan Entitas .................................................................................................... 53

4.4.4

Edit Nama Entitas ........................................................................................................... 54

4.4.5

Menambahkan Atribut ................................................................................................... 54

4.4.6

Membuat Relationship ................................................................................................... 55

4.4.7

Menyimpan Model ......................................................................................................... 56

4.5

TUGAS.................................................................................................................................... 56

4.5.1
5

Pertanyaan ..................................................................................................................... 56

Data Modeling with the Entity-Relationship Model -1 .................................................................... 60


5.1

TUJUAN.................................................................................................................................. 60

5.2

PERANGKAT LUNAK................................................................................................................ 60

5.3

TEORI ..................................................................................................................................... 60

5.3.1
5.4

Model ER ........................................................................................................................ 60

TUGAS.................................................................................................................................... 61

5.4.1
6

Pertanyaan ..................................................................................................................... 43

Pertanyaan ..................................................................................................................... 61

Data Modeling with the Entity-Relationship Model -2 .................................................................... 62


4

6.1

TUJUAN.................................................................................................................................. 62

6.2

PERANGKAT LUNAK................................................................................................................ 62

6.3

TEORI ..................................................................................................................................... 62

6.3.1

Strong Entity Relationship .............................................................................................. 63

6.3.2

ID-Dependent Relationship............................................................................................. 66

6.4

PRAKTIKUM............................................................................................................................ 71

6.5

TUGAS.................................................................................................................................... 72

6.5.1
7

Transformasi Data Model ke Rancangan Database ......................................................................... 73


7.1

TUJUAN.................................................................................................................................. 73

7.2

PERANGKAT LUNAK................................................................................................................ 73

7.3

DASAR TEORI.......................................................................................................................... 73

7.3.1
7.4

Pendahuluan .................................................................................................................. 73

PRAKTIKUM............................................................................................................................ 73

7.4.1

Membuat Model ............................................................................................................ 73

7.4.2

Membuat Model Fisik ..................................................................................................... 74

7.4.3

Memasukkan Tabel ........................................................................................................ 75

7.4.4

Foward Engineering ........................................................................................................ 76

7.5

TUGAS.................................................................................................................................... 77

7.5.1
8

Pertanyaan ..................................................................................................................... 72

Pertanyaan ..................................................................................................................... 77

SQL for Database Construction and Application Processing -1 ........................................................ 78


8.1

TUJUAN.................................................................................................................................. 78

8.2

PERANGKAT LUNAK................................................................................................................ 78

8.3

DASAR TEORI.......................................................................................................................... 78

8.3.1

Bahasa Query Terstruktur (SQL) ...................................................................................... 78

8.3.2

Sejarah ........................................................................................................................... 78
5

8.3.3

Standarisasi .................................................................................................................... 79

8.3.4

Perintah SQL................................................................................................................... 79

8.3.5

Joint ............................................................................................................................... 85

8.4

PRAKTIKUM............................................................................................................................ 86

8.4.1

Membuat Database dengan nama Transaksi ................................................................... 86

8.4.2

Membuat Tabel dengan sintaks SQL ............................................................................... 87

8.4.3

Memasukkan Data pada Tabel ........................................................................................ 88

8.4.4

Merubah data pada tabel ............................................................................................... 89

8.5

Tugas ..................................................................................................................................... 90

8.5.1
9

Pertanyaan ..................................................................................................................... 90

SQL for Database Construction and Application Processing -2 ........................................................ 92


9.1

TUJUAN.................................................................................................................................. 92

9.2

PERANGKAT LUNAK................................................................................................................ 92

9.3

DASAR TEORI.......................................................................................................................... 92

9.3.1

SQL View ........................................................................................................................ 92

9.3.2

Embbeded SQL With Program Code................................................................................ 93

9.4

PRAKTIKUM............................................................................................................................ 94

9.4.1

Pembuatan View pada SQl Server ................................................................................... 94

9.4.2

Membuat Trigger............................................................................................................ 96

9.5

Tugas ................................................................................................................................... 100

9.5.1
10

Pertanyaan ................................................................................................................... 100

SQL for Database Construction and Application Processing -2 .................................................. 102

10.1

TUJUAN................................................................................................................................ 102

10.2

PERANGKAT LUNAK.............................................................................................................. 102

10.3

DASAR TEORI........................................................................................................................ 102

10.3.1

Trigger Lanjut ............................................................................................................... 102


6

10.3.2
10.4

SQL Store Procedure (SP) .............................................................................................. 102

PRAKTIKUM.......................................................................................................................... 103

10.4.1

Trigger (Lanjut) ............................................................................................................. 103

10.4.2

SQL Store Procedure (SP) .............................................................................................. 109

10.5

TUGAS.................................................................................................................................. 112

10.5.1
11

Pertanyaan ................................................................................................................... 112

Managing Database dengan SQL Server 2005 ........................................................................... 113

11.1

TUJUAN................................................................................................................................ 113

11.2

PERANGKAT LUNAK.............................................................................................................. 113

11.3

DASAR TEORI........................................................................................................................ 113

11.3.1
11.4

Database Administration .............................................................................................. 113

PRAKTIKUM.......................................................................................................................... 114

11.4.1

Installasi SQL Server 2005 ............................................................................................. 114

11.4.2

Database Security ......................................................................................................... 114

11.4.3

Membuat User Database .............................................................................................. 114

11.4.4

Membuat user database baru ....................................................................................... 117

11.5

Baking up database .............................................................................................................. 117

11.5.1

Jenis Backup pada SQL Server ....................................................................................... 117

11.5.2

Cara Melakukan Backup Database ................................................................................ 118

11.6

Restore Database ................................................................................................................. 119

11.7

Tugas ................................................................................................................................... 120

11.7.1
12

Pertanyaan ................................................................................................................... 120

Connection SQL Server With VB.Net......................................................................................... 121

12.1

TUJUAN................................................................................................................................ 121

12.2

PERANGKAT LUNAK.............................................................................................................. 121

12.3

DASAR TEORI........................................................................................................................ 121


7

12.4

PRAKTIKUM.......................................................................................................................... 121

12.4.1

Menambahkan Procedur pada SQL Server 2005 ........................................................... 121

12.4.2

Membuat Form pada VB.net ........................................................................................ 122

12.4.3

Membuat Modul Koneksi ............................................................................................. 124

13

Connection SQL Server With VB.Net(2) .................................................................................... 125

13.1

TUJUAN................................................................................................................................ 125

13.2

PERANGKAT LUNAK.............................................................................................................. 125

13.3

DASAR TEORI........................................................................................................................ 125

13.4

PRAKTIKUM.......................................................................................................................... 125

13.4.1

Memasukkan Script ke Form frmCustomerInput ........................................................... 125

13.4.2

Memasukkan Script untuk Button Tambah ................................................................... 127

13.4.3

Memasukkan Script untuk Button Simpan .................................................................... 127

13.5
14

TUGAS.................................................................................................................................. 129
Database Processing with XML ................................................................................................. 130

14.1

TUJUAN................................................................................................................................ 130

14.2

PERANGKAT LUNAK.............................................................................................................. 130

14.3

DASAR TEORI........................................................................................................................ 130

14.3.1

Pendahuluan ................................................................................................................ 130

14.3.2

XML .............................................................................................................................. 130

14.3.3

XML Document Type Declaration.................................................................................. 132

14.3.4

XLST ............................................................................................................................. 133

14.4

PRAKTIKUM.......................................................................................................................... 133

14.4.1

Membuat Dokumen XML dengan internal DTD ............................................................. 133

14.4.2

Dokumen XML dengan external DTD ............................................................................ 135

14.4.3

XLST ............................................................................................................................. 136

14.4.4

Generate Data dari Database ke format XML ................................................................ 138


8

14.5

TUGAS.................................................................................................................................. 139

14.5.1
15

Pertanyaan ................................................................................................................... 139

Referensi ................................................................................................................................. 140

1 Pendahuluan : Database dengan MS Access


2007
1.1 TUJUAN
1.1

Memahami konsep database

1.2

Mampu membuat database dengan menggunakan database sederhana yaitu MS Access 2007

1.3

Mampu membuat tabel pada tools database

1.4

Mampu menentukan dan membuat relasi antar tabel

1.5

Mampu membuat form dengan menggunakan tools database MS Access 2007

1.6

Mampu membuat report dengan menggunakan tools database MS Access 2007

1.2 PERANGKAT LUNAK


Microsoft Access 2007

1.3 DASAR TEORI


1.3.1

Microsoft Access 2007

Microsoft Office Access adalah sebuah program aplikasi basis data komputer relasional yang ditujukan
untuk kalangan rumahan dan perusahaan kecil hingga menengah. Aplikasi ini merupakan anggota dari
beberapa aplikasi Microsoft Office, selain tentunya Microsoft Word, Microsoft Excel, dan Microsoft
PowerPoint. Aplikasi ini menggunakan mesin basis data Microsoft Jet Database Engine, dan juga

menggunakan tampilan grafis yang intuitif sehingga memudahkan pengguna.


Microsoft Access dapat menggunakan data yang disimpan di dalam format Microsoft Access, Microsoft
Jet Database Engine, Microsoft SQL Server, Oracle Database, atau semua kontainer basis data yang
mendukung standar ODBC. Access juga mendukung teknik-teknik pemrograman berorientasi objek,
tetapi tidak dapat digolongkan ke dalam perangkat bantu pemrograman berorientasi objek. vers

1.4 PRAKTIKUM
1.4.1

Membuat Database

Latihan 1
Urutan langkah-langkah :
10

[1] Klik ikon Blank DataBase

[2] Beri Nama Database dengan nama dbPenjualan

[3] Kemudian setelah itu tekan Create


1.4.2

Membuat Tabel

Latihan 2
[1]

Klik Design View beri nama tabel dengan TB_PHONE

[2]

Masukkan nama field dan tipe data seperti pada tampilan berikut ini.

11

[3]

Jangan lupa beri PhoneID dengan tanda kunci dengan cara menekan bagian sebelah kiri field
PhoneID

[4]

Tekan kembali tombol view

[5]

Isikan data pada tabel sebagai berikut :

Asumsi : Nilai Null artinya tidak ada nilai.

12

PhoneID
1
2
3
4
5

PhoneHome
+62217717878
null
+62217712323
+62218906767
null

PhoneOffice
+622152114563
null
null
+6221678957
null

PhoneCell
+62818600234
+6281856789
+6281856790
+6221909006
+6221767970

Lakukan hal yang sama untuk membuat 4 buah tabel sebagai berikut. Tentukan tipe data sesuai
dengan peruntukannya.
a. TB_CUSTOMER(CustomerCode, CustomerName, CustomerAddress, PhoneID)
PK = CustomerCode; FK = CustomerPhone reference to TB_PHONE
CustomerCode
0011100001
0011200003
0011100002
0011100006
0011200007

CustomerName
Maryati
Susilowati
Savaria
Iwan Agus
Suherman

CustomerAddress
Jl. Sonoputran No. 36
Jl. Krapyak Kulon
Jl. Kumendaman MJ II / 393
Jl. Iromejan GK III / 624
Jl. Manggiran Rt.04/49

PhoneID
1
2
3
4
5

b. TB_PRODUCT(ProductID, ProductCode, ProductName, ProductDesc)


PK = ProductID
ProductID
1
2
3
4
5
6
7

ProductCode
1949
4370
1949
4373
4377
4390
1469

ProductName
Paseo Tissue
Ponds White Beauty
Pigeon Compact Powder
Johnsons Baby shoap
Papermint Candy
Indocaffe 25 g
Sugar Sugar 500 g

ProductDesc
Dry Tissue
Body Lotion
Compact Powder
Baby Shoap
Candy
Coffe mix
Sugar

c. TB_PRICE(PriceID, ProductID, PriceValue, PriceStartDate, PriceEndDate, PriceValid)


PK = PriceID; FK = ProductID reference to TB_ PRODUCT
PriceID
1
2
3
4
5
6

ProductID
1
2
3
3
4
4

PriceValue
2
30
4
7
8
12

PriceStartDate
12/01/2007
12/01/2007
12/01/2007
02/01/2008
12/01/2007
03/01/2008

PriceEndDate
null
null
01/31/2008
null
02/29/2008

PriceValid
1
1
0
1
0
1

13

1.4.3

Membuat Query

Digunakan untuk menampilkan, menyunting, dan menganalisa suatu data dengan cara lain.
Query Wizard
Cara membuat Query dengan Query Wizard akan lebih mudah karena akan dibantu oleh Microsoft
Access 2007.
Latihan 3
Berikut ini adalah langkah-langkah membuat Query dengan Query Wizard :
[1]

Buka File DataBase yang dimiliki kemudian pilih Toolbar Create kemudian klik Query Wizard.

[2]

Kemudian akan muncul kotak New Query, lalu pilih Simple Query Wizard, klik Ok.

[3]

Kemudian pilih pilih tabel yang diperlukan pada perlukan pada pilihanTabel / Query.

Keterangan :
14

Klik > untuk memilih field yang diperlukan dalam Query.


Klik < untuk membatalkan.
Klik >> jika memerlukan semua Field yang ada.
[4] Klik Detail Show Every Field of Every Record atau Summary.
[5] Kemudian klik Next akan muncul jendela baru kemudian beri nama padaQuery yang telah dibuat dan
pilih Open The Query to View Information, Klik Finish

15

Hasilnya adalah sebagai berikut :

Buat Query untuk masing-masing tabel dengan firld sebagai berikut :


a. Tampilkan daftar seluruh CUSTOMER
b. Tampilkan daftar PRODUCT (ProductCode, ProductName
1.4.4

Membuat Form

Digunakan untuk membuat Control Proses memasukkan, memeriksa, dan memperbarui data.
1.4.4.1 Latihan 4

16

Langkah-langkah membuat Form :


[1]

Untuk membuat suatu Form, dapat membuat berdasarkan pada tabel yang ada dengan memilih

Form pada bagian Create. Sebelumnya pastikan dalam keadaan Datasheet View, bukan Design View,
caranya dengan Double- Click pada nama Tabel.

[2]

Maka secara otomatis dapat mendapat suatu Form yang langsung berdasarkan pada Tabel KTP

yang telah dibuat sebelumnya.

17

Gambar di atas menunjukkan tampilan Form View, selain itu ada juga tampilan Layout dan Design View
dimana dapat mengatur tampilan Form. Terdapat pada bagian kiri atas menu Home.

Tampilan dari Design View digunakan untuk mengubah susunan dari Form sesuai dengan keinginan
user. Di bawah adalah tampilan Design View.

[3]

Jika ingin memasukkan suatu data pada tabel KTP, maka harus masuk ke bagian Form View.

18

Pada tampilan di atas dapat memasukkan inputan data dimana secara otomatis maka data akan
langsung tersimpan dalam Tabel KTP. Apabila ingin menambahkan data baru maka cukup dengan
meng-click bagian Record yang berada pada bagian bawah tampilan. Selanjutnya membuat tombol
untuk navigasi. Berikut ini adalah langkahlangkah yang harus dilakukan :
[1]

Bukalah Form yang telah dibuat kemudian pada ribbon Format pilih View dan pilih Design

View.

[2] Kemudian akan tampilan seperti tampilan di bawah ini

19

[3]

Kemudian pilih tanda Button

[4]

Buat sebuah button pada Design Viewnya, kemudian akan muncul secara otomatis Button

Wizard sebagai berikut :

[5]

Kemudian pada Categories pilih Record Navigation dan apada Action pilih Go to First Record,

lalu klik Next. Pilih label berupa Picture, klik Next lalu Finish. Jika semua benar maka akan muncul
sebagai berikut :

20

[6] Dengan cara yang sam seperti no 5 di atas buat Button untuk Navigasi, Go t o Next Record, Go
to Previous Record, dan Go to Last Record. Dan juga untuk Record Operation berupa Add New
Record, Delete Record dan Save Record. Serta sebuah Form Operation yaitu untuk Button Close
Form.
1.4.5

Membuat Report

Microsoft Access 2007 memudahkan user dalam pembuatan laporan ( Report ) dengan menyediakan
fasilitas Report Wizard yang mampu untuk merancang beberapa bentuk laporan dan dapat
memodifikasi bentuk laporan sesuai dengan pola yang diharapkan. Cara membuat Report Wizard :
[1] Pilih ribbon Create kemudian pilih tanda Report

[2] Kemudian akan muncul tampilan Report KTP

1.5 TUGAS
1.5.1

Pertanyaan
Dengan menggunakan tabel Customer yang telah dibuat sebelumnya, buatlah :
a. Form Customer
b. Report Customer

21

2 Pengenalan

Structure

Query

Language

(SQL)-1 dan SQL Server


2.1 TUJUAN
1.1

Mengetahui penggunaan SQL Server sebagai tool database

1.2

Mampu membuat database dengan menggunakan tools database SQL Server

1.3

Mampu membuat tabel pada tools database SQL Server

1.4

Mampu membuat dan menjalankan query pada pada tools database SQL Server

2.2 PERANGKAT LUNAK


SQL Server

2.3 DASAR TEORI


2.3.1

Microsoft SQL Server


Server QL adalah salah satu sistem database yang populer dan cukup banyak digunakan
pada saat ini. SQL Server dikeluarkan oleh Microsoft. Microsoft SQL Server kadang-kadang
disebut sebagai "Server Sekuel". Hal ini

karena MS SQL Server dapat dikelola dengan

menggunakan Structured Query Language (SQL). Sementara itu MS Access digunakan untuk
aplikasi

kecil.

SQL

Server

mendukung aplikasi

besar dengan

jutaan

pengguna atau

database besar. SQL Server jauh lebih kuat daripada MS Access dan menyediakan beberapa
fitur canggih lainnya serta keamanan yang jauh lebih baik. SQL Server kompatibel dengan MS
Access.

Kita dapat dengan mudah mengimpor / mengekspor data antara kedua. SQL

Server adalah database relasional dimana data disimpan dan diambil dengan sangat efisien.
2.3.2

Perbandingan SQL Server dengan MS. Access

2.3.2.1 Keuntungan Menggunakan MS Access


Keuntungan dari MS Access adalah database manajemen sistem yang ringan . MS Access
menyediakan desainer pada aplikasi itu sendiri sehingga kita dapatmenghasilkan laporan dalam
bentuk sederhana pada jendela aplikasi lain tanpa menggunakan lingkungan pemrograman.

22

Sangat mudah untuk menggunakan database MS Access. Hanya menyalin file. MDB kemudian
pindahkan ke lokasi yang sesuai.
2.3.2.2 MS Access atau SQL Server
MS Access sangat ideal hanya untuk aplikasi yang membutuhkan database yang sangat kecil.
Meskipun batas

ukuran database

yang maksimum

untuk MS

Access adalah

GB,

kinerja menjadi turun ketika ukuran database bertambah lebih dari beberapa ratus MB.
Jika kita mengharapkan aplikasi database diatas 100 MB di masa depan, maka harus
mempertimbangkan menggunakan SQL Server. Mungkin tidak mudah untuk bermigrasi ke SQL
Server . Meskipun SQL Server memungkinkan untuk mengimpor database MS Access ke SQL
Server, akan menyuliktkan karena perubahan kode untu menggunakan fitur yang disediakan
SQL Server.
Perbedaan utama kinerja antara MS Access dan SQL Server adalah jika aplikasi yang dibangun
adalah aplikasi kritis di mana kinerja adalah penting, maka harus mempertimbangkan SQL
Server bukannya MS Access.
SQL Server 2005 Express baru adalah versi gratis dari SQL Server 2005. Aplikasi ini
memungkinkan fasilitas untuk mengcopy fitur dari database. Kita dapat menyalin file
database dan memasang dengan cepat. Ini adalah ide yang baik untuk menggunakan SQL Server
2005 Express jika tidak mampu membeli lisensi SQL Server. Aplikasi memiliki kinerja dan fitur
yang jauh lebih baik dibandingkan dengan MS Access.
Intinya adalah, pilih MS Access hanya untuk aplikasi kecil dan tidak kritis.
2.3.3

Versi SQL Server

Enterprise Edition
Enterprise Edition digunakan untuk tingkat kinerja dengan skala yang sangat tinggi guna
mendukung perusahaan dalam pengolahan transaksi online (OLTP), analisis data yang sangat
kompleks, sistem data pergudangan, dan situs Web.

Standard Edition
Sangat cocok untuk organisasi berukuran kecil dan menengah. Versi ini cukup untuk memenuhi
kebutuhan volume data yang wajar untuk organisasi golongan menengah.
23

Workgroup Edition
SQL Server Workgroup Edition adalah solusi manajemen data untuk organisasi kecil yang perlu
database tanpa batasan ukuran atau jumlah pengguna.

Developer Edition
SQL Server Developer Edition memiliki semua fitur dari edisi Enterprise, tetapi lisensi
penggunaannya hanya untuk tujuan pengembangan dan pengujian tidak untuk produksi aplikasi.

Express Edition
SQL Server Express edisi adalah pengganti MSDE (sistem database gratis). Edisi ini didasarkan
pada SQL Server dan menawarkan fitur lebih banyak dari MSDE. Meskipun Microsoft mengklaim
bahwa edisi ini hanya dapat digunakan untuk aplikasi kecil, desain yang cerdas dan caching yang
tepat akan membuat pilihan untuk beberapa jenis aplikasi. Beberapa situs telah beralih dari MS
Access atau MySQL ke SQL Server 2005 Express karena gratis dan menawarkan banyak fitur dari
SQL Server.

SQL Server Express gratis dan dapat didistribusikan (tergantung perjanjian tertentu). Memilik
fungsi sebagai database klien, serta server database dasar. SQL Server Express adalah pilihan
ideal untuk menyebarkan aplikasi kecil dengan client-server serta situs web kecil.

SQL Server Compact Edition


SQL Server Compact Edition adalah database server kompak untuk perangkat cerdas. SQL Server
Compact Edition mampu replikasi data.

SQL Server Runtime Edition


SQL Server Edisi Runtime adalah edisi khusus yang dirancang untuk mitra Microsoft
ISV. Berdasarkan perjanjian lisensi pengguna akhir untuk SQL Server Runtime Edition, vendor
software independen (ISV) dapat menanamkan kode SQL Server ke perangkat lunak mereka,
tetapi pengguna akhir tidak diperbolehkan untuk menggunakan contoh dari SQL Server untuk
akses dari aplikasi lain.

24

Di antara berbagai versi disebutkan di atas, SQL Server Express adalah satu-satunya versi
gratis. Enterprise dan edisi standar dapat dibeli dengan biaya beberapa ribu dolar, tergantung
pada jumlah pengguna dan jumlah CPU di sistem.
2.3.4

Layanan SQL Server


Apakah Server itu ?
Semua sistem manajemen database canggih memiliki jenis aplikasi yang digunakan untuk
layanan sebagai bagian dari sistem database. Misalkan jika menggunakan SQL Server kita harus
memilik SQL Server Engine yang berjalan pada komputer. Aplikasi ini berbentuk

jendela

(tersembunyi dan akan berjalan secara otomatis ketika komputer dinyalakan).


Program atau perangkat lunak yang dibangun tidak mengakses database secara langsung
melainkan akan berkomunikasi dengan aplikasi layanan database (Database Application Service)
untuk menjalankan perintah yang diberikan
Ketika kita menginstall SQL Server di komputer maka Database Application Service akan secara
otomatis terinstall. Pada saat kode program dituliskan dengan menggunakan C#, VB.NET, dan
framework .NET lainnya, maka kode akan berkomunikasi dengan database server semudian
database server akan berkomunikasi dengan file database untuk mengeksekusi perintah yang
dituliskan tanpa sepengetahuan kita. Kemudian hasil eksekusi akan ditampilkan. Layanan
database harus berjalan selama proses terjadi. Jika layanan dimatikan maka hasilnya tidak akan
diberikan alias gagal.
Dalam file sistem database seperti MS Access atau FoxPro, tidak ada layanan database yang
terlibat. Kode akan langsung berkomunikasi dengan file database.
2.3.5

Menjalankan dan Menghentikan Service


Sebuah service adalah aplikasi yang dijalankan secara otomatis pada saat komputer dinyalakan.
Ada 2 cara untuk menjalankan service :

Secara otomatis

Secara Manual

25

Secara default service dikonfigurasi otomatis namun beberapa pengembang banyak


merubahnya ke bentuk manual karena beberapa alasan tertentu. Diantaranya jika kita memiliki
komputer yang sangat lambat maka pilihan setting manual lebih baik di pilih.
2.3.6

Service Control Manager


Untuk mematikan service dapat menggunakan service Control Manager yang terdapat pada
Control Panel\System and Security\Administrative Tools

Gambar 2. 1 Service Control Manager

Kita bisa melihat semua daftar service yang terinstal serta statusnya. Klik kana nama service
untuk melihat menu kemudian pilih start, stop, restart, dll. Gambar di atas menunjukkan
berberapa service yang berhubungan dengan SQL Server. Klik kanan pada layanan tersebut
untuk menjalankan atau mematikan.

2.4 MS SQL Server Express


SQl Server Express adalah versi gratis dari SQL Server yang dirancang untuk membangun aplikasi
sederhana berbasis data. Aplikasi ini menyediakan fasilitas untuk merancang skema,
menambahkan data, melakukan query database local dan memiliki sebagian besar fitur yang

26

disediakan oleh SQL Server. Jika pengembang memerlukan fitur database yang lebih canggih,
maka SQl Express dapat di upgrade ke versi yang lebih canggih.
MS SQL Server merupakan platform database pengganti Microsoft Desktop Engine (MSDE).
Software ini hadir dengan antar muka pengguna grafis untuk mengelola sistem database yang
disebut SQL Server Management Studio.
Sebelum menginstall SQl Server Express maka yang perlu dilakukan adalah download dan install
.NET Framework 2.0 pada alamat
http://msdn.microsoft.com/netframework/downloads/updates/default.aspx

2.5 SQL Management Studio


SQl Management Studi digunakan untuk mengelola server database. Pada saat kita membuka
management studi maka kita di minta login terlebih dahulu. Gambar dibawah ini adalah layar
login untuk SQL Management Studi 2005.

Gambar 2. 2 Login ke SQL Server 2005

27

Server type
Drop down pertama pada gambar diatas adalah server type. Akan ada beberapa pilihan disini
tergantung dari tipe server yang di install. Jika ingin terhubung ke server database maka pilih
database engine
Server Name
Drop down kedua adalah untuk memilih nama server. Jika SQL Server di install pada komputer
lokal maka bisa menggunakan beberapa pilihan antara lain :

Local

. (dot)

Localhost

127.0.0.1

Atau nama IP Address komputer local misalkan 192.168.1.100

Jika terhubung ke komputer berbeda maka panggil dengan alamat IP komputer tersebut atau
nama komputernya. Jika terinstall pada turunan bernama dari SQL Server maka gunakan back
slash (\) contoh : 192.168.2.100\SQLInstance2.
Authentication
Drop down ini memberikan 2 pilihan, yaitu :

Windows Authentication

SQL Authentication

Jika memilih windows Authentication, maka login dan password yang digunakan sesuai dengan
login dan password komputer. Jika memilih SQL Server Authentication, maka gunakan user dan
password yang sebelumnya telah di definisikan pada SQL Server.
Tekan Connect untuk menghubungkan ke server database.
Ada beberapa fasilitas yang terdapat pada Management Studio antara lain:
[1]

Databases

[2]

Security

28

[3]

Server Objects

[4]

Replication

[5]

Management

[6]

Notification Services

[7]

dan sebagainnya.

2.6 SQL
2.6.1

Latar belakang SQL


SQL adalah bahasa yang dikembangkan oleh IBM Corporation pada akhir tahun 1970.
Ditetapkan sebagai standar nasional oleh American Nation Standards Institute (ANSI) pada
tahun 1992. SQL bukan merupakan bahasa pemrograman seperti Java atau C#, tetapi disebut
sebagai data sublanguage karena statement SQL diperlukan untuk membuat dan memproses
data pada database. SQL statement dapat digunakan dengan berbagai cara untuk mengakses
suatu database (DBMS), misal digunakan pada:

2.6.2

Aplikasi client/server

Web page

Reporting tools

Digunakan langsung melalui Visual Studio atau development tools yang lain

Fungsi bahasa SQL


Beberapa kegunaan bahasa SQL antara lain :

SQL dapat mengambil dan melakukan perubahan data pada database relasional denga
menggunakan data manipulation language (DML)

SQL dapat membuat dan memodifikasi database seperti table, view, indexes melalui
data definition language (DDL)

SQL dapat memberikan dan mencabut otorisasi user dengan menggunakan data control
language.

2.6.3

Sintax SQL
Pada dasarnya sintaks ada 3 jenis sintaks SQL, yaitu DML, DDL dan DCL. Namun untuk praktikum
Database kali ini akan dibahas terlebih dahulum mengenai DML.

29

2.6.3.1 DML (Data Manipulation Language)


Data Manipulation language (DML) adalah bagian dari perintah SQL. SQL DML memungkinkan
untuk mengambil data dari table database relasional (RDBMS). Selain itu DML juga bisa
digunakan untuk menghapus dan merubah data dari table database dengan menggunakan
perintah UPDATE dan DELETE. Dibawah ini adalah beberapa perintah yang terdapat pada SQl
DML

SQL SELECT
SQL WHERE
SQL Alias
SQL DISTINCT
SQL ORDER BY
SQL IN
SQL BETWEEN
SQL LIKE
SQL GROUP BY
SQL HAVING
SQL INNER JOIN
SQL OUTER JOIN
SQL Self-join
SQL Subqueries
SQL UNION
SQL INSERT

SQL UPDATE

SQL DELETE

2.6.3.2 SQL Frame Work


Perintah select digunakan untuk mengambil data dari satu atau lebih table database. Dibawah
ini adalah syntax umum dari perintah SELECT
1 SELECT column_list
2 FROM table_list

30

3 WHERE row_conditions
4 GROUP BY column_list
5 HAVING group_conditions
6 ORDER BY sort_list ASC | DESC

2.7 PRAKTIKUM
2.7.1

Membuat database

2.7.1.1 Latihan 1
Buatlah database pada SQL Server Express 2005 dengan cara sebagai berikut :
[1] Buka SQl Server Express 2005 Management Studio
[2] Lakukan Login. Gunakan Windows Authentication
[3] Pada bagian database, klik kanan kemudian pilih new database

Gambar 2. 3 New Database

[4] Buat database dengan nama Modul2 pada bagian database name kemudian klik OK

31

Gambar 2. 4 Database Name

[5] Pada bagian bawah database akan muncul database baru dengan nama Modul 2.
2.7.2

Restore Database

2.7.2.1 Latihan 2
[1] Klik kanan database modul2. Pilih task-restore-database

Gambar 2. 5 Restore Database

[2] Pilih modul 2 pada bagian to database


32

[3] Pada bagian source for restore pilih from device kemudian Add
[4] Pilih folder tempat data backup di simpan

Gambar 2. 6 General Restore Database

[5] Pilih bagian Option


[6] Isikan informasi seperti di bawah ini

Gambar 2. 7 Option Restore Database

33

[7] Klik OK

Gambar 2. 8 Finish Restore Database

[8] Expand database modul 2 seperti di bawah ini

Gambar 2. 9 Database Siap

34

2.7.3

Query Database

2.7.3.1 Latihan 3
[1] Klik NEW Query

Gambar 2. 10 Editor Query

[2] Ketikan Script SQL pada Editor seperti contoh SELECT * FROM INVENTORY
[3] Klik Tombol Execute

2.8 Tugas
2.8.1

Pertanyaan
Dengan menggunakan database yang telah di restore pada latihan 2, lakukan query atas
pertanyaan dibawah ini.

A. Gunakan Tabel INVENTORY (SKU, Description, QuantityOnHand, QuantityOnOrder,


Warehouse)
a) Tuliskan SQL query untuk menampilkan SKU dan Description
b) Tuliskan SQL query untuk menampilkan Warehouse tanpa Duplikasi
c) Tuliskan SQL query untuk menampilkan seluruh kolom dengan menggunakan *
d) Tuliskan SQL query untuk menampilkan SKU dan Description dimana QuantityOnHand=0
e) Tuliskan SQL query untuk menampilkan SKU dan Description dimana QuantityOnHand=0 dan
QuantityOnOrder = 0

35

f)

Tuliskan SQL query untuk menampilkan SKU dan Description dari semua item yang disimpan di
warehouse Seattle, Chicago, New Jersey. Gunakan IN

g) Tuliskan SQL query untuk menampilkan SKU, Description, dan QuantityOnHand untuk semua
produk yang memiliki QuantityOnHand lebih besar dari 1 dan kurang dari 10. Gunakan
BETWEEN
h) Tuliskan SQL query untuk menampilkan SKU, Description dimana Descriptionnya diawali dengan
Half-dome
i)

Tuliskan SQL query untuk menampilkan SKU, Description dimana Descriptionnya terdapat katakata Foot

B. Gunakan Tabel INVENTORY (SKU, Description, QuantityOnHand, QuantityOnOrder,


Warehouse)
WAREHOUSE(Warehouse, Manager, SquareFeet)
j)

Tuliskan SQL Statement untuk menampilkan SKU dan Description untuk semua item pada
warehouse dengan manager Smith.

k) Tuliskan SQL Statement untuk menampilkan QuantityOnHand yang lebih besar dari 100 dan
kurang dari 200
l)

Tuliskan SQL Statement Warehouse, Manager dimana squuareFeet >200000

36

3 Introduction to Structured Query Language


(SQL) - 2
3.1 TUJUAN
1.1

Mampu memlakukan Query yang berhubungan dengan sintaks perhitungan

1.2

Mampu melakuan Query untuk grouping

1.3

Mampu melakukan Query lebih dari satu tabel

3.2 PERANGKAT LUNAK


SQL Server

3.3 DASAR TEORI


3.3.1

Performing Calculation in SQL Queries

3.3.1.1 SQL Group


SQl Group digunakan untuk membagi table database menjadi grup tertentu. Fungsi yang
digunakan adalah SUM, AVG, MIN, MAX dan COUNT.

1 SELECT c1,c2,... cn, aggregate_function(expression)


2 FROM tables

3 WHERE where_conditions
4 GROUP BY c1, c2, ... cn

5 ORDER BY order_columns

Misalkan :
1 SELECT orderID, SUM(unitPrice * quantity)

37

2 FROM order_details

3 GROUP BY orderID

orderID
-------

SUM(unitPrice * quantity)
-------------------------

10248
10249

440.0000
1863.4000

10250
10251

1813.0000
670.8000

10252
10253

3730.0000
1444.8000

10254
10255
10256
10257
10258
10259
10260

625.2000
2490.5000
517.8000
1119.9000
2018.6000
100.8000
1746.2000

1 SELECT OrderID, SUM(unitPrice * quantity) total


2 FROM Order_details

3 GROUP BY OrderID
4 ORDER BY total DESC

OrderID
------10865
11030
10981
10372
10424
10817
10889
10417
10897
10353

total
---------17250.0000
16321.9000
15810.0000
12281.2000
11493.2000
11490.7000
11380.0000
11283.2000
10835.2400
10741.6000

38

3.3.1.2 SQL Having


Umumnya digunakan bersama dengan Grooup by untuk menfilter kondisi tertentu.
1 SELECT OrderID, SUM(unitPrice * quantity) total
2 FROM Order_details
3 GROUP BY OrderID
4 HAVING total > 12000
OrderID
------10372
10865
10981
11030

3.3.2

total
---------12281.2000
17250.0000
15810.0000
16321.9000

Querying Two of More Table with SQL

3.3.2.1 SQL INNER JOINT


Sintaks inner joint adalah sebagai berikut :
1 SELECT selection_list
2 FROM table_A
3 INNER JOIN table_B ON join_condition
4 WHERE row_conditions.

Table A dan Tabel B disebut juga joint table. SQl INNER JOINT memberikan sejumlah record data
dari kedua table tersebut yang sesuai dengan kondisi yang di minta. SQL INNER JOINT
menampilkan semua record dari table A dan mencari record yang terdapat pada table B sesuai
dengan kondisi yang di minta. Jika kondisi tidak memenuhi maka record tidak akan ditampilkan
Misalkan kita ingin menampilkan informasi dari productId, productName, dan category name
1 SELECT productID,productName,categoryName
2 FROM products
3 INNER JOIN categories ON products.categoryID = categories.categoryID
Hasilnya adalah sebagai berikut :

39

productID
--------1
2
3
4
5
6
7
8
9
10
....

productName
--------------------------------Chai
Chang
Aniseed Syrup
Chef Anton's Cajun Seasoning
Chef Anton's Gumbo Mix
Grandma's Boysenberry Spread
Uncle Bob's Organic Dried Pears
Northwoods Cranberry Sauce
Mishi Kobe Niku
Ikura

categoryName
-------------Beverages
Beverages
Condiments
Condiments
Condiments
Condiments
Produce
Condiments
Meat/Poultry
Seafood

Untuk setiap product pada table product, SQL akan menemukan category pada table category
yang memiliki kesamaan categoryID. Sebagian kita akan menggunakan foreign key untuk
membentuk kodisi joint. Dibawah ini adalah sintaks lain dari penggunaan SQL INNER JOIN
disebut implicit inner join.
syntax:
1 SELECT selection_list
2 FROM table_A, table_B
3 WHERE join_condition.

Misalkan :

40

3.3.3

SQL OUTER JOINT


Berbeda dengan SQL SQL OUTER JOIN menampilkan semua record dari kedua table yang di
joint yang mana recordnya yang ditampilkan di luar record yang di cari. Ada 3 jenis SQL OUTER
JOIN, yaitu FULL OUTER JOIN, LEFT OUTER JOIN dan RIGHT OUTER

3.3.3.1 LEFT OUTER JOINT

SYNTAX
1 SELECT * FROM table_A
2 LEFT OUTER JOIN table_B ON join_conditions
3 WHERE row_conditions

SELECT e.employee_id, e.last_name, e.department_id, d.department_name


FROM employees e LEFT OUTER JOIN departments d
ON (e.department_id = d.department_id);

3.3.3.2 RIGHT OUTER JOINT

1 SELECT column_list
2 FROM table_A

41

3 RIGHT OUTER JOIN table_B ON join_conditions


4 WHERE row_conditions

SELECT e.employee_id, e.last_name, d.department_id, d.department_name


FROM employees e RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id);

3.3.3.3 FULL OUTER JOINT

1 SELECT column_list
FROM table_A

3 FULL OUTER JOIN table_B ON join_conditions


4 WHERE row_conditions
SELECT e.employee_id, e.last_name, d.department_id, d.department_name
FROM employees e FULL OUTER JOIN departments d
ON (e.department_id = d.department_id);

3.4 PRAKTIKUM
3.4.1

Query dengan SQL (Latihan Modul 2)


Sebelum memulai Query pastikan bahwa database yang dituju adalah database modul2 yang
terlah dibuat sebelumnya pada modul2

42

Gambar 3. 1 Database untuk Query

3.5 TUGAS
3.5.1

Pertanyaan
Dengan menggunakan database modul2 lakukan hal-hal sebagai berikut :
a. Tampilkan buyer tanpa adanya duplikasi pada tabel SKU
b. Tampilkan SKU dan SKU_DESCRIPTION yang SKU_DESCRIPTION yang QuantityOnHand Paling
besar .
c. Tampilkan SKU dan SKU_DESCRIPTION yang SKU_DESCRIPTION memilik huruf d pada posisi
ke 3 pada tabel SKU_DATA
d. Hitung banyaknya order pada bulan december dan tahun 2003 pada tabel RETAIL_ORDER
e. Hitung jumlah Quantity yang OrderNumbernya 3000 pada tabel ORDER_ITEM
f.

Tampilkan semua data pada tabel ORDER_ITEM di urutkan berdasarkan OrderNumber


terurut dari bawah ke atas.

g. Tampilkan SKU, Quantity yang merupakan pesanan pada bulan december dan tahun 2003
dari tabel RETAIL_ORDER DAN ORDER_ITEM
h. Tampilkan SKU_DESCRIPTION, DEPARTMENT yang STORENUMBER nya =10

43

4 Membuat Data dengan ER Win


4.1 TUJUAN
1.1

Mengetahui tools rancangan database

1.2

Mampu menggunakan tools ER Win untuk membuat rancangan database

1.3

Mampu melakukan normalisasi data

1.4

Mampu menggambarkan rancangan normalisasi dalam bentuk rancangan ER

4.2 PERANGKAT LUNAK


ER Win

4.3 DASAR TEORI


4.3.1

Pendahuluan
CA Erwin Data Model (CA ERWin DM) menggabungkan antarmuka pengguna grafis berbasis
windows dengan alat-alat entity-relationship (ER), dan berbagai fitur inovatif diagram. fitur ini
ini memungkinkan untuk dengan mudah membuat dan mengelola database relasional logis dan
model fisik. CA Erwin DM jauh lebih dari alat gambar. Ini tidak hanya membantu merancang
model data logis, yang menangkap aturan bisnis dan persyaratan, tetapi juga mendukung desain
model data fisik yang sesuai untuk server target. Hal ini memungkinkan untuk secara otomatis
menghasilkan struktur fisik database.
CA Erwin DM mendukung reverse engineering database yang ada dan menyediakan baik /
model data fisik fisik dan logis sehingga dapat menjaga database yang sudah ada, atau
bermigrasi dari server target saat ini ke satu yang berbeda.

44

4.3.2

Konsep dasar Pemodelan Data


Ada beberapa konsep dasar yang menjadi dasar dalam pemodelan data. Konsep dasar tersebut
antara lain :

Tipe Model

Entitas

Tabel

Atribut dan kolom

Primary key

Relationship

Foreign key

4.3.2.1 Tipe Model


Beberapa jenis model yang memungkinkan pemodel data atau analis data bekerja dengan
model paling cocok untuk kebutuhan mereka. Jenis Model yang tersedia:

Logis

Sebuah model konseptual yang berisi benda-benda seperti entitas, atribut, dan
kelompok-kelompok kunci.
45

Fisik

Sebuah model-database tertentu yang berisi objek seperti tabel, kolom, dan tipe
data

Logical / Physical
Sebuah model tunggal yang meliputi model logis dan fisik.
Model properties dapat dirubah dengan memilih model dari menu pada
bagian atas, lalu model properties.
Klik tab NOTATION dan pilih IE notation untuk model logis dan fisik.

46

4.3.2.2 Entitas
Sebuah entitas adalah sebuah objek logis yang mewakili orang, tempat, atau hal tentang sebuah
organisasi yang mengelola informasi.
Dalam diagram berikut, model data logis memiliki perusahaan berikut ini:
PELANGGAN
KARYAWAN
MOVIE
MOVIE COPY
MOVIE RENTAL RECORD
PEMBAYARAN
STORE

47

4.3.2.3 Tabel
Dalam model logis, suatu entitas biasanya sesuai dengan tabel dalam model fisik. Dalam model
fisik, kotak grafis mewakili tabel di mana data disimpan dalam database

4.3.2.4 Tipe dari Entitas / Tabel


Dua jenis entitas / tabel dapat ditarik dalam model data:
Independen Entity
Sebuah entitas yang instans nya secara unik tanpa menentukan hubungannya dengan
entitas lain. Hal ini direpresentasikan sebagai sebuah kotak dengan sudut persegi.
Dependent Entity

48

Sebuah entitas yang instans nya tidak dapat diidentifikasi secara unik tanpa menentukan
hubungannya antara entitas dengan entitas lain. Hal ini direpresentasikan sebagai
sebuah kotak dengan sudut bulat.

4.3.2.5 Atribut dan Kolom


Atribut mengumpulkan informasi tentang suatu entitas dan kolom mengumpulkan
informasi tentang tabel. Atribut logis biasanya sesuai dengan kolom fisik dalam sebuah
tabel.
Misalnya, setelah membuat entitas PELANGGAN, dapat mulai untuk menentukan
bagian-bagian individu dari informasi digunakan untuk melacak untuk setiap pelanggan,
termasuk Nama, Alamat, dan Nomor Telepon. Dalam model logis, masing-masing
potongan-potongan informasi disimpan sebagai atribut dari entitas PELANGGAN. Dalam
model fisik, atribut sama dengan kolom dalam sebuah tabel.

49

4.3.2.6 Primary Key dan Non key


Entitas dan tabel yang diambil sebagai kotak dengan garis horizontal dekat bagian atas
kotak.
Daerah di atas garis horizontal dikenal sebagai wilayah kunci karena di situlah entitas
kunci utama berada. Primary key dapat terdiri dari satu atau lebih atribut yang secara
unik mengidentifikasi entitas.
Daerah di bawah garis horisontal dikenal sebagai daerah non-key karena di situlah
semua atribut lainnya berada.

4.3.2.7 Foreign Key


Bila membuat hubungan antara entitas, atribut primary key dari entitas induk secara
otomatis bermigrasi ke entitas anak. Notasi (FK) menunjukkan nama dari atribut kunci
bermigrasi, juga dikenal sebagai kunci asing. Migrasi ini terjadi secara otomatis dalam
model fisik.

50

Jika atribut kunci asing memiliki nama yang sama sebagai atribut yang dimiliki dalam
entitas anak, dua contoh secara otomatis bersatu menjadi satu atribut karena
mengasumsikan bahwa mereka adalah atribut yang sama. Proses menggabungkan atau
menyatukan atribut identik dalam suatu entitas disebut unifikasi.
4.3.2.8 Relationship
Sebuah objek penting dalam sebuah model data adalah Relationship , yang diwakili oleh
garis padat atau putus-putus yang menghubungkan dua entitas atau dua tabel. Sebuah
garis Relationship menghubungkan orang tua dan entitas anak atau tabel. Biasanya,
simbol muncul pada anak-ujung garis hubungan. Perubahan simbol didasarkan pada
notasi diagram yang dipilih.

4.3.2.9 Tipe Relationship


Hubungan penting karena jenis hubungan menentukan bagaimana primary key dari
entitas induk atau tabel berpindah ke entitas anak atau tabel sebagai kunci asing. Ada
dua tipe dasar hubungan:
Identifying Relationship
Diwakili oleh garis padat dan primary key induk bermigrasi ke daerah primary key dari
entitas anak atau tabel.
Non- Identifying Relationship

51

Diwakili oleh garis putus-putus dan primary key induk berpindah ke daerah non-key dari
entitas anak atau tabel.
Dalam Identifying Relationship, kunci asing bermigrasi di atas garis dan menjadi bagian
dari primary key dari entitas. Dalam Non- Identifying Relationship , kunci asing
bermigrasi di bawah garis dan menjadi atribut non-kunci dalam entitas anak. Sebuah
garis putus-putus merupakan hubungan non- Identifying.

4.3.3

Bentuk Normal
Tabel harus sesuai dengan aturan normalisasi, yaitu, bebas dari ketergantungan struktural atau
anomali yang disebabkan oleh modifikasi data dan ini disebut modifikasi.anomali. Modifikasi
Anomalies terdiri atas:

Deletion anomaly : Anomali yang terjadi karena proses penghapusan data

Insertion anomaly : Anomali yang terjadi karena proses penambahan data

Update anomaly : Anomali yang terjadi karena proses perubahan data.

Macam-Macam Bentuk Normal :

1NFsebuah tabel dengan kualifikasi sebagai relasi berada dalam bentuk 1NF.

2NFsebuah relasi ada dalam bentuk normal 2NF jika semua atribut non key
bergantung pada semua atribut primary keys.

52

3NF sebuah relasi dalam bentuk 3NF jika bentuknya 2NF dan tidak memiliki
determinant kecuali primary key.

Boyce-Codd Normal Form (BCNF) sebuah relasi dalam bentuk BCNFjika setiap
determinantnya adalah candidate key

4.4 PRAKTIKUM
4.4.1

Membuat Model
Untuk membuat model
[1] Klik New pada menu File.
Create Model - Pilih dialog Template Opens.
[2] Klik Logical / Physical dalam kotak Type Grup baru Model, dan pilih template dan database
target. Klik OK.
Sebuah model baru dibuat dan terbuka di tempat kerja.

4.4.2

Memberi Nama Model


Bila akan membuat model data baru, kita juga harus membuat nama, atau judul, untuk model.
Nama ini digunakan di seluruh fitur Desain Lapisan untuk mengidentifikasi model dengan nama.
Jika kita tidak mengubahnya, secara default "model_n" untuk semua model. Sebagai contoh,
model pertama diberi nama "model_1", model kedua bernama "model_2", dan sebagainya.
Untuk nama model
[1] Klik Model Properties pada menu Model.
Model Editor akan terbuka.
[2] Masukkan nama yang diinginkan pada tab General. kita juga dapat menambahkan nama
penulis di lapangan Author.
[3] Klik Close.
Informasi yang dimasukkan disimpan dan Editor Model menutup.

4.4.3

Menambahkan Entitas
Dalam model logis, kita dapat menambahkan entitas menggunakan toolbox Erwin.
Untuk menambahkan entitas
[1] Klik tool Entity dalam toolbox.
53

Kursor berubah dari panah untuk simbol entitas.


[2] Klik di manapun dalam Diagram Jendela untuk menempatkan entitas pertama. Secara
default, entitas ini bernama E / 1.
Ulangi langkah 1 dan 2 untuk menciptakan banyak entitas yang diperlukan, mereka diberi
nama E / 2, E / 3, dan seterusnya.
[3] Klik Save As pada menu File untuk menyimpan model Anda.
Save As dialog terbuka.
[4] Masukkan nama untuk model dan klik Save.
Model ini disimpan dengan ekstensi file erwin., Dan Save As menutup dialog
4.4.4

Edit Nama Entitas


Kita dapat mengedit nama entitas dengan mengetikkan langsung dalam Diagram Jendela.
Untuk mengedit nama entitas
[1] Dalam Diagram Window, klik pada entitas bernama E / 1. Tunggu sebentar, kemudian klik
lagi.
Sebuah kotak edit muncul di sekitar nama.
[2] Masukkan CUSTOMER pada nama entitas default dan klik sekali di luar kotak edit.
Entitas berganti nama

Catatan: Kita juga dapat mengedit nama entitas dalam Model Explorer ketika
memilih dan klik kanan nama entitas
4.4.5

Menambahkan Atribut
Kita dapat menambahkan atribut untuk entitas secara langsung dalam Diagram Window..
Untuk menambahkan atribut
[1] Dalam Diagram Window, klik kotak entitas dan tekan Tab.
Sebuah kotak edit terbuka di bawah nama entitas dengan nama default,
ATTRIBUTE_NAME.

54

[2] Masukkan nama atribut langsung di atas nama default dan klik di luar kotak edit.
Atribut ditambahkan.
Catatan: Untuk menambahkan primary key lain, sebelum mengklik luar kotak edit,
tekan Enter dan kotak edit terbuka di atas garis dalam entitas. Untuk menambahkan
non-key, tekan Tab dan kotak edit terbuka di bawah garis dalam entitas.
4.4.6

Membuat Relationship
Dalam latihan berikut, kita akan menambahkan dua hubungan:
Sebuah identifying relationship antara orangtua dan entitas anak
Non- identifying relationship antara entitas ORDER dan PRODUCT
Untuk menciptakan hubungan
[1] Klik tool Relationship identifying dalam toolbox Erwin.
Kursor berubah dari simbol panah untuk simbol identifying relationship.
[2] Klik entitas induk untuk mulai mengatur identifying relationship antara orangtua
dan anak entitas dalam Diagram Jendela.
[3] Klik entitas anak.
Sebuah garis hubungan disorot menghubungkan dua entitas.
Catatan: Garis hubungan sementara disorot untuk membuatnya lebih mudah untuk
melihat hubungan.

[4] Klik tool Non- identifying relationship di toolbox.


Kursor berubah dari simbol panah untuk simbol hubungan non-identifikasi.
[5] Klik entitas induk dan kemudian klik entitas anak untuk menambahkan Nonidentifying relationship antara mereka.

55

Setelah selesai, model akan terlihat seperti contoh berikut

4.4.7

Menyimpan Model
Untuk menyimpan perubahan yang dibuat untuk model, klik Save pada menu File. kita dapat
membuka file lagi nanti untuk mengedit

4.5 TUGAS
4.5.1

Pertanyaan
1) Dengan menggunakan Tools ER Win Buatlah Diagram ER seperti dibawah ini

56

2) Ubahlah tipe notasinya pada properties menjadi IDEF1X

57

3) Diberikan sebuah laporan sebagai berikut

Buatlah normalisasi dari data pada tabel diatas


4) Gambarkan normalisasi dengan menggunakan diagram ER

58

59

5 Data Modeling with the Entity-Relationship


Model -1
5.1 TUJUAN
1.1

Memahami pentingnya membuat model data

1.2

Mampu menentukan Entity, atribut, kardinalitas berdasarkan studi kasus yang diberikan

1.3

Mampu membuat diagram Entity Relationship dengan menggunakan ER Win

5.2 PERANGKAT LUNAK


ER Win

5.3 TEORI
5.3.1

Model ER
Entity-Relationship model adalah sekumpulan konsep dengan simbol berbentuk grafis yang
digunakan untuk membuat skema konseptual. Model ER terdiri atas :
-

Entity

Atribut

Relationship

Kardinalitas

5.3.1.1 Entity
Sesuatu yang bisa di identifikasi yang digunakan user untuk melakukan pencarian:
Entity classkumpulan entitas dengan jenis tertentu
Entity instanceentitas tertentu
5.3.1.2 Atribut
Attributes menggambarkan karakter dari sebuah entity Semua entity instances yang terdapat
pada entity class memiliki atribut yang sama, namun nilainya bervariasi dari setiap atribut
tersebut. Awalnya digambarkan dengan menggunakan ellipses. Beberapa produk memodelkan
data sekarang menggambarkannya dalam bentuk segiempat(rectangular form) .
60

5.3.1.3 Relationship
Sebuah entity berassosiasi dengan entity lainnya dengan relationships:

Relationship classes: assosiasi pada entity classes

Relationship instances: assosiasi pada entity instances

Awalnya model E-R, relationships bisa memiliki attributes, hal tersebut sudah tidak dilakukan
lagi.
5.3.1.4 Kardinalitas
Cardinality artinya count, yang tunjuk dengan angka.

Maximum cardinality jumlah maksimal dari entity instances yang dapat berpartisipasi
pada sebuah relationship.

Minimum cardinality jumlah minimal dari entity instances yang harus berpartisipasi
pada sebuah relationship

Ada 3 buah tipe maximum cardinality:

One-to-One [1:1]

One-to-Many [1:N]

Many-to-Many [N:M]

Minimums umumnya zero(nol) atau one (satu):

5.4 TUGAS
5.4.1

Pertanyaan
Sebuah organisasi membuat banyak model mobil, di mana model ditandai dengan nama dan
akhiran (seperti GL atau XL yang menunjukkan tingkat mewah) dan ukuran mesin.
Setiap model terdiri dari banyak bagian dan setiap bagian dapat digunakan dalam pembuatan
lebih dari satu model. Setiap bagian memiliki deskripsi dan kode id. Setiap model mobil
diproduksi di salah satu pabrik perusahaan, yang berlokasi di London, Birmingham, Bristol,
Wolverhampton dan Manchester - satu di setiap kota. Sebuah pabrik memproduksi banyak
model mobil dan berbagai jenis bagian meskipun setiap jenis bagian diproduksi di satu pabrik
saja.
61

Dengan menerapkan teori bentuk normal pada RDBMS, jawablah soal-soal berikut ini:
[1] Tentukan Entity apa saja yang terlibat
[2] Tentukan atribut-atribut apa saja yang terdapat pada setiap Entity tersebut
[3] Pada setiap Entity, tentukan atribut yang menjadi primary key dan foreign key
[4] Buat hubungan antara setiap entity yang telah di tentukan pada soal [1]
[5] Dari setiap hubungan yang terjadi tentukan kardinalitas dari setiap hubungan dan jenis
hubungannya
[6] Gambarkan hasil dengan menggunakan Tools pemodelan database.

6 Data Modeling with the Entity-Relationship


Model -2
6.1 TUJUAN
1.1

Memahami pentingnya membuat model data

1.2

Mampu menentukan Entity, atribut, kardinalitas berdasarkan Form atau Report

1.3

Mampu membuat diagram Entity Relationship Diagram dengan menggunakan ER Win

6.2 PERANGKAT LUNAK


ER Win

6.3 TEORI
Pada pertemuan sebelumnya kita mencoba melakukan analisa untuk menentukan komponen
diagram ER seperti entity, atribut relasi dan kardinalitas berdasarkan narasi. Pada pertemuan ini
kita akan mencoba mencari komponen diagram ER berdasarkan Form atau Report. Ada beberapa
pattern yang bisa digunakan untuk menentukan hubungan entity yaitu :
a. Strong Entity Relationship
i.

1:1: Strong Entity Relationship Pattern

ii.

1:N: Strong Entity Relationship Pattern


62

iii.

N:M: Strong Entity Relationship Pattern

b. ID-Dependent Relationship

6.3.1

i.

The Association Pattern

ii.

The Multivalued Attribute Pattern

iii.

Composite Multivalued Attributes

iv.

The Archetype/Instance Pattern

v.

The Line-Item Pattern

vi.

Other Mixed Patterns

vii.

The For-Use-By Pattern

Strong Entity Relationship


Suatu entitas dikatakan kuat (strong entity) pada satu hubungan (relationship) manakala setiap
entitas pada relasi tersebut tidak tergantung satu sama lain. Ada tiga jenis relasi untuk kategori
strong entity yaitu relasi satu ke satu (1:1), relasi satu ke banyak (1:N) dan relasi banyak ke
banyak (N:M).

6.3.1.1 1:1 Strong Entity Relationship Pattern


Perhatikan contoh form dan report di bawah ini.

Dari kedua jenis tampilan diatas kita dapat melakukan identifikasi bahwa ada dua buah entitas
yang terlibat, yaitu entitas MEMBER dan entitas LOCKER. Hubungan yang terjadi antara kedua
entitas tersebut adalah satu buah MEMBER hanya boleh memiliki satu buah LOCKER dan satu

63

buah LOCKER hanya boleh dimiliki oleh satu buah MEMBER dimana terlihat dalam report
bahwat tidak ada MEMBER yang memiliki LOCKER dengan nomor yang sama (1:1).

MEMBER dan LOCKER keberadaannya tidak tergantung satu sama lain. ini yang disebut STRONG
ENTITY
6.3.1.2 1:N Strong Entity Relationship Pattern
Perhatikan contoh tampilan form dibawah ini

Dari form diatas kita dapat identifikasi bahwa ada dua buah entitas yang terlibat, yaitu entitas
COMPANY dan entitas DEPARTMENTS. Hubungan yang terjadi antar kedua entitas tersebut
adalah satu buah COMPANY yaitu Ajax Manufacturing memiliki banyak DEPARTMENTS. Masing
masing entitas tidak saling tergantung satu sama lain.

64

6.3.1.3 N:M Strong Entity Relationship Pattern

Form dan report diatas menunjukkan data PART yang di Supply oleh beberapa SUPPLIER. Hasil
identifikasi menunjukkan bahwa ada dua buah entitas yang terlibat, yaitu PART dan SUPPLIER.
Supplier Forrest Supplies menyediakan beberapa PART yang bisa dikirim. Terlihat pada tampilan
form bahwa dia bisa mensupply 3 buah PART. Sedangkan satu buah PART ternyata bisa disupply
65

dari lebih dari satu perusahaan. Terlihat dalam PART Report bahwa Part Cedar Shakes disupply
oleh tiga buah perusahaan, yaitu Briston System, ERS System dan Forrest Suppliers. Hubungan
yang terjadi antara kedua entitas itu adalah bayak kebanyak dan tidak saling mempengaruhi
satu sama lain. Digambarkan sebagai berikut :

6.3.2

ID-Dependent Relationship
Id-Dependent relationship adalah hubungan yang terjadi antar dua entitas atau lebih dimana
keberadaan satu entitas dipengaruhi oleh entitas lainnya. Dibawah ini beberapa contoh pattern
dari ID-Dependent Relationship.

66

6.3.2.1 The Assosiation Pattern

67

6.3.2.2 The Multivalued Attributes Pattern

68

69

6.3.2.3 Composite Multivalued Attributes Pattern

70

6.4 PRAKTIKUM
Diberikan contoh form tampilan sebagai berikut :

Dari form kita dapat identifikasi bahwa entitas yang terlibat adalah PENJUAL, PEMBELI, BARANG
yang dibeli dan TRANSAKSI.
Satu buah penjual bisa menjual barang ke beberapa pembeli sedangkan seorang pembeli bisa saja
membeli barang di beberapa penjual. Hubungan yang terjadi antara penjual dan pembeli adalah
hubungan banyak ke banyak dan masing-masing entitas tidak saling mempengaruhi (N:M Strong
Entity).
Penjual bisa melakukan banyak transaksi penjualan sedangkan satu buah transaksi hanya bisa
dilakukan oleh satu orang penjual. Hubungan yang terjadi antara penjual dan Transaksi adalah satu
ke banyak dan masing-masing entitas tidak saling mempengaruhi (1:N Strong Entity).
Untuk setiap transaksi, barang yang dibeli bisa lebih dari satu sedangkan satu barang bisa
ditransaksikan lebih dari satu transaksi. Hubungan yang terjadi antara transaksi dan barang adalah
banyak ke banyak dan masing-masing entitas tidak saling mempengaruhi (N:M Strong Entity).
Berdasarkan hasil analisa diatas dapat digambarkan rancangan diagram ER :

71

6.5 TUGAS
6.5.1

Pertanyaan
Diberikan bentuk form sebagai berikut :

Form Pembukaan Tabungan :

Buatlah analisa dan rancangan diagram ER dari informasi Form diatas.

72

7 Transformasi Data Model ke Rancangan


Database
7.1 TUJUAN
1.1

Mahasiswa mampu membuat tabel untuk setiap entitas pada diagram ER dengan
menggunakan Tools Database

1.2

Mahasiswa mampu menentukan dan membuat relasi antara tabel dengan


menggunakan Tools Database

1.3

Mahasiswa mampu menentukan dan membuat kardinalitas relasl dengan


menggunakan Tools Database

1.4

Mampu melakukan transformasi dari rancangan diagram ER ke dalam Database

7.2 PERANGKAT LUNAK


ER Win dan SQLServer

7.3 DASAR TEORI


7.3.1

Pendahuluan
ERwin menyediakan fasilitas transformasi dari model data menjadi rancangan database. Fasilitas
yang digunakan adalah Forward Engineering . Pengertian Forward Engineering menurut ERwin

adalah transformasi dari model data logik ke model fisik dan terakhir ke dalam struktur
database. Untuk melakukan transformasi maka tipe model ERwin yang digunakan adalah
logical/Physical.

7.4 PRAKTIKUM
7.4.1

Membuat Model

7.4.1.1 Tipe Model


Buka program kemudian dari main menu pilih File -> New.... Pada model jendela pilih
Logical/Physical sebagai tipe model kemudian masukkan target database (Pilih SQL server)
kemudian klik OK.

73

SQL Server

7.4.2

Membuat Model Fisik


Bekerja dengan fitur pemodelan fisik untuk menciptakan model fisik yang berisi objek seperti
tabel, kolom, dan tipe data.

7.4.2.1 Domain
Sebuah domain adalah objek yang digunakan untuk memasukkan propertis dengan cepat pada
atribut atau kolom. Dengan menggunakan domain maka konsistensi tipe data akan terjaga.
Domain dapat digunakan untuk satu atau lebih tipe data.
Domain juga mengurangi waktu pengembangan dan maintenanve. Jika kita merubah domain
maka semua atribu atau kolom yang berasosiasi dengan domain tersebut akan berubah.
7.4.2.2 Relationship
Dalam model data, hubungan menunjukkan hubungan antara dua entitas atau tabel. Sebuah
hubungan direpresentasikan sebagai garis padat atau putus-putus yang menghubungkan dua
entitas atau dua tabel. Tergantung pada notasi yang dipilih, simbol-simbol di kedua ujung garis
dapat berubah.
74

Tipe Relasi

7.4.3

Memasukkan Tabel
Untuk memasukkan tabel sama dengan memasukkan Entitas pada logical design

7.4.3.1 Memasukkan Kolom


1. Klik column pada menu model
Dialog column tterbuka
2. Pilih tabel pada list tabel yang akan ditambahkan kolomnya. Kemudian klik button new
Dialog button new terbuka
3. Masukan field informasi sebagai berikut :

Attribut Name
Nama atribut yang berkorespondensi dengan nama kolom

75

Column Name
Nama Kolom

Physical Only
Kolom hanya muncul pada model fisik. Tidak ada korespodensi dengan atribut

4. Klik OK
7.4.4

Foward Engineering
Forward engineering adalah proses yang menghasilkan skema database fisik dari model data.
Gunakan fitur foward engineering untuk merancang dan membuat database tanpa menulis SQL
tunggal CREATE TABLE atau CREATE INDEX

Untuk melakukan foward engineering caranya adalah


1. Pilih physical design
2. Pilih tools pada main menu
3. Pilih foward engineering
4. Copy script atau simpan dalam format .sql
5. Jalannkan pada sql Server

76

7.5 TUGAS
7.5.1

Pertanyaan
1. Buat Rancangan fisik sebagai berikut

TB_COA

TB_JOURNAL

COA_ID: int IDENTITY

JOURNAL_ID: integer IDENTITY

COA_CODE: varchar(12) NOT NULL (AK1.1)


COA_DESCRIPTION: varchar(50) NULL

JOURNAL_CODE: varchar(12) NOT NULL (AK1.1)


JOURNAL_CREATOR: varchar(12) NOT NULL
JOURNAL_DATE: datetime NOT NULL
JOURNAL_RATE: real NOT NULL
JOURNAL_TYPE: integer NOT NULL
JOURNAL_TYPEDIRECTION: integer NOT NULL
CURRENCY_ID: integer NULL (FK)

TB_JOURNALITEM
JOURNALITEM_ID: integer IDENTITY
JOURNALITEM_DESCRIPTION: varchar(50) NOT NULL
JOURNALITEM_DIRECTION: integer NOT NULL
JOURNALITEM_VALUE: real NOT NULL
JOURNAL_ID: integer NULL (FK)
COA_ID: int NULL (FK)

TB_CURRENCY
CURRENCY_ID: integer IDENTITY
CURRENCY_CODE: varchar(4) NOT NULL (AK1.1)
CURRENCY_DESCRIPTION: varchar(50) NOT NULL

2. Lakukan foward enginering untuk rancangan fisik diatas


3. Jalankan Script pada SQL Server

77

8 SQL

for

Database

Construction

and

Application Processing -1
8.1 TUJUAN
1.1

Mahasiswa mengetahui perbedaan antara SQL DDL dan DML

1.2

Mahasiswa mampu menggunakan SQL DML dalam pengolahan database

1.3

Mahasiswa mengetahui fungsi dan kegunaan SQl Joint

1.4

Mahasiswa mampu membuat SQL Joint untuk menampilkan data lebih dari satu
tabel

8.2 PERANGKAT LUNAK


SQLServer

8.3 DASAR TEORI


8.3.1

Bahasa Query Terstruktur (SQL)


SQL (Structured

Query

Language)

mengakses data dalam basis

adalah

data relasional

sebuah bahasa yang


(Wikipedia

n.d.).

dipergunakan

Bahasa

ini

untuk

secara de

facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat
ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan
manajemen datanya.

8.3.2

Sejarah
Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama Jhonny Oracle yang
membahas tentang ide pembuatan basis data relasional pada bulan Juni 1970. Artikel ini juga
membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data
tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language).
Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional
berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan
SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data relasional dikenal
dengan System/R.

78

Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis
data populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran

John Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa
dalam manajemen basis data.
8.3.3

Standarisasi
Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL
oleh ANSI. Standar ini sering disebut denganSQL86.Standar tersebut kemudian diperbaiki pada
tahun 1989 kemudian diperbaiki lagi pada tahun 1992. Versi terakhir dikenal denganSQL92.
Pada tahun 1999 dikeluarkan standar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi
kebanyakan implementasi mereferensi pada SQL92.
Saat ini sebenarnya tidak ada server basis data yang 100% mendukung SQL92. Hal ini
disebabkan masing-masing server memiliki dialek masing-masing.

8.3.4

Perintah SQL
Secara umum SQL terbagi atas 2 Bahasa, yaitu :
a) Data Definition Language
b) Data Manipulation Language

8.3.4.1 Data Definition Language


DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek
yang diperlukan dalam basis data, misalnya tabel, view, user, dan sebagainya. Secara umum,
DDL yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan
objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek. DDL
biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data.
CREATE
CREATE digunakan untuk membuat basis data maupun objek-objek basis data. SQL yang umum
digunakan adalah:
CREATE DATABASE nama_basis_data
CREATE DATABASE membuat sebuah basis data baru.

79

CREATE TABLE nama_tabel


CREATE TABLE membuat tabel baru pada basis data yang sedang aktif. Secara umum, perintah
ini memiliki bentuk
CREATE TABLE [nama_tabel]
(
nama_field1 tipe_data [constraints][,
nama_field2 tipe_data,
...]
)
atau

CREATE TABLE [nama_tabel]


(
nama_field1 tipe_data [,
nama_field2 tipe_data,
...]
[CONSTRAINT nama_field constraints]
)

dengan:
nama_field adalah nama kolom (field) yang akan dibuat. Beberapa sistem manajemen basis data
mengizinkan penggunaan spasi dan karakter nonhuruf pada nama kolom.
tipe_data tergantung implementasi sistem manajemen basis data. Tipe data pada SQL Server
antara lain :

80

constraints adalah batasan-batasan yang diberikan untuk tiap kolom. Ini juga tergantung
implementasi sistem manajemen basis data, misalnya NOT NULL, UNIQUE, dan sebagainya. Ini
dapat digunakan untuk mendefinisikan kunci primer (primary key) dan kunci asing(foreign key).
Satu tabel boleh tidak memiliki kunci primer sama sekali, namun sangat disarankan
mendefinisikan paling tidak satu kolom sebagai kunci primer.

Contoh :

ALTER TABLE

ALTER TABLE merupakan perintah yang digunakan untuk merubah struktur . properti serta
constrains pada table yang telah dibuah sebelumnya .
Menambahkan dan menghapus Kolom
Perintah yang digunakan untuk menambakan kolom adalah sebagai berikut:
81

ALTER TABLE CUSTOMER ADD MyColumn Char(5) NULL;

Perintah diatas digunakan untuk kolom dengan nama MyColumn pada tabel CUSTOMER
Kita bisa menghapus kolom dengan perintah
ALTER TABLE CUSTOMER DROP COLUMN MyColumn;

Menambahkan dan menghapus Constraint


ALTER TABLE bisa digunakan untuk menambahkan Constraint:
ALTER TABLE ASSIGNMENT
ADD CONSTRAINT EmployeeFK
FOREIGN KEY (EmployeeNumber)
REFERENCES EMPLOYEE (EmployeeNumber)
ON UPDATE CASCADE
ON DELETE NO ACTION;

Contoh diatas adalah perintah untuk merubah tabel dengan nama Assigmnet. Perubahan yang
terjadi adalah penambahan constraint dengan nama EmployeeFK sebagai Foreign Key yang
mengarah pada tabel Employee. Fied yang digunakan sebagai foreign key adalah
EmployeeNumber.
ALTER TABLE bisa digunakan untuk menghapus constraint:
ALTER TABLE CUSTOMER
DROP CONSTRAINT MyConstraint;

Perintah diatas digunakan untuk menghapus constraint dengan nama MyConstraint pada tabel
Customer.
DROP TABLE

Perintah ini digunakan untuk menghapus tabel dari database.


Contoh :

82

DROP TABLE TRANS;

Perintah diatas digunakan untuk menghapus tabel dengan nama Trans. DROP bisa juga
digunakan untuk menghapus constraint seperti perintah dibawah ini.
ALTER TABLE CUSTOMER_ARTIST_INT
DROP CONSTRAINT

Customer_Artist_Int_CustomerFK;

ALTER TABLE TRANS


DROP CONSTRAINT

TransactionCustomerFK;

DROP TABLE CUSTOMER;

8.3.4.2 Data Manipulation Language


DML digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yang umum
dilakukan adalah:

SELECT untuk menampilkan data

INSERT untuk menambahkan data baru

UPDATE untuk mengubah data yang sudah ada

DELETE untuk menghapus data

SELECT
SELECT adalah perintah yang paling sering digunakan pada SQL, sehingga kadang-kadang

istilah query dirujukkan pada perintah SELECT. SELECT digunakan untuk menampilkan data
dari satu atau lebih tabel, biasanya dalam sebuah basis data yang sama. Secara umum,
perintah SELECT memiliki bentuk lengkap:
SELECT [nama_tabel|alias.]nama_field1 [AS alias1] [, nama_field2, ...]
FROM

nama_tabel1

[AS

alias1]

[INNER|LEFT|RIGHT

JOIN

tabel2

ON

kondisi_penghubung]
[, nama_tabel3 [AS alias3], ...]
[WHERE kondisi]
[ORDER BY nama_field1 [ASC|DESC][, nama_field2 [ASC|DESC], ...]]

83

[GROUP BY nama_field1[, nama_field2, ...]]


[HAVING kondisi_aggregat]

dengan:
kondisi adalah syarat yang harus dipenuhi suatu data agar ditampilkan.
kondisi_aggregat adalah syarat khusus untuk fungsi aggregat.
Kondisi dapat dihubungkan dengan operator logika, misalnya AND, OR, dan sebagainya.
Fungsi aggregat
Beberapa SMBD memiliki fungsi aggregat, yaitu fungsi-fungsi khusus yang melibatkan
sekelompok data (aggregat). Secara umum fungsi aggregat adalah:

SUM untuk menghitung total nominal data

COUNT untuk menghitung jumlah kemunculan data

AVG untuk menghitung rata-rata sekelompok data

MAX dan MIN untuk mendapatkan nilai maksimum/minimum dari sekelompok data.

Fungsi aggregat digunakan pada bagian SELECT. Syarat untuk fungsi aggregat diletakkan pada
bagian HAVING, bukan WHERE.
Subquery
Ada kalanya query dapat menjadi kompleks, terutama jika melibatkan lebih dari satu tabel
dan/atau fungsi aggregat. Beberapa SMBD mengizinkan penggunaan subquery. Contoh:
Tampilkan username pengguna yang memiliki jumlah transaksi terbesar.
SELECT username
FROM user
WHERE jml_transaksi =
(
SELECT MAX(jml_transaksi)

84

FROM user
)
INSERT

Untuk menyimpan data dalam tabel dipergunakan sintaks:


INSERT INTO [NAMA_TABLE] ([DAFTAR_FIELD]) VALUES ([DAFTAR_NILAI])
Contoh:
INSERT INTO TEST (NAMA, ALAMAT, PASSWORD) VALUES ('test', 'alamat', 'pass');
UPDATE

Untuk mengubah data menggunakan sintax:


UPDATE [NAMA_TABLE] SET [NAMA_KOLOM]=[NILAI] WHERE [KONDISI]
Contoh:
UPDATE Msuser set password="123456" where username="abc"
DELETE

Untuk menghapus data dipergunakan sintaks:


DELETE FROM [nama_table] Where [KONDISI]
Contoh:
DELETE FROM TEST WHERE NAMA='test';
8.3.5

Joint
Joint biasa digunakan pada perintah SELECT untuk menggabungkan 2 buah tabel atau lebih.
Contoh perintah Joint :
SELECT
FROM

CUSTOMER.Name, ARTIST.Name

CUSTOMER JOIN CUSTOMER_ARTIST_INT


ON

CUSTOMER.CustomerID = CUSTOMER_ARTIST_INT.CustomerID

85

JOIN

ARTIST

ON CUSTOMER_ARTIST_INT. ArtistID =

ARTIST. ArtistID;

Contoh diatas adalah penggunaan joint dengan menggabungkan 3 buah tabel. Yang pertama
dilakukan adalah menggabungkan 2 buah tabel terlebih dahulu yaitu tabel CUSTOMER dan tabel
CUSTOMER_ARTIST_INT berdasarkan field CustomerID yang dimiliki kedua tabel kemudian

di joint antara tabel CUSTOMER_ARTIST_INT dengan tabel ARTIST berdasarkan ArtistID


yang dimiliki oleh tabel CUSTOMER_ARTIST_INT dan ARTIST

8.4 PRAKTIKUM
Diberikan rancangan database seperti dibawah ini :

TB_CUSTOMER
CUSTOMER_ID: int IDENTITY(1,1)
CUSTOMER_CODE: varchar(30) NOT NULL
CUSTOMER_NAME: varchar(50) NOT NULL
CUSTOMER_CREATEDATE: datetime NOT NULL
CUSTOMER_POB: varchar(50) NULL
CUSTOMER_DOB: datetime NULL

TB_PHONE
PHONE_ID: int IDENTITY(1,1)
PHONE_HOMECODE: varchar(30) NULL
PHONE_HOMENR: varchar(50) NULL
PHONE_OFFICENR: varchar(50) NULL
PHONE_OFFICECODE: varchar(30) NULL
PHONE_CELL: varchar(50) NULL
CUSTOMER_ID: int NOT NULL (FK)

TB_ADDRESS
ADDRESS_ID: int IDENTITY(1,1)
ADDRESS_STREET: varchar(100) NOT NULL
ADDRESS_REGION: varchar(50) NULL
ADDRESS_DISTRICT: varchar(50) NULL
ADDRESS_CITY: varchar(50) NOT NULL
ADDRESS_PROVINCE: varchar(50) NOT NULL
CUSTOMER_ID: int NOT NULL (FK)

8.4.1

Membuat Database dengan nama Transaksi

[1] Klik NEW Query

86

Gambar 2. 11 Editor Query

[2] Ketikan Script SQL pada Editor untuk membuat database dengan nama Customer
Create database Customer;

[3] Klik Tombol Execute

Klik kanan
Refresh
8.4.2

Membuat Tabel dengan sintaks SQL


[1] Dengan menggunakan editor SQL Query, Ketikkan sintaks untuk membuat tabel
TB_CUSTOMER
CREATE TABLE TB_CUSTOMER (
CUSTOMER_ID INT IDENTITY (1,1) NOT NULL ,
CUSTOMER_CODE VARCHAR (30) NOT NULL,
CUSTOMER_NAME VARCHAR (50) NOT NULL,
CUSTOMER_CREATEDATE DATETIME NOT NULL,
CUSTOMER_POB VARCHAR (50) NOT NULL,
CUSTOMER_DOB DATETIME NOT NULL,
CONSTRAINT CUSTOMER_PK PRIMARY KEY
(CUSTOMER_ID));

87

[2] Blok Sintaks Create

[3] Klik Tombol Execute


[4] Pada basian Explorer klik kanan - refresh

8.4.3

Memasukkan Data pada Tabel


[1] Masih menggunakan editor SQL Query, buat sintaks SQL untuk memasukkan data ke
tabel TB_CUSTOMER dengan menggunakan perintah SQL DDL INSERT
INSERT INTO TB_CUSTOMER (CUSTOMER_CODE, CUSTOMER_NAME,
CUSTOMER_CREATEDATE,
CUSTOMER_POB, CUSTOMER_DOB)
VALUES ('NK001','ANITA','04/12/2007', 'BANDUNG','08/15/1967');

[2] Blok sintaks Insert

[3] Klik Tombol Execute


[4] Klik kanan Refresh pada Objek Explorer sehingga kita bisa melihat tabel yang dibuat
sudah terbentuk.
[5] Untuk melihat data yang dimasukkan, pilih tabel TB_CUSTOMER kemudian pilih menu
untuk menampilkan row pada tabel

88

8.4.4

Merubah data pada tabel


Kita akan merubah data yang sebelumnya dimasukkan dimana nilai CUSTOMER_POB yang
awalnya adalah BANDUNG berubah menjadi JAKARTA berdasarkan kodenya yaitu NK001
[1] Dengan menggunakan editor SQL Query, buat sintaks SQL untuk Merubah data ke tabel
TB_CUSTOMER dengan menggunakan perintah SQL DDL UPDATE.
UPDATE TB_CUSTOMER
SET CUSTOMER_POB='JAKARTA'
WHERE CUSTOMER_CODE='NK001'

[2] Blok sintaks update


[3] Klik Tombol Execute
[4] Refresh tabel TB_CUSTOMER
[5] Untuk melihat data yang diubah, pilih tabel TB_CUSTOMER kemudian pilih menu untuk
menampilkan row pada tabel

89

8.5 Tugas
8.5.1

Pertanyaan

[1] Lengkapi Tabel-tabel sesuai dengan rancangan database di atas (TB_CUSTOMER, TB_ADDRESS,
TB_PHONE). Jangan lupa masukkan juga constraint (Primarykey, ForeignKey, NULL/NOTNULL,
Check, Uniq) jika diperlukan
[2] buatlah SQL DML untuk Memasukkan Data untuk setiap tabel sebagai berikut:
TB_CUSTOMER
CUSTOMER

CUSTOMER

CUSTOMER

ID

CODE

NAME

CUSTOMER
CREATEDATE

CUSTOMER
CUSTOMER POB

DOB

NK001

ANITA

12/04/2007

BANDUNG

15/08/1967

NR002

BURHAN

12/04/2007

SUKABUMI

12/04/1968

PO008

RAHARDIAN

17/04/2007

MALANG

17/12/1977

RR032

RITA

17/04/2007

BLITAR

14/04/1985

AA056

YULI

17/04/2007

UJUNG PANDANG

9/07/1970

b. TB_ADDRESS

(bobot: 10)

ADDRESS

ADDRESS

ADDRESS

ADDRESS

ADDRESS

ID

STREET

REGION

DISTRICT

CITY

JL. KEMAKMURAN 1
1

NO 38

MEKARJAYA

NO 15

DEPOK

BARAT

BEJI

DEPOK

BARAT

JAKARTA

DKI

TIMUR

JAKARTA

PALMERIAM

GG.
4

KELINCI

RT.002/RW 0.16

BANGKA

KOMP.

CIPUTAT

MUTIARA

BLOK A NO.3

JAWA
ABADIJAYA

NO 7

ID

SUKMAJAYA

JL KESELAMATAN 5
3

CUSTOMER

PROVINCE
JAWA

JL KEBAHAGIAAN 3
2

ADDRESS

BARAT

MATRAMAN

MAMPANG

JAKARTA

DKI

PRAPATAN

SELATAN

JAKARTA

CIPUTAT

TANGERANG

BANTEN

90

TB_PHONE(bobot:

5)

PHONE

PHONE

PHONE

PHONE

PHONE

ID

HOMECODE

HOMENR

OFFICECODE

OFFICENR

021

876589

NULL

021

123678

021

4
5

CUSTOMER
PHONE CELL

ID

NULL

0818900678

021

398707

0812345799

970002

021

232467

0888823409

021

980007

NULL

NULL

0815897689

021

990006

NULL

NULL

0217078666

[3] Ubah data dengan CUSTOMER_CODE AA056 dimana CUSTOMER_NAME menjadi PARMAN
[4] Hapus customer dengan CUSTOMER_CODE AA056. Apakah bisa dihapus? Jelaskan!

91

9 SQL

for

Database

Construction

and

Application Processing -2
9.1 TUJUAN
1.1

Mahasiswa memahami Kegunaan SQL View

1.2

Mahasiswa mampu View pada database SQl Server

1.3

Mahasiswa memahami penggunaan Trigger dan Store Procedure

1.4

Mahasiswa mampu membuat Trigger pada database

9.2 PERANGKAT LUNAK


SQLServer

9.3 DASAR TEORI


9.3.1

SQL View
View adalah tabel virtual yang yang terdiri atas kolom-kolom berasal dari satu atau lebih dari
tabel. Data yang tampil pada view berasal dari data pada tabel. View dianggap sebagai objek
yang tersimpan dalam database. Perintah SELECT digunakan untuk mendefinisikan sebuah
VIEW.

9.3.1.1 Tujuan Pembuatan View


Ada beberapa tujuan view dibuat dalam SQL Server, antara lain :

Menyembunyikan Kolom atau baris

Menampilkan hasil perhitungan komputasi

Menyembunyikan sintaks SQL yang Kompleks

Layer yang dibangun dalam sebuah fungsi

Merupakan fungsi bawaan dari databasenya

Menyediakan level isolasi antara data pada tabel dengan tampilan pada user

Dapat memberikan akses permisi dari view yang berbeda pada tabel yang sama

Dapat memasukkan trigger dari view yang berbeda dari tabel yang sama

92

9.3.1.2 Sintkas Umum View pada SQL SERVER


Sintaks umum pembuatan VIEW adalah
CREATE VIEW [nama view]
AS perintah select

Contoh penggunaan :
CREATE VIEW CustomerNameView AS
SELECT LastName AS
CustomerLastName,
FirstName AS
CustomerFirstName,
FROM

CUSTOMER;

Untuk memodifikasi view digunakan sintaks ALTER VIEW seperti contoh dibawah ini :
ALTER VIEW vwCustomer
AS
SELECT CustomerId, Company Name, Phone, Fax
FROM Customers

9.3.2

Embbeded SQL With Program Code

9.3.2.1 Trigger
Trigger adalah blok program transact-SQL yang diassosiasikan dengan tabel dan disimpan dalam
database. Trigger dieksekusi bila terjadi suatu database "event". Database event adalah insert,
update dan delete.
Trigger akan beraksi bila terjadi misalnya :

Sebuah baris baru (record) dimasukkan ketabel

peremajaan record penghapusan record

Karena itu sebuah trigger terdiri atas :

93

uraian, kapan trigger dilepaskan (fired)

tabel yang diassosiasikan dengan trigger tersebut

program transact-sql yang dijalankan oleh trigger tersebut

Manfaat Trigger

Meluruskan aturan-aturan yang harus berlaku

Menjaga nilai sebelum dimasukkan ke dalam database

Deklarasi Trigger
Menurut MSDN, syntac dari trigger adalah sebagai berikut
CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
{ comparison_operator } column_bitmask [ ...n ]
}]
sql_statement [ ...n ]
}
}

Untuk lebih memahami dapat dilihat contoh sebagai berikut :

9.4 PRAKTIKUM
9.4.1

Pembuatan View pada SQl Server


Untuk membuat view pada SQL Server ada 2 cara, yaitu :

Menggunakan SQL Management Studion


94

Menggunakan Sintaks SQL

9.4.1.1 Membuat View menggunakan SQL Management Studio


1. Pillih database yang akan dibuat view
2. Pilih bagian View kemudian klik kanan New View

Gambar 8. 1 Membuat View

3.

Pilih tabel yang akan di ambil kolomnya untuk di tampilkan.

4. Klik Add kemudian Close


5. Pilih kolom pada tiap tabel yang akan di tampilkan
6. Kemudian jalankan Execute (tanda ser berwarna merah)

95

Gambar 8. 2 View dengan Management Studio

Dengan menggunakan management studio, pembuatan view langsung mengenerate sintaks


SQL.
9.4.1.2 Membuat View menggunakan SQL Sintaks
Untuk membuat View dengan menggunakan SQL Sintaks dapat dilakukan dengan menggunakan
New Query seperti biasa kemudian tuliskan sql sintaksnya seperti di bawah ini.
create view test2
as
select distinct(sku_data.SKU),Department
from INVENTORY, SKU_DATA
where INVENTORY.SKU=SKU_data.SKU
group by sku_data.SKU, Department

maka pada bagian view akan terdapat sebuah view dengan nama test2.
9.4.2

Membuat Trigger
Misalkan ada 2 tabel, tabel barang dan tabel pembelian, untuk lebih jelasnya bisa dilihat pada
gambar dibawah ini. dalam tabel barang tersebut ada nama barang dan jumlah stock , IDE nya
adalah ketika tabel pembelian ditambahkan, jumlah stock barang akan terupdate secara
otomatis.misalnya ketika barang A dibeli sejumlah 3 buah maka nanti stock barang akan
bertambah 3 secara otomatis. proses tersebut bisa dilakukan dgn trigger

96

Membuat 2 tabel tersebut di SQL server, script sebagai berikut :

create table BARANG


(
BAR_ID int not null,
BAR_NAMA varchar(255) not null,
BAR_STOCK int null
default 0,
constraint PK_BARANG primary key (BAR_ID)
)
go
create table PEMBELIAN
(
PEM_ID int not null,
BAR_ID int null ,
PEM_JUMLAH int null ,
constraint PK_PEMBELIAN primary key (PEM_ID)
)
go

97

create index RELATION_FK on PEMBELIAN (BAR_ID)


go
alter table PEMBELIAN
add constraint FK_PEMBELIA_RELATION_BARANG foreign key (BAR_ID)
references BARANG (BAR_ID)
go
INSERT INTO BARANG (BAR_ID,BAR_NAMA) VALUES (1,AQUA);
INSERT INTO BARANG (BAR_ID,BAR_NAMA) VALUES (2,TOTAL);
INSERT INTO BARANG (BAR_ID,BAR_NAMA) VALUES (3,AQUADES);

setelah menjalankan script tersebut, maka kita akan mempunyai 2 tabel, yaitu tabel barang
dengan isi 3 buah data, dan tabel pembelian dengan data masih kosong.3 data di tabel barang
tersebut secara defaut stocknya adalah 0
kemudian saatnya kita buat trigger sehingga ketika kita menambahkan data di tabel pembelian
dengan jumlah pembelian barang tertentu, maka stock di tabel barang akan bertambah sesuai
dengan barang yg dibeli, syntax trigger tersebut adalah sebagai berikut
create trigger tambahStockbarang on pembelian
for insert
as
update b set b.bar_stock = b.bar_stock + i.pem_jumlah
from barang b join inserted i on b.bar_id = i.bar_id

arti dari kode tersebut adalah sebagai berikut :

create trigger tambahStockbarang on pembelian

membuat trigger dengan nama tambahStockBarang dimana trigger tersebut akan terpicu jika
ada perubahan di tabel pembelian

98

for insert
as
perubahan tersebut adalah penambahan(insert) di tabel pembelian , selain penambahan bisa
juga diisi dengan perubahan(update) atau penghapusan(delete)

for disini juga bisa rubah isinya jadi after atau instead of . perbedaanya adalah waktu trigger
dikerjakan, biasaya yg sering digunakan adalah for
update b set b.bar_stock = b.bar_stock + i.pem_jumlah
from barang b join inserted i on b.bar_id = i.bar_id

ini adalah kode yg dikerjakan ketika kejadian trigger terpicu, kode diatas bertujuan merubah
nilai bar_stock pada tabel barang dengan menambahkan nilai bar_stock yg sekarang dengan
jumlah barang yg dibeli (pem_jumlah). perhatikan disini ada tabel yang bernama inserted, tabel
tersebut merupakan tabel logika yg digunakan untuk menyimpan data yang memicu terjadinya
trigger, dalam hal ini nilai data yg dimasukkan(insert) kedalam tabel pembelian, selain inserted,
tabel logika lainnya adalah deleted, tabel logika ini digunakan untuk trigger yg terpicu dengan
kejadian delete
kita coba masukkan kode berikut
INSERT

INTO

PEMBELIAN

(PEM_ID,

BAR_ID,

PEM_JUMLAH)

VALUES

(1,1,4);

INSERT

INTO

PEMBELIAN

(PEM_ID,

BAR_ID,

PEM_JUMLAH)

VALUES

(2,3,2);

INSERT INTO PEMBELIAN (PEM_ID, BAR_ID, PEM_JUMLAH) VALUES (3,1,1);

Cek perubahan pada tabel stock. !!!!

supaya ketika data di tabel pembelian terhapus, otomatis data jumlah stock barang dari barang
yang terhapus di tabel pembelian tadi berkurang. kode triggernya seperti ini
create trigger kurangiStockbarang on pembelian
for delete
as
99

update b set b.bar_stock = b.bar_stock - d.pem_jumlah


from barang b join deleted d on b.bar_id = d.bar_id
sebenarnya hampir sama dengan kode trigger ketika penambahan barang baru, yang berubah
adalah pada bagian for delete baris kedua dan deleted pada baris terakhir
perbedaan paling mencolok adalah untuk menangkap nilai dari tabel yang dihapus kita
mengunakan tabel virtual yang bernama deleted
Di dalam trigger secara implicit dapat diakses "koleksi" record yang dimasukkan ("inserted"),
maupun kumpulan record yang dihapus ("deleted"). Record tersebut masuk ke dalam tab el
virtual yang bernama "inserted" dan "deleted". Pada kasus "INSERT" hanya ada tabel virtual
"inserted", sedangkan pada "DELETE" hanya terdapat tabel virtual "deleted". Untuk
"UPDATE" muncul 2 buah tabel virtual, record yang lama masuk ke tabel "deleted", sedangkan
record yang baru masuk ke tabel virtual "inserted"

9.5 Tugas
9.5.1

Pertanyaan
Berdasarkan Database design dibawah ini:

TB_CUSTOMER
CUSTOMER_ID: int IDENTITY(1,1)
CUSTOMER_CODE: varchar(30) NOT NULL
CUSTOMER_NAME: varchar(50) NOT NULL
CUSTOMER_CREATEDATE: datetime NOT NULL
CUSTOMER_POB: varchar(50) NULL
CUSTOMER_DOB: datetime NULL

TB_PHONE
PHONE_ID: int IDENTITY(1,1)
PHONE_HOMECODE: varchar(30) NULL
PHONE_HOMENR: varchar(50) NULL
PHONE_OFFICENR: varchar(50) NULL
PHONE_OFFICECODE: varchar(30) NULL
PHONE_CELL: varchar(50) NULL
CUSTOMER_ID: int NOT NULL (FK)

TB_ADDRESS
ADDRESS_ID: int IDENTITY(1,1)
ADDRESS_STREET: varchar(100) NOT NULL
ADDRESS_REGION: varchar(50) NULL
ADDRESS_DISTRICT: varchar(50) NULL
ADDRESS_CITY: varchar(50) NOT NULL
ADDRESS_PROVINCE: varchar(50) NOT NULL
CUSTOMER_ID: int NOT NULL (FK)

100

A: berdasarkan tabel dan data yang sudah dibuat pada modul 8, Buat view berikut dengan
menggunakan fasilitas SQL Query
a) VIEW VW_CUSTOMER_INFO yang menampilkan data CUSTOMER(CUSTOMER_CODE,
CUSTOMER_NAME, ADDRESS_STREET, ADDRESS_CITY, ADDRESS_PROVINCE,
PHONE_HOMECODE, PHONE_HOMENR, PHONE_CELL )
b) VIEW VW_LIST_CUSTOMER_JAKARTA untuk menampilkan CUSTOMER yang lahir dan masih
tinggal di JAKARTA (CUSTOMER_CODE, CUSTOMER_NAME, CUSTOMER_POB,
CUSTOMER_DOB,ADDRESS_STREET, ADDRESS_CITY)
c) VIEW VW_DAFTAR_CUSTOMER_PHONE untuk menampilkan CUSTOMER berserta no telpnya
(CUSTOMER_CODE, CUSTOMER_NAME, PHONE_HOME (PHONE_HOMECODE+PHONE_HOMENR),
PHONEOFFICE(PHONE_OFFICECODE+PHONEOFFICENR), PHONE_CELL
d) VIEW VW_LIST_THIS_MONTH (CUSTOMER_CODE, CUSTOMER_NAME,
CUSTOMER_CREATEDATE) untuk menampilkan CUSTOMER yang mendaftar pada bulan yang
sama dengan bulan sekarang

B: Buatlah Triger dengan ketentuan :


a) Buat

tabel

dengan

nama

TB_CUSTOMERCOUNT(CUSTOMER_TOTAL)

dimana

field

CUSTOMER_TOTAL. SET nilai CUSTOMER_TOTAL dengan banyaknya data pada tabel


TB_CUSTOMER. Buatlah trigger dengan naman TRIGGER_INSERT_CUSTOMERTOTAL untuk
menjalankan perintah dimana CUSTOMER_TOTAL akan bertambah jika terjadi penambahan
data pada tabel CUSTOMER sertakan juga message total CUSTOMER SEKARANG jika terjadi
penambahan.
b) Buat juga TRIGGER untuk hal sebaliknya TRIGGER_DELETE_CUSTOMERTOTAL. Jika terjadi
penghapusan, maka jumlah CUSTOMER_TOTAL akan berkurang.
c) Cek keberlangsungan trigger apakah sudah jalan atau belum dengan menghapus salah satu
record pada customer. Ingat...., jika ingin menghapus maka record tabel lain yang
bergantung kepada customer tersebut harus dihapus terlebih dahulu.

101

10 SQL

for

Database

Construction

and

Application Processing -2
10.1 TUJUAN
1.1

Mahasiswa memahami Kegunaan Trigger dan Store Procedure

1.2

Mahasiswa mampu membedakan penggunaan Trigger dan Store Procedure pada


database

1.3

Mahasiswa mampu memasukkan kode program Trigger dan Store Procedure pada
database

10.2 PERANGKAT LUNAK


SQLServer

10.3 DASAR TEORI


10.3.1 Trigger Lanjut
Beberapa kegunaan trigger antara lain adalah sebagai berikut :
1. Penggunaan Trigger untuk mendefinisikan nilai default.
2. Penggunaan Triger untuk membatasi data yang boleh masuk masuk (enforcing data
constraint)
3. Penggunaan Triger untuk Update View
4. Penggunaan Triger untuk membatasi operasi data yang saling berkaitan (enforcing required
child constrainst)
10.3.2 SQL Store Procedure (SP)
Store procedure adalah program yang tesimpan dalam database dan d compiled pada saat
digunakan. Pada database oracle SP di tulis dengan bahasa PL/SQL atau java. Pada SQL Server,
SP ditulis dengan T-SQL (Trasact-SQL) atau dengan .NET CLR (Common Language Runtime ).
Code yang ditulis pada SP dipanggil oleh user atau database administrator. SP dimasukkan ke
dalam database namun tidak ke tabel atau view. Penggunaannya berbeda dengan trigger.

102

10.4 PRAKTIKUM
10.4.1 Trigger (Lanjut)
Untuk lebih jelas mengenai penggunaan trigger maka lakukan praktikum sebagai berikut :
1. Buat sebuah database dengan nama modul10_xxxxxxxxx dimana xxxxxx adalah npm masingmasing.
2. Copy script pembentukan tabel yang ada dibawah ini pada editor SQL
a. Script Pembentukan tabel
i. Tabel TB_ARTICLE
Tabel ini digunakan untuk menampung data barang.
Create Table TB_ARTICLE(
ARTICLE_ID int Not Null Identity (1,1),
ARTICLE_CODE varchar(30) NOT NULL,
ARTICLE_NAME varchar(50) NOT NULL,
ARTICLE_DESCRIPTION VARCHAR(100) NULL,
ARTICLE_DATE DATETIME NULL,
CONSTRAINT ARTICLE_ID Primary Key (ARTICLE_ID)
);
ii. TB_WAREHOUSE

Tabel ini digunakan untuk menampung data persediaan barang


Create Table TB_WAREHOUSE(
WAREHOUSE_ID int Not Null Identity (1,1),
WAREHOUSE_AMOUNT INT NOT NULL,
ARTICLE_ID INT NOT NULL,
CONSTRAINT WAREHOUSEPK Primary Key (WAREHOUSE_ID),
CONSTRAINT WAREHOUSEFK1 Foreign Key (ARTICLE_ID)
REFERENCES
TB_ARTICLE(ARTICLE_ID) On Update CASCADE On Delete NO
ACTION
);
iii. TB_ORDER

Tabel ini untuk mencatat setiap ada pembelian barang.


Create Table TB_ORDER(
ORDER_ID int Not Null Identity (1,1),
ORDER_DATE DATE NOT NULL,
ORDER_AMOUNT INT,
ARTICLE_ID INT NOT NULL,

103

CONSTRAINT ORDEREPK Primary Key (ORDER_ID),


CONSTRAINT ORDERFK1 Foreign Key (ARTICLE_ID) REFERENCES
TB_ARTICLE(ARTICLE_ID)
);

3. jalankan script maka akan terbentuk tabel seperti berikut ini.

4. Script Memasukkan data ke tabel


Lakukan inisialisasi data awal pada tabel TB_ARTICLE dan tabel TB_WAREHOUSE sebagai
berikut :
i. Tabel TB_ARTICLE
INSERT INTO TB_ARTICLE (ARTICLE_CODE, ARTICLE_NAME,
ARTICLE_DESCRIPTION, ARTICLE_DATE)
VALUES('PLKT01MARG','PIL KITA TABLET', 'PENAMBAH
STAMINA', '04/12/2011');
INSERT INTO TB_ARTICLE (ARTICLE_CODE, ARTICLE_NAME,
ARTICLE_DESCRIPTION, ARTICLE_DATE)
VALUES('AMXN03SNBE','AMOXSAN 250 MG KAPSUL',
'ANTIBIOTIK', '04/17/2011');
INSERT INTO TB_ARTICLE (ARTICLE_CODE, ARTICLE_NAME,
ARTICLE_DESCRIPTION, ARTICLE_DATE)
VALUES('AMOX02INDF','AMOXILIN (G) DRY SYRUP INDOFARMA',
'ANTIBIOTIK GENERIK', '04/18/2011');
INSERT INTO TB_ARTICLE (ARTICLE_CODE, ARTICLE_NAME,
ARTICLE_DESCRIPTION, ARTICLE_DATE)
VALUES('AMOX03INDF','AMOXILIN (G) 250 MG INDOFARMA',
'ANTIBIOTIK GENERIK', '04/18/2011');

104

ii. Tabel TB_WAREHOUSE


INSERT INTO TB_WAREHOUSE (WAREHOUSE_AMOUNT, ARTICLE_ID)
VALUES(10,1);
INSERT INTO TB_WAREHOUSE (WAREHOUSE_AMOUNT, ARTICLE_ID)
VALUES(120,2);
INSERT INTO TB_WAREHOUSE (WAREHOUSE_AMOUNT, ARTICLE_ID)
VALUES(240,3);

10.4.1.1 Penggunaan Triger untuk mendefinisikan nilai default


Fungsi trigger dibawah untuk mendefinisikan nilai suatu barang. Misalkan kita akan melakukan
pembelian barang dengan menginput data pada tabel order. Aturannya. Setiap pembelian
barang atau setiap dilakukan insert data ke tabel order maka tabel warehouse akan berubah
secara otomatis.
Jika barang belum terdaftar pada tabel warehouse yang ditandai dengan tidak adanya
ARTICLE_ID pada tabel warehouse maka lakukan insert data baru dengan ARTICLE_ID sesuai
dengan ARTICLE_ID data order dan jumlahnya sama dengan jumlah yang di order.
Jika data sudah tersedia maka lakukan penambahan jumlah persediaan yang ditandai dengan
WAREHOUSE_AMOUNT=WAREHOUSE_AMOUNT_ORDER_AMOUNT

105

106

Jalankan trigger diatas dengan memasukkan data pada tabel TB_ORDER sebagai berikut.
Lihat perubahan yang terjadi.
INSERT INTO TB_ORDER (ORDER_DATE,ORDER_AMOUNT, ARTICLE_ID)
VALUES (GETDATE(), 25,3)
INSERT INTO TB_ORDER (ORDER_DATE,ORDER_AMOUNT, ARTICLE_ID)
VALUES (GETDATE(), 100,4)

10.4.1.2 Penggunaan Triger untuk membatasi data yang boleh masuk (enforcing data
constraint)
Misalkan kita tambahkan lagi satu buah tabel untuk yaitu TB_TRANSACTION yang mencatat
barang keluar. Jika ada sebuah transaksi barang keluar maka akan mengurangi jumlah
persediaan pada tabel TB_WAREHOUSE.
Pembentukan tabel TB_TRANSACTION
Create Table TB_TRANSACTION(
TRANSACTION_ID int Not Null Identity (1,1),
TRANSACTION_DATE DATE NOT NULL,
TRANSACTION_AMOUNT INT,
ARTICLE_ID INT NOT NULL,
CONSTRAINT TRANSACTIONPK Primary Key (TRANSACTION_ID),
CONSTRAINT TRANSACTIONFK1 Foreign Key (ARTICLE_ID) REFERENCES
TB_ARTICLE(ARTICLE_ID)
);

Jika terjadi transaksi maka akan merubah tabel persediaan (TB_WAREHOUSE) dimana jumlah
barang yang ditransaksikan akan mengurangi tabel barang persediaan. Masalah akan muncul
manakala barang yang ditransaksikan melebihi dari persediaan sehingga jika hal tersebut terjadi
transaksi akan dibatalkan (ROLL BACK). Pembentukan trigger untuk kasus ini adalah sebagai
berikut.

107

108

10.4.1.3 Penggunaan Triger untuk Update View


Trigger bisa juga digunakan untuk melakukan pengecekan jika ingin merubah data pada sebuah
view. Data yang ditampilkan pada view bisa di ubah. Perubahan tersebut berakibat perubahan
data pada tabel aslinya. Kita bisa menyisipkan trigger dalam view untuk menjaga konsistensi dari
perubahan data yang ditampilkan pada view.
10.4.1.4 Penggunaan Triger untuk membatasi operasi data yang saling berkaitan (enforcing
required child constrainst)
Trigger bisa digunakan untuk menghalangi data yang masuk jika ada batasan yang berkaitan
dalam data pada tabel yang lain. Misalkan pada contoh terdapat tabel barang (TB_ARTICLE).
Tabel

barang

tersebut sangat berkaitan dengan tabel

yang

lainnya (TB_ORDER<

TB_WAREHOUSE, TB_TRANSACTION). Data pada tabel TB_ARTICLE tidak boleh sembarangan


dihapus karena penghapusan bisa mengakibatkan ketidakkonsistenan data pada tabel yang
lainnya. Di sini trigger bisa digunakan untuk menghalangi penghapusan tersebut.
10.4.2 SQL Store Procedure (SP)
Dibawah ini adalah contoh SP untuk memasukkan data barang (SP_INSERT_DATA_ARTICLE)
Kegunaan: Memasukan data ke tabel ARTICLE
Parameter:
@ARTICLE_CODE VARCHAR(30)
@ARTICLE_NAME VARCHAR(50)
@ARTICLE_DESCRIPTION VARCHAR(100)
109

Proses:

Store procedure terlebih dahulu menghitung jumlah data yang terdapat pada tabel
article berdasarkan kode article yang dimasukkan pada parameter @ARTICLE_CODE
untuk memastikan tidak boleh ada data yang sama pada tabel TB_ARTICLE.

Jika jumlahnya lebih dari 0 artinya data tersebut telah ada di tabel TB_ARTICLE sehingga
store procedure akan melakukan UPDATE data article. Jika jumlahnya 0 maka article
belum ada pada tabel TB_ARTICLE sehingga lakukan INSERT untuk tabel TB_ARTICLE
berdasarkan inputan parameter.

ARTICLE_DATE di isi dengan tanggal current yang diperoleh dari system operasi (Current
Date)

Beri Informasi jika proses Insert telah selesai dilakukan dengan menampilkan pesan
Proses Insert article telah dilakukan

Checking
110

Jalankan Store Procedure dengan menggunakan perintah EXECUTE untuk memasukkan data
@ARTICLE_CODE= ALPR01MOLX;
@ARTICLE_NAME= ALPARA TAB ;
@ARTICLE_DESCRIPTION= OBAT FLU KOMBINASI;

111

10.5 TUGAS
10.5.1 Pertanyaan
Buatlah Store Procedure untuk merubah nama barang berdasarkan kode. Nama store Procedurenya
adalah SP_UPDATE_ARTICLE
-

Inputannya adalah (@ARTICLE-CODE, @ARTICLE_NAME)

Prosesnya Mencari ARTICLE_ID yang ARTICLE_CODE=@ARTICLE-CODE masukkan ke dalam


variable @ ARTICLE_ID

Update ARTICLE_NAME =@ ARTICLE_NAME yang ARTICLE_ID =@ ARTICLE_ID

112

11 Managing Database dengan SQL Server


2005
11.1 TUJUAN
1.1

Mahasiswa memahami Kegunaan Trigger dan Store Procedure

1.2

Mahasiswa mampu membedakan penggunaan Trigger dan Store Procedure pada


database

1.3

Mahasiswa mampu memasukkan kode program Trigger dan Store Procedure pada
database

11.2 PERANGKAT LUNAK


SQLServer

11.3 DASAR TEORI


11.3.1 Database Administration
Walaupun multiuser database menjanjikan berbagai nilai tambah bagi perusahaan, pada
kenyataannya ada beberapa permasalahan yang ditemui ketika mengimplementasikan
multiuser database. Salah satunya adalah dalam merancang database multiuser tergolong
kompleks karena mereka mengkamodasi beberapa sudut pandang dari user yang saling overlap.
Beberapa hal yang dilakukan oleh database administration

Mengatur struktur database

Mengontrol proses yang concurent (berjalan bersamaan)

Memelihara dan memastikan bahwa proses berjalan dengan benar

Membangun keamanan database

Menyediakan database recovery

memelihara DBMS

Memelihara penyimpanan data

113

11.4 PRAKTIKUM
11.4.1 Installasi SQL Server 2005
Panduan lengkap installasi SQl Server 2005 dapat diperoleh di
a. http://msdn.microsoft.com/en-us/library/ms143516(v=sql.90).aspx
b. http://technet.microsoft.com/en-us/library/ms143219(v=sql.90).aspx
c. http://www.sqlserverclub.com/essentialguides/how-to-install-sql-server-quick-guide.aspx
d. http://www.sqlserverclub.com/essentialguides/how-to-install-sql-server-quick-guide-part2.aspx

11.4.2 Database Security


11.4.3 Membuat User Database
Untuk membuat user baru lakukan langka sebagai berikut :
[1] Untuk mengakses SQL Server 2005 maka kita dapat mengaksesnya dimulai dari klik Start > All
Programs > Microsoft SQL Server 2005 > SQL Server Management Studio.
[2] Klik tombol Connect untuk masuk kedalam database SQL Server 2005
[3] Klik menu login yang ada dibagian menu security
Untuk membuat user baru maka kita dapat mengaksesnya melalui mengklik login menu yang
ada dalam bagian security. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini :

[4] Isilah masukan-masukan yang dibutuhkan untuk membuat user baru


114

Setelah menu New Login di klik maka akan muncul tampilan baru.
Pada bagian General, ada beberapa masukan yang perlu di isi diantaranya adalah login name,
password dan confirm password.
Kemudia ada opsi opsi lain seperti mencentang atau tidak untuk pilihan enforce password
policy, enforce password expiration dan user must change password at next login.
Untuk keseragaman jangan dicentang semua opsi diatas. Setelah itu pilihlah default database
untuk usr yang baru dibuat. Untuk lebih jelasnya langkah langkah ini dapat dilihat pada
gambar dibawah ini :

Kemudian klik Server Roles. Menu ini adalah untuk menset role yang nantinya akan diberikan
kepada user baru ini. Untuk keseragaman set role untuk user ini sebagai sysadmin. Untuk lebih
jelasnya dapat dilihat pada gambar dibawah ini :

115

Kemudian pilih menu Status. Pada menu ini kita ingin menyakinkan bahwa user baru ini
mendapatkan 2 hak yang memungkinkan dia untuk masuk dan memanipulasi database
yang ada di SQL Server 2005. 2 hak tersebut adalah : permission to connect to database
engine dipilih pilihan grant dan login dipilih pilihan enabled. 2 status ini akan
memampukan user untuk masuk ke database dan user mampu melakukan koneksi ke
database. 2 pilihan ini adalah pilihan default sehingga jangan diubah kalau tidak ada hal
hal yang penting yang berhubungan dengan kedua opsi ini. Untuk lebih jelasnya dapat
dilihat pada gambar dibawah ini :

[5] Klik tombol OK untuk menyelesaikan wizard untuk membuat user baru

116

Setelah kita mengklik tombol OK maka user baru terbentuk. Untuk lebih jelasnya dapat dilihat
pada gambar dibawah ini :

Berdasarkan gambar diatas maka user baru kita tercipta. Semoga dengan tuntunan dalam
pembuatan user baru ini maka kita dapat lebih mengetahui bagaimana cara membuat user baru
didalam SQL Server 2005.

11.4.4 Membuat user database baru


[1] Masuk ke database yang akan di setting usernya
[2] Pilih pada database tersebut security
[3] Expand folder kemudian pilih user
[4] Klik kanan user maka akan muncul objek pada user
[5] Pilih user name yang sudah di buat sebelumnya kemudian kemudian double klik
[6] Disini akan terdapat informasi termasuk keterangan owner pada database tersebut
[7] Klik ok

11.5 Baking up database


11.5.1 Jenis Backup pada SQL Server
Ada beberapa jenis backup yang tersedia pada SQL Server, dalam hal ini akan dibahas 4 jenis
backup : Full Backup, Differential Backup, Incremental Backup,dan Transaction Log Backup.

117

11.5.2 Cara Melakukan Backup Database


[1] Buka Studio lalu klik kanan pada database yang ingin dibackup. Dalam kasus ini, otomax.
Lalu klik menu Back Up

[2] Klik tombol Remove, lalu klik tombol Add

118

[3]

Pilih jenis backup

[4]

Tentukan dimana hasil backup akan disimpan. Ketik nama filenya lengkap dengan
akhiran .bak. Ini untuk kemudahan pada saat akan direstore (jika nanti diperlukan).
Contoh dalam kasus ini: otomax.bak.

[5]

Klik ok

[6]

Cek file hasil backup

11.6 Restore Database


[1] Buat Database baru
[2] Klik kanan database yang dbuat
[3] Pilih task kemudian restore
[4] Pada source for restore pilih from device
[5] Klik Add, cari file kemudian klik ok
[6] Pada select the back up set to restore pilih ketiga jenis backup
[7] Pada recovery state pilih restore with recovery
[8] Pilih ok

119

11.7 Tugas
11.7.1 Pertanyaan
1. Lakukan backup untuk database modul10_xxxx (
2. Buat database baru dengan nama modul11_xxxxx
3. Lakukan Restore database dari modul 10 sebelumnya
4. Buatlah security user login dengan nama dan password masing-masing
5. Tambahkan pada database yang baru user dari login yang dibuat

120

12 Connection SQL Server With VB.Net


12.1 TUJUAN
1.1

Mahasiswa memahami Kegunaan ODBC, ADO atau OLE DB untuk melakukan


konektivitas database

1.2

Mahasiswa mampu membuat konektivitas database dengan menggunakan VB.net


dan SQL Server

12.2 PERANGKAT LUNAK


VB2008, SQLServer

12.3 DASAR TEORI


Aplikasi database sekarang ini memiliki lingkungan yang lebih kompleks sehingga banya standar
yang digunakan untuk mengakses database, antara lain :

ODBC (Open Database Connectivity) standar yang pertama kali di gunakan untuk
database relational.

OLE DB is Microsofts older object-oriented interface untuk database relational dan yang
tidak relational.

The .NET Framework and ADO.NET Microsoft dot NET data access standards yang
menyediakan akses data lebih mudah.

JBDC (Java Database Connectivity) sama dengan ODBC namun untuk Java

12.4 PRAKTIKUM
12.4.1 Menambahkan Procedur pada SQL Server 2005
Gunakan rancangan database yang terdapat pada modul8, dengan rancangan sebagai berikut :

121

TB_CUSTOMER
CUSTOMER_ID: int IDENTITY(1,1)
CUSTOMER_CODE: varchar(30) NOT NULL
CUSTOMER_NAME: varchar(50) NOT NULL
CUSTOMER_CREATEDATE: datetime NOT NULL
CUSTOMER_POB: varchar(50) NULL
CUSTOMER_DOB: datetime NULL

TB_PHONE
PHONE_ID: int IDENTITY(1,1)
PHONE_HOMECODE: varchar(30) NULL
PHONE_HOMENR: varchar(50) NULL
PHONE_OFFICENR: varchar(50) NULL
PHONE_OFFICECODE: varchar(30) NULL
PHONE_CELL: varchar(50) NULL
CUSTOMER_ID: int NOT NULL (FK)

TB_ADDRESS
ADDRESS_ID: int IDENTITY(1,1)
ADDRESS_STREET: varchar(100) NOT NULL
ADDRESS_REGION: varchar(50) NULL
ADDRESS_DISTRICT: varchar(50) NULL
ADDRESS_CITY: varchar(50) NOT NULL
ADDRESS_PROVINCE: varchar(50) NOT NULL
CUSTOMER_ID: int NOT NULL (FK)

Tambahkan procedure pada database seperti dibawah ini :


CREATE procedure SP_GET_CUSTOMER_ID
@CUSTOMER_CODE VARCHAR(10)
AS
DECLARE @CUSTOMER_ID INT;
BEGIN
SELECT CUSTOMER_ID FROM TB_CUSTOMER WHERE
CUSTOMER_CODE=@CUSTOMER_CODE
END

Ubah VIEW VW_CUSTOMER_INFO dengan menghilangkan koneksi ke table TB_PHONE


(hanya untuk memudahkan saja)
12.4.2 Membuat Form pada VB.net
Buat Form pada VB. Net dengan tampilan sebagai berikut :

122

Objek dan Properti pada Form diatas adalah :


No
Object
1 Form

Property
Name
Text

Nilai
frmCustomerInput
Input Data Pelanggan

2 GroupBox

Name
Text

GroupBox1
Data Umum

3 GroupBox

Name
Text

GroupBox2
Name
Text

4 Label

Name
Text

Label1
Kode Pelanggan

5 Label

Name
Text

Label9
Provinsi

6 DataGridView

Name

ListPelanggan

7 TextBox

Name

txtCode

dan seterusnya

123

Name
Name

txtName
txtPOB

8 DateTimePicker

Name
CustomFormat

txtDOB
MM/dd/yyyy

9 TextBox

Name
Name
Name
Name
Name

txtStreet
txtRegion
txtDistrict
txtCity
txtProv

Name
Name
Name
Name
Name

btnAdd
btnSave
btnDelete
btnUpdate
btnExit

10 Button

12.4.3 Membuat Modul Koneksi


Tambahkan modul (Add Modul) dengan nama Modul1
Masukkan script koneksi sebagai berikut :
Imports System.Data.SqlClient
Module Module1
Public Function Koneksi() As SqlConnection

Dim Conn As New SqlConnection


'membuat koneksi dengan database
'ANINS-LAPTOP\SQLEXPRESS adalah nama server di komputer, ini
bisa diganti
Conn.ConnectionString = "server = ANINSLAPTOP\SQLEXPRESS;Database = modul12;integrated security=true"
Try
Conn.Open()
Catch ex As Exception
MessageBox.Show(ex.Message, "Connection Failed",
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Return Conn
End Function
End Module

124

13 Connection SQL Server With VB.Net(2)


13.1 TUJUAN
1.1

Mahasiswa memahami Kegunaan ODBC, ADO atau OLE DB untuk melakukan


konektivitas database

1.2

Mahasiswa mampu membuat konektivitas database dengan menggunakan VB.net


dan SQL Server

13.2 PERANGKAT LUNAK


VB2008, SQLServer

13.3 DASAR TEORI


Aplikasi database sekarang ini memiliki lingkungan yang lebih kompleks sehingga banya standar
yang digunakan untuk mengakses database, antara lain :

ODBC (Open Database Connectivity) standar yang pertama kali di gunakan untuk
database relational.

OLE DB is Microsofts older object-oriented interface untuk database relational dan yang
tidak relational.

The .NET Framework and ADO.NET Microsoft dot NET data access standards yang
menyediakan akses data lebih mudah.

JBDC (Java Database Connectivity) sama dengan ODBC namun untuk Java

13.4 PRAKTIKUM
Melanjutkan praktikum modul 12
13.4.1 Memasukkan Script ke Form frmCustomerInput
Imports System.Data.SqlClient
Public Class frmCustomerInput
Dim koneksi = Module1.Koneksi
Private Sub frmCustomerInput_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
PanggilData()
btnSave.Enabled = False

125

btnDelete.Enabled = False
btnUpdate.Enabled = False
txtdob.CustomFormat = "MM/dd/yyyy"
End Sub
'prosedur untuk panggildata
Sub PanggilData()
Dim SQLString As String = "SELECT * FROM VW_CUSTOMER_INFO"
Dim SqlDataAdapter1 As New SqlDataAdapter(SQLString,
Module1.Koneksi)
Dim dt As New DataTable("VW_CUSTOMER_INFO")
SqlDataAdapter1.Fill(dt)
ListPelanggan.DataSource = dt
Call GridBerwarna()
End Sub
'prosedur memberikan warna pada grid
Sub GridBerwarna()
With Me.ListPelanggan
.RowsDefaultCellStyle.BackColor = Color.BlanchedAlmond
.AlternatingRowsDefaultCellStyle.BackColor = Color.Azure
End With
End Sub
'Prosedur Form kosong (berfungsi untuk mengosongkan TetxBox dangan
pengaturan focus)

Sub FormKosong()
txtCode.Text = ""
txtName.Text = ""
txtPOB.Text = ""
txtStreet.Text = ""
txtRegion.Text = ""
txtDistrict.Text = ""
txtCity.Text = ""
txtProv.Text = ""
txtCode.Focus()
End Sub

'Prosedur mengaktifkan TextBox


Sub FormHidup()
txtCode.Enabled = True
txtName.Enabled = True
txtPOB.Enabled = True

126

txtStreet.Enabled = True
txtRegion.Enabled = True
txtDistrict.Enabled = True
txtCity.Enabled = True
txtProv.Enabled = True
txtCode.Enabled = True
End Sub
'Prosedure Mengatur Button dan Textbox
Sub FormNormal()
Call FormKosong()
btnAdd.Enabled = True
btnDelete.Enabled = False
btnSave.Enabled = False
btnExit.Text = "&Keluar"
End Sub
Public Function GetTableRow(ByVal strsql As String) As DataSet
Dim sDa As New SqlDataAdapter(strsql, Module1.Koneksi)
Dim ds As New DataSet
Try
sDa.Fill(ds)
Catch ex As Exception
End Try
sDa.Dispose()
Return ds
End Function

13.4.2 Memasukkan Script untuk Button Tambah


'

Prosedur untuk tambah data


Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnAdd.Click
Call FormHidup()
Call FormKosong()
Call PanggilData()
btnSave.Enabled = True
btnAdd.Enabled = False
btnDelete.Enabled = False
btnUpdate.Enabled = False
btnExit.Text = "&Normal"
txtCode.Focus()
End Sub

13.4.3 Memasukkan Script untuk Button Simpan


'Prosedur untuk simpan data

127

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnSave.Click
Dim Sql As String = String.Empty
Dim sqlget As String = String.Empty
Dim sqlinsert As String = String.Empty
Dim myDate As Date
'Dim cust_id As Integer
myDate = txtdob.Value.Date
Dim ds As New DataSet

'Cek Kode
'Uji data apakah textKode tidak kosong
If txtCode.Text <> "" Then
'Jika tidak kosong tambahkan data
Sql = "INSERT INTO
TB_CUSTOMER(CUSTOMER_CODE,CUSTOMER_NAME,CUSTOMER_CREATEDATE,
CUSTOMER_POB,CUSTOMER_DOB)" & " VALUES ('" & txtCode.Text & "','" &
txtName.Text & "', getdate(), '" & txtPOB.Text & "', '" & myDate &
"')"
Dim command As New SqlCommand(Sql, Module1.Koneksi)
command.ExecuteNonQuery()
sqlget = "EXEC SP_GET_CUSTOMER_ID " & " @CUSTOMER_CODE ='"
& txtCode.Text & "'"
' Periksa hati-hati tanda kutip untuk setiap variabel,
salah ketik mengakibatkan query anda tidak akan terbaca.
' Persiapan execusi Query Insert
Dim commandsqlget As New SqlCommand(sqlget,
Module1.Koneksi)
commandsqlget.ExecuteNonQuery()

ds = GetTableRow(sqlget)
lblidaddress.Text =
ds.Tables(0).Rows(0)("customer_id").ToString()

sqlinsert = "INSERT INTO


TB_ADDRESS(CUSTOMER_ID,ADDRESS_STREET,ADDRESS_REGION,
ADDRESS_DISTRICT,ADDRESS_CITY, ADDRESS_PROVINCE)" & " VALUES (" &
lblidaddress.Text & ",'" & txtStreet.Text & "','" & txtRegion.Text &
"','" & txtDistrict.Text & "', '" & txtCity.Text & "', '" &
txtProv.Text & "')"
' Periksa hati-hati tanda kutip untuk setiap variabel,
salah ketik mengakibatkan query anda tidak akan terbaca.
' Persiapan execusi Query Insert
Dim commandsqlinsert As New SqlCommand(sqlinsert,
Module1.Koneksi)
commandsqlinsert.ExecuteNonQuery()

128

' sampaikan pesan bahwa data telah tersimpan.


MessageBox.Show("Data dengan kode " & txtCode.Text & "
Sudah disimpan", "Simpan data Sukses", MessageBoxButtons.OK,
MessageBoxIcon.Information)
' sampaikan juga pesan jika penyimpanan gagal.
Module1.Koneksi.Close()
Else
MessageBox.Show("Isikan dulu data", "Simpan Gagal",
MessageBoxButtons.OK, MessageBoxIcon.Information)
txtCode.Focus()
End If
' Panggil prosedur FormKosong dan prosedur panggil data.
Call FormKosong()
Call PanggilData()
End Sub
End Class

13.5 TUGAS
Lengkapi script diatas untuk button hapus, ubah dan Exit

129

14 Database Processing with XML


14.1 TUJUAN
1.1

Mahasiswa memahami pentingnya dokumen XML

1.2

Mahasiswa mampu membuat dokumen XML

1.3

Mahasiswa mampu membuat DTD dan XLST

14.2 PERANGKAT LUNAK


Notepad atau text editor

14.3 DASAR TEORI


14.3.1 Pendahuluan
Database Processing dengan Document Processing masing-masing saling membutuhkan satu
sama lain.
Database Processing membutuhkan document processing untuk menampilkan data. Sedangkan
document processing membutuhan database processing untuk menyimpan dan memanipulasi
data. Untuk meningkatkan penggunakaan internet, sebuah organisasi menginginkan webpages
yang dibangun lebih funsional dengan menampilkan dan melakukan perubahan data dari
database organisasi langsung.
14.3.2 XML
XML atau Extensible Markup Language dikembangkan pada awal tahun 1990 yang merupakan
bagian dari SGML, atau Standard Generalized Markup Language. Pada saat ini XML memiliki 2
fungsi sekaligus yaitu sebagai document processing dan sebagai database processing. XML
menyediakan standarisasi yang lebih customize sehingga mampu menampilkan isi dari
dokumen. Disamping itu dokumen xml digenerate langsung dari databasenya.
XML lebih baik dari HTML karena :

Menyediakan pemisah yang jelas antara struktur dokumen, content dan materi

Standarisasinya bisa dikembangkan sendiri oleh pengembang

Tag yang terdapat pada XML merepresentasikan sematik dari datanya.


130

Contoh dokumen XML


<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

Baris pertama adalah adalah deklarasi XML. Dokumen tersebut menggunakan XML versi 1.0 dan
encoding menggunakan (ISO-8859-1 = Latin-1/West European character set).
<note>

Merupakan elemen root. Bisa juga kita sebut bahwa dokumen diatas adalah dokumen note.
note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>

Empat baris berikutnya adalah isi dari dokumen xml dimana ada 4 buah elemen pada dokument
tersebut, yaitu : root (to, from, heading, dan body)
Baris terakhir adalah penutup dari dokumen

</note>

Struktur tree dokumen XML adalah


<root>
<child>
<subchild>.....</subchild>
</child>
</root>

Contoh Struktur Dokumen dalam bentuk Tree

131

<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>

14.3.3 XML Document Type Declaration


Document Type Declarations (DTDs) dan XML Schemas bisa digunakan untuk menggambarkan
isi dari dokumen XML. Database SQL Server, Oracle, dan MySQL dapat mengeluarkan dokumen
XML dari database.

132

Dokumen XML DTD terdiri atas 2 bagian, yaitu :

Document Type Declaration (DTD)

DTD diawali dengan DOCTYPE <document_type_name>

Document data

Sebuah dokumen XML dapat berupa:

Type-valid jika dokumen memiliki DTD

Well-formed dan buka type-valid, jika

Jika melanggar struktu DTD atau

Tidak memiliki DTD

14.3.4 XLST
XSLT, atau Extensible Style Language digunakan untuk membentuk dokumen XML

14.4 PRAKTIKUM
14.4.1 Membuat Dokumen XML dengan internal DTD
[1] Buka Notepad atau text editor lain
[2] Ketikkan script dibawah ini
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE anggota[
<!ELEMENT anggota (dataanggota+)>
<!ELEMENT dataanggota (idanggota, kodeanggota, namaanggota,
alamat,jenkel, tgllahir, thnanggota,status)>
<!ELEMENT idanggota (#PCDATA)>
<!ELEMENT kodeanggota (#PCDATA)>
<!ELEMENT namaanggota (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT jenkel (#PCDATA)>
<!ELEMENT tgllahir (#PCDATA)>
<!ELEMENT thnanggota (#PCDATA)>
<!ELEMENT status (#PCDATA)>
]>
<anggota>
<dataanggota>
<idanggota>1</idanggota>
<kodeanggota>Ra-009</kodeanggota>
<namaanggota>Dwi Anindyani</namaanggota>

133

<alamat>Depok</alamat>
<jenkel>P</jenkel>
<tgllahir>11/05/84</tgllahir>
<thnanggota>2012</thnanggota>
<status>Dosen</status>
</dataanggota>
<dataanggota>
<idanggota>2</idanggota>
<kodeanggota>Ra-003</kodeanggota>
<namaanggota>Anind</namaanggota>
<alamat>Bogor</alamat>
<jenkel>L</jenkel>
<tgllahir>05/05/88</tgllahir>
<thnanggota>2012</thnanggota>
<status>Dosen</status>
</dataanggota>
</anggota>

Keterangan :
Dokumen diatas adalah dokumen XML tipe valid karena memiliki DTD pada bagian
atasnya. Tanda + pada baris ketiga (anggota+) artinya nilai tersebut membutuhkan nilai
yang bisa di isi satu atau lebih nilai. Elemen dengan informasi (#PCDATA) artinya
element tersebut datanya String atau Character.
[3] Simpan code diatas dengan nama anggotainternal.xml maka akan mucul tampilan
sebagai berikut yang hanya memperlihatkan struktur xml saja.

134

14.4.2 Dokumen XML dengan external DTD


Dokumen XMl dengan external DTD disini kita memisahkan DTD dengan XML nya. Contoh
seperti di bawah ini :
[1] Buka Notepad atau text editor lain
[2] Ketikkan script dibawah ini
<?xml version="1.0" encoding="UTF-8"?>
<anggota>
<dataanggota>
<idanggota>1</idanggota>
<kodeanggota>Ra-009</kodeanggota>
<namaanggota>Dwi Anindyani</namaanggota>
<alamat>Depok</alamat>
<jenkel>P</jenkel>
<tgllahir>11/05/84</tgllahir>
<thnanggota>2006</thnanggota>
<status>Dosen</status>
</dataanggota>
<dataanggota>

135

<idanggota>2</idanggota>
<kodeanggota>Ra-003</kodeanggota>
<namaanggota>Anind</namaanggota>
<alamat>Bogor</alamat>
<jenkel>L</jenkel>
<tgllahir>05/05/88</tgllahir>
<thnanggota>2006</thnanggota>
<status>Dosen</status>
</dataanggota>
</anggota>

[3] Simpan file


XML dengan External. Nama file XML adalah anggota.xml
[4] Buka kembali text editor baru kemudian buat
DTD dengan nama anggota.dtd
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT anggota (dataanggota+)>
<!ELEMENT dataanggota (idanggota, kodeanggota, namaanggota,
alamat,jenkel, tgllahir, thnanggota,status)>
<!ELEMENT idanggota (#PCDATA)>
<!ELEMENT kodeanggota (#PCDATA)>
<!ELEMENT namaanggota (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT jenkel (#PCDATA)>
<!ELEMENT tgllahir (#PCDATA)>
<!ELEMENT thnanggota (#PCDATA)>
<!ELEMENT status (#PCDATA)>

14.4.3 XLST
Contoh XSL untuk XML anggota diatas
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match ="/">
<HTML >
<BODY>
<h1>List data</h1>
<table border="1">
<tr bgcolor="#9acd32">
<th>ID Anggota</th>
<th>Kode Anggota</th>
<th>Nama Anggota</th>
<th>Alamat</th>
<th>Jenis Kelamin</th>
<th>Tanggal Lahir</th>

136

<th>Tahun Masuk</th>
<th>Status</th>
</tr>
<xsl:for-each select="anggota/dataanggota">
<tr>
<td>
<xsl:value-of select="idanggota"/>
</td>
<td>
<xsl:value-of select="kodeanggota"/>
</td>
<td>
<xsl:value-of select="namaanggota"/>
</td>
<td>
<xsl:value-of select="alamat"/>
</td>
<td>
<xsl:value-of select="jenkel"/>
</td>
<td>
<xsl:value-of select="tgllahir"/>
</td>
<td>
<xsl:value-of select="thnanggota"/>
</td>
<td>
<xsl:value-of select="status"/>
</td>
</tr>
</xsl:for-each>
</table>
</BODY>
</HTML>
</xsl:template >
</xsl:stylesheet>

Simpan file diatas dengan nama anggota.xsl. pada bagian dokumen xml (anggota.xml)
tambahkan satu buah baris pada baris kedua.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="anggota.xsl" ?>
<anggota>
....

Keterangan
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

137

<xsl:template match ="/">

Adalah bagian untuk mendeklarasikan dokumen pada XSL style sheet.

<HTML >
<BODY>
<h1>List data</h1>

Adalah bagian untuk membuat tampilan di browser dengan menggunakan standar HTML.
pengambilan data dari dokumen XML menggunakan sintaks
<xsl:for-each select="anggota/dataanggota">

Untuk setiap elemen data dari XLM maka ditampilkan ke browser dengan menggunakan format
html dengan menggunakan tag table, th, tr dan td. (cek kembali pelajaran htmlnya).
14.4.4 Generate Data dari Database ke format XML
Untuk mengenerate data dari database dalam bentuk XML, gunakan sintaks
SELECT * FROM TB_CUSTOMER
FOR XML AUTO, ELEMENTS

Akan muncul tampilan data sebagai berikut :


<TB_CUSTOMER>
<CUSTOMER_ID>1</CUSTOMER_ID>
<CUSTOMER_CODE>NK001</CUSTOMER_CODE>
<CUSTOMER_NAME>ANITA</CUSTOMER_NAME>
<CUSTOMER_CREATEDATE>2007-04-12T00:00:00</CUSTOMER_CREATEDATE>
<CUSTOMER_POB>BANDUNG</CUSTOMER_POB>
<CUSTOMER_DOB>1967-08-15T00:00:00</CUSTOMER_DOB>
</TB_CUSTOMER>
<TB_CUSTOMER>
<CUSTOMER_ID>2</CUSTOMER_ID>
<CUSTOMER_CODE>NR002</CUSTOMER_CODE>
<CUSTOMER_NAME>BURHAN</CUSTOMER_NAME>
<CUSTOMER_CREATEDATE>2007-04-12T00:00:00</CUSTOMER_CREATEDATE>
<CUSTOMER_POB>SUKABUMI</CUSTOMER_POB>
<CUSTOMER_DOB>1968-04-12T00:00:00</CUSTOMER_DOB>
</TB_CUSTOMER>
<TB_CUSTOMER>
<CUSTOMER_ID>3</CUSTOMER_ID>
<CUSTOMER_CODE>PO008</CUSTOMER_CODE>

138

<CUSTOMER_NAME>RAHARDIAN</CUSTOMER_NAME>
<CUSTOMER_CREATEDATE>2007-04-17T00:00:00</CUSTOMER_CREATEDATE>
<CUSTOMER_POB>MALANG</CUSTOMER_POB>
<CUSTOMER_DOB>1977-12-17T00:00:00</CUSTOMER_DOB>
</TB_CUSTOMER>
<TB_CUSTOMER>
<CUSTOMER_ID>4</CUSTOMER_ID>
<CUSTOMER_CODE>NR002</CUSTOMER_CODE>
<CUSTOMER_NAME>RITA</CUSTOMER_NAME>
<CUSTOMER_CREATEDATE>2007-04-17T00:00:00</CUSTOMER_CREATEDATE>
<CUSTOMER_POB>BLITAR</CUSTOMER_POB>
<CUSTOMER_DOB>1985-04-14T00:00:00</CUSTOMER_DOB>
</TB_CUSTOMER>
<TB_CUSTOMER>
<CUSTOMER_ID>5</CUSTOMER_ID>
<CUSTOMER_CODE>AA056</CUSTOMER_CODE>
<CUSTOMER_NAME>YULI</CUSTOMER_NAME>
<CUSTOMER_CREATEDATE>2007-04-17T00:00:00</CUSTOMER_CREATEDATE>
<CUSTOMER_POB>UJUNG PANDANG</CUSTOMER_POB>
<CUSTOMER_DOB>1970-07-09T00:00:00</CUSTOMER_DOB>
</TB_CUSTOMER>
<TB_CUSTOMER>
<CUSTOMER_ID>7</CUSTOMER_ID>
<CUSTOMER_CODE>001</CUSTOMER_CODE>
<CUSTOMER_NAME>DESTI</CUSTOMER_NAME>
<CUSTOMER_CREATEDATE>2012-05-01T12:34:49.117</CUSTOMER_CREATEDATE>
</TB_CUSTOMER>

14.5 TUGAS
14.5.1 Pertanyaan
1. Generate dokumen XML dari View VW_CUSTOMER_INFO pada database Modul 12 beri nama
dengan nama customer_info.xml
2. Buatlah Dokumen DTD untuk elemet XML tersebut, beri nama dengan nama customer_info.dtd
3. Definisikan XLS dokumen untuk menampilkan elemen dokumen tersebut.

139

15 Referensi
[1] David M. Kroenke, Database Processing, Fundamentals, Design and Implementation,

12nd Edition, Prentice-Hall Intl Edition, 2012 (DK).


[2] http://id.wikipedia.org/wiki/SQL
[3] http://www.w3schools.com/xsl

140

Anda mungkin juga menyukai