Anda di halaman 1dari 58

MODUL PRAKTIKUM

“BASIS DATA I”

LABORATORIUM KOMPUTER

FAKULTAS ILMU KOMPUTER

UNIVERSITAS SRIWIJAYA

2015
Universitas Sriwijaya LEMBAR SISTEM MANAJEMEN
Fakultas Ilmu Komputer PENGESAHAN MODUL MUTU
Laboratorium PRAKTIKUM ISO 9001 : 2008
No. Dokumen …… Tanggal 09 Mei 2016
Revisi 0 Halaman 2 Dari 58

MODUL PRAKTIKUM

Mata Kuliah Praktikum : Basis Data I


Kode Mata Kuliah Praktikum :
SKS :1
Program Studi : Sistem Informasi
Semester : 2 (Genap)

DIBUAT OLEH DISAHKAN OLEH DIKETAHUI OLEH

TIM LABORAN TIM DOSEN SISTEM KEPALA LABORATORIUM


LABORATORIUM FASILKOM INFORMASI FASILKOM UNSRI
UNSRI
Daftar Isi
Daftar Isi .................................................................................................................................... 3

Prakata....................................................................................................................................... 6

1. Pengenalan dan Lingkungan Kerja MySQL ............................................................................ 7

Tujuan .................................................................................................................................... 7

Dasar teori .............................................................................................................................. 7

Tools yang digunakan ............................................................................................................ 8

Praktik.................................................................................................................................... 8

Evaluasi dan Pertanyaan ...................................................................................................... 10

2. Database dan Tabel .............................................................................................................. 12

Tujuan .................................................................................................................................. 12

Dasar teori ............................................................................................................................ 12

Tools yang digunakan .......................................................................................................... 18

Praktik.................................................................................................................................. 18

Evaluasi dan Pertanyaan ...................................................................................................... 19

3. Manipulasi dan Retrieve Data (bagian 1) .............................................................................. 20

Tujuan .................................................................................................................................. 20

Dasar teori ............................................................................................................................ 20

Tools yang digunakan .......................................................................................................... 24

Praktik.................................................................................................................................. 24

Evaluasi dan Pertanyaan ...................................................................................................... 25

Kesimpulan .......................................................................................................................... 26

4. Manipulasi dan Retrieve Data (bagian 2) .............................................................................. 27


Tujuan .................................................................................................................................. 27

Dasar teori ............................................................................................................................ 27

Tools yang digunakan .......................................................................................................... 33

Praktik.................................................................................................................................. 33

Evaluasi dan Pertanyaan ...................................................................................................... 34

Kesimpulan .......................................................................................................................... 34

5. Fungsi Agregat ..................................................................................................................... 36

Tujuan .................................................................................................................................. 36

Dasar teori ............................................................................................................................ 36

Tools yang digunakan .......................................................................................................... 37

Praktik.................................................................................................................................. 38

Evaluasi dan Pertanyaan ...................................................................................................... 39

Kesimpulan .......................................................................................................................... 39

6. Retrieve, Group, Filter dan Pattern Matching ....................................................................... 41

Tujuan .................................................................................................................................. 41

Dasar teori ............................................................................................................................ 41

Tools yang digunakan .......................................................................................................... 43

Praktik.................................................................................................................................. 43

Evaluasi dan Pertanyaan ...................................................................................................... 45

Kesimpulan .......................................................................................................................... 45

7. Relasi Tabel .......................................................................................................................... 46

Tujuan .................................................................................................................................. 46

Dasar teori ............................................................................................................................ 46

Tools yang digunakan .......................................................................................................... 47

4
Praktik.................................................................................................................................. 47

Evaluasi dan Pertanyaan ...................................................................................................... 49

Kesimpulan .......................................................................................................................... 51

8. Join ....................................................................................................................................... 52

Tujuan .................................................................................................................................. 52

Dasar teori ............................................................................................................................ 52

Tools yang digunakan .......................................................................................................... 55

Praktik.................................................................................................................................. 55

Evaluasi dan Pertanyaan ...................................................................................................... 58

Kesimpulan .......................................................................................................................... 58

5
Prakata

Dengan memanjatkan puji syukur kehadirat Allah SWT yang telah melimpahkan
rahmat dan karunia-Nya kepada penyusun, sehingga dapat menyelesaikan buku
panduan praktik Basis Data ini. Sholawat dan salam juga kita curahkan kepada
baginda yang mulia Rosulullah SAW beserta keluarga, sahabat dan pengikutnya
hingga akhir zaman.

Buku ini merupakan salah satu bahan ajar pendukung untuk mata kuliah Basis
Data. Dari buku ini diharapkan mahasiswa dapat dengan mudah mempelajari,
memahami, dan mempraktikkan materi – materi yang telah diajarkan pada kelas
teori mata kuliah Basis Data. Kemudian buku ini diharapkan dapat menjadi
referensi untuk pemecahan permasalahan umum di luar materi perkuliahan.
Sebagian besar isi dari buku ini merupakan rangkuman dari sumber-sumber yang
telah dibuat penulis lain. Penyusun berharap agar buku ini dapat bermanfaat bagi
semua kalangan pembaca. Terima kasih untuk semuanya yang telah memberikan
banyak kritik dan saran serta dukungan dalam penyusunan buku ini.

Palembang, September 2009

Penyusun

6
1. Pengenalan dan Lingkungan Kerja MySQL

Tujuan

Setelah menyelesaikan modul ini, anda diharapkan dapat :


1. Mengenal lingkungan kerja MySQL
2. Mengenal format perintah di MySQL
3. Mengenal perintah-perintah sederhana di MySQL

Dasar teori

