A 1808561054 Praktikum Modul 11 [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

LAPORAN TUGAS PRAKTIKUM MODUL 11



Disusun oleh : I Made Eko Satria Wiguna



1808561054



(A)



FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM PROGRAM STUDI TEKNIK INFORMATIKA 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 11 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.



Praya, 30 April 2021



I Made Eko Satria Wiguna



i



Daftar Isi KATA PENGANTAR................................................................................................................ i Daftar Isi .............................................................................................................................. ii Bab I Pendahuluan ............................................................................................................. 1 1.1



Latar Belakang..................................................................................................... 1



1.2



Tujuan ................................................................................................................. 1



1.3



Manfaat ............................................................................................................... 1



Bab II Landasan Teori ......................................................................................................... 2 2.1



Pengertian SQL .................................................................................................... 2



2.2



Deklarasi Stored Procedure ................................................................................ 8



2.3



Perulangan dengan Cursor.................................................................................. 9



2.4



Trigger ................................................................................................................. 9



Bab III Hasil Praktikum ..................................................................................................... 11 3.1



Pendahuluan ..................................................................................................... 11



3.2



Praktikum ......................................................................................................... 13



3.3



Query SQL ......................................................................................................... 14



3.4



Hasil Praktikum ................................................................................................. 16



Bab IV Kesimpulan dan Saran .......................................................................................... 19 4.1



Kesimpulan ........................................................................................................ 19



4.2



Saran ................................................................................................................. 19



Daftar Pustaka................................................................................................................... 20



ii



Bab I Pendahuluan 1.1 Latar Belakang SQL (Structured Query Language) adalah sebuah bahasa yang digunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya. SQL pertama kali didefinisikan oleh American National Standards Institute (ANSI) pada tahun 1986. 1.2 Tujuan 1. Mengenal perintah dasar pada MySQL 2. Mengetahui fungsi dari perintah MySQL 1.3 Manfaat 1. Dapat membuat sebuah database. 2. Mengakses dan memanipulasi data pada database. 3. Mampu mengeksekusi query terharap database.



1



Bab II Landasan Teori 2.1 Pengertian SQL SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya. 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). Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data relasional dikenal dengan System/R. Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis data populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalam manajemen basis data. 1. Standarisasi Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86.Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun 1992. Versi terakhir dikenal



2



3



dengan SQL92. Pada tahun 1999 dikeluarkan standar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi kebanyakan implementasi mereferensi pada SQL92. 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 Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen



basis



data



(SMBD)[1],



namun



secara



umum



implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada kebanyakan SMBD. Tujuan dari pemakaian SQl dalam menyelesaikan tugastugas yang berkaitan dengan database, diantaranya : ➢ Memanggil data dari satu table atau lebih ➢ Memanipulasi data ➢ Mendapatkan ringkasan informasi ➢ Membuat, memodifikasi atau menghapus table ➢ Membuat atau menghapus index



3. Fungsi (Function ) SQL MS SQL Server memiliki beberapa fungsi untuk manipulasi data antara lain : a. Fungsi string atau karakter b. Fungsi tanggal c. Fungsi matematika d. Fungsi system atau fungsi scalar e. Fungsi User Defined



4



f. Fungsi tambahan yang dapat digunakan untuk mengubah (konversi) dari data yang satu ke data yang lain. 4. Elemen Dasar SQL Elemen Dasar SQL terdiri dari pernyataan, nama, tipe data, konstanta, ekspresi dan fungsi bawaan : 1)



ALTER



: mengubah struktur tabel



2)



COMMIT



: mengakhiri sebuah eksekusu transaksi



3)



CREATE



: menciptakan table,indeks



4)



DELETE



: menghapus baris pada table



5)



DROP



: menghapus table,indeks



6)



GRANT



: menugaskan hak terhadap basis data kepada pengguna atau group pengguna.



7)



INSERT



: menambahkan sebuah baris pada table



8)



REVOKE



: membatalkan hak terhadap basis data



9)



ROLLBACK



: mengembalikan ke dalam bentuk semula sekiranya suatu transaksi gagal dilaksanakan



10) SELECT



: memilih baris dan kolom pada tabel



11) UPDATE



: mengubah nilai pada sebuah baris.



5. Operator SQL Operator SQL dibagi menjadi 3 jenis yaitu aritmatika, logika dan perbandingan.



5



1. Operator aritmatika



2. Operator logika



3. Operator Perbandingan



SQL secara garis besar terdiri dari 4 macam, yaitu : a. DDL (Data Definition Language)



6



