Laporan Basis Data

17
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

Transcript of Laporan Basis Data

Page 1: Laporan Basis Data

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

Page 2: Laporan Basis Data

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 :

Page 3: Laporan Basis Data

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

Page 4: Laporan Basis Data

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

Page 5: Laporan Basis Data

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"),

Page 6: Laporan Basis Data

("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];

Page 7: Laporan Basis Data

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

Page 8: Laporan Basis Data

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

Page 9: Laporan Basis Data

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

Page 10: Laporan Basis Data

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

Page 11: Laporan Basis Data

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.

Page 12: Laporan Basis Data

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”

Page 13: Laporan Basis Data

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;