Laporan Adm Basis Data [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 PRAKTIKUM ADMINISTRASI BASIS DATA



Oleh Isnani NIM



: 1957301025



Kelas



: TI 2C



Jurusan /Prodi



: TIK/TI



Dosen Pembimbing : Salahuddin, M.CS



KEMENTERIAN RISET, TEKNOLOGI DAN PERGURUAN TINGGI POLITEKNIK NEGERI LHOKSEUMAWE TAHUN AJARAN 2021



LEMBAR PENGESAHAN



Judul Praktikum



: Laporan Praktikum Basis Data



Tanggal Penyerahan Laporan



: 29 Juni 2021



Nama Praktikan



: Isnani



NIM



: 1957301025



Kelas



: TI 2.C



Nilai



:



Keterangan



:



Lhokseumawe,29 Juni 2021 Dosen Pembimbing



Salahuddin, M.CS NIP : 19740424 200212 1 001



i



DAFTAR ISI



LEMBAR PENGESAHAN............................................................................................................2 DAFTAR ISI..................................................................................................................................3 BAB I PENDAHULUAN..............................................................................................................1 1.1 Tujuan....................................................................................................................................1 1.2 Dasar Teori.............................................................................................................................1 BAB II PEMBAHASAN................................................................................................................3 2.1 Percobaan...............................................................................................................................3 BAB III PENUTUP........................................................................................................................1 3.1 Kesimpulan...........................................................................................................................1 DAFTAR PUSTAKA.....................................................................................................................2



ii



BAB I PENDAHULUAN 1.1 Tujuan Mahasiswa diharapkan dapat : 1. 2. 3. 4. 5.



Melakukan konfigurasi terhadap database yang ada Melakukan pembagian user Membuat trigger, beserta mengetahui kelebihan penggunaan trigger Membuat store procedure beserta function Memahami penggunaan store procedure dan function



1.2 Dasar Teori • MySQL merupakan software sistem manajemen basis data (Database Management System) yang popular. MySQL bersifat open source. Website MySQL http://www.mysql.com menyediakan informasi terkini tentang MySQL. Pengelolaan database dapat dilakukan dengan menggunakan perintah-perintah SQL (Struktur Query Language), bahasa yang khusus digunakan dalam basis data relasional. Perintah-perintah SQL dikelompokkan menjadi: • DDL (Data Definition Language) DDL berisi perintah-perintah bahasa SQL untuk pembuatan objek database, table, index, pengaturan relationship, dan melakukan perubahan dalam menentukan struktur penyimpanan data. • DML (Data Manipulation Language) DML berisi perintah-perintah bahasa SQL untuk melakukan manipulasi dan pengambilan data pada suatu basis data, yang mencerminkan operasi dasar dari suatu basis data berupa penyisipan atau penambahan data baru (insert), penghapusan data (delete), pengubahan data (update), dan menampilkan data kembali dalam berbagai cara, gaya dan kebutuhan (select) • DCL (Data Control Language)DCL berisi perintah-perintah bahasa SQL untuk melakukan pengaturan terhadap keamanan dan pengontrolan basis data. Keamanan dalam basis data diwujudkan dalam pemberian atau pencabutan hak akses pemakai (user privileges) pada berbagai tingkatan pengguna (admin, supervisor, user) pada akses database, table, dan field. Sedangkan pengontrolan dalam basis data diwujudkan dalam perintah untuk penguncian (lock) suatu data pada suatu simpul saat suatu perubahan dilakukan, mengesahkan (commit) atau membatalkan (rollback) suatu perintah pemasukandata. User dapat menggunakan MySQL melalui tampilan grafis (GUI) milik Xampp. Dalam GUI user dapat menggunakan perpaduan fitur-fitur siap pakai pada Xampp (GUI) dengan pemberian perintah SQL pada tab SQL (SQL). •



Membuat User MySQL adalah sistem manajemen basis data relasional open-source yang paling populer. MySQL Server memungkinkan kita untuk membuat banyak akun 1



• 1. 2. 3. 4. 5. 6. 7. •



• 1. 2. 3. 4. 5. 6. 7. 8.



pengguna dan memberikan hak istimewa yang sesuai sehingga pengguna dapat mengakses dan mengelola basis data. Membuat user MySQL cukup mudah, cukup dengan menjalankan satu perintah. Perlu di perhatikan bahwa membuat user MySQL harus memperhatikan faktor keamanan. Terutama Keamanan meliputi kebijakan pemilihan kata sandi yang kuat, dan senantiasa memeriksa hak akses setiap user yang Ada di MySQL. Hak Akses User Ada beberapa jenis hak istimewa yang dapat diberikan ke akun pengguna. Hak istimewa yang paling umum digunakan adalah: ALL PRIVILEGES - memberikan semua hak istimewa ke akun pengguna. CREATE - akun pengguna diizinkan untuk membuat database dan tabel. DROP - akun pengguna diizinkan untuk menghapus database dan tabel. DELETE - akun pengguna diizinkan untuk menghapus baris dari tabel tertentu. INSERT - akun pengguna diizinkan untuk memasukkan baris ke tabel tertentu. SELECT - akun pengguna diizinkan untuk membaca database. UPDATE - akun pengguna diizinkan untuk memperbarui baris tabel. Trigger Trigger Merupakan Sebuah Script Mysql Yang Memicu Terjadinya Suatu Kejadian Seperti INSERT, UPDATE, DELETE Secara Otomatis Setelah Syarat Tertentu terpenuhi. Biasanya TRIGGER akan dijalankan sebelum atau sesudah proses INSERT, UPDATE, DELETE (Perintah DML) Script dasar trigger adalah sebagai berikut : CREATE TRIGGER nama_trigger after kejadian(i/u/d) ON nama_tabel FOR EACH ROW BEGIN INSERT INTO nama_tabel SET nama_field = kejadian(new/old).nama_field, nama_field = kejadian(new/old).nama_field ON DUPLICATE KEY UPDATE nama_field=nama_field+kejadian(new/old).nama_field; END$$



 Store Procedure Stored Procedure adalah sebuah fungsi berisi kode SQL yang dapat digunakan kembali. Dalam Stored Procedure juga dapat dimasukkan parameter sehingga fungsi dapat digunakan lebih dinamis berdasarkan parameter tersebut. Stored procedure adalah kumpulan pernyataan/procedure SQL yang disimpan dalam database. Stored procedure dapat menerima parameter, dan Anda dapat mengatur variabel, menulis pernyataan IF, dan lainnya dalam stored procedure.Sebagian besar dari kita cukup akrab dengan pengaturan normal untuk membangun aplikasi database, yaitu: membuat database, membuat tabel, mengatur indeks, CRUD data dan sebagainya. Alur kerja itu berfungsi dengan baik dalam banyak kasus, tetapi ada satu aspek penting dari pemrograman basis data yang hilang yaitu stored procedure.Stored procedure dikompilasi sekali dan disimpan dalam bentuk yang dapat dieksekusi kembali. 2



Sehingga prosedur dapat dipanggil dengan cepat dan efisien. Kode yang dapat dieksekusi secara otomatis di-cache dan dibagikan di antara pengguna. Hal ini menyebabkan terjadinya penurunan kebutuhan memori. Dengan mengelompokkan pernyataan SQL, stored procedure memungkinkan laporan diproses dengan satu panggilan yang kemudian bisa mengurangi lalu lintas jaringan dan meningkatkan waktu respon. Berikut ini ada kelebihan menggunakan stored procedure: 1. Performa yang Lebih Baik Stored Procedure dikompilasi dan kemudian di-cache dan digunakan lagi. Sehingga waktu respon akan menjadi lebih cepat ketika stored procedure yang sama dieksekusi lagi. 2. Modular Jika beberapa aplikasi ingin menggunakan query yang sama, maka dengan cara tradisional Anda menduplikasi kode yang tidak perlu pada aplikasi, cara terbaik adalah menempatkan kode ke dalam database. 3. Keamanan Lebih Baik Aplikasi yang memanfaatkan pernyataan sql yang dibuat secara dinamis sangat rentan terhadap serangan injeksi SQL, sedangkan stored procedure dapat menghindari serangan injeksi SQL sepenuhnya.  Functions Fungsi (function) atau kata lainnya method merupakan suatu sub program yang diperuntukan untuk mengerjakan suatu perintah tertentu sesuai dengan fungsi method itu sendiri. Didalam mysql sudah terdapat beberapa fungsi default yang dapat digunakan untuk mengerjakan tugas tertentu. Misalnya untuk mencari nilai minimal, menghitung rata-rata dan menjumlahkan suatu nilai. Dengan menggunakan fungsi tentu saja pekerjaan untuk mengelolah dan analisis data menjadi lebih mudah dan akurat. Function merupakan salah satu fitur di SQL, berupa kumpulan perintah SQL yang disimpan dalam database SQL. biasanya function ini bisa dikombinasikan dengan Stored Procedure dan dalam phpMyAdmin biasanya Function dan Stored Procedure dapat ditemui dalam Routines jika menggunakan MySQL.



BAB II PEMBAHASAN 2.1 Percobaan  Create User 1. Membuat Database MariaDB [(none)]> create database pnl; Query OK, 1 row affected (0.004 sec)



2. Masuk kebagian database mysql MariaDB [pnl]> use mysql; Database changed



3. Menampilkan seluruh database MariaDB [mysql]> show databases; +--------------------+



3



| Database | +--------------------+ | akademik | | db | | dbperpus | | mysql | | phpmyadmin | | pnl | | test | | uts | +--------------------+ 18 rows in set (0.527 sec)



4. Menggunakan database pnl MariaDB [(none)]> use pnl; Database changed



5. Membuat tabel mahasiswa_tik MariaDB [pnl]> create table mahasiswa_tik (nim varchar(15) not null, nama varchar(50) not null, tgllahir date not null, ipk decimal(3,2)); Query OK, 0 rows affected (0.848 sec)



6. Mengisi data pada tabel mahasiswa_tik MariaDB [pnllhokseumawe]> insert into mahasiswa_tik (nim, nama, tgllahir, ipk) values ("1957301025", "Isnani", "2000-12-26", 3.71); Query OK, 1 row affected (0.143 sec)



7. Menampilkan isi tabel mahasiswa_tik MariaDB [pnl]> select*from mhs_tik; +------------+---------------+------------+------+ | nim | nama | tgllahir | ipk | +------------+---------------+------------+------+ | 1957301025 | Isnani | 2000-12-25 | 3.71 | +------------+---------------+------------+------+ 1 row in set (0.001 sec)



8. Menampilkan kolom beserta info dari kolom tabel mhs_tik MariaDB [pnl]> desc mhs_tik; +----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ | nim | varchar(12) | NO | | NULL | | | nama | varchar(100) | NO | | NULL | | | tgllahir | date | NO | | NULL | | | ipk | decimal(3,2) | YES | | NULL | |



4



+----------+--------------+------+-----+---------+-------+ 4 rows in set (0.057 sec)



9. Membuat tabel mahasiswa_tataniaga MariaDB [pnl]> create table mhs_tataniaga (nim varchar(12) not null, nama varchar(100) not null, tgllahir date not null, ipk decimal(3,2)); Query OK, 0 rows affected (0.289 sec)



10.



Mengisi data pada tabel mahasiswa_tataniaga



MariaDB [pnl]> insert into mhs_tataniaga (nim, nama, tgllahir, ipk) values ("196338010", "Raihan Jihan", "2000-10-08", 3.6); Query OK, 1 row affected (0.422 sec



11.



Membuat user dengan nama ilkom_admin2 dengan password „tes‟



MariaDB [pnl]> create user ilkom_admin2 IDENTIFIED by 'tes'; Query OK, 0 rows affected (0.049 sec)



12.



Membuat user dengan nama ilkom_admin



MariaDB [pnlhokseumawel]> create user ilkom_admin; Query OK, 0 rows affected (0.029 sec)



13.



Menampilkan seluruh user beserta host dan password yang dienkripsi



MariaDB [mysql]> select host, user, password from user; +-----------+-----------+----------+ | Host | User | Password | +-----------+-----------+----------+ | localhost | root | | | 127.0.0.1 | root | | | ::1 | root | | | localhost | pma | | | localhost | admin_tik | | | % | uts1 | | | localhost | uts1 | | | % | hehe | | | localhost | hehe | | +-----------+-----------+----------+ 9 rows in set (0.497 sec)



 Grant User 1. Membuat user admin_tik dengan password tik MariaDB [(none)]> create user admin_tik IDENTIFIED by 'tik'; Query OK, 0 rows affected (0.157 sec)



2. Membuat user dengan IP address dan password 5



MariaDB [(none)]> create user 'admeen'@'192.168.0.1'IDENTIFIED by 'tes'; Query OK, 0 rows affected (0.003 sec)



3. Memberi hak akses ke user admin_tik hanya untuk SELECT MariaDB [(none)]> GRANT SELECT ON pnl.mahasiswa_tik TO 'admin_tik'@'localhost'; Query OK, 0 rows affected (0.103 sec)



4. Membuat user admin1 atau admin pertama MariaDB [(none)]> create user 'admin1'@'localhost' IDENTIFIED BY 'admin1'; Query OK, 0 rows affected (0.058 sec)



5. Menghapus user admin MariaDB [(none)]> drop user 'admeen'@'192.168.0.1'; Query OK, 0 rows affected (0.032 sec)



6. Memberi hak akses SELECT ke semua tabel di database pnl MariaDB [(none)]> GRANT SELECT ON pnl.* TO 'admin1'@'localhost'; Query OK, 0 rows affected (0.125 sec)



7. Menerapkan Hak Akses User MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.001 sec)



8. Melihat hak akses admin1 MariaDB [(none)]> SHOW GRANTS FOR 'admin1'@'localhost'\G *************************** 1. row *************************** Grants for admin1@localhost: GRANT USAGE ON *.* TO 'admin1'@'localhost' IDENTIFIED BY PASSWORD '*6D45FD76D5E9C6A404E39C25106A7F032659ACB8' *************************** 2. row *************************** Grants for admin1@localhost: GRANT SELECT ON `pnl`.* TO 'admin1'@'localhost' 2 rows in set (0.000 sec)



9. Perbedaan menggunakan ; dan \G diatas MariaDB [(none)]> SHOW GRANTS FOR 'admin1'@'localhost'; +--------------------------------------------------------------------------------------------------------------+ | Grants for admin1@localhost | +--------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'admin1'@'localhost' IDENTIFIED BY PASSWORD '*6D45FD76D5E9C6A404E39C25106A7F032659ACB8' |



6



| GRANT SELECT ON `pnl`.* TO 'admin1'@'localhost' | +--------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.000 sec)