DDL adalah suatu pernyataan untuk mendefinisikan struktur atau skema database. Contoh : ➢ Create , untuk membuat object dalam database, bisa berupa table, view, procedure, function, trigger, ataupun package (oracle). Contoh : create table mahasiswa (npm char(7) not null primary key,nama char(30), alamat char(50)); ➢ Alter, untuk mengubah structur dari suatu objek dalam database. Contoh : alter table mahasiswa add email char(30) ➢ Drop, untuk menghapus objek dalam database. Contoh: drop table mahasiswa; ➢ Truncate, untuk menghapus/membersihkan isi table beserta alokasi space yang ada di dalamnya, Contoh : truncate table mahasiswa ➢ Comment, memberikan keterangan/komentar pada ke dalam kamus data. berisi deskripsi dari sebuah objek dalam database. ➢ Rename, mengganti nama objek dalam database.(Mysql, Oracle) b. DML (Data Manipulation Language) DML



adalah



pernyataan



yang



digunakan



untuk



mengorganisir data dengan menggunakan skema objek. ➢ Select, untuk menyeleksi data dari dalam database. Contoh : select npm, nama, alamat from mahasiswa; ➢ Insert, untuk menginputkan record ke dalam suatu table. Contoh : insert into mahasiswa(npm,nama,alamat) values (‘0401034’,’Abdul Malik Ikhsan’,’Jalan Jakarta No. 28’) ➢ Update, untuk melakukan update dari table yang sudah dibuat. Contoh:



update



mahasiswa



set



npm=’001’



where



npm=’0401034’; ➢ Delete, untuk menghapus isi record baik semuanya ataupun sebagian dari suatu table, Contoh : -



delete from mahasiswa (menghapus semua isi )



7



-



delete from mahasiswa where npm = ‘001’(hanya pada kondisionalnya saja).



➢ Merge, penggabungan update, insert, delete pada suatu table berdasarkan kondisi yang cocok. (Oracle). ➢ EXEC, memanggil procedure yang telah kita buat. Contoh : kita buat procedure seleksimhs: create procedure seleksimhs @npm char(7) as select * from mahasiswa where npm=@npm. Cara eksekusi : EXEC seleksimhs ‘001’; c. DCL (Data Control Language) Terdiri dari 2 statement, yaitu Grant, Revoke, dan DENY, Grant untuk memberikan hak akses, dan Revoke untuk membuang hak yang telah dilarang dengan perintah Deny atau hak yang telah diberikan oleh perintah GRANT, sedangkan Deny. Contoh GRANT : GRANT INSERT, UPDATE, DELETE On mahasiswa To public Contoh REVOKE : Revoke SELECT On mahasiswa To Public Contoh DENY : DENY SELECT On mahasiswa To Public d. TCL (Transaction Control) Pernyataan untuk mengelola perubahan yang dilakukan oleh DML. •



COMMIT → menyimpan hasil perintah







SAVEPOINT



→identifikasi



point



transaksi



yang



akan



digunakan nantinya. •



ROLLBACK → Restore database ke kondisi commit terakhir.



8







SET TRANSACTION → mengubah level transaksi.



2.2 Deklarasi Stored Procedure 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: 1. Stored procedure meningkatkan performa aplikasi. Setelah selesai dibuat maka stored procedure akan dikompilasi dan disimpan pada katalog



database.



Stored



procedure



berjalan



lebih



cepat



dibandingkan perintah SQL yang belum dikompilasi yang dikirim oleh aplikasi. 2. Stored procedure mengurangi traffic dari database dan aplikasi karena tidak perlu mengirimkan perintah SQL yang belum dikompilasi. Yang perlu dikirimkan oleh aplikasi ke database server adalah nama dari stored procedurenya dan hasilnya akan dikirim balik oleh database server ke aplikasi pemanggil. 3. Stored procedure dapat digunakan berulang-ulang dan transparan terhadap semua aplikasi yang ingin menggunakannya. 4. Stored procedure adalah aman karena database administrator dapat memberikan akses yang sesuai ke tiap stored procedure tanpa memberikan akses langsung ke tabel. Akan tetapi, stored procedure juga memiliki kekurangan sebagai berikut: 1. Stored procedure membuat database server memiliki beban yang tinggi dalam hal memori dan prosesor. 2. Stored procedure hanya mengandung perintah-perintah deklarasi MySQL sehingga sangat sulit untuk menulis prosedur yang kompleks yang dibutuhkan oleh aplikasi. 3. Stored procedure tidak dapat di-debug.



9



