66
Modul Praktikum Sistem Basis Data Program Studi Sistem Basis Data STMIK STIKOM Indonesia

Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

  • Upload
    lamdien

  • View
    224

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Basis Data

STMIK STIKOM Indonesia

Page 2: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 2

DAFTAR ISI

MODUL I PEMBUATAN DAN PEMELIHARAAN TABEL ............................................ 3

MODUL II MANIPULASI DATA ..................................................................................... 10

MODUL III FUNGSI-FUNGSI SQL, PENGURUTAN (SORTING) DATA ................... 16

MODUL IV PENGAMBILAN DATA DARI MULTIPLE TABLE .................................. 26

MODUL V FUNGSI AGGREGATE .................................................................................. 31

MODUL VI SUBQUERIES DAN SET OPERATION ...................................................... 36

MUDUL VII VIEWS DAN PENGANTAR T-SQL ........................................................... 43

MODUL VIII T-SQL Lanjut ............................................................................................... 55

Page 3: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 3

MODUL I

PEMBUATAN DAN PEMELIHARAAN TABEL

Tujuan :

1. Mahasiswa dapat memahami perintah-perintah dalam Data Definition Language (DDL).

2. Memahami perintah CREATE.

3. Memahami perintah ALTER.

4. Memahami perintah DROP.

5. Memahami penggunaan Constraint.

Tugas Pendahuluan :

1. Apa Yang anda ketahui tentang Data Definition Language (DDL)?

2. Apa saja perintah-perintah yang tergolong dalam DDL?

DASAR TEORI

DDL atau Data Definition Language adalah bagian dari SQL yang digunakan untuk

mendifinisikan data dan objek database. Apabila perintah ini digunakan, entri akan dibuat ke dalam

kamus data dari SQL (Octaviani, 2010). Didalam kategori ini terdapat perintah-perintah sebagai

berikut :

Tabel 1.1 DDL (Data Definition Language)

Perintah Keterangan

CREATE DATABASE Membuat Database

CREATE TABLE Membuat tabel

ALTER TABLE Mengubah atau menyisipkan kolom ke dalam tabel

DROP TABLE Menghapus tabel dari database

Perintah CREATE

Instalasi sistem manajemen (DBMS) pada komputer memungkinkan anda untuk membuat

dan mengelola banyak database independent. Untuk membuat database berikut querinya.

Nama database tidak boleh mengandung spasi dan tidak boleh memiliki nama yang sama

antar database.

CREATE DATABASE namadatabase

Page 4: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 4

Sebelum membuat tabel dalam database pastikan terlebih dahulu database tempat anda

membuat tabel sudah aktif, untuk mengaktifkan database yang anda buat dapat menggunakan

statement USE nm_Databse (Octaviani, 2010). Untuk membuat tabel berikut querinya.

Nm_tabel adalah nama dari tabel yang akan anda buat, usahakan namanya sesuai dengan

entity yang diwakilinya dan jangan lebih dari 128 karakter. Banyaknya tabel yang dapat ditampung

oleh database dibatasi oleh banyaknya objek dalam databse. Sebuah database setidaknya dapat

menampung 2 Miliar objek termasuk tabel, view (jenis lain tabel), stored procedure, trigger, dan

constraint. Nm_field1, nm_field2 adalah nama field yang harus ada dalam dalam sebuah tabel

yang mewakili element entity tersebut. Tiap field akan menampung data dengan tipe data tertentu

yang ditunjukkan oleh tipedata1, tipedata2 dan seterusnya. Opsi berikutnya adalah constraint

(syarat) masing-masing tabel apakah boleh kosong (NULL) atau harus diisi (NOT NULL). Nilai

default dari constraint ini adalah NULL yang artinya field tersebut boleh kosong atau tidak diisi

(Alam, 2005).

Constrains

Constaraint merupakan batasan atau aturan yang ada pada tabel. SQL menyediakan

beberapa tipe constaint berikut (Octaviani, 2010) :

1. NOT NULL merupakan suatu kolom yang mendifinisikan dengan constraint NOT

NULL. Kolom yang berfungsi sebagai kunci primer (Primary Key) otomatis

tidak boleh NULL.

2. UNIQUE mendifinisikan suatu kolom bersifat unik, artinya antara satu data

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

3. PRIMARY KEY Constaint PRIMARY KEY membentuk key yang unik untuk

suatu tabel.

4. FOREIGN KEY Constraint didefinisikan pada suatu kolom yang ada pada suatu

tabel, dimana kolom tersebut juga dimiliki oleh tabel yang lain sebagai suatu

PRIMARY KEY bisa digunakan untuk menghubungkan antara dua tabel.

5. CHECK constraint yang satu ini mendefinisikan sebuah kondisi untuk data agar

dapat masuk dalam field artinya tiap pemasukan data atau editing terhadap data

record, field yang kita masukkan akan selalu diperiksa apakah isinya ada diantara

data-data yang kita masukkan, jika tidak ada maka SQL akan menampilkan

pesan ERROR.

CREATE TABLE nm_tabel

(nm_field1 tipedata1 [NOT NULL | NULL]

[{nm_field2 tipedata2 [NOT NULL | NULL]}…])

Page 5: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 5

6. DEFAULT digunakan untuk mendefinisikan nilai default dari field yang mana

ketika ada baris baru yang dimasukkan kedalam tabel nilai default dari field akan

digunakan apabila tidak ada nilai yang diberikan padanya.

7. IDENTITY hanya menampung nilai bertipe data integer. Standar property ini

sudah ditentukan oleh sistem.

Perintah ALTER

Setelah membuat tabel dalam database, kita dapat memodifikasi field pada tabel yang kita

buat. Dengan perintah ALTER kita dapat membuat perubahan pada struktur tabel tanpa menghapus

dan menciptakan. Queri ALTER :

Queri ini digunakan untuk menambah field pada tabel

Queri ini digunakan untuk merubah field pada tabel

Queri ini digunakan untuk menghapus field pada tabel

Perintah DROP

Perintah terakhir dari Data Definition Language, DROP memungkinkan kita untuk

menghapus seluruh objek dalam database dari DBMS. Gunakan perintah ini dengan hati-hati, perlu

diingat bahwa perintah DROP akan menghapus data keseluruhan struktur dari database. Querinya

sebagai berikut.

ALTER TABLE namatabel ADD nama_field tipe_data (lebar)

ALTER TABLE namatabel ALTER COLUMN nama_field tipe_data

(lebar)

ALTER TABLE namatabel DROP COLUMN nama_field.

DROP DATABASE namadatabase (Untuk menghapus database)

DROP TABLE namatabel (Untuk menghapus tabel)

Page 6: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 6

KEGIATAN PRAKTIKUM

Untuk lebih memahami tentang DDL (Data Definition Language) maka buatlah database

dengan nama “Toko” yang mempunyai dua tabel yaitu tabel “Barang” dan tabel “Pembelian”,

isilah kedua tabel sesuai dengan ketentuan tabel dibawah ini !

Create database

Create table

Untuk membuat tabel Barang.

Tabel 1.1 Tabel Barang

Nama Field Tipe data

ID_Barang Varchar

Nama_Barang Varchar

Tanggal_terima Datetime

Stok_Barang Int

Hasilnya bisa anda lihat pada gambar dibawah ini !

Gambar 1.1 Hasil dari Create tabel Barang.

CREATE DATABASE Toko

CREATE TABLE Barang

(

ID_Barang varchar(50) not null,

Nama_Barang varchar(255) not null,

Tanggal_terima datetime not null,

Stok_Barang int null default 0,

constraint PK_Barang primary key

(ID_Barang)

)

Page 7: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 7

Untuk membuat tabel Pembelian.

Tabel 1.2 Tabel Pembelian

Nama Field Tipe Data

ID_Pembeli Varchar

ID_Barang Varchar

Tanggal_Beli Datetime

Jumlah_Pembelian Int

Nama_Pembelian Varchar

Hasilnya anda bisa lihat pada gambar dibawah ini!

Gambar 1.2 Hasil dari Create tabel Pembelian.

Karena kita belum menambahkan Foreign key pada saat kita membuat tabel Pembelian,

maka kita dapat menambahkan Foreign key dengan perintah ALTER seperti queri dibawah ini.

CREATE TABLE Pembelian

(

ID_Pembeli varchar(50) not null,

ID_Barang varchar(50) null ,

Tanggal_Beli datetime not null,

Nama_Pembeli varchar (60) not null,

Jumlah_Pembelian int null ,

constraint PK_Pembelian primary key

(ID_Pembeli)

)

ALTER TABLE Pembelian

ADD CONSTRAINT

FK_Pembelian_RELATION_Barang foreign

key (ID_Barang)

REFERENCES Barang (ID_Barang)

Page 8: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 8

Pada queri alter diatas, kita akan menambahkan foreign key pada ID_Barang

menggunakan perintah ALTER TABLE, tetapi kita juga bisa langsung memasukkan foreign key

pada saat CREATE TABLE Pembelian.

Alter

Contoh penggunaan Alter.

Menambahkan field “Alamat_Pembeli” pada tabel Pembelian.

Gambar 1.3 Add Alamat_Pemeli pada tabel Pembelian.

Menghapus kolom nama pembeli pada tabel Pembelian.

Gambar 1.4 Drop kolom Nama_Pembeli pada tabel Pembelian.

Merubah tipe data field (kolom) Nama_Barang dari tipe data Varchar (255) menjadi tipe

data Int pada tabel Barang, pada gambar dibawah ini merupakan gambar saat field Nama_Barang

