Transcript
Page 1: STRUCTURED QUERY LANGUAGE

BAB IV

STRUCTURED QUERY LANGUAGE

4.1 Tujuan Pratikum

Bab IV akan membahas kegiatan pratikum mengenai Structured Query

Language dimana tujuan dari pratikum tersebut adalah sebagai berikut :

1. Mengetahui dan memahami konsep dasar bahasa SQL.

2. Mengetahui dan memahami Data Manipulation Language.

3. Mengetahui dan memahami penggunaan perintah-perintah dalam

SQL.

4.2 Tinjauan Pustaka

SQL merupakan singkatan dari Structured Query Language.SQL

merupakan bahasa komputer standard ANSI ( American National Standard

Institude ).Dengan SQL kita dapat mengakses database, menjalankan queri untuk

mengambil data dari database, menambahkan data ke database, menghapus data di

dalam database, dan meng-update data di dalam database.

Pernyataan SQL dapat dikelompokkan menjadi beberapa kelompok,

yakni:

1. Data Definition Language

Ini adalah perintah dasar untuk membangun kerangka nya database,

seperti:

a. CREATE: Perintah ini digunakan untuk membuat. Membuat

database baru, view baru, kolom, dll.

b. ALTER:    Perintah ini digunakan untuk mengubah strukturnya

tabel yang sudah jadi sebelumnya. Seperti mengganti nama

tabel, menambah kolom, mengubah kolom, menghapus kolom,

bisa juga untuk memberikan atribut pada kolom.

c. DROP:       Perintah ini digunakan untuk menghapus database

dan tabel.

2. Data Manipulation Language

Page 2: STRUCTURED QUERY LANGUAGE

Ini adalah perintah untuk memanipulasi data dalam database yang

sudah dibuat. Perintah-perintahnya seperti:

a. INSERT:    Perintah ini digunakan untuk menyisipkan atau

memasukan databaru ke dalam tabel.

b. SELECT:    Perintah ini digunakan untuk mengambil data atau

menampilkan data dari suatu tabel.

Data yang kita ambil bisa kita tampilkan dalam layar prompt

MySQL secara langsung atau melalui tampilan aplikasi.

c. UPDATE:    Perintah ini digunakan untuk memperbarui data lama

menjadi data baru.

d. DELETE:    Perintah ini digunakan untuk menghapus data dari

tabel

3. DCL atau Data Control Language

DCL (bukan BCL) merupakan perintah SQL yang berhubungan

dengan pengaturan hak akses user MySQL, baik terhadap server,

database, tabel maupun field. Perintah SQL yang termasuk dalam

DCL antara lain :

a. GRANT

b. REVOKE

Sedangkan manfaat dari SQL adalah sebagai berikut :

1. Dapat berinteraksi dengan semua basis data.

2. Perintah yang digunakan bentuknya umum dan menggunakan bahasa

inggris.

3. Dapat melakukan operasi dengan basis data yang kompleks dan rumit.

SQL dibuat menggunakan sedikit perintah atau kata. Beberapa konsep

menyangkut pemrograman bahasa SQL yang perlu kamu pahami antara lain :

1.  Basis Data (database)

2. Table

3.  Kolom dan tipe Data

4. Baris

5. Kunci

Page 3: STRUCTURED QUERY LANGUAGE

4.2.1 Data Manipulation Language (DML)

Data Manipulation Language (DML) merupakan bentuk bahasa basis

data untuk melakukan menipulasi dan pengambilan data pada suatu basis data.

Manipulasi data pada dabase dapat berupa :

1. Penyisipan / penambahan data pada file / table dalam suatu basis

data.

2. Penghapusan data pada file / table dalam suatu basis data.

3. Pengubahan data pada file / table dalam suatu basis data.

4. Penelusuran data pada file / table dalam suatu basis data.

Pada level phisik kita harus mendefinisikan alghoritma yang

memungkinkan pengaksesan yang efisien terhadap data. Pada level yang lebih

tinggi yang dipentingkan bukan efisien akses, tapi juga efisiensi interaksi pemakai

dengan sistem. DML merupakan bahasa yang bertujuan memudahkan pemakai

