Anda di halaman 1dari 38

LAPORAN PRAKTIKUM SISTEM BASIS DATA

STRUCTURED QUERY LANGUAGE (SQL)


STUDY KASUS

Dosen Pengampu :
Ngurah Agus Sanjaya ER, S.Kom. , M.Kom
Asisten
1008605002 I Wayan Adi Juliawan Pawana
1008605015 I Nyoman Tri Anindia Putra

Nama Mahasiswa : Fajar Avianto


Nim Mahasiswa

: 1108605019

Kelompok

: Kelompok 3

JURUSAN ILMU KOMPUTER


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS UDAYANA
2013

PENDAHULUAN
Latar Belakang
Dalam pengunaan database ada beberapa query-query yang
digunakan untuk mengeksekusi suatu database, baik itu membuat,
mengubah, menghapus maupun menampilkan rekord tabel dari
suatu database. Utuk menggunakan query-query tersebut kita harus
mengetahui Structured Query Laguange (SQL)terlebih dahulu. Dalam
kehidupan nyata kita terkadang menggunakan beberapa operatoroperator atau fungsi tambahan dalam melakukan input atau update
data. Selain itu juga dalam menampilkan data secara spesifik seperti
yang kita inginkan, kita harus menggunakan bantuan operator dan
fungsi tersebut.
Salah satunya adalah Basis data, Basis data merupakan
kumpulan informasi yang disimpan di dalam komputer secara
sistematik sehingga dapat diperiksa menggunakan suatu program
komputer untuk memperoleh informasi dari basis data tersebut.
Dengan didukung perkembangan teknologi, kesulitan tersebut dapat
diatasi dengan melalui MySQL. Dengan MySQL ini kita dapat
mengubah sebuah tabel dengan menggunakan Structured Query
Language (SQL). Pada pembahasan modul ini membahas tentang
Studi Kasus yang diperuntukkan untuk mahasiswa.
Tujuan Praktikum

Mahasiswa dapat memahami sintaks perintah pada


MySQL yang telah dipelajari pada sebelumnya dan dapat
mengimplementasikan secara nyata pada studi kasus..

Teori

STRUCTURED QUERY LANGUAGE (SQL)


SELECT DENGAN OPERATOR PERBANDINGAN,
LOGIKA DAN CLAUSA LIKE
1. OPERATOR PERBANDINGAN
Berikut adalah beberapa operator perbandingan yang digunakan
pada sintax mysql:
a. =, >, <, >=, <=, <>
Penjelasan:
Nama
=
>
<
>=
<=
<>

Deskripsi
Sama dengan
Lebih besar
Lebih kecil
Lebih besar atau
dengan
Lebih
kecil
atau
dengan
Tidak sama dengan

sama
sama

Format penulisan:
SELECT [nama kolom1], [nama kolom2], dst
FROM [nama tabel]
WHERE [nama kolom] [operator perbandingan]
[nilai]

Contoh:
table_buku
ISBN Judul
1111 Dunia Sophie
2222 The Lost Symbol
3333 A Morcking Bird

Jml_hal
765
867
685

harga
10000
10000
10000

penerbit
Mizan
Gramedia
Gramedia

4444
5555

The Secret
Piano di Tepi Pantai

687
859

11000
10000

Gramedia
Andi

a.
SELECT judul, harga FROM tabel_buku
WHERE harga <> 10000;

Output:
Judul
The Secret

Harga
11000

b.
SELECT * FROM tabel_buku WHERE harga = 10000;

Output:
ISBN judul
1111 Dunia Sophie
2222 The Lost Symbol
3333 A Morcking Bird
5555 Piano di Tepi Pantai

Jml_hal
765
867
685
859

harga
10000
10000
10000
10000

penerbit
Mizan
Gramedia
Gramedia
Andi

b. BETWEEN
Melakukan select berdasarkan rentang nilai tertentu.
Format Penulisan:

SELECT [nama kolom1], [nama kolom2], dst