belum dirubah tipe datanya.

Gambar 1.5 Tampilan sebelum merubah Nama Barang pada tabel Barang.

ALTER TABLE Pembelian

ADD Alamat_Pembeli varchar(70)

ALTER TABLE Pembelian

DROP COLUMN Nama_Pembeli

Page 9: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 9

Untuk merubahnya tulislah queri dibawah ini!

Setelah menuliskan queri diatas, maka anda bisa melihat hasilnya pada gambar dibawah ini!

Gambar 1.6 Tampilan sesudah merubah Nama Barang pada tabel Barang.

Drop

Menghapus tabel Barang.

TUGAS

1. Buatlah database baru dengan perintah SQL dengan nama “Mahasiswa” yang memiliki dua

tabel yaitu tabel “Jurusan” dan tabel “Biodata”!

2. Isikan kedua tabel dengan field masing-masing dibawah ini!

Tabel Jurusan : KodJur, NamaJur, Ketua_jurusan

Tabel Biodata : NoMhs, KodJur, Nama, Nilai, Alamat, JK

3. Tentukan tipe data masing-masing field, Primary key serta Foreign Key nya agar kedua

tabel saling berhubungan!

ALTER TABLE Barang

ALTER COLUMN Nama_Barang INT not null

DROP TABLE Barang

Page 10: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 10

MODUL II

MANIPULASI DATA

Tujuan :

1. Mahasiswa dapat melakukan manipulasi terhadap suatu data yang tersimpan dalam basis

data.

2. Memahami perintah INSERT.

3. Memahami perintah UPDATE.

4. Memahami perintah DELETE.

Tugas Pendahuluan :

1. Apa yang anda ketahui tentang DML?

2. Sebutkan perintah-perintah SQL yang tergolong dalam DML dan jelaskan perbedaan antar

DML dan DDL!

3. Apa yang anda ketahui tentang perintah INSERT, UPDATE, dan DELETE?

4. Sebutkan macam-macam klausa dan operator pada perintah SELECT!

DASAR TEORI

DML (Data Manipulation Language) adalah bahasa yang memungkinkan pengguna

mengakses atau memanipulasi data seperti yang diatur oleh model data, manipulasi data adalah

(Octaviani, 2010):

1. Pengambilan informasi yang disimpan dalam basis data.

2. Penempatan informasi baru dalam basis data.

3. Penghapusan informasi dari basis data.

4. Modifikasi informasi yang disimpan dalam basis data.

DML (Data Manipulation Language) merupakan bahasa yang bertujuan memudahkan

pemakai untuk mengakses data sebagaimana direpresentasikan oleh model data, ada 2 jenis DML,

yaitu (Octaviani, 2010):

1. Prosedural, yang mensyaratkan agar pemakai menentukan data apa yang ditentukan serta

bagaimana cara mendapatkannya.

2. Nonprosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa

menyebutkan bagaimana cara mendapatkannya.

Yang termasuk dalam perintah-perintah dalam DML (Data Manipulation Language) adalah

sebagai berikut:

1. INSERT, menyisipkan atau menambahakan data baru ke dalam tabel.

2. SELECT, mengambil atau menampilkan data dari tabel, statement ini adalah statement

dasar yang digunakan untuk mengambil informasi dari database. Dengan statement ini user

Page 11: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 11

dimungkinkan untuk mengambil data dari satu tabel atau lebih bahkan dari database

lainnya, hasil dari statement ini dikenal sebagai result set yang berbentuk tabel juga.

3. UPDATE, memperbaharui data yang lama ke dalam data yang baru.

4. DELETE, menghapus data dalam tabel.

Untuk lebih memahami perintah-perintah DML (Data Manipulation Language). Berikut ini

adalah penjelasan dalam praktikum untuk masing-masing dari pritah-perintah di atas.

KEGIATAN PRAKTIKUM

Pernyataan INSERT

Setelah tabel dibuat beserta constraint-constraintnya bila ada, maka tabel siap digunakan

untuk menampung data. Perintah wajib pada T-SQL untuk memasukkan data ke dalam tabel adalah

perintah INSERT. Kita akan memasukkan data pada tabel Barang dan tabel Pembelian.

Bentuk perintah INSERT adalah sebagai berikut :

Memasukkan data pada tabel Barang

Dan data seterusnya silahkan masukkan sendiri dengan petunjuk queri diatas berdasarkan

data pada gambar dibawah ini, lihatlah hasilnya dibawah ini!

Gambar 2.1 Hasil Insert Tabel Barang.

INSERT INTO table_name

(column1,column2,column3,...)

VALUES (value1,value2,value3,...);

INSERT INTO Barang

(ID_Barang,Nama_Barang,Tanggal_Terima)

VALUES ('BRG01','Sony Ericsson','2011-04-03');

Page 12: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 12

Kolom yang tidak disebutkan pada pernyataan INSERT secara otomatis akan diisi dengan

NULL. Pada Stok_Barang nilainya akan terisi 0 karena pada saat kita membuat tabel Barang kita

memberikan nilai Stok_Barang itu default, sehingga pada saat memasukkan data kita tidak

memberikan nilai pada Stok_Barang tersebut.

Memasukkan data pada tabel Pembelian.

Dan data seterusnya silahkan masukkan sendiri dengan petunjuk queri diatas berdasarkan

data pada gambar dibawah ini, lihatlah hasilnya dibawah ini!

Gambar 2.2 Hasil Insert Tabel Pembelian.

Seperti telah dijelaskan bahwa perintah INSERT selain dapat menambahkan satu buah

record, juga bisa langsung menambahkan beberapa record sekaligus dalam tabel, untuk

mempraktekkannya buatlah satu tabel lagi pada database “Toko” dengan nama tabel “Pelanggan”

yang memiliki field ID_Pelanggan dan Nama_Pelanggan. Untuk membuat tabel Pelanggan

gunakan queri dibawah ini:

Setelah tabel Pelanggan dibuat, kemudian ketikkan queri dibawah ini untuk mengisi tabel

“Pelanggan” dengan jumlah pembelian=1.

INSERT INTO Pembelian

(ID_Pembeli,ID_Barang,Tanggal_Beli,Nama_Pembeli,

Jumlah_Pembelian)

VALUES ('P01','BRG03','2011-04-07','Jaka Widana',2);

CREATE TABLE Pelanggan (ID_Pelanggan varchar

(10), Nama_Pelanggan varchar(80))

Page 13: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 13

Untuk memeriksa kebenarannya, gunakan queri dibawah ini dan lihat hasilnya !

Gambar 2.3 Hasil dari Insert pada tabel Pelangan.

Pernyataan UPDATE

Pernyataan UPDATE digunakan untuk memodifikasi data dalam tabel database.

Pada queri diatas :

SET : Untuk menentukan kolom yang akan diubah dan nilai penggantinya.

WHERE : Menentukan kondisi dari baris-baris yang akan diganti.

Berikut ini queri untuk mengupdate field nama barang pada tabel Barang dengan nama

“SONY” yang awalnya bernama “Sony ericsson”.

INSERT INTO Pelanggan(ID_Pelanggan, Nama_Pelanggan)

SELECT ID_Pembeli,Nama_Pembeli FROM Pembelian WHERE

Jumlah_Pembelian='1’

SELECT * FROM Pelanggan

UPDATE namatabel

SET namakolom=nilai_baru

WHERE namakolom= nilai

UPDATE Barang SET Nama_Barang='SONY'

WHERE ID_Barang='BRG01'

Page 14: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 14

Gambar 2.4 Hasil Dari UPDATE pada tabel Barang

Pernyataan DELETE

Pernyataan DELETE digunakan untuk menghapus baris pada tabel, bentuk querinya sebgai

berikut.

Pada contoh ini kita akan menghapus field dengan ID_Barang=’BRG01’ pada tabel

Pembelian. Untuk mempraktekkannya tulislah queri dibawah ini!

Gambar 2.5 Hasil dari DELETE pada tabel Pembelian.

Dalam perintah DELETE jika kita ingin menghapus semua data pada tabel tanpa

menghapus tabel, maka klausa WHERE tidak perlu disebutkan, berikut querinya.

DELETE FROM namatabel

WHERE namakolom= values

DELETE FROM Pembelian

WHERE ID_Barang='BRG03'

DELETE FROM namatabel

atau

DELETE * FROM namatabel

Page 15: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 15

TUGAS

1. Isilah tabel jurusan dan tabel Biodata yang anda buat dengan ketentuan sebagai berikut:

Misalkan isi tabel Jurusan:

*KodJur NamaJur Ketua Jurusan

KD01 Sistem Informasi Harnaningrum,S.Si

KD02 Teknik Informatika EnnySela,S.Kom.,M.Kom

KD03 Tekhnik Komputer Berta Bednar,S.Si,M.T.

Isi tabel Biodata:

2. Masukkan data baru pada tabel Biodata dengan KodJur “KD04”!

3. Dengan menggunakan perintah Update, cobalah merubah isi tabel Jurusan dan Biodata

pada databse Mahasiswa yang anda buat dengan ketentuan sebagai berikut :

Update Nama Siswa pada tabel Biodata “Rina Gunawan” menjadi “Rina Gunawan

Astuti”!

Update KodJur pada tabel Jurusan “KD01” menjadi “KM01”!

Update NoMhs pada tabel Biodata “210089” menjadi “210098”!

Update Nilai pada tabel Biodata “90” menjadi “98”!

Update KodJur pada tabel biodata “KD03” menjadi “KD05”!

