Diana Cindy UMSIDA
Assalamu'alaikum Wr.Wb
Haloooo
Nama saya Diana Cindy Agustin, Mahasiswa Universitas Muhammadiyah Sidoarjo, jurusan Informatika.
Rangkuman Modul
Praktikum Basis Data
POKOK
BAHASAN 1
BASIS
DATA, MODEL DATA, DIAGRAM E-R
PENDAHULUAN
Pada pokok bahasan
ini berisi penjelasan disertai contoh mengenai konsep basis data, pemodelan
data dan pembuatan diagramE-R yang menjadi pemahaman dasar bagi mahasiswa
sebelum mempelajari system basis data dan Structure Quary Language (SQL),
dimana konsep ini nantinya digunakan untuk mempresentasikan sebuah system basis
data, diharapkan mahasiswa dapat :
1.
Memahami system basis data dan
komponennya.
2.
Membuat desain basis data menggunakan
ER_Diagram.
3.
Memahami dan menginlementasikan
fitur-fitur yang ada pada ER_Diagram.
PENYAJIAN (TUTORIAL)
1. Konsep Sistem Basis Data
Basis data adalah
kumpulan data yang disimpan secara sistematis di dalam komputer dan dapat atau
dimanipulasi serta dapat diakses dengan mudah dan tepat menggunakan perangkat
lunak (program aplikasi) untuk menghasilkan sebuah informasi.
System basis data
merupakan ruang lingkup yang lebih luas dari basis data. System basis data
memuat sekumpulan basis data dalam suatu system yang mungkin tidak ada hubungan
antara satu engan yang alain secara keseluruhan mempunyai hubungan sebagai
sebuah system yang didukung oleh komponen lainnya.
Komponen Sistem
Basis Data: Perangkat Keras (Hardware), Sistem Operasi (Operating System),
Basis Data (Database), DBMS (Database Management System), Pemakai (User).
DBMS (Database
Management System) merupakan basis data dan set perangkat lunak (software) untuk pengelolaan basis data.
2. Konsep Model Data
Model data merupakan
suatu cara untuk menjelaskan tentang data-data yang tersimpan dalam basis data
dan bagaimana hubungan antar datav tersebut untuk para pengguna (user) secara logika. Secara garis besar
model data dapat dikelompokkan menjadi 3 macam yaitu :
1.
Model Dta Berbais Obje (Object based data
model).
Meruapakan hipunan
data dan relasi yang menjelaskan hubungan logic antar data dalam suatu basis
data berdasarkan pada obyek datanya. Salah satunya adalah Entity elationship
Model.
Model Entity Relationship Diagram (ERD) atau Conceptual data model (CDM) Merupakan
suatu model untuk menjelaskan hubungan antar data dalam basis data erdasarkan
suatau presepsi bahwa dunia nyata terdiri dari obyek-obyek dasar (entitas) yag
mempunyai hubungan atau relasi antar obyek-obyek dasar (entitas) tersebut yang
dilukiskan dengan menggunakan symbol-simbol grafik tertentu.
2.
Model Data Berbasis Record (Record Based Data Model)
Model ini
berdasarkan pada record/rekaman untuk menjelaskan kepada para pemakai tentang
logika antar data dalam basis data. Salah satunya adalah Relation model.
Model Rasional
merupakan model data yang menjelaskan pada pengguna tentang hubungan logic
antar data dalam basis data dengan mempresentasikannya ke dalam bentuk
tabel-tabel yag terdiri atas sejumlah basis yang menunjukkkan record dan kolom yang menunjukkan atribut tertentu.
3.
Physical Based Dta Model
Model ini
berdasarkan pada teknis penyimpanan record dalam bais data. Mode ini jarang
digunakan untuk memodelkan data kepada pemakai karena kerumitan dan
kompleksitasnya yang tinggi.
3. Bahasa Basis Data
Bahasa yag digunakan
untuk mendefinisikan, mengelolah dan memanipulasi basis data dikelompokkan 3
macam yaitu :
1.
DDL (Data
Definition Language) digunakan untuk
mendefiisikan struktur dan kerangka dari basis data yang meliputi :
a.
Membentuk basis data, tabel, indeks.
b.
Mengubah struktur table.
c.
Mengahapus basis data, tabel atau indeks.
2.
DML (Dta
Manipulation Language) digunakan
untuk menjabarkan pemrosesan data data yang meliputi :
a.
Menambahkan atau meyisipkan data baru ke
basis data
b.
Mengelolah data yang tersimpan dalam bais
data (query)
c.
Mengubah dan meghapus data dalam basis
data.
3.
DCL (Data
Control Language) digunakan untuk
prngaturan hak akses prngguna pada basis data yang meliputi :
a.
Menugaskan model data yang dikembangkan
berdasarkan obyek atau entitas. ER_D berguna membantu perancangan atau analis
system pada saat melakukan analisis dan perancangan basis data karena model ini
dapat menunjukkan macam data yang dibutuhkan dan direalisasikan antar data di
dalamnya.
1.
Komponen ER_Diagram
Sebuah diagram ER
tersusun ats tiga komponen, yaiti entitas yang merupakan obyek dasar yang
terlibat dalam system, atribut yang berperan sebagai penjelas entitas,
kerelasian antar entitas menunjukkan yang terjadi diantara dua entitas.
a.
Entitas (Entity)
Entitas menunjukkan
obyek-obyek dasar yang terkait di dalam system. Obyek dasar dapat berupa orang,
benda atau halyang keterangannya perlu disimpan di dalam basis data. Macam-macam
Entitas :
·
Entitas Reguler
Entitas ini disebut
dengan juga entitas dominan (strong entity). Keberadaan entitas ini tidak
tergantung pada entitas yang lain.
Contoh :
Matakuliah_konsentrasi, bergantung pada entitas Matakuliah.
·
Entitas dependen
Entitas ini disebut
juga entitas tidak bebas/independen atau entitas lemah (weal entitas) atau
entitas subordinat. Entitas ini dapat muncul jika ada entitas lain sebagai
acuannya (entitas regular).
·
Entitas suoer type atau sub type
Entitas super type merupakan entitas yanga lebih
rendah yiatu entitas yag menjadi entitas bagian darai entita lain.
Contoh : Entitas karyawan_tetap dan karyawan_tidak_tetap
b.
Atribut (Attribute)
Merupakan
keterangan-keterangan yang terkait pada sebuah entitas yang perlu disimpan ke
dalam dataase. Attribute berfungsi sebagai penelas pada sebuah entitas. Contoh
: mahaiswa mempunyai atribut nim, nama, jurusan, kelamin, tempat_lahir,
tanggal_lagir, dsb.
Atribut pada sebuah
entitas dibagi menjadi 2 yaitu :
·
Atribut sederhana (simple attribute), yaitu jika atribut berisi sebuah
komponen/nilai/elementer.
Contoh : pada
entitas mahsiswa adalah tahun mausk = 2013
·
Atribut komposit (composite attribute), yaitu jika atribut berisi lebih dari sebuah
komponen nilai.
Contoh : pada entitas mahasiswa adalah tanggal lahir yang terdiri
atas komponen nilai tanggal, bulan, tahun.
c.
Kerelsian antar entiatas (Entity Relationship)
Mendefinisikan
hubungan antara 2buah entitas. Jenis kerelasian antar entitas dibagi menjadi 3
sebagai berikut :
1.
Kerelasian jenis suatu ke satu (one to one), kerelasian terjais jika kejadian atau transaksi di antara dua entitas yangberhubunhan hanya memungkinkan terjaid sebuah kejadian atau transaksi pada kedua entitas.
Kerelasian jenis suatu ke satu (one to one), kerelasian terjais jika kejadian atau transaksi di antara dua entitas yangberhubunhan hanya memungkinkan terjaid sebuah kejadian atau transaksi pada kedua entitas.
Gambar 1.1 Relasi satu ke satu
Dimana setiap tupel
(baris) pada entitas A berhubungan dengan paling banyak satu tupel pada entitas
B, dan begitu juga sebaliknya setiap tupel pada entitas B berhubungan dengan
paling banyak satu tupel pada entitas A.
2.
Kerelasian banyak ke satu (many to one)
atau satu ke banyak (one to many), kerelasian ini terjadi jika kejadian atau
transaksi di antara dua entitas yang berhubungan hanya memungkinkan terjadi
satu kali dalm entitas pertama dan dapat terjadi lebih dari satu kali kejadian
atau transaksi pada entitas kedua.
·
Satu ke banyak (one to many)
Dimana satu tupel pada entitas A dapat berhubungan dengan banyak tupel pada entitas B, tetapi tidak sebaliknya, dimana setiap tupel pada enttal B berhubungan dengan paling banyak satu tupel pada entitas A.
Gambar 1.2 Relasi satu ke banyak
·
Banyak ke satu (many to one)
Dimana setiap tupel
pada entitas A dapat berhubungan dengan paling banyak satu tupel pada entitas
B, tetapi tidak sebaliknya, dimana setiap tupel entitas A berhubungan dengan
paling banyak satu tupel pada entitas B.
Gambar 1.3 Relasi banyak ke Satu
3.
Kerelasian jenis banyak ke banyak (many to many)
Kerelasian jenis ini terjadi jika kejadian atau
transaksi di antara dua entitas ynag berhubungan memungkinkan terjadi lebih
dari satu kali dalam entitas pertama dan kedua.
Gamabr 1.4 Relasi banyak ke banyak
Dimana setiap tupel
pada entita A dapat berhubungan dengan banyak tupel pada entitas B, dan
demikian juga sebaliknya, dimana setiap tupel pada entitas B dapat berhubungan
dengan banyak tupel pada entitas A.
2.
Langkah-langkah Membuat diagram
ER_Diagram
Untuk membuat
ER_Diagram secara lengkap apat dilakukan dengan mengikuti langkah-langkah
sebagai berikut :
·
Identifikasikan setiap entitas yag
terlibat.
·
Lengkapi masing-masig entitas dengan
atribut yag sesuai.
·
Tentukan primary key dari masing-masing
entitas.
·
Identifikasikan setiap kerelasian berikut
jenisnya ynag terjadi di antara entitas dengan membuat tabel daftar kerelasian
antar entitas.
·
Gambarkan simbil-simbol entitas, atribut,
dan kerelasian antar entitas secara jelas dan tidak bertabrakan/
·
Cek ER_Diagram yang terbentuk, dalam hal
: kelengkapan entitas, kelengkapan atribut, kelngkapan kerelasian antar entitas
dan jenis kerelasian antar entitas.
POKOK
BAHASAN 2
STRUCTURED
QUERY LANGUAGE (SQL)
PENDAHULUAN
Pada pokok bahasan
ini akan dibahas mengenai structured query language (SQL) yang pembahsannya
meliputi definisi dan representasi sql, elemen-elemen pada sql serta penerapan
operasi elemen sql pada MySQL. Sehingga setelah mempelajari bab ini diharapkan
mahasiswa mampu :
1.
Menjelaskan definisi dan represntasi SQL
2.
Mengetahui elemen-elemen pada SQL
3.
Memahami fungsi-fungsi dan operator dalam
SQL
4.
Mengetahui cara menginstall MySQL pada
sistem operasi Windows
PENYAJIAN (TUTORIAL)
A. SQL (Structured Query Language)
SQL merupakan suau
Bahasa (language) standar menurut ANSI (American National Standard Institute)
yang digunkan untuk mengakses basis data. SQL pertama kali diterapkan pada
system R (sebuah proyek riset pada laboratorium riset San Jose, IBM). Kini SQL
juga dijumpai pada berbagai platform, dari mikrokomputer hingga mainframe SQL
dapat digunakan baik secara berdiri maupun dilekatkan pada bahsa-bahasa lain
seperti C dan Delphi. SQL juga telah menjadi bagian dari sejumlah DBMS, seperti
Oracle, Sybase, MuSQL dan Informix.
B. Elemen SQL
Elemen dasar SQL
mencakup pernyataan, nama, tipe data, ekspresi, operator relasi, operator
logika dan fungsi bawaan.
a.
Pernyataan
Merupakan perintah
SQL yang meminta sesuatu tindakan kepada DBMS (Database Management System). SQL memiliki kirakira 30 pernyataan.
Beberapa pernyatan dasar SQL dapat dilihat pada tabel berikut :
Tabel 2.1 Pernyataan
SQL
Pernyataan
|
Keterangan
|
CREATE
|
Menciptakan basis
data, tabel atau indeks
|
ALTER
|
Mengubah struktur
tabel
|
DROP
|
Menghapus basis
data, taebel atau indeks
|
COMMIT
|
Mengakhiri sebuah
eksekusi transaksi data
|
ROLLBACK
|
Mengembalikan ke
keadaan semula sekiranya suatu intraksi gagal dilaksanakan.
|
INSERT
|
Menambahkan sebuah
baris tabel
|
UPDATE
|
Mengubah nilai
pada sebuah baris
|
SELECt
|
Memilih baris dan
kolom pada tabel
|
DELETE
|
Menghapus baris
pada tabel
|
GRANT
|
Menugaskan hak
terhadap basis data kepada pengguna atau grup pengguna
|
REVOKE
|
Membatalkan hak
terhadap basis data
|
Yang semuanya
dikelompokkan berdasarkan fungsinya masing-masing yaitu :
a.
Data Definition Language (DDL) :
Digunakan untuk mendefinisikan data dengan menggunakan perintah : CREATE, DROP,
ALTER.
b.
Data Manipulation Language (DML) :
Digunakan untuk memanipulasi data dengan mengguakan perintah : INSERT, SELECT,
UPDATE, DELETE.
c.
Data Control Language (DCL) : Digunakan
untuk mengontrol hak para pemakai data dengan perintah : GRANT, REVOKE.
Gambar 2.1 komponen SQL
b.
Nama
Nama digunakan sebagai identitas bagi objek-objek pada
DBMS (Database Management System). Contoh
objek pada DBMS adalah tabel, kolom dan pengguna.
c.
Tipe Data
Setiap data memiliki tipe data. Berikut ini adalah tipe
data dalam MySQL :
Tabel 2.2 Tipe Data untuk numerik
Tipe
|
Keterangan
|
Range Nilai
|
TINYINT
|
Nilai integer yang sangat kecil
|
Signed : -128 s.d.
127
Unsigned : 0 s.d.
255
|
SMALLINT
|
Nilai integer yang
kecil
|
Signed : -32768
s.d. 32767
Unsigned : 0 s.d.
65535
|
MEDIUMINT
|
Integer dengan
nilai medium
|
Signed : -8388608
s.d. 8388607
Unsigned : 0 s.d.
16777215
|
INT
|
Integer dengan
nilai standar
|
Signed :
-2147483648 s.d. 2147483647
Unsigned : 0 s.d.
4294967295
|
BEGINT
|
Integer dengan
nilai besar
|
Signed :
-9223372036854775808 s.d. 9223372036854775807
Unsigned : 0 s.d.
18446744073709551615
|
FLOAT
|
Bilangan desimal
dengan single-precission
|
Minimum ±
1.175494351e-38
Maksimum ±
3.402823466e+38
|
DOUBLE
|
Bilangan decimal
dengan double-precission
|
Minimum ±
2.2205738585072014e-308
Maksimum ±
1.7976931348623457e+308
|
DECIMAL(M,D)
|
Bilangan float
(decimal) yang dinyatakan sebagai string. M adalah jumlah digit yang disimpan
dalam suatu kolom N adalah jumlah digit dibelakan koma
|
Tergantung pada
nilai M dan D
|
Keterangan :
Signed dan Unsigned
adalah atribut untuk tipe data numerik
-
Signed : Data yang disimpan dalam suatu
kolom dapat berupa data negative dan positif.
-
Unsigned : Digunakan agar data yang
dimasukkan bukan data negative (>=0). Tipe data float tidak dapat dinyatakan
dengan unsigned.
Tabel 2.3 Tipe data
string atau karakter
Tipe
|
Keterangan
|
Ukuran Maksimum
|
CHAR(n)
|
String karakter
dengan panjang yang tetap, yaitu n
|
1 M byte
|
VARCHAR(n)
|
String karakter
dengan panjang yang tidak tetap, maksimum n.
|
1 M byte
|
TINYBLOB
|
BLOB (Binary Large
Object) yang sangat kecil
|
2^8-1 byte
|
BLOB
|
BLOB berukuran
kecil
|
2^16-1 byte
|
MEDIUMBLOB
|
BLOB berukuran
sedang
|
2^24-1 byte
|
LONGBLOB
|
BLOB berukuran
besar
|
2³²-1 bayte
|
TINYTEXT
|
String text yang
sangat kecil
|
2^8-1 byte
|
TEXT
|
String text
berukuran kecil
|
2^16-1 byte
|
MEDIUMTEXT
|
String text
berukuran medium (sedang)
|
2^24-1 byte
|
LONGTEXT
|
String text
berukuran besar
|
2³²-1 byte
|
ENUM
|
Enumerasi, kolom
dapat diisi dengan atu ember enumerasi
|
65535 anggota
|
SET
|
Himpunan, kolom
dapat diisi dengan beberapa nilai anggota himpunan.
|
64 anggota
himpunan
|
Tabel 2.4 Tipe data
tanggal dan jam
Tipe
|
Range
|
Format
|
DATE
|
“1000-01-01” s.d. “9999-12-31”
|
“0000-00-00”
|
TIME
|
“-832:59:59” s.d.
“838:59:59”
|
“00:00:00”
|
DATETIME
|
“1000-01-01
00:00:00” s.d. “9999-12-31 23:59:59”
|
“0000-00-00
00:00:00”
|
d.
Konstanta
Konstanta menyatakan
nilai yang tetap atau tidak berubah. Konstanta sering di pakai pada perintah
SELECT. Konstanta di bagi menjadi 2 :
1.
Konstanta bertipe numerik : 200, -3,
1500, 3.25
2.
Konstanta bertipe karakter : “Teknik
Informatika”
Keterangan :
Konstanta bertipe karakter atau String diapit oleh tanda petik
tunggal. Dan konstanta dengan nilai pecahan decimal adalah berupa tanda titik.
e. Operator Aritmatika
Operator Aritmatika
adalah ekspresi untuk memperoleh suatu nilai dari hasil perhitungan.
Contoh :
harga*jumlah+2
Simbol-simbol yang
dapat digunakan pada ekspresi aritmatika :
Tabel 2.5 Simbol
Ekspresi Aritmatika
Symbol
|
Keterangan
|
*
|
Perkalian
|
/
|
Pembagian
|
+
|
Penjumlahan
|
-
|
Pengurangan
|
%
|
Sisa pembagian
|
f.
Operator Relasi
Merupakan operator
yang digunakan untuk membandingkan suatu nilai dengan nilai yang lain. Biasanya
operator relasi digunakan bersamaan dengan operator logika dalam membantu untuk
menampilkan informasi dengan kriteria tertentu.
Simbol-simbol yang
dapat digunakan papa operator rrelasi :
Tabel 2.6 Simbol
Operator Relasi
Simbol
|
Keterangan
|
=
|
Sama dengan
|
>
|
Lebih besar
|
<
|
Lebih kecil
|
>=
|
Lebih besar atau
sama dengan
|
<=
|
Lebih kecil atau
sama dengan
|
<>
|
Tidak sama dengan
|
g.
Operator Logika
Oprator logika ada 3
yaitu OR, AND, dan NOT
Tabel 2.7 Operator
Logika
Simbol
|
Keterangan
|
NOT atau !
|
Sebagai negasi
atau pembalik nilai
|
OR atau ||
|
Atau
|
AND atau
&&
|
Dan
|
h.
Operator pembanding
Tabel 2.8 Operator
Pembanding
Simbol
|
Keterangan
|
IS NOT NULL
|
Apakah sebuah
nilai adalah tidak kosong (not null)
|
IS NULL
|
Apakah sebuah
nilai adalah kosong (null)
|
BETWEEN
|
Apakah suatu nilai
di antara dua batasan nilai
|
IN
|
Apakah suatu nilai
di dalam pilihan yang ada
|
NOT IN
|
Apakah suatu nilai
tidak berada dalam pilihan yang ada
|
LIKE
|
Apakah suatu nilai
sesuai dengan kriteria tertentu
|
NOT LIKE
|
Apakah suatu nilai
tidak sesuai dengan kriteria tertentu
|
i.
Aggregate Functions (Fungsi Agregat)
Fungsi adalah sebuah
program yang menghasilkan suatu nilai jika dipanggil. Fungsi agregat adalah
fungsi standar di dalam SQL, suatu fungsi yang digunakan untuk melakukan
summary, fungsi statistic standar yang dikenakan pada suatu tabel atau query.
1.
SUM(ekspresi)
2.
Fungsi ini digunkan untuk mendapatkan
nilai total dari suatu kolom pada suatu tabel.
3.
AVG(ekspresi).
Fungsi ini digunakan
untuk mencari rata-rata nilaialam suatu kolom dari suatu tabel atau ekspresi.
Ekspresi dalam fungsi AVG umunya adalah nama kolom. Kolom yang dicari nilai
rata-ratanya adalah kolom dengan tipe data numerik.
4.
COUNT(x)
Fungsi ini digunakan
untuk menghitung jumlah record (baris) dari suatu kolom dari suatu tabel. X
adalah nama kolom yang ingin dicari jumlah barisnya.
5.
MAX (ekspresi)
Fungsi ini digunakan
untuk menerima nilai terbesar dari suatu kolom dari suatu tabel. Kolom yang
dicari nilai terbesarnya memiliki tie data numerik.
6.
MIN (ekspresi)
Fungsi ini digunakan
untuk mencari nilai terkecil dari suatu kolom dari suatu tabel. Kolom yang
dicari nilai terkecilnya memiliki tipe data numerik.
65 MySQL (My Structured Query Language)
MySQL adalah
Relational Database Management System (DBMS) yang didistribusikan secara gratis
di bawah license GPL (General Public License). Setiap orang bebas menggunakan
MySQL tetapi harus bersifat open source. MySQL menggunakan bahasa SQL
(Structured Query Language).
Kelebihan MySQL dalam
mengelolah data adalah :
·
Kecepatan, MySQL mempunyainkecepatan
paling baik dibandingkan RDBMS lainnya.
·
Mudah digunakan, perintah dalam MySQL dan
aturan-aturannya relative mudah diingat dan diimplementasikan karena MySQL
menggunakan SQL sebagai Bahasa standar database.
·
Open source, MySQL sudah menggunakan
konsep open source, artinya siapapun dapat ikut dalam mengembangkan MySQL dan
hasil pengembangannya dipublikasikan kepada pemakai.
·
Kapabilitas, MySQL mampu memproses data
yang tersimpan dalam database dengan jumlah 50 juta record, 60.000 tabel dan
50.000.000.000 juta baris.
·
Biaya murah, pemakai dapat mengguakan
MySQL tanpa harus mengeluarkan biaya yang cukup mahal selama menikuti konsep
open source.
·
Keamanan, MySQL menerapkan system
keamanan dan hak akses secara bertingkat, termasuk dekungan dengan keamanan
data secara pengacakan lapisan data.
·
Lintas platform, MySQL dapat dijalankan
pada beberapa system operasi di antaranya yaitu Linux, Windows, FreeBSD, Novel
Netware, Sun Solaris, SCO Open Unix dan IBM’s IAX.
a. Instalasi MySQL-5.0.22-WIN32 :
1.
Jalankan file setup MySQL, yaitu mysql-5.0.22-win32.exe maka muncul
dialog instalasi sebagai berikut :
Gambar
2.2 Kotak Dialog Instalasi
2.
Pilih tombol Next kemusian muncul kotak dialog seperti dibawah ini :
Gambar 2.3 Kotak dialog setup type
3.
Pilih Cutom, kemusian pilih
tombol Next. Kemusian tampil
dialogfitur program sebagai berikut :
Gambar 2.4 Kotak dialog Custom
setup
4.
Klik tanda silang pada Developer
Compenents, kemusian pilih This
feature will be installed on local hard drive sebagai berikut :
Gambar 2.5 Kotak dialog select
program installed
5.
Kemudian pilih tombol Change….,
pada folder name ubah menjadi c:/mysql sesuai dengan gambar berikut :
Gambar 2.6 Kotak dialog change
current destination Folder
6.
Pilih OK, kemusian pilih tombol
Next, dan pilih tombol Install, maka proses instalasi dimulai.
Gambar
2.7. kotak dialog Ready to install the Program
7.
Berikutnya muncul dialig account, pilih Skip Sign-Up dan klok tombol Next maka akan muncul kotak dialog
sebagai berikut :
Gambar 2.8 Kotak dialog Account
8.
Klik tombol Finish
dan tombol Next maka akan muncul kotak dialog sebagai
berikut :
Gambar 2.9 Kotak dialog select a
configuration type
9.
Pilih Standard Configuration dan
klik tombol Next
Gambar 2.10 Standar Configuration
10. Pilih tombol Next,
kemudian muncul gambar berikut ini. Masukkan password yang diinginkan pada kota
isian New root password dan Confirm berikut ini untk sekuritas,
misalnya umsida. Klik tombol Next.
Gambar 2.11 Kotak dialog security options
11. Klik tombol Excute
sebagai tahap akhir.
Gambar 2.12 Kotak dialog Excute
12. Klik Finish.
Gambar 2.13 Kotak dialog
processing Configuration
b. Melakukan Koneksi ke MySQL :
Cara
1 :
1. Melalui
DOS Prompt, masuk ke direktori utama MySQL dengan cara sebagai berikut (yang
diketik hanya yang digaris bawah) :
C:\> cd xampp\mysql\bin
2.
Setelah itu ketikkan perintah berikut (yang diketik hanya
yang digaris bawah) :
C:\xampp\mysql\bin> mysql –u root
c. Merubah Prompt MySQL :
Rubahlah
nama prompt mysql dengan nama dan nim masing-masing mahasiswa.
Sintax
:
MariaDB[(none)]>prompt prakDB/nama(3 nim terakhir);
POKOK
BAHASAN 3
DATA
DEFINITION LANGUAGE (DDL)
PENDAHULUAN
Pada pokok bahasan
ini akan dibahas mengenai data definition language pada SQL, dimana DDL
digunakan untuk memanipulasi data dalam basis data. Setelah mempelajari materi
ini diharapkan mahasiswa mampu untuk :
1.
Mahasiswa mampu memahami dan membuat
basis data.
2.
Mahasiswa mampu memahami dan membuat
tabel dari basis data.
3.
Mahasiswa mampu mengelolah dan
memanipulasi basis data dan tabel-tabelnya.
PENYAJIAN (TUTORIAL)
A. Data Definition Language (DDL)
DDL merupakan bagian
dari sql yang digunakan untuk mendefinisikan struktur dari kerangka data dan
obyek basis data. Basis juga dikatakan merupakan kelompuk perintah yang
berfungsi untuk mendefinisikan atribut-atribut basis data, tabel, batasan-batasan
terhadap suatu atribut, serta hubungan antar tabel.
Tabel
3.1 Perintah-perintah dalam DDL
Perintah
|
Keterangan
|
Create Database
|
Membuat basis data
|
Drop Database
|
Menghapus basis
data
|
Create Table
|
Membuat tabel
|
Alter Table
|
Mengubah atau menyisipkan
kolom ke dalam tabel
|
Drop Table
|
Menghapus tabel
dari basis data
|
Create Index
|
Mebuat Index
|
Drop Index
|
Menghapus Index
|
B. Perintah–perintah DDL
Berikut ini
perintah-perintah sql untuk Data Definition Language :
a.
Membuat Database
Syntax :
CREATE DATABASE namadatabase;
Dimana :
Nama database yang dibuat tidak boleh
mengandung apasi dan tidak boleh memiliki nama yang sama dengan database lain
di MySQL. Berikut ini perintah untuk membuat basis data dengan nama perpustakaan :
prakDB/DianaCindy(205)create
database perpustakaan;
b.
Menampilkan daftar Database
Untuk menampilkan daftar basis data yang
ada di MySQL dapat menggunakan perintah :
SHOW DATABASE;
Berikut ini perintah untuk menampilkan daftar
basis data :
prakDB/DianaCindy(205)show
databases;
c.
Menghapus Database
Untuk melakukan pengahpusan terhadap
basis data yang sudah dibuat.
Syntax :
DROP
DATABASE namadatabase;
Dimana :
Database yang akan dihapus harus sesuai dengan
nama database. Berikut ini perintah untuk menghapus database dengan nama perpustakaan
:
prakDB/DianaCindy(205)drop
database perpustakaan;
d. Mengaktifkan Database
Sebelum membuat suatu tabel, terlebih
dahulu harus megaktifkan database yang akan digunakan untuk menyimpan
tabel-tabel tersebut dengan perintah :
USE namadatabase;
Karena database yang sudah dibuat telah dihapus
maka buat jembali database perpustakaan.
Kemudian aktifkan database tersebut dengan perintah :
prakDB/DianaCindy(205)use
perpustakaan;
e.
Membuat Tabel
Dalam basis data tabel atau field
berfungsi untuk menyimpan record atau data. Untuk membuat tabel Syntaxnya
adalah :
CREATE TABLE namatabel
(
Field TipeData1 ([lebar]),
Field TipeData2 ([lebar]),
…
Field TipeData3 ([lebar])
);
Keterangan :
Nama tabel tidak boleh mengandung spasi
(space) tetapi jika menginginkan ada spasi harus menggunakan tanda penghubung
(nama_tabel). Field merupakan atribut pertama data TipeData1 merupakan tipe
data untuk atribut pertama. Jika igin membuat tabel dengan atribut lebih
darisatu, maka setelah pendefisinian tipe data sebelumnya diberikan tanda koma
(,).
Berikut ini perintah untuk membuat tabel
dengan nama pengarang :
prakDB/DianaCindy(205)create
table pengarang (
kode_pengarang
varchar(5),
nama_pengarang varchar(5));
Syntax tambahan :
Maka tabel pengarang telah terbentuk, untuk
melihat hasilnya dapat digunakan perintah :
prakDB/DianaCindy(205)show
tables;
Untuk melihat
struktur yang telah dibuat (dalam tabel hal ini buku) syntaxnya adalah :
DESC
namatabel;
Contoh :
prakDB/DianaCindy(205)desc
pengarang;
f. Mendefinisikan
null / not null
Ketika membuat tabel, beberapa field
harus diatur agar field terentu harus diisi. Biasanya field ini adalah sebagai
field utama atau kunci, juga sebagai identifikasi sehingga tidak boleh kosong.
Syntax :
CREATE TABLE namatabel;
(
Field1 TipeData1 ([lebar]) NOT
NULL,
Field2 TipeData2 ([lebar]) NOT
NULL,
…
Field3 TipeData3 ([lebar])
);
Contoh :
prakDB/DianaCindy(205)create table pengarang (
kode_pengarang
varchar(5) not null,
nama_pengarang
varchar(35) not null);
a. Mendefinisikan Nilai Bawaan (Default)
Nilai default adalah nilai yang otomatis
diberikan oleh system untuk suatu atribut ketika ada penambahan baris baru,
sementara nilai pada atribut tidak diisi oleh pengguna. Syntax :
CREATE TABLE namatabel;
(
Field1 TipeData1 ([lebar]),
Field2 TipeData2 DEFAULT nilai
);
Dimana nilai adalah nilai default
dariatribut tersebut.
Contoh :
prakDB/DianaCindy(205)create
table buku (
Kode_buku varchar(5) not null,
Judul_buku varchar(15) not null,
harga integer default 0,
tahun_terbit varchar(5),
kode_pengarang varchar(5),
kode_penerbit varchar(5));
b. Menentukan kunci primer ( Primary Key
) Pada Tabel
Key adalah satu
gabungan dari beberapa atribut yang dapat membedakan semua basis data (row)
dalam tabel secara unik. Kry di dalam database berfungsi sebagai suatu cara
unuk mengidentifikasi dan menghubungkan satu tabel data dengan tabel yang lain.
Primary Key adalah
suatu atribut atau satu set minimal atribut yang tidak hanya mendefinisikan
secara unik suatu kejadian spesifik tetapi juga dapat mewakili setiap kejadian
dari suatu kejadian.
Terdapat tiga cara
untuk membuat primary key. Berikut ini adalah Syntax membuat primary key untuk Field1
Cara 1 :
CREATE
TABLE namatabel
(
Field
TipeData1 ([lebar]) NOT FULL PRIMARY KEY,
Field
TipeData2 ([lebar])
);
Cara 2 :
CREATE
TABLE namatabel
(
Field
TipeData1 ([lebar]),
Field
TipeData2 ([lebar]),
PRIMARY
KEY(Field1)
);
Cara 3:
ALTER
TABLE namatabel ADD CONSTRANT namaconstraint PRIMARY KEY (namakolom) ;
Berikut ini perintah
untuk membuat tabel pengarang dengan atribut kode_pengarang tipe datanya
varchar(5), nama_pengarang tipe datanya varchar(15) engan mendfinisikan nilai
not null dan primary key untuk antribut kode_pengarang :
Contoh 1 :
prakDB/DianaCindy(205)ceeate table pengarang (
Kode_pengarang
varchar (5) not null primary key,
Nama_pengarang varchar(15) not null);
Contoh 2 :
prakDB/DianaCindy(205)create table pengarang (
Kode_pengarang
varchar (5) not null,
Nama_pengarang
varchar(15) not null,
Primary
key (kode_pengarang));
Contoh 3:
prakDB/DianaCindy(205)create table pengarang (
Kode_pengarang varchar (5) not null,
Nama_pengarang
varchar(15) not null);
penambahan primary key :
prakDB/DianaCindy(205)alter
table pengarang add constraint pk primary key (kode_pengarang);
c.
Menghapus Primary Key Pada Tabel
Perintah :
Cara 1 : Jika primary key
dibuat dengan menggunakan alter table :
ALTER
TABLE namatabel DROP CONSTRAINT namaconstraint ;
Cara 2 : Jika primary key
dibuat melalui create table :
ALTER
TABLE namatabel1 DROP PRIMARY KEY ;
Berikut ini perintah yang digunakan untuk
menghapus primary key pada tabel buku :
prakDB/DianaCindy(205)alter
table pengarang drop primary key;
d. Menentukan Foreign Key Pada Tabel
Untuk membuat
foreign key, maka harus dipastikan bahwa tabel dan atribut yang dirujuk (tabel
induk dari foreign key) sudah definisikan terlebih dahul. Perintah yang
digunakan sebagai berikut :
CREATE
TABLE namatabel
(
Field1
TipeData1 ([lebar]),
Field2
TipeData2 ([lebar]),
FOREIGN KEY
(Field2) REFERENCES namatabelinduk
(namafieldinduk) ON UPDATE CASCADE
ON DELETE NO ACTION
)
atau
ALTER TABEL namatabel ADD
CONSTRAINT namaconstraint FOREIGN KEY (namafield) REFERENCES namatabelinduk (namafieldinduk)
ON UPDATE CASCADE ON DELETE NO ACTION;
Berikut ini perintah
untuk membuat tabel buku beserta kolom-kolomnya :
prakDB/DianaCindy(205)create
tabel buku (
Kode_buku
varcahar(5) not null primary key,
Judul_buku
varchar(15) not null,
harga
integer default 0,
tahun_terbit
varchar(5),
kode_pengarang
varchar(5),
kode_penerbit
varchar(5),
Foreign
key(kode_pengarang) references pengarang (kode_pengarang) on update cascade on
delete no action);
Atau
prakDB/DianaCindy(205)create
table buku (
Kode_buku varchar(5) not null
primary key,
Judul_buku
varchar(15) not null,
harga
integer default 0,
tahun_terbit
varchar(5),
kode_pengarang
varchar(5),
kode_penerbit
varchar(5));
prakDB/DianaCindy(205)alter table buku add constraint fk foreign key (kode_pengarang) references pengarang(kode_pengarang) on update cascade on delete no action;
e. Menghapus Foreign Key
Foreign key yang sudah dibuat di hapus
dengan perintah :
ALTER TABLE namatabel DROP FOREIGN
KEY namaconstraint;
Berikut ini perintah untuk menghapus
foreign key pada tabel buku :
prakDB/DianaCindy(205)alter table
buku drop foreign key fk;
f.
Mengubah Struktur Tabel
Tabel yag sudah dibuat dilakukan perubahan
strukturnya seperti penambahan atribut (field), penghapusan atribut (field)
bahkan mengganti lebar field dari tabel tersebut. Perintah yang digunakan
adalah ALTER TABLE.
ü Menambah Atribut Baru Pada Tabel
Syntax :
ALTER TABLE
namatabel ADD fieldbaru tipe;
Dimana :
Namatabel adalah nama tabel yang akan
ditambah fieldnya.
Field baru adalah nama atribut yang akan
ditambahkan, tipe adalah tipe data dari atribut yang akan ditambahka. Berikut
ini perintah untuk menambah atribut keterangan dengan tipe data varchar(25) ke
dalam tabel buku :
prakDB/DianaCindy(205)alter
table buku add keterangan varchar(25);
ü Mengubah Tipe Data atau Lebar Atribut
Pada Tabel
Syntax :
ALTER TABLE
namatabel MODIFY COLUMN field tipe ;
Dimana :
namatabel adalaha nama table yang akan diubah
tipe data atau lebar atributnya. Field adalah atribut yang akan diubah tie data
atau lebarnya. Tipe adalah tipe data baru atau tipe data lama dengan
lebaratribut yang berbeda. Berikut ini perintah untuk mengubah tipe data untuk
atribut keterangan dengan char(20) :
prakDB/DianaCindy(205)alter
table buku modify column keterangan char(20);
ü Mengubah Nama Atribut (Field) pada Tabel
Syntax :
ALTER TABLE namatabel CHANGE COLUMN
namalamafield namabarufield tipedatanya;
Dimana :
namatabel adalah
nama table yang akan diubah nama atributnya, namalamafield adalah atribut yang
akan diganti namanya, namabarufield adalah nama baru atribut, tipedatanya
adalah tipe data dari atribut tersebut. Berikut ini perintah untuk mengubah
nama atribut keterangan menjadi ket :
prakDB/DianaCindy(205)alter
table buku change column keterangan ket char(20);
ü Menghapus Atribut (Field) Pada Tabel
Syntax :
ALTER TABLE namatabel DROP COLUMN
namakolom;
Berikut ini perintah untuk menghapus atribut
ket pada table buku :
prakDB/DianaCindy(205)alter table buku drop ket;
g. Menghapus Tabel
Table sudah dibuat dapat di hapus dengan
menggunakan perintah DROP TABLE. Syntax sebagai berikut :
DROP TABLE namatabel;
Table yang akan dihapus sesuai dengan
namatabel, beriku ini untuk menghapus table dengan nama pengarang :
prakDB/DianaCindy(205)drop
table buku;
POKOK
BAHASAN 4
DATA MANIPULATION LANGUAGE (DML)
PENDAHULUAN
Pada pokok bahasan ini akan dibahas mengenai data
manipulation language (DML), dimana data pada basis data dapat di kelolah dan
dimanipulasi dengan menggunakan perintah insert,
select, update dan delete. Setelah mempelajari materi ini diharapkan mahasiswa mampu
:
1.
Mahasiswa mampu memasukkan data ke tabel di MySQL.
2.
Mahasiswa mampu memanipulasi data dalam basis data di
MySQL.
3.
Mahasiswa mampu melakukan query dalam basis data di
MySQL.
PENYAJIAN (TUTORIAL)
A.
Data
Manipulation Language (DML)
Data
Manipulation Language (DDL) merupakan perintah-perintah yang berfungsi untuk
melakukan manipulasi data ataupun objek-objek yang ada didalam tabel. Antara
lain: perintah untuk memilih data (query), menyisipkan, mengubah dan menghapus
data dalam basis data.
Bentuk
manipulasi yang dapat dilakukan oleh DML diantaranya adalah :
- Melakukan
pencarian kembali data lama,
- Penyisipan
data baru ke dalam tabel
- Penghapusan
data
- Pengubahan
data
- Menampilkan
data dengan kreiteria tertentu
- Menampilkan
data secara terurut.
DML
menurut jenisnya dapat dibagi menjadi 2 jenis yaitu :
- Prosedural,
DML membutuhkan pemakai untuk menspesifikasikan data apa yang dibutuhkan
dan bagaimana cara mendapatkannya, Contoh paket bahasa prosedural adalah
dBase III, FoxBase.
- Non
Prosedural, DML membutuhkan pemakai untuk menspesifikasikan data apa yang
dibutuhkan tanpa tahu bagaimana cara mendapatkannya. Contoh paket bahasa
non prosedural adalah SQL (Structured Query Language) atau Query By
Example (QBE).
B.
Perintah
DML sebagai berikut :
a. INSERT
Perintah
INSERT digunakan untuk menambahkan baris pada suatu tabel.
Terdapat
dua cara untuk menambah baris, yaitu :
Cara
1 :
Menambah
baris dengan mengisi data langsung pada setiap kolom tanpa menyertakan struktur
tabel :
INSERT
INTO namatabel VALUES (nilai1,nilai2,nilai-n);
Cara
2 :
Menambah
baris dengan menyertakan struktur tabel dalam mengisi data pada setiap kolom :
INSERT
INTO namatabel (kolom1,kolom2,kolom-n) VALUES (nilai1,nilai2,nilai-n);
Berikut
ini perintah untuk menambahkan baris pada tabel buku :
Cara
1 :
MariaDB [perpustakaan2]> insert into buku values ('B001','Sistem Basis Data','25000','2004','P001','T001');
Cara
2 :
MariaDB [perpustakaan2]> insert into buku (kode_buku,judul_buku,harga,tahun_terbit,kode_pengarang,kode_penerbit) values ('B002','Sistem Informasi','50000','2003','P001','T001');
Keterangan
:
Jika
data bertipe string, date atau time (contoh : B001, Sistem Basis Data,
2007-11-10) maka pemberian nilainya diapit dengan tanda petik tunggal (‘B001’)
atau petik ganda (“B001”). Jika data bertipe numerik (2500, 400) maka pemberian
nilainya tidak diapit tanda petik tunggal maupun ganda.
b. UPDATE
Perintah
UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada
suatu tabel.
Syntax
:
UPDATE
namatabel SET kolom1 = nilai1, kolom2 = nilai2 [WHERE kondisi];
Perintah
dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu
kondisi tertentu. Berikut ini perintah untuk mengubah baris pada tabel
pengarang dengan data sebagai berikut :
Contoh
1 : mengubah semua nilai pada kolom judul_buku menjadi ‘Basis Data’ :
MariaDB
[perpustakaan2]>
update buku set judul_buku=’Basis Data’;
Contoh
2 : mengubah nilai pada kolom judul_buku menjadi Basis Data Terpadu dimana
nilai pada kolom kode_buku adalah B001 :
Mysql> update buku set
judul_buku=’Basis Data Terpadu’ where kode_buku=’B001’;
c. SELECT
Perintah
SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkan
dengan tabel yang lainnya.
1) Menampilkan
data untuk semua kolom menggunakan asterisk (*)
Syntax
: SELECT * FROM namatabel;
Berikut
ini perintah untuk menampilkan semua data pada tabel buku:
MariaDB
[perpustakaan2]>
select * from buku;
2) Menampilkan
data untuk kolom tertentu
Syntax
: SELECT kolom1,kolom2,kolom-n FROM namatabel;
Berikut
ini perintah untuk menampilkan data pada tabel buku dengan kolom yang
ditampilkan adalah kolom kode_buku :
MariaDB
[perpustakaan2]>
select kode_buku from buku;
3) Menampilkan
data dengan kondisi data tertentu dengan klausa WHERE
Syntax
: SELECT * FROM namatabel WHERE kondisi;
Berikut
ini perintah untuk menampilkan data pada tabel buku dimana nilai pada kolom
kode_buku adalah B001 :
MariaDB [perpustakaan2]> select * from buku where
kode_buku=’B001’;
Beberapa
operator perbandingan yang dapat digunakan pada klausa WHERE selain “=” adalah : > (lebih dari), <
(kurang dari), < > (tidak sama dengan), >= (lebih dari atau sama
dengan), <= (kurang dari atau sama dengan). Adapun operator lain, yaitu :
AND, OR, NOT, BETWEEN-AND, IN dan LIKE. Berikut ini data yang ada pada tabel
pengarang:
Contoh
1 : perintah untuk menampilkan data pada tabel buku dimana nilai harga berkisar
dari 25000 hingga 50000 :
MariaDB
[perpustakaan2]> select * from buku where
harga>=25000 and harga<=50000;
Atau
MariaDB
[perpustakaan2]>
select * from buku where harga between 25000 and 50000;
Contoh
2 : perintah untuk menampilkan data pada tabel buku dimana nilai harga sama
dengan 25000 atau 50000 :
MariaDB
[perpustakaan2]>
select * from buku where harga=25000 or harga=50000;
Atau
MariaDB
[perpustakaan2]>
select * from buku where harga in (25000,50000);
Contoh
3 : perintah untuk menampilkan data pada tabel buku dimana nilai pada kolom
judul_buku tidak sama dengan basis data :
MariaDB
[perpustakaan2]>
select * from buku where not judul_buku=’Basis Data Terpadu’;
Atau
MariaDB
[perpustakaan2]>
select * from buku where judul_buku<>’Basis Bata Terpadu’;
Contoh
4 : Isi tabel buku
MariaDB
[perpustakaan2]>
select * from buku;
perintah
untuk menampilkan data pada tabel buku dimana data pada kolom tertentu diawali
dengan nilai tertentu, misalnya pada kolom judul_buku dimana diawali dengan
karakter ‘B’ :
MariaDB [perpustakaan2]> select * from buku where
judul_buku like ‘B%’;
4) Memberikan
nama lain pada kolom
Syntax
: SELECT namakolomlama AS namakolombaru FROM namatabel;
Berikut
ini perintah untuk memberikan nama lain pada kolom judul_buku menjadi judul
pada tabel pengarang :
Mysql>
select judul_buku as judul from buku;
5) Menggunakan
alias untuk nama tabel
Syntax
: SELECT namalias.jenis, namalias.harga FROM namatabel namalias;
Berikut
ini perintah untuk memberikan alias pada tabel buku :
MariaDB
[perpustakaan2]>
select j.judul_pengarang, j.harga from buku j;
6) Menampilkan
data lebih dari dua tabel
Syntax
: SELECT * from namatabel1,namatabel2,namatabel-n;
Isi
tabel pengarang:
MariaDB
[perpustakaan2]>
select * from pengarang;
Isi
tabel buku :
MariaDB
[perpustakaan2]>
select * from buku;
Berikut
ini perintah untuk menampilkan semua data pada tabel pengarang dan buku :
MariaDB
[perpustakaan2]>
select * from pengarang, buku;
7) Operator
comparison ANY dan ALL
a. Operator
ANY digunakan berkaitan dengan subquery. Operator ini menghasilkan TRUE
(benar) jika paling tidak salah satu perbandingan dengan hasil subquery
menghasilkan nilai TRUE. Ilustrasinya :
Gaji > ANY (S)
Jika
subquery S menghasilkan G1, G2, ..., Gn, maka kondisi di atas identik
dengan :
(gaji > G1) OR (gaji > G2) OR
... OR (gaji > Gn)
Contoh
: perintah untuk menampilkan semua data pengarang yang harga bukunya bukan yang
terkecil:
MariaDB
[perpustakaan2]>
select * from buku where harga > ANY
(select kode_pengarang from pengarang);
b. Operator
ALL digunakan untuk melakukan perbandingan dengan subquery. Kondisi
dengan ALL menghasilkan nilai TRUE (benar) jika subquery tidak
menghasilkan apapun atau jika perbandingan menghasilkan TRUE untuk setiap nilai
query terhadap hasil subquery.
Contoh:
perintah untuk menampilkan data pengarang yang harganya paling tinggi:
MariaDB [perpustakaan2]> select * from buku where harga
>= ALL (select kode_pengarang from
pengarang);
8) Aggregate
Functions (COUNT, SUM, AVG, MIN, MAX)
a. COUNT
Perintah
yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel. Contoh :
perintah untuk menghitung jumlah baris kolom kode_buku pada tabel buku:
MariaDB
[perpustakaan2]>
select count(kode_buku) from buku;
b. SUM
Perintah
yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel. Contoh :
perintah untuk menghitung jumlah nilai kolom harga pada tabel pengarang:
MariaDB
[perpustakaan2]>
select sum(harga) from buku;
c. AVG
Perintah
yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel.
Contoh : perintah untuk menghitung rata-rata dari kolom harga pada tabel
pengarang:
MariaDB
[perpustakaan2]>
select avg(harga) from buku;
d. MIN
Perintah
yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel.
Contoh
: perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel buku:
MariaDB [perpustakaan2]> select min(harga) from buku;
e. MAX
Perintah
yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel.
Contoh : perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel
buku:
MariaDB
[perpustakaan2]>
select max(harga) from buku;
9) SQL
dengan GROUP BY dan HAVING
Klausa
GROUP BY digunakan untuk melakukan pengelompokan data. Sebagai contoh, terdapat
tabel buku dengan data sebagai berikut :
MariaDB
[perpustakaan2]>
select * from buku;
akan
ditampilkan hanya kolom tahun_masuk dan digabungkan dengan SUM(jml_buku) yang
dikelompokkan berdasarkan kolom tahun_masuk pada tabel buku :
MariaDB
[perpustakaan2]> select sum(jml_buku) from buku group by tahun_terbit:
Klausa
HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY. Kelompok yang
memenuhi HAVING saja yang akan dihasilkan. Contoh : perintah untuk menampilkan
data hanya kolom tahun_masuk yang dikelompokkan berdasarkan kolom tahun_masuk,
dimana jumlah buku berdasarkan kelompoknya harus lebih besar dari satu pada
tabel buku :
MariaDB [perpustakaan2]>
select kode_pengarang from buku group by kode_pengarang having count(kode_buku)
>1;
10) ORDER
BY
Klausa
ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai
dengan tipe data yang dimiliki. Contoh : perintah untuk mengurutkan data buku
berdasarkan kolom judul :
MariaDB [perpustakaan2]>
select *from buku order by judul_buku;
atau
tambahkan ASC untuk pengurutan secara ascending (menaik)
MariaDB
[perpustakaan2]>
select *from buku order by judul_buku asc;
atau
tambahkan DESC untuk pengurutan secara descending (menurun)
MariaDB [perpustakaan2]> select
*from buku order by judul_buku desc;
d. DELETE
Perintah
DELETE digunakan untuk menghapus satu baris, baris dengan kondisi tertentu atau
seluruh baris. Syntax :
DELETE
FROM namatabel [WHERE kondisi];
Perintah
dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu
kondisi tertentu. Berikut ini perintah untuk menghapus baris pada tabel buku
dengan data sebagai berikut :
MariaDB [perpustakaan2]>
select * from buku;
Contoh
1 : jika ingin menghapus seluruh baris pada tabel pengarang :
MariaDB [perpustakaan2]> delete
from buku;
Contoh
2 : jika ingin menghapus baris yang memiliki nilai ‘B001’ pada kolom kode_buku
pada tabel buku maka perintahnya sebagai berikut :
MariaDB
[perpustakaan2]>
delete from buku where kode_buku=’B001’;
Contoh
3 : jika ingin menghapus baris yang memiliki nilai ‘Basis Data Terpadu’ pada
kolom judul_buku pada tabel buku maka
perintahnya sebagai berikut :
MariaDB [perpustakaan2]> delete
from buku where judul_buku=’Basis Data Terp’;
POKOK BAHASAN 5
QUERY
DAN VIEW
PENDAHULUAN
Pada pokok bahasan ini akan dibahas mengenai
query dan view dalam basis data. Setelah mempelajari bab ini diharapkan mahasiswa
mampu :
1.
Mengelolah data dengan kriteria tertentu.
2.
Mengelolah data dari beberapa tabel.
3. Memahami dan membuat View
4. Dapat Memanggil data melalui View
5. Merubah definisi View
6. Insert, Update, dan Delete data melalui View
7.
Menghapus (drop) view
PENYAJIAN (TUTORIAL)
A. Query
Query merupakan suatu proses pengolahan data
yang digunakan untuk memberikan hasil dari basis data berdasarkan kriteria
tertentu. Query tidak hanya membaca atau mengambil data, query biasanya
melibatkan beberapa tabel yang direlasikan dengan menggunakan field kunci.
Namun query juga dapat digunakan pada satu tabel saja, tetapi hasilnya kurang
informatif dan terbatas.
- Aturan dalam melakukan query antar tabel :
a.
Setiap field disebutkan bersama dengan nama tabelnya,
dipisahkan tanda titik (.).
Syntax :
Namatabel.namafield.
Contoh : buku.kode_buku artinya field
kode_buku dari tabel buku.
b.
Setiap tabel yang terlibat dalam proses query harus
disebutkan dalam klausa FROM, dengan pemisah koma (,).Dimana urutan tabel tidak
mempengaruhi proses query.
Contoh : FROM buku,
anggota.
c.
Kondisi dalam klausa WHERE mempengaruhi jenis join yang
tercipta.
- Jenis-jenis join
pada query :
a.
Operator Cross Join
Operator ini berguna untuk melakukan operasi
penggabungan dengan perkalian kartesain. Namun penggabungan jenis ini jarang
digunakan karena tidak menghasilkan nilai informasi yang efektif.
Contoh :
prakDB/DianaCindy(205)> select * from buku
cross join pengarang limit 5;
b.
Operator Inner Join
Inner join digunakan untuk menampilkan data
dari dua tabel yang berisi data sesuai dengan syarat dibelakang on (tidak boleh
null), dengan kata lain semua data dari tabel kiri mendapat pasangan data dari
tabel sebelah kanan. Berikut ini perintah untuk menampilkan data dari tabel
pengarang dan buku dengan syarat berdasarkan kolom kode_pengarang :
prakDB/DianaCindy(205)> select * from
pengarang join buku on (pengarang.Kode_pengarang=buku.Kode_pengarang);
c.
Operator Equijoin
Equijoin adalah penggabungan antar tabel
dengan menggunakan operator ‘=’ pada kondisi klausa WHERE
Contoh :
prakDB/DianaCindy(205)>
SELECT buku.Kode_buku, buku.judul_buku, pengarang.Kode_pengarang,
pengarang.Nama_pengarang FROM buku, pengarang WHERE
buku.Kode_pengarang=pengarang.Kode_pengarang;
d.
Operator Self-Join
Self-join adalah jenis penggabungan antar
field dari tabel yang sama. Untuk melakukan penggabungan self-join menggunakan
alias.
Contoh :
prakDB/DianaCindy(205)> SELECT
a.Kode_buku, b.Judul_buku FROM buku a, buku b WHERE a.harga=’25000’ AND
a.harga=’25000’;
e.
Operator Natural Join
Operator ini digunakan untuk melakukan operasi
equijoin dengan memperlakukan nama-nama kolom yang sama sebagai kolom
penghubung.
Contoh :
prakDB/DianaCindy(205)> SELECT
buku.kode_buku, buku.judul_buku, pengarang.kode_pengarang,
pengarang.nama_pengarang FROM buku NATURAL JOIN pengarang;
Natural Join dibedakan menjadi 2 yaitu :
·
Natural Left Join
Natural left join digunakan untuk menampilkan
semua data dari tabel sebelah kiri perintah natural left join beserta
pasangannya dari tabel sebelah kanan. Meskipun terdapat data dari sebelah kiri
tidak memiliki pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai
NULL.
prakDB/DianaCindy(205)> select
*from pengarang natural left join buku;
·
Natural Right Join
Natural right join digunakan untuk
menampilkan semua data dari tabel sebelah kanan perintah natural right join
beserta pasangannya dari tabel sebelah kiri. Meskipun terdapat data dari
sebelah kanan tidak memiliki pasangan, tetap akan ditampilkan dengan
pasangannya berupa nilai NULL.
prakDB/DianaCindy(205)> select
*from pengarang natural right join buku;
- UNION, INTERSECT
dan EXCEPT
1.
UNION
UNION merupakan operator yang digunakan untuk
menggabungkan hasil query, dengan ketentuan jumlah, nama dan tipe kolom
dari masing-masing tabel yang akan ditampilkan datanya harus sama. Berikut ini
perintah untuk memperoleh data pada tabel buku dimana tahun penerbitan 2003 dan
2004 :
Mysql> select tahun_terbit,judul from buku
where tahun_terbit=’2003’ union > select tahun_terbit,judul from buku where
tahun_terbit=’2004’;
Perintah di atas identik dengan :
prakDB/DianaCindy(205)> select
tahun_terbit,Judul_buku from buku where tahun_terbit=’2003’ or tahun_terbit
=’2004’;
Namun tidak semua penggabungan dapat
dilakukan dengan OR, yaitu jika bekerja pada dua tabel atau lebih.
2.
INTERSECT
INTERSECT merupakan operator yang digunakan
untuk memperoleh data dari dua buah query dimana data yang ditampilkan
adalah yang memenuhi kedua query tersebut dengan ketentuan jumlah, nama
dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus
sama.
Syntax :
SELECT * FROM namatabel1 INTERSECT SELECT *
FROM namatabel2
Pada MySQL tidak terdapat operator INTERSECT
namun sebagai gantinya dapat menggunakan operator IN seperti contoh 1 pada
bagian Nested Queries.
3.
EXCEPT / Set Difference
EXCEPT merupakan operator yang digunakan
untuk memperoleh data dari dua buah query dimana data yang ditampilkan
adalah data yang ada pada hasil query 1 dan tidak terdapat pada data
dari hasil query 2 dengan ketentuan jumlah, nama dan tipe kolom dari
masing-masing tabel yang akan ditampilkan datanya harus sama.
Syntax :
SELECT * FROM namatabel1 EXCEPT SELECT * FROM
namatabel2
Pada MySQL tidak terdapat operator EXCEPT
namun sebagai gantinya dapat menggunakan operator NOT IN seperti contoh 2 pada
bagian Nested Queries.
- Nested Queries /
Subquery (IN, NOT IN, EXISTS, NOT EXISTS)
Subquery berarti query di dalam query. Dengan
menggunakan subquery, hasil dari query akan menjadi bagian dari query
di atasnya.
Subquery terletak di dalam klausa WHERE atau HAVING. Pada klausa
WHERE, subquery digunakan untuk memilih baris-baris tertentu yang
kemudian digunakan oleh query. Sedangkan pada klausa HAVING, subquery
digunakan untuk memilih kelompok baris yang kemudian digunakan oleh query.
Contoh 1 : perintah untuk menampilkan data
pada tabel pengarang yang mana data pada kolom kode_pengarang-nya tercantum
pada tabel buku menggunakan IN :
prakDB/DianaCindy(205)> select
* from pengarang where Kode_pengarang in (select Kode_pengarang from buku);
atau menggunakan EXISTS
prakDB/DianaCindy(205)> select
* from pengarang where exists (select * from buku where
pengarang.Kode_pengarang=buku.Kode_pengarang);
Pada contoh di atas :
SELECT
kode_pengarang FROM buku
disebut subquery, sedangkan :
SELECT
* FROM pengarang
berkedudukan sebagai query.
Perhatikan, terdapat data jenis dan harga pada tabel pengarang yang tidak
ditampilkan. Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom
jenis di tabel buku.
Contoh 2 : perintah untuk menampilkan data
pada tabel pengarang yang mana data pada kolom jenis-nya tidak tercantum pada
tabel buku menggunakan NOT IN :
prakDB/DianaCindy(205)> select * from
pengarang where kode_pengarang not in (select kode_pengarang from buku);
atau menggunakan NOT EXISTS
prakDB/DianaCindy(205)> select *from
pengarang where not exists (select * from buku where
pengarang.Kode_pengarang=buku.Kode_pengarang);
B. View
View adalah perintah query
yang disimpan pada database dengan suatu nama tertentu, sehingga bisa digunakan
setiap saat untuk melihat data tanpa menuliskan ulang query tersebut.
Syntax dasar perintah untuk membuat view adalah
sebagai berikut :
CREATE
[OR REPLACE]
VIEW view_name [(column_list)]
AS select_statement
[OR REPLACE]
VIEW view_name [(column_list)]
AS select_statement
Kita menggunakan opsi
OR REPLACE jika kita ingin mengganti view dengan nama yang sama dengan perintah
tersebut. Jika tidak maka perintah CREATE VIEW akan menghasilkan error jika
nama view yang ingin dibuat sudah ada sebelumnya.
1. View antar 2 tabel
Kita akan membuat view dari relasi antara tabel "buku" dan
"penerbit" untuk menampilkan data buku dan penerbitnya dari
database perpustakaan dengan nama "view_buku".
Perintahnya adalah sebagai berikut :
prakDB/DianaCindy(205)> CREATE VIEW view_buku
AS SELECT a.Kode_buku, a.Judul_buku, a.tahun_terbit, b.Nama_pengarang FROM buku
a JOIN pengarang b ON a.kode_pengarang= b.kode_pengarang;
Eksekusi perintah
berikut untuk memastikan view telah dibuat :
SELECT * FROM information_schema.views WHERE table_name = 'view_buku';
Lihat hasil query view view_buku :
prakDB/DianaCindy(205)> select *from view_buku;
2.
View dengan 3 tabel
Membuat view dari relasi
antara tabel “buku”, “angota” dan “peminjaman” untuk menampilkan data peminjaman buku dari
database perpustakaan dengan nama "view_peminjaman".
Perintahnya adalah sebagai berikut :
prakDB/DianaCindy(205)>
CREATE VIEW view_peminjaman
AS
SELECT a.id_peminjaman,
b.kode_buku, b.judul_buku,
c.kode_anggota,
c.nama_anggota, a.tanggal_pinjam,
a.tanggal_kembali
FROM peminjaman a,
buku b,
anggota c WHERE a.kode_buku= b.kode_buku AND
a.kode_anggota=c.kode_anggota;
Eksekusi perintah
berikut untuk memastikan view telah dibuat :
SELECT * FROM information_schema.views WHERE table_name = 'view_peminjaman';
Lihat hasil query view view_peminjaman :
prakDB/DianaCindy(205)> select *from view_peminjaman;
POKOK
BAHASAN 6
DATA CONTROL LANGUAGE (DCL) / HAK
AKSES USER
PENDAHULUAN
Pada
pokok bahasa ini akan dibahas mengenai manajemen hak akses user terhadap basis
data. Setelah mempelajari bab ini
diharapkan mahasiswa mampu :
a. Mengetahui dan
memahami hak akses di basis data.
b. Mengetahui
dan memahami
pengaturan hak akses user.
c. Memahami
dan menerapkan batasan-batasan hak akses user.
PENYAJIAN (TUTORIAL)
A. Pemahaman Hak
Akses
Basis data yang
telah dibuat perlu diatur agar data selalu dalam keadaan aman dari pemakai yang
tidak berhak. Pengaturan hak akses berguna dalam hal pembatasan pengaksesan
suatu data, misalkan hanya pemakai tertentu yang bisa membaca atau pemakai lain
yang justru dapat melakukan perubahan dan penghapusan data.
Macam-macam
perintah yang terkait dengan hak akses adalah SELECT, INSERT, UPDATE, DELETE,
REFERENCES, INDEX, CREATE, ALTER dan DROP.
B. Mengatur Hak
Akses
Untul
MySQL versi 3.22. keatas dalam manajemen user dapat menggunakan perintah GRANT
dan REVOKE untuk mengatur hak akses pemakai (user).
1.
Perintah GRANT
Dipergunakan untuk membuat user baru dengan izin aksesnya.
Bentuk umum :
GRANT jenis_akses
(`nama_kolom) ON nama_database TO nama_user IDENTIFIED BY
”nama_password” [WITH GRANT pilihan_akses]
Atau
GRANT
hak_akses ON namatabel TO pemakai;
Dimana
:
·
Hak_akses
merupakan hak yang diberikan kepada pemakai berupa SELECT, INSERT saja atau
keduanya. Bila hak akses lebih dari satu antar hak akses dipisahkan dengann
koma (,).
·
Nama tabel,
menyatakan nama tabel yang akan diakses dan diatur.
·
Pemakai, nama
pemakai yang telah didaftarkan pada sistem database. Sejumlah pemakai bisa
disebutkan dengan dipisahkan tanda koma (,).
Contoh
:
Misalkan
kita sebagai Administrator basis data yang mempunyai wewenang untuk mengatur
hak akses para pemakai. Kita akan mengatur hak akses pengguna siska dan edi
(sebagai user).
prakDB/DianaCindy(205)> GRANT SELECT ON buku TO nita;
Perintah
diatas digunakan untuk memberikan hak akses SELECT terhadap tabel buku kepada
user siska sehingga user siska dapat menggunakan perintah SELECT untuk
melakukan proses query pada tabel buku.
Hak
akses lebih dari satu :
MariaDB
[perpustakaan2]>GRANT SELECT, INSERT, UPDATE, DELETE ON buku TO nita,cindy;
2. Perintah
REVOKE
C. Membatasi Hak
Akses
Hak akses perlu
dibatasi untuk memudahkan dalam mengatur dan mengawasi pemakaian data serta
menjaga keamanan data.
Contoh :
Administrator
akan memberikan hak akses kepada edi dalam melakukan query tabel buku untuk field
tertentu saja. Perintahnya :
MariaDB
[perpustakaan2]>GRANT SELECT,UPDATE(kode_buku,judul_buku,tahun_terbit) ON
buku TO cindy;
Dari perintah
diatas user arif hanya dapat
melakukan SELECT dan UPDATE terhadap tiga field
yaitu kode_buku, judul_buku, tahun_terbit).
D. Hak Akses Penuh
Untuk memberikan
hak akses penuh kepada pemakai, dapat memakai perintah klausa ALL PRIVILEGES.
Tentunya dengan pemberian hak akses penuh kepada pemakai (user).
Contoh :
MariaDB
[perpustakaan2]>GRANT ALL PRIVILEGES ON buku to nita;
Atau menggunakan
MariaDB
[perpustakaan2]> GRANT ALL ON buku to nita;
E. Hak Akses kepada
Public
Untuk memberikan
hak akses kepada banyak user dapat menggunakan klausa PUBLIC. Bebrapa DBMS ada
yang menggunakan klausa WORLD. Contoh :
prakDB/DianaCindy(205)> grant
select, insert, update on buku to 'world';
F.
Pencabutan
Hak Akses
1. Pencabutan
Hak Akses Sementara
Untuk
melakukan pencabutan atau penghapusan hak akses user menggunakan perintah
REVOKE. Perintah ini juga mampu melakukan pencabutan hak akses sebagian pemakai
atau secara keseluruhan.
Bentuk umum :
REVOKE
hak_akses
ON nama_databaseFROM nama_user;
atau
REVOKE
hak_akses ON namatabel FROM nama_user;
Contoh
:
Admistrator
ingin mencabut hak akses user siska, maka perintahnya :
MariaDB [perpustakaan2]> REVOKE
SELECT ON buku FROM nita;
Atau
MariaDB [perpustakaan2]> REVOKE SELECT, INSERT
ON buku FROM cindy;
2. Perintah
DELETE
Untuk menghapus user
secara permanen dari basis data.
Komentar
Posting Komentar