FROM [nama tabel]
WHERE [nama kolom] BETWEEN [nilai1] AND
[nilai2]

Contoh:
table_buku

ISBN
1111
2222
3333
4444
5555

judul
Dunia Sophie
The Lost Symbol
A Morcking Bird
The Secret
Piano di Tepi Pantai

Jml_hal
765
867
685
687
859

harga
10000
10000
10000
11000
10000

penerbit
Mizan
Gramedia
Gramedia
Gramedia
Andi

SELECT * FROM tabel_buku WHERE harga BETWEEN 9000 AND


11000;

Output:
ISBN judul
1111 Dunia Sophie
2222 The Lost Symbol
4444 The Secret

Jml_hal
765
867
687

harga
10000
10000
11000

penerbit
Mizan
Gramedia
Gramedia

2. OPERATOR LOGIKA
Berikut adalah beberapa operator logika yang digunakan
pada sintax mysql:
AND, OR, XOR
Contoh:
table_buku
ISBN judul
1111 Dunia Sophie
2222 The Lost Symbol
3333 A Morcking Bird
4444 The Secret
5555 Piano di Tepi Pantai

Jml_hal
765
867
685
687
859

harga
10000
10000
10000
11000
10000

penerbit
Mizan
Gramedia
Gramedia
Gramedia
Andi

1.

SELECT * FROM tabel_buku WHERE harga = 10000


AND penerbit = gramedia;
Output:
ISBN judul
2222 The Lost Symbol
3333 A Morcking Bird

Jml_hal
867
685

harga
10000
10000

penerbit
Gramedia
Gramedia

2.

SELECT * FROM tabel_buku WHERE harga = 10000


OR penerbit = gramedia;

Output:
ISBN judul
1111 Dunia Sophie
2222 The Lost Symbol
3333 A Morcking Bird
5555 Piano di Tepi Pantai

Jml_hal
765
867
685
859

harga
10000
10000
10000
10000

penerbit
Mizan
Gramedia
Gramedia
Andi

3.

SELECT * FROM tabel_buku WHERE harga = 10000


XOR penerbit = gramedia;

Output:
ISBN judul
1111 Dunia Sophie
2222 The Lost Symbol
3333 A Morcking Bird
5555 Piano di Tepi Pantai

Jml_hal
765
867
685
859

harga
10000
10000
10000
10000

penerbit
Mizan
Gramedia
Gramedia
Andi

3. Clausa Like
Berikut adalah beberapa klausa yang digunakan pada
sintax mysql: % dan _
Penjelasan:
Nama
%
_

Deskripsi
Mencocokkan dengan berapapun jumlah karakter
Mencocokkan hanya dengan satu karakter

Penggunaan LIKE:
Penggunaan

Deskripsi

Prak%
%Prak
%Prak%
Prak_
_Prak
_Prak_

Mencari string yang diawali dengan karakter


Prak
Mencari string yang diakhiri dengan karakter
Prak
Mencari string yang mengandung karakter Prak
Mencari string yang diawali dengan karakter
Prak dan diakhiri 1 karakter
Mencari string yang diakhiri dengan karakter
Prak dan diawali 1 karakter
Mencari string yang mengandung karakter Prak
yang diawali dan diakhiri dengan 1 karakter

Format Penulisan:

SELECT [nama kolom1], [nama kolom2], dst


FROM [nama tabel]
WHERE [nama kolom] LIKE [klausa LIKE]

Contoh:
table_buku
ISBN judul
1111 Dunia Sophie
2222 The Lost Symbol
3333 A Morcking Bird
4444 The Secret
5555 Piano di Tepi Pantai

Jml_hal
765
867
685
687
859

harga
10000
10000
10000
11000
10000

penerbit
Mizan
Gramedia
Gramedia
Gramedia
Andi

SELECT * FROM tabel_buku WHERE judul LIKE


Worl%;

Output:
ISBN judul
1111 Dunia Sophie
4444 The Secret

Jml_hal
765
687

harga
10000
11000

penerbit
Mizan
Gramedia

