45
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

Laporan Praktikum Sistem Basis Data Modul 8

Embed Size (px)

DESCRIPTION

belajar basis data

Citation preview

Page 1: Laporan Praktikum Sistem Basis Data Modul 8

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

Page 2: Laporan Praktikum Sistem Basis Data Modul 8

PENDAHULUAN

Latar BelakangDalam 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

Page 3: Laporan Praktikum Sistem Basis Data Modul 8

Teori

STRUCTURED QUERY LANGUAGE (SQL)SELECT DENGAN OPERATOR PERBANDINGAN,

LOGIKA DAN CLAUSA LIKE

1. OPERATOR PERBANDINGANBerikut 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], dstFROM [nama tabel]WHERE [nama kolom] [operator perbandingan][nilai]

Contoh:table_bukuISBN Judul Jml_hal harga penerbit1111 Dunia Sophie 765 10000 Mizan2222 The Lost Symbol 867 10000 Gramedia3333 A Morcking Bird 685 10000 Gramedia

3

Page 4: Laporan Praktikum Sistem Basis Data Modul 8

4444 The Secret 687 11000 Gramedia5555 Piano di Tepi Pantai 859 10000 Andi

a.SELECT judul, harga FROM tabel_bukuWHERE harga <> 10000;

Output:Judul HargaThe Secret 11000

b.SELECT * FROM tabel_buku WHERE harga = 10000;

Output:ISBN judul Jml_hal harga penerbit1111 Dunia Sophie 765 10000 Mizan2222 The Lost Symbol 867 10000 Gramedia3333 A Morcking Bird 685 10000 Gramedia5555 Piano di Tepi Pantai 859 10000 Andi

b. BETWEENMelakukan select berdasarkan rentang nilai tertentu.

Format Penulisan:

SELECT [nama kolom1], [nama kolom2], dstFROM [nama tabel]WHERE [nama kolom] BETWEEN [nilai1] AND[nilai2]

Contoh:

4

Page 5: Laporan Praktikum Sistem Basis Data Modul 8

table_bukuISBN judul Jml_hal harga penerbit1111 Dunia Sophie 765 10000 Mizan2222 The Lost Symbol 867 10000 Gramedia3333 A Morcking Bird 685 10000 Gramedia4444 The Secret 687 11000 Gramedia5555 Piano di Tepi Pantai 859 10000 Andi

SELECT * FROM tabel_buku WHERE harga BETWEEN 9000 AND11000;

Output:ISBN judul Jml_hal harga penerbit1111 Dunia Sophie 765 10000 Mizan2222 The Lost Symbol 867 10000 Gramedia4444 The Secret 687 11000 Gramedia

2. OPERATOR LOGIKABerikut adalah beberapa operator logika yang digunakan

pada sintax mysql:AND, OR, XOR

Contoh:table_bukuISBN judul Jml_hal harga penerbit1111 Dunia Sophie 765 10000 Mizan2222 The Lost Symbol 867 10000 Gramedia3333 A Morcking Bird 685 10000 Gramedia4444 The Secret 687 11000 Gramedia5555 Piano di Tepi Pantai 859 10000 Andi

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

Output:ISBN judul Jml_hal harga penerbit2222 The Lost Symbol 867 10000 Gramedia

5

Page 6: Laporan Praktikum Sistem Basis Data Modul 8

3333 A Morcking Bird 685 10000 Gramedia

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

Output:ISBN judul Jml_hal harga penerbit1111 Dunia Sophie 765 10000 Mizan2222 The Lost Symbol 867 10000 Gramedia3333 A Morcking Bird 685 10000 Gramedia5555 Piano di Tepi Pantai 859 10000 Andi

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

Output:ISBN judul Jml_hal harga penerbit1111 Dunia Sophie 765 10000 Mizan2222 The Lost Symbol 867 10000 Gramedia3333 A Morcking Bird 685 10000 Gramedia5555 Piano di Tepi Pantai 859 10000 Andi

3. Clausa LikeBerikut adalah beberapa klausa yang digunakan pada

sintax mysql: “%” dan” _”

Penjelasan:Nama Deskripsi

