0% menganggap dokumen ini bermanfaat (0 suara)
153 tayangan4 halaman

2 Menggunakan SQL

Dokumen tersebut berisi tentang penjelasan konsep dan penggunaan MySQL untuk membuat, mengakses, dan memanipulasi basis data secara lebih lanjut melalui penggunaan perintah SQL seperti DDL, DML, trigger, stored procedure dan function.

Diunggah oleh

Muhammad Ramdani
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
153 tayangan4 halaman

2 Menggunakan SQL

Dokumen tersebut berisi tentang penjelasan konsep dan penggunaan MySQL untuk membuat, mengakses, dan memanipulasi basis data secara lebih lanjut melalui penggunaan perintah SQL seperti DDL, DML, trigger, stored procedure dan function.

Diunggah oleh

Muhammad Ramdani
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 4

Nama : Muhammad Ramdani

NIM : 12210728
Kelas : 12.7A.01

Jawaban :

1. Menjalankan Aplikasi Untuk Membaca MySQL yaitu dengan menggunakan phpMyAdmin atau
dapat juga menggunakan MySQL Workbench.
2. Contoh Eksekusi DDL pada Sistem Pembayaran Listrik Pasca Bayar :

CREATE TABLE `agen` (

`id_agen` varchar(12) NOT NULL,

`nama` varchar(50) NOT NULL,

`alamat` text NOT NULL,

`no_telepon` varchar(15) NOT NULL,

`saldo` double NOT NULL,

`biaya_admin` double NOT NULL,

`username` varchar(30) NOT NULL,

`password` varchar(30) NOT NULL,

`akses` varchar(20) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

3. a. Isi data tabel menggunakan perintah DML :


INSERT INTO `agen` (`id_agen`, `nama`, `alamat`, `no_telepon`, `saldo`, `biaya_admin`,
`username`, `password`, `akses`) VALUES
('A20180125001', 'Yehezkiel', 'Cileungsi', '08568375128', 0, 2000, 'agen', 'agen123', 'agen');

b. Buat indeks :
ALTER TABLE `agen`
ADD PRIMARY KEY (`id_agen`);

c. Buatlah view tabel sesuai kebutuhan :


CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW
`qw_pembayaran` AS select `pembayaran`.`id_pembayaran` AS
`id_pembayaran`,`pembayaran`.`id_pelanggan` AS `id_pelanggan`,`pembayaran`.`tgl_bayar` AS
`tgl_bayar`,`pembayaran`.`waktu_bayar` AS `waktu_bayar`,`pembayaran`.`bulan_bayar` AS
`bulan_bayar`,`pembayaran`.`tahun_bayar` AS `tahun_bayar`,`pembayaran`.`jumlah_bayar` AS
`jumlah_bayar`,`pembayaran`.`biaya_admin` AS `biaya_admin`,`pembayaran`.`total_akhir` AS
`total_akhir`,`pembayaran`.`bayar` AS `bayar`,`pembayaran`.`kembali` AS
`kembali`,`pembayaran`.`id_agen` AS `id_agen`,`pelanggan`.`nama` AS
`nama_pelanggan`,`agen`.`nama` AS `nama_agen` from ((`pembayaran` join `pelanggan`
on((`pelanggan`.`id_pelanggan` = `pembayaran`.`id_pelanggan`))) join `agen`
on((`agen`.`id_agen` = `pembayaran`.`id_agen`))) ;

4. a. Identifikasi fitur pengolahan DML

b. Gunakan perintah DML untuk manipulasi antar tabel


INSERT INTO `tarif` (`id_tarif`, `kode_tarif`, `golongan`, `daya`, `tarif_perkwh`) VALUES
(3, 'R3/450VA', 'R3', '450VA', 1000),
(4, 'R1/900VA', 'R1', '900VA', 1500),
(5, 'R2/450VA', 'R2', '450VA', 750),
(8, 'R2/900VA', 'R2', '900VA', 1500),
(9, 'B1/1500VA', 'B1', '1500VA', 2000),
(10, 'R3/900VA', 'R3', '900VA', 1400),
(13, 'R1/450VA', 'R1', '450VA', 1000),
(16, 'R3/1300VA', 'R3', '1300VA', 1500);

c. Gunakan Perintah DML untuk manipulasi antar-view


DROP TABLE IF EXISTS `qw_pembayaran`;

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW


`qw_pembayaran` AS select `pembayaran`.`id_pembayaran` AS
`id_pembayaran`,`pembayaran`.`id_pelanggan` AS `id_pelanggan`,`pembayaran`.`tgl_bayar` AS
`tgl_bayar`,`pembayaran`.`waktu_bayar` AS `waktu_bayar`,`pembayaran`.`bulan_bayar` AS
`bulan_bayar`,`pembayaran`.`tahun_bayar` AS `tahun_bayar`,`pembayaran`.`jumlah_bayar` AS
`jumlah_bayar`,`pembayaran`.`biaya_admin` AS `biaya_admin`,`pembayaran`.`total_akhir` AS
`total_akhir`,`pembayaran`.`bayar` AS `bayar`,`pembayaran`.`kembali` AS
`kembali`,`pembayaran`.`id_agen` AS `id_agen`,`pelanggan`.`nama` AS
`nama_pelanggan`,`agen`.`nama` AS `nama_agen` from ((`pembayaran` join `pelanggan`
on((`pelanggan`.`id_pelanggan` = `pembayaran`.`id_pelanggan`))) join `agen`
on((`agen`.`id_agen` = `pembayaran`.`id_agen`))) ;

d. Tulis perintah DML secara efisien


INSERT INTO `tarif` (`id_tarif`, `kode_tarif`, `golongan`, `daya`, `tarif_perkwh`) VALUES
(3, 'R3/450VA', 'R3', '450VA', 1000);

5. Membuat stored procedure


CREATE DEFINER=`root`@`localhost` PROCEDURE `GetAllRecordsAgen` () NO SQL
BEGIN
SELECT * from agen;
END$$

6. Membuat function
DELIMITER $$
CREATE FUNCTION jumlahPembayaran(agen VARCHAR(12))
RETURNS INT
BEGIN
DECLARE jumlah INT;
SELECT COUNT(*) INTO jumlah FROM pembayaran
WHERE id_agen=agen;
RETURN jumlah;
END$$
DELIMITER ;

7. Membuat trigger
DELIMITER $$
CREATE TRIGGER update_alamat_agen
BEFORE UPDATE
ON agen
FOR EACH ROW
BEGIN
UPDATE INTO agen
set id_agen = OLD.id_agen,
alamat_lama=old.alamat
alamat_baru=new.alamat,
waktu = NOW();
END$$
DELIMITER;

8. Melakukan perintah commit dan rollback


START TRANSACTION;
INSERT INTO `agen` (`id_agen`, `nama`, `alamat`, `no_telepon`, `saldo`, `biaya_admin`,
`username`, `password`, `akses`) VALUES
('A20180125001', 'Yehezkiel', 'Cileungsi', '08568375128', 0, 2000, 'agen', 'agen123', 'agen');
COMMIT;
SELECT * FROM agen;

START TRANSACTION;
SELECT * FROM agen;
INSERT INTO `agen` (`id_agen`, `nama`, `alamat`, `no_telepon`, `saldo`, `biaya_admin`,
`username`, `password`, `akses`) VALUES
('A20180125001', 'Yehezkiel', 'Cileungsi', '08568375128', 0, 2000, 'agen', 'agen123', 'agen');
ROLLBACK;
SELECT * FROM agen;

Anda mungkin juga menyukai