10.



Memberi hak akses SELECT, INSERT, UPDATE, DELETE pada user admin1



MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE ON pnl.mhs_tik TO 'admin1'@'localhost'; Query OK, 0 rows affected (0.062 sec)



11.



Merestart dan menerapkan hak akses yang diberikan



MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.001 sec)



12.



Melihat hak akses user



MariaDB [(none)]> SHOW GRANTS FOR 'admin1'@'localhost'; +-------------------------------------------------------------------------------------------------------------+ | Grants for admin1@localhost | +-------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'admin1'@'localhost' IDENTIFIED BY PASSWORD '*6D45FD76D5E9C6A404E39C25106A7F032659ACB8' | | GRANT SELECT ON `pnl`.* TO 'admin1'@'localhost' | | GRANT SELECT, INSERT, UPDATE, DELETE ON `pnl`.`mhs_tik` TO 'admin1'@'localhost' | +-------------------------------------------------------------------------------------------------------------+ 3 rows in set (0.000 sec)



13.



Melihat Isi Tabel



MariaDB [pnllhokseumawe]> show tables; +--------------------------+ | Tables_in_pnllhokseumawe | +--------------------------+ | mhs_tataniaga | | mhs_tik | +--------------------------+ 2 rows in set (0.001 sec)



7



14.