MySQL adalah suatu perangkat lunak database relasi (Relational Database


Management System atau RDBMS), seperti halnya ORACLE, Postgresql, MS SQL,
dan sebagainya. MySQL dikembangkan sekitar tahun 1994 oleh sebuah perusahaan
pengembang software dan konsultan database bernama MYSQL AB yang berada di
Swedia. Waktu itu perusahaan tersebut masih bernama TcX DataKonsult AB, dan
tujuan awal dikembangkannya MySQL adalah untuk mengembangkan aplikasi
berbasis web pada client. MySQL menyebut produknya sebagai database open
source terpopuler di dunia. Berdasarkan riset dinyatakan bahwa bahwa di platform
Web, dan baik untuk kategori open source maupun umum, MySQL adalah database
yang paling banyak dipakai. Menurut perusahaan pengembangnya, MySQL telah
terpasang di sekitar 3 juta komputer. Puluhan hingga ratusan ribu situs
mengandalkan MySQL bekerja siang malam memompa data bagi para
pengunjungnya.

Format Perintah

Berikut adalah ketentuan-ketentuan memberi perintah pada MySQL:

• Setiap perintah harus diakhiri dengan tanda titik koma , kecuali untuk
perintah tertentu, misal : quit
• Setiap perintah akan disimpan dalam buffer (memori sementara) untuk
menyimpan histori perintah-perintah yang pernah diberikan.
• Perintah dapat berupa perintah SQL atau perintah khusus MySQL.

7
• Perintah-perintah dalam lingkungan MySQL tidak menerapkan aturan case
sensitive, tetapi case insensitive yaitu perintah bisa dituliskan dalam huruf
besar atau pun huruf kecil.
• Aturan case sensitive diterapkan pada penamaan objek-objek dalam database
seperti nama database atau nama table, namun aturan ini hanya ada dalam
lingkungan Unix dan Linux.

Ada beberapa tanda yang sering muncul di prompt :