STRUCTURED QUERY LANGUAGE (SQL)


SELECT, ORDER BY, ALIASING, KALKULASI FIELD
DAN CLAUSA BETWEEN
Data yang diambil dari satu atau beberapa table kadang
membutuhkan pengurutan, baik itu menaik maupun menurun.
Perintah SQL yang memungkinkan untuk mengurutkan data
menggunakan ORDER BY. Selain pengurutan data, terkadang
dibutuhkan suatu field baru yang merupakan hasil perhitungan dari
field-field lainnya. Field hasil perhitungan tersebut disebut dengan
field kalkulasi. Pengambilan data kadang-kadang juga dilakukan pada
field tertentu, misalnya dari tahun 2000 sampai tahun 2002 dan lain-

lain. Pengambilan data seperti itu bias dengan mudah dilakukan


dengan menggunakan perintah BETWEEN.
1. ORDER BY
Merupakan perintah yang digunakan untuk mengurutkan
data berdasarkan field tertentu.
Sintaks untuk menambahkan record:
SELECT <`field1`, `field2`, , `fieldn`>
FROM <`table name`>
[WHERE expression]
ORDER BY <`field1` [ASC/DESC], `fieldn` [ASC/DESC]>
[LIMIT a,b]

Perintah ORDER BY akan mengurutkan data berdasarkan


field tertentu. Pengurutan bisa dilakukan berdasarkan satu atau
beberapa field. Untuk setiap field tersebut, bisa diurutkan menaik
ASC ataupun menurun DESC. Penggunaan perintah ORDER BY
tanpa kata kunci ASC/DESC akan dianggap sebagai ASC(menaik).
Misalnya terdapat table Barang sebagai berikut:
Field
Tipe Data
Keterangan
kode_barang
INTVARCHAR[30]
PRIMARY KEY
nama_barang
VARCHAR[30]
Harga
INT
Stock
TINYINT
Perintah untuk menampilkan data barang yang diurutkan
berdasarkan harga mulai dari harga tertinggi, kemudian untuk
barang dengan harga yang sama akan diurutkan berdasarkan
nama dari A-Z:
SELECT *
FROM Barang
ORDER BY Harga DESC, nama_barang ASC;

2. BETWEEN
Perintah ini digunakan untuk mengambil data pada
interval tertentu. Perintah ini akan mengikuti klausa WHERE.

SELECT <`field1`, `field2`, , `fieldn`>


FROM <`table name`>
[WHERE <`field`> BETWEEN <value1> AND <value2>]
[LIMIT a,b]

Contoh perintah untuk mengambil data barang dengan harga


antara 2000 sampai 10000 adalah sebagai berikut:
SELECT *
FROM Barang
WHERE Harga BETWEEN 2000 AND 10000

3. FIELD KALKULASI
Kadangkala kita ingin menampilkan sebuah data yang
dihasilkan dari kombinasi beberapa field. Field kalkulasi
memungkinkan semua itu. Field Kalkulasi adalah sebuah field
yang dihasilkan dari kombinasi field-field yang ada dalam table.
Field hitungan tidak benar-benar ada dalam table database,
hanya bersifat on-the fly dalam statement SELECT. Field yang
dihasilkan tidak mempunyai nama, tetapi dapat diberikan
alternative nama dengan pemberian alias. Misalnya jika ingin
mengetahui berapakah uang yang akan diterima untuk masingmasing barang jika terjual semua, maka perintah SQL-nya adalah
sebagai berikut:
SELECT nama_barang, (harga*stock)
FROM Barang

10

Perintah di atas akan menghasilkan sebuah field kalkulasi


tanpa nama, sehingga kurang informative. Agar field tersebut
memiliki nama, maka dapat digunakan alias, seperti perintah di
bawah ini:
SELECT nama_barang, (harga*stock) AS totalUang
FROM Barang

Urutan perintah untuk keseluruhan klausa adalah sebagai