Update tabel mahasiswa_tik



MariaDB [pnl]> update mhs_tik set nama="Rifnatul Hasannah" where nim="1957301072"; Query OK, 1 row affected (0.087 sec) Rows matched: 1 Changed: 1 Warnings: 0



15.



Input data melalui user admin1



MariaDB [pnl]> insert into mhs_tik values ("1957301022", "Hafiz", "2001-05-09", 3.7); Query OK, 1 row affected (0.109 sec)



16.



Hapus data melalui user admin1



MariaDB [pnl]> delete from mhs_tik where nim="1957301022"; Query OK, 1 row affected (0.109 sec)



17.



Describe tabel mahasiswa_tik



MariaDB [pnl]> desc mhs_tik; +----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ | nim | varchar(12) | NO | | NULL | | | nama | varchar(50) | NO | | NULL | | | tgllahir | date | NO | | NULL | | | ipk | decimal(3,2) | YES | | NULL | | +----------+--------------+------+-----+---------+-------+ 4 rows in set (0.180 sec)



 Latihan 1 1. Berikan hak akses kepada user tertentu/user1 (INSERT, UPDATE, DELETE terhadap database dan semua tabel) MariaDB [mysql]> GRANT INSERT,UPDATE,DELETE ON pnl.* TO 'user1'@'localhost'; Query OK, 0 rows affected (0.046 sec) MariaDB [mysql]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.001 sec)