untuk mengakses data sebagaimana direpresentasikan oleh model data. Ada 2

(dua) jenis DML adalah sebagai berikuit :

1. Prosedural, yang mensyaratkan pemakai menentukan, data apa yang

diinginkan serta bagaimana cara mendapatkannya.

2. Nonprosedural, yang membuat pemakai dapat menentukan data apa

yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.

Bahasa prosedural dari DML antara lain seperti dBase, FoxBase,

sedangkan untuk Nonprosedural DML : SQL (Structure Query Language), QBE

(Query By Example).

4.2.1.1 Select

Perintah SELECT adalah perintah yang paling umum digunakan dalam

SQL. Hal ini memungkinkan pengguna dari database untuk mengambil informasi

spesifik yang mereka inginkan dari dalam database. Perintah SQL untuk

melakukan penambahan data adalah menggunakan syntax:

SELECT nama_kolom FROM nama_tabel

Atau

SELECT*FROM nama_tabel.

Page 4: STRUCTURED QUERY LANGUAGE

Berikut adalah contoh penggunaan perintah select dalam tabletb

karyawan :

Perintah yang ditunjukkan di bawah ini mengambil seluruh informasi

yang terkandung dalam tabel tbkaryawan. Tanda bintang digunakan sebagai

wildcard di SQL. Hal ini secara berarti "Keseluruhan Pilih dari tabel tbkaryawan."

SELECT * FROM tbkaryawan

Atau, pengguna mungkin ingin membatasi atribut yang diambil dari

database. Sebagai contoh, departemen Sumber Daya Manusia mungkin

memerlukan daftar nama terakhir dari semua karyawan dalam perusahaan.

Perintah SQL berikut akan mengambil hanya bahwa informasi:

SELECT namakry FROM tbkaryawan

WHERE dapat digunakan untuk membatasi record yang akan diambil

sesuai dengan kriteria tertentu. Perintah berikut mengambil semua data yang

terkandung dalam tbkaryawan untuk arsip yang memiliki nilai gaji yang lebih

besar dari Rp 2,000,000:

SELECT *

FROM tbkaryawan

WHERE gaji> 2000000

4.2.1.2 Insert

Perintah INSERT di SQL digunakan untuk menambahkan record ke tabel

yang dituju. Sintaks yang digunakan adalah :

INSERT INTO <namaTabel> [(field1, field2, …)]

Berikut adalah contoh penggunaan perintah INSERT pada tabel

tbkaryawan :