Prompt Arti
mysql> Siap menerima perintah baru
-> Menunggu baris berikut untuk perintah yang
lebih dari satu baris
'> Menunggu baris berikut, menunggu penutup
string yang dimulai dengan tanda kutip satu (“'”)
"> Menunggu baris berikut, menunggu penutup
string yang dimulai dengan tanda kutip dua (“"”)
`> Menunggu baris berikutnya, menunggu penutup
identifier yang dimulai dengan tanda backtick
(“`”)

Tools yang digunakan

1. PC
2. MySQL

Praktik

1. Koneksi ke MySQL.
Buka command prompt, masuk ke direktori \AppServ\MySQL\bin, kemudian
ketik :

mysql –u namauser –p (enter)


password : (ketikkan password) (enter)

2. Diskoneksi dari MySQL


Untuk diskoneksi, ketikkan QUIT atau \q

8
mysql> QUIT

3. Ketik perintah berikut :

mysql> SELECT VERSION(), CURRENT_DATE;

4. Ketik perintah di atas (no.3) :


a. dengan huruf kecil semua
b. dengan huruf besar dan kecil

5. Ketik perintah berikut :

mysql> SELECT SIN(PI()/4), (4+1)*5;

6. Ketik perintah berikut :

mysql> SELECT VERSION(); SELECT NOW();

(bandingkan hasilnya dengan no.3 di atas)

7. Ketik perintah berikut :

mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;

8. Ketik perintah berikut :

mysql> SELECT
-> USER()
-> \c

9. Ketik perintah berikut :

mysql> SELECT USER()

Apa yangterjadi ?

Kemudian ketik ( ; ) :
-> ;

Apa yang terjadi ?

9
10. Ketik perintah berikut :

mysql> SHOW DATABASES;

11. Ketik perintah berikut :

mysql> USE test

12. ketik perintah berikut :

mysql> USE coba

13. Ketik perintah berikut :

mysql> CREATE DATABASE


coba; mysql> use coba;
mysql> show tables;

14. ketik perintah berikut :

mysql> CREATE TABLE buku (kodebuku CHAR(5) PRIMARY KEY NOT


NULL, -> judul VARCHAR(25) NOT NULL, pengarang VARCHAR(20),
-> penerbit VARCHAR(15), kategori VARCHAR(15));

15. ketik perintah berikut :


mysql> desc buku;

Evaluasi dan Pertanyaan

1. Tulis semua perintah-perintah SQL percobaan di atas beserta outputnya !


2. Perintah apa yang digunakan untuk masuk ke MySQL yang tidak mempunyai
password ?
3. Apakah perintah-perintah di MySQL bersifat case sensitif ?
4. Apa perbedaan pengetikan lebih dari satu perintah, yang dipisah dengan tanda
koma (,) dan tanda titik koma (;) ? (bandingkan hasil query percobaan 3 dan 6)
5. Bisakah kita melakukan operasi aritmatik dengan menggunakan perintah SQL ?
Berikan contoh yang lain ?
6. Haruskah kita mengetik perintah dalam satu baris ?
7. Bagaimana untuk mengakhiri atau membatalkan suatu perintah ?

10
8. Sebelum membuat tabel, langkah-langkah apa saja yang sebaiknya kita lakukan
? (Berdasarkan percobaan di atas)

Kesimpulan

11
2. Database dan Tabel

Tujuan

Setelah menyelesaikan modul ini, anda diharapkan dapat :


1. Membuat database dan tabel dengan data definition language
2. Mampu memodifikasi tabel

Dasar teori

DDL (Data Definition Language)


DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-
atribut basis data, tabel, atribut(kolom), batasan-batasan terhadap suatu atribut,
serta hubungan antar tabel. Yang termasuk dalam kelompok DDL ini adalah
CREATE, ALTER, dan DROP.

Membuat Database
Syntax : CREATE DATABASE namadatabase;

namadatabase tidak boleh mengandung spasi dan tidak boleh memiliki nama yang
sama antar database. Berikut ini perintah untuk membuat database dengan nama
rental :

Syntax tambahan :

untuk menampilkan daftar nama database yang ada pada mysql menggunakan
perintah :

SHOW DATABASES; seperti berikut ini :

12
Menghapus Database
Syntax : DROP DATABASE namadatabase;

Database yang akan dihapus sesuai dengan namadatabase. Berikut ini perintah
untuk menghapus database dengan nama rental :

Membuat Tabel
Sebelum membuat suatu tabel, terlebih dahulu harus memilih salah satu database
sebagai database aktif yang akan digunakan untuk menyimpan tabel-tabel dengan
menggunakan syntax : USE namadatabase;

Berikut ini perintah untuk menggunakan database dengan nama rental :

Syntax membuat table :

CREATE TABLE namatabel2 ( Field1 TipeData1,Field2 TipeData2);

namatabel tidak boleh mengandung spasi (space). Field1 dan TipeData1 merupakan
nama kolom pertama dan tipe data untuk kolom pertama. Jika ingin membuat tabel
dengan kolom lebih dari satu, maka setelah pendefinisian tipe data sebelumnya
diberikan tanda koma (,). Berikut ini perintah untuk membuat tabel dengan nama
jenisfilm :

Syntax tambahan :

13
Untuk menampilkan daftar nama tabel yang ada pada database yang sedang
aktif/digunakan (dalam hal ini database rental) :

SHOW TABLES; seperti berikut ini :

Untuk menampilkan deskripsi tabel (dalam hal ini jenisfilm) syntaxnya adalah :

DESC namatabel;

Menghapus Tabel
Syntax : DROP TABLE namatabel;

Tabel yang akan dihapus sesuai dengan namatabel, berikut ini perintah untuk
menghapus tabel dengan nama jenisfilm :

Mendefinisikan null/not null


Syntax :

CREATE TABLE namatabel ( Field1 TipeData1 NOT NULL, Field2 TipeData2);

Mendefinisikan Nilai Default


Nilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu kolom
ketika ada penambahan baris baru, sementara nilai pada kolom tersebut tidak diisi
oleh pengguna. Syntax :

CREATE TABLE namatabel (Field1 TipeData1,Field2 TipeData2 DEFAULT nilai);

nilai adalah nilai default dari kolom tersebut.

14
Mendefinisikan Primary Key Pada Tabel
Terdapat tiga cara untuk mendefinisikan primary key. Berikut ini adalah Syntax
mendefinisikan primary key untuk Field1

CREATE TABLE namatabel(Field1 TipeData1 NOT NULL PRIMARY KEY, Field2


TipeData2);

Atau

CREATE TABLE namatabel ( Field1 TipeData1, Field2 TipeData2, PRIMARY


KEY(Field1));

atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARY KEY


(namakolom);

Berikut ini perintah untuk membuat tabel jenisfilm dengan kolom jenis tipe datanya
char(6), harga tipe datanya int dengan mendefinisikan nilai not null dan primary
key untuk kolom jenis serta nilai default untuk kolom harga :

atau

atau

Menghapus Primary Key Pada Tabel


Syntax :

Cara 1 : Jika primary key dibuat dengan menggunakan alter table :

15
ALTER TABLE namatabel DROP CONSTRAINT namaconstraint;

Cara 2 : Jika primary key dibuat melalui create table :

ALTER TABLE namatabel DROP PRIMARY KEY;

Berikut ini perintah yang digunakan untuk menghapus primary key pada tabel
jenisfilm :

Menambah Kolom Baru Pada Tabel


Syntax :

ALTER TABLE namatabel ADD fieldbaru tipe;

namatabel adalah nama tabel yang akan ditambah fieldnya. Fieldbaru adalah nama
kolom yang akan ditambahkan, tipe adalah tipe data dari kolom yang akan
ditambahkan. Berikut ini perintah untuk menambah kolom keterangan dengan tipe
data varchar(25) :

Untuk meletakkan field diawal, tambahkan sintaks


first. Syntax :
alter table pelangan
add column kode char(5) first;

Untuk menyisipkan field setelah field tertentu, tambahkan sintaks


after. Syntax :
alter table pelangan
add column phone char(5) after alamat;

Mengubah Tipe Data atau Lebar Kolom Pada Tabel


Syntax :

ALTER TABLE namatabel MODIFY COLUMN field tipe

16
namatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya. Field
adalah kolom yang akan diubah tipe data atau lebarnya. Tipe adalah tipe data baru
atau tipe data lama dengan lebar kolom yang berbeda. Berikut ini perintah untuk
mengubah tipe data untuk kolom keterangan dengan char(20) :

Mengubah Nama Kolom


Syntax :

ALTER TABLE namatabel CHANGE COLUMN namalamakolom namabarukolom


tipedatanya;

namatabel adalah nama tabel yang akan diubah nama kolomnya, namalamakolom
adalah kolom yang akan diganti namanya, namabarukolom adalah nama baru
kolom, tipedatanya adalah tipe data dari kolom tersebut. Berikut ini perintah untuk
mengubah nama kolom keterangan menjadi ket :

Menghapus Kolom Pada Tabel


Syntax :

ALTER TABLE namatabel DROP COLUMN namakolom;

Berikut ini perintah untuk menghapus kolom ket pada tabel jenisfilm :

Membuat dan Menghapus Index


Index berfungsi mempercepat proses pencarian data dalam suatu tabel. Adanya
index pada suatu field tabel menyebabkan proses pencarian otomatis akan
dilakukan terlebih dahulu ke dalam index, apabila ditemukan baru akan diambilkan
data sesungguhnya dari tabel, apabila tidak ditemukan dalam index, sudah
dipastikan bahwa data tesebut memang tidak ada dalam tabel. Index juga dapat

17
dibuat untuk setiap kolom yang akan dijadikan kriteria tertentu untuk pencarian
data sehingga proses pencariannya akan lebih cepat. Ada perintah untuk membuat
dan menghapus index, tapi tidak ada perintah untuk merubah index.

Perhatikan contoh berikut :

Create index idxnomor on mahasiswa(nim);


Atau
Alter table mahasiswa add index idxnim(nim);

Untuk menghapus index :

Drop index idxnim on mahasiswa;


Atau
Alter table mahasiswa drop index idxnim;

Tools yang digunakan

1. PC
2. MySQL

Praktik

1. Buat sebuah database dengan nama coba !


2. Buat sebuah tabel dengan nama mahasiswa di dalam database coba !

3. Tambahkan sebuah kolom : keterangan (varchar 15), sebagai kolom terakhir !


4. Tambahkan kolom nim (int 11) di awal (sebagai kolom pertama) !

18
5. Sisipkan sebuah kolom dengan nama phone (varchar 15) setelah kolom alamat !
6. Ubah kolom nim menjadi char(11) !
7. Ubah nama kolom phone menjadi telepon (varchar 20) !
8. Hapus kolom keterangan dari tabel !
9. Ganti nama tabel menjadi student!
10. Buat index untuk tabel tersebut !
11. Jadikan nim sebagai primary key !

Evaluasi dan Pertanyaan

1. Tulis semua perintah-perintah SQL percobaan di atas beserta outputnya !


2. Apa kegunaan dari index di tabel ?
3. Apa maksud dari int (11) ?
4. Ketika kita melihat struktur tabel dengan perintah desc, ada kolom Null
yang berisi Yes dan No. Apa maksudnya ?

Kesimpulan

19
3. Manipulasi dan Retrieve Data (bagian 1)

Tujuan

Setelah menyelesaikan modul ini, anda diharapkan dapat :


1. Mengenal data manipulation language dan mampu menggunakannya
2. Mampu mengelola record dan retrieve data

Dasar teori

DML (Data Manipulation Language)


DML adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam
basis data, misalnya untuk pengambilan, penyisipan, pengubahan dan
penghapusan data. Perintah yang termasuk dalah kategori DML adalah : INSERT,
DELETE, UPDATE dan SELECT.
INSERT
Perintah INSERT digunakan untuk menambahkan baris pada suatu
tabel. Terdapat dua cara untuk menambah baris, yaitu :
Cara 1 : Menambah baris dengan mengisi data pada setiap kolom :

INSERT INTO namatabel VALUES (nilai1,nilai2,nilai-n);

Cara 2 : Menambah baris dengan hanya mengisi data pada kolom tertentu :

INSERT INTO namatabel (kolom1,kolom2,kolom-n) VALUES


(nilai1,nilai2,nilai-n);

Berikut ini perintah untuk menambahkan baris pada tabel jenisfilm


: Cara 1 :

Cara 2 :

20
Keterangan :
Jika data bertipe string, date atau time (contoh : action, horor, 2007-11-10)
maka pemberian nilainya diapit dengan tanda petik tunggal (‘horor’) atau
petik ganda (“horor”). Jika data bertipe numerik (2500, 400) maka pemberian
nilainya tidak diapit tanda petik tunggal maupun ganda.

DELETE
Perintah DELETE digunakan untuk menghapus satu baris, baris dengan kondisi
tertentu atau seluruh baris.
Syntax :
DELETE FROM namatabel [WHERE kondisi];

Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan
suatu kondisi tertentu. Berikut ini perintah untuk menghapus baris pada tabel
jenisfilm dengan data sebagai berikut :

Contoh 1 : jika ingin menghapus seluruh baris pada tabel jenisfilm :

Contoh 2 : jika ingin menghapus baris yang memiliki nilai 3000 pada kolom harga
pada tabel jenisfilm maka perintahnya sebagai berikut :

Contoh 3 : jika ingin menghapus baris yang memiliki nilai drama pada kolom jenis
pada tabel jenisfilm maka perintahnya sebagai berikut :

UPDATE
Perintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa
kolom pada suatu tabel.
Syntax :

21
UPDATE namatabel SET kolom1 = nilai1, kolom2 = nilai2 [WHERE kondisi];

Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu
kondisi tertentu. Berikut ini perintah untuk mengubah baris pada tabel jenisfilm
dengan data sebagai berikut :

Contoh 1 : mengubah semua nilai pada kolom harga menjadi 2000 :

Contoh 2 : mengubah nilai pada kolom harga menjadi 2500 dimana nilai pada kolom
jenis adalah action :

SELECT
Perintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat
dihubungkan dengan tabel yang lainnya.
1) Menampilkan data untuk semua kolom menggunakan asterisk
(*) Syntax : SELECT * FROM namatabel;
Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm :

2) Menampilkan data untuk kolom tertentu


Syntax : SELECT kolom1,kolom2,kolom-n FROM namatabel;
Berikut ini perintah untuk menampilkan data pada tabel jenisfilm dengan kolom
yang ditampilkan adalah kolom jenis :

22
3) Menampilkan data dengan kondisi data tertentu dengan klausa
WHERE Syntax : SELECT * FROM namatabel WHERE kondisi;
Berikut ini perintah untuk menampilkan data pada tabel jenisfilm dimana nilai
pada kolom jenis adalah drama :

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE


selain “=” adalah : > (lebih dari), < (kurang dari), < > (tidak sama dengan), >=
(lebih dari atau sama dengan), <= (kurang dari atau sama dengan). Adapun
operator lain, yaitu : AND, OR, NOT, BETWEEN-AND, IN dan LIKE. Berikut ini
data yang ada pada tabel jenisfilm :

Contoh 1 : perintah untuk menampilkan data pada tabel jenisfilm dimana nilai
harga berkisar dari 1000 hingga 3000 :

atau

Contoh 2 : perintah untuk menampilkan data pada tabel jenisfilm dimana nilai
harga sama dengan 1000 atau 3000 :

23
atau

Contoh 3 : perintah untuk menampilkan data pada tabel jenisfilm dimana nilai
pada kolom jenis tidak sama dengan action :

atau

Tools yang digunakan

1. PC
2. MySQL

Praktik

1. Buat sebuah database dengan nama coba


2. Buat sebuah tabel dengan nama pet di dalam database coba

24
3. Isi data ke dalam tabel pet seperti berikut :

3. Tampilkan semua isi/record tabel pet !