4. Buatlah kesimpulan mengenai soal no.2 dan no.3!

*NoMhs **KodJur Nama Siswa Alamat Nilai

210089 KD01 Rina Gunawan Denpasar 60

210090 KD03 Gani Suprapto Singaraja 85

210012 KD02 Alexandra Nusa dua 65

210099 KD02 Nadine Gianyar 90

210002 KD01 Rizal Samurai Denpasar 95

Page 16: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 16

MODUL III

FUNGSI-FUNGSI SQL, PENGURUTAN (SORTING) DATA

Tujuan:

1. Mahasiswa dapat memahami pengurutan fungsi-fungsi SQL.

2. Memahami single row functions dalam SQL.

3. Memahami character functions dalam SQL.

4. Memahami suatu fungsi pengurutan data.

5. Memahami klausa ORDER BY.

Tugas Pendahuluan:

1. Apa yang anda ketahui tentang fungsi-fungsi SQL?

2. Sebutkan macam-macam dari fungsi SQL!

3. Apa saja yang tergolong dalam single row function?

DASAR TEORI

Single row functions

Secara garis besar function dibagi menjadi dua bagian yaitu: Single row functions dan

group function, perbedaan kedua fungsi ini yaitu pada Single row functions memproses satu baris

data pada satu proses dan memberikan satu output untuk setiap satu baris data masukan.

Salah satu contoh single-row functions adalah UPPER yang berfungsi mengubah data

input menjadi huruf kapital. Sedangkan group function memproses multi-row data pada saat

bersamaan dan memberikan satu output.

Contoh group function adalah SUM untuk menghitung nilai total. Namun yang akan kita

bahas pada pelajaran ini yaitu Single row function. Berdasarkan tipe data yang diproses, single-row

function dibagi menjadi lima jenis, yaitu (Octaviani, 2010):

1. Character Function digunakan untuk memproses data karakter.

2. Numeric Function digunakan untuk memproses data numerik.

3. Date Function digunakan untuk memproses data tanggal.

4. Convension Function digunakan untuk melakukan konversi data.

5. General Function merupakan function yang bisa digunakan untuk memproses semua.

Character functions

Page 17: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 17

Fungsi karakter menerima input berupa karakter dan mengembalikan nilai yang bisa

berupa karakter maupun angka. Beberapa contoh penggunaan dalam character function.

LOWER : Menjadikan huruf kecil.

Queri :

SELECT LOWER (‘character’)

UPPER : Menjadikan huruf kapital.

Queri :

SELECT UPPER (‘character’)

SUBSTRING : Mengambil karakter mulai dari posisi m sebanyak n, jika n tidak dituliskan, maka

semua karakter mulai posisi m sampai terkhir akan diambil.

Queri :

SELECT SUBSTRING ('character',

nilai_character_awal, Jumlah_karakter) FROM

nm_tabel WHERE nm_filed='character'

LTRIM : Digunakan untuk menghilangkan spasi kosong disebelah kiri string didalam

kurung.

Queri :

SELECT LTRIM (character)

RTRIM : Digunakan untuk menghilangkan spasi kosong disebelah kanan string didalam

kurung.

Queri :

SELECT RTRIM (character)

RIGHT : Fungsi ini akan mengembalikan nilai string yang berasal dari sebelah kanan

string dengan jumlah yang telah ditentukan.

Queri :

SELECT RIGHT ( String, jumlah karakter)

LEFT : Fungsi ini mengembalikan string sepanjang (pjg) karakter dari sebelah kiri

strings.

Queri :

SELECT LEFT ( String, jumlah karakter)

CHAR : Digunakan untuk mengkonversi kode ASCII menjadi karakter.

Queri :

SELECT CHAR (Expresi Integer)

LEN : Fungsi ini mengembalikan nilai integer tentang panjang string x termasuk spasi

kosong.

Queri :

Page 18: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 18

SELECT LEN (character)

REVERSE : Fungsi ini digunakan untuk melakukan pembalikan string yang disertakan.

Queri :

SELECT REVERSE (character)

SPACE : Fungsi ini akan memberikan spasi sejumlah yang telah ditetapkan.

Queri :

SELECT SPACE (Jumlah spasi)

REPLICATE : Fungsi ini digunakan untuk membuat replika dari string denga jumlah tertentu.

Queri :

SELECT REPLICATE (‘character’,jumlah karakter)

Sorting data

Pada SQL sorting digunakan untuk mengurutkan data, terdapat dua macam metode untuk

mengurutkan data, yaitu :

1. ASC digunakan untuk urutan naik yang secara default digunakan.

2. DESC digunakan untuk mengurutkan data secara menurun.

Klausa ORDER BY

Penggunaan klausa Order By harus dibarengi dengan Queri ASC atau DESC karena klausa

ORDER BY ini digunakan untuk mengurutkan data, jika kita ingin menampilkan data dalam tabel

berdasarkan kriteria yang kita tentukan, queri nya sebagai berikut(Octaviani, 2010):

KEGIATAN PRAKTIKUM

Untuk lebih memahami fungsi-fungis SQL, tulislah statement-statement berikut pada

database Toko yang anda buat!

Pernyataan Single row functions

Contoh

1. LOWER

Merubah nama ’MOTOROLA’ menjadi huruf kecil semua.

SELECT * FROM namatabel

ORDER BY namakolom ekspresi (ASC/DESC)

Page 19: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 19

Gamabra 3.1 Contoh Penggunaan Lower.

2. UPPER

Merubah nama ’Samsung’ menjadi huruf besar semua.

Gambar 3.2 Contoh Penggunaan Upper.

3. SUBSTRING

Mengambil kata OTORO dari MOTOROLA yang dimulai dari huruf kedua sebanyak lima

huruf.

Gambar 3.3 Contoh Penggunaan Substring.

SELECT LOWER('MOTOROLA') AS

Huruf_Kecil

FROM Barang

WHERE Nama_Barang='MOTOROLA'

SELECT UPPER('Samsung') AS Huruf_Besar

FROM Barang

WHERE Nama_Barang='Samsung'

SELECT SUBSTRING('MOTOROLA', 2, 5) AS

Ambil_Karakter FROM Barang

WHERE Nama_Barang='MOTOROLA'

Page 20: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 20

4. LTRIM

Menghilangkan spasi di dalam kurung pada sebelah kiri.

Gambar 3.4 Contoh Penggunaan LTRIM.

5. RTRIM

Menghilangkan spasi di dalam kurung pada sebelah kanan.

Gambar 3.5 Contoh Penggunaan RTRIM.

6. RIGHT

Mengambil karakter sebanyak 7 karakter dari kata ”David tusanto” dari sebelah kanan.

Gambar 3.6 Contoh Penggunaan RIGHT.

7. LEFT

Mengambil karakter sebanyak 8 karakter dari kata ”David tusanto” dari sebelah kiri.

SELECT LTRIM (' Samsung') AS

Hapus_Spasi

SELECT LTRIM ('MOTOROLA ') AS

Hapus_Spasi

SELECT RIGHT ('David Yusanto',7) AS

Ambil_karakter

Page 21: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 21

Gambar 3.7 Contoh Penggunaan LEFT.

8. CHAR

Mengubah kode ASCII menjadi huruf d.

Gambar 3.8 Contoh Penggunaan CHAR.

9. LEN

Menghitung karakter dari kata ”Merlita Yonanda” termasuk spasinya.

Gambar 3.9 Contoh Penggunaan LEN.

10. REVERSE

Membalik kata ”Liya Hilwa”.

Gambar 3.10 Contoh Penggunaan REVERSE.

SELECT LEFT ('David Yusanto',8) AS Ambil_karakter

SELECT CHAR (100) AS Kode_ASCII

SELECT LEN ('Merlita Yonanda') AS Hitung_Karakter

SELECT REVERSE ('Liya Hilwa') AS Balik_Kata

Page 22: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 22

11. SPACE

Memberikan spasi sebanyak 40 spasi.

Gambar 3.11 Contoh Penggunaan SPACE.

12. REPLICATE

Membuat replika * sebanyak 80.

Gambar 3.12 Contoh Penggunaan REPLICATE.

Pernyataan ORDER BY

Menampilkan data pada tabel Barang dengan urutan ASC atau terurut secara abjad.

Gambar 3.13 Contoh Penggunaan Order By (asc) pada tabel Barang.

Menampilkan data pada tabel Barang dengan urutan DESC atau terurut secara abjad terbalik.

SELECT SPACE (40) AS Spasi

SELECT REPLICATE ('*',80) AS Replika

SELECT * FROM Barang ORDER BY Nama_Barang ASC

SELECT * FROM Barang ORDER BY Nama_Barang DESC

Page 23: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 23

Gambar 3.14 Contoh Penggunaan Order By (desc) pada tabel Barang.

Fungsi-fungsi SQL seperti Character function bisa kita padukan dengan queri Order By,

sepereti contoh-contoh dibawah ini.

UPPER

Menampilkan Nama_Pembeli yang mempunyai huruf “a” di akhir namanya dan ID_Barang dan

Merubah smua nama pembeli pada tabel Pembelian menjadi huruf kapital berdasarkan ID_Barang.

Gambar 3.15 Hasil dari Perintah UPPER pada tabel Pembelian

SUBSTRING

Mengambil huruf dari field Nama_Barang yang dimulai dari huruf ke dua sebanyak empat huruf

yang memiliki huruf “a” berdasarkan ID_Barang pada tabel Barang