2. Berikan hak akses kepada user tertentu/user2 (FULL, kepada database dan tabel tertentu serta hanya 2 column tertentu) MariaDB [(none)]> GRANT SELECT(nim,nama), INSERT, UPDATE, DELETE, DROP, CREATE ON pnl.mahasiswa_tik TO 'user2'@'localhost'; Query OK, 0 rows affected (0.112 sec) MariaDB [(none)]> FLUSH PRIVILEGES;



8



Query OK, 0 rows affected (0.001 sec)



3. Berikan hak akses kepada user3 (INSERT, UPDATE, DELETE untuk 3 database tertentu dan semua tabel) MariaDB [(none)]> GRANT INSERT,UPDATE,DELETE ON pnl.* TO 'user3'@'localhost'; Query OK, 0 rows affected (0.056 sec) MariaDB [(none)]> GRANT INSERT,UPDATE,DELETE ON perpustakaan.* TO 'user3'@'localhost'; Query OK, 0 rows affected (0.056 sec) MariaDB [(none)]> GRANT INSERT,UPDATE,DELETE ON penjualan.* TO 'user3'@'localhost'; Query OK, 0 rows affected (0.101 sec)



4. Berikan hak akses kepada user4 (Hak akses kesemua database / full akses) MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'user4'@'localhost'; Query OK, 0 rows affected (0.110 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.001 sec)



5. Tampilkan hak akses yang telah diberikan kepada user tertentu! perintah GRANTS  user1 MariaDB [(none)]> SHOW GRANTS FOR 'user1'@'localhost'; +---------------------------------------------------------------------------+ | Grants for user1@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'user1'@'localhost' | | GRANT INSERT, UPDATE, DELETE ON `pnllhokseumawe`.* TO 'user1'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.000 sec)



 user2 MariaDB [(none)]> SHOW GRANTS FOR 'user2'@'localhost'; +------------------------------------------------------------------+ | Grants for user2@localhost | +------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'user2'@'localhost' | | GRANT SELECT (nama, nim), INSERT, UPDATE, DELETE, CREATE, DROP | |ON`pnllhokseumawe`.`mahasiswa_tik` TO 'user2'@'localhost' | +------------------------------------------------------------------+ 2 rows in set (0.000 sec)



