Database with SQL Server

59
MODUL PRAKTIKUM SISTEM BASIS DATA MENGGUNAKAN MICROSOFT SQL SERVER OLEH : EDI ISMANTO, S.T, M.KOM LABORATORIUM KOMPUTER PROGRAM STUDI PENDIDIKAN INFORMATIKA UNIVERSITAS MUHAMMADIYAH RIAU

Transcript of Database with SQL Server

Page 1: Database with SQL Server

MODUL PRAKTIKUM

SISTEM BASIS DATA MENGGUNAKAN

MICROSOFT SQL SERVER

OLEH :

EDI ISMANTO, S.T, M.KOM

LABORATORIUM KOMPUTER

PROGRAM STUDI PENDIDIKAN INFORMATIKA

UNIVERSITAS MUHAMMADIYAH RIAU

Page 2: Database with SQL Server

Page | 2

IDENTITAS MODUL

PENDIDIKAN INFORMATIKA UNIVERSITAS MUHAMMADIYAH RIAU

Di Susun Oleh : Edi Ismanto, S.T, M.Kom

Mata Kuliah : Sistem Basis Data

Kode Matakuliah :

Kode Modul :

Dokumen Prodi Pendidikan Informatika Tidak di Perjual Belikan

DILARANG MENCORET ISI DALAM MODUL

TATA TERTIB PRATIKUM

1. Selesai Pratikum Harap Modul di Kumpul ke Instruktur Pratikum

2. Untuk mendapatkan soft copy Modul silahkan hubungi Instruktur Pratikum 3. Tas kuliah harap diletakkan di laci yang telah disediakan didalam LAB 4. Di larang membawa makanan dan minuman di dalam LAB Komputer

5. Sepatu harap dilepas ketika masuk dalam LAB Komputer

Page 3: Database with SQL Server

Page | 3

MODUL I

MEMBUAT DESAIN BASIS DATA

1. Dasar Teori

Basis Data

Basis data adalah kumpulan data yang saling berhubungan yang disimpan secara

bersama sedemikian rupa dan tanpa pengulangan (redundancy) yang tidak perlu, untuk

memenuhi berbagai kebutuhan. Basis data bisa dibayangkan sebagai lemari arsip

dengan berbagai cara pengaturannya. Basis data dan lemari arsip memiliki prinsip kerja

dan tujuan yang sama; prinsipnya yakni pengaturan data/arsip. Tujuan utamanya adalah

kemudahan dan kecepatan dalam pengambilan kembali data/arsip.

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.

Model-Model Data ada 5 yaitu:

� Model Hirarkis (Hierarchical Model)

� Model Jaringan (Network Model)

� Model Relasional (Relational Model)

� Model Relasi Entitas (Entity-Relationship Model)

� Model Berbasis Objek (Object Oriented Model)

Model Relasi Entitas (Entity-Relationship Model)

Merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data yang

berdasarkan suatu persepsi bahwa di dunia nyata terdiri dari object-object dasar yang

memiliki hubungan atau relasi dari object-object tersebut. Model Relasi-Entitas atau

(Entity Relationship Model) pada hakekatnya perwujudan dari model relasional dalam

bentuk diagram, yaitu E-R Diagram. Domain data disebut juga sebagai himpunan

entitas, diwakili oleh diagram kotak. Field-data atau atribut diwakili oleh diagram

lingkaran atau ellips. Hubungan atau relasi antar domain diwakili oleh jajaran-genjang.

Tujuan :

1. Praktikan dapat memahami model basis data

2. Praktikan dapat memahami dan membuat ER-Diagram

Page 4: Database with SQL Server

Page | 4

Entity dalam E-R diagram dibedakan menjadi 2 yaitu :