berikut:
SELECT <`field1`, `field2`, , `fieldn`>
FROM <`table name`>
[WHERE expression]
ORDER BY <`field1` [ASC/DESC], `fieldn` [ASC/DESC]>
[LIMIT a,b]

STRUCTURED QUERY LANGUAGE (SQL)


FUNGSI AGREGASI DAN CLAUSA HAVING
Dalam beberapa kasus sering dibutuhkan perhitungan
kelompok data seperti mencari jumlah total data (baris) dalam
sebuah table, mencari berapa nilai maksimum dari sebuah kolom
pada table, atau bahkan mencari nilai rata-rata sebuah kolom pada
table. Hal tersebut dimungkinkan dalam menggunakan perintah SQL
yang disebut dengan Fungsi Agregasi. Fungsi agregasi digunakan
untuk melakukan operasi pada kelompok-kelompok baris data, fungsi
ini akan menghasilkan satu baris data untuk setiap kelompok baris
data yang ada. Yang termasuk fungsi agregasi adalah:

11

Average
: AVG
Minimum
: MIN
Maximum
: MAX
Total : SUM
Count : COUNT
Fungsi Agregasi dapat diterapkan pada seluruh data (baris)
pada sebuah table menjadi satu himpunan ataupun dibagi menjadi
beberapa kelompok himpunan pada tabel tersebut. Agar dapat
dikelompokkan menjadi beberapa himpunan maka digunakan Klausa
GROUP BY. Adanya Klausa GROUP BY memungkinkan mkeluaran
eksekusi perintah SQL tersebut menghasilkan satu atau lebih data
(baris). Dengan banyaknya baris yang kemungkinan dihasilkan maka
data keluaran tersebut juga dapat diseleksi kembali menggunakan
Klausa HAVING.
1. Perintah Average (AVG)
Fungsi AVG digunakan untuk memperoleh nilai rata-rata dari
seluruh nilai pada suatu kolom.
Sintaks:
SELECT AVG(nama_kolom) FROM nama_tabel;
2. Perintah Minimum (MIN)
Digunakan untuk memperoleh nilai minimum (yang terkecil) dari
suatu kolom.
Sintaks:
SELECT MIN(nama_kolom) FROM nama_tabel;
3. Perintah Maximum (MAX)
Digunakan untuk memperoleh nilai maksimum (yang terbesar)
dari suatu kolom.
Sintaks:
SELECT MAX(nama_kolom) FROM nama_tabel;

12

4. Perintah Total (SUM)


Digunakan untuk memperoleh nilai penjumlahan seluruh baris
pada suatu kolom.
Sintaks:
SELECT SUM(nama_kolom) FROM nama_tabel;
5. Perintah Count (COUNT)
Fungsi agregasi count sering digunakan untuk menghitung
jumlah baris dalam tabel.
Sintaks:
SELECT COUNT(nama_kolom) FROM nama_tabel;
6. Fungsi Agregasi dengan Klausa GROUP BY
Jika fungsi agregasi nomor 1 sampai 5 ingin diterapkan pada
kelompok himpunan baris data, maka digunakan klausa GROUP
BY. Baris-baris data yang memiliki nilai yang sama pada satu
kolom jika diterapkan klausa group by maka akan dimasukkan
dalam satu kelompok.
Sintaks:
SELECT nama_kolom_group, COUNT(nama_kolom)
FROM nama_tabel GROUP BY nama_kolom_group;

7. Fungsi Agregasi dengan Klausa HAVING


Klausa Having hamper sama dengan WHERE, hanya klausa ini
diterapkan pada SQL yang menggunakan Klausa Group By.
Klausa Having digunakan untuk menyeleksi hasil kelompok baris
yang dihasilkan oleh Klausa Group By, dalam kasus agregasi
dapat diterapkan seleksi pada kolom agregasi.
Sintaks:

13

SELECT nama_kolom_group, Fungsi_Agregat(nama_kolom)


FROM nama_tabel GROUP BY nama_kolom_group Having kondisi;

STRUCTURED QUERY LANGUAGE (SQL)