4. Ubah data tanggal lahir hewan yang bernama Bowser menjadi :
1979-08-31 !
5. Tampilkan satu baris / record data yang telah diubah tadi yaitu record
dengan nama Bowser saja !
6. Hapus hewan yang bernama Chirpy !
7. Tampilkan record atau data yang tanggal kelahirannya lebih dari atau
sama dengan 1998-1-1 !
8. Tampilkan semua hewan dengan spesis anjing dan anjing tersebut
berjenis kelamin betina !
9. Dengan satu perintah select, tampilkan semua hewan dengan spesis ular atau
spesis burung (dalam satu tabel ada hewan spesies ular dan burung saja)!
10. Dengan satu perintah select, tampilkan semua hewan yang berspesis kucing
dengan kelamin laki-laki atau hewan yang berspesis anjing dengan kelamin
betina (tampilkan dalam satu tabel)!

Evaluasi dan Pertanyaan


1. Tulis semua perintah-perintah SQL percobaan di atas beserta outputnya !
2. Beri kesimpulan Anda !

25
Kesimpulan

26
4. Manipulasi dan Retrieve Data (bagian 2)

Tujuan

Setelah menyelesaikan modul ini, anda diharapkan dapat :


1. Mencari dan menampilkan data dengan perintah select
2. Mengkombinasikan perintah select dengan perintah lainnya

Dasar teori

Memberikan nama lain pada kolom


Syntax : SELECT namakolomlama AS namakolombaru FROM namatabel;

Berikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi
jenis_film pada tabel jenisfilm :

Menggunakan alias untuk nama tabel


Syntax : SELECT nmalias.jenis, nmalias.harga FROM namatabel nmalias;

Berikut ini perintah untuk memberikan alias pada tabel jenisfilm :

Menampilkan data lebih dari dua tabel


Syntax : SELECT * from namatabel1,namatabel2,namatabel-n;

Isi tabel jenisfilm :

27
Isi tabel film :

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

Nested Queries / Subquery (IN, NOT IN, EXISTS, NOT EXISTS)


Subquery berarti query di dalam query. Dengan menggunakan subquery, hasil dari
query akan menjadi bagian dari query di atasnya.

Subquery terletak di dalam klausa WHERE atau HAVING. Pada klausa WHERE,
subquery digunakan untuk memilih baris-baris tertentu yang kemudian digunakan
oleh query. Sedangkan pada klausa HAVING, subquery digunakan untuk memilih
kelompok baris yang kemudian digunakan oleh query.

28
Contoh 1 : perintah untuk menampilkan data pada tabel jenisfilm yang mana data
pada kolom jenis-nya tercantum pada tabel film menggunakan IN :

atau menggunakan EXISTS

Pada contoh di atas :

SELECT jenis FROM film

disebut subquery, sedangkan :

SELECT * FROM jenisfilm

berkedudukan sebagai query. Perhatikan, terdapat data jenis dan harga pada tabel
jenisfilm yang tidak ditampilkan. Hal ini disebabkan data pada kolom jenis tidak
terdapat pada kolom jenis di tabel film.

Contoh 2 : perintah untuk menampilkan data pada tabel jenisfilm yang mana data
pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN :

atau menggunakan NOT EXISTS

29
Operator comparison ANY dan ALL
a. Operator ANY digunakan berkaitan dengan subquery. Operator ini menghasilkan
TRUE (benar) jika paling tidak salah satu perbandingan dengan hasil subquery
menghasilkan nilai TRUE. Ilustrasinya :
Gaji > ANY (S)

Jika subquery S menghasilkan G1, G2, ..., Gn, maka kondisi di atas identik

dengan (gaji > G1) OR (gaji > G2) OR ... OR (gaji > Gn)

Contoh : perintah untuk menampilkan semua data jenisfilm yang harganya


bukan yang terkecil :

b. Operator ALL digunakan untuk melakukan perbandingan dengan subquery.


Kondisi dengan ALL menghasilkan nilai TRUE (benar) jika subquery tidak
menghasilkan apapun atau jika perbandingan menghasilkan TRUE untuk setiap
nilai query terhadap hasil subquery.
Contoh : perintah untuk menampilkan data jenisfilm yang harganya paling
tinggi :

30
ORDER BY
Klausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu
sesuai dengan tipe data yang dimiliki. Contoh : perintah untuk mengurutkan data
film berdasarkan kolom judul :

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

atau tambahkan DESC untuk pengurutan secara descending (menurun)

DISTINCT
Distinct adalah kata kunci ini untuk menghilangan duplikasi.
Contoh :
SELECT DISTINCT kota FROM Pelanggan

Dengan perintah di atas maka nama kota yang sama hanya akan ditampilkan satu
saja.

31
UNION, INTERSECT dan EXCEPT
a. UNION
UNION merupakan operator yang digunakan untuk menggabungkan hasil
query, dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel
yang akan ditampilkan datanya harus sama. Berikut ini perintah untuk
memperoleh data pada tabel film dimana jenisnya action dan horor :

Perintah di atas identik dengan :

Namun tidak semua penggabungan dapat dilakukan dengan OR, yaitu jika
bekerja pada dua tabel atau lebih.

b. INTERSECT
INTERSECT merupakan operator yang digunakan untuk memperoleh data dari
dua buah query dimana data yang ditampilkan adalah yang memenuhi kedua
query tersebut dengan ketentuan jumlah, nama dan tipe kolom dari masing-
masing tabel yang akan ditampilkan datanya harus sama.

Syntax : SELECT * FROM namatabel1 INTERSECT SELECT * FROM namatabel2

Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya


dapat menggunakan operator IN seperti contoh 1 pada bagian Nested Queries.

c. EXCEPT / Set Difference


EXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua
buah query dimana data yang ditampilkan adalah data yang ada pada hasil query

32
1 dan tidak terdapat pada data dari hasil query 2 dengan ketentuan jumlah, nama
dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus
sama.

Syntax : SELECT * FROM namatabel1 EXCEPT SELECT * FROM namatabel2

Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat
menggunakan operator NOT IN seperti contoh 2 pada bagian Nested Queries.