2.3 Perulangan dengan Cursor MySQL mendukung penggunaan Cursor pada stored procedure, function dan trigger. Cursor digunakan untuk melakukan iterasi pada himpunan record dari suatu tabel yang dihasilkan oleh suatu query dan melakukan proses untuk masing-masing record tersebut. Cursor pada MySQL memiliki beberapa sifat sebagai berikut: 1. Read Only: artinya cursor tidak dapat diupdate. 2. Non-scrollable: cursor hanya dapat berjalan satu arah, tidak bisa dilompati maupun disuruh maju atau mundur pada result set. 3. Asensitive: update pada tabel yang diacu oleh cursor tidak disarankan karena dapat memberikan hasil yang tidak diinginkan. Untuk mendeklarasikan cursor digunakan perintah berikut: DECLARE nama_cursor CURSOR FOR perintah_select; Setelah itu cursor harus dibuka menggunakan perintah OPEN: OPEN nama_cursor; Selanjutnya untuk mendapatkan baris berikutnya dan memindahkan cursor ke baris tersebut dilakukan menggunakan perintah FETCH: FETCH nama_cursor INTO daftar_variabel; 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. 2.4 Trigger Trigger merupakan sekumpulan perintah atau sintaks yang akan secara otomatis dijalankan jika terjadi operasi tertentu dalam tabel atau view. Trigger



10



digunakan untuk memanggil satu atau beberapa perintah SQL secara otomatis sebelum atau sesudah terjadi proses INSERT, UPDATE atau DELETE dari suatu tabel. Sebagai contoh misalnya kita ingin menyimpan id pelanggan secara otomatis ke tabel ‘log’ sebelum menghapus data di tabel pelanggan. Adapun jenis perubahan yang dijalankan dalam trigger adalah : a) BEFORE INSERT on TABEL1 : menjalankan proses di dalamnya pada saat sebelum melakukan operasi INSERT di TABEL1 b) AFTER INSERT on TABEL1 menjalankan proses di dalamnya pada saat sesudah melakukan operasi INSERT di TABEL1 c) BEFORE UPDATE on TABEL1 menjalankan proses di dalamnya pada saat sebelum melakukan operasi UPDATE di TABEL1 d) AFTER UPDATE on TABEL1 menjalankan proses di dalamnya pada saat sesudah melakukan operasi UPDATE di TABEL1 e) BEFORE DELETE on TABEL1 : menjalankan proses di dalamnya pada saat sebelum melakukan operasi DELETE di TABEL1 f) AFTER DELETE on TABEL1 : menjalankan proses di dalamnya pada saat sesudah melakukan operasi DELETE di TABEL1



Bab III Hasil Praktikum 3.1 Pendahuluan SOAL 1. Jelaskan apa itu Trigger? 2. Jelaskan apa keuntungan penggunaan Trigger? 3. Jelaskan Jenis jenis Trigger?



11



12



JAWABAN 1. Trigger merupakan sekumpulan perintah atau sintaks yang akan secara otomatis dijalankan jika terjadi operasi tertentu dalam tabel atau view. 2. Keuntungan Trigger antara lain: a. Standarisasi (penyeragaman) proses. Trigger dibuat satu kali dan tersimpan



dalam



database,



sehingga



semua



client



yang



menggunakan database tersebut sekaligus adalah pengguna Trigger. Dengan demikian seluruh client akan menggunakan operasi yang sama terhadap suatu proses dalam database, karena Trigger yang dipakai sama. b. Menyederhanakan pemrograman. Apabila Trigger sudah dibuat dalam database server, seluruh program dalam bahasa apapun, yang mengakses database tersebut akan secara otomatis menggunakan Triger yang ada tanpa perlu membuat perintahnya dalam program aplikasi. c. Mudah diperbaharui. Apabila Trigger pernah di-update dalam database server, semua client akan menggunakan perbaruan yang terakhir. d. Kecepatan dan efisiensi proses. Oleh karena Trigger disimpan dalam server dalam kode yang sudah terkompilasi, dan dilaksanakan dalam server sehingga lalu-lintas jaringan menjadi berkurang. e. Memudahkan kerja secara tim. Apabila Trigger dan Stored Procedure sudah dibuat, anggota tim kerja dapat menggunakan bahasa pemrograman yang berbeda dalam mengaksesnya, karena Trigger disimpan dan dilaksanakan oleh server, tanpa melihat bahasa pemrograman apa yang dipakai oleh pengguna database. 3. Adapun jenis perubahan yang dijalankan dalam trigger adalah : g) BEFORE INSERT on TABEL1 : menjalankan proses di dalamnya pada saat sebelum melakukan operasi INSERT di TABEL1 h) AFTER INSERT on TABEL1 menjalankan proses di dalamnya pada saat sesudah melakukan operasi INSERT di TABEL1



13



i) BEFORE UPDATE on TABEL1 menjalankan proses di dalamnya pada saat sebelum melakukan operasi UPDATE di TABEL1 j) AFTER UPDATE on TABEL1 menjalankan proses di dalamnya pada saat sesudah melakukan operasi UPDATE di TABEL1 k) BEFORE DELETE on TABEL1 : menjalankan proses di dalamnya pada saat sebelum melakukan operasi DELETE di TABEL1 l) AFTER DELETE on TABEL1 : menjalankan proses di dalamnya pada saat sesudah melakukan operasi DELETE di TABEL1