� 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 (sebuah 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 sangat bergantung pada

keberadaan entitas yang lainnya. Entitas lemah tidak memiliki arti 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 umum, dalam diagram ER entitas lemah memiliki

atribut yang berperan sebagai partial identifier (identifier yang berfungsi secara

sebagian).

Mengapa jika terdapat set entitas yang sama muncul beberapa kali dalam satu set

ER-Diagram ini harus dihindari?

� Untuk menghindari redundancy

� Menghemat penyimpanan (storage) data

� Mengurangi efektifitas dan kecepatan akses

� Untuk menghindari terjadinya asinkronisasi data pada saat diupdate

Participation Constraint (Batasan Partisipasi) ini menentukan apakah keberadaan sebuah

entitas tergantung pada hubungannya ke entitas lain melalui jenis relasinya.

Participation Constraint ada 2 yaitu :

� 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.

Derajat Kardinalitas Relasi

Kardinalitas relasi menunjukkan jumlah maksimum data entitas yang dapat berelasi

dengan entitas lain.

Relasi satu :

Page 5: Database with SQL Server

Page | 5

� 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 tidak saling ketergantungan.

Relasi dua :

� Entity 3 to entity 4 : kardinalitas : one to many dengan detail minimal 0

maksimalnya banyak. Dependensi : entitas 3 dan entitas 4 tidak saling

ketergantungan.

� Entity 4 ke entity 3 : kardinalitas : 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 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 minimal 0

maksimalnya 1. Dependensi : entitas 7 dan entitas 8 tidak saling ketergantungan.

� Entity 8 ke entity 7 : kardinalitas : one to one dengan detail minimal 1 maksimal 1.

Dependensi : entitas 8 dan entitas 7 tidak saling ketergantungan.

Page 6: Database with SQL Server

Page | 6

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 : kardinalitas : many to many dengan detail minimal 1

maksimal banyak. Dependensi : entitas 10 dan entitas 9 tidak saling

ketergantungan.

Relasi enam:

� 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 minimal 1

maksimal 1. Dependensi : entitas 14 tergantung kepada entitas 13.

2. Kegiatan Praktikum

Latihan 1 : menemukan entitas

Dalam membuat desain database yang dilakukan pertama kali dengan menemukan

entitasnya. Langkah-langkah menemukan entitas yaitu :

1. Buat ilustrasi/gambaran cerita tentang sistem yang akan dicari entitasnya.

Contoh : Sistem Kepegawaian di perusahaan A

Perusahaan A memiliki 100 pegawai. Setiap pegawai dipimpin pengawas/mandor dari

pegawai perusahaan itu sendiri dan tidak semua pegawai memimpin pegawai yang

lain. sehingga satu pengawas dapat memimpin beberapa pegawai. Setiap pegawai

bekerja untuk suatu departemen dan dalam suatu departemen dapat terdiri dari

beberapa pegawai. Setiap departemen dikepalai oleh seorang pegawai yang bekerja

mulai tanggal tertentu. Sebuah departemen dapat berada di beberapa lokasi. Selain

bekerja di suatu departemen pegawai dapat bekerja pada beberapa proyek. Setiap

proyek dikendalikan/diatur oleh suatu departemen, namun suatu departemen tidak

harus mengendalikan/mengatur proyek. Satu departemen dapat mengendalikan

Page 7: Database with SQL Server

Page | 7

beberapa proyek dan satu proyek hanya dikendalikan oleh satu departemen Satu

proyek dapat terdiri dari beberapa pegawai. Untuk keperluan penggajian perusahaan

memerlukan data tanggungan pegawai. Seorang pegawai dapat menanggung

beberapa tanggungan. Jika seorang pegawai pindah maka datanya akan

dipindahkan/dihapus beserta data tanggungan/keluarganya.

2. Tandai setiap objek yang diwakili oleh kata benda yang ada di dalam ilustrasi

Tersebut.

Perusahaan A memiliki 100 pegawai. Setiap pegawai dipimpin pengawas/mandor

dari pegawai perusahaan itu sendiri dan tidak semua pegawai memimpin pegawai

yang lain. sehingga satu pengawas dapat memimpin beberapa pegawai. Setiap

pegawai bekerja untuk suatu departemen dan dalam suatu departemen dapat terdiri

dari beberapa pegawai. Setiap departemen dikepalai oleh seorang pegawai yang

bekerja mulai tanggal tertentu. Sebuah departemen dapat berada di beberapa lokasi.

Selain bekerja di suatu departemen, pegawai dapat bekerja pada beberapa proyek.

Setiap proyek dikendalikan/diatur oleh suatu departemen, namun suatu departemen

tidak harus mengendalikan/mengatur proyek. Satu departemen dapat mengendalikan

beberapa proyek dan satu proyek hanya dikendalikan oleh satu departemen.Satu

proyek dapat terdiri dari beberapa pegawai. Untuk keperluan penggajian perusahaan

memerlukan data tanggungan pegawai. Seorang pegawai dapat menanggung

beberapa tanggungan. Jika seorang pegawai pindah maka datanya akan

dipindahkan/dihapus beserta data tanggungan/keluarganya.

3. Untuk setiap objek tersebut yakinkan bahwa ia memiliki karakteristik yang

nanti disebut sebagai atribut.

Perusahaan: NoPerusahaan, nama, alamat

Pegawai: NoKTP, Nama, Alamat, Jenis kelamin,gaji

Pengawas: NoKTP, Nama, Alamat, Jenis kelamin,gaji

Departemen: Nomor, Nama, lokasi, jumlah pegawai

Lokasi : lokasi

Proyek: Nomor, nama, lokasi

Tanggungan: nama, jenis kelamin, tanggal lahir, hubungan dengan pegawai.

Page 8: Database with SQL Server

Page | 8

4. Tentukan objek yang merupakan entitas (Jika memang ia memiliki karakteristik

jadikan ia sebagai entitas).

Perusahaan: NoPerusahaan, nama, alamat (hanya berisi satu baris data) bukan

entitas

Pegawai: NoKTP, Nama, Alamat, Jenis kelamin,gaji entitas kuat

Pengawas:NoKTP, Nama, Alamat, Jenis kelamin,gaji sama dengan entitas

Pegawai

Departemen: Nomor, Nama, lokasi, jumlah pegawai entitas kuat

Lokasi : lokasi (karakteristiknya departemen, tidak memiliki karakteristik lain (unik))

bukan entitas

Proyek: Nomor, nama, lokasi entitas kuat

Tanggungan: nama, jenis kelamin, tanggal lahir, hubungan dengan pegawai entitas

lemah (tergantung pada pegawai)

3. Tugas

1. Dari entitas dan atribut yang ditemukan, buat desain database kepegawaian

menggunakan ER-Diagram dengan relasi yang menghubungkan antar entity

tersebut!

2. Lakukan mapping ER-Diagram ke tabel!

3. Buat desain CDM (Conceptual Data Model) dan PDM (Physical Data Model) utk

database tersebut! (dengan menggunakan Visio atau Power Designer).

Page 9: Database with SQL Server

Page | 9

MODUL II

MICROSOFT SQL SERVER

1. Tentang Microsoft SQL Server

Microsoft SQL Server diperkenalkan pada tahun 1990 untuk platform Microsoft OS/2

dalam kerjasamanya dengan Sybase. Produk ini berasal dari Sybase SQL Server 4.x untuk

platform Unix. Dengan adanya Windows NT, muncul inisiatif untuk membangun SQL Server

versi Windows NT sehingga dihasilkan Microsoft SQL Server versi 4.2 untuk platform

Windows NT. Kerjasama dengan Sybase masih berlanjut dan diluncurkan SQL Server 6.0

pada tahun 1995 dan setahun kemudian SQL Server versi 6.5 diluncurkan.

SQL Server 6.5 memperbarui kemampuan transaksi dan menjadi produk database

client/server yang banyak dipakai pada platform Windows NT. Untuk memenuhi kebutuhan

pengguna yang makin meningkat, maka SQL Server perlu didisain ulang dan kerjasama

dengan Sybase dihentikan. Kemudian Microsoft mengembangkan SQL Server 7.0 yang

difokuskan pada tiga area yaitu : easy to use, scalability dan data warehousing. Pada tahun

2000, kemudian Microsoft meluncurkan SQL Server 2000, hingga sampai sekarang

Microsoft terus meluncurkan SQL Server versi terbaru untuk mengikuti perkembangan

kemajuan teknologi.

A. 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. SQL Server mengenal

beberapa tipe data field yaitu :

1. Tipe data numerik

Tipe data numerik dibedakan dalam dua macam kelompok, yaitu integer dan floating

point. Integer digunakan untuk data bilangan bulat sedangkan floating point digunakan

untuk bilangan desimal.

Tujuan :

1. Praktikan mampu memahami instalasi SQL di lingkungan

Windows

2. Praktikan dapat memahami dasar-dasar SQL

3. Praktikan dapat memahami dan membuat database di SQL

4. Praktikan dapat memahami dan membuat tabel di SQL

Page 10: Database with SQL Server

Page | 10

2. Tipe data string

String adalah rangkaian karakter. Tipe-tipe data yang termasuk dalam tipe data string

dapat dilihat pada tabel 1.1 berikut:

Tabel 1.1 Tipe Data String

Tipe Data Kisaran Nilai

CHAR -255 karakter VARCHAR 255 karakter TINYTEXT 255 karakter TEXT 65535 karakter MEDIUMTEX 16777215 karakter LONGTEXT 424967295 karakter

3. 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 1.2 berikut ini:

Tabel 1.2 Letak Perbedaan Jumlah Memori

Nilai Char(4)

Memori Penyimp

anan

Varchar (4)

Memori Penyimpanan

“” “” 4 bytes “” 1 byte

’ab’ ’ab’ 4 bytes ’ab’ 3 bytes

’abed ’abed 4 bytes ’abed’ 5 bytes

’abed ’abed 4 bytes ’abed’ 5 Bytes

4. Tipe data tanggal

Untuk tanggal dan jam, tersedia tipe-tipe data field berupa DATETIME, DATE,

TIMESTAMP, TIME dan YEAR. Masing-masing tipe mempunyai kisaran nilai tertentu.

SQL Server 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 1.3 berikut ini:

Tabel 1.3 Tipe Data Tanggal

Tipe Data Kisaran Nilai Memori Penyimpa

DATETIME 1000-01-01 00:00 sampai 9999-12-31 23:59:59

3 byte

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 sampai 838:59:59 3 byte

4

5

Page 11: Database with SQL Server

Page | 11

B. Operator SQL Server

SQL Server mendukung penggunaan operator-operator dan fungsi-fungsi

diantaranya:

1. Operator Aritmetika

Suatu ekspresi yang melibatkan tipe data bilangan (NUMERIK) dan tanggal (DATE)

menggunakan ekspresi aritmatika. Dapat dilihat pada tabel 1.4 berikut ini:

Tabel 1.4 Operator aritmatika SQL Server

Operator Keterangan + Tambah - Kurang * Kali / Bagi Mod () Modulus

2. Operator Pembandingan

Suatu ekspresi yang dapat digunakan pada klausa WHERE dan mempunyai sintax

sebagai berikut: WHERE expr operator value. Tabel 1.5 menunjukanoperator

pembanding pada SQL Server berikut ini:

Tabel 1.5 Operator Pembanding SQL Server

Operator Keterangan = Sama Dengan > Lebih Besar < Lebih Kecil >= Lebih Besar atau Sama Dengan <= Lebih Kecil atau Sama Dengan <> Tidak Sama Dengan

3. Operator Logika

Operator ini digunakan untuk membandingkan dua nilai variabel yang bertipe

boolean.

4. Operator Karakter

Operator untuk membentuk pencarian string yang sesuai dengan nilai yang

mencantumkan pada kondisi. Kondisi pencarian dapat berisi karakter , ada 3 symbol

khusus berikut ini dapat dilihat pada tabel 1.6 berikut ini:

Tabel 1.6 Tabel Operator Karakter

Operator Keterangan % Sembarang karakter berapapun

Sembarang satu karakter [] Sembarang karakter yang terletak dalam

Page 12: Database with SQL Server

Page | 12

5. Operator Lain-lain

Operator 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 1.7 berikut ini:

Tabel 1.7 Operator lain-lain

Operator Keterangan IN Dalam BETWEEN Diantara

1. Kegiatan Praktikum :

1. Jalankan file setup sql server 2008, maka akan muncul dialog instalasi sebagai

berikut :

Gambar 1. Setup instalansi Sql Server 2008

2. Pilih icon new installation, kemudian muncul dialog sebagai berikut :

Gambar 2. Setup instalansi Sql Server 2008 License Terms

Page 13: Database with SQL Server

Page | 13

3. Pilih tombol Next. Kemudian tampil dialog fitur konfigurasi sebagai berikut :

Gambar 3. Setup instalansi Sql Server 2008 Configuration

4. Pilih tombol Next. Kemudian tampil dialog fitur server konfigurasi sebagai berikut :

Gambar 4. Setup instalansi Sql Server 2008 Server Configuration

Page 14: Database with SQL Server

Page | 14

5. Pilih tombol Next. Kemudian tampil dialog fitur Database Engine Configuration

sebagai berikut :

Gambar 5. Setup instalansi Sql Server 2008 Database Engine Configuration

6. Pilih tombol Next. Kemudian tampil dialog fitur Error Reporting sebagai berikut :

Gambar 6. Setup instalansi Sql Server 2008 Error Reporting

Page 15: Database with SQL Server

Page | 15

7. Pilih tombol Next, hingga proses instalansi komplit, sampai tampil dialog fitur

Complete sebagai berikut :

Gambar 7. Setup instalansi Sql Server 2008 Complete

8. Melakukan koneksi ke SQL Server sebagai berikut, Pilih tombol Connect :

Gambar 8. Koneksi ke SQL Server

Page 16: Database with SQL Server

Page | 16

9. Sampai tampil, tampilan berikut :

Gambar 9. Layar Kerja Tampilan SQL Server

Latihan 1 : Membuat Database

Dari hasil desain praktikum modul 1, buat database kepegawaian menggunakan

database SQL Server dengan perintah: create database namadatabase;

Misalkan anda ketikkan :

create database kepegawaian;

Untuk memilih dan membuka database dapat menggunakan perintah berikut ini:

use namadatabase; Contoh:

use kepegawaian;

Untuk menampilkan database dapat menggunakan perintah berikut :

Show databases;

Latihan 2 : Menghapus Database

Untuk menghapus database menggunakan perintah berikut :

DROP DATABASE namadatabase;

Database yang akan dihapus sesuai dengan namadatabase. Contoh :

DROP DATABASE kepegawaian;

Page 17: Database with SQL Server

Page | 17

Latihan 3 : Membuat Tabel

Sebelum 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 (,). Untuk menampilkan deskripsi tabel (dalam hal ini jenisfilm)

syntaxnya adalah :

DESC namatabel;

Contoh :

DESC pegawai;

2. Tugas

1. Di dalam database kepegawaian, buat tabel-tabel yang akan digunakan sesuai

dengan CDM/PDM yang dibuat pada modul 1 menggunakan sintak query?

2. Tentukan field/atribut dan tipe data yang digunakan utk masing-masing tabel ?

Page 18: Database with SQL Server

Page | 18

MODUL III

DATA DEFINITION LANGUAGE (DDL) I

1. Dasar Teori

DDL (Data Definition Language)

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. Perintah DDL sebagai berikut :

Tabel 3.1 Perintah DDL

Perintah Keterangan

Create Membuat database

Create Table Membuat tabel

Create Index Membuat index

Create View Membuat View

Alter Table Mengubah atau menyisipkan kolom ke dalam

Drop Database Menghapus database

Drop Table Menghapus tabel dari database

Drop Index Menghapus index

Drop View Menghapus view

Grand Memberikan ijin akses kepada user

Indeks

Indeks dalam database dapat diumpamakan seperti indeks dalam sebuah buku yang

tebal, sehingga item tertentu dapat ditemukan dengan cepat. Sebuah indeks dalam basis

data berfungsi untuk mempercepat pencarian data berdasarkan kolom tertentu. Perintah

untuk membuat indeks sebagai berikut :

Create (unique) Index namajndex on namajabel (namajcolom);

Keterangan :

1. unique -> pilihan perincian yang dapat digunakan untuk menguatkan nilai data di

dalam kolom nama index menjadi unik.

2. namajndex -> nama index yang baru.

3. nama_tabel -> nama tabel yang berisi kolom index akan dibuat.

4. nama_kolom -> nama dari kolom tempat index akan dibuat. Yang terdiri dari Asc

untuk pilihan index naik dan Desc untuk pilihan index menurun.

Tujuan : 1. Praktikan mampu memahami DDL 2. Praktikan mampu membuat script untuk pembuatan tabel dan

mengupdate tabel 3. Praktikan mampu membuat dan menghapus indeks

Page 19: Database with SQL Server

Page | 19

2. Kegiatan praktikum

Latihan 1 : Membuat Tabel

Perintah yang digunakan untuk membuat tabel menggunakan perintah berikut :

Keterangan :

• nama_tabel -> nama yang diberikan di tabel baru. Nama tabel maksimal terdiri dari 8

karakter. Tidak boleh memakai spasi, terdiri dari huruf.

• Field -> nama yang diberikan untuk kolom baru, maksimal terdiri dari 10 karakter.

Tidak boleh memakai spasi, terdiri dari huruf, angka dan Iain-lain.

• type_data -> jenis data yang nilainya dimasukkan dalam kolom yang telah ditentukan.

• lebar_data^ nomor spasi karakter untuk mengikuti data yang dimasukkan dalam kolom

yang telah ditentukan.

• Constraint -> batasan yg digunakan utk field seperti NOT Null, Primary Key.

Contoh, buat tabel Departemen, Untuk membuat tabel dalam database kepegawaian

terlebih dahulu gunakan perintah USE namadatabase untuk memilih database yg akan

digunakan.

Kemudian gunakan perintah untuk membuat tabel seperti berikut :

Page 20: Database with SQL Server

Page | 20

Latihan 2 : Mendefinisikan Nilai Default

Nilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu kolom ketika

ada penambahan baris baru, sementara nilai pada kolom tersebut tidak diisi oleh

pengguna, perintah sebagai berikut :

Latihan 3 : Membuat dan Menghapus Indeks

Buat index data Departemen berdasarkan Nomor dengan nama indeks dept, maka

perintah yang digunakan sebagai berikut :

Untuk menghapus indeks yang telah dibuat gunakan perintah berikut :

Drop Index nama_index on nama_tabel;

3. Tugas

1. Dalam membuat tabel kita dapat menggunakan tipe Enum dan Set, apa

perbedaannya? Jelaskan dan beri contoh dalam pembuatan tabel!

2. Buat indeks untuk tabel pegawai

3. Buat indeks untuk tabel Departemen dengan menggunakan beberapa kolom yaitu

Nomor dan Nama!

Page 21: Database with SQL Server

Page | 21

MODUL IV

DATA DEFINITION LANGUAGE (DDL) II

1. 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 proyek database.

Mari kita melihat struktur dan penggunaan perintah DDL empat dasar:

a. CREATE

Instalasi sistem manajemen database (DBMS) pada komputer memungkinkan Anda

untuk membuat dan mengelola banyak database independen

b. USE

Perintah USE memungkinkan Anda untuk menentukan database yang ingin bekerja

dengan Anda dalam DBMS.

c. ALTER

Setelah Anda telah membuat tabel dalam database, Anda mungkin ingin

memodifikasi definisi itu.Perintah ALTER yang memungkinkan Anda untuk membuat

perubahan pada struktur tabel tanpa menghapus dan menciptakan tabel baru

dengan nama yang berbeda.

d. DROP

Perintah terakhir dari Data Definition Language, DROP yang 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.

E. CONSTRAINT

Constraint adalah batasan atau aturan yang ada pada table. SQL Server

menyediakan beberapa tipe constraint berikut :

1. 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.

Tujuan :

1. Praktikan mampu memahami DDL

2. Praktikan mampu membuat script untuk pembuatan tabel dan

mengupdate tabel

3. Praktikan mampu membuat dan menghapus indeks

Page 22: Database with SQL Server

Page | 22

2. UNIQUE

Mendefinisikan suatu kolom menjadi bersifat unik, artinya antara satu data

dengan data lainnya namanya tidak boleh sama, misal alamat email.

3. PRIMARY KEY

Constraint PRIMARY KEY membentuk key yang unik untuk suatu table.

4. 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.

2. Kegiatan praktikum

Latihan 1 : Mendefinisikan Primary Key Pada Tabel

Terdapat tiga cara untuk mendefinisikan primary key. Berikut ini adalah perintah

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 PRIMARY KEY

(namakolom);

Tabel pegawai diatas belum mempunyai primary key, maka utk menambahkan

primary key gunakan perintah berikut :

Latihan 2 : Menghapus Primary Key Pada Tabel

Perintah untuk menghapus primary key pada tabel sebagai berikut :

Cara 1 : Jika primary key dibuat dengan menggunakan alter table

ALTER TABLE namatabel DROP CONSTRAINT namaconstraint;

Page 23: Database with SQL Server

Page | 23

Cara 2 : Jika primary key dibuat melalui create table :

ALTER TABLE namatabel DROP PRIMARY KEY;

Latihan 3 : Menambah Kolom Baru Pada Tabel

Perintah untuk menambah kolom baru pada tabel seperti berikut :

ALTER TABLE namatabel ADD fieldbaru tipe;

Lakukan perintah berikut untuk menambahkan field/atribut NoTelp pada tabel

pegawai :

Latihan 4 : Mengubah Tipe Data atau Lebar Kolom Pada Tabel

Perintah yang digunakan :

ALTER TABLE namatabel MODIFY COLUMN field tipe

Lakukan perintah berikut untuk mengubah tipe data dan lebar kolom NoTelp pada

tabel pegawai dari varchar(15) menjadi char(12)

Latihan 5 : Mengubah Nama Kolom

Perintah yang digunakan :

ALTER TABLE namatabel CHANGE COLUMN NamaKolomLama

NamaKolomBaru tipedata;

Page 24: Database with SQL Server

Page | 24

Berikut ini perintah untuk mengubah nama kolom NoTelp menjadi Telp :

Latihan 6 : Menghapus Kolom Pada Tabel

Perintah untuk menghapus kolom pada tabel:

ALTER TABLE namatabel DROP COLUMN namakolom;

Lakukan perintah berikut untuk menghapus field/kolom NoTelp pada tabel pegawai :

Latihan 7 : Mendefinisikan Foreign Key Pada Tabel

Untuk mendefinisikan foreign key, maka harus dipastikan bahwa tabel dan atribut

yang dirujuk (tabel induk dari foreign key) sudah didefinisikan terlebih dahulu.

Perintah yang digunakan:

CREATE TABLE namatabel

(

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;

Lakukan perintah berikut utk menghubungkan tabel Departemen dengan tabel

pegawai

Page 25: Database with SQL Server

Page | 25

Latihan 8 : Menghapus Foreign Key

Perintah yang digunakan :

ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint;

Lakukan perintah berikut untuk menghapus foreign key :

Latihan 9 : Menghapus Tabel

Perintah untuk menghapus tabel dengan menggunakan perintah berikut :

DROP TABLE namatabel;

Tabel yang akan dihapus sesuai dengan namatabel. Misalnya menghapus tabel

Departemen dari database kepegawaian;

DROP TABLE Departemen;

3. Tugas :

1. Gunakan tabel Departemen untuk melakukan perintah berikut (gunakan ALTER

Table)

a) tambahkan field/atribut TglMulai dan Lokasi departemen.

b) Ubah tipe data pada field Nama menjadi Varchar(30)