SELECT UPPER (Nama_Pembeli)AS Nama_Pelanggan ,ID_Barang AS

ID_Barang FROM Pembelian WHERE Nama_Pembeli like '%a%'

ORDER BY ID_Barang

Page 24: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 24

Gambar 3.16 Hasil dari Perintah SUBSTRING pada tabel Barang

RIGHT

Mengambil hurus dari field Nama_Barang yang dimulai dari kanan sebanyak empat huruf

berdasarkan ID_Barang pada tabel Barang.

Gambar 3.17 Hasil dari Perintah RIGHT pada tabel Barang

LEN

Menampilkan Jumlah karakter dari Nama Pembeli dan menampilkan Nama_Pembeli berdasarkan

ID_Pembeli pada tabel Pembelian.

SELECT SUBSTRING (Nama_Barang, 2, 4) AS Ambil_Karakter

FROM Barang

WHERE Nama_Barang Like '%a%' ORDER BY ID_Barang

SELECT RIGHT (Nama_Barang,4) AS Ambil_karakter

FROM Barang ORDER BY ID_Barang

SELECT LEN (Nama_Pembeli) AS

Jumlah_Karakter,Nama_Pembeli AS Pembeli FROM

Pembelian ORDER BY ID_Pembeli

Page 25: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 25

Gambar 3.18 Hasil dari Perintah LEN pada tabel Pembelian

TUGAS

Dengan database “Mahasiswa”.

1. Buatlah perintah SQL menggunakan klausa Order By tanpa memberikan klausa ASC dan

DESC pada database yang anda buat !

2. Buatlah perintah SQL dengan klausa Order by !

3. Buatlah perintah SQL untuk menampilkan nama mahasiswa berdasarkan urutan abjad

terbalik dan nilai secara terurut.

Page 26: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 26

MODUL IV

PENGAMBILAN DATA DARI MULTIPLE TABLE

Tujuan :

1. Mahasiswa memahami perintah-perintah SQL untuk pengambilan data dari multiple tabel.

2. Memahami tipe-tipe join.

3. Memahami tentang cartesian product.

4. Memahami tentang penggabungan tabel.

5. Memahami bagaimana mengambil data dari joined table.

Tugas Pendahuluan :

1. Apa yang anda ketahui tentang JOIN?

2. Sebutkan macam-macam JOIN pada tabel!

3. Apakah perbedaan Left JOIN dengan Right JOIN?

DASAR TEORI

Tipe-tipe join

Di dalam database, ada kalanya kita membutuhkan data dari beberapa tabel yang saling

berhubungan. Untuk mendapatkan data dari beberapa tabel tersebut dapat digunakan perintah JOIN

pada perintah SQL (Alam, 2005).

Pada SQL, perintah join ada beberapa macam yaitu :

– Inner Join

– Outer Join

Left Join

Right Join

Cartesian Products

Cartesian Product kadangkala disebut juga sebagai Cross Join. Bila menggunakan Cross

Join, maka hasil dari Cross Join akan menciptakan hasil yang didasarkan pada semua kemungkinan

kombinasi baris dalam kedua set data. Dengan demikian, jumlah baris yang dikembalikan adalah N

x M, dimana N adalah jumlah baris dalam kumpulan data A dan M jumlah baris dalam kumpulan

data B. Jelas, jumlah baris dalam Cross Join dapat menjadi sampah (Alam, 2005). Bentuk perintah

dari Cross Join adalah :

Page 27: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 27

Penggabungan tabel

Selain menggunakan cara konvensional, pengambilan data dan penampilan informasi dari

dua tebel dapat juga dilakukan dengan perintah operator JOIN. Fungsi dari operator ini adalah

untuk menggabungkan data-data dari dua buah tabel atau lebih. Operator JOIN ini berlaku pada

tabel biasa ataupun VIEW. Pada dasarnya ada tiga macam operasi JOIN menggunakan operator

JOIN (Octaviani, 2010). Berikut akan dijelaskan masing-masing.

Mengambil data dari joined table

Untuk mengambil data dari dua tabel atau lebih kita bisa menggunakan Join-Join yang

telah di sebutkan diatas:

1. Inner Join

INNER JOIN ini merupakan join yang paling umum yang dapat digunakan pada

semua database. Penggabungan hanya dilakuakan pada dua buah tabel yang telah

merelasikan field nya. Maksudnya adalah data pada tebel pertama akan dihubungkan

dengan data pada tabel kedua apabila nilai field yang dijadikan patokan relasi kedua tabel

memiliki nilai yang sama. Bentuk baku perintah Inner Join :

2. Outer Join

Pada Outer JOIN ini data pada tabel pertama tetap diikutkan walaupun tidak

memiliki hubungan apapun pada tabel kedua. Ada dua macem Outer JOIN yaitu Left Outer

JOIN dan Right Outer JOIN.

Left Outer JOIN akan menampilkan data pada tabel kiri walaupun tidak memiliki

relasi pada tabel di bagian kanan, bentuk querinya sebagai berikut.

SELECT field1, field2, fieldn FROM tabel1

CROSS JOIN tabel2

atau

SELECT field1, field2, fieldn FROM tabel1, tabel2

SELECT field1, field2, fieldn…

FROM tabel1

INNER JOIN tabel2 ON tabel1.key = tabel2.key

SELECT field1, field2, fieldn…

FROM tabel1

LEFT JOIN tabel2 ON tabel1.key = tabel2.key

Page 28: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 28

Right Outer JOIN akan menampilkan data pada tabel disebelah kanan walaupun

tidak mempunyai data yang berhubungan dengan tabel disebelah kirinya. Bentuk

querinya sebagai berikut.

KEGIATAN PRAKTIKUM

Agar lebih memperdalam pemahaman kita tentang fungsi-fungsi SQL diatas, silahkan coba

Queri dibawah ini pada database “Toko” yang anda buat.

Inner Join

Gambar 4.1 Hasil Inner Join pada tabel Pembelian.

Outer Join

Untuk Left Join

SELECT field1, field2, fieldn…

FROM tabel1

RIGHT JOIN tabel2 ON tabel1.key = tabel2.key

SELECT

Barang.ID_Barang,Pembelian.ID_Pembeli,Pembelian.Nama_Pembeli,

Barang.Nama_Barang

FROM Barang INNER JOIN Pembelian ON

Barang.ID_Barang=Pembelian.ID_Barang

SELECT Barang.ID_Barang,Pembelian.ID_Pembeli,

Pembelian.Nama_Pembeli,Barang.Nama_Barang

FROM Barang LEFT JOIN Pembelian ON

Barang.ID_Barang=Pembelian.ID_Barang

Page 29: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 29

Gambar 4.2 Hasil Outer Join pada Tabel Pembelian.

Untuk Right Join

Gambar 4.3 Right Join pada tabel Pembelian.

Cartesian Products

SELECT

Barang.ID_Barang,Pembelian.ID_Pembeli,Pembelian.Nama_Pembeli,

Barang.Nama_Barang

FROM Barang RIGHT JOIN Pembelian ON

Barang.ID_Barang=Pembelian.ID_Barang

SELECT Barang.ID_Barang,Pembelian.ID_Pembeli,

Pembelian.Nama_Pembeli,Barang.Nama_Barang

FROM Barang CROSS JOIN Pembelian

Page 30: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 30

Gambar 4.4 Hasil dari Cartesian Products.

TUGAS

1. Cobalah masing-masing perintah join yang sudah anda praktikkan dengan menggunakan

data base Mahasiswa yang anda buat!

2. Buatlah kesimpulan tentang perbedaan klausa antaran Right join dan Left join!

Page 31: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 31

MODUL V

FUNGSI AGGREGATE

Tujuan :

1. Mahasiswa mampu memahami pengambilan data dari basis data menggunakan fungsi-

fungsi aggregate.

2. Mamahami fungsi-fungsi aggregate.

3. Memahami klausa GROUP BY.

4. Memahami klausa HAVING.

Tugas Pendahuluan :

1. Sebutkan macam-macam fungsi yang ada pada SQL!

2. Apa yang anda ketahui tentang Fungsi Aggregate?

3. Sebutkan pembagian fungsi-fungsi aggregate!

DASAR TEORI

Fungsi-Fungsi Aggregate

Function atau fungsi dalam perintah SQL digunakan untuk menghasilkan sebuah nilai atau

output. Berikut ini merupakan fungsi-fungsi Aggregate.

1. SUM

Untuk menjumlahkan suatu kolom tertentu yang telah didefinisikan dalam perintah select.

Queri :

SELECT SUM (nama_kolom) FROM nama_tabel

2. COUNT

Untuk menghitung jumlah baris dalam sebuah tabel.

Queri :

SELECT COUNT (nama_kolom) FROM nama_tabel

3. AVG

Untuk menghitung nilai rata-rata dari suatu kolom tertentu yang telah definisikan dalam

perintah select.

Queri :

SELECT AVG nama_kolom FROM nama_tabel

4. MIN

Untuk mengetahui nilai terkecil dari sebuah kolom tertentu dalam perintah select.

Queri :

SELECT MIN nama_kolom FROM nama_tabel

Page 32: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 32

5. MAX

Untuk mengetahui nilai terbesar dari sebuah kolom tertentu dalam perintah select.

Queri :

SELECT MAX nama_kolom FROM nama_tabel

Klausa GROUP BY

Dalam SQL terdapat banyak kata kunci yang digunakan untuk melengkapi statement

SELECT untuk meperoleh tampilan data yang dikehendaki, diantaranya yaitu GROUP BY.

