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
2 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.
.3 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
4
4444 The Secret 687 11000 Gramedia
5555 Piano Pantai di Tepi 859 10000 Andi
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 5555 Piano Pantai di Tepi 859 10000 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]
5 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
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’;
6 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:
7 % 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”
“Prak_” Mencari string yang diawali dengan karakter “Prak” dan diakhiri 1 karakter “_Prak” Mencari string yang diakhiri dengan karakter “Prak” dan diawali 1 karakter “_Prak_” 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 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
8 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
9 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:
10 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:11 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:
12
Average
: AVG Minimum
: MIN Maximum
: MAX Total
: SUM Count
: COUNTFungsi 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:
13 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.
14 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
15 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
16 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
17 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
18 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
19 (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
20 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
21 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
23 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.
24 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.
25 STUDI KASUS
1. Tampilkan semua data pada tabel Categories
2. Tampilkan SupplierID, CompanyName, ContactName, PostalCode pada tabel Suppliers
26 3. Tampilkan semua supplier yang hanya memiliki No.Fax
27 4. Tampilkan supplier yang CompanyName=‟Bigfoot Breweries‟
5. Tampilkan Products yang CategoryID = 6
6. Tampilkan ProductID, ProductName yang CategoryName nya adalah „Grains/Cereals‟
28 7. Tampilkan data/Products yang UnitInStock nya lebih besar dari 80
29 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
30 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
31 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
32 15. Tampilkan UnitPrice termahal dari transaksi Order yang terjadi
16. Tampilkan berapa jumlah transaksi order yang terjadi per hari dengan alias JumlahTransaksiPerHari
33 17. Tampilkan CustomerID dan CustomerName dan jumlah pemesanan yang
34 18. Tampilkan ShipperID, CompanyName, Phone yang pernah mengirimkan
35 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‟
37 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.
38 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