9



 user3 MariaDB [(none)]> SHOW GRANTS FOR 'user3'@'localhost'; +----------------------------------------------------------------------------+ | Grants for user3@localhost | +----------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'user3'@'localhost' | | GRANT INSERT, UPDATE, DELETE ON `pnl`.* TO 'user3'@'localhost' | | GRANT INSERT, UPDATE, DELETE ON `penjualan`.* TO 'user3'@'localhost' | +----------------------------------------------------------------------------+ 4 rows in set (0.000 sec)



 user4 MariaDB [(none)]> SHOW GRANTS FOR 'user4'@'localhost'; +----------------------------------------------------+ | Grants for user4@localhost | +----------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'user4'@'localhost' | +----------------------------------------------------+ 1 row in set (0.000 sec)



6. Cabut hak akses untuk user tertentu/user3 yang sudah diberikan! MariaDB [(none)]> REVOKE ALL PRIVILEGES ON pnl.* FROM 'user3'@'localhost'; Query OK, 0 rows affected (0.116 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.001 sec)



 Hasilnya : MariaDB [(none)]> SHOW GRANTS FOR 'user3'@'localhost'; +----------------------------------------------------------------------- ---+ | Grants for user3@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'user3'@'localhost' | | GRANT INSERT, UPDATE, DELETE ON `pnl`.* TO 'user3'@'localhost' | | GRANT INSERT, UPDATE, DELETE ON `perpustakaan`.* TO 'user3'@'localhost' | +---------------------------------------------------------------------------+ rows in set (0.000 sec)



10



 Trigger 1. Membuat tabel nilai MariaDB [pnl]> create table nilai (nim varchar(10) not null, nilai_huruf char(2) not null, primary key(nim)); Query OK, 0 rows affected (0.181 sec)



2. Membuat tabel lognilai MariaDB [pnl]> create table lognilai (nim varchar(10) not null, nilai_lama char(1), nilai_baru char(1), keterangan varchar(50), waktu_ubah datetime, primary key(nim)); Query OK, 0 rows affected (0.489 sec)



3. Membuat trigger update pada tabel nilai MariaDB [pnl]> create trigger log_upd1 -> after update ON nilai -> FOR EACH ROW -> INSERT INTO lognilai -> values (OLD.nim, OLD.nilai_huruf, NEW.nilai_huruf, "Update Nilai", NOW()); Query OK, 0 rows affected (0.055 sec)



4. Trigger delete pada tabel nilai MariaDB [pnl]> create trigger log_del1 -> after delete on nilai -> for each row -> insert into -> lognilai (nim,nilai_lama,keterangan,waktu_ubah) values (OLD.nim, OLD.nilai_huruf, 'Update Nilai', NOW()); Query OK, 0 rows affected (0.133 sec)



5. Mengisi data tabel nilai MariaDB [pnl]> insert into nilai values ("1957301017", "A+"), ("1957301001", "D"), ("1957301069","F"), ("1957301073", "A"); Query OK, 4 rows affected (0.153 sec) Records: 4 Duplicates: 0 Warnings: 0



6. Menghapus trigger MariaDB [pnl]> drop trigger LOG_UPD1; Query OK, 0 rows affected (0.168 sec) MariaDB [pnle]> drop trigger LOG_DEL1; Query OK, 0 rows affected (0.101 sec)



7. Tabel nilai dan tabel lognilai MariaDB [pnl]> desc nilai; +------------+----------+------+-----+---------+-------+



11



| Field | Type | Null | Key | Default | Extra | +------------+----------+------+-----+---------+-------+ | nim | char(10) | NO | PRI | NULL | | | nilaihuruf | char(1) | YES | | NULL | | +------------+----------+------+-----+---------+-------+ 2 rows in set (0.039 sec) MariaDB [pnllhokseumawe]> desc lognilai; +------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+-------+ | nim | char(10) | NO | | NULL | | | nilai_lama | char(1) | YES | | NULL | | | nilai_baru | char(1) | YES | | NULL | | | keterangan | varchar(100) | YES | | NULL | | | waktu_ubah | datetime | NO | PRI | NULL | | +------------+--------------+------+-----+---------+-------+ 5 rows in set (0.036 sec)



8. Trigger database pnl pada tabel nilai MariaDB [pnl]> show triggers; +----------+--------+-------+------------------------------------------------------------------------------------------------------------------------------+-------+------------------------+---------------------------------------------------+----------------+----------------------+---------------------+-------------------+ | Trigger | Event | Table | Statement | Timing | Created | sql_mode | Definer | character_set_client | collation_connection | Database Collation | +----------+--------+------+-----------------------------------------------------------------------------------------------------------------------------+-------+-----------------------+----------------------------------------------------+----------------+----------------------+---------------------+-------------------+ | LOG_UPD1 | UPDATE | nilai | INSERT INTO lognilai VALUES (OLD.nim, OLD.nilaihuruf, NEW.nilaihuruf, 'Update Nilai', waktu_ubah=NOW()) | AFTER | 2021-03-24 11:18:05.04 | NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION | root@localhost | cp850 | cp850_general_ci | utf8mb4_general_ci | | LOG_DEL1 | DELETE | nilai | INSERT INTO lognilai(nim,nilai_lama,keterangan,waktu_ubah) VALUES (OLD.nim, OLD.nilaihuruf, 'Update Nilai', waktu_ubah=NOW()) | AFTER | 2021-03-24 11:18:17.64 | NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION | root@localhost | cp850 | cp850_general_ci | utf8mb4_general_ci | +----------+--------+-------+----------------------------------------------------