SELECT DENGAN MENGGUNAKAN JOIN
Perintah JOIN pada MySQL digunakan untuk menghubungkan
dua atau lebih tabel. Tipe-tipe join yang biasa digunakan dalam
query adalah INNER, LEFT, RIGHT dan OUTER. Untuk lebih
memudahkan dalam memahami perbedaan dari masing-masing tipe
JOIN maka digunakan dua table berikut.
Table tb_mahasiswa
id

nama

1
2
3
4
5

ADI
IKA
BUDI
WATI
DODI

mata_kulia
h
1
1
2
5
NULL

Dari table tb_mahasiswa di atas dapat dilihat bahwa field


mata_kuliah mengacu ke table lain (dalam hal ini table matakuliah)

14

Table matakuliah
id
1
2
3
4
5

mata_kuliah
Basis Data
Logika Pemrograman
Sistem Informasi
Struktur Data
Otomata

Untuk menampilkan nama mahasiswa beserta nama mata kuliah


yang diambilnya dapat digunakan query SELECT dengan perintah
JOIN untuk menggabungkan kedua table di atas. Hasil dari query
yang dijalankan tergantung dari tipe JOIN yang digunakan.
1. INNER JOIN
Tipe ini merupakan tipe JOIN yang paling sering digunakan.
Hasil dari query SELECT dengan tipe INNER JOIN adalah set dari
record yang memenuhi syarat yang disebutkan pada klausa ON.
Sebagai contoh:
SELECT tb_mahasiswa.nama, tb_matakuliah.nama_matakuliah
FROM tb_mahasiswa INNER JOIN tb_matakuliah
ON tb_mahasiswa.mata_kuliah=tb_matakuliah.id;

Perintah SELECT bertujuan untuk menampilkan nama


dari table tb_mahasiswa dan nama_matakuliah dari tabe
tb_matakuliah. Karena kedua field yang ingin ditampilkan
berasal dari dua table yang berbeda, maka kedua table tersebut
harus digabungkan. Perintah FROM di atas menggabungkan table
tb_mahasiswa dengan table tb_matakuliah secara INNER
JOIN. Hubungan kedua table itu didefinisikan melalui perintah ON
yaitu dengan menyamakan field mata_kuliah pada table
tb_mahasiswa dengan field id pada table tb_matakuliah.
Hasil dari perintah di atas adalah sebagai berikut:
nam
a
ADI
IKA
BUD

mata_kuliah
Basis Data
Basis Data
Logika

15

I
WATI

Pemrograman
Otomata

Hasil dari query di atas tidak menampilkan nama DODI


karena nilai field mata_kuliah pada table tb_mahasiswa untuk
mahasiswa DODI adalah NULL, dimana nilai NULL ini tidak dapat
ditemukan padanannya pada field id di table tb_matakuliah.
Hasil query SELECT menggunakan INNER JOIN, jika digambarkan
menggunakan notasi himpunan adalah sebagai berikut:

2. LEFT JOIN
Bagaimana jika hasil dari query yang diinginkan adalah
untuk menampilkan semua nama mahasiswa beserta mata kuliah
yang diambil walaupun mahasiswa itu belum mengambil mata
kuliah apapun? Tipe LEFT JOIN dapat digunakan untuk
mendapatkan
hasil yang
diinginkan. LEFT JOIN akan
menghasilkan suatu set record yang menampilkan semua baris
dari table yang terletak di kiri (dalam hal ini tb_mahasiswa)
tanpa memperhatikan apakah baris-baris tersebut memiliki
padanan pada table sebelah kanan (tb_matakuliah).
SELECT tb_mahasiswa.nama, tb_matakuliah.nama_matakuliah
FROM tb_mahasiswa LEFT JOIN tb_matakuliah
ON tb_mahasiswa.mata_kuliah=tb_matakuliah.id;

Hasil query di atasa adalah sebagai berikut:


nam
a
ADI

mata_kuliah
Basis Data

16