Tools yang digunakan

1. PC
2. MySQL

Praktik

1. Buat tabel pegawai sebagai berikut :

2. Isi data tabel (data dapat dilihat pada halaman terakhir)!


3. Tampilkan semua kolom di tabel !
4. Tampilkan kolom idpegawai, namabelakang dan gaji saja !
5. Tampilkan kolom idpegawai, namabelakang, gaji, tunjangan dan sebuah kolom
baru yaitu tunjangan+gaji yang berisi jumlah tunjangan dan gaji !
6. Ubah tunjangan menjadi NULL untuk pegawai dengan idpegawai = E003.
Kemudian lakukan kembali percobaan 5.
7. Seperti percobaan 5, tampilkan kolom idpegawai, namabelakang, gaji,
tunjangan dan sebuah kolom baru (gunakan alias) yaitu total_pendapatan yang
berisi jumlah tunjangan dan gaji !

33
8. Tambahkan record baru dengan value : E006,lincoln, burrows, linc@yahoo.com,
085275384544, 2008-09-01, L0006, 1750000, NULL, ex, coml.
9. Untuk pegawai yang ber-id E004 dan E005 ubah idmanajernya menjadi al !
10. Sekarang tampilkan kolom idmanajer saja !
11. Dari percobaan 10, terdapat 3 idmanajer yang sama dengan total record 6,
sekarang tampilkan idmanajer tanpa duplikasi idmanajer sehingga akan tampil
4 record dengan idmanajer yang berbeda !
12. Tampilkan pegawai yang gajinya antara 1750000 - 1250000 !
13. Tampilkan tabel pegawai yang terurut berdasarkan namabelakang (dari a ke z)!
14. Tampilkan tabel pegawai yang terurut berdasarkan namadepan dengan urutan
terbalik (dari z ke a)!

Evaluasi dan Pertanyaan


1. Tulis semua perintah-perintah SQL percobaan di atas beserta outputnya !
2. Beri kesimpulan Anda !

Kesimpulan

34
Data Tabel Awal

35
5. Fungsi Agregat

Tujuan

Setelah menyelesaikan modul ini, anda diharapkan dapat :


1. Mahir menggunakan perintah select untuk retrieve data
2. Mampu menggunakan fungsi agregat

Dasar teori

Aggregate Functions (COUNT, SUM, AVG, MIN, MAX)


a. COUNT
Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada
tabel. Contoh : perintah untuk menghitung jumlah baris kolom jenis pada tabel
jenisfilm :

b. SUM
Perintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada
tabel. Contoh : perintah untuk menghitung jumlah nilai kolom harga pada tabel
jenisfilm :

36
c. AVG
Perintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom
pada tabel. Contoh : perintah untuk menghitung rata-rata dari kolom harga pada
tabel jenisfilm :

d. MIN
Perintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom
pada tabel. Contoh : perintah untuk menampilkan nilai terkecil dari kolom harga
pada tabel jenisfilm :

e. MAX
Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom
pada tabel. Contoh : perintah untuk menampilkan nilai terbesar dari kolom
harga pada tabel jenisfilm :

Tools yang digunakan

1. PC
2. MySQL

37
Praktik

1. Gunakan tabel pegawai (lihat hal. Terakhir), tampilkan pegawai yang


gajinya 2.000.000, 1.250.000 dan 1.500.000 dalam satu perintah select !
2. Tampilkan pegawai yang gajinya bukan 2.000.000 dan 1.250.000 !
3. Tampilkan pegawai yang tunjangannya NULL !
4. Tampilkan pegawai yang tunjangannya tidak NULL !
5. Tampilkan/hitung jumlah baris/record tabel pegawai !
6. Tampilkan/hitung jumlah total gaji di tabel pegawai !
7. Tampilkan/hitung rata-rata gaji pegawai !
8. Tampilkan gaji terkecil !
9. Tampilkan gaji terbesar !
10. Gunakan tabel pet (lihat hal. Terakhir), Tampilkan jumlah hewan yang dimiliki
setiap owner. Tampilan setelah SQL dijalankan :

11. Tampilkan jumlah hewan berdasarkan spesies !

12. Tampilkan jumlah hewan berdasarkan jenis kelamin !


+------ +---------- +
| sex | COUNT(*) |
+------ +---------- +
| NULL | 1|
| f | 4|
| m | 4|
+------ +---------- +

13. Tampilkan jumlah hewan berdasarkan spesies dan jenis kelamin !


+--------- +------ +---------- +
| species | sex | COUNT(*) |
+--------- +------ +---------- +
| bird | NULL | 1|
| bird | f | 1|
| cat | f | 1|
| cat | m | 1|
| dog | f | 1|

38
| dog | m | 2|
| hamster | f | 1|
| snake | m | 1|
+--------- +------ +---------- +

14. Tampilkan jumlah hewan berdasarkan spesis (cat dan dog saja) dan jenis
kelamin !
+--------- +------ +---------- +
| species | sex | COUNT(*) |
+--------- +------ +---------- +
| cat | f | 1|
| cat | m | 1|
| dog | f | 1|
| dog | m | 2|
+--------- +------ +---------- +

15. Tampilkan jumlah hewan berdasarkan jenis kelamin yang diketahui saja !
+--------- +------ +---------- +
| species | sex | COUNT(*) |
+--------- +------ +---------- +
| bird | f | 1|
| cat | f | 1|
| cat | m | 1|
| dog | f | 1|
| dog | m | 2|
| hamster | f | 1|
| snake | m | 1|
+--------- +------ +---------- +

Evaluasi dan Pertanyaan


1. Tulis semua perintah-perintah SQL percobaan di atas beserta outputnya !
2. Beri kesimpulan Anda !

Kesimpulan

39
Data Tabel Pegawai

Data Tabel Pet

Load data dari file txt :

mysql> LOAD DATA LOCAL INFILE 'c:/tabel/barang.txt' INTO TABLE barang;

