KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat Allah SWT, karena atas rahmat
dan karunia-Nya lah penulis dapat menyelesaikan modul mata kuliah Bahasa
Query ini. Sholawat dan salam semoga tetap dilimpahkan kepada Nabi
Muhammad SAW. Setelah beberapa tahun mengajar di Universitas
Muhammadiyah Sumatera Utara, banyak pengalaman yang mendorong penulis
untuk menulis sebuah modul yang dapat meningkatkan minat mahasiswa dalam
belajar karena modul memiliki kejelasan bahasa dan dengan metode yang mudah
dipahami. Didalam modul terdapat bahan ajar yang akan disampaikan dosen
kepada mahasiswa Program Studi Sistem Informasi Fakultas Ilmu Komputer dan
Teknologi Informasi Universitas Muhammadiyah Sumatera Utara sebagai mata
kuliah wajib yang akan dipelajari mahasiswa selama satu semester.
Bahasa Query sangat diperlukan bagi mahasiswa Program Studi Sistem
Informasi dikarenakan mata kuliah ini lanjutaan dari sistem basis data dan untuk
mendalami bahasa query pada database.
Penulis menyadari penyusunan modul bahasa query ini masih memiliki
kekurangan dan kelemahan, akhirnya kepada bapak/ibu dosen dan para pembaca
kiranya dapat memberikan masukan dan saran untuk lebih baik kedepannya.
(Al-Khowarizmi, M.Kom.)
i
DAFTAR ISI
ii
2. Tujuan Materi Pembelajaran .................................................... 17
3. Materi Pembelajaran ................................................................ 17
4. Tugas/Latihan .......................................................................... 18
h. Kegiatan Pembelajaran ke 8 ........................................................... 18
1. Prosedur dan Fungsi Tersimpan .............................................. 18
2. Tujuan Materi Pembelajaran .................................................... 18
3. Materi Pembelajaran ................................................................ 18
4. Tugas/Latihan .......................................................................... 20
i. Kegiatan Pembelajaran ke 9 ........................................................... 20
1. Trigger ..................................................................................... 20
2. Tujuan Materi Pembelajaran .................................................... 20
3. Materi Pembelajaran ................................................................ 20
4. Tugas/Latihan .......................................................................... 21
j. Kegiatan Pembelajaran ke 10 ......................................................... 22
1. Manajemen User Administrator............................................... 22
2. Tujuan Materi Pembelajaran .................................................... 22
3. Materi Pembelajaran ................................................................ 22
4. Tugas/Latihan .......................................................................... 27
IV. PENUTUP ........................................................................................ 28
DAFTAR PUSTAKA .................................................................................. 29
iii
I. IDENTITAS MATAKULIAH
1
II. PENDAHULUAN
A. Deskripsi Mahasiswa
2
8. Mahasiswa mampu menggunakan bahasa query dan menjelaskan
konsep Prosedur dan Fungsi Tersimpan
9. Mahasiswa mampu menggunakan bahasa query dan menjelaskan
konsep Trigger
10. Mahasiswa mampu melakukan mengaturan user pada manajemen basis
data
11. Mahasiswa mampu merancang sebuah penelitian dan menunagkannya
kedalam bentuk sebual laporan secara mandiri, terukur, dan bebas
plagiasi dengan benar dan bertanggung jawab berdasarkan nilai-nilai
Al-Islam dan kemuhammadiyahan.
3
III. PEMBELAJARAN
A. Kegiatan Pembelajaran-1
1. Query
2. Tujuan Materi Pembelajaran
Adapun tujuan pembelajaran dari mata kuliah ini ialah sebagai berikut:
a) Agar mahasiswa mengetahui tentang query
b) Agar mahasiswa mampu memahami dan merancang database dengan
bahasa query
3. Materi Pembelajaran
a. Pengenalan Bahasa Query
Teknologi informasi secara garis besar adalah suatu studi perancangan,
implementasi, pengembangan, dukungan atau manajemen sistem informasi
berbasis komputer terutama pada perangkat keras dan perangkat lunak atau secara
sederhana, salah satu fasilitas yang terdiri dari perangkat keras dan perangkat
lunak dalam mendukung dan meningkatkan kualitas informasi untuk setiap
lapisan masyarakat secara cepat dan berkualitas.
Database Manajemen Sistem (DBMS) adalah kumpulan dari program-
program yang membolehkan user untuk menciptakan dan memelihara sebuah
database. DBMS sudah menjadi peralatan standar untuk melindungi pengguna
komputer dari bagian-bagian kecil dalam pengelolaan secondary storage (hard
disk). DBMS didesain untuk meningkatkan produktivitas dari aplikasi para
programmer dan untuk memberikan kemudahan pengaksesan data oleh komputer.
Pengaksesan data di dalam DBMS dapat dilakukan dengan berbagai
macam cara. Dan tentunya dalam melakukan pengaksesan data ada hal-hal yang
perlu diperhatikan seperti ketepatgunaan implementasi dari data itu sendiri serta
waktu prosesnya. Ada banyak plan (rencana) yang dapat diikuti oleh database
manajemen sistem dalam memproses dan menghasilkan jawaban sebuah query.
Semua plan pada akhirnya akan menghasilkan jawaban (output) yang sama tetapi
pasti mempunyai harga yang berbeda-beda, seperti misalnya total waktu yang
diperlukan untuk menjalankan sebuah query.
Optimisasi query mencoba memberikan suatu pemecahan untuk
menangani masalah tersebut dengan cara menggabungkan sejumlah besar teknik-
teknik dan strategi, yang meliputi transformasi-transformasi logika dari query-
query untuk mengoptimisasi jalan akses dan penyimpanan data pada sistem file.
Setelah ditransformasikan, sebuah query harus dipetakan ke dalam sebuah urut-
urutan operasi untuk menghasilkan data-data yang diminta.
Sebuah query yang diekspresikan dalam sebuah bahasa query tingkat
tinggi seperti SQL mula-mula harus dibaca, diuraikan dan disahkan (scanning,
parsing, validating)1. Query tersebut kemudian dibentuk menjadi sebuah struktur
data yang biasa disebut dengan query tree. Dan kemudian DBMS (Database
Manajemen Sistem) harus merencanakan sebuah strategi eksekusi untuk
4
mendapatkan kembali hasil dari query dari file-file database. Tahapan-tahapan
proses dari sebuah query di dalam sebuah sistem database ditunjukkan pada
masing-masing tahapan :
Scanner melakukan identifikasi (pengenalan) token-token seperti SQL keywords,
attribute, dan relation name. Proses ini disebut dengan scanning.
Query Parser mengecek kevalidan query dan kemudian menterjemahkannya ke
dalam sebuah bentuk internal yaitu ekspresi relasi aljabar atau parse tree. Proses
ini disebut dengan parsing.
Query Optimizer memeriksa semua ekspresi-ekspresi aljabar yang sama untuk
query yang diberikan dan memilih salah satu dari ekspresi tersebut yang terbaik
yang memiliki perkiraan termurah. Dengan kata lain, tugas dari query optimizer
adalah menghasilkan sebuah rencana eksekusi. Proses ini disebut dengan
optimisasi query.
Code Generator atau Interpreter mentransformasikan rencana akses yang
dihasilkan oleh optimizer ke dalam kode-kode. Setelah itu, kode-kode tersebut
dikirimkan ke dalam query processor untuk dijalankan.
Query Processor melakukan eksekusi query untuk mendapatkan hasil query yang
diinginkan.
5
Pada umumnya, bahasa query yang digunakan untuk mengekspresikan sebuah
pernyataan dari query adalah SQL (Structure Query Language).
SQL adalah sebuah bahasa database yang luas yang memiliki statement-
statement (pernyataan) untuk definisi data, query dan update data (memperbaharui
data). SQL mempunyai satu statement dasar untuk mendapatkan kembali
informasi dari sebuah database. Statement dasar dari SQL adalah SELECT.
Bentuk dasar dari statement SELECT biasa disebut dengan blok select from where
yang terbentuk dari tiga macam klausa yaitu SELECT, FROM dan WHERE yang
mempunyai bentuk sebagai berikut :
4. Evaluasi
1. Bagaimana menampilan seluruh dari sebuah tabel didatabase!
2. Buatlah 2 tabel yang memiliki hubungan relasional!
3. Buatlah query dari 2 tabel!
B. Pembelajaran Ke-2
1. Sub Query
2. Tujuan materi pembelajaran
Adapun tujuan pembelajaran dari mata kuliah ini ialah sebagai berikut:
a) Agar mahasiswa mengetahui Sub Query
b) Agar mahasiswa dapat merancang perintah select didalam select.
3. Materi pembelajaran
a. SELECT INTO STATEMENT
SELECT INTO adalah sebuah perintah yang ada pada MySQL yang
digunakan untuk memindahkan data dari satu tabel ke tabel yang lain atau dari
satu database ke database yang lain. SELECT INTO sebenarnya juga dapat
6
memilah field yang mana sajakah yang ingin kita pindahkan dengan cara
menyebutkan nama fieldnya. Struktur SQL yang digunakan adalah select * into
tabelBaru from tabelLama; dan bila hanya digunakan untuk memindah kolom-
kolom tertentu saja maka Syntax yang digunakan adalah select namaKolom1,
namaKolom2, namaKolom3 into tabelBaru from tabelLama; Berikut adalah
beberapa contoh penggunaan SELECT INTO:
b. SUB QUERY
Sub Query adalah query nested atau sebuah query yang ada di dalam
query. Sub query merupakan pernyataan SELECT yang merupakan bagian dari
pernyataan INSERT, SELECT.. Query dasar dalam sub query :
SELECT namakolom FROM namatabel WHERE namakolom operator
(subquery);
Beberapa kegunaan dari Sub Query adalah :
1. Subquery digunakan untuk menyelesaikan persoalan dimana terdapat suatu
nilai yang tidak diketahui (unknown values).
2. Meng-copy data dari satu tabel ke tabel lain
3. Menerima data dari inline view
4. Mengambil data dari tabel lain untuk kemudian di update ke tabel yang dituju
5. Menghapus baris dari satu tabel berdasarkan baris dari tabel lain
Perintah ini hanya bisa menerima satu buah hasil dari sub query, jika hasil
dari sub query ada lebih adari satu maka akan terjadi error. Ada beberapa bahasan
terkait penggunaah Sub Query ini antara lain :
7
2. Sub query dengan ALL
Command ALL diikuti dengan operator perbandingan digunakan memiliki arti
menampilkan nilai jika perbandingan bernilai benar untuk semua data. Operator
perbandingan tersebut berupa ( <, >, =, != ). Berikut adalah query dasar dari sub
query all
Dapat juga bisa memberikan kondisi sesuai dengan kondisi yang kita inginkan
dengan penambahan perintah WHERE.
8
c. INDEX
Indexes adalah suatu bagian yang special dari system database yang
digunakan untuk peningkatan kemampuan menyeluruh dari proses
yang ada.MySQL mengijinkan antara 16 sampai 64 indexes untuk setiap table,
akan tetapi ini tergantung storage engine yang digunakan. Setiap index dapat
diletakan di field (kolom) mana saja, mulai dari field 1 sampai field 15. Walaupun
penggunaan beberapa field (multicolumn) index tidak terlihat nyata, akan tetapi
penggunaan ini akan memberikan kemudahan untuk kemampuan pencarian pada
sebuah atau banyak field (column).
Pada lain hal, ada sebuah hal yang menjadikan kelemahan dari
penggunaan index. Dimana dengan index kita dapat meningkatkan kecepatan
dalam membaca data dari database, tetapi akan membuat lambat proses perubahan
data dalam database, karena perubahan akan berpengaruh pada data yang di index.
Anda akan mendapat hasil yang normal ketika hanya menampilkan data dari
database jika dibandingkan anda melakukan proses tambah (insert) data atau ubah
(update) data yang sudah ada.
UNIQUE tidak dapat digunakan dalam jumlah banyak. Sebagian besar digunakan
seperti nilai tanggal, angka, nama, kota, kode pos yang berulang, terutama sekali
pada table dengan ribuan baris (record). Tetapi semua tergantung pada aplikasi
yang anda buat, apakah anda hanya menggunakan sekali-kali pada field yang
benar-benar harus unik, seperti alamat email, username dari sistem aplikasi
registrasi (sistem login). Anda tidak dapat mendefinisikan sekaligus PRIMARY
KEY dan UNIQUE dalam sebuah field, karena PRIMARY KEY sudah didesain
harus mengikut aturan unik.
9
3. Identifikasi suatu field akan mendapatkan keuntungan dari sebuah INDEX
Pada rekomendasi ada adalah ketika index akan membantu dan berfikir tentang
apa informasi akan disajikan. Jika anda memerlukan untuk melihat daftar dari
invoices berdasarkan tanggal atau total jumlah order, maka INDEX akan membuat
logical indexes. Jika sebuah table registrasi/login akan menggunakan kombinasi
pada username dan password untuk verifikasi suatu proses login, maka akan
dibuat index. Anda juga membuat index pada field foreign key anda.
Berikut adalah struktur SQL untuk membuat indeks pada suatu kolom
Sedangkan Unique index mirip dengan penggunaan indeks tetapi lebih digunakan
untuk mencegah duplikasi data yang terdapat dalam tabel. Jadi dengan adanya
unique index berarti pembaca tidak dapat meng-insert data yang sama dalam
sebuah tabel. Berikut struktur SQL nya :
4. Evaluasi
1. Jelaskan secara singkat tentang sub query!
2. Buatlah contoh pengunaan sub query!
C. Pembelajaran Ke-3
1. Natural Join
2. Tujuan materi pembelajaran
Adapun tujuan pembelajaran dari mata kuliah ini ialah sebagai berikut:
a) Agar mahasiswa mengetahui tentang Natural Join
b) Agar mahasiswa mengetahui cara membuat query dengan natural join
3. Materi pembelajaran
Pada MySQL dikenal beberapa macam join yang dapat dikelompokkan
menjadi dua, yaitu inner join dan outer join. Inner join dapat dibagi kembali
menjadi natural join dan cross join. Sedangkan outer join dapat dibedakan
menjadi left outer join, right outer join, dan full outer join.
Natural join adalah penggabungan data dari dua table yang didasarkan
pada pada kolom dengan nama yang sama pada kedua table tersebut.
Penggabungan ini mencerminkan hubungan antara foreign key dan primary key
dalam dua table. Natural join merupakan join yang digunakan untuk menemukan
persimpangan atau perpotongan antara dua buah tabel yang di-join-kan. Join ini
10
akan mengembalikan atau menampilkan data-data yang saling berpasangan di
anatara kedua buah tabel. Syntax untuk natural join adalah sebagai berikut:
4. Evaluasi
1. Buatlah 2 tabel dalam database dengan menggabungkan data
menggunakan natural Join!
D. Pembelajaran Ke-4
1. Cross Join
2. Tujuan materi pembelajaran
Adapun tujuan pembelajaran dari mata kuliah ini ialah sebagai berikut:
a) Agar mahasiswa mengetahui tentang Cross Join
b) Agar mahasiswa mengetahui perbedaan penggunaan natural join dan
cross join.
c) Agar mahasiswa mengetahui cara membuat query dengan cross join.
3. Materi pembelajaran
Cross join merupakan inner join dengan seluruh kondisi join (tidak hanya
data yang berpasangan) dianggap bernilai true. Sesuai dengan namanya, join ini
akan me- ngembalikan semua kemungkinan pasangan atau persilangan data pada
tabel yang satu dengan data pada tabel yang lainnya. Syntax untuk cross join
adalah sebagai berikut:
Bentuk sederhana dari penggabungan dua buah table akan membentuk perkalian
kartesian (Cartesian product) atau yang biasa dikenal dengan sebutan CROSS
JOIN atau FULL JOIN. Hal ini diperoleh jika klausa WHERE tidak disebutkan.
Sebagai contoh terdapat dua table sebagai berikut :
11
Maka jika dikenakan CROSS JOIN maka menjadi :
4. Evaluasi
1. Buatlah 2 tabel dalam database dengan menggabungkan data menggunakan
cross Join!
2. Jelaskan perbedaan natural join dan cross join!
E. Pembelajaran Ke-5
1. Inner Join dan Outer Join
2. Tujuan materi pembelajaran
Adapun tujuan pembelajaran dari mata kuliah ini ialah sebagai berikut:
a) Agar mahasiswa mengetahui tentang inner join dan outer join.
b) Agar mahasiswa dapat membuar sintak query dengan inner join dan
outer join.
c) Agar mahasiswa mampu memahami perbedaan inner join dan outer
join.
3. Materi pembelajaran
Berikut ini adalah empat tipe join di SQL (bersama tiga variannya). Sebagai
pelengkap dari penjelasan yang ada, kami telah menyediakan contoh kode SQL.
12
Inner Join
Inner join mungkin tipe join yang paling banyak dipakai. Inner join
mengembalikan baris-baris dari dua tabel atau lebih yang memenuhi syarat.
SELECT columns
FROM TableA
INNER JOIN TableB
ON A.columnName = B.columnName;
SELECT columns
FROM TableA
LEFT OUTER JOIN TableB
ON A.columnName = B.columnName
13
Left [Outer] Join without Intersection
Join ini merupakan variasi dari left outer join. Pada join ini kita hanya akan
mengambil data dari tabel sebelah kiri yang dikenai kondisi ON yang juga
memenuhi kondisi join tanpa data dari tabel sebelah kanan yang memenuhi
kondisi join.
SELECT columns
FROM TableA
LEFT OUTER JOIN TableB
ON A.columnName = B.columnName
WHERE B.columnName IS NULL
SELECT columns
FROM TableA
RIGHT OUTER JOIN TableB
ON A.columnName = B.columnName
14
Right [Outer] Join without Intersection
Teknik ini merupakan variasi dari right outer join. Pada join ini kita hanya akan
mengambil data dari tabel sebelah kanan yang dikenai kondisi ON yang juga
memenuhi kondisi join tanpa data dari tabel sebelah kanan yang memenuhi
kondisi join.
SELECT columns
FROM TableA
RIGHT OUTER JOIN TableB
ON A.columnName = B.columnName
WHERE A.columnName IS NULL
SELECT columns
FROM TableA
FULL JOIN TableB
ON A.columnName = B.columnName
15
Full [Outer] Join without Intersection
Variasi lain dari full outer join yang akan mengembalikan seluruh data dari kedua
tabel yang dikenai ON tanpa data yang memiliki nilai NULL.
SELECT columns
FROM TableA
FULL JOIN TableB
ON A.columnName = B.columnName
WHERE A.columnName IS NULL
OR B.columnName IS NULL
4. Evaluasi
1. Buat dan jelaskan dari masing-masing penggunaan inner dan outer join!
F. Pembelajaran Ke-6
1. Operator Union
2. Tujuan materi pembelajaran
Adapun tujuan pembelajaran dari mata kuliah ini ialah sebagai berikut:
a) Agar mahasiswa mengetahui tentang Operator Union
b) Agar mahasiswa mampu membuat sintak query dengan operator union
3. Materi pembelajaran
Perintah UNION dalam MySQL di gunakan untuk menggabungkan atau
mengkombinasikan isi dari dua tabel menjadi satu. Sama seperti artinya
INTERSECT ini di gunakan untuk mencari irisan pada dua atau lebih tabel.
Kemudian perintah yang terakhir yaitu EXCEPT, EXCEPT ini di vgunakan untuk
memunculkan isi tabel yang berada di luar irisan tabel. Berikut query dasar yang
bisa di gunakan untuk menggunakan perintah tersebut.
UNION
SELECT * FROM namatabel1 UNION SELECT * FROM namatabel2
;
16
INTERSECT
SELECT * FROM namatabel1 WHERE syarat1 IN (SELECT *
FROM namatabel2) ;
EXCEPT
SELECT * FROM namatabel1 WHERE syarat1 NOT IN (SELECT *
FROM namatabel2) ;
SELECT nama_kolom
FROM tabel_kiri LEFT OUTER JOIN tabel_kanan
ON tabel_kiri.nama_kolom = tabel_kanan.nama_kolom
UNION
SELECT nama_kolom
FROM tabel_kiri RIGHT OUTER JOIN tabel_kanan
ON tabel_kiri.nama_kolom = tabel_kanan.nama_kolom;
4. Evaluasi
1. Buatlah 2 buat tabel dalam database dengan menggunakan operator
union.
G. Pembelajaran Ke-7
1. Aplikasi View
2. Tujuan materi pembelajaran
Adapun tujuan pembelajaran dari mata kuliah ini ialah sebagai berikut:
a) Agar mahasiswa mengetahui tentang Aplikasi View
b) Agar mahasiswa dapat membuat query view dalam mysql
c) Kegunaan view pada data besar
3. Materi pembelajaran
Pengertian View dan Impelementasinya
View adalah objek di dalam database yang berisi kumpulan kolom yang
dihasilkan dari Perintah select. Dengan kata lain yang lebih sederhana, view
adalah object yang menyimpan hasil query, baik dari satu tabel atau lebih,
didalam database view juga sering dinamakan sebagai “tabel virtual” , karena
view sebenarnya tidak memiliki data. Data yang ditampilkan oleh sebuah view
diambil dari tabel-tabel aktual yang disertakan dalam SELECT.
Kegunaan View
Tujuan dari pembuatan VIEW adalah untuk kenyamanan (mempermudah
penulisan query), untuk keamanan (menyembunyikan beberapa kolom yang
bersifat rahasia), atau dalam beberapa kasus bisa digunakan untuk mempercepat
17
proses menampilkan data (terutama jika kita akan menjalankan query tersebut
secara berulang). Terdapat 3 statement View, yaitu CREATE, ALTER & DROP
1. Create view
Fungsi statement CREATE DATABASE adalah untuk menciptakan database baru.
Perintah ini fungsinya sama dengan statement CREATE SCHEMA. Jalankan
MySQL console , ketikkan perintah SHOW DATABASES untuk melihat daftar
database apa saja yang ada dalam MySQL.
Syntaknya adalah: CREATE VIEW nama_view AS SELECT * FROM
nama_tabel;. Misalkan kita memiliki tabel users yang mempunyai kolom
first_nm dan last_nm.
2. Alter view
ALTER VIEW digunakan ketika kita ingin mengubah view yang lama dengan
query baru. Syntaxnya adalah ALTER VIEW nama_view as <query
baru>;.
3. Drop view
DROP VIEW digunakan jika kita ingin menghapus view dari suatu database.
Syntaxnya adalah DROP VIEW nama_view;.
4. Evaluasi
1. Jelaskan kapan saat yang tepat view digunakan dalam database?
2. Buatlah sebuah tabel data mahasiswa, kemudian tampilkan dengan
menggunakan View.
H. Pembelajaran Ke-8
1. Prosedur dan fungsi tersimpan
2. Tujuan materi pembelajaran
Adapun tujuan pembelajaran dari mata kuliah ini ialah sebagai berikut:
a) Agar mahasiswa mengetahui tentang Prosedur dan Fungsi
tersimpan.
b) Agar mahasiswa mengetahui perbedaan penggunaaan prosedur dan
fungsi tersimpan.
c) Agar mahasiswa mampu membuat query menggunakan prosedur
dan fungsi tersimpan
3. Materi pembelajaran
Perbedaan antara prosedur dan fungsi adalah bahwa mereka dipanggil
secara berbeda dan untuk tujuan yang berbeda. Prosedur tidak mengembalikan
nilai. Sebaliknya, itu dipanggil dengan pernyataan PANGGILAN untuk
melakukan operasi seperti mengubah tabel atau memproses catatan yang diambil.
Fungsi dipanggil dalam ekspresi dan mengembalikan nilai tunggal langsung ke
18
pemanggil untuk digunakan dalam ekspresi. Fungsi tidak bisa dijalankan dengan
pernyataan PANGGILAN, prosedur juga tidak bisa menjalankan dalam ekspresi.
Sintaks untuk pembuatan rutin agak berbeda untuk prosedur dan fungsi:
Parameter prosedur dapat didefinisikan sebagai hanya input, output saja, atau
keduanya. Ini berarti bahwa suatu prosedur dapat meneruskan nilai kembali ke
pemanggil dengan menggunakan parameter output. Nilai-nilai ini dapat diakses
dalam pernyataan yang mengikuti pernyataan CALL. Fungsi hanya memiliki
parameter input. Akibatnya, meskipun kedua prosedur dan fungsi dapat memiliki
parameter, deklarasi parameter prosedur berbeda dari untuk fungsi.
Nilai fungsi kembali, jadi harus ada klausa RETURNS dalam definisi
fungsi untuk menunjukkan tipe data dari nilai kembali. Juga, harus ada setidaknya
satu pernyataan RETURN dalam tubuh fungsi untuk mengembalikan nilai ke
pemanggil. RETURNS dan RETURN tidak muncul dalam definisi prosedur.
Untuk menjalankan prosedur tersimpan, gunakan CALL statement. Untuk
memohon fungsi yang disimpan, lihat di dalam ekspresi. Fungsi mengembalikan
nilai selama evaluasi ekspresi.
Prosedur dipanggil menggunakan pernyataan PANGGILAN, dan hanya
bisa mengembalikan nilai menggunakan variabel output. Fungsi dapat dipanggil
dari dalam pernyataan seperti fungsi lainnya (yaitu, dengan memanggil nama
fungsi), dan dapat mengembalikan nilai skalar. Menentukan parameter sebagai IN,
OUT, atau INOUT hanya valid untuk PROSEDUR. Untuk FUNGSI, parameter
selalu dianggap sebagai parameter IN. Jika tidak ada kata kunci yang diberikan
sebelum nama parameter, itu adalah parameter IN secara default .Parameter
untuk fungsi yang disimpan tidak diawali dengan IN, OUT, atau
INOUT. Semua parameter fungsi diperlakukan sebagai parameter IN.
19
SELECT. Namun, konten dari set hasil tersebut tidak dapat digunakan secara
langsung dalam ekspresi.
Rutin yang disimpan (merujuk pada prosedur tersimpan dan fungsi
tersimpan) dikaitkan dengan database tertentu, seperti tabel atau tampilan. Saat
Anda menjatuhkan basis data, semua rutinitas yang tersimpan di dalam basis data
juga dihapus. Prosedur dan fungsi tersimpan tidak berbagi ruang nama yang
sama.Dimungkinkan untuk memiliki prosedur dan fungsi dengan nama yang sama
dalam database.
Dalam prosedur tersimpan, SQL dinamis dapat digunakan tetapi tidak
dalam fungsi atau pemicu. Pernyataan SQL disiapkan (SIAPKAN, LAKUKAN,
DEALOKASI SIAPKAN) dapat digunakan dalam prosedur yang tersimpan, tetapi
tidak fungsi atau pemicu yang tersimpan. Dengan demikian, fungsi dan pemicu
yang disimpan tidak dapat menggunakan SQL Dinamis (tempat Anda membuat
pernyataan sebagai string dan kemudian menjalankannya).
4. Evaluasi
1. Buat query untuk menampilkan jumlah dari suatu record dengan
menggunakan prosedur.
2. Buat query untuk menampilkan jumlah dari suatu record dengan
menggunakan fungsi.
3. Buatlah prosedur untuk menentukan nilai lulus atau tidak lulus
berdasarkan data yang diinput.
I. Pembelajaran Ke-9
1. Triggel
2. Tujuan materi pembelajaran
Adapun tujuan pembelajaran dari mata kuliah ini ialah sebagai berikut:
a. Agar mahasiswa mengetahui tentang triggel
b. Agar mahasiswa mengetahui kegunaan triggel pada server.
3. Materi pembelajaran
Trigger adalah kumpulan pernyataan SQL yang dimaksudkan untuk dieksekusi
oleh pernyataan INSERT, UPDATE, atau DELETE dengan tujuan untuk menjaga
konsistensi data. Sebagai contoh, ketika kita menghapus suatu baris di suatu
table, trigger mampu diatur agar data yang terkait di table lainnya juga ikut
terhapus.
20
• Memperbaiki keamanan database dengan menyediakan audit yang lebih
kompleks mengenai informasi perubahan database dan user siapa yang
melakukan perubahan.
Keterangan
-- berisi deklarasi variabel BEGIN
-- berisi statemen-statemen yang akan dieksekusi END;
EVENT KETERANGAN
INSERT Trigger dijalankan ketika terdapat operasi penambahan
sebuah baris data ke table
bersangkutan
UPDATE Trigger dijalankan ketika terdapat operasi pengubahan
sebuah baris data ke table
bersangkutan
DELETE Trigger dijalankan ketika terdapat operasi penghapusan
sebuah baris data ke table
bersangkutan
Terkait dengan trigger terdapat alias dengan nama OLD dan NEW. Penulisannya
adalah sebagai berikut :
NEW.nama_kolom OLD.nama_kolom
Dalam hal ini :
OLD.nama_kolom
Menyatakan nilai nama_kolom sebelum dihapus atau diubah.
NEW.nama_kolom
Menyatakan nilai nama_kolom setelah diubah atau setelah data baru dimasukkan.
4. Evaluasi
1. Jelaskan apa yang dimaksud dengan triggel?
2. Apakah triggel berpengaruh pada keamanan data diserver? Jelaskan!
21
J. Pembelajaran Ke-10
1. Manajemen User Administrator
2. Tujuan materi pembelajaran
Adapun tujuan pembelajaran dari mata kuliah ini ialah sebagai berikut:
a. Agar mahasiswa mengetahui user manajemen database
b. Agar mahasiswa mampu mengelola user adminitrator database
3. Materi pembelajaran
Anonym User
Anonym user adalah user tanpa identitas dan tanpa password. Pada saat
anda mengakses SQL pertama kali seperti yang telah dijelaskan pada Modul-1
halaman 1, berati anda sudah menggunakan Anonym User. Ketiklah perintah
berikut ini pada prompt mysql untuk melihat user dan password yang ada saat
ini di tabel user.
mysql> use mysql;
Database changed
Untuk tindakan pengamanan awal, kita harus menghapus semua user tanpa
identitas tersebut dengan perintah DELETE :
mysql> delete from user where user='';
Query OK, 2 rows affected (0.01 sec)
Query OK, 0
22
rows affected
(0.00 sec) Rows
matched: 2
Changed: 0
Warnings: 0
C:\xampp\mysql\bin>mysql -u root
ERROR 1045: Access denied for user:
'root@localhost' (Using password: NO)
C:\xampp\mysql\bin>mysql -u root -p
Enter password: ***
23
TO nama_user IDENTIFIED
BY “nama_password” [WITH
GRANT pilihan akses]
Untuk menghapus izin akses user, tetapi tidak mengahapus seorang user
secara permanen dapat menggunakan perintah REVOKE. Sintak :
REVOKE jenis_akses ON nama_database
FROM nama_user
Bila seorang user telah dihapus izin aksesnya dengan perintah REVOKE,
dia tetap dapat masuk (login) ke dalam MySQL walaupun tidak dapat berbuat
apa-apa. Untuk menghapus user secara permanen, gunakan perintah DELETE.
Untuk membuat beberapa user baru anda harus login sebagai root :
C:\xampp\mysql\bin>mysql -u
root -h localhost -p Enter
password: ****
Welcome to the MySQL monitor. Commands end with ;
or \g.
Your MySQL connection id is 5 to server version:
3.23.32-debug
Perintah di atas membuat user baru dengan nama fadiyah dengan akses penuh.
mysql> grant all privileges on *.* to
fadiyah@'%'
-> identified by 'diah'
-> with grant option;
Query OK, 0 rows affected (0.00 sec)
24
Sekarang buat user baru dengan nama jono :
mysql> grant usage on *.* to jono@localhost
-> identified by 'jono001';
Query OK, 0 rows affected (0.00 sec)
Si jono bisa masuk ke dalam MySQL dan bisa melihat database yang ada
tetapi tidak bisa menggunakan database-database tersebut. Ketik perintah
berikut untuk melihat hak akses user di atas :
mysql> use mysql;
Database changed
25
Your MySQL connection id is 9 to server version:
3.23.32-debug
mysql> quit
Bye
26
'\h' for help. Type '\c' to clear the
buffer
mysql> exit
Bye
4. Evaluasi
Buatlah user anda dengan password yang anda seeting!
27
IV. PENUTUP
28
DAFTAR PUSTAKA
Coronel, C., & Morris, S. (2016). Database systems: design, implementation, &
management. Cengage Learning.
DuBois, P. (2013). MySQL. Addison-Wesley Professional.
Lubis, A. R., Lubis, M., Al-Khowarizmi, A.K. & Listriani, D. (2019, August). Big
Data Forecasting Applied Nearest Neighbor Method. In 2019
International Conference on Sustainable Engineering and Creative
Computing (ICSECC) (pp. 116-120). IEEE.
Ramakrishnan, R., & Gehrke, J. (2000). Database management systems.
McGraw-Hill.
Roy-Hubara, N., & Sturm, A. (2020). Design methods for the new database era: a
systematic literature review. Software and Systems Modeling, 19(2), 297-
312.
Sianipar, R. H. (2016). Pemrograman Database Menggunakan MySQL (Vol. 1).
Penerbit ANDI.
Teorey, T. J., Lightstone, S. S., Nadeau, T., & Jagadish, H. V. (2011). Database
modeling and design: logical design. Elsevier.
Welling, L., & Thomson, L. (2003). PHP and MySQL Web development. Sams
Publishing.
Yanto, R. (2016). Manajemen Basis Data Menggunakan MySQL. Deepublish.
29