IKA
Basis Data
BUD Logika Pemrograman
I
WATI Otomata
DOD (NULL)
I
Hasil dari LEFT JOIN jika digambarkan menggunakan notasi
himpunan adalah sebagai berikut:

3. RIGHT JOIN
Perintah RIGHT JOIN akan menampilkan semua entry dari
table sebelah kanan dari perintah JOIN walaupun ada baris pada
table sebelah kanan yang tidak memiliki padanannya pada tabel
sebelah kiri. Sebagai contoh: missal hasil dari query yang
diinginkan adalah untuk menampilkan semua mata kuliah yang
ada walaupun tidak ada mahasiswa yang mengambil mata kuliah
tersebut. Perintah query untuk mendapatkan hasil tersebut
adalah:
SELECT tb_mahasiswa.nama, tb_matakuliah.nama_matakuliah
FROM tb_mahasiswa RIGHT JOIN tb_matakuliah
ON tb_mahasiswa.mata_kuliah=tb_matakuliah.id;

Hasil query di atas adalah:


nama
ADI
IKA
BUDI
(NULL

mata_kuliah
Basis Data
Basis Data
Logika Pemrograman
Struktur Data

17

)
(NULL
)
WATI

Sistem Informasi
Otomata

Jika diperlihatkan menggunakan himpunan, hasil query


tersebut adalah:

4. OUTER JOIN
Perintah OUTER JOIN akan menampilkan seluruh isi dari
kedua table tanpa memperhatikan apakah masing baris pada
kedua table memiliki pasangan pada table lainnya atau tidak.
Ketika tidak ditemukan padanannya maka nilai dari field tersebut
akan diisi dengan NULL. Perintah OUTER JOIN ini tidak terlalu
bermanfaat dibandingkan dengan INNER, LEFT ataupun RIGHT.
OUTER JOIN ini tidak diimplementasikan di MySQL, namun hasil
yang sama dapat diperoleh menggunakan perintah UNION serta
LEFT dan RIGHT JOIN.
SELECT tb_mahasiswa.nama, tb_matakuliah.nama_matakuliah
FROM tb_mahasiswa LEFT JOIN tb_matakuliah
ON tb_mahasiswa.mata_kuliah=tb_matakuliah.id
UNION
SELECT tb_mahasiswa.nama, tb_matakuliah.nama_matakuliah
FROM tb_mahasiswa RIGHT JOIN tb_matakuliah
ON tb_mahasiswa.mata_kuliah=tb_matakuliah.id;

Hasil perintah query di atas adalah sebagai berikut:

18

nama
ADI
IKA
BUDI
(NULL
)
(NULL
)
WATI
DODI

mata_kuliah
Basis Data
Basis Data
Logika Pemrograman
Struktur Data
Sistem Informasi
Otomata
(NULL)

Jika diperlihatkan menggunakan himpunan, hasil query


tersebut adalah:

Catatan:
Jika nama field yang digunakan pada klausa ON adalah sama
pada kedua tabel, maka untuk menghindari penggunaan nama
table dan nama field untuk referensi dapat digunakan perintah
USING.

Tabel tb_mahasiswa
id
nama
id_kuliah
1
ADI
1
2
IKA
1
3
BUDI
2
4
WATI
5
5
DODI
NULL
Tabel tb_matakuliah
Id_kulia mata_kuliah

19

h
1
2
3
4
5

Basis Data
Logika Pemrograman
Sistem Informasi
Struktur Data
Otomata

Dari kedua table di atas dapat dilihat bahwa field yang digunakan
untuk menghubungkan table-tabel tersebut adalah id_kuliah.
Karena nama field referensi pada kedua table adalah sama
(id_kuliah) maka query INNER JOIN pada halaman 2 dapat
diubah menjadi:
SELECT tb_mahasiswa.nama, tb_matakuliah.nama_matakuliah
FROM tb_mahasiswa RIGHT JOIN tb_matakuliah
ON tb_mahasiswa.mata_kuliah=tb_matakuliah.id;

20

HASIL DAN PEMBAHASAN