GROUP BY ini merupakan kata kunci yang digunakan untuk mengelompokkan satu atau lebih

field yang memiliki nilai yang sama untuk membentuk satu kelompok.

Queri :

HAVING

Kata kunci ini tidak termasuk fungsi, tetapi kata kunci ini berfungsi untuk melengkapi

statement SELECT. Kegunaannya adalah mendefinisikan sebuah kondisi yang kemudian

diterapkan pada sekelompok data pada beberapa field yang kemudian ditampilkan sebagai hasil

queri. Kata kunci ini memiliki kesamaan fungsi dengan WHERE (Octaviani, 2010).

Queri :

KEGIATAN PRAKTIKUM

Untuk lebih memahami fingsi-fungsi Aggregate cobalah Queri dibawah ini pada database

“Toko” yang anda buat!

1. SUM

Menjumlahkan jumlah pembelian pada tabel Pembelian.

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name;

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

HAVING aggregate_function(column_name) operator value;

Page 33: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 33

Gambar 5.1 Hasil Sum pada tabel Pembelian.

2. COUNT

Menjumlahkan jumlah data pada tabel Barang.

Gambar 5.2 Hasil Count pada tabel Barang.

3. AVG

Menampilkan nilai rata-rata Jumlah pembelian pada tabel Pembelian.

Gambar 5.3 Hasil AVG pada tabel Pembelian.

4. MIN

Menampilkan nilai minimal Stok barang pada tabel Barang.

SELECT SUM(Jumlah_Pembelian) AS Jumlah_Pembeli

FROM Pembelian

SELECT Count(*) AS Jumlah_Data FROM Barang

SELECT avg (Jumlah_Pembelian) AS NilaiRata_Rata

FROM Pembelian

SELECT min (Stok_Barang) AS Stok_Minimal

FROM Barang

Page 34: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 34

Gambar 5.4 Hasil MIN pada tabel Barang.

5. MAX

Menamapilkan nilai maksimal Stok barang pada tabel Barang.

Gambar 5.5 Hasil MAX pada tabel Barang.

6. GROUP BY

Menampilkan nama barang serta jumlahnya berdasarkan Nama barang pada tabel Barang

Gambar 5.6 Hasil Group By pada tabel Barang.

7. HAVING

Menampilkan Stok barang dan jumlahnya berdasarkan stok barang yang lebih dari satu

pada tabel barang, pada kondisi ini stok barang pada tabel Barang belum kita isikan,

sehingga stok barang akan berjumlah 0 dan jumlah barang ada 6

SELECT max (Stok_Barang) AS Stok_Maksimal

FROM Barang

(Karena pada Stok barang semuanya bernilai 0)

SELECT Nama_Barang, COUNT(Nama_Barang) AS Jumlah

FROM Barang

GROUP BY Nama_Barang

Page 35: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 35

Gambar 5.7 Hasil Having pada tabel Barang.

TUGAS

1. Buatlah perintah SQL yang menggunakan fungsi Aggregate (Masing-masing 1)!

2. Buatlah perintah SQL dengan klausa Order By, Group By, dan Having!

SELECT Stok_Barang, COUNT (Stok_Barang) AS Jumlah

FROM Barang

GROUP BY Stok_Barang HAVING COUNT (Stok_Barang) >1

Page 36: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 36

MODUL VI

SUBQUERIES DAN SET OPERATION

Tujuan :

1. Mahasiswa dapat memahami dan membuat subqueri serta penggunaan set

operation dalam SQL.

2. Memahami tentang subqueries dan dapat menerapkan subqueries.

3. Memahami penggunaan operator UNION.

4. Memahami penggunaan operator INTERSECT.

5. Memahami penggunaan operator EXCEPT.

Tugas Pendahuluan

1. Apa yang anda ketahui tentang subqueries?

2. Apa perbedaan antara subqueri dengan queri biasa?

DASAR MATERI

Subqueries

Subqueries merupakan perintah SQL yang terdiri dari lebih dari satu perintah SQL dan

digunakan untuk mengambil data dari lebih dari satu tabel. Subqueri biasanya terdiri dari dua

perintah SQL. Perintah SQL yang pertama disebut dengan perintah SQL utama dan perintah SQL

kedua disebut subqueri. Untuk lebih jelasnya mengenai subqueri berikut querinya (Octaviani,

2010) :

Operator UNION

Operator UNION digunakan untuk mendapatkan himpunan gabungan dari dua buah

himpunan yang ada. Anggota himpunan ini adalah anggota dari kedua himpunan yang ada. Bila

anda menggabungkan dua tabel maka yang anda dapatkan adalah semua field dari kedua tabel

tersebut(Octaviani, 2010). Querinya sebagai berikut :

SELECT select_list

FROM table

WHERE expr operator (SELECT select_list

FROM table);

Page 37: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 37

Kita misalkan pada database “Toko” mempunyai tabel bernama “Barang” dan “Barang1”

dengan nama field kedua tabel adalah sama yaitu ID_Barang, Nama_barang, Tanggal_terima,

Stok_Barang, maka untuk menampilkan semua data pada tabel barang dan barang1 hanya

menggunakan Queri berikut :

Operator INTERSECT

Intersect merupakan operator yang digunakan untuk memperoleh data dari dua buah

queri dimana data yang ditampilkan adalah yang memenuhi kedua queri tersebut dengan ketentuan

jumlah, nama, dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama

(Octaviani, 2010). Querinya sebgai berikut :

Operator EXCEPT

Except merupakan operator yang memiliki fungsi untuk mengembalikan sekumpulan nilai

yang ada di tabel pertama, tetapi tidak ada pada tabel kedua(Alam, 2005). Querinya sebgai berikut.

SELECT column_name(s) FROM table1

UNION

SELECT column_name(s) FROM table2;

SELECT Nama FROM Brang

UNION

SELECT Nama FROM Barang1

SELECT field1, field2, . field_n

FROM tables

INTERSECT

SELECT field1, field2, . field_n

FROM tables;

SELECT field1, field2, . field_n

FROM tables

EXCEPT

SELECT field1, field2, . field_n

FROM tables;

Page 38: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 38

KEGIATAN PRAKTIKUM

Untuk meningkatkan pengetahuan tentang subqueri dan setoperation, cobalah statement

queri dibawah ini pada databse Toko yang anda buat.

Pernyataan Subqueri

Menampilkan ID_Barang, Tanggal_Beli, Nama_Pembeli, dan Jumlah_Pembelian dimana jumlah

pembeliannya yang terbanyak pada tabel Pembelian.

Gambar 6.1 Hasil Subqueri pada tabel Pembelian.

Menampilkan data pada tabel Pembelian dimana jumlah pembeliannya yang paling sedikit.

Gambar 6.2 Hasil Subqueri pada tabel Pembelian.

Menampilkan Nama_Barang, Tanggal_terima, dan Stok_Barang pada tabel Barang dengan Jumlah

pemblian kurang dari satu berdasarkan tabel Pembelian.

SELECT ID_Barang, Tanggal_Beli, Nama_Pembeli, Jumlah_Pembelian

FROM Pembelian

WHERE Jumlah_Pembelian =(SELECT max (Jumlah_Pembelian)

FROM Pembelian)

SELECT * FROM Pembelian

WHERE Jumlah_Pembelian=(SELECT min(Jumlah_Pembelian)

FROM Pembelian)

SELECT Nama_Barang, Tanggal_terima, Stok_Barang

FROM Barang

Where ID_Barang IN

(SELECT ID_Barang

FROM Pembelian WHERE Jumlah_Pembelian<=1)

Page 39: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 39

Gambar 6.3 Hasil Subqueri pada tabel Barang.

Operator UNION

Menampilkan Nama_Pembeli, dan Jumlah_Pembelian pada tabel Pembelian dan Nama_Barang,

Stok_Barang pada tabel barang.

Gambar 6.4 Hasil UNION pad tabel Pembelian dan tabel Barang.

Menampilkan Nama_Pembeli, dan Jumlah_Pembelian pada tabel Pembelian dan

Nama_Barang,Stok_Barang pada tabel Barang.

SELECT Nama_Pembeli,Jumlah_Pembelian

FROM Pembelian

UNION SELECT Nama_Barang,Stok_Barang FROM Barang

SELECT Nama_Pembeli,Jumlah_Pembelian

FROM Pembelian

UNION ALL SELECT Nama_Barang,Stok_Barang FROM Barang

Page 40: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 40

Gambar 6.5 Hasil UNION ALL pada tabel Pembelian dan tabel Barang.

Menampilkan Tanggal_Beli, Nama_Pembeli, dan Jumlah_Pembelian pada tabel Pembelian dimana

Jumlah_Pembelian =1 dan menampilkan Tanggal_Beli, Nama_Pembeli, Jumlah_Pembelian pada

tabel Pembelian berdasarkan Nama_Pembeli yang dimulai dengan huruf A

Gambar 6.6 Hasil UNION ALL pada taebel Pembelian.

INTERSECT

SELECT Tanggal_Beli,Nama_Pembeli,Jumlah_Pembelian

FROM Pembelian WHERE Jumlah_Pembelian='1' UNION ALL SELECT

Tanggal_Beli,Nama_Pembeli,Jumlah_Pembelian

FROM Pembelian WHERE Nama_Pembeli LIKE 'A%'

SELECT ID_Barang FROM Barang

WHERE Stok_Barang <6 INTERSECT SELECT ID_Barang

FROM Pembelian

Page 41: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 41

Gambar 6.7 Hasil INTERSECT pada tabel Barang.