c) Ubah nama field Nomor menjadi id_dept dengan tipe data varchar (5)

d) Ubah nama tabel Departemen menjadi Dept

e) Ubah kembali namatabel Dept menjadi Departemen

f) Hapus field TglMulai pada tabel Departemen

2. Tambahkan Primary Key dan Foreign Key untuk tabel-tabel lain sesuai dengan ER-

Diagram yang dibuat pada Modul 1.

Page 26: Database with SQL Server

Page | 26

MODUL V

DML I (DATA MANIPULATION LANGUAGE)

1. 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 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 yang

diinginkan serta bagaimana cara mendapatkannya.

• 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 pengambilan informasi disebut bahasa query. Istilah bahasa

query sering disamakan dengan istilah bahasa manipulasi data. Sedangkan SQL adalah

sebuah sintaks untuk mengeksekusi query

2. Kegiatan Praktikum

Latihan 1 : Memasukkan Data ke dalam Tabel

Pernyataan INSERT INTO digunakan untuk memasukkan data pada tabel.

Perintah yang digunakan :

INSERT INTO nama_tabel VALUES (nilai1, nilai2, ...);

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 :

Tujuan :

1. Praktikan dapat memahami perintah DML

2. Praktikan dapat memahami dan memanipulasi data dalam

database