40
6. Retrieve, Group, Filter dan Pattern Matching

Tujuan

Setelah melakukan percobaan ini, anda diharapkan dapat :


1. Mampu meretrieve data dan mengelompokkannya
2. Mampu menampilkan data dengan pencocokan pola/karakter

Dasar teori

SQL dengan GROUP BY dan HAVING


Klausa GROUP BY digunakan untuk melakukan pengelompokan data. Sebagai
contoh, terdapat tabel film dengan data sebagai berikut :

akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang
dikelompokkan berdasarkan kolom jenis pada tabel film :

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY.
Kelompok yang memenuhi HAVING saja yang akan dihasilkan. Contoh : perintah
untuk menampilkan data hanya kolom jenis yang dikelompokkan berdasarkan

41
kolom jenis, dimana jumlah film berdasarkan kelompoknya harus lebih besar dari
satu pada tabel film :

Untuk efesiensi harus dimengerti urutan pemilihan Where, Group By dan Having

• Where dipakai untuk memfilter baris-baris dari operasi-operasi yang


dinyatakan oleh perintah From
• Group By dipakai untuk mengelompokkan hasil dari Where
• Having dipakai untuk memfilter baris-baris dari hasil pengelompokan

Pattern Matching (Pencocokan Pola/Karakter)

Fungsi string digunakan untuk menampilkan data yang didasarkan pada pencarian
dengan karakter. Pada pencarian data digunakan sintak LIKE, pada dasarnya sintak
LIKE hampir sama dengan sintak = , bedanya kalau = maka pencarian karakater
harus sesuai dengan kata yang kita buat tetapi dengan menggunakan LIKE
karakater yang akan kita tampilkan tidak harus lengkap hanya dengan menuliskan
salah satu huruf atau kata saja, maka semua data yang kita cari akan ditampilkan.

SQL mempunyai 2 simbol khusus yang dipakai untuk pencocokan pola :


• % : untuk mencocokkan karakter sebelum atau sesudah tanda %;
• _ : mencari karakter sebanyak jumlah tanda _.

LIKE ‘%Glasgow%’ artinya mencari data pada kolom tertentu yang


mengandung karakter ‘Glasgow’.

Bentuk umum :

SELECT * FROM nama_tabel WHERE nama_kolom LIKE 'char%';


SELECT * FROM nama_tabel WHERE nama_kolom LIKE '%char';
SELECT * FROM nama_tabel WHERE nama_kolom LIKE '%char%';
SELECT * FROM nama_tabel WHERE nama_kolom NOT LIKE
'%char%'; SELECT * FROM nama_tabel WHERE nama_kolom LIKE '_';

42
Tools yang digunakan

1. PC
2. MySQL

Praktik

1. Buat tabel penjualan

2. Isi data

3. Buat SQL sehingga tampilannya seperti berikut :

4. Buat SQL sehingga tampilannya seperti berikut (gunakan HAVING) :

43
5. Buat tabel barang dan isi datanya :
kodebrg namabrg hargamodal hargabeli Stok
B01 Sabun 2000 2500 15
B02 Pasta Gigi 2500 3000 15
B03 Sikat Gigi 3000 4000 10
B04 Rokok 6000 7000 30
B05 Korek Api 500 600 10

6. Buat SQL sehingga tampilannya :


kodebrg namabrg hargamodal hargabeli Stok
B02 Pasta Gigi 2500 3000 15
B03 Sikat Gigi 3000 4000 10
B05 Korek Api 500 600 10

7. Buat SQL sehingga tampilannya :


kodebrg namabrg hargamodal hargabeli Stok
B01 Sabun 2000 2500 15
B03 Sikat Gigi 3000 4000 10

8. Buat SQL sehingga tampilannya :


kodebrg namabrg hargamodal hargabeli Stok
B01 Sabun 2000 2500 15
B02 Pasta Gigi 2500 3000 15
B03 Sikat Gigi 3000 4000 10
B05 Korek Api 500 600 10

9. Buat SQL sehingga tampilannya :


kodebrg namabrg hargamodal hargabeli Stok
B04 Rokok 6000 7000 30

10. Buat SQL sehingga tampilannya :


kodebrg namabrg hargamodal hargabeli Stok
B01 Sabun 2000 2500 15
B04 Rokok 6000 7000 30

44
Evaluasi dan Pertanyaan
1. Tulis semua perintah-perintah SQL percobaan di atas beserta outputnya !
2. Beri kesimpulan Anda !

Kesimpulan

45
7. Relasi Tabel

Tujuan

Setelah menyelesaikan modul ini, anda diharapkan dapat :


1. Membuat relasi tabel
2. Membuktikan integritas data dengan tabel yang ter-relasi

Dasar teori

Relasional Database dan RDBMS


Relational Database sebenarnya adalah salah satu konsep penyimpanan data,
sebelum konsep database relasional muncul sebenarnya sudah ada dua model
database yaitu Network Database dan Hierarchie Database. Dalam database
relasional, data disimpan dalam bentuk relasi atau tabel dua dimensi, dan antar
tabel satu dengan tabel lainnya terdapat hubungan atau relationship, sehingga
sering kita baca di berbagai literatur, database didefinisikan sebagai “kumpulan dari
sejumlah tabel yang saling hubungan atau keterkaitan”. Nah, kumpulan dari data
yang diorganisasikan sebagai tabel tadi disimpan dalam bentuk data elektronik di
dalam hardisk komputer. Untuk membuat struktur tabel, mengisi data ke tabel,
mengubah data jika diperlukan dan menghapus data dari tabel diperlukan software.
Software yang digunakan membuat tabel, isi data, ubah data dan hapus data
disebut Relational Database Management System atau dikenal dengan singkatan
RDBMS sedangkan perintah yang digunakan untuk membuat tabel, isi, ubah dan
hapus data disebut perintah SQL yang merupakan singkatan dari Structure Query
Language. Jadi, setiap software RDBMS pasti bisa digunakan untuk menjalankan
perintah SQL.
Sebenarnya fungsi RDBMS bukan cuma buat tabel, isi data, ubah dan hapus data,
untuk manajemen data dalam skala besar dan agar bisa mendukung proses bisnis
yang kontinyu dan real time. Suatu RDBMS dituntut untuk mempunyai
kemampuan manajemen user dan keamanan data, backup dan recovery data serta
kemampuan lainnya yang berkaitan dengan kecepatan pemrosesan data
(performance).

