0% menganggap dokumen ini bermanfaat (0 suara)
484 tayangan74 halaman

Modul Praktikum Basisdata Mysql

Modul praktikum ini membahas tentang membuat dan mengelola database serta tabel pada MySQL menggunakan perintah-perintah SQL. Mahasiswa diajak untuk mempelajari konsep-konsep dasar database seperti membuat user, database, dan tabel; serta mengisi data ke dalam tabel tersebut."

Diunggah oleh

rocka betta
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
484 tayangan74 halaman

Modul Praktikum Basisdata Mysql

Modul praktikum ini membahas tentang membuat dan mengelola database serta tabel pada MySQL menggunakan perintah-perintah SQL. Mahasiswa diajak untuk mempelajari konsep-konsep dasar database seperti membuat user, database, dan tabel; serta mengisi data ke dalam tabel tersebut."

Diunggah oleh

rocka betta
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 74

MODUL PRAKTIKUM

BASIS DATA

TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS PGRI RONGGOLAWE
TUBAN
2013

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 1


PENDAHULUAN

PRAKTIKUM BASIS DATA ini dilakukan dengan tujuan agar mahasiswa


mengerti serta memahami konsep basis data dasar dari teori yang telah
diberikan beserta pengaplikasiannya dengan menggunakan Data Base
Management System.

PRAKTIKUM BASIS DATA ini dilakukan secara individual.Pengerjaan


secara individual dilakukan dikarenakan konsep basis data harus
dipahami oleh masing-masing individu dengan baik sehingga setiap
peserta praktikum dapat menerapkan dan mengembangkan konsep basis
data dengan benar.

Dalam pengerjaan terdapat tugas pendahuluan yang harus dikerjakaan


secara perseorangan.Kemudian untuk pengerjaan laporan sementara
pengerjaan praktikum, dilakukan setiap pertemuan untuk setiap
peserta.Untuk laporan resmi, disusun berdasarkan laporan sementara
milik masing-masing peserta untuk kemudian diketik, dijilid dan
dikumpulkan pada waktu yang ditentukan.Aturan penulisan tugas
pendahuluan, laporan sementara dan laporan resmi disesuaikan dengan
aturan yang ditetapkan oleh dosen pembimbing praktikum
dan/pendamping praktikum.

Modul praktikum ini tidak mengandung banyak petunjuk tentang


pengerjaan praktikum.Sehingga mahasiswa dituntut harus mampu
mencari sumber informasi yang sesuai dengan bahan yang
dipraktikumkan sebelum melakukan praktikum dan kemudian
melaskanakan praktikum berdasarkan materi yang didapatkan.

Dosen pembimbing praktikum beserta pendamping-pendamping praktikum


bersifat sebagai pembimbing apabila dalam pengerjaan praktikum menemukan
kesulitan. Dikarenakan luasnya materi basis data, maka yang akan
diinformasikan hanya sebatas materi yang dipraktikumkan.

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 2


Spesifikasi perangkat komputer praktikum:
1(satu) unit computer dengan sistem operasi Ms. Windows 7 64-Bit, DBMS
MySQL (XAMPP).

Selamat mengerjakan…

Pembimbing Praktikum Basis Data

Miftahul Ulum, S.Kom & Suprapto, S.Kom

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 3


Praktikum

1
MEMBANGUN DATABASE PADA
MYSQL

Tujuan :
1 Praktikan mampu untuk membuat database pada DBMS Mysql.
2 Praktikan mampu untuk mengatur keamanan database-nya.

Alat dan Bahan :


1 Buku literatur mengenai sistem database, terutama yang menggunakan DBMS
Mysql (Xampp) , khususnya mengenai pembuatan database serta manajemen
user dan akses privileges.
2 Modul praktikum

Tugas Pendahuluan:
1. Jelaskan dengan singkat mengenai sistem database !
2. Sebutkan sedikitnya 3 DBMS yang Anda kenal selain DBMS yang
disebutkan di modul !
3. Apa perbedaan antara GRANT dan REVOKE ?
4. Jelaskan yang dimaksud dengan :
a. PRIVILEGE
b. OLTP dan OLAP
c. Constraint

Landasan Teori :
1. Definisi database & Database Management System (DBMS)
Database adalah kumpulan fakta-fakta sebagai representasi dari dunia nyata
yang berhubungan dan mempunyai arti tertentu.
Database managemen system adalah sebuah program komputer yang
memungkinkan pengguna untuk membuat dan memelihara database sehingga

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 4


pengguna dapat memasukkan, mengubah, menghapus, memanipulasi, dan
memperoleh kembali data tersebut dengan mudah.Sebagai contoh DBMS
yang sering kita gunakan adalah Ms. Access, Ms. SQL Server, dan lain-lain.

2. Mengenal MySQL
MySQL adalah Sebuah program database server yang mampu menerima dan
mengirimkan datanya sangat cepat, multi user serta menggunakan peintah
dasar SQL ( Structured Query Language ). MySQL merupakan dua bentuk
lisensi, yaitu FreeSoftware dan Shareware. MySQL yang biasa kita gunakan
adalah MySQL FreeSoftware yang berada dibawah Lisensi GNU/GPL (
General Public License ). MySQL merupakan sebuah database server yang
free, artinya kita bebas menggunakan database ini untuk keperluan pribadi
atau usaha tanpa harus membeli atau membayar lisensinya. MySQL pertama
kali dirintis oleh seorang programmer database bernama Michael Widenius
.Selain database server, MySQl juga merupakan program yang dapat
mengakses suatu database MySQL yang berposisi sebagai Server, yang berarti
program kita berposisi sebagai Client. Jadi MySQL adalah sebuah database
yang dapat digunakan sebagai Client mupun server.

Database MySQL merupakan suatu perangkat lunak database yang berbentuk


database relasionalatau disebut Relational Database Management System (
RDBMS ) yang menggunakan suatu bahasapermintaan yang bernama SQL
(Structured Query Language ).

3. Kelebihan MySQL
Database MySQL memiliki beberapa kelebihan dibanding database lain,
diantaranya :
a. MySQL merupakan Database Management System ( DBMS)
b. MySQL sebagai Relation Database Management System (RDBMS) atau
disebut dengan database Relational

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 5


c. MySQL Merupakan sebuah database server yang free, artinya kita bebas
menggunakan database ini untuk keperluan pribadi atau usaha tanpa harus
membeli atau membayar lisensinya
d. MySQL merupakan sebuah database client
e. MySQL mampu menerima query yang bertupuk dalam satu permintaan
atau Multi-Threading.

4. Pembuatan Database
Dalam pembuatan database pada mysql yang akan dipraktekkan dalam
praktikum ini adalah metode pembuatan database dengan perintah console
(Query).

5. Manajemen User dan Akses Privileges


Suatu database yang kompleks dapat diakses oleh banyak user dengan
batasan-batasan tertentu.Antara user yang satu dengan user yang lainnya dapat
mempunyai tingkatan yang berbeda.Salah satu alasan mengapa perlu adanya
beberapa user dengan tingkat hak akses yang berbeda-beda adalah untuk
keamanan data.Data-data yang penting dan sifatnya rahasia kadang tidak
boleh diakses oleh user secara umum, hanya user tertentu saja yang boleh
mengaksesnya.Dengan adanya manajemen user yang baik maka data tersebut
dapat dijamin. Beberapa ijin akses yang dapat diberikan oleh suatu user pada
user yang lain terlihat pada tabel berikut :

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 6


Dan daftar statemen ijin akses untuk membuat objek database yang
baruterlihat pada daftar tabel berikut :

6. Percobaan
Pembuatan User dan Database baru di Mysql
Pastikan Mysql pada Xampp Control panel dalam keadaan running.

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 7


Masuk kedalam MySQL melalui CMD
Masuk kedalam direktori mysql\bin dalam direktori hasil installan
xampp.Contoh :

Sintaks :
cd : c\xampp\xampp\mysql\bin\
Contoh dalam CMD :

Tuliskan sintaks sebagai berikut :


mysql.exe –user=(user) –password=(password) atau
mysql -u user password

contoh untuk user = root dan password = (kosong) :


mysql.exe –user=root –password= atau mysql –u root

Contoh dalam CMD :

Sekarang sudah bisa menuliskan query SQL.

7. PERCOBAAN PRAKTIKUM
Membangun database mysql menggunakan command prompt
Percobaan 1 : Membuat user baru pada mysql
dalam membuat sebuah user baru pada mysql dengan command
prompt, diperlukan syntax sebagai berikut :

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 8


Percobaan 2 :Pemberian hak akses untuk user yang sudah dibuat pada mysql

Percobaan 3 :Melakukan login ke user baru yang telah dibuat

Percobaan 4 :Membuat database baru pada mysql


Untuk membuat sebuah database mysql dengan command
prompt, diperlukan syntax sebagai berikut :
CREATE DATABASE NAMA DATABASE;
Contoh :

Percobaan 5 :Untuk membuka database yang sudah dibuat, dapat menggunakan


perintah berikut ini :
USE NAMA DATABASE;
Contoh :

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 9


Praktikum

2
TABEL
Tujuan :
1. Praktikan memahami struktur pembuatan tabel.
2. Praktikan mampu membuat tabel.
3. Praktikan dapat memasukkan data ke dalam tabel.

Alat dan Bahan :


1 Buku literatur mengenai sistem database, terutama yang menggunakan DBMS
Mysql (Xampp) , khususnya mengenai pembuatan database serta manajemen
user dan akses privileges.
2 Modul praktikum

Tugas Pendahuluan:
1. Jelaskan dengan singkat mengenai table, field dan record !
2. Sebut dan jelaskan dengan singkat tentang jenis integritas data !
3. Jelaskan apa yang dimaksud dengan primary key dan foreign key. Jelaskan
hubungan keduanya.
4. Apa persamaan antara Primary Key dan keyword UNIQUE ?