Page 27: Database with SQL Server

Page | 27

INSERT INTO nama_tabel (kolom1, kolom2, ...) VALUES (nilai1,

nilai2, ...);

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.

Tambahkan data ke dalam tabel Pegawai seperti perintah berikut :

Latihan 2 : Pengubahan Data

Pernyataan UPDATE digunakan untuk modifikasi data dalam tabel

menggunakan perintah berikut :

UPDATE nama_tabel

SET nama_kolom = nilai_baru

WHERE nama_kolom = nilai;

SET digunakan untuk menentukan kolom yang akan diubah dan nilai penggantinya.

WHERE digunakan untuk menentukan kondisi dari baris-baris yang akan diganti.

Lakukan perintah berikut untuk mengubah data pegawai bernama ‘Edi’ menjadi ‘Eddie’ :

Page 28: Database with SQL Server

Page | 28

Latihan 3 : Menghapus data

Pernyataan DELETE digunakan untuk menghapus baris pada tabel, perintah

yang digunakan seperti berikut:

DELETE FROM nama_tabel

WHERE nama_kolom = nilai;

Lakukan perintah berikut untuk menghapus data dari tabel pegawai dengan

NoKTP = ‘1102’:

Latihan 4 : Pernyataan SELECT

Secara 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 stored procedures dan triggers. Struktur perintah Select seperti