HASIL DAN PEMBAHASAN
A. Hasil Percobaan

Mengimport database northwind ke dalam SQLyog.


Langkah-langkahnya sebagai berikut:
Buka file northwind.sql kemudian copy query tersebut ke
dalam SQL yog.

Setelah semua query pada northwind.sql di copy ke SQL yog,


langkah selanjutnya yaitu eksekusi semua query yang telah di
copy.

Setelah berhasil dieksekusi, database northwind telah berhasil


dibuat

21

B. Analisis Hasil Percobaan

22

Skema Basis Data Penjualan (Northwind)


Terdapat 8 tabel pada Basis Data Penjualan (Gambar 1), yang saling
berelasi, tabel-tabel tersebut adalah:
1. Categories merupakan tabel yang berelasi dengan tabel Product,
produk yang dimana akan dijual. Relasi dari tabel Categories ke
tabel Product adalah 1 ke n (1 kategori terdiri banyak produk).
2. Suppliers merupakan tabel yang berisi tentang identitas dari
Supplier, seperti SupplierID, CompanyName, ContactName,
Address, City, dll. Yang dimana di dalam tabel Suppliers ini
Supplier ID merupakan primary key. Tabel Suppliers ini berelasi
dengan tabel Products, yang dimana relasi dari tabel Suppliers
dengan tabel Products adalah 1 ke n (1 supplier bisa memiliki
banyak produk).
3. Products merupakan tabel yang berisi semua identitas dari
produk-produk yang dijual, seperti ProductID, ProductName,
SupplierID, dll. Yang dimana ProductID merupakan primary key,
dan SupplierID merupakan foreign key. Tabel Products berelasi
dengan tabel Suppliers dan Catagories.

23

4. Employers merupakan tabel yang berisi tentang identitas dari