12



--------------------------------------------------------------------------+-------+-----------------------+----------------------------------------------------+----------------+----------------------+---------------------+-------------------+ 2 rows in set (0.040 sec)



9. Update data tabel nilai MariaDB [pnl]> update nilai set nilaihuruf="A" where nim="1957301022"; Query OK, 1 row affected (0.136 sec) Rows matched: 1 Changed: 1 Warnings: 0



10.



Data pada tabel lognilai



MariaDB [pnl]> select*from lognilai; +----+------------+------------+------------+--------------+--------------------+ | id | nim | nilai_lama | nilai_baru | keterangan | waktu_ubah | +----+------------+------------+------------+--------------+--------------------+ | 1 | 1957301022 | F | A | Update Nilai | 2021-06-22 20:05:02 | +----+------------+------------+------------+--------------+--------------------+ 1 row in set (0.000 sec)



11.



Data tabel nilai



MariaDB [pnl]> select*from nilai; +------------+------------+ | nim | nilaihuruf | +------------+------------+ | 1957301023 | A+ | | 1957301011 | D | | 1957301069 | A | | 1957301022 | A | +------------+------------+ 4 rows in set (0.001 sec)



12.



Menghapus data di tabel nilai



MariaDB [pnl]> DELETE FROM nilai WHERE nim="1957301011"; Query OK, 1 row affected (0.152 sec)



13.



Tampilan tabel lognilai sekarang



MariaDB [pnl]> select*from lognilai; +----+------------+------------+------------+--------------+--------------------+ | id | nim | nilai_lama | nilai_baru | keterangan | waktu_ubah |



13



+----+------------+------------+------------+--------------+--------------------+ | 1 | 1957301069 | F | A | Update Nilai | 2021-06-23 20:07:02 | | 2 | 19573010411 | A | NULL | Hapus Nilai | 2021-06-23 20:07:28 | +----+------------+------------+------------+--------------+--------------------+ 2 rows in set (0.001 sec)



14. Melakukan update data pada tabel nilai MariaDB [pnl]> update nilai set nilaihuruf="A" where nim="1957301011"; Query OK, 1 row affected (0.130 sec) Rows matched: 1



Changed: 1



Warnings: 0



 Store Procedure 1. Membuat database baru MariaDB [pnl]> create database StoreProcedure



-> ;



Query OK, 1 row affected (0.389 sec)



2. Membuat tabel mahasiswa MariaDB [StoreProcedure]> CREATE TABLE mahasiswa(nim int(11), nama varchar(100), alamat varchar(50), PRIMARY KEY(nim)); Query OK, 0 rows affected (0.773 sec)



3. Mengisi data tabel mahasiswa MariaDB [StoreProcedure]> INSERT INTO mahasiswa -> VALUES (19570625, "Isnani","Lhokseumawe"), -> (19570602, "Sharhan","Lhokseumawe"), -> (19570603, "Mesti", "Padang"), -> (19570604, "Isnani", "Medan"), -> (19570605, "Rifna", " Medan"); Query OK, 5 rows affected (0.050 sec) Records: 5



Duplicates: 0



Warnings: 0



4. Melakukan select pada tabel mahasiswa MariaDB [StoreProcedure]> SELECT * FROM mahasiswa; +----------+----------------+------------ -+ | nim | nama | alamat | +----------+----------------+------------ -+ | 195706011 | Raihan Jihan | Lhokseumawe | | 195706023 | Sharhan | Lhokseumawe |



14



| 19570613 | Mesti | Padang | | 195706025 | Isnani | Medan | | 195706015 | Rifna | Medan | +----------+----------------+--------------+ 5 rows in set (0.008 sec)



5. Membuat store procedure untuk select tabel mahasiswa MariaDB [StoreProcedure]> DELIMITER // MariaDB [StoreProcedure]> CREATE PROCEDURE selectMHS() -> BEGIN -> SELECT nim, nama FROM mahasiswa; -> END // Query OK, 0 rows affected (0.292 sec)



6. Melakukan pemanggilan storeprocedure MariaDB [StoreProcedure]> call selectMHS(); +----------+---------------+ | nim | nama | +----------+---------------+ | 19570611 | Raihan Jihan | | 19570625 | Isnani | | 19570615 | Rifna | +----------+----------------+ 5 rows in set (0.003 sec) Query OK, 0 rows affected (0.008 sec)



7. Membuat storeprocedure dengan parameter MariaDB [storeprocedure]> DELIMITER $$ MariaDB [storeprocedure]> CREATE PROCEDURE alamatMHS( -> alamatMhs varchar(100) -> ) -> BEGIN -> SELECT * FROM mahasiswa WHERE alamat = alamatMhs; -> END $$ Query OK, 0 rows affected (0.222 sec) MariaDB [storeprocedure]> DELIMITER ;