berikut :

SELECT [DISTINCT] select_list

FROM table_source

[WHERE search_condition] ;

4.1 Memilih beberapa kolom dalam tabel

Untuk memilih beberapa kolom gunakan perintah sebagai berikut :

SELECT nama_kolom1, nama_kolom2, ... FROM nama_tabel;

Page 29: Database with SQL Server

Page | 29

Lakukan perintah berikut untuk memilih Kolom NoKTP, NmDepan dan NmBlk dari

tabel pegawai :

Untuk memilih semua kolom dari tabel, dapat menuliskan tanda asterisk (

sesudah kata Select. Simbol * berarti semua kolom, seperti berikut :

SELECT * FROM nama_tabel;

Untuk menampilkan semua kolom pada tabel pegawai menggunakan perintah berikut

:

4.2 Pernyataan Distinct

Untuk memilih hanya nilai yang berbeda atau nilai data yang unik. Perintah SELECT

DISTINCT berikut :

SELECT DISTINCT nama_kolom FROM nama_tabel;

Lakukan perintah dibawah berikut untuk membedakan penggunaan Distinct :

Page 30: Database with SQL Server

Page | 30

4.3. Klausa WHERE

Klausa WHERE digunakan untuk menentukan kriteria seleksi. Untuk memilih data

suatu tabel dengan kriteria tertentu, klausa WHERE dapat ditambahkan pada

pernyataan SELECT. Perintah yang digunakan seperti berikut:

SELECT nama_kolom

FROM nama_tabel

WHERE kolom operator nilai;

Dengan klausa WHERE, operator berikut seperti tabel 5.1 berikut :

Operato Keterangan = Sama dengan

<> Tidak sama dengan > Lebih besar dari < Lebih kecil dari

>= Lebih besar atau sama dengan <= Lebih kecil atau sama dengan

BETWEEN Antara dua nilai LIKE Mencari suatu pola

Page 31: Database with SQL Server

Page | 31

Lakukan perintah berikut dengan menggunakan klausa Where untuk menampilkan

data pegawai dengan NoKtp =1102:

44. Kondisi LIKE

Kondisi LIKE digunakan untuk menentukan pencarian berdasarkan pola tertentu pada

suatu kolom, perintah yang digunakan seperti berikut :

SELECT nama_kolom

FROM nama_tabel

WHERE nama_kolom LIKE pola;

Tanda ” % ” dapat digunakan untuk menentukan Wildcard (sembarang huruf), baik

sebelum maupun sesudah pola. Perlu diingat operasi ini, hanya untuk pembandingan

nilai bertipe string Lakukan perintah berikut untuk menampilkan nama depan

pegawai yang dimulai dengan huruf B :

Page 32: Database with SQL Server

Page | 32

3. Tugas :

Kerjakan dengan menggunakan perintah DML untuk :

1. mengubah data yang terdiri dari 2 atau lebih field dalam satu tabel, Misal;

mengubah NmDepan = ‘Eni’ , NmBlk=’Wahyuni’, alamat=’Pekanbaru’ menjadi

NmDepan =’Endarti’, NmBlk=’Wardani’, Alamat =’Pelalawan’.

2. Menampilkan data pegawai yang mempunyai alamat Pelalawan.

3. Menampilkan data pegawai yang memiliki gaji lebih besar dari 2000000.

4. Menampilkan data pegawai yang mempunyai alamat ‘Pekanbaru’ dan

mempunyai gaji lebih kecil dari 2000000.

5. Menampilkan NmDepan, NmBelakang, Alamat pegawai yang mempunyai alamat

Pekanbaru atau Pelalawan.

Page 33: Database with SQL Server

Page | 33

MODUL VI

DML II (DATA MANIPULATION LANGUAGE)

1. 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 di stored procedures

dan triggers. Selain perintah-perintah SELECT yang dibahas dalam modul V masih ada

banyak perintah-perintah SELECT lain, antara lain perintah ALIAS, menampilkan data

lebih dari 2 tabel, ORDER BY, GROUP BY, HAVING, fungsi agregate, dan beberapa

perintah yang lain.

SELECT [DISTINCT] select Jist

FROM table_source

[WHERE search_condition]

[GROUP BY group_by_expression]

[HAVING search_condition]

[ORDER BY order_expression [ASC I DESC]

Keterangan :

■ SELECT, INTO, FROM, WHERE, GROUP BY, HAVING DAN ORDER BY

-> kata kunci (keyword) yang hams disertakan jika kita membutuhkannya di dalam

pengolahan data.

■ selectjist, table_source, search_condition, group_by_expression,

order_expression -> isian yang bisa kita ubah berdasarkan kebutuhan kita

■ Kurung kotak [ ] -> bagian tersebut boleh disertakan atau tidak, tergantung dari

kebutuhan

Tujuan :

1. Praktikan dapat memahami perintah DML

2. Praktikan dapat memahami dan memanipulasi data dengan

menggunakan perintah Select

Page 34: Database with SQL Server

Page | 34

2. Kegiatan praktikum

Latihan 1 : Pemberian nama lain (ALIAS)

Perintah Select dapat dilakukan dengan memberikan nama lain atau alias yaitu dapat

digunakan untuk memberikan alias pada nama_kolom dan nama_tabel.

1.1 Pemberian alias pada kolom Perintah untuk me

SELECT nama_kolom AS nama_alias

FROM namatabel; Atau SELECT nama_kolom nama_alias FROM nama_tabel;

Lakukan perintah berikut untuk memberikan nama alias pada kolom Gaji menjadi Gaji

Bersih :

1.2 Pemberian alias pada tabel Pemberian nama alias menggunakan perintah berikut

SELECT nama_alias.nama_kolom FROM namatabel AS nama_alias;

Atau SELECT nama_alias.nama_kolom FROM nama_tabel nama_alias

Lakukan perintah berikut untuk memberikan alias Peg pada tabel pegawai :

Page 35: Database with SQL Server

Page | 35

Latihan 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. Perintah untuk menampilkan data lebih dari dua tabel seperti

berikut :

SELECT * FROM namatabel1, namatabel2, namatabel-n;

Lakukan perintah berikut untuk menampilkan NmDepan, NmBlk, Alamat dari tabel

pegawai dan Nama Departemen dari tabel departemen :

Latihan 3 : Kondisi Where untuk relasi

Jika kita mengambil informasi dari lebih dari sebuah tabel, maka kita perlu

menambahkan kondisi untuk relasi antara kedua tabel tersebut. Untuk relasi kita harus

memperhatikan kolom dari 2 atau lebih tabel yang mempunyai data yang sama. Jika ada

nama field yang sama dari tabel yang disertakan, maka sebelum nama field, berikan

nama tabel diikuti sebuah titik (.)

Pada latihan 2, data yang ditampilkan seluruh pasangan baris data departemen di tiap

baris pegawai, yang tentu saja bukan informasi yang benar. Maka supaya informasi

akurat maka ditambah relasi dengan menggunakan kolom yang sama yaitu

Departemen.NoKTP dan Pegawai.NoKTP.

Page 36: Database with SQL Server

Page | 36

Latihan 4 : Klausa Order By

Klausa ORDER BY digunakan untuk mengurutkan data. Jika kita ingin menampilkan

NmDepan,NmBlk,Alamat dan departemen berdasarkan urutan NmDepan secara

ascending, maka perintah :

Page 37: Database with SQL Server

Page | 37

Latihan 5 : Operator IN

Ekspresi ini digunakan untuk membandingkan dengan sebuah kumpulan nilai

Kumpulan nilai bisa berupa:

♦ nilai-nilai yang diisikan

♦ query tunggal yaitu query yg hasilnya hanya terdapat sebuah kolom saja Perintah

operator IN seperti berikut :

SELECT nama_kolom FROM namajabel WHERE namajiolom NOT IN/IN (nilail, nilai2, ...);

Lakukan perintah berikut untuk menampilkan NmDepan, NmBlk, Alamat dari pegawai

yang mempunyai alamat Pekanbaru dan Pelalawan :

Page 38: Database with SQL Server

Page | 38

Latihan 6 : Operator BETWEEN C AND

Operator BETWEEN V AND memilih data antara dua nilai. Nilai dapat berupa angka,

teks, atau tanggal, perintah yang digunakan sebagai berikut :

SELECT nama_kolom FROM nama_tabel WHERE nama_kolom BETWEEN/NOT BETWEEN nilai1 AND nilai2;

Lakukan perintah berikut untuk menampilkan data tanggungan yang mempunyai tahun

kelahiran dari tahun 2010 sampai 2015 :

Latihan 7 : Fungsi Aggregate (COUNT, SUM, AVG, MIN dan MAX)

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 seperti tabel 6.1 berikut :

Page 39: Database with SQL Server

Page | 39

7.1 COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel.

Perintah berikut digunakan untuk menghitung jumlah data pada tabel pegawai dengan

menggunakan kolom NoKTP :

7.2 SUM

Perintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel.

Perintah berikut digunakan untuk menghitung jumlah nilai kolom gaji pada tabel pegawai :

7.3 AVG

Perintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada

tabel. Perintah berikut digunakan untuk menghitung rata-rata dari kolom Gaji pada tabel

pegawai :

Page 40: Database with SQL Server

Page | 40

7.4 MIN

Perintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada

tabel. Perintah berikut digunakan untuk menampilkan nilai terkecil dari kolom gaji pada

tabel pegawai :

7.5 MAX

Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada

tabel. Perintah berikut digunakan untuk menampilkan nilai terbesar dari kolom Gaji pada

tabel pegawai :

Page 41: Database with SQL Server

Page | 41

Latihan 8 : Klausa GROUP BY

Hasil dari Select juga dapat dikelompokkan dengan menambahkan klausa GROUP BY.

Perintah yang digunakan sebagai berikut :

SELECT nama_kolom, COUNT (nama_kolom) FROM nama_tabel GROUP BY nama_kolom;

Perintah berikut digunakan untuk menampilkan jumlah pegawai berdasarkan

alamat kotanya :

Latihan 9 : HAVING

Klausa HAVING disediakan untuk mendukung klausa GROUP BY. Kegunaannya

adalah untuk menentukan kondisi bagi GROUP BY. Kelompok yang memenuhi kondisi

HAVING saja yang akan dihasilkan. Perintah yang digunakan sebagai berikut :

SELECT nama_kolom, COUNT (nama_kolom)

FROM nama_tabel

GROUP BY nama_kolom

HAVING COUNT (nama_kolom) kondisi nilai;

Lakukan perintah berikut untuk menampilkan NoKTP, NmDepan, NmBlk, Alamat dan

jumlah tanggungan yang dimiliki pegawai lebih dari 1 tanggungan:

Page 42: Database with SQL Server

Page | 42

3. Tugas :

1. Perhatikan latihan 4 tentang penggunaan klausa Order By, jika data NmDepan,

NmBlk,Alamat dan nama departemen diurutkan berdasarkan NmDepan secara

Descending dan Alamat berdasarkan ascending.

2. Tampilkan NmDepan, NmBlk dan Alamat pegawai yang alamatnya bukan Pekanbaru

dan Pelalawan.

3. Tampilkan NmDepan, NmBelakang dari pegawai yang menjadi pimpinan untuk

masing-masing departemen.

4. Tampilkan Nomor, nama departemen dan jumlah pegawai untuk masing-masing

departemen.

5. Tampilkan data pegawai yang mempunyai tidak mempunyai tanggungan.

6. Tampilkan data tanggungan yang tahun lahir diluar 2010 sampai 2015.

7. Tampilkan jumlah pegawai yang mempunyai alamat Pelalawan

8. Tampilkan NoKTP,NmDepan,NmBlk, Alamat dan Jumlah tanggungan untuk masing-

masing pegawai.

Page 43: Database with SQL Server

Page | 43

MODUL VII

DML III (DATA MANIPULATION LANGUAGE)

1. 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 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.

2. Kegiatan praktikum

1. Membuat Database pergudangan, yang terdiri dari 6 tabel yaitu pelanggan, pesan,

barang, karyawan, stok dan transaksi.

2. Buat table barang dan karyawan

Tujuan :

Praktikan dapat memahami dan memanipulasi data dalam

database dengan lebih luas lagi.

Page 44: Database with SQL Server

Page | 44

3. Buat Tabel Pelanggan

4. Buat Tabel STOK

5. Buat table pesan dan transaksi seperti di bawah ini

Page 45: Database with SQL Server

Page | 45

6. Dari semua table di atas, inputkan data masing-masing 5 data, contoh :

7. 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 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. Kita bisa menggunakan kata kunci JOIN

untuk memilih data. Ada tiga macam kunci JOIN, yaitu INNER JOIN, LEFT

Page 46: Database with SQL Server

Page | 46

JOIN, dan RIGHT JOIN.

8. 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

9. 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, V

FROM tabel1 LEFT JOIN tabel2

ON tabel1.kunci_utama = tabel2.kunci_asing

10. Right join

Sintaks untuk RIGHT JOIN :

SELECT field1, field2, V

FROM tabel1 RIGHT JOIN tabel2

ON tabel1.kunci_utama = tabel2.kunci_asing

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.

Page 47: Database with SQL Server

Page | 47

11. Natural join

Natural join digunakan untuk menampilkan data dari dua tabel yang berisi data.

12. 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.

13. Operator ALL

Operator 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 hasil subquery.

Page 48: Database with SQL Server

Page | 48

14. 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.

15. 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 tidak terdapat operator INTERSECT namun sebagai gantinya dapat

menggunakan operator IN yang bisa diperdalam di bagian Nested Queries.

16. 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 dapat

menggunakan operator NOT IN yang bisa diperdalam di bagian Nested Queries

Page 49: Database with SQL Server

Page | 49

3. 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 dua tabel dan tiga

tabel dengan menggunakan perintah JOIN.

2. Buatlah perintah SQL yang menggunakan UNION, INTERSECT, dan EXCEPT.

3. Buatlah perintah SQL yang menggunakan operator comparison ANY dan ALL.

Page 50: Database with SQL Server

Page | 50

MODUL VIII

VIEW 1

1. Teori

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 tertentu

2. Penyederhanaan manipulasi data

3. Menyesuaikan data dengan kebutuhan user

4. Export dan impor data

5. Mengkombinasikan data terpartisi

Syntax

CREATE VIEW view_name AS select_statement

2. Kegiatan praktikum

Sebelum query SELECT yang akan disimpan ke dalam view. Penamaan view

memiliki aturan yang sama dengan penamaan table. Nama view harus unik artinya

nama view tidak diperkenankan sama dengan nama view yang sudah ada

sebelumnya.

Pesan di atas akan tampil jika terjadi pembuatan view dengan menggunakan

nama yang sama dengan nama view yang lain. Nama kolom dari base table bisa diubah

menjadi nama lain saat disimpan ke dalam view dengan menggunakan COLUMN

ALIAS

Tujuan :

Membuat View untuk menampilkan data dari satu atau

beberapa table dengan membungkus suatu query SELECT

yang kompleks menjadi lebih sederhana.

Page 51: Database with SQL Server

Page | 51

3. Tugas

Buat tabel-tabel berikut ini :

1. Tabel Artikel dengan struktur

Field Type Null Key Default Extra

JudulArtikel Varchar (100) No

Author Varchar (50) YES NULL

Bidang Varchar (50) No

Isi text No

View Tinyint (4) Yes NULL

Tanggal Date No 0000-00-00

Link Varchar (200) No

id Bigint (20) No PRI NULL auto_increment

2. Tabel guestbook dengan struktur Field Type Null Key Default Extra

tanggal Date No 0000-00-00

Nama Varchar (100) No

Email Varchar (100) No

Umur int Yes NULL

Alamat Varchar (100) Yes NULL

Pesan text Yes NULL

id Bigint (20) No PRI NULL auto_increment

3. Tabel Materi dengan struktur Field Type Null Key Default Extra

From Varchar (100) No

Judul Varchar (200) No

Bidang Varchar (50) No

Isi Text No

Link Varchar (200) No

id Bigint (20) No PRI NULL auto_increment

Page 52: Database with SQL Server

Page | 52

4. Insert data pada masing-masing tabel

5. 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

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, id yang

mempunyai bidang pemograman dan analisa sistem

9. Buatkan view guest1 untuk menampilkan semua data yang namanya diawali

dengan ”ahmad”, kemudian ganti namaauthor menjadi pengarang.

10. Buatkan view guest2 untuk menampilkan semua data yang namanya kemudian

ganti namaauthor menjadi pengarang.

11. Buatkan view materi untuk menampilkan semua data yang namanya kemudian

ganti namaauthor menjadi pengarang.

Page 53: Database with SQL Server

Page | 53

3. Tugas

1. Dari praktikum diatas, berikan kesimpulannya.

2. Buat table film dan jenis film dengan tampilan sebagai berikut jika hasilnya diselect :

4. Isi tabel jenisfilm :

5. Isi tabel film :

6. Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film :

a. Buat perintah view untuk :

b. Mengurutkan data film berdasarkan kolom judul, gunakan order by dan simpan

dengan v_film1

c. Menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya

tidak tercantum pada tabel film, gunakan NOT IN / not exist dan simpan dengan

nama v_film2

d. Menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya

tercantum pada tabel film menggunakan IN / exist dan simpan dengan nama

v_film3

e. Manampilkan kolom jenis dan digabungkan dengan SUM(jml_film) yang

dikelompokkan berdasarkan kolom jenis pada tabel film dan simpan dengan nama

v_film4

f. Menampilkan kolom judul dari tabel film dan kolom harga dari tabel

jenisfilm(gunakan Operasi Join) dan simpan dengan nama v_film5

Page 54: Database with SQL Server

Page | 54

MODUL IX

VIEW II

1. Teori

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.

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)

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

Tujuan :

Membuat View untuk menampilkan data dari satu atau

beberapa table dengan membungkus suatu query SELECT

yang kompleks menjadi lebih

sederhana.

Page 55: Database with SQL Server

Page | 55

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 = ‘smith’and Fname= ‘john’ and

Pname = ‘productX’

Secara umum kita tidak dapat menjamin 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 attribute tampilan

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 yang

berhubungan umumnya tidak dapat diupdate

� Tampilan yang menggunakan group dan fungsi aggregate tidak dapat diupdate

2. Kegiatan Praktikum

Buat table golongan, jabatan dan pegawai dengan data sebagai berikut :

Tabel Golongan :

golongan tunjGol

A 500000

B 400000

C 300000

D 200000

E 100000

Tabel Jabatan :

jabatan tunjJabatan tunjKeluarga

Manager 500000 150000

Supervisor 300000 50000

Sr staff 150000 25000

Jr staff 100000 25000

Clerk 50000 25000

Page 56: Database with SQL Server

Page | 56

Tabel Pegawai :

nip nama alamat kota gol jabatan statusmnkh jmlanak stsaktif gapok

02001 Bambang P B Superv B 0 A

01003 Agung W C Clerk S 1 A

03044 Yuswinto B Sr. Staf S 2 A

03033 Edwin M B Manaje D 1 A

00066 Nanda Vega B Clerk J 1 A

2. Buat view dengan nama latihanview1 untuk menampilkan seluruh data pegawai 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, nama dan

golongan pegawai serta tunjangan golongan yang didapat (gunakan select multiple

table)

5. Buat view dengan nama latihanview4 untuk menampilkan seluruh data pegawai

beserta gaji total yang diperolehnya. Gaji total merupakan hasil perhitungan dari gaji

pokok di tambahkan dengan tunjangan golongan serta tunjangan keluarga

6. Hapuslah latihanview1

7. 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 mengenai update

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 data pegawai yang

mana nama pegawai bambang purnomo ganti dengan joko purnomo dan golongan

ganti dengan manager

4. Buat view dengan nama latihanview7 untuk menampilkan seluruh data pegawai yang

berada dikota Surabaya atau yang mempunyai golongan B (gunakan operasi union)

5. Hapuslah latihanview 4

6. Update view jabatan yang mana tunjangan jabatan manajer dari 500000 menjadi

1000000

7. Buat view dengan nama latihanview8 untuk menampilkan seluruh data pegawai yang

jabatannya sebagai supervisor

Page 57: Database with SQL Server

Page | 57

MODUL X

STORED PROCEDURE

1. Teori

Stored procedure merupakan sekumpulan SQL yang disimpan ke dalam server SQL

Server. Keuntungan menggunakan store procedure, klien SQL Server tidak perlu

menuliskan perintah SQL ke server namun hanya perlu memanggil procedure yang

sudah disimpan di server (jika tersedia). Perbedaan antara procedure dan function pada

SQL Server hampir mirip dengan procedure dan function pada bahasa pemrograman.

Function mengembalikan suatu nilai skalar dan dapat dipanggil di dalam statement

procedure atau function lain. Procedure dipanggil melalui perintah CALL dan dapat

mengembalikan nilai melalui variabel output.

Stored Procedure adalah prosedur (spt subprogram dalam bhs pemrograman) yang

disimpan di dalam database.

SQL Server mendukung dua jenis “rutin” (subprogram):

• Stored procedure yang dapat dipanggil,

• fungsi yang menghasilkan nilai yang dapat dipakai dalam statemen SQL lain.

Manfaat Store pocedure ini adalah:

1. Memperkecil trafik request dari aplikasi ke database karena semua proses bisnis

dilakukan di database mysql dan aplikasi akan menerima hasil proses saja.

2. Ketika sebuah aplikasi yang didevelop terdiri dari berbagai bahasa

pemrograman (misalkan desktop dan web) yang mana kedua tipe aplikasi

tersebut membutuhkan hasil dan operasi database yang sama.

3. untuk meningkatkan securiti, misalkan sebuah aplikasi yang login dengan user

abcd tidak dapat mengakses tabel2 tertentu secara langsung tetapi mesti

melalui store procedure, dengan cara ini akan meningkatkan ke-valid-tan data

Contoh 1.

Dalam contoh dibawah ini kasus tentang sistem informasi kepegawaian, yang mana store

procedure yang dibuat akan menangani tentang menghasilkan data pegawai yang difilter

bedasarkan departemen. store procedure untuk menampilkan data pegawai dalam

bentuk resultset

Tujuan :

• Mampu memahami dan membuat procedure atau function

dalam basis data

• Mampu menggunakan perintah-perintah dalam stored

procedure

Page 58: Database with SQL Server

Page | 58

DELIMITER $$ CREATE PROCEDURE sp_tampil_pegawai_departemen(p_ departemen int) BEGIN SELECT * FROM pegawai where no_departemen = p_ departemen; END$$ DELIMITER ;

Penjelasannya sebagai berikut:

• DELIMITER = adalah untuk memberi tahu kepada myql soal delimiter yang

digunakan, secara default menggunakan ; jadi bila ada tanda ; mysql akan

mengartikan akhir dari statement, pada contoh di atas delimeter yang digunakan $$

jadi akhir statementnya adalah $$.

• CREATE PROCEDURE = adalah header untuk membuat store procedure.

• BEGIN END = adalah body dari store procedure, jadi semua SQL nya di tulis disini.

contoh pemanggilannya seperti dibawah ini:

call sp_tampil_pegawai_departemen(2);

Contoh 2.

Statemen yang menciptakan stored procedure

CREATE procedure procedure1 /* nama */

(IN parameter1 INTEGER) /* parameter */ BEGIN /* awal blok */ DECLARE variable1 CHAR(10); /* variabel */ IF parameter1 = 17 THEN /* awal IF */ SET variable1 = 'burung'; /* assignment */ ELSE SET variable1 = 'kelelawar'; /* assignment */ END IF; /* akhir IF */ INSERT INTO table1 VALUES (variable1); /* statement */ END /*akhir blok */

Dengan stored procedure eksekusi menjadi cepat. Tidak ada kompilasi. Peningkatan

kecepatan datang dari reduksi lalu-lintas jaringan. Jika ada pekerjaan pengecekan

berulang, looping, multiple statement, dikerjakan dengan pemanggilan tunggal ke

prosedur yang telah disimpan ke server. Stored procedure adalah komponen. Andaikan

aplikasi kemudian ditulis dalam bahasa berbeda, tidak ada masalah, karena logika

berada didalam database bukan dalam aplikasi. Stored Procedure adalah portable.

Stored procedure ditulis dalam SQL, Anda bisa jalankan pada setiap platform dimana

Database SQL Server dijalankan disitu.

Page 59: Database with SQL Server

Page | 59

Create Procedure dan Create Function

Sebelum membuat procedure atau function terlebih dahulu pastikan bahwa Anda sudah

masuk ke dalam suatu database (use nama_database). Bentuk umum dari perintah

create procedure dan function adalah

Create procedure <nama_procedure> (parameter) <karakteristik procedure> <badan program> Create function <nama_procedure> (parameter) <karakteristik function> <tipe data return> <badan program> Di mana :

Parameter = terdiri dari jenis parameter [IN, OUT, atau INOUT], nama parameter dan

tipe data parameter.

Karakteristik = terdiri dari bahasa SQL, komentar, dsb.

Tipe data = tipe data yang dapat direturn adalah semua tipe data yang valid di SQL

Server.

Program = semua syntax procedure SQL yang valid.

Jenis parameter ada 3 yaitu : IN berarti variabel parameter hanya berfungsi sebagai

masukan, OUT berarti variabel parameter berfungsi sebagai tempat untuk

menyimpan nilai keluaran dari procedure, dan IN OUT berarti variabel parameter

berfungsi sebagai masukan dan penyimpan nilai keluaran procedure.