46
Primary key adalah suatu field atau kombinasi field yang secara unik
mengidentifikasi setiap record di dalam tabel. Contoh NIM yang terdapat pada
tabel mahasiswa.
Foreign key adalah primary key pada suatu tabel yang di masukkan pada tabel lain
dan dijadikan salah satu key pada tabel tersebut
References menunjukkan bahwa foreign key di suatu tabel merupakan key pada
tabel lain.

Pada perubahan suatu record baik itu update atau delete, dapat diikuti dengan kata
: cascade, restrict atau set null. Kita bisa atur sesuai kebutuhan.

Contoh :
- on update CASCADE on delete RESTRICT
- on update RESTRICT on delete SET NULL

Tools yang digunakan

1. PC
2. MySQL

Praktik

1. Buat sebuah database dengan nama Akademik.


2. Buat tabel mahasiswa dengan tipe innodb

47
3. Buat tabel dosen_pembimbing dengan tipe innodb dan relasikan ke tabel
mahasiswa dengan mengambil key nim dari tabel mahasiswa sebagai foreign key di
tabel dosen_pembimbing

4. Isi data di tabel seperti data berikut

Note : untuk mengisi data yang fieldnya AUTO_INCRMENT maka sebutkan


NULL untuk field tersebut.

5. Kemudian update satu record di tabel mahasiswa

48
6. Hapus sebuah record di tabel mahasiswa

Evaluasi dan Pertanyaan

1. Apa yang terjadi jika sintak pada langkah ke 3 (baris sintak terkahir) diubah
menjadi on update cascade on delete restrict ?
2. Apa yang terjadi jika sintak pada langkah ke 3 (baris sintak terkahir) diubah
menjadi on update cascade on delete set null ?

49
3. Buat sebuah database baru dengan nama toko. Buat 3 buah tabel di dalam
database tersebut, yaitu tabel produk, pelanggan, dan produk_order.

Tabel Produk

Tabel Pelanggan

Tabel Produk_Order

Buat relasi untuk tabel-tabel di atas dan buktikan relasi tersebut dengan melakukan
update atau delete terhadap suatu tabel berpengaruh terhadap tabel lainnya!

50
Kesimpulan

51
8. Join

Tujuan

Setelah menyelesaikan modul ini, anda diharapkan dapat :


1. Mengenal beberapa operasi join
2. Mampu melakukan operasi join beberapa tabel

Dasar teori

Operasi Join
Join merupakan operasi yang digunakan untuk menggabungkan dua tabel atau
lebih dengan hasil berupa gabungan dari kolom-kolom yang berasal dari tabel-tabel
tersebut. Pada join sederhana, tabel-tabel digabungkan dan didasarkan pada
pencocokan antara kolom pada tabel yang berbeda. Berikut ini perintah untuk
menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm :

Pada contoh di atas, jenisfilm.jenis=film.jenis merupakan kondisi untuk


mencocokkan data antara kolom jenis milik tabel jenisfilm dan film.

a. Inner Join
Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data
sesuai dengan syarat dibelakang on (tidak boleh null), dengan kata lain semua
data dari tabel kiri mendapat pasangan data dari tabel sebelah kanan. Berikut
ini perintah untuk menampilkan data dari tabel jenisfilm dan film dengan
syarat berdasarkan kolom jenis :

52
b. Left Join
Left join digunakan untuk menampilkan semua data dari tabel sebelah kiri
perintah left join beserta pasangannya dari tabel sebelah kanan. Meskipun
terdapat data dari sebelah kiri tidak memiliki pasangan, tetap akan
ditampilkan dengan pasangannya berupa nilai NULL.

c. Right Join
Right join digunakan untuk menampilkan semua data dari tabel sebelah kanan
perintah right join beserta pasangannya dari tabel sebelah kiri. Meskipun
terdapat data dari sebelah kanan tidak memiliki pasangan, tetap akan
ditampilkan dengan pasangannya berupa nilai NULL.

d. Natural Join

53
Natural join digunakan untuk menampilkan semua data dari dua tabel dimana
jika terdapat kolom yang sama, maka yang akan ditampilkan hanya salah
satunya saja, yaitu kolom dari tabel sebelah kiri perintah natural join.

1) Natural Left Join


Natural left join digunakan untuk menampilkan semua data dari tabel
sebelah kiri perintah natural left join beserta pasangannya dari tabel
sebelah kanan. Meskipun terdapat data dari sebelah kiri tidak memiliki
pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai
NULL.

2) Natural Right Join


Natural right join digunakan untuk menampilkan semua data dari tabel
sebelah kanan perintah natural right join beserta pasangannya dari tabel
sebelah kiri. Meskipun terdapat data dari sebelah kanan tidak memiliki
pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai
NULL.

54
Tools yang digunakan

1. PC
2. MySQL

Praktik
1. Buat sebuah database dengan nama sewamobil
2. Buat tabel mobil dan isi datanya

3. Buat tabel pelanggan dan isi datanya

55
4. Buat tabel sewa dan isi datanya

56
5. Buat query sehingga didapat tabel seperti berikut :

6. Buat query sehingga didapat tabel seperti berikut :

7. Buat query sehingga didapat tabel seperti berikut :

8. Buat query sehingga didapat tabel seperti berikut :

57
Evaluasi dan Pertanyaan
1. Tulis sintaks sql untuk mendapatkan tabel pada no 5, 6, 7 dan 8 !
2. Apa kesimpulan anda !

Kesimpulan

58

Anda mungkin juga menyukai