Landasan Teori :
1. Data Definition Language (DDL)
Tabel dalam database adalah komponen utama yang membentuk database
itu sendiri.Baris(row) dan kolom (column) mengindikasikan data (record).Cara
untuk mengatur dan memanipulasi data pada database dilakukan dengan
bantuan instruksi SQL seperti SELECT, INSERT, UPDATE, DELETE.
Instruksi untuk membuat, mengubah, dan menghapus table dilakukan

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 10


melalui DDL yaitu dengan CREATE TABLE, ALTER TABLE, DROP
TABLE.

Pada contoh dibawah ini adalah sebuah table Mahasiswa UNIROW tuban
dengan bentuk sebagai berikut :

Tabel : Mahasiswa

NPM Nama Jenis kelamin Alamat Kota Propinsi Telpon

Setiap kolom mempunyai nilai yang terkait dengan tipe data tertentu.
Himpunan yang berupa nilai kolom yang valid atau dapat diterima
(acceptable) disebut sebagai DOMAIN.

Nilai kolom diluar domain tersebut dianggap sebagai pelangggaran atas


integritas data.Usaha untuk mengelompokkkan nilai dalam himpunan yang
berlaku disebut dengan CONSTRAINT atau batasan nilai.

2. Tipe Data Mysql


Setiap data memiliki tipe data. Berikut ini adalah tipe data dalam MySQL :
Tipe data untuk numerik :
Tipe Keterangan Range Nilai
TINYINT Nilai integer yang sangat Signed : -128 s.d. 127
kecil Unsigned : 0 s.d. 255
SMALLINT Nilai integer yang kecil Signed : -32768 s.d. 32767
Unsigned : 0 s.d. 65535
MEDIUMINT Integer dengan nilai Signed : -8388608 s.d. 8388607
medium Unsigned : 0 s.d. 16777215

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 11


INT Integer dengan nilai Signed : -2147483648 s.d.
standar 2147483647
Unsigned : 0 s.d. 4294967295
BIGINT Integer dengan nilai besar Signed : -9223372036854775808 s.d.
9223372036854775807
Unsigned : 0 s.d.
18446744073709551615
FLOAT Bilangan desimal dengan minimum ± 1.175494351e-38
single-precission maksimum ± 3.402823466e+38
DOUBLE Bilangan desimal dengan minimum ± 2.2205738585072014e-
double-precission 308
maksimum ±
1.7976931348623457e+308
DECIMAL(M,D) Bilangan float (desimal) Tergantung pada nilai M dan D
yang dinyatakan sebagai
string. M adalah jumlah
digit yang disimpan dalam
suatu kolom, N adalah
jumlah digit dibelakang
koma

Keterangan :
Signed dan Unsigned adalah atribut untuk tipe data numerik
- Signed : data yang disimpan dalam suatu kolom dapat berupa data
negatif dan positif.
- Unsigned : digunakan agar data yang dimasukkan bukan data negatif
(>=0). Tipe data float tidak dapat dinyatakan dengan unsigned.

Tipe data string :


Ukuran
Tipe Keterangan
Maksimum
CHAR(n) String karakter dengan panjang yang tetap, 1 M byte
yaitu n
VARCHAR(n) String karakter dengan panjang yang tidak 1 M byte
tetap, maksimum n.
8
TINYBLOB BLOB (Binary Large Object) yang sangat kecil 2 -1 byte
16
BLOB BLOB berukuran kecil 2 -1 byte

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 12


24
MEDIUMBLOB BLOB berukuran sedang 2 -1 byte
32
LONGBLOB BLOB berukuran besar 2 -1 byte
8
TINYTEXT String teks yang sangat kecil 2 -1 byte
16
TEXT String teks berukuran kecil 2 -1 byte
24
MEDIUMTEXT String teks berukuran medium(sedang) 2 -1 byte
32
LONGTEXT String teks berukuran besar 2 -1 byte
ENUM Enumerasi, kolom dapat diisi dengan satu 65535
member enumerasi anggota
SET Himpunan, kolom dapat diisi dengan 64 anggota
beberapa nilai anggota himpunan himpunan

Tipe data tanggal dan jam :


Tipe Range Format
DATE “1000-01-01” s.d. “9999-12-31” “0000-00-00”
TIME “-832:59:59” s.d. “838:59:59” “00:00:00”
DATETIME “1000-01-01 00:00:00” s.d. “0000-00-00 00:00:00”
“9999-12-31 23:59:59”

Dalam membuat sebuah tabel dan kolom ada beberapa aturan :


1. Nama tabel dan kolom mempunyai panjang karakter 1-30 dan karakter
pertama harus huruf, karakter berikutnya boleh gabungan huruf, garis
bawah dan angka dan tidak diperbolehkan mengandung spasi.
2. Tidak mengandung Reserved word yang ada pada SQL (contoh:select,
where, create, dll).
3. Dalam satu user tidak boleh mempunyai nama tabel yang sama, tetapi
dalam tabel yang berbeda boleh memiliki nama kolom yang sama.
4. Tidak bersifat case sensitive.

3. Perintah perintah yang berhubungan dengan tabel pada SQL SERVER:

CREATE TABLE Membuat tabel


SP_COLUMN (SQL server) Memeriksa struktur suatu tabel
DESCRIBE (Mysql) Memeriksa struktur suatu tabel

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 13


ALTER TABLE Mengubah struktur tabel
SELECT Memilih query tabel
INSERT Menyisipkan baris data ke tabel
UPDATE Mengubah data pada tabel
DELETE Menghapus data pada suatu tabel

4. Membuat Tabel
CREATE TABLE nama_tabel(nama_filed1 tipedata batasan,
nama_filed2 tipedata
batasan,……..)

Batasan (constraint) = Yang mengikat atribut apakah sebagai primary Key,


Foreign Key, Unique, Not Null, dll.

5. Melihat Struktur Tabel

Describe Nama tabel;

6. Memodifikasi dan menambah Field pada Tabel


Untuk memodifikasi sebuah field pada tabel , syntax:
ALTER TABLE Nama_tabel ALTER COLUMN Nama_Field
tipe_data(panjang)
Constraint

Untuk menambah sebuah field pada tabel , syntax:


ALTER TABLE Nama_tabel ADD Nama_Field_baru
tipe_data(panjang) constraint

7. Menghapus Tabel
DROP TABLE Nama_tabel;

8. PRIMARY KEY
Primary Key disebut sebagai constraint untuk menjaga integritas data, yaitu
sebuah primary key tidak boleh mempunyai duplikat dan otomatis tidak
boleh kosong. Secara umum syntax untuk membuat sebuah primary key
adalah:Atau jika primary key terdiri atas banyak kolom (multiple column),
maka constraintdapat dibuat sebagai berikut:

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 14


CREATE TABLE Nama_Tabel (Nama_Field Tipedata CONSTRAINT
pk_Namatabel PRIMARY KEY, … )

9. NOT NULL
Jika sebuat kolom pada tabel tidak boleh kosong maka constraint NOT NULL
harus diberikan.
CREATE TABLE NamaTabel(NamaField1 TipeData1, NamaField2
TipeData2, NamaField3 TipeData3, NamaField4 TipeData4,
NamaField5
TipeData5, NamaField6 TipeData6, NamaField7 TipeData7,
CONSTRAINT
pk_NamaTabel PRIMARY KEY (NamaField3, NamaField2,
NamaField7) )

10. FOREIGN KEY


FOREIGN KEY adalah kolom pada sebuah tabel yang menunjukkan bahwa
kolom
tersebut adalah primary key pada tabel lain.

Tabel Mahasiswa
NPM Nama JK Alamat Kota Propinsi Telpon
02113216 Bambang L kebonsari tuban Jatim 03563221222

Tabel Mata_kuliah

Kode_mata_kuliah Nama_Kuliah SKS

TPL144 Sistem Database 3

Tabel ambil_kuliah
Kode_mata_kuliah NPM Nilai_Uts Nilai_Uas Grade
TPL144 14120406003 3 90 A

Pada sekenario di atas, record (TPL144) pada tabel ambil_kuliah tidak dapat
dihapus karena referensi dari TPL144 (filed kode_mata_kuliah ditabel
mata_kuliah), 14120406003( field nrp di tabelmahasiswa) masih ada.

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 15


Penulisan constraint foreignkey adalah :
CONSTRAINT fk_nama_constraint FOREIGN KEY field REFERENCES
nama_tabel(field)

Foreign key harus menunjuk ke primary key atau unique pada tabel lain.

11. Drop Constraint


DROP digunakan untuk menghapus constraint yang ada.

ALTER TABLE nama_tabel DROP fk_nama_constraint

12. Mengisi data pada Tabel


INSERT INTO Nama_tabel (Nama_Field1, Nama_Field2,
Nama_Field3)VALUES (data1, data2,data3);

13. Meng-copy data dari Tabel lain


Suatu kolom pada sebuah tabel dapat diisi dengan data yang sama dengan
kolom tabel lain dengan syarat type data dan panjang field kedua table
tersebutsama. Syntax:

INSERT INTO Nama_tabel_tujuan (Field1, Field2, Field3)


SELECT
(field_sumber1, field_sumber2, field_sumber3) FROM
Nama_tabel_sumber

Jika 2 buah tabel mempunyai struktur yang sama maka syntax di atas dapat
dipersingkat menjadi :

INSERT INTO Tabel_tujuan SELECT * FROM Tabel_asal

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 16


14. PERCOBAAN PRAKTIKUM
Percobaan 1 : Buat tabel berikut, lengkap dengan constraint pada Mysql:

Tabel Mahasiswa_XXX(Npm, nama, jk, alamat, kota, propinsi,


telpon)
Npm char 8
Nama varchar 50
Jk char 1
Alamat varchar 150
Kota varchar 50
Propinsi varchar 50
Telpon varchar 20