Contoh lain penggunaan Intersect

Gambar 6.8 Hasil dari INTERSECT pada tabel Barang.

EXCEPT

Gambar 6.9 Hasil dari EXCEPT pada tabel Barang dan tabel Pembelian.

SELECT *FROM Barang

WHERE Stok_Barang BETWEEN 0 AND 1

INTERSECT

SELECT *FROM Barang

WHERE Stok_Barang BETWEEN 0 AND 2;

SELECT ID_Barang FROM Barang

EXCEPT SELECT ID_Barang FROM Pembelian

Page 42: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 42

TUGAS

1. Buatlah Queri SQL masing-masing pada database Mahasiswa dengan menggunakan

subqueries dan setoperation!

2. Perhatikan outputnya dan buatlah kesimpulan mengenai perbedaan antara queri masing-

masing!

Page 43: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 43

MUDUL VII

VIEWS DAN PENGANTAR T-SQL

Tujuan :

1. Mahasiswa dapat konsep penggunaan view dalam basis data serta memahami suatu fungsi

dalam transact-sql (programmable objects).

2. Memahami penerapan konsep view dalam SQL.

3. Memahami pembuatan view.

4. Memahami modifikasi view.

5. Memahami penggunaan variabel dalam T-SQL.

6. Mamahami penggunaan flow elements dalam T-SQL.

7. Mamahami penggunaan temporary table.

Tugas Pendahuluan :

1. Apa yang anda ketahui tentang View?

2. Apa yang anda ketahui tentang T-SQL (Transact SQL)?

DASAR TEORI

Konsep view

View merupakan tabel yang tidak tampak alias hanya dimemory saja, view sering

digunakan oleh para pengembang database untuk mempermudah menampilkan data dengan kriteria

tertentu yang diambil dari satu atau beberapa tabel sekaligus, selain menampilkan hasil view juga

dapat digunakan sebagai sumber data bagi queri. View juga berguna untuk membatasi akses

database, membuat queri kompleks secara mudah, mengizinkan independensi data dan untuk

menampilkan view (pandangan) dari data yang berbeda dari data yang sama .View sering juga

disebut Virtual tables (Octaviani, 2010).

Pembuatan view

Untuk membuat view gunakan queri dibawah ini:

Modifikasi view

CREATE VIEW nm_view[(daftar_field)]

[WITH{ENCRIPTION | SCHEMABINDING | VIEW_METADATA]

AS statement_select

[WITH CHECK OPTION]

Page 44: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 44

Sama seperti halnya objek database, view juga dapat diedit dengan perintah ALTER

VIEW. Querinya sebagai berikut.

Sedangkan untuk menghapus view yang sudah tidak diperlukan kita dapat menggunakan

queri sebagai berikut:

Variabel

Sama seperti bahasa pemrograman lainnya, bahasa T-SQL juga memerlukan variable

dalam scriptnya, bahkan dalam sebuah statement SELECT juga dapat diberi variable. Bila pada

bahasa pemrograman lainnya variabel dideklarasikan terlebih dahulu, pada T-SQL juga demikian.

Deklarasi variabel untuk T-SQL menggunakan kata kunci DECLARE (Octaviani, 2010).

Bentuknya adalah sebagai berikut.

Tipe data varabel identik dengan tipe data field, hal yang perlu diingat adalah setiap

varabel pada T-SQL didahului oleh @. Seperti halnya pada bahasa pemrograman umumnya, tiap

variabel pasti memiliki ruang lingkup tersendiri. Pada ruang lingkupnya variabel dapat diakses dan

dimanipulasi. Aturan pada T-SQL adalah varabel yang dideklarasikan pada sebuah batch hanya

berlaku untuk batch tersebut, tidak dapat diakses oleh batch lainnya meskipun pada satu file.sql.

Flow elements

T-SQL memiliki statement-statement untuk mengatur jalannya alur program. Statement-

statement tersebut adalah sebagai berikut :

ALTER VIEW nm_view

AS

SELECT field1, field2, filed3, field....n

FROM table1, table2, table3, table...n

WHERE table1(key) = table2(key)

DROP VIEW nm_view

DECLARE nm_var tipe_var;

Page 45: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 45

IF

Ini adalah statement pengendali alur program yang paling umum dan sangat sering digunakan

terutama pada bahasa-bahasa pemrograman lainnya. Bentuk IF yang paling sederhana adalah

sebagai berikut:

Pada contoh script dibawah ini, jika kondisi yang ada setelah IF bernilai False maka

statement yang ada dibawahnya akan dihindari atau tidak dilaksanakan.

Hasilnya yang dicetak adalah Salah, karena 2 tidak sama dengan 4.

Begin...End

Kadangkala statement yang akan dikerjakan apabila kondisi pada if mengembalikan nilai

true lebih dari satu. Jika statement yang menyertai IF lebih dari satu maka digunakan kata kunci

Begin untuk menandai statement End untuk menandai akhir statement. Begin dan End diperlukan

supaya SQL Server mengetahui bahwa statement-statement yang ada diataranya adalah satu

kumpulan (Octaviani, 2010). Bentuk penulisannya adalah sebagai berikut.

IF Exists()

Salah satu bentuk If adalah if yang disertai dengan kata kunci exists (). Struktur If exists

ini mengguanakan keberadaan field-field yang dikembalikan dari statement SELECT. Statement

SELECT harus menyertakan semua fieldnya.

IF kondisi

Statement

IF 2=4

Print

’Benar’

Print

’Salah’

IF kondisi

BEGIN

Statemnt1

Statement2

END

Page 46: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 46

IF...Else

Bentuk perintah If selanjutnya adalah bentuk IF dengan ELSE. Bentuk penulisan perintah

tersebut adalah sebagai berikut :

While

Perintah While digunakan untuk melakukan perulangan terhadap sebuah statement atau

sekumpulan kode selama kondisi yang disyaratkan terpenuhi atau masih menghasilkan nilai true.

Karena biasanya yang diulang adalah sekumpulan kode SQL maka kata kunci begin dan end

diperlukan (Octaviani, 2010). Urutan pengerjaan statement while adalah sebagai berikit :

Perintah While akan melakukan tes pada kondisi yang diberikan oleh user. Jika kodisi

tersebut bernilai benar maka perintah While akan menjalankan blok kode SQL yang ada

dibawahnya. Jika tes kondisi memberikan hasil false maka blok kode SQL yang ada

dibawahnya tidak akan dikerjakan dan perulangan berhenti.

Setelah mengerjakan perintah pada blok kode SQL maka alur program kembali ke bagian

tes kondisi, hal ini terus-menerus dilakukan hingga kondisi memberikan nilai false.

Temporary table

Temporary Tabel merupakan tabel sementara yang terbentuk ketika proses queri itu

berjalan. Fungsi temporary tabel digunakan untuk menyimpan data dari rangkaian proses untuk

memperoleh informasi yang diinginkan. Pada umumnya temporary tabel diciptakan karena proses

yang lakukan tidak bisa diselesaikan dalam satu kali proses queri.

Keuntungan penggunaan temporary tabel adalah tidak membebani besarnya file,

keuntungan lainnya adalah temporary tabel dapat digunakan untuk proses secara bersamaan pada

waktu yang sama dengan user yang berbeda-beda atau lebih mudahnya temporary tabel sangat

membantu untuk aplikasi program berbasis client server tanpa perlu membuat tabel bantu pada

masing-masing client.

IF kondisi

Statement atau kumpulan statement yang dikerjakan

bila benar;

ELSE

Statement atau kumpulan statement yang dikerjakan

bila salah;

Page 47: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 47

Ciri utama untuk membedakan antara temporary tabel dengan tabel fisik adalah untuk tabel

fisik tidak diawali dengan tanda # tetapi untuk temporary tabel diawali dengan tanda # (Octaviani,

2010). Berikut querinya.

Untuk menghapus temporary tabel dapat digunakan perintah drop diikuti dengan nama

tabelnya.

Temporary tabel dapat dikategorikan menjadi :

a. Local Temporary Table

Local temporary tabel hanya berlaku didalam sebuah Stored procedure. Apabila

sebuah Stored Procedure dieksekusi, maka secara otomatis tabel akan dibuat dan

dibuang apabila Stored Procedure tersebut telah selesai dieksekusi.

b. Global Temporary Table

Berbeda dengan Local Temporary table, Global Temporary tabel ini dapat diakses

kapan saja selama temporary tabel ini belum dibuang.

PRAKTIKUM

View

Untuk lebih memahami tentang penggunaan View maka kita akan membuat View pada

databse “Toko”, buatlah view dengan nama “Laporan”, tulislah queri dibawah ini!

CREATE TABLE #nama_temp_tabel (

[nm_field1 tipedata1(value) ]

[nm_field2 tipedata2(value) …])

DROP # nama_temp_tabel

CREATE VIEW Laporan

AS SELECT Pembelian.ID_Pembeli, Pembelian.ID_Barang,

Barang.Nama_Barang, Pembelian.Nama_Pembeli,

Pembelian.Tanggal_Beli, Pembelian.Jumlah_Pembelian

FROM Pembelian,Barang

WHERE Pembelian.ID_Barang=Barang.ID_Barang

Page 48: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 48

Apabila pembuatan View ini sukses, maka pada Object Explorer anda akan melihat

tampilan yang sama seperti gambar dibawah ini.

Gambar 7.1 Tampilan Object Explorer Pembuatan view Laporan pada databae Toko.