8. Melakukan pemanggilan storeprocedure alamat = geudong MariaDB [StoreProcedure]> call alamatMHS("Lhokseumawe"); +----------+---------------+-------------+ | nim



| nama



| alamat



|



+----------+---------------+-------------+ | 19570601 | Raihan Jihan



| Lhokseumawe |



+----------+---------------+-------------+



15



2 rows in set (0.108 sec) Query OK, 0 rows affected (0.112 sec)



9. Membuat INSERT dengan StoreProcedure MariaDB [StoreProcedure]> DELIMITER // MariaDB [StoreProcedure]> CREATE PROCEDURE insertMHS( -> nimMhs int(10), namaMhs varchar(100), alamatMhs varchar(100) -> ) -> BEGIN -> INSERT INTO mahasiswa VALUES (nimMhs, namaMhs, alamatMhs); -> END // Query OK, 0 rows affected (0.015 sec)



10.



Melakukan INSERT dengan StoreProcedure



MariaDB [StoreProcedure]> call insertMHS(19570606, "Riski", "Solo"); -> //; Query OK, 1 row affected (0.005 sec)



11.



Hasil di tabel sekarang



MariaDB [StoreProcedure]> select*from mahasiswa; -> / -> // +----------+---------------+-------------+ | nim | nama | alamat | +----------+---------------+-------------+ | 19570601 | Raihan Jihan | Lhokseumawe | | 19570604 | Isnani | Medan | | 19570605 | Rifna | Medan | | 19570606 | Riski | Solo | +----------+---------------+-------------+ 6 rows in set (0.000 sec)



12.



Membuat storeprocedure delete



MariaDB [StoreProcedure]> DELIMITER // MariaDB [StoreProcedure]> CREATE PROCEDURE delMHS( -> nimMhs int(10) -> ) -> BEGIN -> DELETE FROM mahasiswa WHERE nim = nimMhs; -> END // Query OK, 0 rows affected (0.117 sec)



13.



Memanggil delMHS agar menghapus mahasiswa dengan nim 20231705



MariaDB [StoreProcedure]> call delMHS(19570606); -> //



16



Query OK, 1 row affected (0.007 sec)



14.



Data tabel mahasiswa sekarang



MariaDB [StoreProcedure]> select*from mahasiswa; -> // +----------+----------------+------------ -+ | nim | nama | alamat | +----------+----------------+------------ -+ | 195706011 | Raihan Jihan | Lhokseumawe | | 195706014 | Isnani | Medan | | 195706015 | Rifna | Medan | +----------+----------------+--------------+ 5 rows in set (0.008 sec)



Function 1. Membuat tabel jurusan MariaDB [storeprocedure]> CREATE TABLE jurusan(kdJur char(2)PRIMARY KEY, namaJur varchar(40)); Query OK, 0 rows affected (0.391 sec)



2. Mengisi data pada tabel jurusan MariaDB [storeprocedure]> INSERT INTO jurusan VALUES ("TI","Teknik Informatika"), -> ("SI","Sistem Informasi"), -> ("MI", "Manajemen Informatika"), -> ("TK", "Teknik Komputer"); Query OK, 5 rows affected (0.125 sec) Records: 5 Duplicates: 0 Warnings: 0



3. Melihat Isi tabel jurusan MariaDB [StoreProcedure]> select*from jurusan; -> // +-------+-------------------------+ | kdJur | namaJur | +-------+-------------------------+ | MI | Manajemen Informatika | | SI | Sistem Informasi | | TI | Teknik Informatika | | TK | Teknik Komputer | +-------+-------------------------+ 5 rows in set (0.000 sec)



4. Membuat function f_jurusan MariaDB [storeprocedure]> DELIMITER | MariaDB [storeprocedure]> CREATE FUNCTION f_jurusan(kode char(5)) -> RETURNS varchar(40) -> BEGIN -> DECLARE namaJur varchar(50);



17



-> CASE kode -> WHEN 'TI' THEN -> SET namaJur = 'Teknik Informatika'; -> WHEN 'SI' THEN -> SET namaJur = 'Sistem informasi'; -> WHEN 'MI' THEN -> SET namaJur = 'Manajemen Informatika'; -> WHEN 'KA' THEN -> SET namaJur = 'Teknik Komputer'; -> ELSE SET namaJur = 'Kode Jurusan Salah'; -> END CASE; -> RETURN namaJur; -> END; -> | Query OK, 0 rows affected (0.173 sec) MariaDB [storeprocedure]> DELIMITER ;



5. Mencoba memanggil function f_jurusan MariaDB [storeprocedure]> SELECT f_jurusan('TI'); +--------------------+ | f_jurusan('TK') | +--------------------+ | Teknik Komputer | +--------------------+ 1 row in set (0.032 sec)



6. Mencoba memanggil function dengan argumen yang tidak ada di function MariaDB [storeprocedure]> SELECT f_jurusan('Kosong'); +---------------------+ | f_jurusan('Kosong') | +---------------------+ | Kode Jurusan Salah | +---------------------+ 1 row in set, 1 warning (0.001 sec)