Perhatikan:
- Npm merupakan primary key
- Nama, Alamat tidak boleh kosong
- Jk mempunyai nilai ‘L’ atau ‘P’

Percobaan 2 :Buat tabel Mata_kuliah_XXX

Mata_Kuliah (kode_mata_kuliah, Nama_kuliah, Sks)


kode_mata_kuliah char 8
Nama_kuliah varchar 100
Sks int

Perhatikan:
- Kode_mata_kuliah merupakan primary key
- Nama_kuliah dan Sks tidak boleh kosong

Percobaan 3 :Buat tabel ambil_kuliah_XXX

Ambil_Kuliah (kode_mata_kuliah, Npm, Nilai_Uts,


Nilai_Uts,Grade)
kode_mata_kuliah char 8
Npm char 8
Nilai_Uts smallint
Nilai_Uas smallint
Grade Char 1

Perhatikan:
- Kode_mata_kuliah merupakan Foreign key yang mengacu pada
tabel Mata_Kuliah_XXX (field kode_ mata_kuliah).
- Npm merupakan Foreign key yang mengacu pada tabel
Mahasiswa_XXX (field Npm).
- Nilai_Uts, Nilai_Uas tidak boleh melebihi 100

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 17


Percobaan 4 :Modifikasi field Telpon pada tabel Mahasiswa_XXX sehingga type-
nya menjadi char.
Percobaan 5 :Isi satu record pada Data mahasiswa yang telah dibuat. Perintah
SQL nya adalah :
INSERT INTO Mahasiswa_XXX (NPM, Nama, Jk, Alamat, Kota,
Propinsi, Telpon)
VALUES (‘02113216’, ’Bambang’, ’L’, ’Jl. Bumi Handayani
4’, ’ Banjarmasin’, ’Kalsel’, ’0356322133’)

Percobaan 6 :Tambahkan data di bawah ini:

NPM NAMA J ALAMAT KOTA PROPINS TELFON


I
14120301006 Rita P JL.JAYA Tuban Jatim 0356322133
Sugiarti NO.20
14120301007 Bamban L Jl. Bumi Banjarmasi Kalsel 08180380320
g Handayani n 2
Widiono 4
14120406000 Doni L Cendrawasi Banyuwan Jatim 08561234678
3 Armandh h 27 gi
o
14120301006 Adhis P Asrama Malang Jatim 03417677993
Mahaswi PUSDIK
ARHANUD
no 114

Percobaan 7 :Tampilkan data dari tabel Mahasiswa_XXX


Percobaan 8 :Buat tabel-tabel dari sebuah perpustakaan seperti berikut :

Tabel Anggota
Nama Field Type Panjang Aturan
No_Anggota Char 8 Not Null, Primary Key
Nama Varchar 20 Not Null
Alamat Varchar 30 Can Be Null
Telepon Varchar 15 Can Be Null

Tabel Buku
Nama Field Type Panjang Aturan
No_Buku Char 8 Not Null, Primary Key
Judul Varchar 20 Not Null
Pengarang Varchar 30 Can Be Null
Penerbit Varchar 20 Can Be Null

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 18


Jumlah Int Not Null

Pinjam Buku
Nama Field Type Panjang Aturan
No_Anggota Char 8 Not Null, foreign Key
No_Buku Char 8 Not Null, foreign Key
Tanggal pinjam Date 15 Not Null
Tanggal kembali Date 15 Not Null

Percobaan 9 :Isi data pada tabel anggota, tabel buku dan tabel pinjam buku
minimal 3 data. Syarat : 2 data harus tinggal di kota yang sama
Percobaan10 : Tampilkan semua data dari tabel anggota dan tabel buku.
Percobaan11 :Tampilkan data anggota yang beralamat di salah satu kota.
Percobaan12 :Tampilkan data anggota yang beralamat di dua kota (Misal : Tuban
dan Kudus).

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 19


Praktikum

3
MEMANIPULASI DATA

Tujuan :
Praktikan dapat memahami dan mengisi tabel dalam database
Praktikan dapat memahami dan memanipulasi data dalam database

Alat dan Bahan :


1 Buku literatur mengenai sistem database, terutama yang menggunakan DBMS
Mysql (Xampp) , khususnya mengenai Manipulasi Data.
2 Modul praktikum

Tugas Pendahuluan :
1. Sebutkan dan Jelaskan perintah yang termasuk dalam DML?
2. Bagaimana urutan penggunaan Select dengan banyak parameter yang
digunakan?
3. Apa perbedaan penggunaan Select dengan Distinct dan tanpa Distinct?

Landasan Teori
1. DML (Data Manipulation Language)
DML adalah bahasa yang memungkinkan pengguna mengakses atau
memanipulasi data seperti yang diatur oleh model data.
Manipulasi data adalah :
o Pengambilan informasi yang disimpan dalam basisdata
o Penempatan informasi baru dalam basisdata
o Penghapusan informasi dari basisdata

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 20


o 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 DM L, yaitu :
1. Prosedural, yang mensyaratkan agar pemakai menentukan, data apa yang
diinginkan serta bagaimana cara mendapatkannya.
2. Nonprosedural, yang membuat pemakai dapat menentukan data apa
yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.

Query adalah pernyataan yang meminta pengguna mengambil informasi.


Bagian DML yang terlibat dalam pengamb ilan informasi disebut bahasa
query. Istilah bahasa query sering disamakan dengan istilah bahasa manipu
lasi data. Sedangkan SQL adalah sebuah sintaks untuk mengeksekusi query.

2. Perintah DM L (Data Manipulation Language)


a. Pernyataan INSERT INTO
Pernyataan INSERT INTO digunakan untuk memasukkan data baru pada
tabel.
Sintaks :
INSERT INTO nama_tabel
VA LUES (n ilai1, n ilai2, ...)

Urutan nilai yang diletakkan dalam tanda kurung disesuaikan dengan


urutan kolom dalam tabel. A kan tetapi kita bisa menentukan kolo m-kolo
m yang akan diisi dengan data baru, yaitu :
INSERT INTO nama_tabel (ko lo m1, kolo m2, ...)
VA LUES (n ilai1, n ilai2, ...)

Kolom-kolom yang tidak disebutkan pada Insert secara otomatis akan diisi
dengan Null dan kolom yang tidak disebutkan dalam Insert haruslah yang
tidak Not Null.

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 21


Contoh :

b. Pernyataan UPDATE
Pernyataan UPDATE digunakan untuk modifikasi data dalam tabel.
Sintaks :
UPDATE nama_tabel
SET nama_ko lo m = nilai_baru
WHERE nama_kolo m = nilai

Pada pernyataan diatas :


SET untuk menentukan kolo m yang akan diubah dan nilai
penggantinya.
WHERE menentukan kondisi dari baris-baris yang akan diganti.
Contoh :

c. Pernyataan DEL ETE


Pernyataan DELETE d igunakan untuk menghapus baris pada tabel.
Sintaks :
DELETE FROM nama_tabel WHERE nama_kolo m = nilai

Contoh:
Untuk menghapus baris pada tabel Mahasiswa yang nilai NPMnya adalah
1412011001, anda bisa memberikan pernyataan seperti berikut :

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 22


Dalam perintah DELETE jika kita ingin menghapus semua data pada tabel
tanpa menghapus tabel maka Where tidak perlu d isebutkan.
DELETE FROM nama_tabel Atau DELETE * FROM nama_tabel

d. Pernyataan SELECT
Secara u mu m 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 stored 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_ko lo m
FROM nama_tabel

Untuk memilih beberapa kolo m gunakan pernyataan SELECT sebagai


berikut:
SELECT nama_ko lo m1, nama_ko lo m2, ...
FROM nama_tabel

Contoh :

Untuk memilih semua ko lo m dari tabel, dapat menuliskan tanda asterisk


( * ) sesudah kata Select. Simbol * berarti semua kolo m, seperti berikut :
SELECT * FROM nama_tabel

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 23


Contoh :

Distinct
Untuk memilih hanya nilai yang berbeda, gunakan pernyataan SELECT
DISTINCT.
Sintaks :
SELECT DISTINCT nama_ kolom FROM nama_tabel

Contoh :

Klausa WHER E
Klausa WHERE d igunakan untuk menentukan kriteria seleksi.Untuk
memilih data suatu tabel dengan kriteria tertentu, klausa WHERE
dapat ditambahkan pada pernyataan SELECT.
Sintaks :
SELECT nama_ko lo m
FROM nama_tabel
WHERE kolom operator nilai

Dengan klausa WHERE, operator berikut dapat digunakan :

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 24


Contoh :

Perlu d iperhatikan bahwa kita menggunakan tanda petik tunggal (' ')
pada contoh diatas.SQL menggunakan tanda petik tunggal pada nilai
teks, sedangkan nilai numerik tidak diberi tanda petik.
Kondisi LIKE
Kondisi LIKE digunakan untuk menentukan pencarian berdasarkan
pola tertentu pada suatu kolom.

Sintaks :
SELECT nama_kolom FROM nama_tabel
WHERE nama_kolom LIKE pola

Tanda "%" dapat digunakan untuk menentukan Wildcard (sembarang


huruf), baik sebelum maupun sesudah pola. Pernyataan SQL berikut
akan menghasilkan nama mahasiswa yang dimulai dengan huruf R :

Pernyataan SQL berikut menghasilkan nama mahasiswa yang diakhiri


huruf a :

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 25


Pernyataan SQL berikut menghasilkan nama mahasiswa yang
mengandung pola "o":

3. PERCOBAAN PRAKTIKUM
Buatlah tabel sebagai berikut

Tabel Departemen_xxx
---------------------------------
nomor int primary key not null
nama varchar 30
jmlPegawai int
------------------------------------
Tabel Pegawai_xxx
------------------------------------
NIP int Pimary key not null
NmDepan varchar 25
NmBlk Varchar 25
JnsKel Char 2
Alamat Varchar 40
Gaji int
Nomor int foreign key (tabel departemen pada kolom nomor)

