modul praktikum_basisdata 1
Post on 14-Apr-2018
234 Views
Preview:
TRANSCRIPT
-
7/30/2019 Modul Praktikum_basisdata 1
1/65
1
BASIS DATA 1
MODUL PRAKTIKUM
D3 Manajemen InformatikaFakultas Teknik
Universitas Trunojoyo
-
7/30/2019 Modul Praktikum_basisdata 1
2/65
2
MODUL I
MYSQL
1. Dasar Teori
Basis data adalah sekumpalan informasi yang diatur agar mudah dicari.
Dalam arti umum basis data adalah sekumpulan data yang diproses dengan bantuan
komputer yang memungkinkan data dapat diakses dengan mudah dan tepat, yang
dapat digambarkan sebagai aktifitas dari satu atau lebih organisasi yang berelasi.
Pengertian MYS QL
Database MYSQL merupakan sistem manajemen basis data SQL yang
sangat terkenal dan bersifat Open Source. MySQL dibangun, didistribusikan dan
didukung oleh MYSQL AB. MYSQL AB merupakan perusahaan komersial yang
dibiayai oleh pengembang MYSQL
Tipe Data
Data yang terdapat dalam sebuah tabel berupa field-field yang berisi nilai
dari data tersebut. Nilai data dalam field memiliki tipe sendiri-sendiri. MYSQL
mengenal beberapa tipe data field ya itu :
Tipe data numerik
Tujuan :
1. Memahami tentang sistem database
2. Memahami instalasi MySQL di lingkungan Windows
3. Memahami dasar-dasar MySQL.
Tugas Pendahuluan
1. Apa yang anda ketahui tentang mysql, jelaskan2. Apa perbedaan instalasi mysql dilingkungan windows dengan
linux
3. sebutkan operator dan fungsi dalam mysql !
-
7/30/2019 Modul Praktikum_basisdata 1
3/65
3
Tipe data numerik dibedakan dalam dua macam kelompok, yaitu integer danfloating point. Integer digunakan untuk data bilangan bulat sedangkan floating
point digunakan untuk bilangan desimal.
Tipe data stringString adalah rangkaian karakter. Tipe-tipe data yang termasuk dalam tipe data
string dapat dilihat pada tabel 8.1.2.b be rikut:
Tabel 8.1.2.b Tipe Data String
Tipe Data Kisaran Nilai
CHAR 1-255 karakter
VARCHAR 1-255 karakter
TINYTEXT 1-255 karakter
TEXT 1-65535 karakter
MEDIUMTEXT 1-16777215 karakter
LONGTEXT 1-424967295 karakter
Tipe data char() dan varchar()Tipe data char() dan varchar() pada prinsipnya sama, perbedaannya hanya
terletak pada jumlah memori yang dibutuhkan untuk penyimpanannya.
Memori yang dibutuhkan untuk tipe data char() bersifat statis, besarnya
bergantung pada berapa jumlah karakter yang ditetapkan pada saat field
tersebut dideklarasikan. Pada tipe data varchar() besarnya memori
penyimpanan tergantung pada jumlah karakter ditambah 1 byte, dapat dilihat
pada tabel 8.1.2.c berikut ini:
Tabel 8.1.2.c Letak Perbedaan Jumlah Me mori
Nilai Char(4) Memori
Penyimpanan
Varchar
(4)
Memori
Penyimpanan
4 bytes 1 byte
ab ab 4 bytes ab 3 bytes
abcd abcd 4 bytes abcd 5 bytes
abcdefgh abcd 4 bytes abcd 5 bytes
Tipe data tanggalUntuk tanggal dan jam, tersedia tipe-tipe data field berupa DATETIME,DATE, TIMESTAMP, TIME dan YEAR. Masing-masing tipe mempunyai
kisaran nilai tertentu. MYSQL akan memberikan peringatan kesalahan (error)
apabila tanggal atau waktu yang dimasukkan salah. Kisaran nilai dan besar
memori penyimpanan yang diperlukan untuk masing-masing tipe dapat dilihat
pada tabel 8.1.2.d berikut ini:
Tabel 8.1.2.d Tipe Data Tanggal
Tipe Data Kisaran Nilai Memori
Penyimpanan
DATETIME 1000-01-01 00:00 sampai 9999-12-3123:59:59
3 byte
-
7/30/2019 Modul Praktikum_basisdata 1
4/65
4
DATE 1000-01-01 sampai 9999-12-31 8 byte
TIMESTAMP 1970-01-01 00:00:00 sampai 2037 4 byte
TIME -839:59:59 sampa i 838:59:59 3 byte
YEAR 1901 sampai 2155 1 byte
Operator MYS QL
MYSQL mendukung penggunaan operator-operator dan fungsi-fungsi
diantaranya:
Operator AritmetikaSuatu ekspresi yang melibatkan tipe data bilangan (NUMERIK) dan tanggal
(DATE) menggunakan ekspresi aritmatika. Dapat dilihat pada tabel 8.1.3.a
berikut ini:
Tabel 8.1.3.a Operator aritmatika MYSQL
Operator Keterangan
+ Tambah
- Kurang
* Kali
/ Bagi
Mod () Modulus
Operator PembandinganSuatu ekspresi yang dapat digunakan pada klausa WHERE dan mempunyai
sintax sebagai berikut: WHERE expr operator value. Tabel 8.1.3.bmenunjukan operator pembanding pada MYSQL berikut ini:
Tabel 8.1.3.b Operator Pembanding M YSQL
Operator Keterangan
= Sama Dengan
> Lebih Besar
< Lebih Kecil
>= Lebih Besar atau Sama Dengan
-
7/30/2019 Modul Praktikum_basisdata 1
5/65
5
_ Sembarang satu karakter
[] Sembarang karakter yang terletak dalam kurung
siku
Operator Lain-lainOperator yang digunakan untuk menguji nilai-nilai yang ada dalam list (tanda
kurung) dan dapat juga untuk menampilkan baris berdasarkan suatu jangkauan
(range) nilai. Ada 2 symbol tersebut dapat dilihat pada tabel 8.1.3.e berikut ini:
Tabel 8.1.3.e Operator lain-lain
Operator Keterangan
IN Dalam
BETWEEN Diantara
2. Kegiatan Praktikum :
Instalasi MySQL-5.0.22-WIN32 :1. Jalankan file setup mysql, yaitu mysql-5.0.22-win32.exe, maka akan muncul
dialog instalasi sebagai berikut :
2. Pilih tombol Next, kemudian muncul d ialog tipe instalasi sebagai berikut :
-
7/30/2019 Modul Praktikum_basisdata 1
6/65
6
3. Pilih Custom, kemudian pilih tombol Next. Kemudian tampil dialog fiturprogram sebagai berikut :
4. Klik tanda silang pada Developer Components, kemudian pilih This featurewill be installed on local hard drive seperti gambar berikut :
-
7/30/2019 Modul Praktikum_basisdata 1
7/65
7
5. Kemudian pilih tombol Change..., pada folder name ubah menjadi sesuaidengan gambar berikut ini :
6. Pilih OK, kemudian pilih tombol Next, dan pilih tombol Install, maka prosesinstalasi dimulai.
-
7/30/2019 Modul Praktikum_basisdata 1
8/65
8
7. Berikutnya muncul dialog account, pilih Skip Sign-Up dan klik tombol Next,maka akan muncul dialog sebagai berikut :
8. Klik tombol Finish dan tombol Next, maka akan muncul dialog sebagaiberikut :
-
7/30/2019 Modul Praktikum_basisdata 1
9/65
9
9. Pilih Standard Configuration dan klik tombol Next, lalu muncul gambarberikut :
-
7/30/2019 Modul Praktikum_basisdata 1
10/65
10
10. Pilih tombol Next. Kemudian muncul gambar berikut ini. Masukkan passwordyang diinginkan pada kota isian New root password dan Confirm berikut ini
untuk sekuritas , misalnya 123456. Klik to mbol Next.
11. Klik tombol Execute sebagai tahap akhir.
12.KlikFinish.
-
7/30/2019 Modul Praktikum_basisdata 1
11/65
11
Melakukan Koneksi ke MySQL :
Cara 1 :1. Melalui DOS Prompt, masuk ke direktori utama MySQL dengan cara sebagai
berikut (yang diketik hanya yang digaris bawah) :
C:\>cd \mysql\ bin
2. Setelah itu ketikkan perintah berikut (yang diket ik hanya yang digaris bawah) :C:\>mys ql\ bin\mys ql u root pmaka akan diminta untuk memasukkan passoword, isikan password yang
digunakan pada saat instalasi, yaitu 123456.
3. Selanjutnya akan ada respon dari server seperti gambar berikut :
Tampilan tersebut di atas menandakan bahwa telah berhasil melakukan
koneksi ke server.
Cara 2 :1. Dari menu Start > All Programs > MyS QL > MySQL Server 5.0 > MySQL
Command Line Client, maka akan muncul tampilan seperti berikut ini :
-
7/30/2019 Modul Praktikum_basisdata 1
12/65
12
2. Masukkan password yang telah ditentukan pada saat instalasi, yaitu : 123456kemudian tekan enter.
Menuliskan perintah pada mys ql
Bentuk prompt mysql> adalah tempat menuliskan perintah-perintah MySQL.
Setiap perintah SQL harus diakhiri dengan tanda titik-koma ; .
Cara untuk membuat s ebuah database baru adalah dengan perintah:
create database namadatabase;
Misalkan anda ketikkan :
create database modul1;
Untuk membuka sebuah database dapat menggunakan perintah berikut ini:
use namadatabase;
Contoh:use modul1;
Perintah untuk membuat tabel baru adalah:
create table namatabel
(
struktur
);
ConstraintConstraint adalah batasan atau aturan yang ada pada table.
MySQL menyediakan beberapa tipe constraint berikut :
NOT NULL
Suatu kolom yang didefinisikan dengan constraint NOT NULL tidak boleh
berisi
nilai NULL. Kolom yang befungsi sebagai kunci primer (primary key)
otomatis tidak boleh NULL.
UNIQUE
Mendefinisikan suatu kolom menjadi bersifat unik, artinya antara satu datadengan data lainnya namanya tidak boleh sama, misal alamat email.
-
7/30/2019 Modul Praktikum_basisdata 1
13/65
13
PRIMARY KEY
Cons traint PRIMARY KEY membentuk key yang unik untuk suatu table.
FOREIGN KEY
FOREIGN KEY constraint didefinisikan pada suatu kolom yang ada pada
suatu table, dimana kolom tersebut juga dimiliki oleh table yang lain sebagai
suatu PRIMARY KEY, biasa dipakai untuk menghubungkan antara 2 tabel.
Contoh Pembuatan Tabel :
Misalkan kita ingin menyimpan data anggota yaitu: nomor, nama, email, alamat,
kota. Sedangkan strukturnya seperti tabel dibawah ini :
Perintah MySQL untuk membuat tabel seperti diatas bisa dengan 2 cara sbb :
create table anggota (
nomor int(6) not null primary key,
nama char(40) not null,email char(255) not null,
alamat char(80) not null,
kota char(20) not null
);
-
7/30/2019 Modul Praktikum_basisdata 1
14/65
14
Perintah-Perintah Dasar SQLA. Pemasukan data
Untuk memasukkan sebuah baris (record) kedalam tabel MySQL adalah sebagai
berikut:
Contoh :Insert into anggota (nomor,nama,email,alamat,kota) values
(100,Adi,ad i@yahoo.com,Jl. Keputih 2A no 5,Surabaya);
atau
Insert into anggota values (100,Adi,adi@yahoo.com,Jl. Keputih 2A no
5, Surabaya);
3. Tugas1. Buatkan dengan perintah mysql database dengan nama perusahaan2. Di dalam database perusahaan terdapat tabel karyawan, barang,departemen dan produksi3. Tentukan field name masing-masing table4. Tentukan primary key pada setiap tabel
INSERT INTO t abl e [(col umn1,
col umn2, . . . ])]
VALUES ( val ue1, val ue2, . . . ]);
create table anggota (
nomor int(6) not null,
nama char(40) not null,
email char(255) not null,alamat char(80) not null,
kota char(20) not null,
primary key (nomor)
);
-
7/30/2019 Modul Praktikum_basisdata 1
15/65
15
MODUL II
MEMBUAT ER-DIAGRAM
Dasar Teori
Apa yang dimaksud dengan model data?
Model data adalah sekumpulan cara / peralatan / tooluntuk mendeskripsikan data-data, hubungannya satu sama lain, semantiknya, serta batasan konsistensi.
Ada dua model data, yaitu : Entity Relationship Diagram (ERD) dan model
relasional. Keduanya menyediakan cara untuk mendeskripsikan perancangan basisdata pada peringkat logika.
Model ERD atau Conceptual Data Model (CDM) : model yang dibuatberdasarkan anggapan bahwa dunia nyata terdiri dari koleksi obyek-obyek
dasar yang dinamakan entitas (entity) serta hubungan (relationship) antaraentitas-entitas itu.
Model Relasional atau Physical Data Model (PDM) : model yangmenggunakan sejumlah tabel untuk menggambarkan data serta hubungan
antara data-data tersebut. Setiap tabel mempunyai sejumlah kolom di
mana setiap kolom memiliki nama yang unik.
Strong entity (entitas kuat) : entitas yang mandiri, yang keberadaannyatidak bergantung pada keberadaan entitas yang lainnya. Instansiasi entitas
kuat selalu memiliki karakteristik yang unik disebut identifier (sebuah
Tujuan :
v Praktikan dapat memaha mi dan membuat ER-Diagram
Tugas Pendahuluan
1. Tentukan Database serta field-fieldnya yang ingin anda buat!2. Buatlah ER diagramnyadengan pemodelan El-Masri!3. Apakah yang dimaksud dengan normalisas i? Jelaskan !
-
7/30/2019 Modul Praktikum_basisdata 1
16/65
16
atribut tunggal atau gabungan atribut-atribut yang secara unik dapat
digunakan untuk membedakannya dari entitas kuat yang lain ).
Weak entity (entitas lemah) : entitas yang keberadaannya sangatbergantung pada keberadaan entitas yang lainnya. Entitas lemah tidak
memiliki arti apa-apa dan tidak dikehendaki kehadirannya dalam diagramER tanpa kehadiran entitas di mana mereka bergantung.
Entitas di mana entitas lemah bergantung dinamakan identifying owner. Entitas
lemah tidak memiliki identifiersendiri. Secara umum, dalam diagram ER entitas
lemah memiliki atribut yang berperan sebagai partial identifier (identifier yangberfungsi secara sebagian).
Agregasi adalah suatu keadaan di mana suatu relasi hanya dapat direalisasikansetelah relasi yang lain ada terlebih dahulu. Relasi yang bertipe agregasi tidakdimungkinkan ada jika relasi yang menjadi prasyaratnya tidak terealisasi. Contoh:
Sesungguhnya agregasi dapat dipandang sebagaimana relasi pada umumnya (yang
menghubungkan 2 entitas). Karena relasi ini dibentuk dari relasi lain (relasi
prasyarat) yang secara kronologis lebih dulu terbentuk, maka
pengimplementasiannya juga harus dilakukan setelah relasi prasyarat tersebut
terimplementasikan. Selanjutnya kita tinggal meninjau derajat relasi dari relasi
agregasinya.
Mengapa jika terdapat set entitas yang sama muncul beberapa kali dalam satu setER-Diagram in i harus dihindari?
Untuk menghindari redundancy Menghemat penyimpanan (storage) data Mengurangi efektifitas dan kecepatan akses Untuk menghindari te rjad inya as inkronisas i data pada saat diupdate
perbedaan antara total constraint dan partial constraint!
Total constraint adalah constraint yang mana data dalam entitas yangmemiliki constraint tersebut terhubung secara penuh ke dalam entitas dari
relasinya.
Constraint partial adalah constraint yang mana data dalam entitas yangmemiliki constraint tersebut terhubung ke dalam entitas dari relasinya.
-
7/30/2019 Modul Praktikum_basisdata 1
17/65
17
Relasi satu :
Entity 1 to entity 2 : kardinalitas : one to many dengan detail minimal 0dan maksimalnya banyak. Dependensi : entitas 1 dan entitas 2 tidak saling
ketergantungan.
Entity 2 to entity 1 : kardinalitas : many to one dengan detail minimal 1dan maksimalnya 1. Dependensi : entitas 1 dan entitas 2 tidak salingketergantungan.
Relasi dua :
Entity 3 to entity 4 : kardinalitas : one to many dengan detail minimal 0maksimalnya banyak. Dependensi : entitas 3 dan entitas 4 t idak salingketergantungan.
Entity 4 ke entity 3 : kardinalitas : many to one dengan detail minimal 1maksimal 1. Dependensi : entitas 4 dan entitas 3 tidak saling
ketergantungan.
Relasi tiga
Entity 5 to entity 6 dan Entity 6 to entity 5 : kardinalitas : one to onedengan detail minimal 0 maksimalnya 1. Dependensi : entitas 5 danentitas 6 tidak saling ketergantungan.
Relasi empat:
-
7/30/2019 Modul Praktikum_basisdata 1
18/65
18
Entity 7 to entity 8 : kardinalitas : one to one dengan detail min imal 0maksimalnya 1. Dependensi : entitas 7 dan entitas 8 tidak salingketergantungan.
Entity 8 ke entity 7 : kardinalitas : one to one dengan detail minimal 1maksimal 1. Dependensi : entitas 8 dan entitas 7 tidak salingketergantungan.
Relasi lima
Entity 9 to entity 10 : kardinalitas : many to many dengan detail minimal0 maksimalnya banyak. Dependensi : entitas 9 dan entitas 10 tidak saling
ketergantungan.
Entity 10 ke entity 9 : kardinalitas : many to many dengan detail minimal1 maksimal banyak. Dependensi : entitas 10 dan entitas 9 tidak saling
ketergantungan.
Relasi tujuh
Entity 13 to entity 14 : kardinalitas : one to many dengan detail minimal 0maksimalnya banyak. Dependensi : entitas 13 menjadi parent dari entitas14.
Entity14 ke entity 13 : kardinalitas : many to one dengan detail minimal 1maksimal 1. Dependensi : entitas 14 tergantung kepada entitas 13.
Perbedaan antara tahap 1NF dengan tahap BCNF :
1NF : tahap normalisas i dasar, yang mana masih belum sampai padatingkat efektifitas maksimal, masih banyak kemungkinan terjadinyaredundancy data atau duplikasi data.
-
7/30/2019 Modul Praktikum_basisdata 1
19/65
19
BCNF : tahap normalisasi setelah 3NF , yang mana efektifitas telahmencapai maksimal, kemungkinan terjadinya redundancy data danduplikasi data lebih kecil daripada 1NF.
Tugas :
1. Bangun sebuah ER-Diagram untuk database anda. Serta bangun tabel-tabeluntuk ER-diagramnya dan setiap tabel jelas relasinya! (dengan menggunakanPower Designer)
-
7/30/2019 Modul Praktikum_basisdata 1
20/65
20
MODUL III
DDL I
Dasar Teori
DDL atau Data Definition Language adalah bagian dari sql yang digunakan
untuk mendefinisikan data dan objek database. Apabila perintah ini digunakan,
entri akan dibuat ke dalam kamus data dari SQL. Didalam kategori ini terdapat
perintah-perintah sebagai berikut :
Perintah Keterangan
Create Table Membuat tabel
Create Index Membuat inde x
Alter Table Mengubah atau menyisipkan kolom ke dalam tabel
Drop Table Menghapus tabel dari database
Drop Index Menghapus index
Grand Memberikan ijin akses kepada user
Tujuan :
v Praktikan dapat memahami dan membuat databasev Praktikan dapat memaha mi dan membuat table daridatabasev Mahasiswa mampu membuat script untuk pembuatan tabel dan
mengupdate tabe
Tugas Pendahuluan
1.
Buat resume tentang DDL kemudian pelajari
-
7/30/2019 Modul Praktikum_basisdata 1
21/65
21
Praktikum
a. Membuat DatabaseSyntax : CREATE DATABASE namadatabase;
namadatabase tidak boleh mengandung spasi dan tidak boleh memiliki nama
yang sama antar database.
Syntax tambahan : untuk menampilkan daftar nama database yang ada pada
mysql menggunakan perintah :
SHOW DATABASES;
b. Menghapus DatabaseSyntax : DROP DATABASE namadatabase;
Database yang akan dihapus sesuai dengan namadatabase. Berikut ini perintah
untuk menghapus database dengan nama rental :
c. Membuat TabelSebelum membuat suatu tabel, terlebih dahulu harus memilih salah satu
database sebagai database aktif yang akan digunakan untuk menyimpan tabel-
tabel dengan menggunakan syntax : USE namadatabase; Syntax membuat table
:
CREATE TABLE namatabel
(
Field1 TipeData1,Field2 TipeData2
);
namatabel tidak boleh mengandung spasi (space). Field1 dan TipeData1
merupakan nama kolom pertama dan tipe data untuk kolom pertama. Jika ingin
membuat tabel dengan kolom lebih dari satu, maka setelah pendefinisian tipe
data sebelumnya diberikan tanda koma (,).
Syntax tambahan :
Untuk menampilkan daftar nama tabel yang ada pada database yang sedangaktif/digunakan (dalam ha l ini database rental) :
SHOW TABLES;
Untuk mena mpilkan deskripsi tabel (dalam hal ini jenisfilm) syntaxnya adalah :
DESC namatabel;
d. Menghapus TabelSyntax : DROP TABLE namatabel;
Tabel yang akan dihapus sesuai dengan namatabel, berikut ini perintah untukmenghapus tabel dengan nama jenisfilm :
-
7/30/2019 Modul Praktikum_basisdata 1
22/65
22
e. Mendefinisikan null/not nullSyntax :
CREATE TABLE namatabel
(
Field1 TipeData1 NOT NULL,
Field2 TipeData2
);
Tugas :
1. Buatlah sebuah database sesuai dengan ER-Diagram yang anda buat ( dariPower designer generate) script pembuatan tabelnya dengan perintah
DDLkemudian beri nama database sesuai dengan nama mahasiswa!2. Buatlah tabel-tabelnya yang juga sesuai dengan ER-Diagram yang anda
buat!
-
7/30/2019 Modul Praktikum_basisdata 1
23/65
23
MODUL IV
DDL II
Dasar Teori
Data Definition Language (DDL) digunakan untuk membuat dan
menghancurkan database dan objek database. Perintah-perintah ini terutama akan
digunakan oleh database administrator selama fase setup dan penghapusan proyekdatabase. Mari kita melihat struktur dan penggunaan perintah DDL empat dasar:
CREATE
Instalasi sistem manajemen database (DBMS) pada komputer memungkinkan
Anda untuk membuat dan mengelola banyak database independen
US E
Perintah USE memungkinkan Anda untuk menentukan database yang ingin bekerja
dengan Anda dalam DBMSSangat penting untuk selalu sadar akan database Anda bekerja dalam sebelum
mengeluarkan perintah SQL yang memanipulasi data.
ALTER
Setelah Anda telah membuat tabel dalam database, Anda mungkin ingin
memodifikasi definisi itu. The ALTER command allows you to make changes to
the structure of a table without deleting and recreating it. ALTER perintah yang
memungkinkan Anda untuk membuat perubahan pada struktur tabel tanpa
menghapus dan menciptakan
Tujuan :
v Praktikan dapat memahami dan membuat databasev Praktikan dapat mengerti tentang Primary key
Tugas Pendahuluan1. Buat desain entitas dan relasi dari database yang akan dibuat
dalam praktikum (setiap entitas sudah terdapat primary key)
-
7/30/2019 Modul Praktikum_basisdata 1
24/65
24
DROP
Perintah terakhir dari Data Definition Language, DROP, memungkinkan kita untuk
menghapus seluruh objek database dari DBMS. Gunakan perintah ini dengan hati-
hati! Ingat bahwa perintah DROP menghapus data keseluruhan struktur dari
database Anda. Jika Anda ingin menghapus catatan individu, gunakan perintah
DELETE Manipulasi Data Bahasa.
Praktikum:
a. Mendefinisikan Nilai DefaultNilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu
kolom ketika ada penambahan baris baru, sementara nilai pada kolom tersebut
tidak diisi o leh pengguna. Syntax :
CREATE TABLE namatabel
(Field1 TipeData1,
Field2 TipeData2 DEFAULT n ilai
);
nilai adalah nilai default dari kolom tersebut.
b. Mendefinisikan Primary Key Pada TabelTerdapat tiga cara untuk mendefin isikan p rimary key. Berikut ini adalah Syntax
mendefinisikan primary key untuk Field1
CREATE TABLE namatabel(
Field1 TipeData1 NOT NULL PRIMARY KEY,
Field2 TipeData2
);
Atau
CREATE TABLE namatabel
(Field1 TipeData1,
Field2 TipeData2,
PRIMARY KEY(Field1)
);
atau
ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARY
KEY (namakolom);:
-
7/30/2019 Modul Praktikum_basisdata 1
25/65
25
c. Menghapus Primary Key Pada TabelPerintah :
Cara 1 : Jika primary key dibuat dengan menggunakan alter table :
ALTER TABLE namatabel DROP CONSTRAINT namaconstraint;
Cara 2 : Jika primary key dibuat melalui create table :
ALTER TABLE namatabel DROP PRIMARY KEY;
d. Menambah Kolom Baru Pada TabelSyntax :
ALTER TABLE namatabelADDfieldbaru tipe;
namatabel adalah nama tabel yang akan ditambah fieldnya. Fieldbaru adalah
nama kolom yang akan ditambahkan, tipe adalah tipe data dari kolom yangakan ditambahkan.
e. Mengubah Tipe Data atau Lebar Kolom Pada TabelPerintah :
ALTER TABLE namatabelMODIFY COLUMNfieldtipe
namatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya.
Field adalah kolom yang akan diubah tipe data atau lebarnya. Tipe adalah tipe
data baru atau tipe data lama dengan lebar kolom yang berbeda.
f. Mengubah Nama KolomSyntax :
ALTER TABLE namatabel CHANGE COLUMN namalamakolom
namabarukolom tipedatanya;
namatabel adalah nama tabel yang akan diubah nama kolomnya,
namalamakolom adalah kolom yang akan diganti namanya, namabarukolom
adalah nama baru kolom, tipedatanya adalah tipe data dari kolom tersebut.
Berikut ini perintah untuk mengubah nama ko lom keterangan menjadi ket :
g. Menghapus Kolom Pada TabelSyntax :
ALTER TABLE namatabel DROP COLUMN namakolom;
h. Mendefinisikan Foreign Key Pada TabelUntuk mendefinisikan foreign key, maka harus dipastikan bahwa tabel dan
atribut yang dirujuk (tabel induk dari foreign key) sudah didefinisikan terlebih
dahulu. Syntax :CREATE TABLE namatabel
-
7/30/2019 Modul Praktikum_basisdata 1
26/65
26
(
Field1 TipeData1,
Field2 TipeData2,
FOREIGN KEY (Field2) REFERENCES namatabelinduk
(namakolominduk)ON UPDATE CASCADE
ON DELETE NO ACTION
)
atau
ALTER TABLE namatabel ADD CONSTRAINT namaconstraint FOREIGN
KEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ON
UPDATE CASCADE ON DELETE NO ACTION;
i. Menghapus Foreign KeyPerintah :
ALTER TABLE namatabelDROP FOREIGN KEY namaconstraint;
Tugas :
1. Beri Primary key pada tiap tabel yang anda buat pada database2. Tambahkan satu kolom baru pada database yang anda buat3. Ganti nama salah satu kolom anda dengan perintah yang tertera pada modul
-
7/30/2019 Modul Praktikum_basisdata 1
27/65
27
MODUL V
DML (DATA MANIPULATION LANGUAGE)
Dasar Teori
DML (Data Manipulation Language) adalah bahasa yang
memungkinkan pengguna mengakses atau memanipulasi data seperti yang diatur
oleh model data. Manipulasi data adalah : Pengambilan informasi yang disimpan dalam basisdata Penempatan informasi baru dalam basisdata Penghapusan informasi dari basisdata Modifikasi informasi yang disimpan dalam basisdata
DML (Data Manipulation Language) merupakan bahasa yang bertujuan
memudahkan pemakai untuk mengakses data sebagaimana direpresentasikan oleh
model data. Ada 2 jenis DML, yaitu :
Prosedural, yang mensyaratkan agar pemakai menentukan, data apa yangdiinginkan serta bagaimana cara mendapatkannya.
Nonprosedural, yang membuat pe makai dapat menentukan data apa yangdiinginkan tanpa menyebutkan bagaimana cara mendapatkannya.
Query adalah pernyataan yang meminta pengguna mengambil informasi. Bagian
DML yang terlibat dalam pengambilan informasi disebut bahasa query. Istilah
bahasa query sering disamakan dengan istilah bahasa manipu lasi data. Sedangkan
SQL adalah sebuah sintaks untuk mengeksekusi query.
Praktikum
Coba semua contoh operasi DML di bawah ini :1. Pernyataan INSERT INTO
Tujuan :
v Prakt ikan dapat memahami dan mengisi tabel dalam databasev Prakt ikan dapat memahami dan memanipulasi data dalam database
Tugas Pendahuluan
v Apa yang anda ketahui tentang DML?v Apa yang anda ketahui tentang perintah INSERT, UPDATE dan
DELETE?
v Sebutkan dan jelaskan macam-macam klausa maupun operator yangterdapat dalam perintah SELECT!
-
7/30/2019 Modul Praktikum_basisdata 1
28/65
28
Pernyataan INSERT INTO digunakan untuk memasukkan data baru
pada tabel.
Sintaks :
INSERT INTO nama_tabel
VALUES (n ilai1, n ilai2, ...)
Urutan nilai yang diletakkan dalam tanda kurung disesuaikan dengan urutan kolom
dalam tabel. Akan tetapi kita bisa menentukan kolom-kolom yang akan diisi
dengan data baru, yaitu :
INSERT INTO nama_tabel (kolom1, kolom2, ...)
VALUES (n ilai1, n ilai2, ...)
Kolom-kolom yang tidak disebutkan pada Insert secara otomatis akan diisi dengan
Null dan kolom yang tidak disebutkan dalam Insert harus lah yang tidak Not Null.
Contoh :
Insert Into MahasiswaValues ('01012','Irwan','Jl.Beo 23','Bogor')
2. Pernyataan UPDATEPernyataan UPDATE digunakan untuk modifikasi data dalam tabel.
Sintaks :
UPDATE nama_tabel
SET nama_kolom = nilai_baru
WHERE nama_kolom = nilai
Pada pernyataan diatas : SET untuk menentukan kolom yang akan diubah dan nilai penggantinya. WHERE menentukan kondisi dari baris-baris yang akan diganti.
Contoh :
Update Mahasiswa Set Nama ='Riri'
Where NPM='01010'
3. Pernyataan DELETEPernyataan DELETE digunakan untuk menghapus baris pada tabel.
Sintaks :DELETE FROM nama_tabel
WHERE nama_kolom = nilai
Contoh :
Untuk menghapus baris pada tabel Mahasiswa yang nilai NPMnya adalah 01013,
anda bisa memberikan pernyataan seperti berikut :
Delete From Mahasiswa
Where NPM =01013
Dalam perintah DELETE jika kita ingin menghapus semua data pada tabel tanpamenghapus tabel maka Where tidak perlu d isebutkan.
-
7/30/2019 Modul Praktikum_basisdata 1
29/65
29
DELETE FROM nama_tabel
Atau
DELETE * FROM nama_tabel
4. Pernyataan S ELECTSecara umum perintah SELECT hanya difungsikan untuk menampilkan data
yang ada di dalam suatu tabel. Tetapi dalam pengembangannya, perintah ini akan
menjadi sebuah perintah yang sangat penting dan berpengaruh hingga saat
pemrograman di s tored procedures dan triggers. Sementara ini dalam basis data 1
yang kita bahas hanya pernyataan SELECT yang digunakan untuk memilih data
dari tabel, yang mana hasilnya disimpan dalam tabel hasil yang disebut Result Set.
Sintaks :
SELECT nama_kolom
FROM nama_tabel
Untuk memilih beberapa kolom gunakan pernyataan SELECT sebagai berikut :
SELECT nama_kolom1, nama_kolom2, ...
FROM nama_tabel
Contoh :
Select NPM, Nama
From Mahasiswa
Merupakan pernyataan untuk menampilkan kolom NPM dan Nama yangterdapat pada tabel Mahasiswa.
NPM Nama
----- ------------------------------
01001 Rudi
01002 Iwan
01005 Wati
01006 Jihan
01007 Nova
01009 Budi
Untuk memilih semua kolom dari tabel, dapat menuliskan tanda asterisk ( * )
sesudah kata Select. Simbol * berarti semua kolom, seperti berikut :
SELECT *
FROM nama_tabel
Contoh :
Select *
From Mahasiswa
4.1 Distinct
-
7/30/2019 Modul Praktikum_basisdata 1
30/65
30
Untuk memilih hanya nilai yang berbeda, gunakan pernyataan SELECT
DISTINCT.
Sintaks :
SELECT DISTINCT nama_kolom
FROM nama_tabel
4.2 Klausa WHEREKlausa WHERE digunakan untuk menentukan kriteria seleksi. Untuk memilih
data suatu tabel dengan kriteria tertentu, klausa WHERE dapat ditambahkan pada
pernyataan SELECT.
Sintaks :
SELECT nama_kolom
FROM nama_tabel
WHERE ko lom operator nilai
Dengan klausa WHERE, operator berikut dapat digunakan :
Operator Keterangan
= Sama dengan
Tidak sama dengan
> Lebih besar dari
< Lebih kecil dari
>= Lebih besar atau sama dengan
-
7/30/2019 Modul Praktikum_basisdata 1
31/65
31
Tanda % dapat digunakan untuk menentukan Wildcard (sembarang huruf), ba ik
sebelum maupun sesudah pola. Pernyataan SQL berikut akan menghasilkan nama
mahasiswa yang dimulai dengan huruf A :
Select *
From Mahasiswa
Where NamaDepan LIKE A%
Pernyataan SQL berikut menghasilkan na ma mahasiswa yang diakhiri huruf a :
Select *
From Mahasiswa
Where NamaDepan LIKE %a
Pernyataan SQL berikut menghasilkan nama mahasiswa yang mengandung pola
di:
Select *From Mahasiswa
Where NamaDepan LIKE %di%
Tugas :
Dari topik pembuatan aplikasi basis data yang telah anda buat, buatlah masing-
masing perintah DML berikut :
1. Sisipkan min 10 baris data dalam masing-masing tabel2. Tambahkan min 2 operasi update, delete, dan select
-
7/30/2019 Modul Praktikum_basisdata 1
32/65
32
MODUL VI
DML (DATA MANIPULATION LANGUAGE)
Dasar Teori
Perintah SELECT adalah perintah untuk menampilkan data yang ada di
dalam suatu tabel, yang mana dalam pengembangannya perintah ini akan menjadi
sebuah perintah yang sangat penting dan berpengaruh hingga saat pemrograman distored procedures dan triggers. Selain perintah-perintah SELECT yang dibahas
dalam modul V masih ada banyak perintah-perintah SELECT lain, antara lain
perintah ALIAS, mena mpilkan data lebih dari 2 tabel, ORDER BY, AND dan OR,
GROUP BY dan HAVING, fungsi agregate, dan beberapa perintah yang lain.
Praktikum
Coba semua contoh operasi DML di bawah ini :
1. ALIASPerintah Select dapat dilakukan dengan memberikan nama ALIAS yaitu dapat
digunakan untuk mengganti nama_kolom dan nama_tabel.
1.1 Memberikan nama lain pada kolomSintaks untuk alias nama kolom :
SELECT namakolomlama AS namakolombaru
FROM namatabel;
Atau
SELECT nama_kolom AS nama_alias_kolom
FROM nama_tabel
Tujuan :
v Praktikan dapat memahami dan memanipulasi data dalam databasedengan lebih luas lagi.
Tugas Pendahuluan
v Sebutkan dan jelaskan macam-macam klausa maupun operator yangterdapat dalam perintah SELECT selain yang sudah disebutkan di
modul sebelumnya (modul V)!
v Buat contoh perintah SQLnya, masing-masing min 1 !
-
7/30/2019 Modul Praktikum_basisdata 1
33/65
33
Jika kita ingin membuat nama alias untuk kolom NamaDepan menjadi ND dan
NamaBelakang menjad i NB, gunakan pernyataan SQL berikut :
SELECT NamaDepan AS ND, NamaBelakang AS NB
FROM Mahasiswa
1.2 Menggunakan alias untuk nama tabelSintaks untuk alias nama tabel :
SELECT nmalias.jenis, nmalias.harga
FROM namatabel nmalias;
Atau
SELECT nama_kolom
FROM nama_tabel
AS nama_alias_tabel
Jika kita ingin membuat nama alias untuk Tabel Mahasiswa menjadi MHS,gunakan pernyataan SQL berikut :
SELECT *
FROM Mahasiswa AS MHS
2. Menampilkan data lebih dari dua tabelPerintah Select juga dapat dilakukan untuk beberapa tabel sekaligus dengan
syarat bahwa tabel-tabel yang akan ditampilkan semua mempunyai relasi baik
secara implisit maupun eksplisit.
Salah satu kunci utama dalam melakukan perintah Select untuk beberapa tabelsekaligus adalah dengan melakukan kondisi relasi antara tabel-tabel yang akan
ditampilkan untuka field yang saling berelasi. Selain itu, juga perlu diperhatikan
tentang tabel yang akan menjadi acuan pertama dalam penampilan data yang
dimaksud. Sebagai contoh adalah jika kita ingin menampilkan data mahasiswa
yang mengambil jurusan, maka tabel acuannya adalah tabel mahasiswa.
Sintaks :
SELECT *
FROM na matabel1, namatabel2, namatabel-n;
Misalkan dalam tabel Mahasiswa field-fieldnya terdiri dari NRP, NamaDepan,
NamaBelakang, Tempat Lahir, TanggalLahir, Alamat, dan KodeJurusan.
Sedangkan di tabel Jurusan field-fieldnya adalah KodeJurusan dan NamaJurusan.
Berikut ini perintah untuk menampilkan semua data pada tabel Mahasiswa dan
Jurusan,
SELECT *
FROM Mahasiswa, Jurusan
Maka tabel yang dihasilkan dari perintah SQL diatas adalah semua field dari tabelMahasiswa dan tabel Jurusan akan ditampilkan, yaitu NRP, NamaDepan,
-
7/30/2019 Modul Praktikum_basisdata 1
34/65
34
NamaBelakang, Tempat Lahir, TanggalLahir, Alamat, Mahasiswa.KodeJurusan,
Jurusan.KodeJurusan, dan NamaJurusan.
3. Klausa Order ByKlausa ORDER BY d igunakan untuk mengurutkan data. Jika kita ingin
menampilkan nama mahasiswa berdasarkan urutan abjad, pernyataan SQL-nya
adalah :
SELECT *
FROM Mahasiswa
ORDER BY NamaDepan
Jika kita ingin menampilkan nama mahasiswa dan kotanya berdasarkan urutan
abjad, maka pernyataan SQL-nya adalah :
SELECT *FROM Mahasiswa
ORDER BY NamaDepan, Kota
Jika kita ingin menampilkan nama mahasiswa dengan urutan abjad terbalik, maka
pernyataan SQL-nya adalah :
SELECT *
FROM Mahasiswa
ORDER BY NamaDepan DESC
Jika kita ingin menampilkan nama mahasiswa berdasarkan urutan abjad terbalik
dan nama kota berdasarkan urutan abjad, maka pernyataan SQL-nya adalah :
SELECT *
FROM Mahasiswa
ORDER BY NamaDepan DESC, Kota ASC
4. Operator AND dan ORAND dan OR menggabungkan dua atau lebih kondisi pada klausa WHERE.
Operator AND menampilkan data jika semua kondisi yang dimintabernilai benar.
Operator OR menampilkan data jika ada kondisi yang benar.Pernyataan SQL untuk menampilkan mahasiswa dengan nama depan Ita dan nama
kota Yogyakarta adalah:
SELECT *
FROM Mahasiswa
WHERE NamaDepan = Ita AND Kota = Yogyakarta
Pernyataan SQL untuk menampilkan mahasiswa dengan nama depan Ita atau kota
Yogyakarta adalah :SELECT *
-
7/30/2019 Modul Praktikum_basisdata 1
35/65
35
FROM Mahasiswa
WHERE NamaDepan = Ita OR Kota = Yogyakarta
Operator AND dan OR dapat digunakan secara bersamaan, yaitu :
SELECT *
FROM Mahasiswa
WHERE (NamaDepan = Ita OR Kota = Yogyakarta) AND (Alamat = Jl.
Jend. Sudirman 3)
5. Klausa GROUP BY dan HAVING5.1 GROUP B Y
Hasil dari Select juga dapat dikelompokkan. Hal ini dapat dilakukan dengan
menambahkan klausa GROUP BY.
Sintaks :SELECT nama_kolom, COUNT (nama_kolom)
FROM nama_tabel
GROUP BY na ma_kolom
Jika kita ingin menampilkan nama mahasiswa yang lahir di satu kota, gunakan
pernyataan berikut :
SELECT Tempat_Lahir, COUNT (Tempat_Lahir) as Jumlah
FROM Mahasiswa
GROUP BY Tempat_Lahir
5.2 HAVINGKlausa HAVING d isediakan untuk mendukung klausa GROUP BY.
Kegunaannya adalah untuk menentukan kondisi bagi GROUP BY. Kelompok yang
memenuhi kondisi HAVING saja yang akan dihasilkan.
Sintaks :
SELECT nama_kolom, COUNT (nama_kolom)
FROM nama_tabel
GROUP BY na ma_kolomHAVING COUNT (nama_kolom) kondisi nilai
Misalnya, pernyataan untuk mencari kota yang menjadi tempat lahir oleh lebih dari
satu mahasiswa adalah:
SELECT Tempat_Lahir, COUNT (Tempat_Lahir) AS Jumlah
FROM MAHASISWA
GROUP BY Tempat_Lahir
HAVING COUNT (Tempat_Lah ir) > 1
6. Fungsi Aggregate (COUNT, SUM, AVG, MIN dan MAX)
-
7/30/2019 Modul Praktikum_basisdata 1
36/65
36
Fungsi aggregate merupakan fungsi-fungsi yang digunakan untuk
melakukan perhitungan statistikal dalam tabel. Secara umum, hanya field yang
bertipe numerik (int, money dan sejenisnya) yang bisa dikenakan fungsi ini. SQL
menyediakan sejumlah fungsi yang dapat digunakan pada SELECT.
Fungsi Keterangan
AVG Menghitung rata-rata
COUNT Menghitung cacah data
MAX Memperoleh nilai terbesar
MIN Memperoleh nilai terkecil
SUM Memperoleh jumlahan data
6.1 COUNTPerintah yang digunakan untuk menghitung jumlah baris suatu kolom pada
tabel. Pernyataan SQL untuk menghitung jumlah baris kolom NamaDepan pada
tabel Mahasiswa adalah :
SELECT COUNT (NamaDepan) AS JumlahMahasiswa
FROM Mahasiswa
6.2 SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada
tabel. Pernyataan SQL untuk menghitung jumlah nilai kolom SKS pada tabel
Matakuliah :
SELECT SUM(SKS) AS TotalSKS
FROM Matakuliah
6.3 AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom
pada tabel. Contoh : perintah untuk menghitung rata-rata dari kolom SKS pada
tabel Matakuliah :
SELECT AVG(SKS) AS RataSKS
FROM Matakuliah
6.4 MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom
pada tabel. Contoh : perintah untuk mena mpilkan nilai terkecil dar i kolom SKS
pada tabel Matakuliah :
SELECT M IN(SKS) AS Ju mlahMinimum
FROM Matakuliah
6.5 MAX
-
7/30/2019 Modul Praktikum_basisdata 1
37/65
37
Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu
kolom pada tabel. Contoh : perintah untuk menampilkan nilai terbesar dari kolom
SKS pada tabel Matakuliah :
SELECT MAX(SKS) AS JumlahMaksimum
FROM Matakuliah
7. Operator INOperator IN bisa digunakan jika kita mengetahui nilai pasti yang akan
diambil untuk setidaknya satu kolom.
Sintaks :
SELECT nama_kolom
FROM nama_tabel
WHERE nama_kolom
IN (nilai1, nilai2, ...)Untuk menampilkan mahasiswa dengan nama depan Hasan atau Adi, gunakan
pernyataan SQL berikut :
SELECT *
FROM Mahasiswa
WHERE NamaDepan
IN (Hasan, Adi)
8. Operator BETWEEN ANDOperator BETWEEN AND memilih data antara dua nilai. Nilai
dapat berupa angka, teks, atau tanggal.
Sintaks :
SELECT nama_kolom
FROM nama_tabel
WHERE nama_kolom
BETWEEN nilai1 AND nilai2
Untuk menampilkan Mahasiswa yang namanya diantara (dan termasuk) Adi dan
Ita, gunakan perintah SQL berikut :
SELECT *FROM Mahasiswa
WHERE NamaDepan
BETWEEN Adi AND Ita
Operator BETW EEN AND diperlakukan secara berbeda pada DBMS berbeda.
Pada satu DBMS, data Mahasiswa yang dimunculkan adalah yang berada diantara
Adi dan Ita, tetapi Adi dan Ita tidak dimunculkan. Pada DBMS lain, Mahasiswa
yang dimunculkan termasuk Adi dan Ita. Kemudian, pada DBMS lainnya, Adi
dimunculkan, tetapi Ita tidak.
Untuk menampilkan Mahasiswa di luar jangkauan contoh, gunakan operator NOTseperti berikut :
-
7/30/2019 Modul Praktikum_basisdata 1
38/65
38
SELECT *
FROM Mahasiswa
WHERE NamaDepan
NOT BETWEEN Adi AND Ita
Tugas :
Dari topik pembuatan aplikasi basis data yang telah anda buat, buatlah masing-
masing perintah DML berikut :
1. Buatlah perintah SQL untuk menampilkan data yang berasal dari duatabel dan tiga tabel.
2. Buatlah perintah SQL yang menggunakan klausa Order By, Group By,dan Having.
3. Buatlah perintah SQL yang menggunakan operator AND, OR, IN danBETWEEN ... AND.
4. Buatlah perintah SQL yang menggunakan fungsi Agregate (masing-masing 1).
-
7/30/2019 Modul Praktikum_basisdata 1
39/65
39
MODUL VII
Evaluasi Praktikum I
Praktikum :
1. Implementasikan database anda pada Power Designer2. Generate database anda pada MySql3. Untuk selanjutnya Ikuti perintah yang diberikan o leh as isten praktikum.
Tujuan :
v Praktikan lebih memaha mi dan mengimplementasikan tentang ERDv Praktikan lebih memahami dan mengimplementasikan tentang DDL
dan DML
Tugas Pendahuluan1. Buatlah ERD database
a. Nrp genap : data base perpusatakaanb. Nrp ganjil : data base retail
-
7/30/2019 Modul Praktikum_basisdata 1
40/65
40
MODUL VIII
DML (DATA MANIPULATION LANGUAGE)
Dasar Teori
Perintah SELECT adalah perintah untuk menampilkan data yang ada didalam suatu tabel, yang mana dalam pengembangannya perintah ini akan menjadi
sebuah perintah yang sangat penting dan berpengaruh hingga saat pemrograman di
stored procedures dan triggers. Selain perintah-perintah SELECT yang dibahas
dalam modul V dan VI, masih ada banyak perintah-perintah SELECT lain yang
lebih luas lagi dalam penggunaan perintah SELECT.
Praktikum
Coba semua contoh operasi DML di bawah ini :
1. JOIN dan KUNCITerkadang kita harus memilih data dari dua tabel atau lebih untukmendapatkan hasil yang komplit. Oleh karena itu, kita harus melakukan sebuah
JOIN. Join merupakan operasi yang digunakan untuk menggabungkan dua tabel
atau lebih dengan hasil berupa gabungan dari kolom-ko lom yang berasal dari tabel-
tabel tersebut. Pada join sederhana, tabel-tabel digabungkan dan didasarkan pada
pencocokan antara kolom pada tabel yang berbeda.
Tabel-tabel dalam sebuah basisdata dapat dihubungkan satu sama lain
menggunakan kunci. Kunci utama adalah sebuah kolom dengan nilai unik untuk
masing-masing baris. Tujuannya adalah menggabungkan data antartabel tanpamengulangi se mua data pada setiap tabel.
Tujuan :
v Praktikan dapat memahami dan memanipulasi data dalam databasedengan lebih luas lagi.
Tugas Pendahuluanv Apa yang anda ketahui tentang JOIN, UNION, INTERSECT,
EXCEPT, dan operator comparison ANY dan ALL?
v Buat contoh perintah SQL untuk SELECT yang menggunakan JOIN,UNION, INTERSECT, EXCEPT, dan operator comparison ANY dan
ALL !
-
7/30/2019 Modul Praktikum_basisdata 1
41/65
41
Misalnya kita memilih data dari dua tabel (tabel Mahasiswa dan Jurusan) dengan
mengacu pada kedua tabel sebagai berikut :
SELECT MAHASISWA.NamaDepan, JURUSAN.NamaJurusan
FROM MAHASISWA, JURUSAN
WHERE MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan
Untuk mengetahui siapa yang mengambil jurusan Teknik Informatika, gunakan
pernyataan SQL berikut :
SELECT MAHASISWA.NamaDepan
FROM MAHASISWA, JURUSAN
WHERE MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan
AND JURUSAN.NamaJurusan = "Teknik Informatika"
Kita pun bisa menggunakan kata kunci JOIN untuk memilih data. Ada tiga macam
kunci JOIN, yaitu INNER JOIN, LEFT JOIN, dan RIGHT JOIN.
1.1 INNER JOINInner join digunakan untuk menampilkan data dari dua tabel yang
berisi data sesuai dengan syarat di belakang on (tidak boleh null), dengan kata lain
semua data dari tabel kiri mendapat pasangan data dari tabel sebelah kanan.
Sintaks untuk INNER JOIN :
SELECT field1, field2,
FROM tabel1 INNER JOIN tabel2
ON tabel1.kunci_utama = tabel2.kunci_asingMisalnya, untuk mengetahui siapa yang telah mengambil jurusan dan jurusan apa
yang diambil, kita dapat menggunakan pernyataan berikut :
SELECT MAHASISWA.NamaDepan, JURUSAN.NamaJurusan
FROM MAHASISWA INNER JOIN JURUSAN
ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan
INNER JOIN akan memunculkan semua baris kedua tabel jika ada pasangannya.
Jika ada baris pada Tabel Mahasiswa yang tidak memiliki pasangan, maka baris
tidak akan dimunculkan pada Tabel Jurusan.
1.2 LEFT JOINLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri
perintah left join beserta pasangannya dari tabel sebelah kanan. Meskipun terdapat
data dari sebelah kiri tidak memiliki pasangan, tetap akan ditampilkan dengan
pasangannya berupa nilai NULL.
Sintaks untuk LEFT JOIN :
SELECT field1, field2,
FROM tabel1 LEFT JOIN tabel2
ON tabel1.kunci_utama = tabel2.kunci_asing
-
7/30/2019 Modul Praktikum_basisdata 1
42/65
42
Misalkan, kita ingin menampilkan semua mahasiswa dan jurusan yang diambil,
jika ada. Kita dapat menggunakan pernyataan berikut :
SELECT MAHASISWA.NamaDepan, JURUSAN.NamaJurusan
FROM MAHASISWA LEFT JOIN JURUSAN
ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan
LEFT JOIN akan memunculkan semua baris tabel pertama (Mahasiswa), bahkan
jika t idak ada pasangannya di tabel kedua (Jurusan). Jika ada baris pada tabel
Mahasiswa yang tidak ada pasangannya pada tabel Jurusan, maka ia pun akan
dimunculkan.
1.3 RIGHT JOINRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan
perintah right join beserta pasangannya dari tabel sebelah kiri. Meskipun terdapat
data dari sebelah kanan tidak memiliki pasangan, tetap akan ditampilkan denganpasangannya berupa nilai NULL.
Sintaks untuk RIGHT JOIN :
SELECT field1, field2,
FROM tabel1 RIGHT JOIN tabel2
ON tabel1.kunci_utama = tabel2.kunci_asing
Misalkan, kita ingin menampilkan semua nama dari tabel Mahasiswa dan Jurusan
yang diambil, jika ada. Kita dapat menggunakan pernyataan berikut :
SELECT MAHASISWA.NamaDepan, JURUSAN.NamaJurusan
FROM MAHASISWA RIGHT JOIN JURUSANON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan
RIGHT JOIN akan memunculkan semua baris tabel kedua (Jurusan), bahkan jika
tidak ada pasangannya di tabel pertama (Mahasiswa). Jika ada baris pada tabel
Jurusan yang tidak ada pasangannya pada tabel Mahasiswa, maka ia pun akan
dimunculkan.
Untuk mengetahui siapa yang mengambil jurusan Manajemen Informatika, kita
menggunakan pernyataan berikut :
SELECT MAHASISWA.NamaDepanFROM MAHASISWA INNER JOIN JURUSAN
ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan
WHERE JURUSAN.NamaJurusan = Manajemen Informatika
2. UNION dan UNION ALL2.1 UNION
Perintah UNION digunakan untuk memilih informasi yang berhubungan dari
dua tabel, mirip dengan perintah JOIN. Namun, ketika menggunakan perintah
UNION, tipe data semua kolom yang dipilih harus sama. UNION hanyamemunculkan nilai unik.
-
7/30/2019 Modul Praktikum_basisdata 1
43/65
43
Sintaks :
Pernyataan 1
UNION
Pernyataan 2
Misalkan, kita mempunyai tabel baru bernama Mahasiswa2 dimana field-fieldnya
adalah sama dengan field di tabel Mahasiswa yaitu NRP, NamaDepan,
NamaBelakang, TempatLah ir, TanggalLahir, dan Alamat. Maka untuk
menampilkan semua Mahasiswa pada tabel Mahasiswa dan Mahasiswa2, gunakan
pernyataan berikut :
SELECT NamaDepan FROM MAHASISWA
UNION
SELECT NamaDepan FROM MAHASISWA2
Perintah tidak dapat digunakan untuk menampilkan semua mahasiswa pada tabel
Mahasiswa dan Mahasiswa2. Pada contoh, kita mempunyai dua mahasiswa dengannama sama (yaitu Hasan Martono) dan dua mahasiswa dengan nama depan sama
(yaitu Kiki), maka hanya satu yang dimunculkan karena perintah UNION hanya
memilih nilai unik.
2.2 UNION ALLPerintah UNION ALL sama dengan perintah UNION, kecuali bahwa UNION
ALL memilih semua nilai.
Sintaks :
Pernyataan 1UNION ALL
Pernyataan 2
Dengan menggunakan tabel Mahasiswa dan Mahasiswa2, kita dapat menggunakan
pernyataan berikut untuk mena mpilkan semua mahasiswa dari dua tabel :
SELECT NamaDepan FROM MAHASISWA
UNION ALL
SELECT NamaDepan FROM MAHASISWA2
3. Pernyataan SELECT INTOPernyataan SELECT INTO digunakan untuk membuat backup suatu tabel.Sintaks :
SELECT nama_kolom INTO nama_tabel_baru
IN basisdata_baru FROM Sumber
Contoh berikut adalah membuat backup Tabel Mahasiswa.
SELECT * INTO Mahas iswa_Backup
FROM Mahasiswa
Klausa IN dapat digunakan untuk menyalin tabel ke basisdata lain.
SELECT Mahasiswa.* INTO Mahasiswa IN Backup.mdbFROM Mahasiswa
-
7/30/2019 Modul Praktikum_basisdata 1
44/65
44
Jika hanya ingin menyalin beberapa field, kita dapat melakukannya dengan
menuliskan field-field setelah pernyataan SELECT.
SELECT NamaDepan, NamaBelakang INTO Mahasiswa_Backup
FROM Mahasiswa
Kita dapat pula menambahkan klausa WHERE.
Contoh berikut adalah membuat tabel Mahasiswa_Backup dengan dua kolom
(NamaDepan, NamaBelakang) dengan memilih Mahasiswa yang tempat lahirnya
di Yogyakarta dari tabel Mahas iswa.
SELECT NamaDepan, NamaBelakang INTO Mahasiswa_Backup
FROM Mahasiswa
WHERE Tempat_Lah ir = Yogyakarta
Kita pun dapat memilih data lebih dari satu tabel.
Contoh berikut adalah membuat tabel baru Mahasiswa_Jurusan_Backup yang
mengandung data dua tabel, Mahasiswa dan Jurusan.SELECT Mahasiswa.NamaDepan, Jurusan.NamaJurusan
INTO Mahasiswa_Jurusan_Backup
FROM Mahasiswa INNER JOIN Jurusan
ON Mahasiswa.KodeJurusan = Jurusan.KodeJurusan
4. Operator comparison ANY dan ALL4.1 Operator ANY
Operator ANY digunakan berkaitan dengan subquery. Operator ini
menghasilkan TRUE (benar) jika paling tidak salah satu perbandingan dengan hasilsubquery menghasilkan nilai TRUE. Ilustrasinya :
Gaji > ANY (S)
Jikasubquery S menghasilkan G1, G2, ..., Gn , maka kondisi di atas identik dengan:
(gaji > G1) OR (gaji > G2) OR ... OR (gaji > Gn)
Misalkan perintah untuk menampilkan semua data SKS yang jumlahnya bukan
yang terkecil :
SELECT * FROM Matakuliah
WHERE SKS > ANY (SELECT SKS FROM Matakuliah)
4.2 Operator ALLOperator ALL digunakan untuk melakukan perbandingan dengan subquery.
Kondisi dengan ALL menghasilkan nilai TRUE (benar) jika subquery tidak
menghasilkan apapun atau jika perbandingan menghasilkan TRUE untuk setiap
nilai query terhadap hasilsubquery.
Misalkan perintah untuk menampilkan data SKS yang jumlahnya paling tinggi :
SELECT * FROM Matakuliah
WHERE SKS >= ALL (SELECT SKS FROM Matakuliah)
-
7/30/2019 Modul Praktikum_basisdata 1
45/65
45
5. UNION, INTERS ECT dan EXCEPT5.1 UNION
UNION merupakan operator yang digunakan untuk menggabungkan hasil
query, dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel
yang akan ditampilkan datanya harus sama.
Berikut ini perintah untuk memperoleh data pada tabel Mahasiswa dimana tempat
lahirnya Yogyakarta dan Surabaya :
SELECT NamaDepan, Tempat_Lahir
FROM Mahasiswa
WHERE Tempat_Lah ir = "Yogyakarta"
UNION
SELECT NamaDepan, Tempat_Lahir
FROM Mahasiswa
WHERE Tempat_Lahir = "Surabaya";Perintah di atas identik dengan :
SELECT NamaDepan, Tempat_Lahir
FROM Mahasiswa
WHERE Tempat_Lah ir = Yogyakarta OR Te mpat_Lahir = Surabaya
Namun tidak semua penggabungan dapat dilakukan dengan OR, yaitu jika bekerja
pada dua tabel atau lebih.
5.2 INTERS ECTINTERSECT merupakan operator yang digunakan untuk memperoleh data
dari dua buah query dimana data yang ditampilkan adalah yang memenuhi kedua
query tersebut dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing
tabel yang akan ditampilkan datanya harus sama.
Syntax :
SELECT * FROM namatabel1
INTERSECT
SELECT * FROM namatabel2
Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat
menggunakan operator IN yang bisa diperdalam di bagian Nested Queries.
5.3 EXCEPT / Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari
dua buah query dimana data yang ditampilkan adalah data yang ada pada hasil
query 1 dan tidak terdapat pada data dari hasil query 2 dengan ketentuan jumlah,
nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya
harus sama.
Syntax :
SELECT * FROM namatabel1EXCEPT
-
7/30/2019 Modul Praktikum_basisdata 1
46/65
46
SELECT * FROM namatabel2
Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat
menggunakan operator NOT IN yang bisa diperdalam di bagian Nested Queries.
Tugas :
Dari topik pembuatan aplikasi basis data yang telah anda buat, buatlah masing-
masing perintah DML berikut :
5. Buatlah perintah SQL untuk mena mpilkan data yang berasal dari duatabel dan tiga tabel dengan menggunakan perintah JOIN.
6. Buatlah perintah SQL yang menggunakan UNION, INTERSECT, danEXCEPT.
7. Buatlah perintah SQL yang menggunakan operator comparison ANY danALL.
-
7/30/2019 Modul Praktikum_basisdata 1
47/65
47
MODUL 9NORMALISASI DATA
1. Dasar Teori1.1. Normalisasi
Normalisas i merupakan cara pendekatan dalam membangun desain
logika basis data relasional yang tidak secara langsung berkaitan dengan
model data, tetapi dengan menerapkan sejumlah aturan dan kriteria standar
untuk meghasilkan struktur tabel yang normal. Pada dasarnya desain logika
bas is data relasional dapat menggunakan prinsip normalisasi maupun
transformasi dari model ER ke bentuk fisik.
Pada pembahasan tentang normalisasi data, digunakan istilah baru
yang disebut dengan functinal dependencies atau ketergantungan fungsional.
Tujuan :
Mampu membangun desain logika basis data relasional untuk
menghasilkan struktur tabel yang normal.
PrePraktikum
1. Apakah yang anda ketahui tentang normalisasi?2. Mengapa suatu tabel perlu dinormalisasikan?3. Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal.
Apa yang disebut dengan bentuk normal?
4. Sebutkan dan jelaskan macam-macam dari bentuk normal agar dapatdimanfaatkan untuk memperoleh tabel dan basis data yang lebih
-
7/30/2019 Modul Praktikum_basisdata 1
48/65
48
1.2. Ketergantungan Fungsional (Functional Dependencies)Functional Dependency menggambarkan hubungan attributes dalam
sebuah relasi. Suatu atribut dikatakan functionally dependant pada yang lain
jika kita menggunakan harga atribut tersebut untuk menentukan harga atribut
yang lain. Simbol yang digunakan adalah untuk mewakili functional
dependency ( dibaca secara fungsional menentukan).
Notasi: A B
A dan B adalah atribut dari sebuah tabel. Berarti secara fungsional A
menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 baris
data dengan nilai A yang sama, maka nilai B juga sama. Diberikan 2 baris
r1 dan r2 da lam tabel T dimana AB
Jika r1(A)=r2(A), maka r1(B) = r2(B)
Dimisalkan relasi nilai_mhs memiliki empat buah atribut/field yaitu
nama_kul, nim, nama_mhs dan nilai. Maka ketergantungan fungsional
pada relasi tersebut adalah:
a. nim nama_mhsyang artinya bahwa atribut nama_mhs hanya tergantung pada atribut nim.
Hal in i dibuktikan dari fakta: untuk setiap nilai n im yang s ama, maka pasti
nilai nama_mhs nya juga sama.
b. nama_kul, nim nilaiyang berarti bahwa atribut nilai tergantung pada atribut nama_kull dan
nim secara bersama-sama. Untuk ketergantungan fungsional seperti ini
sesuai dengan pengertian bahwa setiap nilai diperuntukkan pada
mahasiswa tertentu untuk matakuliah tertentu yang diambil. Dalam arti
lain untuk nama_kul dan nim yang sama, maka nilai juga sama, karena
nama_kul dan nim merupakan key (bersifat unik).
Notasi: A non B atau A x B
-
7/30/2019 Modul Praktikum_basisdata 1
49/65
49
Adalah kebalikan dari notasi sebelumnya, dengan hanya melihat fakta
yang ada, yaitu:
a. nama_kul non nimyang artinya atribut nim tidak tergantung pada atribut nama_kul.
b. nim non nilaiyang artinya atribut nilai tidak hanya tergantung pada atribut nim,
karena tergantung pula pada atribut nama_kul yaitu nama kuliah yang
diambil oleh n im.
1.3. Bentuk-Bentuk NormalisasiBentuk-bentuk normal dapat dimanfaatkan untuk memperoleh tabel
dan basis data yang lebih baik.
1.3.1. Bentuk Normal Pertama (1NF)Suatu tabel dikatakan dalam bentuk normal pertama hanya kalau
setiap kolom bernilai tunggal untuk setiap baris. Sehingga tidak diperbo leh
adanya :
Atribut yang bernilai banyak (Multivaluedattribut).
Attribut kompos it atau kombinasi dari keduanya.
Berikut ini akan d icontohkan normalisas i dari tabel kuliah yang memiliki
atribut:
Kode_kul Nama_kul Sks Smstr Waktu Ruang Nama_
C1234 Matematika 1 2 1 1 RKB-3 Devie
C1243 Riset Operasi 2 5 1 RKB-1 Rosa
C1342 ADSI 2 3 2 RKB-3 Anamis
Tabel kuliah tersebut tidak memenuhi normalisasi pertama, karena terdapat
atribut waktu yang tergolong ke dalam atribut bernilai banyak. Agar tabel
-
7/30/2019 Modul Praktikum_basisdata 1
50/65
50
tersebut dapat memenuhi 1NF, maka solusinya adalah mendekomposisi tabel
kuliah menjad i:
1. Tabel KuliahKode_kul Nama_kul Sks Smstr Nama_dosen
C1234 Matematika 1 2 1 Devie
C1243 Riset Operasi 2 5 Rosa
C1342 ADSI 2 3 Anamisa
2. Tabel JadwalKode_kul Waktu Ruang
C1234 1 RKB-3
C1243 1 RKB-1
C1342 2 RKB-3
1.3.2. Bentuk Normal Kedua (2NF)Suatu tabel disebut dalam bentuk normal kedua, jika :
1. Tabel berada dalam bentuk normal pertama2. Semua kolom yang bukan primary key tergantung sepenuhnya terhadap
primary key
3. Disebut tergantung sepenuhnya terhadap primary key jika suatu kolomselalu bernilai sama untuk nilai primary key yang sama.
Sebuah tabel dikatakan tidak memenuhi 2NF, jika ketrgantungan
hanya bersifat parsial (hanya tergantung pada sebagian dari primary key).
Bentuk normal kedua akan dicontohkan pada tabel nilai berikut ini:
Kode_kul Nim Nilai
C1234 7402030007 A
C1243 7402030008 B+
-
7/30/2019 Modul Praktikum_basisdata 1
51/65
51
C1342 7402030009 B
Jika pada tabel nilai, misalnya kita tambahkan sebuah atribut yang bersifat
redudan yaitu nama_mhs, maka tabel nilai ini dianggap melanggar 2NF.
Primary key pada tabel nilai adalah [kode_kul, nim]. Penambahan atribut baru
(nama_mhs) akan menyebabkan adanya ketergantungan fungsional yang baru
yaitu nimnama_mhs. Karena atribut nama_mhs ini hanya memiliki
ketergantungan parsial pada primary key secara utuh (hanya tergantung pada
nim, padahal nim hanya bagian dari primary key). Bentuk normal kedua ini
dianggap belum memadai karena meninjau sifat ketergantungan atribut
terhadap primary key saja.
1.3.3. Bentuk Normal Ketiga (3NF)Suatu tabel dikatakan dalam bentuk normal ketiga, jika :
1. Berada dalam bentuk normal kedua2. Setiap kolom bukan primary key t idak memiliki ketergantung transitif
terhadap primary key
Suatu kolom Z memiliki ketergantungan transitif terhadap kolom X, jika :
1. Y memiliki ketergantungan fungsional terhadap X, dan2. Z memiliki ketergantungan fungsional terhadap Y
Misalkan pada tabel Mahasiswa, atribut alamat_mhs dipecah ke dalam
alamat_jalan, alamat_kota dan kode_pos. Bentuk ini tidak memenuhi 3NF
karena terdapat ketergantungan fungsional baru yang muncul pada tabel
tersebut yaitu:
alamat_jalan nama_kota kode_pos
Dalam hal ini (alamat_jalan, nama_kota) bukan superkey sementara kode_pos
juga bukan bagian dari primary key pada tabel mahasiswa. Jika tabel
mahasiswa didekomposisi menjadi tabel mahasiswa dan tabel alamat, maka
-
7/30/2019 Modul Praktikum_basisdata 1
52/65
52
telah memenuhi 3NF. Hal ini dapat dibuktikan dengan memeriksa dua
ketergantungan fungsional pada tabel alamat tersebut, yaitu:
alamat_jalan nama_kota kode_pos
kode_pos nama_kota
1.4. Bentuk Normal Tahap Keempat dan KelimaPenerapan aturan normalisasi sampai bentuk normal ketiga sudah
memadai untuk menghasilkan tabel berkualitas baik. Namun demikian,
terdapat pula bentuk normal keempat (4NF) dan kelima (5NF). Bentuk Normal
Keempat berkaitan dengan sifat ketergantungan banyak nilai (multivalued
dependency) pada suatu tabel merupakan pengembangan dari ketergantungan
fungsional. Sedangkan bentuk normal tahap kelima merupakan nama lain dari
Project Join Normal Form (PJNF).
1.5. Boyce Codd Normal Form (BCNF)Bentuk normal ketiga 3NF dapat dikatakan BCNF karena sudah cukup
memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Sebuah tabel
dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb:
1. Jika ada dekompos isi (penguraian) tabel, maka dekompos isinya harusdijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel
tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel
baru tersebut bisa menghas ilkan tabel semula dengan sama persis.
2. Terpeliharanya ketergantungan fungsional pada saat perubahan data(Dependency Preservation).
3. Tidak melanggar Boyce-Code Normal Form (BCNF).Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel
tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form /
3NF).
-
7/30/2019 Modul Praktikum_basisdata 1
53/65
53
Relasi R dengan ketergantungan fungsional F termasuk dalam bentuk
BCNF jika untuk semua X A yang ada dalam F. Dengan kata lain, R berada
dalam BCNF jika ketergantungan fungsional non-trivial pada R memiliki key
constraint.
2. Kegiatan Praktikum1. Terdapat suatu bentuk tabel informasi seperti berikut in i :
Tabel 9.1. Informasi Buku
ISBN Judul Halaman Topik
979-533-
791-2
Basisdata 60 Data Definition Language
Data Manipulation
Language
Data Control Language
978-532-
792-3
Matematika 90 Probabilitas
Permutas i dan Kombinasi
977-534-
793-4
PHP 90 Pemrograman
Internet
Bagaimana bentuk tabel-tabel yang menyimpan data pada
informasi tersebut dengan menggunakan normalisasi untuk
verifikasi tabel?
2. Terdapat suatu bentuk tabel informasi seperti beikut ini:
Tabel 9.2. In formasi mahasiswa
no_mhs nama matakuliah nip dosen Nilai
11879 Ali Basis data
Fisika I
32000011
32000012
Devie
Rosa
A
A
11897 Sit i Basis data
Fisika I
32000011
32000012
Devie
Rosa
A
B
-
7/30/2019 Modul Praktikum_basisdata 1
54/65
54
Pascal 16785 Anamisa A
11898 Ed i Fisika I 32000011 Devie A
Bagaimana bentuk tabel-tabel yang menyimpan data pada informasi
tersebut dengan menggunakan normalisas i untuk verifikasi tabel?
1. Tugas tambahan (ditentukan oleh asisten praktikum)!
3. Tugas AkhirDari kasus ke-I dan ke-II pada kegiatan prakt ikum maka bagaimana solusi
pemecahan tabel yang didapatkan?
Kasus I: T= ----------------------
Permasalahan : -----------------------
Solusi pemecahan tabel :
I. Tabel -----------------------II. Tabel -----------------------III. Tabel -----------------------
Kasus II: T= ----------------------
Permasalahan : -----------------------
Solusi pemecahan tabel :
IV. Tabel -----------------------V. Tabel -----------------------VI. Tabel -----------------------
Catatan Praktikum
-
7/30/2019 Modul Praktikum_basisdata 1
55/65
55
Modul 10
VIEW 1
1. Teori
View
View adalah query SELECT yang disimpan dalam database untuk menampilkan
data dari satu atau beberapa table. View juga disebut sebagai table virtual yang
digunakan untuk membungkus suatu query SELECT yang kompleks menjadi lebih
sederhana. Data-data yang termasuk kategori rahasia dapat diamankan dengan
menggunakan view.
Kegunaan view antara lain:
1. Fokus pada data atau tabel tertentu2. Penyederhanaan manipulasi data3. Menyesuaikan data dengan kebutuhan user4. Expo rt dan impor data5. Mengkombinasikan data terpartisi
Tujuan :
Membuat View untuk menampilkan data dari satu atau beberapa table dengan
membungkus suatu query SELECT yang kompleks menjadi lebih sederhana.
Tugas Pendahuluan
1. Apa yang anda ketahui tentang view?2. Sebutkan langkah-langkah apa saja yang harus dilakukan apabila kita
akan membuat suatu view ! (buatkan dengan contoh table)
3. Apa saja kegunaan view dalam table, jelaskan dengan contohnya.!
Syntax
CREATE VIEW view_name AS
-
7/30/2019 Modul Praktikum_basisdata 1
56/65
56
Sebelum query SELECT yang akan disimpan ke dalam view. Pena maan view
memiliki aturan yang sama dengan penamaan table. Nama view harus unik artinya
nama v iew tidak diperkenankan sama dengan nama v iew yang sudah ada
sebelumnya.
Pesan di atas akan tampil jika terjad i pembuatan view dengan menggunakan nama
yang sama dengan nama view yang lain.
Nama kolom dari base table bisa diubah menjadi na ma lain saat disimpan ke dalam
view dengan menggunakan COLUMN ALIAS
2. Kegiatan Praktikum
Buat tabel-tabel berikut ini :
1. Tabel Art ikel dengan s truktur
2. Tabel guestbook dengan struktur
-
7/30/2019 Modul Praktikum_basisdata 1
57/65
57
3. Tabel Materi dengan struktur
4. Insert data pada masing-masing tabel5. Tampilkan data judulartikel, author dan tanggal dari tabel artikel
6. Buat View dengan nama V_artikel1 untuk menampilkan data pada soal no 5
7. Tampilkan semua data pada tabel v_artikel1
i
-
7/30/2019 Modul Praktikum_basisdata 1
58/65
58
Jadi bisa anda lihat bahwa pada soal nomor 5 dan 7 mempunyai hasil yang sama,
sehingga dapat di simpulkan bahwa view dapat menampilkan kembali data yang
sama dengan lebih sederhana, dapat digunakan untuk mengerjakan query yang
tidak mungkin diselesaikan dengan cara biasa, view dapat digunakan untuk
menyimpan data rahasia karena tidak muncul pada database awal.
8. Buatkan view artikel2 untuk menampilkan judulartikel, author dan tanggal, idyang mempunyai bidang pemograman dan analisa sistem
9. Buatkan view guest1 untuk menampilkan semua data yang namanya diawalidengan ahmad, kemudian ganti namaauthor menjadi pengarang.
10. Buatkan view gues t2 untuk menampilkan semua data yang namanya kemud ianganti namaauthor menjadi pengarang.
11. Buatkan view materi untuk menampilkan semua data yang namanya kemudianganti namaauthor menjadi pengarang.
3. Tugas :
1. Dari praktikum diatas , berikan kesimpulannya.2. Buat table film dan jenis film dengan tampilan sebagai berikut jika
hasilnya diselect :
3. Isi tabel jenisfilm :
4. Isi tabel film :
5. Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilmdan film :
-
7/30/2019 Modul Praktikum_basisdata 1
59/65
59
6. Buat perintah view untuk :a. Mengurutkan data film berdasarkan kolom judul, gunakan order by
dan simpan dengan v_film1
b. Menampilkan data pada tabel jenisfilm yang mana data pada kolomjenis-nya tidak tercantum pada tabel film, gunakan NOT IN / not
exist dan simpan dengan nama v_film2
c. Menampilkan data pada tabel jenisfilm yang mana data pada kolomjenis-nya tercantum pada tabel film menggunakan IN / exist dan
simpan dengan nama v_film3
d. Manampilkan kolom jenis dan digabungkan dengan SUM(jml_film)yang dikelompokkan berdasarkan kolom jenis pada tabel film dan
simpan dengan nama v_film4
e. Menampilkan kolom judul dari tabel film dan kolom harga dari tabeljenisfilm(gunakan Operasi Jo in) dan simpan dengan nama v_film5
-
7/30/2019 Modul Praktikum_basisdata 1
60/65
60
MODUL 11View 2
I. Teori
1.1 View
View dalam sql juga merupakan suatu table yang diturunkan dari table
yang lain. Table ini bias berupa table dasar dari yang didefinisikan
sebelumnya.suatu view yang tidak perlu dalam bentuk fisiknya, bias berupa table
bayangan (virtual table), sehingga table dasar yang mempunyai tupel-tupel pada
dasarnya tersimpan dalam database. Pembatasan ini memungkinkan untuk
mengupdate operasi yang bias digunakan dalam view, tetapi tidak membatasi
dalam view queri.
Tujuan :
Membuat View untuk menampilkan data dari satu atau beberapa
table dengan membungkus suatu query SELECT yang kompleks
menjadi lebih sederhana.
Tugas Pendahuluan
1. Apa saja keuntungan dan kerugian menggunakan view2. Mengapa View lebih optimal pemakaiannya dibanding
perintah select, jelaskan
3. kenapa view bisa dijadikan sebagai kode rahasia untukmena mpikan suatu tabel, je laskan.
-
7/30/2019 Modul Praktikum_basisdata 1
61/65
61
1.2. Menghapus View
Queri yang sama juga bias didapatkan dengan menentukan dua hubungan
yang telah ada dalam relasi dasarnya, keuntungan utama view tersebut adalah
untuk menyederhanakan ketentuan tentang queri yang diperlukan, dan juga bias
digunakan untuk perangkat keamanan data.
Suatu view dari queri selalu menampilkan data yang terbaru, sebagai contoh bila
kita memodifikasi sebagaian tupel dalam table dasarnya dimana view tersebut
didefinisikan, maka secara otomatis akan berpengaruh pada view di queri
Jika tidak membutuhkan penampakan queri lagi, kita bisa menggunakan perintah
DROP VIEW untuk menghapusnya.
syntax :
DROP VIEW (nama view)
1.3. Mengupdate view dan Implementasi view
Mengupdate view merupakan suatu hal yang kompleks. Secara umum
suatu update dari suatu view didefinisikan pada suatu table tunggal tanpa fungsi-
fungsi pendukung (aggregate) yang bias dimapping kedalam suatu table dasar
pembentuknya dengan berbagai cara. Topic tentang update view ini masih terus
diuji coba. Untuk menggambarkan masalah yang potensial dengan mengupdate
view yang telah didefinisikan dalam beberapa table, misal table Work_ON1 dan
mendukung perintah untuk mengupdate attribute pname dari john smith dan dari
productX ke productY. View ini ditunjukkan sebagai berikut :
Update work_on1
Set pname =productY
Where Lname = smithand Fname= john and
Pname = productX
-
7/30/2019 Modul Praktikum_basisdata 1
62/65
62
Secara umum kita tidak dapat men jamin bahwa setiap tampilan bisa diupdate.
Suatu tampilan yang diupdate hanya memungkinkan untuk satu kali update pada
relasi dasarnya yang dapat menghubungkan update tersebut pada tampilannya.
Sebagai kesimpulan dapat ditentukan :
Suatu tampilan dengan definisi tunggal itu dapat diupdate bila attributetampilan berisi primary key atau beberapa candidate key dari relasi dasar,
sebab inilah yang menghubungkan antara view tupel dengan tupel dasar
tunggal.
Tampilanm yang didefinisikan dengan menggunakan beberapa table yangberhubungan umumnya tidak dapat diupdate
Tampilan yang menggunakan group dan fungsi aggregate tidak dapatdiupdate
2. Kegiatn praktikum
1. Buat table golongan, jabatan dan pegawai dengan data sebagai berikut :Tabel golongan :
Table jabatan
Tablepegawai
-
7/30/2019 Modul Praktikum_basisdata 1
63/65
63
2. Buat view dengan nama latihanview1 untuk menampilkan seluruh datapegawai yang jabatannya sebagai staff
3. Buat view dengan nama latihanview2 untuk menampilkan seluruh datapegawai yang dua digit pertama nipnya di awali dengan angka 03
4. Buat view dengan nama latihanview3 untuk menampilkan data nip, namadan golongan pegawai serta tunjangan golongan yang didapat (gunakan
select multiple tab le)
5. Buat view dengan nama latihanview4 untuk menampilkan seluruh datapegawai beserta gaji total yang diperolehnya. Gaji total merupakan has il
perhitungan dari gaji pokok d i ta mbahkan dengan tunjangan golongan
serta tunjangan keluarga
6. Hapuslah latihanview17. Buat view dengan nama latihanview5 untuk menampilkan data pegawai
yang gaji pokoknya paling tinggi.
3. TUGAS
1. Apakah yang dimaksud dengan update view?, buatkan contoh mengenaiupdate view dari suatu table view.
2. Mengapa dalam update view fungsi aggregate tidak dapat digunakan,jelaskan alas an anda
3. Buat view dengan nama latihanview6 untuk menampilkan seluruh datapegawai yang mana nama pegawai ba mbang purnomo ganti dengan joko
purnomo dan golongan ganti dengan manager
-
7/30/2019 Modul Praktikum_basisdata 1
64/65
64
4. Buat view dengan nama latihanview7 untuk menampilkan seluruh datapegawai yang berada dikota Surabaya atau yang mempunyai golongan B
(gunakan operasi union)
5. Hapuslah latihanview 46. Update view jabatan yang mana tunjangan jabatan manajer dari 500000
menjadi 1000000
7. Buat view dengan nama latihanview8 untuk menampilkan seluruh datapegawai yang jabatannya sebagai supervisor
-
7/30/2019 Modul Praktikum_basisdata 1
65/65
MODUL XII
Evaluasi Praktikum II
Tugas :1. Lanjutkan tugas pada evaluasi prakt ikum II pada modul VII untuk membuatsebuah desain implementasinya. (CDM dan PDM)
2. Koneksikan pada program aplikasi yang anda buat (Program bebas)3. Demo project kepada dosen yang bersangkutan
Atau
Tugas project ditentukan oleh dosen pengampu
Tujuan :
vPraktikan dapat mengimplementasikan semua modul praktikum inipada aplikasi
top related