Disusun oleh :
2021
KATA PENGANTAR
Puji dan syukur kami panjatkan kepada Tuhan Yang Maha Esa karena atas
berkat dan rahmat-Nya, saya bisa menyelesaikan tugas laporan Praktikum Modul
10 dengan tepat waktu. Laporan ini disusun untuk memenuhi tugas mata kuliah
Praktikum Basis Data.
Laporan ini telah saya susun dengan semaksimal mungkin dan mendapatkan
bantuan dari berbagai pihak sehingga dapat memperlancar proses pembuatannya.
Untuk itu saya menyampaikan banyak terima kasih kepada semua pihak yang telah
berkontribusi dalam pembuatan laporan ini. Laporan ini dibuat dengan segala
keterbatasan saya selaku penulis. Seperti pepatah “Tiada Gading Yang Tak Retak”,
penulis menyadari bahwa laporan ini masih jauh dari kata sempurna. Oleh karena
itu, penulis sangat mengharapkan masukan berupa kritik dan saran yang
membangun untuk perbaikan laporan ini di kemudian hari.
Akhir kata, penulis berharap kiranya laporan ini bermanfaat bagi kehidupan
kita khususnya dalam kehidupan masyarakat kita.
i
Daftar Isi
ii
Bab I
Pendahuluan
1.2 Tujuan
1.3 Manfaat
1
Bab II
Landasan Teori
Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama
EF Codd yang membahas tentang ide pembuatan basis data relasional
pada bulan Juni 1970. Artikel ini juga membahas kemungkinan
pembuatan bahasa standar untuk mengakses data dalam basis data
tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured
English Query Language).
1. Standarisasi
2
3
Saat ini sebenarnya tidak ada server basis data yang 100%
mendukung SQL92. Hal ini disebabkan masing-masing server
memiliki dialek masing-masing.
2. Pemakaian dasar
5. Operator SQL
Operator SQL dibagi menjadi 3 jenis yaitu aritmatika, logika
dan perbandingan.
5
1. Operator aritmatika
2. Operator logika
3. Operator Perbandingan
Contoh :
Contoh GRANT :
Contoh REVOKE :
Contoh DENY :
Definisi dari stored procedure adalah suatu bagian dari deklarasi kode SQL
yang disimpan di katalog database dan dapat dipanggil/dijalankan oleh suatu
program, trigger ataupun stored procedure lainnya. Stored procedure juga dapat
memanggil dirinya sendiri (recursive) akan tetapi tidak semua versi MySQL
mendukung stored procedure yang recursive. Beberapa keuntungan dari stored
procedure adalah:
OPEN nama_cursor;
Pada akhirnya ketika baris yang dibaca telah habis maka cursor harus ditutup
menggunakan perintah CLOSE:
CLOSE nama_cursor;
Satu hal yang perlu diingat ketika menggunakan cursor adalah untuk
mendeklarasikan handler NOT FOUND agar tidak terjadi pesan kesalahan
ketika tidak ada data.
8
Bab III
Hasil Praktikum
3.1 Pendahuluan
SOAL
1. Apa yang anda ketahui dengan Stored Precedure.
2. Apa yang ada ketahui dengan Cursor.
3. Sintaks apa saja yang terdapat pada Stored Precedure.
4. Sintaks apa saja yang terdapat pada Cursor.
5. apa yang membedakan Stored Precedure dengan Cursor.
9
JAWABAN
1. Stored procedure adalah suatu bagian dari deklarasi kode SQL yang
disimpan di katalog database dan dapat dipanggil/dijalankan oleh suatu
program, trigger ataupun stored procedure lainnya.
2. Cursor adalah fitur dari stored procedure. Cursor mampu melakukan
iterasi sepanjang row data dari suatu tabel.
3. Sintak Procedur:
DELIMITER //
CREATE PROCEDURE nama_procedure()
BEGIN
Query SQL Disini
END //
DELIMITER
4. Sintak Cursor:
DELIMITER $$
CREATE PROCEDURE nama_procedure ()
BEGIN
-- declare Variabel
DECLARE finished INTEGER DEFAULT 0;
DECLARE emailAddress varchar(100) DEFAULT "";
-- declare cursor
DEClARE curEmail
CURSOR FOR
-- query sql
SELECT email FROM employees;
OPEN curEmail;
getEmail: LOOP
FETCH curEmail INTO emailAddress;
IF finished = 1 THEN
LEAVE getEmail;
END IF;
-- build email list
SET emailList = CONCAT(emailAddress,";",emailList);
END LOOP getEmail;
CLOSE curEmail;
END$$
10
DELIMITER ;
5. Perbedaan procedure dan cursor adalah cursor merupakan bagian dari
procedure yang digunakan untuk menyimpan data yang lebih dari 1
record. Sedangkan procedure merupakan program yang di simpan pada
catalog sql sehingga memudahkan kita dalam mengolah data.
3.2 Praktikum
DELIMITER$$
CREATE PROCEDURE tambah_record(CustomerID VARCHAR(5),
ContactName Varchar(30),
CompanyName Varchar(40),
Address Varchar(60),
Phone Varchar(24))
BEGIN
INSERT INTO customers (CustomerID, CompanyName, ContactNam
e, Address, Phone)
VALUES (CustomerID,ContactName,CompanyName,Address,Phone);
END$$
DELIMITER;
DELIMITER $$
CREATE PROCEDURE total_belanja(CustomerID INT(5))
BEGIN
SELECT orders.CustomerID, orders.OrderDate, customers.Cont
actName, sum(`order details`.UnitPrice * `order details`.Quant
ity) As JumlahPesanan FROM ((customers INNER JOIN orders ON cu
stomers.CustomerID = orders.CustomerID) RIGHT JOIN `order deta
ils` ON orders.OrderID = `order details`.OrderID) WHERE orders
.CustomerID = CustomerID;
END$$
DELIMITER;
11
1. Procedur tambah_record
a. Query :
CALL tambah_record('TES2', 'EKO', 'TES2', 'TEst2', '091201231121');
b. Hasil
12
2. Procedure total_belanja
Bab IV
Kesimpulan dan Saran
4.1Kesimpulan
4.2 Saran
13
Daftar Pustaka
14