7. menambah field baru di tabel mahasiswa MariaDB [storeprocedure]> ALTER TABLE mahasiswa ADD jurusan char(2); Query OK, 0 rows affected (0.153 sec) Records: 0 Duplicates: 0 Warnings: 0



8. membuat foreign key antara jurusan di tabel mahasiswa dengan kdJur di tabel jurusan MariaDB [storeprocedure]> ALTER TABLE mahasiswa ADD FOREIGN KEY(jurusan) REFERENCES jurusan(kdJur); Query OK, 6 rows affected (1.280 sec) Records: 6 Duplicates: 0 Warnings: 0



18



9. Mengupdate kolom jurusan pada tabel mahasiswa untuk seluruh mahasiswa MariaDB [storeprocedure]> UPDATE mahasiswa SET jurusan = 'TK' WHERE mahasiswa.nim = 19570623; Query OK, 1 row affected (0.363 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [storeprocedure]> UPDATE mahasiswa SET jurusan = 'SI' WHERE mahasiswa.nim = 19570611; Query OK, 1 row affected (0.120 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [storeprocedure]> UPDATE mahasiswa SET jurusan = 'KA' WHERE mahasiswa.nim = 19570613; Query OK, 1 row affected (0.047 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [storeprocedure]> UPDATE mahasiswa SET jurusan = 'MI' WHERE mahasiswa.nim = 19570614; Query OK, 1 row affected (0.049 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [storeprocedure]> UPDATE mahasiswa SET jurusan = 'TK' WHERE mahasiswa.nim = 20210615; Query OK, 1 row affected (0.126 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [storeprocedure]> UPDATE mahasiswa SET jurusan = 'TI' WHERE mahasiswa.nim = 20210616; Query OK, 1 row affected (0.114 sec) Rows matched: 1 Changed: 1 Warnings: 0



10.



Data tabel mahasiswa sekarang



MariaDB [StoreProcedure]> select*from mahasiswa;| +----------+---------------+-------------+---------+ | nim | nama | alamat | jurusan | +----------+---------------+-------------+---------+ | 19570601 | Raihan Jihan | Lhokseumawe | TI | | 19570602 | Sharhan | Lhokseumawe | SI | | 19570603 | Mesti | Padang | TK | | 19570604 | Isnani | Medan | MI | | 19570605 | Rifna | Medan | MI | +----------+---------------+-------------+---------+ 5 rows in set (0.001 sec)



11. Melakukan select terhadap data mahasiswa, dan memanggil fungsi f_jurusan untuk mencetak nama jurusan melalu kode jurusan MariaDB [storeprocedure]> SELECT nim, nama, f_jurusan(jurusan) FROM mahasiswa;



19



+----------+---------------+-------------------------+ | nim | nama | f_jurusan(jurusan) | +----------+---------------+-------------------------+ | 19570601 | Raihan Jihan | Teknik Informatika | | 19570602 | Sharhan | Sistem informasi | | 19570603 | Mesti | Teknik Komputer | | 19570604 | Isnani | Manajemen Informatika | | 19570605 | Rifna | Manajemen Informatika | +----------+---------------+-------------------------+ 5 rows in set (0.001 sec)



20



BAB III PENUTUP 3.1 Kesimpulan Pada praktiukum di atas dapat di ambil kesimpulan: Administrasi database adalah pekerjaan yang fungsi utamanya adalah mendukung keseluruhan database komputer. Tugas dukungan ini dilakukan oleh seseorang yang disebut administrator database, atau DBA. Basis data membutuhkan pengelolaan dan pemeliharaan yang konstan, dan DBA secara khusus dilatih untuk melakukan semua fungsi yang diperlukan untuk melakukannya.  Ada banyak tanggung jawab yang terlibat saat melakukan administrasi database. DBA umumnya bertanggung jawab atas keseluruhan desain, tata letak, dan implementasi database itu sendiri, dan perlu merencanakan setiap perubahan atau pertumbuhan di masa depan yang diperlukan. Mereka memantau kinerja database dan aplikasi terkait, menyetel dan membuat modifikasi sesuai kebutuhan untuk memastikan semuanya bekerja secara optimal. 



1



DAFTAR PUSTAKA 1. NgodingData. 30 Oktober 2019. “Belajar MySQL Lanjut: Cara Membuat Stored Procedure”. https://ngodingdata.com/cara-membuat-stored-procedure-di-mysql/ 2. NgodingData. 03 November 2019. “Belajar MySQL Lanjut: Cara Membuat Trigger”. https://ngodingdata.com/cara-membuat-trigger-mysql/ 3. Yudana.



14



Oktober



2018. “Membuat



Stored Procedure



dengan



MySQL”. https://www.yudana.id/tutorial-membuat-stored-procedure-denganmenggunakan-mysql/ 4. LinuxID.



“Cara Membuat



User



MYSQL



dan



Hak



Akses



MYSQL”. https://www.linuxid.net/25264/cara-membuat-user-mysql-dan-hak-aksesmysql/



2