You are on page 1of 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 operator-operator 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..

2
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 sama dengan
<= Lebih kecil atau sama dengan
<> Tidak sama dengan

Format penulisan:

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


FROM [nama tabel]
WHERE [nama kolom] [operator perbandingan]
[nilai]

Contoh:
table_buku
ISBN Judul Jml_hal harga penerbit
1111 Dunia Sophie 765 10000 Mizan
2222 The Lost Symbol 867 10000 Gramedia
3333 A Morcking Bird 685 10000 Gramedia

3
4444 The Secret 687 11000 Gramedia
Piano di Tepi 859 10000 Andi
5555
Pantai

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

Output:
Judul Harga
The Secret 11000

b.
SELECT * FROM tabel_buku WHERE harga = 10000;

Output:
ISBN judul Jml_hal harga penerbit
1111 Dunia Sophie 765 10000 Mizan
2222 The Lost Symbol 867 10000 Gramedia
3333 A Morcking Bird 685 10000 Gramedia
Piano di Tepi 859 10000 Andi
5555
Pantai

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]

4
Contoh:
table_buku
ISBN judul Jml_hal harga penerbit
1111 Dunia Sophie 765 10000 Mizan
2222 The Lost Symbol 867 10000 Gramedia
3333 A Morcking Bird 685 10000 Gramedia
4444 The Secret 687 11000 Gramedia
Piano di Tepi 859 10000 Andi
5555
Pantai

SELECT * FROM tabel_buku WHERE harga BETWEEN 9000 AND


11000;

Output:
ISBN judul Jml_hal harga penerbit
1111 Dunia Sophie 765 10000 Mizan
2222 The Lost Symbol 867 10000 Gramedia
4444 The Secret 687 11000 Gramedia

2. OPERATOR LOGIKA
Berikut adalah beberapa operator logika yang digunakan pada
sintax mysql:
AND, OR, XOR

Contoh:
table_buku
ISBN judul Jml_hal harga penerbit
1111 Dunia Sophie 765 10000 Mizan
2222 The Lost Symbol 867 10000 Gramedia
3333 A Morcking Bird 685 10000 Gramedia
4444 The Secret 687 11000 Gramedia
5555 Piano di Tepi Pantai 859 10000 Andi

1.
SELECT * FROM tabel_buku WHERE harga = 10000
AND penerbit = gramedia;

5
Output:
ISBN judul Jml_hal harga penerbit
2222 The Lost Symbol 867 10000 Gramedia
3333 A Morcking Bird 685 10000 Gramedia

2.
SELECT * FROM tabel_buku WHERE harga = 10000
OR penerbit = gramedia;

Output:
ISBN judul Jml_hal harga penerbit
1111 Dunia Sophie 765 10000 Mizan
2222 The Lost Symbol 867 10000 Gramedia
3333 A Morcking Bird 685 10000 Gramedia
5555 Piano di Tepi Pantai 859 10000 Andi

3.
SELECT * FROM tabel_buku WHERE harga = 10000
XOR penerbit = gramedia;

Output:
ISBN judul Jml_hal harga penerbit
1111 Dunia Sophie 765 10000 Mizan
2222 The Lost Symbol 867 10000 Gramedia
3333 A Morcking Bird 685 10000 Gramedia
5555 Piano di Tepi Pantai 859 10000 Andi

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

Penjelasan:
Nama Deskripsi

6
% Mencocokkan dengan berapapun jumlah karakter
_ Mencocokkan hanya dengan satu karakter

Penggunaan LIKE:
Penggunaan Deskripsi
Prak% Mencari string yang diawali dengan karakter Prak
%Prak Mencari string yang diakhiri dengan karakter Prak
%Prak% Mencari string yang mengandung karakter Prak
Mencari string yang diawali dengan karakter Prak dan
Prak_
diakhiri 1 karakter
Mencari string yang diakhiri dengan karakter Prak dan
_Prak
diawali 1 karakter
Mencari string yang mengandung karakter Prak yang
_Prak_
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 Jml_hal harga penerbit
1111 Dunia Sophie 765 10000 Mizan
2222 The Lost Symbol 867 10000 Gramedia
3333 A Morcking Bird 685 10000 Gramedia
4444 The Secret 687 11000 Gramedia
5555 Piano di Tepi Pantai 859 10000 Andi

7
SELECT * FROM tabel_buku WHERE judul LIKE
Worl%;

Output:
ISBN judul Jml_hal harga penerbit
1111 Dunia Sophie 765 10000 Mizan
4444 The Secret 687 11000 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

8
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:

9
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 masing-masing barang jika terjual semua,
maka perintah SQL-nya adalah sebagai berikut:

10
SELECT nama_barang, (harga*stock)
FROM Barang

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.

13
Sintaks:

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 mata_kuliah
1 ADI 1
2 IKA 1
3 BUDI 2
4 WATI 5
5 DODI NULL

14
Dari table tb_mahasiswa di atas dapat dilihat bahwa field mata_kuliah
mengacu ke table lain (dalam hal ini table matakuliah)

Table matakuliah
id mata_kuliah
1 Basis Data
2 Logika Pemrograman
3 Sistem Informasi
4 Struktur Data
5 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:

nama mata_kuliah
ADI Basis Data
IKA Basis Data

15
BUDI Logika Pemrograman
WATI 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:

nama mata_kuliah
ADI Basis Data

16
IKA Basis Data
BUDI Logika Pemrograman
WATI Otomata
DODI (NULL)
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 mata_kuliah
ADI Basis Data
IKA Basis Data
BUDI Logika Pemrograman
(NULL) Struktur Data
(NULL) Sistem Informasi
WATI Otomata

17
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:

nama mata_kuliah
ADI Basis Data
IKA Basis Data
BUDI Logika Pemrograman

18
(NULL) Struktur Data
(NULL) Sistem Informasi
WATI Otomata
DODI (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_kuliah mata_kuliah
1 Basis Data
2 Logika Pemrograman
3 Sistem Informasi
4 Struktur Data
5 Otomata

19
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
22
B. Analisis Hasil Percobaan

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
13. Region merupakan tabel yang mendeskripsikan wilayah atau provinsi
atau kota tempat pegawai bekerja. Tabel Region berelasi dengan
tabel Territories.

24
STUDI KASUS

1. Tampilkan semua data pada tabel Categories

2. Tampilkan SupplierID, CompanyName, ContactName, PostalCode pada


tabel Suppliers

25
3. Tampilkan semua supplier yang hanya memiliki No.Fax

26
4. Tampilkan supplier yang CompanyName=Bigfoot Breweries

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, CustomerID dan CustomerName yang
memesan produk dengan ProductIName = Tofu

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

You might also like