% Mencocokkan dengan berapapun jumlah karakter_ Mencocokkan hanya dengan satu karakter

Penggunaan LIKE:

6

Page 7: Laporan Praktikum Sistem Basis Data Modul 8

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], dstFROM [nama tabel]WHERE [nama kolom] LIKE [klausa LIKE]

Contoh:table_bukuISBN judul Jml_hal harga penerbit1111 Dunia Sophie 765 10000 Mizan2222 The Lost Symbol 867 10000 Gramedia3333 A Morcking Bird 685 10000 Gramedia4444 The Secret 687 11000 Gramedia5555 Piano di Tepi Pantai 859 10000 Andi

SELECT * FROM tabel_buku WHERE judul LIKE‘Worl%’;

7

Page 8: Laporan Praktikum Sistem Basis Data Modul 8

Output:ISBN judul Jml_hal harga penerbit1111 Dunia Sophie 765 10000 Mizan4444 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 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

8

Page 9: Laporan Praktikum Sistem Basis Data Modul 8

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 BYMerupakan 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 Keterangankode_barang INTVARCHAR[30] PRIMARY KEYnama_barang VARCHAR[30]Harga INTStock 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 *

9

Page 10: Laporan Praktikum Sistem Basis Data Modul 8

FROM BarangORDER BY Harga DESC, nama_barang ASC;

2. BETWEENPerintah 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 BarangWHERE Harga BETWEEN 2000 AND 10000

3. FIELD KALKULASIKadangkala 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

Page 11: Laporan Praktikum Sistem Basis Data Modul 8

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 totalUangFROM 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

11

Page 12: Laporan Praktikum Sistem Basis Data Modul 8

ini akan menghasilkan satu baris data untuk setiap kelompok baris data yang ada. Yang termasuk fungsi agregasi adalah: 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:

12

Page 13: Laporan Praktikum Sistem Basis Data Modul 8

SELECT MAX(nama_kolom) FROM nama_tabel;

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 BYJika 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 HAVINGKlausa Having hamper sama dengan WHERE, hanya klausa ini diterapkan pada SQL yang menggunakan Klausa Group By.

13

Page 14: Laporan Praktikum Sistem Basis Data Modul 8

Klausa Having digunakan untuk menyeleksi hasil kelompok baris yang dihasilkan oleh Klausa Group By, dalam kasus agregasi dapat diterapkan seleksi pada kolom agregasi.

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_mahasiswaid nama mata_kulia

h1 ADI 1

14

Page 15: Laporan Praktikum Sistem Basis Data Modul 8

2 IKA 13 BUDI 24 WATI 55 DODI NULL

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

Table matakuliahid mata_kuliah1 Basis Data2 Logika Pemrograman3 Sistem Informasi4 Struktur Data5 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 JOINTipe 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_matakuliahFROM tb_mahasiswa INNER JOIN tb_matakuliahON 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

15

Page 16: Laporan Praktikum Sistem Basis Data Modul 8

“tb_mahasiswa” dengan field “id” pada table “tb_matakuliah”. Hasil dari perintah di atas adalah sebagai berikut:

nama

mata_kuliah

ADI Basis DataIKA Basis DataBUDI

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 JOINBagaimana 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_matakuliahFROM tb_mahasiswa LEFT JOIN tb_matakuliah

16

Page 17: Laporan Praktikum Sistem Basis Data Modul 8

ON tb_mahasiswa.mata_kuliah=tb_matakuliah.id;

Hasil query di atasa adalah sebagai berikut:

nama

mata_kuliah

ADI Basis DataIKA Basis DataBUDI

Logika Pemrograman

WATI OtomataDODI

(NULL)

Hasil dari LEFT JOIN jika digambarkan menggunakan notasi himpunan adalah sebagai berikut:

3. RIGHT JOINPerintah 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_matakuliahFROM tb_mahasiswa RIGHT JOIN tb_matakuliahON tb_mahasiswa.mata_kuliah=tb_matakuliah.id;

17

Page 18: Laporan Praktikum Sistem Basis Data Modul 8

Hasil query di atas adalah:

nama mata_kuliahADI Basis DataIKA Basis DataBUDI Logika Pemrograman(NULL)

Struktur Data

(NULL)

Sistem Informasi

WATI Otomata

Jika diperlihatkan menggunakan himpunan, hasil query tersebut adalah:

4. OUTER JOINPerintah 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_matakuliahFROM tb_mahasiswa LEFT JOIN tb_matakuliahON tb_mahasiswa.mata_kuliah=tb_matakuliah.id

18

Page 19: Laporan Praktikum Sistem Basis Data Modul 8

UNIONSELECT tb_mahasiswa.nama, tb_matakuliah.nama_matakuliahFROM tb_mahasiswa RIGHT JOIN tb_matakuliahON tb_mahasiswa.mata_kuliah=tb_matakuliah.id;

Hasil perintah query di atas adalah sebagai berikut:

nama mata_kuliahADI Basis DataIKA Basis DataBUDI Logika Pemrograman(NULL)

Struktur Data

(NULL)

Sistem Informasi

WATI OtomataDODI (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.

19

Page 20: Laporan Praktikum Sistem Basis Data Modul 8

Tabel tb_mahasiswaid nama id_kuliah1 ADI 12 IKA 13 BUDI 24 WATI 55 DODI NULL

Tabel tb_matakuliahId_kuliah

mata_kuliah

1 Basis Data2 Logika Pemrograman3 Sistem Informasi4 Struktur Data5 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_matakuliahFROM tb_mahasiswa RIGHT JOIN tb_matakuliahON tb_mahasiswa.mata_kuliah=tb_matakuliah.id;

20

Page 21: Laporan Praktikum Sistem Basis Data Modul 8

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

Page 22: Laporan Praktikum Sistem Basis Data Modul 8

22

Page 23: Laporan Praktikum Sistem Basis Data Modul 8

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,

23

Page 24: Laporan Praktikum Sistem Basis Data Modul 8

dan SupplierID merupakan foreign key. Tabel Products berelasi dengan tabel Suppliers dan Catagories.

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

Page 25: Laporan Praktikum Sistem Basis Data Modul 8

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, ContactName, PostalCode pada tabel Suppliers

25

Page 26: Laporan Praktikum Sistem Basis Data Modul 8

3. Tampilkan semua supplier yang hanya memiliki No.Fax

26

Page 27: Laporan Praktikum Sistem Basis Data Modul 8

4. Tampilkan supplier yang CompanyName=’Bigfoot Breweries’

5. Tampilkan Products yang CategoryID = 6

6. Tampilkan ProductID, ProductName yang CategoryName nya adalah ‘Grains/Cereals’

27

Page 28: Laporan Praktikum Sistem Basis Data Modul 8

7. Tampilkan data/Products yang UnitInStock nya lebih besar dari 80

8. Tampilkan data Products yang UnitInStock diantara 90 sampai 110

28

Page 29: Laporan Praktikum Sistem Basis Data Modul 8

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

Page 30: Laporan Praktikum Sistem Basis Data Modul 8

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

Page 31: Laporan Praktikum Sistem Basis Data Modul 8

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

Page 32: Laporan Praktikum Sistem Basis Data Modul 8

15. Tampilkan UnitPrice termahal dari transaksi Order yang terjadi

16. Tampilkan berapa jumlah transaksi order yang terjadi per hari dengan alias JumlahTransaksiPerHari

32

Page 33: Laporan Praktikum Sistem Basis Data Modul 8

17. Tampilkan CustomerID dan CustomerName dan jumlah pemesanan yang pernah dilakukan oleh konsumen tersebut

33

Page 34: Laporan Praktikum Sistem Basis Data Modul 8

18. Tampilkan ShipperID, CompanyName, Phone yang pernah mengirimkan pesanan ke Negara Germany

34

Page 35: Laporan Praktikum Sistem Basis Data Modul 8

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

Page 36: Laporan Praktikum Sistem Basis Data Modul 8

36

Page 37: Laporan Praktikum Sistem Basis Data Modul 8

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

Page 38: Laporan Praktikum Sistem Basis Data Modul 8

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