3.2 Praktikum



14



3.3 Query SQL CREATE TABLE barang( id_barang INT PRIMARY KEY AUTO_INCREMENT, nama_barang VARCHAR(20), stok INT, harga INT, update_date DATETIME )ENGINE = InnoDB; DELIMITER $$ INSERT INTO barang (id_barang, nama_barang, stok, harga, update_date) VALUES (1, 'piatos',100,5000,'2013-6-3 12:00:00'), (2, 'big cola',50,3500,'2013-6-3 12:00:00'), (3, 'fanta',100,4500,'2013-6-3 12:00:00'), (4, 'lotte',50,1500,'2013-6-3 12:00:00'), (5, 'top', 50,1000,'2013-6-3 12:00:00'); DELIMITER $$ CREATE TABLE penjualan_detail( no_nota INT, id_barang INT,



15



jml_brg INT, harga_per_unit INT, total INT )ENGINE = InnoDB; DELIMITER $$ CREATE TRIGGER pengurangan_stok AFTER INSERT ON penjualan_detail FOR EACH ROW BEGIN UPDATE barang SET stok = stok - 1 WHERE id_barang = new.id_barang; END$$ DELIMITER; DELIMITER $$ CREATE TRIGGER log AFTER UPDATE ON barang FOR EACH ROW BEGIN INSERT INTO log set jenis_operasi = 'UPDATE', satement = 'UPDATE barang S ET stok = stok - 1 WHERE barang.id_barang = penjualan_detail.id_barang', wkt_eks ekusi = NOW(); END$$ DELIMITER; CREATE TABLE log( id_log INT PRIMARY KEY AUTO_INCREMENT, jenis_operasi VARCHAR (6), satement VARCHAR(255), wkt_eksekusi DATETIME )engine = InnoDB; DELIMITER$$ INSERT INTO penjualan_detail (no_nota,id_barang,jml_brg,harga_per_unit,total) VALUES(10,1,2,5000,10000), (10,2,1,3500,3500), (10,4,2,1500,3000), (11,1,2,5000,10000), (11,2,2,3500,7000), (12,2,2,3500,7000), (12,2,2,3500,7000), (13,2,2,3500,7000), (13,2,2,3500,7000), (14,2,3,3500,10500), (14,2,3,3500,10500), (14,2,3,3500,10500), (15,1,2,5000,10000), (15,2,2,3500,7000), (16,1,2,5000,10000),



16



(16,3,2,4500,9000), (17,4,1,1500,1500);



3.4 Hasil Praktikum 1. Trigger pengurangan stok a. Query : DELIMITER $$ CREATE TRIGGER pengurangan_stok AFTER INSERT ON penjualan_detail FOR EACH ROW BEGIN UPDATE barang SET stok = stok - 1 WHERE id_barang = new.id_barang; END$$ DELIMITER; b. Hasil



2. Trigger log a. Query: DELIMITER $$ CREATE TRIGGER log AFTER UPDATE ON barang FOR EACH ROW BEGIN INSERT INTO log set jenis_operasi = 'UPDATE', sateme nt = 'UPDATE barang SET stok = stok - 1 WHERE barang.id_ barang = penjualan_detail.id_barang', wkt_eksekusi = NOW (); END$$ DELIMITER;



17



b. Hasil



3. Hasil Trigger a. Tabel Barang sebelum insert dari table penjualan detail



18



b. Tabel log setelah insert data dari table penjualan detail



c. Tabel barang setelah insert dari table penjualan detail



Bab IV Kesimpulan dan Saran 4.1Kesimpulan SQL (Structured Query Language) adalah bahasa query yang standard yang digunakan sebagai suatu bahasa sederhana dan dasar, yang memungkinkan kita untuk berkomunikasi dengan database, membaca, menulis, dan memperoleh informasi yang berguna dari database. Operator pada SQL sangat membantu kita dalam mencari dan memodifikasi data pada tabel. 4.2 Saran Dalam penggunaan SQL sangat diperlukan ketelitian terutama dalam melakukan input data, karena dalam keadaan tertentu kesalahan tersebut dapat terjadi. Selain itu diharapkan juga kita bisa melakukan SQL ini melalui terminal karena jika kita memiliki server, SQL pada server tidak menggunakan GUI sehingga kita perlu membiasakannya sedini mungkin.



19



Daftar Pustaka Wikipedia.org. (2019, 15 November). SQL. Diakses pada 15 Februari 2021, dari https://id.wikipedia.org/wiki/SQL Dewaweb.com. (2020, 30 November). SQL: Pengertian, Fungsi Beserta Perintah Dasarnya.



Diakses



pada



15



Februari



2021,



https://www.dewaweb.com/blog/sql-pengertian-fungsi-besertaperintah-dasarnya/



20



dari