Isikan data berikut pada tabel Departemen_xxx

Isikan data berikut pada tabel Pegawai _xxx

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 26


Percobaan 1 : Mengubah data yang terdiri dari 2 atau lebih field dalam satu
tabel, Misal; mengubah NmDepan =’Ana’, NmBlk=’Purwa’,
alamat=’Surabaya’ menjadi NmDepan, NmBlk dan Alamat
masing-masing mahasiswa.
Percobaan 2 : Pada tabel pegawai_xxx Update kolom gaji, sehingga jumlah
gaji menjadi 2 kalinya
Percobaan 3 : Menampilkan data pegawai_xxx yang mempunyai alamat
Tuban.
Percobaan 4 : Tampilkan daftar pegawai_xxx wanita yang berasal bukan
dari Tuban
Percobaan 5 : Menampilkan data pegawai yang memiliki gaji lebih besar
dari 2.000.0000.
Percobaan 6 : Menampilkan data pegawai yang mempunyai alamat
‘Mojokerto’ dan mempunyai gaji lebih kecil dari 3.500.000.
Percobaan 7 : Menampilkan NmDepan, NmBlk, Alamat pegawai yang
mempunyai alamat tuban atau Mojokerto.
Percobaan 8 : Cari nama depan pegawai yang namanya dimulai dengan
huruf ‘b’, huruf kedua tidak di ketahui, huruf ketiga adalah
‘k’ dan huruf selanjutnya tidak diketahui
Percobaan 9 : Cari nama depan pegawai yang namanya berakhiran ‘a’ yang
huruf sebelumnya tidak diketahui
Percobaan 10 : Cari nama belakang pegawai yang huruf ketiganya ‘r’. yang
huruf setelahnya tidak diketahui

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 27


Praktikum

4
FUNGSI DALAM SQL

Tujuan :
1. Praktikan dapat memahami dan memanipulasi data dalam database dengan
lebih luas lagi.
2. Praktikan mampu untuk memahami dan menguasai fungsi-fungsi SQL

Alat dan Bahan :


1 Buku literatur mengenai sistem database, terutama yang menggunakan DBMS
Mysql (Xampp) , khususnya mengenai transactsql.
2 Modul praktikum

Tugas Pendahuluan
1. Apa yang dimaksud dengan subquery ?
2. Kapan alias digunakan ?
3. Kenapa data yang akan diisikan pada foreign key field harus ada terlebih
dahulu pada primary key field yang diacu?

Landasan 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 di stored procedures dan triggers. Selain perintah-perintah
SELECT yang dibahas dalam modul sebelumnya masih ada banyak perintah-
perintah SELECT lain, antara lain perintah ALIAS, menampilkan data lebih dari 2
tabel, ORDER BY, AND dan OR, GROUP BY dan HAVING, fungsi agregate, dan

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 28


beberapa perintah yang lain.

1. ALIAS

Perintah Select dapat dilakukan dengan memberikan nama ALIAS yaitu


dapat digunakan untuk mengganti nama_kolom dan nama_tabel.

a. Memberikan nama lain pada kolom


Sintaks untuk alias nama kolom :

SELECT namakolomlama AS namakolombaru FROM namatabel;


A t au
SELECT nama_kolom AS nama_alias_kolom FROM nama_tabel;

Jika kita ingin membuat nama alias untuk kolom NamaDepan menjadi ND
dan Nama Belakang menjadi NB, gunakan pernyataan SQL berikut :
SELECT NamaDepan AS ND, NamaBelakang AS NB FROM
Mahasiswa;

b. Menggunakan alias untuk nama tabel


Sintaks untuk alias nama tabel :

SELECT n malias.jenis, nmalias.harga FROM namatabel


nmalias;
A t au
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 tabel


Perintah 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

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 29


melakukan perintah Select untuk beberapa tabel sekaligus adalah dengan
melaku kan kondisi relasi antara tabel-tabel yang akan ditampilkan untuk
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
mengamb il jurusan, maka tabel acuannya adalah tabel mahasiswa.
Sintaks :

SELECT * FROM namatabel1, 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
tabel Mahasiswa dan tabel Jurusan akan ditampilkan, yaitu NRP,
NamaDepan, NamaBelakang, Tempat Lahir, Tanggal Lahir, Alamat,
Mahasiswa.KodeJurusan, Jurusan.KodeJurusan, dan NamaJurusan.

3. Klausa Order By
Klausa ORDER BY digunakan 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;

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 30


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 OR


AND dan OR menggabungkan dua atau lebih kondisi pada klausa WHERE.
Operator AND menamp ilkan data jika semua kondisi yang diminta
bernilai 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 * 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') ;

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 31


5. Klausa GROUP BY dan HAVING
a. GROUP BY
Hasil dari Select juga dapat dikelompokkan.Hal ini dapat dilakukan
dengan menambahkan klausa GROUP BY.
Sintaks :
SELECT nama_ko lo m, COUNT (nama_ kolo m) FROM
nama_tabel GROUP BY nama_ kolo m;

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;

b. HAVING
Klausa HAVING disediakan untuk mendukung klausa GROUP
BY.Kegunaannya adalah untuk menentukan kondisi bagi GROUP BY. Kelo
mpok yang memenuhi kondisi HAVING saja yang akan dihasilkan.

Sintaks :

SELECT nama_kolom, COUNT (nama_ kolom)


FROM nama_tabel
GROUP BY nama_ kolom
HA VING COUNT (nama_kolom) kondisi
nilai;

Misalnya, pernyataan untuk mencari kota yang menjad i 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)


Fungsi aggregate merupakan fungsi-fungsi yang digunakan untuk
melakukan perhitungan statistikal dalam tabel.Secara u mu m, hanya field
yang bertipe numerik (int, money dan sejenisnya) yang bisa dikenakan fungsi

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 32


ini. SQL menyediakan sejumlah fungsi yang dapat digunakan pada SELECT.

a. COUNT
Perintah 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 Ju mlahMahasiswa FROM


Mahasiswa;

b. SUM
Perintah 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;

c. AVG
Perintah yang digunakan untuk menghitung rata-rata dari nilai suatu
kolom pada tabel.Contoh : perintah untuk menghitung rata-rata dari
kolom SKSpada tabel Matakuliah :
SELECT AVG(SKS) AS RataSKS FROM Matakuliah;

d. MIN
Perintah yang digunakan untuk menamp ilkan nilai terkecil dari suatu
kolom pada tabel.Contoh : perintah untuk menampilkan nilai terkecil
dari kolo m SKS pada tabel Matakuliah :
SELECT MIN(SKS) AS JumlahMinimum FROM Matakuliah;

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 33


e. MAX
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 IN
Operator IN b isa 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 … AND


Operator 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 BETWEEN … AND diperlaku kan 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. Kemud ian, pada DBM S

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 34


lainnya, Adi dimunculkan, tetapi Ita tidak. Untuk menampilkan Mahasiswa di
luar jangkauan contoh, gunakan operator NOT seperti berikut :
SELECT * FROM Mahasiswa WHERE NamaDepan NOT BETW EEN 'Adi'
AND 'Ita' ;

9. PERCOBAAN PRAKTIKUM
Percobaan 1 : Pada Tabel Pegawai di pertemuan 3 tambahkan data
sebanyak 5 baris
NIP NmDepan NmBlk JnsKel Alamat Gaji Nomor
1412070111 Saipul Huda L Surabaya 3.000.000 10101
1412070112 Ratna Sutejo p Tuban 3.500.000 10102
1412070102 Kartika Sari P Lamongan 2.500.000 10103
1412070012 Surya Saputra L Tuban 3.500.000 10101
1412070013 Abdi Negoro L Mojokerto 2.000.000 10103

Percobaan 2 : Tampilkan pegawai yang mempunyai gaji 3.000.000 dan


bertempat tinggal di luar Tuban atau Lamongan (gunakan IN)
Percobaan 3 : Susun daftar nama Pegawai menurut abjad, namun dibuat
berdasarkan alamat kota mereka
Percobaan 4 : Tampilkan nama kota tersusun dari secara descending dari
para pegawai
Percobaan 5 : Tambahkan 10% honor untuk pegawai yang mempunyai
honor dibawah rata-rata.
Percobaan 6 : Cari pegawai yang honornya antar 3.000.000 sampai dengan
7.000.000
Percobaan 7 : Tampilkan Pegawai yang honornya lebih kecil dari rata-rata.
Percobaan 8 : Tampilkan gaji pegawai dan kurangi dengan pajak penghasilan
15%
Percobaan 9 : Tampilkan jumlah pegawai yang honornya diatas rata-rata
Percobaan 10 : Tampilkan daftar pegawai yang honornya diatas rata-rata

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 35


Praktikum

5
EVALUASI PRAKTIKUM 1
Tujuan :
1. Praktikan lebih memahami dan mengimplementasikan tentang ERD
2. Praktikan lebih memahami dan mengimplementasikan tentang DDL dan DML

Alat dan Bahan :


1 Buku literatur mengenai sistem database, terutama yang menggunakan DBMS
Mysql (Xampp) , khususnya mengenai ERD, DML dan DML.
2 Modul praktikum

Tugas Pendahuluan :
1. Buat ERD database (Gunakan Power Desainer)
a. NPM genap : database perpustakaan
b. NPM ganjil : database rumah_makan

Tugas Praktikum :
1. Desain tabel minimal 5 tabel, yang sesuai dengan tugas pendahuluan di atas
2. Gunakan perintah SQL untuk membuat tabel, isi tabel masing-masing 10 data
3. Buat perintah DDL dan DML dari tabel di atas yang terdiri dari insert, update,
delete tambah baris, tambah kolom.
4. Lakukan pengurutan data menggunakan orderby, gunakan juga fungsi
agregasi AVG, MIN, MAX, SUM COUNT pada beberapa tabel

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 36