Untuk dapat menggunakan view yang telah dibuat dengan cara sebagai berikut.

Gambar 7.2 Hasil View Laporan pada tabel Pembelian.

DROP View

Untuk menghapus view Laporan guankan queri dibawah ini!

Variable

Untuk lebih memahai tentang penggunaan variable, tulislah queri dibawah ini!

SELECT * FROM Laporan

DROP VIEW Laporan

Page 49: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 49

Bila anda eksekusi kedua batch diatas maka hasil yang anda dapatkan tampak seperti

gambar dibawah ini.

Gambar 7.3 Message pembuatan Variabel.

Kejadian di atas menunjukkan bahwa tiap variabel memiliki fungsi sendiri-sendiri.

Variabel pada batch pertama tidak berlaku pada batch kedua. Akan tetapi pada bagian Result akan

tampak seperti gambar dibawah ini.

DECLARE @var1 varchar (30),

@var2 Int

SELECT @var1 as variabel1,@var2 as variabel2

// Melihat isi awal dari variabel

set @var1=' Herry Satriadi'

// Memberikan nilai pada variabel

set @var2='27'

// Memberikan nilai pada variabel

SELECT @var1 as Nama,@var2 as Umur

// Melihat isi variabel setelah diisi

go

SELECT @var1 as batchdua @var2 // Mencoba mengakses

variabel batch pertama

Page 50: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 50

Gambar 7.4 Hasil dari pembuatan variable.

Flow Elements

Untuk memahami konsep flow element, kita akan mempraktikkan contoh penggunaannya

satu persatu pada praktikum kali ini.

If

Hasil yang akan dicetak adalah Salah, karena 2 tidak sama dengan 4.

Gambar 7.5 Contoh Penggunaan IF.

Begin…End

Contoh penggunaan Begin…End, coba anda tuliskan queri dibawah ini !

IF 2= 4

Print 'Benar'

print 'Salah'

DECLARE @kd_brg varchar(10)

DECLARE @nm_brg varchar(60)

DECLARE @nm_pembeli varchar(80)

set @kd_brg ='BRG001'

IF @kd_brg ='BRG001'

BEGIN

SET @nm_brg ='Sony Ericsson'

SET @nm_pembeli ='Merlita Yonanda'

END

SELECT @kd_brg,@nm_brg,@nm_pembeli;

Page 51: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 51

Hasilnya dapat anda lihat pada gambar dibawh ini.

Gambar 7.6 Contoh Penggunaan Begin… End.

IF…Else

Pada contoh pengunaan IF…Else ini, kita akan menggunakan tabel Pembelian pada

database “Toko” yang kita buat.

Gambar 7.7 Hasil dari IF… Else pada tabel Pembelian.

IF EXISTS (SELECT * FROM Pembelian WHERE Nama_Pembeli LIKE

'M%')

BEGIN

PRINT 'Nama yang berawalan M'

SELECT * FROM Pembelian WHERE Nama_Pembeli LIKE 'M%'

END

ELSE

PRINT 'Nama yang berawalan M tidak ada.'

Page 52: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 52

Contoh lain dari IF… Else

Gambar 7.8 Hasil dari IF… Else pada tabel Pembelian.

WHILE

Contoh penggunaan While.

Hasilnya anda bisa lihat pada gambar dibawah ini.

IF EXISTS (SELECT * FROM Pembelian WHERE Nama_Pembeli LIKE 'A%')

BEGIN

PRINT 'Nama yang berawalan A'

SELECT * FROM Pembelian WHERE Nama_Pembeli LIKE 'A%'

END

ELSE

IF EXISTS (SELECT * FROM Pembelian

WHERE Nama_Pembeli LIKE 'L%')

BEGIN

PRINT 'Tetapi nama yang berawalan L ada'

SELECT * FROM Pembelian WHERE Nama_Pembeli LIKE 'L%'

END

ELSE

PRINT 'Tidak ada data yang ditemukan'

DECLARE @hitungan INT

SET @hitungan =0

WHILE @hitungan <=10

BEGIN

PRINT 'Ini loop yang ke=' + str(@hitungan)

SET @hitungan= @hitungan + 1

END

Page 53: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 53

Gambar 7.9 contoh penggunaan While.

Temporary Tables

Untuk lebih memahami tentang pembuatan temporary tabel, silahkan mencoba queri

dibawah ini!

Untuk mengetahui sebuah temporary tabel sudah ada atau belum didalam sebuah sistem

SQL Server, anda dapat menggunakan script dibawah ini :

Gambar 7.10 Hasil dari Temporary Tables.

CREATE TABLE #TempLatihan (

ID INT PRIMARY KEY,

Nama VARCHAR(80),

Alamat VARCHAR (50),

Hobby VARCHAR (70)

);

SELECT * FROM tempdb.sys.tables

WHERE Name LIKE '%%TempLatihan%'

Page 54: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 54

TUGAS

1. Sebutkan fungsi dari View!

2. Buatlah view pada database “Mahasiswa” yang anda buat!

3. Buatlah flow elements dan temporary tabel pada database “Mahasiswa”!

Page 55: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 55

MODUL VIII

T-SQL Lanjut

Tujuan :

1. Mahasiswa memahami lebih mendalam mengenai fungsi programmable object .

2. Memahami penggunaan user-defined functions dalam T-SQL.

3. Memahami penggunaan stored procedures dalam T-SQL.

4. Memahami penggunaan triggers dalam T-SQL.

Tugas Pendahuluan :

1. Apa yang anda ketahui tentang komponen bahasa T-SQL!

1. Apa yang anda ketahui tentang stored procedures?

2. Apa yang anda ketahui tentang triggers?

DASAR TEORI

User-defined functions

Merupakan suatu program yang ditulis dengan T-SQL yang terdiri dari sekumpulan

perintah yang tersimpan sebagai suatu objek didalam database server dengan pengambilan nilai,

pada User Defined Function (UDF) ini SQL Server menginzinkan user membuat fungsinya sendiri

sperti stored prosedure (Octaviani, 2010). Untuk membuat sebuah fungsi adalah sebagai berikut.

CREATE FUNCTION <nama function > ([param1], [param2],

[param3], [param..n])

RETURNS <data type>

AS

BEGIN

RETURN Expression

END

Page 56: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 56

Alter Function

Drop Function

Kata kunci RETURNS mendifinisikan tipe data yang akan menampung hasil atau nilai

yang akan dikembalikan oleh fungsi ke sistem. Sedangkan RETURN akan mengembalikan hasil

kerja fungsi kepada sistem. Statement-statement yang diperbolehkan dalam fungsi adalah sebagai

berikut.

SET

WHILE

IF

DECLARE

SELECT

INSERT

UPDATE

DELETE

Untuk melakukan pemanggilan pada fungsi yang dibuat bisa menggunakan queri dibawah

ini.

Setiap pemanggilan fungsi harus menyertakan dbo dibagian depannya. Terdapat perbedaan

antara stored prosedure dengan fungsi adalah Stored Procedure tidak mengembalikan nilai,

ALTER FUNCTION <nama function >

RETURNS <data type>

AS

BEGIN

RETURN Expression

END

DROP FUNCTION (nama_function)

SELECT dbo.nama fungsi (nilai).

Page 57: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 57

sedangkan fungsi harus mengembaliakan nilai. Fungsi dan stored prosedure dapat digunakan dalam

queri.

Stored procedures

Stored procedure merupakan sekumpulan statement T-SQL (batch) yang disusun

sedemikian rupa untuk menjalankan tugas tertentu. Stored procedure digunakan untuk

mempermudah pengolahan data dengan mendekatkan kode program dengan datanya. Stored

procedure biasanya disimpan dalam sebuah nama jadi dapat diprekompilasi (Kadir, 2002).

Adpun keuntungan-keuntungan dari penggunaan stored procedure adalah sebagai berikut :

Sebuah stored procedure dikompilasi dan lebih cepat dalam mengeksekusi batch

atau queri.

Memproses data lewat stored procedure dilakukan pada server sehingga

mengurangi intensitas lalu lintas data network

Stored procedure menawarkan pemrograman modular hal ini karena sebuah stored

procedure dapat memanggil stored procedure yang lain.

Stored procedure bisa jadi adalah salah satu komponen penting dalam keamanan

databsae. Jika semua akses user melalui stored procedure maka semua akses

langsung ke tabel dan data dapet dikontrol.

Pada stored procedure dikenal dua macam tipe stored procedure yaitu stored procedure

yang suda ada pada sistem dan stored procedure yang dibuat oleh user. Queri untuk membuat

stored procedure adalah sebagai berikut.

Nm_Scheme adalah nama dari scheme dimana kepemilikan stored procedure dinyatakan.

Nm_procedure adalah nama dari stored procedure yang baru. @paramp1 adalah paramater pertama

sementara tp_dta1 adalah tipe datanya. Default1 adalah opsional nilai default dari parameter

tersebut. Opsi OUTPUT mengindikasikan bahwa parameter adalah parameter yang dikembalikan

CREATE PROCEDURE [nm_schema] nm_ procedure

[({@paramp1} tp_dta1 [VARYING] [=default1] [OUTPUT])]{,..}

[WITH{RECOMPILE|ENCRIPTION|EXECUTE AS ’nm_user’}]

[FOR REPLECATION]

AS batch | EXTERNAL NAME nm_method

Page 58: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 58

dan dapat dikembalikan kepada procedure yang memanggilnya atau kepada sistem. Jika anda ingin

tiap kali agar procedure dieksekusi dikompilasi maka gunakan WITH RECOMPILE (Kadir, 2002).

