structured query language
Embed Size (px)
DESCRIPTION
STRUCTURED QUERY LANGUAGEsqlteknologi informasiTRANSCRIPT

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

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

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.

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);

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

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'

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.

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;

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

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

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

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.

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

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

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

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

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

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

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

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;

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;

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;

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);

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

Gambar 4.16 Having pada Tabel