Praktikum

6
JOIN

Tujuan :
Praktikan dapat memahami dan memanipulasi data dalam database dengan
lebih luas lagi.

Alat dan Bahan :


1 Buku literatur mengenai sistem database, terutama yang menggunakan DBMS
Mysql (Xampp) , khususnya mengenai Join.
2 Modul praktikum

Tugas Pendahuluan:
1. Apa yang anda ketahui tentang
- JOIN
- UNION
- INTERSECT
- EXCEPT, dan operator comparison ANY dan A LL

Landasan Teori

1. JOIN dan KUNCI


Terkadang kita harus memilih data dari dua tabel atau lebih untuk
mendapatkan 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-kolom yang berasal dari tabel-tabel tersebut. Pada join sederhana,
tabel-tabel digabungkan dan didasarkan pada pencocokan antara kolom

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 37


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 antar
tabel tanpa mengulangi semua data pada setiap tabel.

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.

a. INNER JOIN
Inner 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_asing

Misalnya, 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

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 38


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.

b. LEFT JOIN
Left 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

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.

c. RIGHT JOIN
Right 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 dengan pasangannya berupa nilai NULL.
Sintaks untuk RIGHT JOIN :
SELECT field1, field2,

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 39


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 JURUSAN
ON 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.NamaDepan
FROM MAHASISWA INNER JOIN JURUSAN
ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan
WHERE JURUSAN.NamaJurusan = 'Manajemen Informatika'

2. UNION dan UNION ALL


a. 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
hanya memunculkan nilai unik.
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.

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 40


Maka untuk menamp ilkan 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 dengan nama 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.

b. UNION ALL
Perintah UNION ALL sama dengan perintah UNION, kecuali bahwa
UNION ALL memilih semua nilai.
Sintaks :

Pernyataan 1 UNION ALL Pernyataan 2


Dengan menggunakan tabel Mahasiswa dan Mahasiswa2, kita dapat
menggunakan pernyataan berikut untuk menampilkan semua mahasiswa
dari dua tabel :

SELECT NamaDepan FROM MAHASISWA


UNION ALL
SELECT NamaDepan FROM MAHASISWA2

3. Pernyataan SELECT INTO


Pernyataan 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 Mahasiswa_Backup


FROM Mahasiswa

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 41


Klausa IN dapat digunakan untuk menyalin tabel ke basisdata lain.

SELECT Mahasiswa.* INTO Mahasiswa IN 'Backup.mdb'


FROM Mahasiswa

Jika hanya ingin menyalin beberapa field, kita dapat melaku kannya 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 Mahasiswa.

SELECT NamaDepan, NamaBelakang INTO Mahasiswa_Backup


FROM Mahasiswa
WHERE Tempat_Lahir = '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 ALL


a. Operator ANY
Operator ANY digunakan berkaitan dengan subquery. Operator ini
menghasilkan TRUE (benar) jika paling tidak salah satu perbandingan
dengan hasil subquery menghasilkan nilai TRUE.Ilustrasinya :

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 42


Gaji > ANY (S)

Jika subqueryS 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 ju mlahnya


bukan yang terkecil :
SELECT * FROM Matakuliah WHERE SKS > ANY (SELECT SKS
FROM Matakuliah)

b. Operator ALL
Operator ALL digunakan untuk melaku kan perbandingan dengan
subquery. Kondisi dengan ALL menghasilkan n ilai TRUE (benar) jika
subquery tidak menghasilkan apapun atau jika perbandingan
menghasilkan TRUE untuk setiap nilai query terhadap hasil subquery.
Misalkan perintah untuk menampilkan data SKS yang jumlahnya paling
tinggi:
SELECT * FROM Matakuliah
WHERE SKS >= ALL (SELECT SKS FROM Matakuliah)

5. UNION, INTERSECT dan EXCEPT


a. UNION
UNION merupakan operator yang digunakan untuk menggabungkan hasil
query, dengan ketentuan jumlah, nama dan tipe kolom dari masing-
masing tabel yang akan ditamp ilkan 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_Lahir = " Yogyakarta"
UNION SELECT NamaDepan, Tempat_Lahir
FROM Mahasiswa WHERE Tempat_Lahir = "Surabaya";

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 43


Perintah diatas identik dengan :

SELECT NamaDepan, Tempat_Lahir FROM Mahasiswa


WHERE Tempat_Lahir = "Yogyakarta" OR Tempat_Lahir =
"Surabaya"

Namun tidak semua penggabungan dapat dilakukan dengan OR, yaitu


jika bekerja pada dua tabel atau lebih.

b. INTERSECT
INTERSECT 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 t idak terdapat operator INTERSECT namun sebagai


gantinya dapat menggunakan operator IN yang bisa diperdalam di bagian
Nested Queries.
c. EXCEPT / Set Difference
EXCEPT 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 namatabel1


EXCEPT
SELECT * FROM namatabel2

Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 44


dapat menggunakan operator NOT IN yang bisa diperdalam dibagian
Nested Queries.

6. PERCOBAAN PRAKTIKUM :

Isikan data berikut pada tabel mahasiswa_XXX yang telah anda buat pada
praktikum modul 2

Isikan data berikut pada tabel mata_kuliah_XXX yang telah anda buat pada
praktikum modul 2

Isikan data berikut pada tabel ambil_kuliah_XXX yang telah anda buat pada
praktikum modul 2

Percobaan 1 : Tampilkan npm, nama dari data mahasiswa kodemata kuliah, nilai
UTS ,nilai UAS dari tabel ambil kuliah berdasarkan NPM.

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 45


Percobaan 2 : Tampilkan npm, nama dari data mahasiswa kodemata kuliah, nilai
UTS ,nilai UAS dari tabel ambil kuliah berdasarkan kesamaan NPM.
(INNER JOIN)
Percobaan 3 : Tampilkan npm, nama dari data mahasiswa kodemata kuliah, nilai
UTS ,nilai UAS dari tabel ambil kuliah berdasarkan kesamaan NPM.
(LEFT JOIN)
Percobaan 4 : Tampilkan npm, nama dari data mahasiswa kodemata kuliah, nilai
UTS ,nilai UAS dari tabel ambil kuliah berdasarkan kesamaan NPM.
(RIGHT JOIN)

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 46


Praktikum

7
ERD

Tujuan :
1. Prakt ikan dapat memahami dan membuat ER-Diagram.

Alat dan Bahan :


1 Buku literatur mengenai sistem database, terutama yang menggunakan DBMS
Mysql (Xampp) , khususnya mengenai ERD dan aplikasi Power Designer.
2 Modul praktikum

Tugas Pendahuluan :
1. Tentukan Database serta field-fieldnya yang ingin anda buat!
2. Buatlah ER d iagramnyadengan pemodelan El-Masri!
3. Apakah yang dimaksud dengan normalisasi? Jelaskan !

Landasan Teori
Apa yang dimaksud dengan model data?

Model data adalah sekumpulan cara / peralatan / tool untuk 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
basis
data pada peringkat logika.

• Model ERD atau Conceptual Data Model (CDM) : model yang dibuat
berdasarkan anggapan bahwa dunia nyata terdiri dari ko leksi obyek-

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 47


obyek
dasar yang dinamakan entitas (entity) serta hubungan (relationship)
antara entitas-entitas itu.

• Model Relasional atau Physical Data Model (PDM) : model yang


menggunakan sejumlah tabel untuk menggambarkan data serta
hubungan antara data-data tersebut. Setiap tabel mempunyai sejumlah
ko lo m di mana setiap ko lo m memiliki nama yang unik.

• Strong entity (entitas kuat) : entitas yang mandiri, yang keberadaannya


tidak bergantung pada keberadaan entitas yang lainnya. Instansiasi
entitas kuat selalu memiliki karakteristik yang unik disebut identifier
(sebuahatribut tunggal atau gabungan atribut-atribut yang secara unik
dapat
digunakan untuk membedakannya dari entitas kuat yang lain ).
• Weak entity (entitas lemah) : entitas yang keberadaannya sangat
bergantung pada keberadaan entitas yang lainnya. Entitas lemah tidak
memiliki art i apa-apa dan tidak dikehendaki kehadirannya dalam
diagram ER tanpa kehadiran entitas di mana mereka bergantung
Entitas di mana entitas lemah bergantung dinamakan identifying owner. Entitas
lemah tidak memiliki identifier sendiri. Secara u mu m, dalam diagram ER entitas
lemah memiliki atribut yang berperan sebagai partial identifier (identifier yang
berfungsi secara sebagian).

Agregasi adalah suatu keadaan di mana suatu relasi hanya dapat direalisasikan
setelah relasi yang lain ada terlebih dahulu. Relasi yang bertipe agregasi tidak
dimungkinkan ada jika relasi yang men jadi prasyaratnya tidak terealisasi.
Contoh:

Sesungguhnya agregasi dapat dipandang sebagaimana relasi pada umu mnya