Kita juga dapat melihat cara menjalankan stored procedure atau dapat memanggilnya

dengan perintah:

Pada stored procedure terdapat cara untuk mengenkripsi kode stored procedure yang kita

tulis agar kode tersebut tidak dilihat oleh user lain yang tidak berhak, berikut querinya.

Pada stored procedure terdapat istilah parameter, dengan parameter ini kita dapat

melewatkan data untuk diolah oleh stored procedure tersebut. Ini menjadikan stored procedure

sangat fleksibel (Kadir, 2002).

Triggers

Trigger merupakan sebuah mekanisme kerja yang dipanggil ketika ada sebuah aksi yang

terjadi pada sebuah tabel. Penamaan triger tidak boleh melebihi 128 karakter. Aksi yang dikenali

pada trigger dapat berupa statement DML bisa seperti INSERT, UPDATE, dan DELETE atau

statement DDL. Biasanya yang dieksekusi oleh trigger adalah stored procedure (Octaviani, 2010).

1. Membuat sebuah trigger dapat menggunakan perintah CREATE TRIGGER, bentuk

perintahnya adalah sebagai berikut:

EXEC nm_ stored procedure

ALTER PROCEDURE nm_ procedure

WITH ENCRIPTION

AS

PRINT ”...”;

RETURN

CREATE TRIGGER [nm_scheme]nm_trigger

ON{nm_tabel | nm_view}

[WITH opsi_dml_trigger[,..]]

{FOR | AFTER | INSTEAD OF}{[INSERT][,][UPDATE][,][DELETE]}

[WITH APPEND]

{AS statement_sql | EXTERNAL NAME nm_method}

Page 59: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 59

2. Memperbaiki trigger atau memodifikasi trigger yang ada, maka anda akan dapat

menggunakan perintah ALTER TRIGGER.

3. Menghapus terigger yang tidak diperlukan, kita dapat menggunakan perintah DROP

TRIGGER.

PRAKTIKUM

Kita akan mempraktikkan User-defined functions, stored procedures dan pembuatan

trigger.

User-defined functions

Untuk lebih memahami tentang User defined function, tulislah queri dibawah!

Untuk melakukan pemanggilan fungsi, lakukan perintah berikut ini :

Setiap pemanggilan fungsi harus menyertakan dbo dibagian depannya. Hasilnya dapat

anda lihat pada gambar dibawah ini.

Gambar 8.1 User-defined functions.

Perbedaan antara stored prosedure dan fungsi adalah stored prosedure tidak

mengembalikan nilai, sedangkan fungsi harus mengembalikan nilai. Fungsi dan stored prosedure

dapat digunakan dibagian queri

DROP TRIGGER nm_trigger

CREATE FUNCTION tambah (@angka1 INT,@angka2 INT)

RETURNS INT

AS

BEGIN

RETURN @angka1 + @angka2

END

SELECT dbo.tambah(20,5) AS Penjumlahan

Page 60: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 60

Stored procedures

Untuk lebih memahami tentang Stored procedure, tulislah queri dibawah ini !

Pertama kita buat Stored procedure dengan nama Latihan.

Setelah selesai membuat Stored procedure, anda dapat menjalankan queri diatas dengan

Stored procedure telah terdaftar, penggunaannya adalah sebagai berikut:

Anda akan melihat hasilnya pada gambar dibawah ini.

Gambar 8.2 Stored procedure.

Selanjutnya kita akan mencoba melihat isi stored procedure yang kita buat tadi dengan

queri dibawah ini

CREATE PROCEDURE Latihan AS

PRINT 'Latihan Procedure'

RETURN

DECLARE @hitung INT

SET @hitung=0

WHILE @hitung<= 10

BEGIN

PRINT 'Ini loop yang ke =' + STR(@hitung)

SET @hitung = @hitung + 1

IF @hitung =6

EXEC Latihan

END

Page 61: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 61

Dan hasilnya adalah sebagai berikut :

Gambar 8.3 Isi stored procedure.

Demi alasan keamanan, supaya kode anda tidak dilihat oleh user lain, kita akan

mengenkripsinya dengan queri dibawah ini.

Sekarang cobalah tulis queri dibawah ini, maka anda akan mendapatkan hasil seperti

gambar dibawah ini.

Gambar 8.4 Message stored procedure sudah dienkripsi.

Selanjutnya kita akan mencoba mempraktekkan penggunaan parameter pada stored

procedure dengan mengunakan database ”Toko”, pertama tulislah queri dibawah ini !

sp_helptext Latihan

sp_helptext Latihan

ALTER PROCEDURE Latihan

WITH ENCRYPTION

AS

PRINT 'Latihan Procedure'

RETURN

Page 62: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 62

Selanjutnya kita bisa mengeksekusi stored procedure nya dengan queri dibawah ini.

Pada queri diatas kita akan melihat data pada tabel Pembelian dengan Jumlah_Barang yang

berjumlah 1 sampai 2, dan lihatlah hasilnya pada gambar dibawah ini.

Gambar 8.5 Hasil dari Stored procedure pada tabel Pembelian.

Trigger

Kita akan membuat sebuah trigger mengunakan database Toko yang kita buat. Untuk

membuat sebuah trigger gunakan queri dibawah ini!

Apabila pembuatan Trigger ini sukses, maka pada Object Explorer anda akan melihat

tampilan yang sama seperti gambar dibawah ini.

CREATE PROCEDURE cr_nm_barang

(@stok int, @nama varchar)

AS

SELECT * FROM Toko.dbo.Barang

WHERE Stok_Barang BETWEEN @stok AND @nama

EXEC cr_nm_barang 1,2

CREATE TRIGGER Stockbarang ON Pembelian

FOR INSERT

AS

UPDATE b SET b.Stok_Barang = b.Stok_Barang + i.Jumlah_Pembelian

FROM Barang b join inserted i ON b.ID_Barang = i.ID_Barang

Page 63: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 63

Gambar 8.6 Tampilan Object Explorer hasil pembuatan Trigger.

Pada queri diatas kita akan membuat sebuah trigger dengan nama Stockbarang dimana

trigger tersebut akan terpicu jika ada perubahan di tabel Pembelian. Pada pembuatan trigger ini

bertujuan untuk merubah nilai Stok_Barang pada tabel Barang dengan menambahkan nilai

Stok_Barang yang sekarang dengan jumlah barang yang dibeli (Jumlah_Pembelian). Perhatikan

pada queri diatas terdapat kata inserted, ini merupakan logika yang digunakan untuk menyimpan

data yang memicu terjadinya trigger, dalam hal ini nilai data yang dimasukkan (insert) kedalam

tabel pembelian, selain inserted, tabel logika lainnya adalah deleted, tabel logika ini digunakan

untuk trigger yg terpicu dengan kejadian delete(Octaviani, 2010).

Perhatikan gambar dibawah ini, gambar dibawah ini merupakan gambar pada saat kita

menginsertkan data pada tabel Barang saat trigger belum dibuat, yaitu kita kondisikan nilai

Stok_Barang dalam kondisi default 0.

Gambar 8.7 Tabel Barang saat Trigger belum dibuat.

Untuk mengetahui apakah trigger yang kita buat tadi bisa berjalan, maka sekarang kita

akan mencoba menginsertkan data pada tabel Pembelian.

INSERT INTO Pembelian

(ID_Pembeli,ID_Barang,Tanggal_Beli,Nama_Pembeli,

Jumlah_Pembelian)

VALUES ('P08','BRG03','2011-03-11','Melly Aryanti',1);

Page 64: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 64

Gambar 8.8 Message Trigger.

Pada saat menuliskan queri diatas maka akan terlihat message dibagian bawah seperti

gambar diatas yang artinya ketika kita menuliskan queri diatas maka secara otomatis akan

menginsertkan data sekaligus kedalam tabel Pembelian dan tabel Barang.

Anda akan melihat hasil pada tabel Pembelian dan tabel Barang seperti gambar dibawah ini.

Gambar 8.9 Hasil dari proses Insert trigger tabel pembelian.

Gambar 8.10 Hasil dari proses Insert trigger tabel barang.

Pada gambar diatas terlihat nilai pada Stok_Barang sudah terisi sesuai dengan jumlah

pembelian yang dimasukkan pada queri Insert tabel Pembelian diatas.

Page 65: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 65

TUGAS

1. Buatlah sebuah stored procedure pada database “Mahasiswa” yang anda buat untuk

menampilkan semua data mahsiswa berdasarkan ketua jurusannya!

2. Buatlah stored procedure yang akan mencari nama ketua jurusan dengan nama tertentu!

3. Buatlah sebuah trigger pada database “Mahasiswa”!

4. Apakah perbedaan antara stored procedure dengan fungsi?

Page 66: Modul Praktikum - STMIK STIKOM Indonesiastiki-indonesia.ac.id/wp-content/uploads/modul/SK_SistemBasisData.pdf · Modul Praktikum Sistem Basis Data Program Studi Sistem Komputer 3

Modul Praktikum Sistem Basis Data

Program Studi Sistem Komputer 66

DAFTAR PUSTAKA

HS,Octaviani. 2010, SQL Server 2008 Express, Penerbit Andi, Yogyakarta

Alam.J, M. Agus. 2005, Pemrograman Transact-SQL pada SQL Server 2005, Elexmedia

Komputindo, Bandung;

Kadir, Abdul. 2002. Penuntun Praktis Belajar SQL, Penerbit Andi Yogyakarta.

http: // www.w3school.com