Modul Praktikum Lab SMBD All
Modul Praktikum Lab SMBD All
Daftar Isi
TUJUAN.................................................................................................................................. 10
1.2
PERANGKAT LUNAK................................................................................................................ 10
1.3
DASAR TEORI.......................................................................................................................... 10
1.3.1
1.4
PRAKTIKUM............................................................................................................................ 10
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5
TUGAS.................................................................................................................................... 21
1.5.1
2
Pertanyaan ..................................................................................................................... 21
TUJUAN.................................................................................................................................. 22
2.2
PERANGKAT LUNAK................................................................................................................ 22
2.3
DASAR TEORI.......................................................................................................................... 22
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.4
2.5
2.6
SQL ........................................................................................................................................ 29
2.6.1
2.6.2
2.6.3
2.7
PRAKTIKUM............................................................................................................................ 31
2.7.1
2.7.2
2.7.3
2.8
Tugas ..................................................................................................................................... 35
2.8.1
3
Pertanyaan ..................................................................................................................... 35
TUJUAN.................................................................................................................................. 37
3.2
PERANGKAT LUNAK................................................................................................................ 37
3.3
DASAR TEORI.......................................................................................................................... 37
3.3.1
3.3.2
3.3.3
3.4
PRAKTIKUM............................................................................................................................ 42
3.4.1
3.5
TUGAS.................................................................................................................................... 43
3
3.5.1
4
TUJUAN.................................................................................................................................. 44
4.2
PERANGKAT LUNAK................................................................................................................ 44
4.3
DASAR TEORI.......................................................................................................................... 44
4.3.1
Pendahuluan .................................................................................................................. 44
4.3.2
4.3.3
4.4
PRAKTIKUM............................................................................................................................ 53
4.4.1
4.4.2
4.4.3
4.4.4
4.4.5
4.4.6
4.4.7
4.5
TUGAS.................................................................................................................................... 56
4.5.1
5
Pertanyaan ..................................................................................................................... 56
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
6.1
TUJUAN.................................................................................................................................. 62
6.2
PERANGKAT LUNAK................................................................................................................ 62
6.3
TEORI ..................................................................................................................................... 62
6.3.1
6.3.2
ID-Dependent Relationship............................................................................................. 66
6.4
PRAKTIKUM............................................................................................................................ 71
6.5
TUGAS.................................................................................................................................... 72
6.5.1
7
TUJUAN.................................................................................................................................. 73
7.2
PERANGKAT LUNAK................................................................................................................ 73
7.3
DASAR TEORI.......................................................................................................................... 73
7.3.1
7.4
Pendahuluan .................................................................................................................. 73
PRAKTIKUM............................................................................................................................ 73
7.4.1
7.4.2
7.4.3
7.4.4
7.5
TUGAS.................................................................................................................................... 77
7.5.1
8
Pertanyaan ..................................................................................................................... 72
Pertanyaan ..................................................................................................................... 77
TUJUAN.................................................................................................................................. 78
8.2
PERANGKAT LUNAK................................................................................................................ 78
8.3
DASAR TEORI.......................................................................................................................... 78
8.3.1
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
8.4.2
8.4.3
8.4.4
8.5
Tugas ..................................................................................................................................... 90
8.5.1
9
Pertanyaan ..................................................................................................................... 90
TUJUAN.................................................................................................................................. 92
9.2
PERANGKAT LUNAK................................................................................................................ 92
9.3
DASAR TEORI.......................................................................................................................... 92
9.3.1
9.3.2
9.4
PRAKTIKUM............................................................................................................................ 94
9.4.1
9.4.2
Membuat Trigger............................................................................................................ 96
9.5
9.5.1
10
10.1
TUJUAN................................................................................................................................ 102
10.2
10.3
10.3.1
10.3.2
10.4
PRAKTIKUM.......................................................................................................................... 103
10.4.1
10.4.2
10.5
TUGAS.................................................................................................................................. 112
10.5.1
11
11.1
TUJUAN................................................................................................................................ 113
11.2
11.3
11.3.1
11.4
PRAKTIKUM.......................................................................................................................... 114
11.4.1
11.4.2
11.4.3
11.4.4
11.5
11.5.1
11.5.2
11.6
11.7
11.7.1
12
12.1
TUJUAN................................................................................................................................ 121
12.2
12.3
12.4
PRAKTIKUM.......................................................................................................................... 121
12.4.1
12.4.2
12.4.3
13
13.1
TUJUAN................................................................................................................................ 125
13.2
13.3
13.4
PRAKTIKUM.......................................................................................................................... 125
13.4.1
13.4.2
13.4.3
13.5
14
TUGAS.................................................................................................................................. 129
Database Processing with XML ................................................................................................. 130
14.1
TUJUAN................................................................................................................................ 130
14.2
14.3
14.3.1
14.3.2
14.3.3
14.3.4
14.4
PRAKTIKUM.......................................................................................................................... 133
14.4.1
14.4.2
14.4.3
14.4.4
14.5
TUGAS.................................................................................................................................. 139
14.5.1
15
1.2
Mampu membuat database dengan menggunakan database sederhana yaitu MS Access 2007
1.3
1.4
1.5
1.6
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
1.4 PRAKTIKUM
1.4.1
Membuat Database
Latihan 1
Urutan langkah-langkah :
10
Membuat Tabel
Latihan 2
[1]
[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]
[5]
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
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
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
15
Membuat Form
Digunakan untuk membuat Control Proses memasukkan, memeriksa, dan memperbarui data.
1.4.4.1 Latihan 4
16
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
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.
19
[3]
[4]
Buat sebuah button pada Design Viewnya, kemudian akan muncul secara otomatis Button
[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
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
1.2
1.3
1.4
Mampu membuat dan menjalankan query pada pada tools database SQL Server
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
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
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.
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
jendela
Secara otomatis
Secara Manual
25
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.
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
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
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
2.6.2
Aplikasi client/server
Web page
Reporting tools
Digunakan langsung melalui Visual Studio atau development tools yang 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
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
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
[4] Buat database dengan nama Modul2 pada bagian database name kemudian klik OK
31
[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
[3] Pada bagian source for restore pilih from device kemudian Add
[4] Pilih folder tempat data backup di simpan
33
[7] Klik OK
34
2.7.3
Query Database
2.7.3.1 Latihan 3
[1] Klik NEW 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.
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
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)
36
1.2
1.3
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
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.2
total
---------12281.2000
17250.0000
15810.0000
16321.9000
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
SYNTAX
1 SELECT * FROM table_A
2 LEFT OUTER JOIN table_B ON join_conditions
3 WHERE row_conditions
1 SELECT column_list
2 FROM table_A
41
1 SELECT column_list
FROM table_A
3.4 PRAKTIKUM
3.4.1
42
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.
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
1.2
1.3
1.4
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
Tipe Model
Entitas
Tabel
Primary key
Relationship
Foreign key
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
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.
49
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.
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:
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
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
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.
55
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
57
58
59
1.2
Mampu menentukan Entity, atribut, kardinalitas berdasarkan studi kasus yang diberikan
1.3
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:
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
One-to-One [1:1]
One-to-Many [1:N]
Many-to-Many [N:M]
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.
1.2
1.3
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.
ii.
iii.
b. ID-Dependent Relationship
6.3.1
i.
ii.
iii.
iv.
v.
vi.
vii.
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
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
67
68
69
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 :
72
Mahasiswa mampu membuat tabel untuk setiap entitas pada diagram ER dengan
menggunakan Tools Database
1.2
1.3
1.4
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
73
SQL Server
7.4.2
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
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
76
7.5 TUGAS
7.5.1
Pertanyaan
1. Buat Rancangan fisik sebagai berikut
TB_COA
TB_JOURNAL
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
77
8 SQL
for
Database
Construction
and
Application Processing -1
8.1 TUJUAN
1.1
1.2
1.3
1.4
Mahasiswa mampu membuat SQL Joint untuk menampilkan data lebih dari satu
tabel
Query
Language)
adalah
data relasional
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
79
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
Perintah diatas digunakan untuk kolom dengan nama MyColumn pada tabel CUSTOMER
Kita bisa menghapus kolom dengan perintah
ALTER TABLE CUSTOMER DROP COLUMN MyColumn;
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
82
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;
TransactionCustomerFK;
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
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:
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
Joint
Joint biasa digunakan pada perintah SELECT untuk menggabungkan 2 buah tabel atau lebih.
Contoh perintah Joint :
SELECT
FROM
CUSTOMER.Name, ARTIST.Name
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
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
86
[2] Ketikan Script SQL pada Editor untuk membuat database dengan nama Customer
Create database Customer;
Klik kanan
Refresh
8.4.2
87
8.4.3
88
8.4.4
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
1.2
1.3
1.4
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.
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
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
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 :
93
Manfaat Trigger
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 ]
}
}
9.4 PRAKTIKUM
9.4.1
3.
95
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
97
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
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);
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
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
tabel
dengan
nama
TB_CUSTOMERCOUNT(CUSTOMER_TOTAL)
dimana
field
101
10 SQL
for
Database
Construction
and
Application Processing -2
10.1 TUJUAN
1.1
1.2
1.3
Mahasiswa mampu memasukkan kode program Trigger dan Store Procedure pada
database
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
103
104
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
barang
yang
lainnya (TB_ORDER<
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
-
112
1.2
1.3
Mahasiswa mampu memasukkan kode program Trigger dan Store Procedure pada
database
memelihara DBMS
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
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.
117
118
[3]
[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]
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
1.2
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)
122
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
124
1.2
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
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
127
'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()
128
13.5 TUGAS
Lengkapi script diatas untuk button hapus, ubah dan Exit
129
1.2
1.3
Menyediakan pemisah yang jelas antara struktur dokumen, content dan materi
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>
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>
132
Document data
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
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>
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
<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
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,
140