(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
terimp lementasikan. Selan jutnya kita tinggal meninjau derajat relasi dari relasi
agregasinya.

Mengapa jika terdapat set entitas yang sama muncul beberapa kali dalam satu
set
ER-Diagram in i harus dihindari?

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 48


• Untuk menghindari redundancy
• Menghemat penyimpanan (storage) data
• Mengurangi efekt ifitas dan kecepatan akses
• Untuk menghindari terjad inya asinkronisasi data pada saat
diupdate

perbedaan antara total constraint dan partial constraint!

• Total constraint adalah constraint yang mana data dalam entitas yang
memiliki constraint tersebut terhubung secara penuh ke dalam entitas
dari relasinya.
• Constraint partial adalah constraint yang mana data dalam entitas yang
memiliki constraint tersebut terhubung ke dalam entitas dari relasinya.

Relasi satu :

• Entity 1 to entity 2 : kardinalitas : one to many dengan detail minimal 0


dan maksimalnya banyak. Dependensi : entitas 1 dan entitas 2 tidak
saling ketergantungan.
• Entity 2 to entity 1 : kardinalitas : many to one dengan detail minimal 1
dan maksimalnya 1. Dependensi : entitas 1 dan entitas 2 t idak saling
ketergantungan.

Relasi dua :

• Entity 3 to entity 4 : kard inalitas : one to many dengan detail minimal 0


maksimalnya banyak. Dependensi : entitas 3 dan entitas 4 t idak saling
ketergantungan.
• Entity 4 ke entity 3 : kard inalitas : many to one dengan detail minimal 1
maksimal 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 one

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 49


dengan detail minimal 0 maksimalnya 1. Dependensi : entitas 5 dan
entitas 6 tidak saling ketergantungan.

Relasi empat:

• Entity 7 to entity 8 : kardinalitas : one to one dengan detail min imal 0


maksimalnya 1. Dependensi : entitas 7 dan entitas 8 tidak saling
ketergantungan.
• Entity 8 ke entity 7 : kard inalitas : one to one dengan detail minimal 1
maksimal 1. Dependensi : entitas 8 dan entitas 7 tidak saling
ketergantungan.

Relasi lima

• Entity 9 to entity 10 : kardinalitas : many to many dengan detail minimal


0 maksimalnya banyak. Dependensi : entitas 9 dan entitas 10 tidak saling
ketergantungan.
• Entity 10 ke entity 9 : kard inalitas : many to many dengan detail minimal
1 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 0


maksimalnya banyak. Dependensi : entitas 13 menjadi parent dari entitas
14.
• Entity14 ke entity 13 : kardinalitas : many to one dengan detail min imal 1
maksimal 1. Dependensi : entitas 14 tergantung kepada entitas 13.

Perbedaan antara tahap 1NF dengan tahap BCNF :

• 1NF : tahap normalisasi dasar, yang mana masih belu m sampai pada
tingkat efekt ifitas maksimal, masih banyak kemungkinan terjadinya
redundancy data atau duplikasi data.
• BCNF : tahap normalisasi setelah 3NF , yang mana efektifitas telah
mencapai maksimal, kemungkinan terjad inya redundancy data dan
duplikasi data lebih kecil daripada 1NF.

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 50


PERCOBAAN PRAKTIKUM
1. Bangun sebuah ER-Diagram untuk database anda. Serta bangun tabel-tabel
untuk ER-diagramnya dan setiap tabel jelas relasinya! (dengan menggunakan
Power Designer)

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 51


Praktikum

8
ALJABAR RELASIONAL DAN
NORMALISASI DATA

Tujuan :
2. Praktikan mamppu membangun desain logika basis data relasional untuk
menghasilkan struktur tabel yang normal.

Alat dan Bahan :


1 Buku literatur mengenai sistem database, terutama yang menggunakan DBMS
Mysql (Xampp) , khususnya mengenai Aljabar Relasional dan Normalisasi.
2 Modul praktikum

Tugas Pendahuluan :
1. Apakah yang anda ketahui tentang aljabar Relasional
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 dapat
dimanfaatkan untuk memperoleh tabel dan basis data yang lebih baik.

Landasan Teori
1. Normalisasi
Normalisasi merupakan suatu Teknik/Cara yang digunakan untuk
menganalisa relasi berdasarkan pada primary key (atau Candidate key dalam
kasus BCNF) dan ketergantungan secara fungsional. Pertama diusulkan oleh
E.F Codd (1972).

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 52


Pada normalisasi data, digunakan istilah baru yang disebut dengan functinal
dependencies atau ketergantungan fungsional

Ketergantungan Fungsional (Functional Dependencies)


Functional Dependency menggambarkan hubungan attributes dalam sebuah
relasi. Suatu atribut dikatakan functional dependency pada yang lain jika kita
menggunakan harga atribut tersebut untuk menetukan harga atribut yang
lain. Simbul yang digunakan adalah untuk mewakili functional
dependency ( dibaca secara fungsional menentukan).
a. 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 dalam tabel T dimana A B.
Jika r1(A) = r2(A), maka r1(B) = r2(B)
Dimisalkan relasi nilai_mahasiswa memiliki 4 buah atribut/field yaitu
nama_matkul, npm, nama_mahasiswa dan nilai. Maka ketergantungan
fungsional pada relasi tersebut adalah
Npm nama_mahasiswa
Yang artinya bahwa atribut nama_mahasiswa hanya tergantung pada
atribut nim. Hal ini dibuktikan dari fakta: untuk setiap nilai npm yang
sama, maka pasti nilai nama_mahasiswa nya juga sama.
Nama_matkul, nim nilai
yang berarti bahwa atribut nilai tergantung pada atribut nama_kull
dannim secara bersama-sama. Untuk ketergantungan fungsional
seperti inisesuai dengan pengertian bahwa setiap nilai diperuntukkan
padamahasiswa tertentu untuk matakuliah tertentu yang diambil.
Dalam artilain untuk nama_kul dan nim yang sama, maka nilai juga
sama, karenanama_kul dan nim merupakan key (bersifat unik).

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 53


b. Notasi: A non_ B atau A x_ B
Adalah kebalikan dari notasi sebelumnya, dengan hanya melihat
faktayang ada, yaitu:
1) nama_kul non _ nimyang artinya atribut nim tidak tergantung pada
atribut nama_kul.
2) 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 nim.
Bentuk-Bentuk Normalisasi
Bentuk-bentuk normal dapat dimanfaatkan untuk memperoleh tabeldan
basis data yang lebih baik.
Bentuk Normal Pertama (1NF)
Suatu tabel dikatakan dalam bentuk normal pertama hanya kalausetiap
kolom bernilai tunggal untuk setiap baris. Sehingga tidak diperbolehadanya
:Atribut yang bernilai banyak (Multivalued attribut).Attribut komposit atau
kombinasi dari keduanya.Berikut ini akan dicontohkan normalisasi dari tabel
kuliah yang memilikiatribut:

Tabel kuliah tersebut tidak memenuhi normalisasi pertama, karena terdapat


atribut waktu yang tergolong ke dalam atribut bernilai banyak. Agar
tabeltersebut dapat memenuhi 1NF, maka solusinya adalah mendekomposisi
tabelkuliah menjadi:
1. Tabel Kuliah

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 54


2. Tabel Jadwal

Bentuk Normal Kedua (2NF)


Suatu tabel disebut dalam bentuk normal kedua, jika :
1. Tabel berada dalam bentuk normal pertama
2. Semua kolom yang bukan primary key tergantung sepenuhnya
terhadapprimary 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:

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 baruyaitu nim_nama_mhs. Karena atribut nama_mhs ini hanya
memilikiketergantungan parsial pada primary key secara utuh (hanya
tergantung padanim, padahal nim hanya bagian dari primary key).Bentuk
normal kedua inidianggap belum memadai karena meninjau sifat
ketergantungan atributterhadap primary key saja.

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 55


Bentuk Normal Ketiga (3NF)
Suatu tabel dikatakan dalam bentuk normal ketiga, jika :
1. Berada dalam bentuk normal kedua
2. Setiap kolom bukan primary key tidak memiliki ketergantung
transitifterhadap primary key
Suatu kolom Z memiliki ketergantungan transitif terhadap kolom X, jika :
1. Y memiliki ketergantungan fungsional terhadap X, dan
2. Z memiliki ketergantungan fungsional terhadap Y

Misalkan pada tabel Mahasiswa, atribut alamat_mhs dipecah ke


dalamalamat_jalan, alamat_kota dan kode_pos. Bentuk ini tidak memenuhi
3NFkarena terdapat ketergantungan fungsional baru yang muncul pada
tabeltersebut yaitu:
alamat_jalan nama_kota kode_pos
Dalam hal ini (alamat_jalan, nama_kota) bukan superkey sementara
kode_posjuga bukan bagian dari primary key pada tabel mahasiswa.Jika
tabelmahasiswa didekomposisi menjadi tabel mahasiswa dan tabel alamat,
makatelah memenuhi 3NF. Hal ini dapat dibuktikan dengan memeriksa
duaketergantungan fungsional pada tabel alamat tersebut, yaitu:
alamat_jalan nama_kota kode_pos
kode_pos nama_kota

Bentuk Normal Tahap Keempat dan Kelima


Penerapan aturan normalisasi sampai bentuk normal ketiga sudahmemadai
untuk menghasilkan tabel berkualitas baik.Namun demikian,terdapat pula
bentuk normal keempat (4NF) dan kelima (5NF).Bentuk NormalKeempat
berkaitan dengan sifat ketergantungan banyak nilai
(multivalueddependency) pada suatu tabel merupakan pengembangan dari
ketergantunganfungsional. Sedangkan bentuk normal tahap kelima
merupakan nama lain dariProject Join Normal Form (PJNF).

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 56


Boyce Codd Normal Form (BCNF)
Bentuk normal ketiga 3NF dapat dikatakan BCNF karena sudah
cukupmemadai untuk menghasilkan tabel-tabel yang berkualitas baik.
Sebuah tabeldikatakan baik (efisien) atau normal jika memenuhi 3 kriteria
sbb:
1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya
harusdijamin aman (Lossless-Join Decomposition). Artinya, setelah
tabeltersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-
tabelbaru tersebut bisa menghasilkan 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
tabeltersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal
Form / 3NF).

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. Aljabar relasional
Aljabar relasional adalah sebuah bahasa query prosedural yang terdiri
darisekumpulan operasi dimana masukkannya adalah satu atau dua relasi
dankeluarannya adalah sebuah relasi baru sebagai hasil dari operasi
tersebut.

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 57