employers (pegawai) dan juga digunakan untuk mendata atau
mencatat pegawai-pegawai yang aktif dalam penjualan dan
pemesanan produk (order), setiap transaksi akan dicatat
EmployeeID yang melakukan transaksi penjualan tersebut. Tabel
Employers berelasi dengan tabel Orders dan EmployeeTerritories,
relasi dari tabel Employers dengan tabel Orders adalah 1 ke n (1
Karyawan dapat melakukan banyak transaksi penjualan (order)
5. Orders merupakan tabel utama untuk mencatat pemesanan,
tabel Orders berelasi dengan tabel Customer, Employees,dan
Shippers.
6. Order Details merupakan tabel relasi dari tabel Order. Tabel ini
merupakan detail pemesanan yang mencatat produk apa yang
dibeli dalam 1 transaksi penjualan / pemesanan, seperti
banyaknya produk yang dibeli, harga dari produk tersebut dan
diskon yang didapatkan dari produk tersebut. 1 order memiliki 1
atau lebih produk yang dibeli.
7. Customers merupakan tabel yang berisi identitas dari Customer,
seperti CustomerID, ContactName, City, Address, dll. Tabel
Customers berelasi dengan tabel Orders yang merupakan tabel
referensi untuk menunjukan konsumen yang melakukan
pemesanan. Satu konsumen dapat melakukan n pemesanan.
8. Shippers merupakan tabel yang berfungsi untuk mengetahui
order yang ada dikirim oleh perusahaan pengiriman apa. Memilki
posisi yang hampir sama dengan tabel Customers. Tabel Shippers
berelasi dengan tabel Orders, memiliki relasi 1 ke n (dimana
Shipper bisa melayani lebih dari satu order).
9. CustomerCustomerDemo
merupakan
tabel
untuk

mengetahui
tipe
dari
customer
yang
melakukan
pemesananan, tabel ini berelasi dengan tabel customer.
10. CustomerDemographics merupakan tabel untuk mengetahui
demographic dari customer berdasar tipe customernya
tabel ini berelasi dengan tabel CustomerCustomerDemo
11. EmployeeTerritories merupakan tabel untuk mengetahui
lingkungan atau daerah tempat bekerja dari pegawai yang
tercatat melakukan order, tabel EmployeeTerritories berelasi
dengan tabel Employees
12. Territories merupakan tabel untuk deskripsi dari lingkungan
atau daerah tempat bekerja, tabel Territories berelasi
dengan tabel EmployeeTerritories

24

13. Region merupakan tabel yang mendeskripsikan wilayah

atau provinsi atau kota tempat pegawai bekerja. Tabel


Region berelasi dengan tabel Territories.

STUDI KASUS
1. Tampilkan semua data pada tabel Categories

2. Tampilkan SupplierID, CompanyName,


PostalCode pada tabel Suppliers

ContactName,

25

3. Tampilkan semua supplier yang hanya memiliki No.Fax

26

4. Tampilkan
Breweries

supplier

yang

CompanyName=Bigfoot

5. Tampilkan Products yang CategoryID = 6

6. Tampilkan ProductID, ProductName yang CategoryName


nya adalah Grains/Cereals

27

7. Tampilkan data/Products yang UnitInStock nya lebih besar


dari 80

8. Tampilkan data Products yang UnitInStock diantara 90


sampai 110

28

9. Tampilkan data Products yang UnitInStock nya lebih kecil


dari 80 dan CompanyName pada Suppliers = Leka
Trading

10.Tampilkan semua Order yang tanggal pemesanannya dari


tanggal 1996-07-10 sampai 1997-09-10

29

11.Tampilkan CustomerID dan CustomerName yang memesan


barang pada tanggal 1996-08-15

12.Tampilkan
OrderID,
OrderDate,
CustomerID
dan
CustomerName yang memesan produk dengan ProductID
= 51

30

13.Tampilkan
OrderID,
OrderDate,
CustomerName
yang
memesan
ProductIName = Tofu

CustomerID
dan
produk
dengan

14.Tampilkan total pemesanan barang (UnitPrice * Quantity)


pada
tabel
Order_Details
dengan
alias
JumlahTransaksiPerHari

31

15.Tampilkan UnitPrice termahal dari transaksi Order yang


terjadi

16.Tampilkan berapa jumlah transaksi order yang terjadi per


hari dengan alias JumlahTransaksiPerHari

32

17.Tampilkan CustomerID dan CustomerName dan jumlah


pemesanan yang pernah dilakukan oleh konsumen
tersebut

33

18.Tampilkan ShipperID, CompanyName, Phone yang pernah


mengirimkan pesanan ke Negara Germany

34

19.Tampilkan semua order yang diurut berdasarkan tanggal


pemesanan

20.Tampilkan OrderDate, CustomerName, CompanyName


Perusahaan pengirim yang mengirimkan barang dengan
CategoryName = Condiments dan ContactName pada
Supplier = Shelley Burke

35

36

KESIMPULAN
Dari pembahasan mengenai Studi kasus di atas kesimpulan
yang diperoleh adalah untuk mendefinisikan, pengontrol data, dan
memanipulasi data pada sebuah database digunakan DDL, DCL, dan
DML. Structured Query Languaged (SQL) berguna mempermudah
kita dalam membuat dan memanipulasi database, SQL berguna juga
dalam menyelesaikan suatu masalah atau kasus yang berhubungan
dengan basis data. Dan Dengan Structured Query Language (SQL)
kita dapat mencari atau memanipulasi data yang terdapat pada
suatu database dengan mudah dan cepat.

37

DAFTAR PUSTAKA
2013. Modul 3 Praktikum Basis Data .Jurusan Ilmu Komputer.
Universitas Udayana
2013. Modul 4 Praktikum Basis Data .Jurusan Ilmu Komputer.
Universitas Udayana
2013. Modul 5 Praktikum Basis Data .Jurusan Ilmu Komputer.
Universitas Udayana
2013. Modul 6 Praktikum Basis Data .Jurusan Ilmu Komputer.
Universitas Udayana
MySQL Server Documentation, http://dev.mysql.com
MySQL Tutorials, http://www.devshed.com

38

Anda mungkin juga menyukai