INSERT INTO tbkaryawan VALUES ('2010011234', 'Ilham', 'Jakarta', '1984-12-20'', 'Sawangan', 'Pria', 3500000);

INSERT INTO tbkaryawan VALUES ('2010011235', 'Davina', 'Jakarta', '1990-06-16'', 'Sawangan', 'Wanita', 2500000);

INSERT INTO tbkaryawan VALUES ('2010011236', 'Bambang', 'Jakarta', '1982-02-11'', 'Depok', 'Pria', 2750000);

Page 5: STRUCTURED QUERY LANGUAGE

4.2.1.3 Update

Perintah UPDATE dapat digunakan untuk mengubah informasi yang

terkandung dalam sebuah tabel, baik secara massal maupun individu. Sintaks yang

digunakan untuk melakukan perintah tersebut adalah :

UPDATE nama_tabel

SET kolom1=value, kolom2=value2, …,

WHERE kolom=value

Berikut adalah contoh penggunaan perintah Update pada tabel

tb.karyawan :

Setiap tahun, perusahaan kami memberikan semua karyawan kenaikan

biaya-of-hidup 3% gaji mereka. Perintah SQL berikut bisa digunakan untuk

segera menerapkan kepada seluruh karyawan disimpan dalam database:

UPDATE tbkaryawan

SET gaji = gaji * 0.03

Di sisi lain, baru karyawan kami Ilham telah menunjukkan kinerja kerja yang baik

dan berprestasi. Manajemen ingin memberikan apresiasi prestasi dengan kenaikan

5000000. Klausa WHERE yang dapat digunakan untuk Ilham:

UPDATE tbkaryawan

SET gaji = gaji + 5000000

WHERE nik = '2010011234'

4.2.1.4 Delete

Page 6: STRUCTURED QUERY LANGUAGE

Delete adalah perintah DML yang digunakan untuk menghapus data

record. Sintaks yang digunakan dalam melakukan perintah Delete adalah sebagai

berikut :

DELETE FROM nama_tabel

WHERE nama_kolom = nama value

Contoh penggunaan Delete pada digunakan untuk menghapus catatan dari tabel tbkaryawan adalah sebagai berikut :

4.2.2 Query Join

Fungsi JOIN dipergunakan untuk menampilkan data yang berasal lebih

dari satu tabel. Relation/pemetaan/join pada dasarnya berfungsi untuk membuat

hubungan antara satu tabel dengan tabel yang lainnya. Relation ini bisa dibentuk

pada saat mendesain suatu database atau pada saat mengakses database (Retrieve

Data).

4.2.2.1 Inner Join

Inner join berfungsi sebagai pemetaan relasi one-to-one (satu ke satu),

yaitu dimana hanya satu record tabel A yang sama dengan satu record tabel B, dan

hanya satu record tabel B yang sama dengan satu record tabel A. Contoh dari

pengunaan Inner Join adalah sebagai berikut :

SELECT*FROM tpinjaman

INNERJOIN tnasabah_kredit

ON tpinjaman.id_nas_krdt = tnasabah_kredit.id_nas_krdt

INNERJOIN tpegawai

ON tpinjaman.id_pegawai = tpegawai.id_pegawai

INNERJOIN tjaminan

ON tpinjaman.id_jaminan = tjaminan.id_jaminan;

4.2.2.2 Left Join

DELETE FROM tbkaryawan

WHERE nik =  '2010011236'

Page 7: STRUCTURED QUERY LANGUAGE

Left outer join berfungsi sebagai pemetaan relasi many-to-one (banyak

ke satu), yaitu dimana beberapa record tabel A yang sama dengan satu record

tabel B.

SELECT*FROM ttransaksi

LEFTJOIN tjenis_trans

ON ttransaksi.id_jenis_trans = tjenis_trans.id_jenis_trans;

4.2.2.3 Right Join

Right outer join berfungsi sebagai pemetaan relasi one-to-many (satu ke

banyak), yaitu dimana hanya satu record tabel A yang sama dengan beberapa

record tabel B.

SELECT*FROM ttransaksi

RIGHTJOIN tjenis_trans

ON ttransaksi.id_jenis_trans = tjenis_trans.id_jenis_trans;

4.2.2.4 Union

Union berfungsi sebagai pemetaan relasi many-to-many (banyak ke

banyak), yaitu dimana beberapa record tabel A yang sama dengan satu record

tabel B, dan beberapa record tabel B yang sama dengan satu record tabel A.

SELECT id_nas_tbg,nama, alamat, telepon, jenis_kelamin

FROM tnasabah_tbg

UNION

SELECT id_nas_krdt,nama, alamat, telepon, jenis_kelamin

FROM tnasabah_kredit;

4.2.3 Query Agregation

Fungsi aggregate merupakan fungsi digunakan untuk mengelompokkan

hasil query. Bila terdapat beragam fungsi di perintah query, maka fungsi ini

umumnya akan dilakukan terakhir kali. Fungsi aggregate

antara lain min ( ), max ( ), count( ), sum ( ), avg ( ).

4.2.3.1 Min

Digunakan untuk mencari nilai terkecil dari sekumpulan record.

Page 8: STRUCTURED QUERY LANGUAGE

Contoh:

SELECT MIN(saldo) FROM rekening;

dibatasi dengan WHERE clause sehingga hanya record(-record) tertentu

yang ditelusuri:

SELECT MIN(saldo) FROM rekening

WHERE kode_cabang = ‘BRUS’;

4.2.3.2 Max

Digunakan untuk mencari nilai terbesar dari sekumpulan record.

Contoh:

SELECT MAX(saldo) FROM rekening;

Juga bisa dibatasi dengan WHERE clause:

SELECT MAX(saldo) FROM rekening

WHERE kode_cabang = ‘BRUS’;

4.2.3.3 Count

Digunakan untuk menghitung banyaknya record.

Contoh:

a. SELECT COUNT(*) FROM nasabah;

b. SELECT COUNT(nama_nasabah) FROM nasabah;

c. SELECT COUNT(alamat_nasabah) FROM nasabah;

Juga bisa dibatasi dengan WHERE clause.

Jika kita ingin menghitung banyaknya record yang unik (tidak ada pengulangan),

gunakan DISTINCT:

SELECT COUNT(DISTINCT alamat_nasabah) FROM nasabah; select count(sks) as

jmlsks from mtkul where sks=4;

4.2.3.4 Sum

Digunakan untuk menjumlahkan nilai-nilai dari sekumpulan record.

Contoh:

SELECT SUM(saldo) FROM rekening;

Page 9: STRUCTURED QUERY LANGUAGE

Bisa dibatasi dengan WHERE clause:

SELECT SUM(saldo) FROM rekening

WHERE kode_cabang = ‘BRUS’;

4.2.3.5 Avg

Digunakan untuk menghitung rata-rata nilai dari sekumpulan record.

Contoh:

SELECT AVG(saldo) FROM rekening;

Bisa dibatasi dengan WHERE clause:

SELECT AVG(saldo) FROM rekening WHERE kode_cabang = ‘BRUS’;

4.2.4 Grouping

Grouping adalah perintah yang digunakan mengeleompokan tabel – tabel

berdasarkan kategori yang diinginkan.

4.2.4.1 Group By

4.2.4.2 Having

Fungsi GROUP BY dipergunakan untuk mengelompokkan record-record

pada tabel. Fungsi GROUP by dipergunakan mengikuti operasi agregat pada suatu

perintah.

SELECTCOUNT(id_pinjaman)AS total_peminjam FROM tpinjaman

INNERJOIN tnasabah_kredit

ON tpinjaman.id_nas_krdt = tnasabah_kredit.id_nas_krdt

INNERJOIN tpegawai

ON tpinjaman.id_pegawai = tpegawai.id_pegawai

INNERJOIN tjaminan

ON tpinjaman.id_jaminan = tjaminan.id_jaminan

GROUPBY id_pinjaman;

4.2.4.3 Having

Page 10: STRUCTURED QUERY LANGUAGE

Fungsi HAVING memiliki kesamaan fungsi seperti WHERE. Tetapi

fungsi HAVING dipergunakan bila ada pemanggilan operasi GROUP dalam

query dan operand-nya melibatkan pemanggilan operasi agregat. Jadi fungsi

HAVING dipergunakan mengikuti Fungsi GROUP BY, untuk memberikan suatu

kondisi.

Syntaknya adalah sebagai berikut :

SELECT colulmn_expression FROM table_name     GROUP BY grouping_expression

HAVING roup_condition

Sedangkan contohnya adalah sebagai berikut :

SELECTCOUNT(id_pinjaman)AS total_peminjam FROM tpinjaman

INNERJOIN tnasabah_kredit

ON tpinjaman.id_nas_krdt = tnasabah_kredit.id_nas_krdt

INNERJOIN tpegawai

ON tpinjaman.id_pegawai = tpegawai.id_pegawai

INNERJOIN tjaminan

ON tpinjaman.id_jaminan = tjaminan.id_jaminan

GROUPBY tnasabah_kredit.nama HAVING1;

4.2.5 Fungsi

Macam – macam fungsi pada_SQL antara lain adalah

sebagai berikut :

1. Tanda * 

digunakan untuk memilih semua isi tabel

Misal : select * from namatabel

2. Fungsi WHERE

berfungsi untuk menentukan suatu pilihan atau kondisi

tertentu

Misal

select * from namatabel where namakolom = “kondisi”

3. Fungsi DISTINC

Page 11: STRUCTURED QUERY LANGUAGE

digunakan untuk menghilangakan nilai ganda pada

suatu kolom atau tabel

Contoh : select distinct namakolom from namatabel

4. Operator AND

digunakan untuk memilih nilai yang memiliki kondisi

sama antara kondisi1 dan kondisi2

contoh sintak : select * from namatabel where kondisi1=’..’ AND

kondisi2 = ‘...’

5. Operator OR 

digunakan untuk memilih suatu tabel atau kolom dan menampilkan

nilai jika salah satu kondisi  dari kondisi yang di tentukan memenuhi

Contoh : select * from namatabel where kondisi1=’..’ OR kondisi2 =

‘...’

6. Fungsi NOT

di gunakan untuk memilih suatu nilai pada tabel atau

kolom yang tidak sama dengan kondisi yang telah di

tentukan

Contoh : selesct * from namatabel where namakolom

not = ‘kondisi’

7. Fungsi ORDER BY 

digunakan untuk memilih suatu nilai dari tabel atau kolom dan

mengurutkan data tersebut

Contoh : select namakolom from nama tabel where namakolom = ‘kondisi’ order

by namakolompengurut desc/asc

Page 12: STRUCTURED QUERY LANGUAGE

keterangan : namakolompengurut adalah dasar pengurutan

8. Funsi BETWEEN

fungsi between digunakan untuk memilih nilai di antara

kondisi yang di tentukan

Contoh : select * from namatabel where ‘kondisi’ between

‘kondisi’ – ‘kondisi’

4.3 Pembahasan dan Analisa

Pratikum pada Bab sebelumnya telah menghasilkan rancangan Physical

Data Model dari Sistem Informasi perpustakaan. Hasil rancangan tersebut akan

dituangkan ke dalam perintah – perintah yang ada dalam bahasa basis data SQL.

4.3.1 Analisa Masalah

Hasil Pratikum sebelumnya, telah menghasilkan rancangan Physical Data

Model dari system informasi yang ada di perpustakaan. Tabel yang dihasilkan dari

PDM tersebut antara lain : Tabel Petugas, Tabel Anggota, Tabel Kategori, Tabel

Buku, Tabel Penerbit, Tabel Pengarang, Tabel Peminjaman, Tabel Detail

Peminjaman.

4.3.2 Pembahasan Masalah

Ada beberapa langkah yang dilakukan untuk menerjemahkan tabel –

tabel hasil rancangan PDM ke dalam aplikasi SQLyog Enterpris langkah –

langkah tersebut antara lain sebagai berikut.

4.3.2.1 Membuat Database Perpustakaan

Langkah pertama kita harus terlebih dahulu membuat database yang diberi

nama “perpustakaan”. Pada main menu, carilah pilihan database → create

database.

Page 13: STRUCTURED QUERY LANGUAGE

Gambar 4.1 Database Perpustakaan

4.3.2.2 Membuat Tabel pada Database Perpustakaan

Langkah kedua adalah membuat tabel – tabel hasil rancangan Physical

Data Model Sistem Informasi Perpustakaan:

1. Membuat Tabel

Untuk membuat tabel yang ada pada rancangan PDM, maka pada main

menu pilihlah table → create table. Masukkan values pada bagian Grid dan klik

create table untuk menyertakan nama dari tabel.

Gambar 4.2 Tabel Anggota

Page 14: STRUCTURED QUERY LANGUAGE

4.3.2.3 Melakukan Insert pada Tabel

Untuk menyisipkan value pada kolom pada tabel dilakukan dengan memasukkan

data pada kolom yang ada atau dengan melakukan perintah:

INSERT INTO nama_tabel (nama_kolom) VALUES (‘values1’,’values2’)

Gambar 4.3 Insert Tabel

4.3.2.4 Melakukan Update pada Tabel

Update adalah perintah untuk mempebaharui data yang ada pada tabel.

Update bisa dilakukan dengan secara langsung mengisi data pada tabel atau

menggunakan sintaks update :

UPDATE nama_tabel SET kolom1=’value’,kolom2=’value2’ WHERE kolom=value

Page 15: STRUCTURED QUERY LANGUAGE

Gambar 4.4 Update Tabel

4.3.2.5 Melakukan Delete pada tabel

Melakukan delete pada tabel dapat dilakukan dengan melakukan menekan

tabel yang akan di delete kemudian tekan delete pada keyboard maka akan

muncul kotak dialog seperti ini.

Gambar 4.5 Delete Tabel

Atau dengan menggunakan perintah delete untuk menghapus kolom yang

lebih spesifik :

DELETE FROM nama_tabel WHERE nama_kolom=nama_value

Page 16: STRUCTURED QUERY LANGUAGE

Gambar 4.6 Perintah Delete Tabel

4.3.2.5 Melakukan Select pada Tabel

Select dapat dilakukan dengan cara menggunakan sintaks :

SELECT nama_kolom FROM nama_tabel

Gambar 4.7 Select Tabel

4.3.2.5 Melakukan Query Join

Page 17: STRUCTURED QUERY LANGUAGE

Query Join yang dilakukan pada tabel antara lain : Inner Join, Left Join,

Right Join dan Union.

1. Inner Join

Inner Join dapat dilakukan dengan menggunakan sintaks :

SELECT * FROM tabel_tujuan

INNER JOIN tabel_sumber1

ON tabel_tujuan.nama_kolom = tabel_sumber.nama_kolom

Gambar 4.8 Inner Join Tabel

2. Left Join

Left Join dapat dilakukan dengan menggunakan sintaks :

SELECT*FROM nama_tabel1

LEFT JOIN nama_tabel2

ON nm_tabel1.id_tabel2 = nm_tabel2.id_tabel2

Page 18: STRUCTURED QUERY LANGUAGE

Gambar 4.9 Left Join Tabel

3. Right Join

Inner Join dapat dilakukan dengan menggunakan sintaks :

SELECT*FROM nama_tabel1

RIGHT JOIN nama_tabel2

ON nm_tabel1.id_tabel2 = nm_tabel2.id_tabel2

Gambar 4.9 Right Join Tabel

4. Union

Page 19: STRUCTURED QUERY LANGUAGE

Union Join dapat dilakukan dengan menggunakan sintaks :

SELECT kolom1,kolom2

FROM nama_tabel1

SELECT kolom1,kolom2

FROM nama_tabel2

Gambar 4.9 Union Join Tabel

4.3.2.5 Query Agregation

Perintah Query Agregation yang akan dilakukan pada tabel antara lain

COUNT, SUM, AVERAGE, MAX, MIN. Dalam melakukan query aggregation,

tabel yang akan dipakai adalah tabel kategori yang memiliki kolom numerik.

Gambar 4.10 Tabel Kategori

Page 20: STRUCTURED QUERY LANGUAGE

1. Count

Count dapat dilakukan dengan menggunakan sintaks :

SELECT COUNT(nama_kolom) AS tabel_baru FROM nama_tabel

Gambar 4.11 Count pada Tabel

2. Sum

Sum dapat dilakukan dengan menggunakan sintaks :

SELECT SUM(nama_kolom) AS tb_baru FROM nama_tabel_asli;

Page 21: STRUCTURED QUERY LANGUAGE

Gambar 4.12 Sum pada Tabel

3. Average

Average dapat dilakukan dengan menggunakan sintaks :

SELECT AVG (nama_kolom) AS tb_baru FROM nama_tabel_asli;

Page 22: STRUCTURED QUERY LANGUAGE

Gambar 4.13 Sum pada Tabel

4. Max

Max dapat dilakukan dengan menggunakan sintaks :

SELECT MAX (nama_kolom) AS tb_baru FROM nama_tabel_asli;

Gambar 4.14 Max pada Tabel

5. Min

Min dapat dilakukan dengan menggunakan sintaks :

SELECT MIN (nama_kolom) AS tb_baru FROM nama_tabel_asli;

Page 23: STRUCTURED QUERY LANGUAGE

Gambar 4.14 Min pada Tabel

4.3.2.6 Grouping

Perintah Grouping yang akan dilakukan pada tabel adalah Having dan

Group By.

1. Group By

Group By dapat dilakukan dengan menggunakan sintaks :

SELECT AVG (nama_kolom) FROM (nama_tabel)

GROUP BY (nama_kolom);

Page 24: STRUCTURED QUERY LANGUAGE

Gambar 4.15 Group By pada Tabel

2. Having

Having dapat dilakukan dengan menggunakan sintaks :

SELECT colulmn_expression FROM table_name     GROUP BY grouping_expression

HAVING roup_condition

Page 25: STRUCTURED QUERY LANGUAGE

Gambar 4.16 Having pada Tabel


Top Related