Operasi-operasi dasar dalam aljabar relasional adalah :
Operasi Select
Operasi select digunakan untuk menyeleksi tuple-tuple yang
memenuhipredikat yang diberikan. Digunakan symbol sigma (σ)
untukmenunjukkan operasi select.
σalamat=”Surabaya”(karyawan)

Operasi Project
Operasi Project digunakan untuk menampilkan nama-namaatribut yang
diinginkan tampil.Operasi project disimbolkandengan symbol phi (π).
πnama,alamat(karyawan)

Union
Disimbolkan dengan tanda “U “. Operasi union dalamaljabar relasional
sama halnya dengan operasi union padaaritmatika. Dengan operasi
union informasi yang diinginkandapat diperoleh.
πjumlah(pesan) U πjumlah(stok)

Set difference
Disimbolkan dengan tanda “-“.Operasi ini untukmenemukan tuple-tuple
yang berada pada satu relasi tetapitidak berada pada relasi yang lainnya.
πid_karyawan (karyawan) – πid_karyawan(transaksi)

Cartesian product
Operasi Cartesian-product disimbolkan dengan “x”.Dengan operasi ini
dapat dihasilkan informasi yangmerupakan kombinasi dari dua relasi.
σalamat=”Surabaya”(pelanggan x pesan)

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 58


3. PERCOBAAN PRAKTIKUM
Perincian tabel pada sistem informasi travel adalah sebagai berikut :

Percobaan 1 :Dari tabel di atas, buatlah bentuk normalisasi 1, II, dan III
Percobaan 2 :Tentukan tipe data dan constrainnya
Percobaan 3 :Tentukan tabel master dan transksi
Percobaan 4 :Buat perintah aljabar relasional pada masing-masing tabel
Percobaan 5 :Desain CDM dan PDm menggunakan software rational rose

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 59


Praktikum

9
VIEW 1

Tujuan :
3. Praktikan mampu membuat View untuk menampilkan data dari satu atau
beberapa table dengan membungkus suatu query SELECT yang ko mpleks
menjadi lebih sederhana.

Alat dan Bahan :


1 Buku literatur mengenai sistem database, terutama yang menggunakan DBMS
Mysql (Xampp) , khususnya mengenai View dan Index.
2 Modul praktikum

Tugas Pendahuluan
1. Apa yang anda ketahui tentang view?
2. Sebutkan batasan manipulasi melalui view !
3. Apa saja kegunaan view dalam table, jelaskan dengan contohnya.!

Landasan Teori
1. View
a. View dari satu tabel
Sebuah VIEW adalah tabel yang dibangun dari satu atau beberapa
tabel yang sudah ada. Secara fisik VIEW tidak membuat penyimpanan
data seperti tabel, melainkan hanya menyimpan referansi/pointer ke
record pada tabel-tabel yang berkaitan. VIEW disebut juga sebagai

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 60


“Virtual Table”.Secara umum aturan membuat VIEW adalah:

CREATE VIEW NamaView (Kolom1, Kolom2) AS


SELECT Kolom1, Kolom2 FROM NamaTabel WHERE predikat

Sebagai contoh adalah sebuah VIEW yang terbentuk dari satu tabel:
CREATE VIEW v1 AS
SELECT npm, Nama FROM mahasiswa_XXX

Karena VIEW dibentuk tanpa mencantumkan nama kolom baru,


maka v1 mewarisi kolom yang yang dipilih pada tabel
mahasiswa_XXX.

Menjalankan view diatas :

SELECT * FROM v1

b. View Dari Beberapa Tabel


VIEW dapat diciptakan dari beberapa tabel, misalnya sebuah join
sederhana seperti berikut:
VIEW V4 terdiri atas kolom yang dihasilkan melalui SELECT atas tabel
mahasiswa_XXX dan asisten_XXX.

CREATE VIEW v4 AS
SELECT A.npm, M.nama
FROM asisten_XXX A,mahasiswa_XXX M
WHERE A.npm=M.npm

2. PERCOBAAN PRAKTIKUM :
Import data/ tabel yang sudah anda buat pada pertemuan-pertemuan
sebelumnya.

1. Percobaan 1 :Buat view dengan nama view1xxx untuk menampilkan


seluruh data pegawai yang gajinya kurang dari 2.000.000
2. Percobaan 2 : Buat view dengan nama view2xxx untuk

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 61


menampilkan seluruh data pegawai yang bekerja di departemen IT
3. Percobaan 3 : Buat view dengan nama view3xxx untuk menamp
ilkan data pegawai dan departemen yang mempunyai honor diatas
rata-rata (gunakan join/ select mult iple tab le)
4. Percobaan 4 :Buat sebuah view yang akan menampilkan isi data
npm, nama, alamat, dan nomor telpon dari mahasiswa_XXX untuk
mahasiswa yang mempunyai nama ‘XXX’ dan nomor telfonnya
mengandung ’081’ saja.
5. Percobaan 5 : Buat view dari tabel pegawai_XXX dan tampilan data
gaji
Dengan memberikan THR pada setiap pegawai dengan jumlah 23 %
dari honor yang diterima
6. Percobaan 6 : Buat view dari tabel pegawai_XXX dan tampilan data
honor dengan memberikan tambahan transport bagi yang beralamat
diluar Kota Tuban sebasar 5 % dari total gaji yang diterima

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 62


Praktikum

10
VIEW 2

Tujuan :
1. Praktikan mampu membuat View untuk menampilkan data dari satu atau
beberapa table dengan membungkus suatu query SELECT yang ko mpleks
menjadi lebih sederhana.

Alat dan Bahan :


1 Buku literatur mengenai sistem database, terutama yang menggunakan DBMS
Mysql (Xampp) , khususnya mengenai View dan Index.
2 Modul praktikum

Tugas Pendahuluan
1. Apa saja keuntungan dan kerugian menggunakan view ?
2. Mengapa View lebih optimal pemakaiannya dibanding perintah select, jelaskan
?
3. Mengapa view bisa dijadikan sebagai kode rahasia untuk menampilkan suatu
tabel, jelaskan

I. Teori
1.1 Vie w
View dalam sql juga merupakan suatu table yang diturunkan dari table
yang lain. Tab le ini b ias 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.

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 63


a. Menghapus View
VIEW dapat dihapus dengan menggunakan DROP VIEW seperti berikut:
DROP VIEW v1

b. Mengubah View
Untuk dapat langsung mengubah VIEW, gunakan ALTER sama dengan
syntax alter pada tabel.

c. Updating dan insert data Melalui View


Updating dapat dilakukan ke dalam VIEW dengan memberikan nilai
seperti pada inserting dan updating tabel.Namun harus
memperhatikan “NOT NULL” option dan CONSTRAINT lainnya,
sebelum memasukkan nilai ke dalam VIEW.

CREATE VIEW v6 (npm, nama, alamat, kota) AS


SELECT npm, nama, alamat, kota FROM mahasiswa_XXX
WHERE kota=’JAKARTA’
INSERT INTO v6 VALUES
(’03113331’, ‘Maya Kusuma’, ’Jl. Manunggal’, ‘Tuban’)
Perhatikan bahwa walaupun dalam WHERE dibatasi kota=’JAKARTA’,
namun SQL tidak dapat menolak nilai kota yang bukan ‘JAKARTA’

Agar konsistensi dapat dijaga, maka pada saat VIEW dibuat, pada
akhir instruksi harus ditambahkan “WITH CHECK OPTION”
Contoh :

ALTER VIEW v6(npm, nama, alamat, kota) AS


SELECT npm, nama, alamat, kota FROM mahasiswa_XXX
WHERE kota=’JAKARTA’ WITH CHECK OPTION
INSERT INTO v6 VALUES
(’02113316’, ‘Puspasari’, ’Jl. Kalimosodo9’, ‘Malang’)

2. Batasan Manipulasi Melalui VIEW


Melalui VIEW dapat dilakukan INSERT, UPDATE, dan DELETE dengan
beberapa limitasi yaitu:
1) Tidak dapat memasukkan record baru jika mengabaikan nilai NOT

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 64


NULL pada basis tabel dari VIEW tersebut.
2) Tidak dapat melakukan INSERT atau UPDATE jika salah satu kolom
dalam VIEW merupakan hasil kalkulasi atau hasil dari nilai balik
fungsi.
3) Tidak dapat melakukan INSERT, UPDATE, atau DELETE jika dalam
VIEW terdapat GROUP BY atau DISTINCT.

3. PERCOBAAN PRAKTIKUM
Percobaan 1 : Buat tabel Golongan, jabatan dan pegawai dengan data sebagai
berikut :
1. Golongan :

2. Jabatan :

3. Pegawai :

Percobaan 2 : Buat view dengan nama latihanview1 untuk menampilkan seluruh


data pegawai yang jabatannya sebagai staff
Percobaan 3 : Buat view dengan nama latihanview2 untuk menampilkan seluruh
data pegawai yang dua digit pertama nipnya di awali dengan
angka 03
Percobaan 4 : Buat view dengan nama lat ihanview3 untuk menamp ilkan data
nip, nama dan golongan pegawai serta tunjangan golongan yang
didapat (gunakan select mult iple tab le)
Percobaan 5 : Buat view dengan nama latihanview4 untuk menampilkan seluruh

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 65


data pegawai beserta gaji total yang diperolehnya. Gaji total
merupakan hasil perhitungan dari gaji pokok d i tambahkan
dengan tunjangan golongan serta tunjangan keluarga
Percobaan 6 : Hapuslah latihanview1
Percobaan 7 : Buat view dengan nama latihanview5 untuk menampilkan data
pegawai yang gaji pokoknya paling tinggi.

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 66


Praktikum

11
TRANSACT SQL

Tujuan :
Praktikan mampu untuk mengerti dan memahami Transact-SQL

Alat dan Bahan :


1 Buku literatur mengenai sistem database, terutama yang menggunakan DBMS
Mysql (Xampp) , khususnya mengenai Triger.
2 Modul praktikum

