laporan basis data
TRANSCRIPT
LAPORAN
“ BASIS DATA “
Disusun Untuk Memenuhi Persyaratan Mengikuti Ujian Akhir
Semester Mata Kuliah Basis Data
Disusun Oleh :
1. Fahmi Hilmansyah (409532320679)
2. Angga Nurdiansyah (409532314998)
3. Pravantio Fazori (409532315002)
Dosen Pembina Matakuliah :
Triyanna Widiyaningtyas, M.T
UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO
PROGRAM STUDI D3 TEKNIK ELEKTRONIKA
Desember 2009
Pendahuluan
My SQL merupakan database yang mendukung RDBMS (Relational
Database Management System). Sebagai database yang mendukung RDBMS,
database ini terbukti telah banyak digunakan dalam berbagai kebutuhan
pendokumentasian data.. SQL (dibaca "ess-que-el") merupakan kependekan dari
Structured Query Language. SQL digunakan untuk berkomunikasi dengan sebuah
Database. Sesuai dengan ANSI,SQL merupakan bahasa standar untuk sistem
menajemen database relasional. Statemen SQL digunakan untuk melakukan tugas-
tugas seperti melakukan update terhadap database, atau mengambil data dari sebuah
database. Beberapa database relasional yang menggunakan SQL adalah: MySQL,
Oracle, Sybase, Microsoft SQL Server, Access, Ingres, dan lain-lain.
Dalam laporan basis data ini yang paling penting adalah dengan
memperbanyak latihan dan mempraktekkan semua yang telah disampaikan. Disini
hanya akan diberikan pengenalan tentang sintaks SQL dalam MySQL yang
sederhana dan paling sering digunakan baik untuk penggunaan biasa ataupun untuk
administratif. SQL terdiri dari beberapa komponen, dua diantaranya yang sangat
fundamental adalah DDL (Data Definision Language) dan DML (Data Manipulation
Language).
A. DDL (Data Definision Language)
DDL menyediakan perintah-perintah untuk mendefinisikan, memodifikasi, dan
menghapus skema relasi. Misalnya tabel, view, prosedur, dan fungsi.
Contoh perintah DDL adalah : CREATE, ALTER, dan DROP.
B. DML (Data Manipulation Language)
DML menyediakan perintah-perintah untuk menambah , memodifikasi,
menghapus, dan mengambil data didalam Basis data.
Contoh perintah DML adalah; INSERT,UPDATE, DELETE, dan SELECT
Pada laporan ini studi kasus yang digunakan adalah dengan tema jadwal
keberangkatan kereta api di stasiun Surabaya yang terdiri dari Empat tabel. Masing-
masing tabel tersebut adalah tabel kereta, tujuan, jadwal dan harga_tiket. Data yang
digunakan adalah sebagai berikut :
Tabel kereta
kd_kereta nama_kereta kapasitas kd_tujuan kd_jadwalK011 Mutiara Timur 200 TK03 J13K022 Penataran 250 TK01 J12K041 Komuter 150 TK04 J14K031 Kereta Barang 0 TK06 J11K066 Eksekutif 100 TK02 J13K051 Malang Express 175 TK01 J11K023 Penataran 250 TK01 J16K071 Jaya Baru 125 TK05 J15K067 Eksekutif 100 TK01 J17
Tabel tujuan
kd_tujuan tujuanTK01 MalangTK02 JakartaTK03 Banyuwang
iTK04 SidoarjoTK05 BlitarTK06 Madiun
Tabel jadwal
kd_jadwal pukulJ11 08.00J12 09.45J13 10.15J14 11.00J15 13.15J16 15.45J17 17.15
Tabel harga_tiket
kd_kereta hargaK011 12.000K022 5.000K023 5.000K041 4.000K051 15.000K066 75.000K067 25.000K071 9.500
Himpunan entitas diatas dapat direpresentasikan ke dalam bentuk diagram skema di
bawah ini:
Berikut adalah beberapa sintaks dasar dalam MySQL
1) Membuat database
CREATE DATABASE stasiun ;
2) Menggunakan database
USE stasiun ;
3) Menampilkan database
SHOW DATABASES ;
4) Menghapus database
DROP DATABASE stasiun ;
5) Membuat Tabel
Pada pembuatan tabel ini mengacu pada tabel yang terdapat pada database
Stasiun yaitu, tabel kereta, tujuan, jadwal dan harga_tiket. sintaknya adalah :
nama_kereta kapasitas kd_tujuan kd_jadwal
kd_kereta
kereta tujuan
tujuan kd_tujuan
jadwal
pukul kd_jadwal
harga_tiket
harga(Rp) kd_kereta
o Tabel kereta :
CREATE TABLE kereta (kd_kereta VARCHAR(5) NOT NULL,nama_kereta VARCHAR(20) NOT NULL,kapasitas INT(5),kd_tujuan VARCHAR(5) NOT NULL,kd_jadwal VARCHAR(5) NOT NULL,
PRIMARY KEY (kd_kereta)) ;
Simpan dengan nama kereta.sql
o Tabel tujuan :
CREATE TABLE tujuan (kd_tujuan VARCHAR(5) NOT NULL,tujuan VARCHAR(20) NOT NULL,
PRIMARY KEY (kd_tujuan)) ;
Simpan dengan nama tujuan.sql
o Tabel jadwal :
CREATE TABLE jadwal (kd_jadwal VARCHAR(5) NOT NULL,pukul TIME NOT NULL,
PRIMARY KEY(kd_jadwal)) ;
Simpan dengan nama jadwal.sql
o Tabel harga_tiket :
CREATE TABLE harga_tiket (kd_kereta VARCHAR(5) NOT NULL,harga VARCHAR(8),
PRIMARY KEY(kd_kereta)) ;
Simpan dengan nama harga_tiket.sql
6) Mengisi data tabel
o Mengisi data pada tabel kereta
INSERT INTO kereta (kd_kereta,nama_kereta,kapasitas,kd_tujuan,kd_jadwal) VALUES ("K011","Mutiara Timur","200","TK03","J13"),("K022","Penataran","250","TK01","J12"),("K041","Komuter","150","TK04","J14"),("K031","Kereta Barang","0","TK06","J11"),("K066","Eksekutif","100","TK02","J13"),("K051","Malang Express","175","TK01","J11"),("K023","Penataran","250","TK01","J15"),
("K071","Jaya Baru","125","TK05","J15"),("K067","Eksekutif","100","TK01","J17");
Simpan dengan nama data_kereta.sql
o Mengisi data pada tabel tujuan
INSERT INTO tujuan (kd_tujuan,tujuan) VALUES ("TK01","Malang"),("TK02","Jakarta"),("TK03","Banyuwangi"),("TK04","Sidoarjo"),("TK05","Blitar"),("TK06","Madiun");
Simpan dengan nama data_tujuan.sql
o Mengisi data pada tabel jadwal
INSERT INTO jadwal (kd_jadwal,pukul) VALUES ("J11","08:00"),("J12","09:45"),("J13","10:15"),("J14","11:00"),("J15","13:15"),("J16","15:45"),("J17","17:15");
Simpan dengan nama data_jadwal.sql
o Mengisi data pada tabel harga_tiket
INSERT INTO harga_tiket (kd_kereta,harga) VALUES ("K011","12000"),("K022","5.000"),("K023","5.000"),("K041","4.000"),("K051","15.000"),("K066","75.000"),("K067","25.000"),("K071","95.00");
Simpan dengan nama data_harga_tiket.sql
*) semua file tersebut di eksekusi dengan cara mengetik sintaks :
SOURCE (alamat data ) (nama file) contoh:
source D:\basisdata\kereta.sql
untuk menampilkan table yang telah dibuat tadi, menggunakan sintaks:
SELECT *FROM [nama_tabel];
C. JOIN
Join dapat diklasifikasikan kedalam dua jenis, yaitu:
Inner Join
Inner join pada dasarnya adalah menemukan persimpangan (intersection) antara
dua buah tabel. Contoh sintaks inner join diperlihatkan sebagai berikut:
SELECT *FROM keretaINNER JOIN tujuanON kereta.kd_tujuan = tujuan.kd_tujuan;
Simpan dengan nama innerjoin.sql
Outer Join
Outer join dibagi ke dalam tiga jenis: Left, Right, dan Full outer join.
Left Outer Join
Contoh sintaks Left Outer Join diperlihatkan sebagai berikut:
SELECT *FROM kereta kLEFT OUTER JOIN harga_tiket hON k.kd_kereta = h.kd_kereta;
Simpan dengan nama leftouterjoin.sql
Right outer join
Contoh sintaks Right Outer Join diperlihatkan sebagai berikut:
SELECT *FROM kereta kRIGHT OUTER JOIN harga_tiket hON k.kd_kereta = h.kd_kereta;
Simpan dengan nama rightouterjoin.sql
D. SUBQUERY
Subquery adalah salah satu metode untuk mendapatkan informasi dari
beberapa tabel dalam database. Arti subquery sendiri adalah query didalam query.
jadi untuk mendapatkan informasi pada tabel ataupun relasional tabel yang sangat
kompleks kita dapat menggunakan kondisi dengan sub permintaan tertentu.
Subquery dapat diklasifikasikan ke dalam tiga jenis yaitu;
Scalar Subquery
Misal scalar subquery terdapat pernyataan berikut:
“ Dapatkan data kereta yang tujuannya sama dengan kereta dengan nama
kereta Malang Express “
Sintaks yang digunakan dalam pernyataan diatas adalah :
SELECT *FROM keretaWHERE kd_tujuan =
(SELECT kd_tujuan FROM kereta WHERE kd_kereta = "K051");Simpan dengan nama scalar_subquery.sql
Multiple-Row Subquery
Pada subquery ini, kita menggunakan operator komparasi IN, ANY/SOME
atau ALL
Operator IN
Kita bisa menggunakan operator ini untuk mendapatkan data kereta yang
mempunyai harga tiket. Sintaks yang digunakan dalam pernyataan ini adalah :
SELECT k.kd_kereta, k.nama_keretaFROM kereta kWHERE k.kd_kereta IN
(SELECT kd_kereta FROM harga_tiket);Simpan dengan nama operatorin.sql
Operator ANY/SOME
Operator ANY/SOME memiliki arti: membandingkan suatu nilai dengan setiap
nilai yang dikembalikan oleh subquery.
Misalkan kita ingin mendapatkan data kereta yang memiliki kapasitas lebih
besar dari sembarang kapasitas pada kereta tujuan Malang.
SELECT *FROM keretaWHERE kapasitas > ANY
(SELECT kapasitas FROM kereta WHERE kd_tujuan = "TK01");Simpan dengan nama operatorany.sql
Operator ALL
Operator ALL memiliki arti membandingkan suatu nilai dengan semua nilai
yang dikembalikan oleh subquery.
Misal, tampilkan data kereta yang mempunyai kapasitas lebih kecil dari semua
kapasitas penumpang dengan tujuan kereta ke Malang.
SELECT *FROM keretaWHERE kapasitas < ALL
(SELECT kapasitas FROM kereta WHERE kd_tujuan = "TK01");Simpan dengan nama operatorall.sql
Multiple-Column Subquery
Pada Multiple-Column Subquery, nilai dari subquery dalam bentuk kolom ganda
dikomparasikan dengan query.
Misalkan kita ingin menampilkan data kereta yang jadwal keberangkatan sama
dengan kereta barang.
SELECT *FROM keretaWHERE kd_jadwal IN(SELECT kd_jadwal FROM jadwalWHERE kd_jadwal = "J11");Simpan dengan nama operatorany.sql
E. STORED PROCEDURE
Stored procedure adalah sebuah prosedur layaknya subprogram (subrutin) di
dalam bahasa pemrograman regular yang tersimpan dalam katalog basis data. Misal
untuk menciptakan procedure menggunakan perintah :
DELIMITER //CREATE PROCEDURE getKereta ()BEGIN
SELECT *FROM kereta;END //DELIMITER;
Simpan dengan nama procedure.sql
Untuk memanggilnya menggunakan perintah:
CALL getKereta ();
Dalam implementasi nyata, penggunaan stored procedure sering melibatkan
parameter. Di MySQL, parameter stored procedure dibedakan menjadi tiga mode:
IN,OUT, dan INOUT.
Parameter IN
Misal, kita ingin mendapatkan semua data kereta di kapasitas penumpang tertentu.
DELIMITER //
CREATE PROCEDURE penumpang (IN kpts INT(5))BEGIN
SELECT *FROM keretaWHERE kapasitas = kpts;
END //
DELIMITER;Simpan dengan nama parameterin.sql
Untuk memanggil stored procedure yang memiliki parameter, maka kita harus
menspesifikasikan argumenya. Misalnya kita ingin mendapatkan data kereta dengan
kapasitas 175.
Parameter OUT
Misal, kita ingin mendapatkan jumlah seluruh penumpang pada tabel kereta.
DELIMITER //
CREATE PROCEDURE jumlah_penumpang (OUT total INT(5))BEGIN
SELECT SUM(KAPASITAS)INTO totalFROM kereta;
END //
DELIMITER;Simpan dengan nama parameterout.sql
Untuk memanggil stored procedure dengan parameter OUT, maka kita harus
menspesifikasikan argumenya. Lalu langkah selanjutnya, untuk mendapatkan nilai
variable dengan menggunakan perintah SELECT.
Parameter INOUT
Pada parameter ini, kita bisa mengirimkan parameter ke stored procedure dan
mendapatkan nilai kembalian yang baru. Sebagai contoh kita buat stored procedure
seperti berikut :
DELIMITER //CREATE PROCEDURE berangkat_pkl (INOUT arg VARCHAR(5))
BEGINSELECT COUNT(kd_kereta)INTO argFROM keretaWHERE kd_jadwal = arg;
END //
DELIMITER ;Simpan dengan nama parameterinout.sql
Contoh penggunaannya, misal untuk mendapatkan jumlah kereta yang jadwalnya
“J13”
F. TRIGGER
Trigger dapat diartikan sebagai himpunan kode (posedural) yang diesksekusi secara
otomatis sebagai respon atas suatu kejadian berkaitan dengan tabel basis data.
kejadian (event) yang dapat digunakan trigger umumnya berupa pernyataan INSERT,
UPDATE dan DELETE.
Contoh pernyataan pembuatan Trigger sebagai berikut:
DELIMITER //CREATE TRIGGER tambah_kereta
BEFORE INSERT ON keretaFOR EACH ROWBEGIN
SET NEW.kapasitas = NEW.kapasitas - 10;END //DELIMITER ;
Simpan dengan nama trigger.sql
Pernyataan diatas memiliki arti untuk memgurang nilai kapasitas dengan 10 setiap
kali ada penambahan data baru.
Berikan perintah untuk menambah data baru seperti;
INSERT keretaVALUES (“K081”, “Logawa”, “200”, “TK03”, “J16”);Query OK, 1 row affected (0.08 sec)
Periksa hasilnya;