Tugas Pendahuluan :
1. Apa yang dimaksud dengan T-SQL ?
2. Bagaimana kerangka dari T-SQL ?
3. Struktur kontrol apa saja yang dapat digunakan dalam T-SQL ?
4. Bagaimana menjalankan T-SQL ?

Landasan Teori :
1. Transact-SQL
TRANSACT-SQL adalah bahasa pemrograman yang dikembangkan dari
SQL.Seperti diketahuiSQL adalah bahasa non procedural, artinya alur
program tidak seperti bahasa pemrogramanbisa, melainkan melalui
“request” dan “response”.Melalui perintah SQL seseorang melakukan query
atau transaksi, yang kemudian akanmenerima jawaban dari Database Server
berupa hasil atau ResultSet. Query dan transaksidilakukan di bagian Client,
sedangkan pemrosesan dilakukan pada Server.Transact-SQL
mengembangkan kemampuan SQL, sehingga Transact-SQL dapat melengkapi
SQLdengan instruksi logic (procedural logic), yaitu program aplikasi. Hasil
proses SQL-Server(ResultSet) dapat diolah lebih lanjut dengan menggunakan
logic pemrograman proceduralseperti Fungsi, Procedure, Loop, Case, If Then
Else, dan lainnya.

2. Kerangka Transact-SQL

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 67


TRANSACT-SQL dimulai dengan deklarasi variable dan disusul dengan blok
program. Variableharus dideklarasikan sebelum digunakan.Nama variable
selalu dimulai dengan karakter @.Variable dapat diberikan nilai melalui
instruksi SELECT.

DECLARE
/* deklarasi variable */
@v1 int,
@nama varchar(30)

Keterangan :SELECT digunakan juga untuk eksekusi aritmatika atau lainnya.


Misalnya :

SELECT @v1 = @v1 – 100

Variable dapat digunakan untuk mengambil nilai dari sebuah query:


Contoh :

DECLARE @nama char(30)


SELECT @nama = nama FROM mahasiswa_XXX
WHERE nrp=’ 02113216’
PRINT @nama

Hasil: Bambang

PRINT adalah fungsi yang menampilkan teks dan variable pada console
(layar).
Contoh:
PRINT “Nama yang ditemukan adalah :”
PRINT @nama
PRINT “Nama yang ditemukan adalah :”+@nama

3. Menjalankan Program Transact-SQL


Deklarasi Variable
Tipe dari variable yang dapat dideklarasikan adalah bagian dari Ms. SQL yaitu
char, varchar,datetime, int, money, dan lainnya.
Contoh deklarasi Variable:
DECLARE
@berat int,
@nama varchar(50),
@posisi varchar(50),
@tgl_hari_ini datetime,
@tgl_nanti datetime
SELECT @berat=100
SELECT @nama='CLARK KENT'
SELECT @tgl_hari_ini=getdate()
SELECT @posisi='SUPERMAN'
SELECT @tgl_nanti=@tgl_hari_ini
PRINT ( 'Berat anda adalah')
PRINT ( @Berat )

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 68


PRINT ( @nama )
PRINT ( @posisi )
PRINT ( @tgl_hari_ini )
PRINT ( @tgl_nanti )

Hasil:
Berat anda adalah
100
CLARK KENT
SUPERMAN
APRIL 4 2008 10:18AM
APRIL 4 2008 10:18AM
4. Variable Global
Variable global adalan variable yang disiapkan oleh SQL-Server untuk
memberikan informasikepada Client. Variable global bersifat read-only.
Nama variable global diawali dengan @@.
@@error :adalah bilangan bulat yang menyatakan nomor error. Jika
variable tersebuttidak sama dengan 0, maka system memberikan
indikasi bahwa terjadierror dan identitas error dinyatakan dalam
angka.
@@cursor_rows :adalah nilai balik dari cursor yang terakhir kali diolah.
@@fetch_status :adalah nilai balik dari “fetch” pada cursor. Nilai 0 adalah
OK.
@@identity :memberikan nilai otomatis setiap kali INSERT dilakukan. Nilai
ini adalahidentitas dari record tersebut.
@@nestlevel :adalah nesting level dari stored procedures atau triggers
@@rowcount :memberikan nilai balik berupa jumlah baris (rows) yang
terpengaruh olehinstruksi terakhir. Setelah instruksi IF atau
WHILE, maka @@rowcountdihapus menjadi 0.
@@spid :adalah Server Process Id

5. IF
IF digunakan dalam mengendalikan alur program berdasarkan kondisi.

IF kondisi
Instruksi
IF kondisi
Instruksi1
ELSE
Instruksi2
IF kondisi
BEGIN
Instruksi1
Instruksi2
……
END

Contoh:

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 69


DECLARE @honor int,
@rata_rata int
SELECT @honor=100000
SELECT @rata_rata=200000
IF @honor > @rata_rata
PRINT ('Honor diatas rata-rata')
ELSE
PRINT ('Honor dibawah rata-rata')

Hasil: Honor dibawah rata-rata

Bila diaplikasikan pada tabel pegawai_XXX, maka nilai honor dapat diambil
dari kolom gaji:
DECLARE @gaji int,
@rata_rata int,
@pegawai char(8)
SELECT @pegawai='03010006'
SELECT @gaji=gajiFROM pegawai_xxx WHERE nid=@pegawai
SELECT @rata_rata=200000
IF @honor > @rata_rata
PRINT ('Honor diatas rata-rata')
ELSE
PRINT ('Honor dibawah rata-rata')

penggunaan blok IF BEGIN END dapat dilakukan bila instruksi dalam IF lebih
darisatu instruksi.

6. WHILE
WHILE digunakan dalam mengeksekusi satu blok program berulang-ulang
sampai kondisi pada WHILE menjadi false.

WHILE kondisi
BEGIN


END

Contoh
DECLARE @i int
SELECT @i=5
WHILE @i > 0
BEGIN
PRINT ' i = ' + str( @i)
SELECT @i = @i - 1
END

Hasil:
i=5
i=4

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 70


i=3
i=2
i=1
Perhatikan bahwa fungsi str() diperlukan untuk mengkonversi bilangan
integer menjadi string (teks).

7. CONTINUE dan BREAK


CONTINUE dan BREAK berkaitan dengan WHILE. CONTINUE melanjutkan alur
program padapemeriksaan kondisi WHILE, sedangkan BREAK mengakibatkan
alur program keluar dari WHILE.

WHILE kondisi1
BEGIN


IF kondisi2
CONTINUE

END
WHILE kondisi1
BEGIN


IF kondisi2
BREAK


END

8. RETURN
RETURN akan menghentikan program dari eksekusi. RETURN dapat
digunakan dalam
memproses error.
IF @@error <> 0
BEGIN
PRINT “Error…”
RETURN
END

9. CASE
CASE menyederhanakan IF yang berlapis dengan tujuan agar program dapat
dimengerti/dibacalebih mudah.
IF kondisi1
instruksi1
ELSE IF kondisi2
instruksi2
ELSE IF kondisi3
instruksi3
ELSE
instruksi4

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 71


Dapat diganti:
CASE
WHEN kondisi1 THEN
instruksi1
WHEN kondisi2 THEN
instruksi2
WHEN kondisi3 THEN
instruksi3
ELSE
instruksi4
END

Contoh:
DECLARE @t char(1),
@hasil varchar(255)
SELECT @t='B'
SELECT @hasil=
CASE
WHEN @t='A' THEN
'Karakter A'
WHEN @t='B' THEN
'Karakter B'
ELSE
'Tidak diketahui'
END
PRINT 'Hasil adalah '+@hasil
Hasil: Hasil adalah : Karakter B
Perhatikan bahwa CASE diatas digunakan untuk mengambil nilai variable:
SELECT @hasil=CASE
Berikut adalah variasi dari CASE:
DECLARE @t char(1),
@hasil varchar(255)
SELECT @t='X'
SELECT @hasil=
CASE @t
WHEN 'A' THEN
'Karakter A'
WHEN 'B' THEN
'Karakter B'
ELSE
'Tidak diketahui'
END
PRINT 'Hasil adalah '+@hasil

Contoh pada SQL-Query:


DECLARE @jk char,
@nama varchar(16),
@teks varchar(255)
SELECT @jk=jk, @nama=nama FROM mahasiswa_xxx WHERE
npm='02113216'
SELECT @teks=
CASE @jk
WHEN 'L' THEN 'Laki-laki'
WHEN 'P' THEN 'Perempuan'

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 72


ELSE '?'
END
PRINT @nama + ' adalah ' + @teks

Hasil: Bambang adalah Laki-laki

10. Percobaan Praktikum

Sebelum memulai, aktifkan xampp Control Panel Kemudian masuk di SQL

Percobaan 1 : Modifikasilah contoh WHILE pada modul ini, sehingga menjadi


menjadi satu
baris saja seperti berikut:

Percobaan 2 :
Buat sebuah T-SQL untuk menghitung Nilai rata-rata langsung
dari tabel Pegawai_xxx.Buat keterangan bahwasannya pegawai
tersebut memiliki gaji diatas rata-rata atau dibawah rata-rata.

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 73


Praktikum

12
EVALUASI PRAKTIKUM II

Tujuan :
Praktikan dapat mengimplementasikan semua modul praktikum ini pada
aplikasi

Tugas Project Akhir :


1. Buat sebuah database sesuai dengan tema yang sudah ditentukan.
2. Lanjutkan tugas membuat sebuah desain implementasinya. (ERD, CDM dan
PDM ) !
3. Koneksikan Database pada program aplikasi yang anda buat (Program bebas) !
4. Demo project kepada dosen yang bersangkutan sesuai dengan jadwal yang
sudah di tentukan!

** SELAMAT MENGERJAKAN **

Modul Praktikum Basis Data Teknik Informatika UNIROW Tuban 74

Anda mungkin juga menyukai