Modul Basis Data 2
Modul Basis Data 2
BASIS DATA 2
MySQL merupakan salah satu DBMS yang bersifat freeware, sehingga menjadi popular
dikalangan pengguna database. Selain karena Free MySQL juga merupakan DBMS yang
relatif ringan dan mudah digunakan. Ada beberapa software yang bisa digunakan untuk
menjalankan service MySQL, diantaranya WAMP, PhpTriad dan XAMPP. Namun XAMPP
merupakan yang paling popular saat ini karena masih terus dilakukan update pada software
nya.
XAMPP merupakan program paket yang didalamnya terdapat beberapa software yang
digabungkan menjadi satu. Dalam XAMPP sendiri didalamnya terdapat 5 software yang
berbeda (MySql, Apache, FileZilla,Mercury, Tomcat). Jadi ketika menginstall XAMPP kita
tidak perlu lagi menginstall Apache dan MySQL secara terpisah.
Direktori mysql
Semua proses yang berjalan untuk bekerja dalam MySQL terdapat dalam direktori
mysql. Ada beberapa direktori yang perlu diketahui dalam direltori mysql :
a. Bin
Direktori bin berisi service-service yang bisa dijalankan untuk mengakses mysql.
b. Data
Direktori ini berisi database dan tabel yang sudah dibuat.
3. Menggunakan MySQL
a. Nyalakan (START) Service MySQL
Sintaks :
cd : c\xampp\xampp\mysql\bin\
Contoh dalam CMD :
1. SHOW
Berfungsi untuk melihat list/daftar dari database atau tabel yang sudah dibuat.
a. Melihat daftar database
Untuk melihat daftar database yang sudah dibuat.
Query : SHOW databases;
b. Melihat daftar tabel
Untuk melihat daftar database yang ada digunakan fungsi show tables.
Query : SHOW tables;
2. USE
Perintah USE digunakan untuk memilih database yang ingin digunakan.
Query : USE nama_database;
3. Create
Berfungsi untuk membuat database atau tabel baru.
a. Membuat database
CREATE DATABASE nama_database;
b. Membuat tabel
CREATE TABLE nama_tabel (
Field1 TipeData1,
Field2 TipeData2,
………………
FieldN TipeDataN
);
4. Desc
Digunakan untuk melihat struktur (metadata) sebuah tabel.
DESC nama_tabel;
Tugas
1. Buat satu buah database
2. Buat dua buah tabel pada database yang telah dibuat sebelumnya
1. Insert
Berfungsi untuk mengisikan data kedalam sebuah tabel.
Query :
INSERT INTO nama_tabel VALUES (‘nilaiField1’, ‘nilaiField2’, ………,
‘nilaiFieldN’);
2. Select
Digunakan untuk menampilkan isi tabel. Untuk menampilkan sebuah tabel ada beberapa
kondisi yang bisa digunakan, antara lain :
a. SELECT ALL
Kondisi ini digunakan untuk menampilkan semua record dan semua field nya dalam
sebuah tabel.
Query : SELECT * FROM nama_tabel;
b. SELECT FIELD
Kondisi ini digunakan untuk menampilkan remua record yang ada, tetapi hanya field
tertentu saja.
Query : SELECT field1,field2,… FROM nama_tabel;
c. SELECT RECORD (WHERE)
Kondisi ini digunakan untuk menampilkan isi dari record tertentu saja. WHERE bisa
digunakan untuk SELECT ALL maupun SELECT FIELD.
Query : SELECT (ALL/FIELD) FROM nama_tabel WHERE nama_field = ‘value’;
Latihan
1. Isikan data kedalam tabel siswa dan dosen yang telah dibuat sebelumnya
a. Mengisi data pada tabel siswa
INSERT INTO siswa VALUES (‘123040203’, ‘WAWAN ADI’, ‘19721201’);
INSERT INTO siswa VALUES (‘123040204’, ‘INDRA KUSUMA’, ‘19721204’);
INSERT INTO siswa VALUES (‘123040205’, ‘DIANA FITRIA’, ‘19721203’);
INSERT INTO siswa VALUES (‘123040206’, ‘BAYU PUTRA’, ‘19721201’);
INSERT INTO siswa VALUES (‘123040207’, ‘ADRIANTI’, ‘19721202’);
INSERT INTO siswa VALUES (‘123040208’, ‘AHMAD AFANDI’, ‘19721204’);
Tugas
1. Tampilkan record dengan nim = 123040204 atau wali = 19721204.
2. Isikan data pada tabel yang telah dibuat pada tugas sebelumnya.
3. Tampilkan isi data pada tabel yang telah dibuat pada tugas sebelumnya.
Kondisi yang dibentuk pada perintah-perintah SQL dapat dalam kriteria yang sifatnya
pembandingan dengan menggunakan tanda ‘=’ untuk mencari suatu record maupun tidak.
Beberapa kondisi dalam SQL :
1. LIKE
Menampilkan isi record dengan menggunakan sebagian dari isi sebuah data. Secara fungsi
LIKE berfungsi sama seperti WHERE (=).
Query : SELECT * FROM nama_tabel WHERE nama_field LIKE ‘kondisi’;
Ada terdapat 3 kondisi di dalam like :
a. %data%
Persen didepan dibelakang menunjukan bahwa record yang ingin ditampilkan adalah
semua record yang mengandung “data” pada sebuah field. “data” bisa berada diawal,
tengah ataupun akhir.
b. %data
Persen didepan menunjukan bahwa record yang ingin ditampilkan adalah semua record
yang mengandung “data” pada sebuah field dan “data” harus berada diawal.
c. data%
Persen dibelakang menunjukan bahwa record yang ingin ditampilkan adalah semua
record yang mengandung “data” pada sebuah field dan “data” harus berada akhir.
2. ORDER BY
Jika sebuat SELECT tidak memiliki ORDER BY, maka record akan ditampilkan sesuai
dengan urutan penginputan datanya. ORDER BY memungkinkan menampilkan hasil
SELECT sesuai dengan urutan yang diinginkan.
Query : SELECT * FROM nama_tabel ORDER BY nama_field;
3. ASC/DESC
Dalam mengurutkan terdapat dua kondisi : Mengurutkan data dengan terurut naik
(ASCENDING) atau terurut menurun (DESCENDING).
Latihan
Database : penjualan
Tabel : pelanggan
field type
kode int
nama char
alamat char
kota char
notelp char
tipe char
1. UPDATE
Fungsi UPDATE digunakan untuk merubah isi data field dari sebuah record.
Query :
UPDATE nama_tabel SET nama_field = ‘value’ WHERE nama_field = ‘value’
2. DELETE
Fungsi DELETE digunakan untuk menghapus sebuah record dalam sebuah database.
Query : DELETE nama_tabel WHERE nama_field = ‘value’
3. ALTER
Perintah ALTER berfungsi untuk mengubah struktur dari sebuah tabel. Bisa berarti
menambahkan field baru, merubah field yang sudah ada, maupun menghapus field yang
sudah ada.
Query :
ALTER TABLE nama_tabel ADD new_field tipedata
ALTER TABLE nama_tabel CHANGE field_lama field_baru tipedata
ALTER TABLE nama_tabel DROP nama_field
4. DROP
Perintah DROP digunakan untuk menghapus struktur dalam database, termasuk
menghapus database dan tabel.
Query :
DROP DATABASE nama_database;
DROP TABLE nama_tabel;
5. DESC
Perintah DESC digunakan untuk melihat struktur/metadata dari sebuah tabel.
Query : DESC nama_table;
TUGAS
Gunakan data pada tugas sebelumnya :
1. Lakukan UPDATE isi sebuah kolom pada sebuah record.
2. Lakukan UPDATE isi 2 buah kolom pada sebuah record.
3. Hapus salah satu record
4. Tambahkan satu buah kolom baru pada tabel yang sudah ada
5. Isikan data pada kolom yang dibuat pada no.4
6. Buat satu buah database dan satu buah tabel di dalamnya
7. Lakukan penghapusa tabel dan database yang sudah dibuat pada no.6
Fungsi merupakan suatu rutin khusus yg disediakan oleh MySQL untuk melakukan
manipulasi suatu data.
Bentuk Umum :
nama_fungsi([argumen1[, argumen2[, …]]])
Argumen1, argumen2, ... Adalah argumen/ parameter yang dibutuhkan oleh fungsi.
Fungsi digunakan sebagai bagian dari perintah select.
SELECT fungsi(ekspresi) [FROM namatabel];
FROM namatabel tidak harus diisi.
1. Fungsi STRING
ASCII(x)
Menghasilkan kode ASCII untuk karakter pertama dalam suatu string x.
Contoh :
CHAR(x,y,z,…)
Menghasilkan nilai string berdasarkan kode ASCII yang dituliskan dalam
parameternya.
Contoh :
LENGTH(X)
Untuk mendapatkan panjang sebuah string X
Contoh :
CONCAT()
INSERT(X,Y,Z,J)
Menghasilkan string X yang telah diganti isinya dengan string J mulai dari posisi ke Y
sebayak Z.
Contoh :
INSTR(X,Y)
Menghasilkan nilai posisi Y di dalam string X
Contoh :
LOCATE(X,Y,Z)
Memberikan posisi string X di dalam string Y mulai posisi ke Z.
Contoh :
LEFT(X,Y)
Mengambil sejumlah Y karakter dari string X, mulai posisi pertama.
Contoh :
MID(X,Y,Z)
Mengambil data string X sejumlah Z karakter mulai dari posisi ke Y.
Contoh :
LTRIM(X)
Membuang spasi di sebelah kiri string X.
Contoh :
RTRIM(X)
Membuang spasi disebelah kanan string X.
Contoh :
REVERSE(X)
Membalik urutan penulisan sebuah string X.
Contoh :
2. Fungsi Tanggal
Format tanggal dalam MySQL :
yyyy-mm-dd HH:ii:ss
yyyy : Tahun
mm : Bulan
dd : Tanggal
HH : Jam
ii : Menit
ss : Detik
CURTIME()
Menampilkan waktu sekarang dari sistem.
Contoh :
CURRENT_TIMESTAMP() / NOW()
Menampilkan waktu saat ini, tanggal dan jam.
Contoh :
DAY_NAME(X)
Menampilkan nama hari dari tanggal yang menjadi argumen dalam X.
Contoh :
DAYOFMONTH(DATE)
Menampilkan nomor hari dari tanggal yang menjadi argumen.
Contoh :
MONTH(DATE)
Menampilkan bagian bulan dari tanggal yang menjadi argumen.
YEAR(DATE)
Menampilkan bagian tahun dari tanggal yang menjadi argumen.
HOUR(TIME)
Menghasilkan bagian jam dari waktu yang menjadi argumen.
Contoh :
SECOND(TIME)
Menghasilkan bagian detik dari waktu yang menjadi argumen.
Contoh :
3. Fungsi Agregat
SUM (nama_field)
Mendapatkan nilai total dari suatu kolom dalam sebuah tabel atau ekspresi.
AVG (nama_field)
Untuk mendapatkan nilai rata-rata sebuah kolom pada tabel atau ekspresi.
MAX (nama_field)
Untuk mendapatkan nilai maksimum dari sebuah kolom dalam tabel atau ekspresi.
COUNT (X)
Untuk menghitung jumlah record dari suatu kolom atau tabel X.
4. Fungsi Aritmatika
PENJUMLAHAN (+)
Untuk menjumlahkan dua buah data numerik.
Pengurangan ( - )
Untuk mengurangkan dua buah data numerik.
Perkalian (x)
Untuk melakukan perkalian dua buah data numerik.
Pembagian (/)
Untuk melakukan pembagian dua buah data numerik.
Pembagian Sisa (%)
Untuk mendapatkan sisa pembagian dari suatu operasi pembagian bilangan numerik.
CONTOH :
LATIHAN
1. Tampilkan string "Praktikum Pemrograman" yang telah diubah menjadi string "Prakt
Pemrog".
2. Tampilkan string "gara Bar" dalam string "Nusa Tenggara Barat".
3. Tampilkan posisi string "stmik" dalam string "Nama kampus stmik Bumigora".
4. Tampilkan Tanggal dan Waktu dengan format sbb :
nm_hari, bln tgl thn jam:menit:detik AM/PM
Contoh : Saturday, April 21st 12 02:15:40 PM
6. Tampilkan string "Sistem" dalam string "Sistem Basis Data"
7. Dari tabel barang yang sudah dibuat pada tugas sebelumnya, tampilkan jumlah stok yang
paling sedikit (gunakan fungsi)
Dalam basis data relasional dimungkinkan untuk mengakses satu atau lebih tabel
dalam waktu yang bersamaan. Penggunaan dua tabel atau lebih dalam satu buah baris query
biasa disebut dengan JOIN.
Query :
SELECT <tabel1.field1>,<tabel2.field2> FROM <tabel1>, <tabel2> WHERE
<key.tabel1> = <key.tabel2>
LATIHAN
Database : KULIAH
Tabel : MAHASISWA, DOSEN
Tabel MAHASISWA
Field Tipedata
NIM CHAR (PK)
NAMA CHAR
ALAMAT CHAR
IPK FLOAT (10,2)
ID_DOSEN CHAR
Menampilkan isi tabel DOSEN dan MAHASISWA yang memiliki ID_DOSEN yang sama
= ‘12344’.
SELECT b.nim, b.nama, a.id_dosen, a.nama, FROM dosen a, mahasiswa b
WHERE a.id_dosen = b.id_dosen AND a.id_dosen = ‘12344’;
Di dalam database, ada kalanya kita membutuhkan data dari beberapa tabel yang
saling berhubungan. Untuk mendapatkan data dari beberapa tabel tersebut dapat digunakan
perintah join pada perintah SQL.
Gambaran hasil join :
1. INNER JOIN
Inner join merupakan jenis join yang paling umum yang dapat digunakan pada semua
database. Jenis ini dapat digunakan bila ingin merelasikan dua set data yang ada di tabel,
letak relasinya setelah pada perintah ON pada join. Hasil dari inner join adalah gabungan
kedua tabel yang memiliki data join yang sama.
Query :
2. OUTER JOIN
Outer join merupakan join yang sedikit berbeda dengan inner join. Outer join akan
menghasilkan record-record yang ada baik ada pasangan nya pada tabel lain atau tidak.
Outer join dibedakan menjadi 2 jenis, yaitu :
a. Left Outer Join
Left join digunakan dalam situasi ketika ingin mengembalikan semua elemen data set
A, terlepas dari apakah nilai kunci ada dalam data set B.
Query :
Latihan
Dengan menggunakan data yang sama pada bab sebelumnya :
Menampilkan isi tabel DOSEN melalui tabel MAHASISWA.
SELECT a.nama, a.id_dosen, b.id_dosen, b.nama FROM mahasiswa a INNER
JOIN dosen b ON a.id_dosen = b.id_dosen;
1. Cross Join
Cross join kadangkala disebut juga sebagai Cartesian Product. Bila menggunakan
cross join, maka hasil dari cross join akan menciptakan hasil yang didasarkan pada semua
kemungkinan kombinasi baris dalam kedua set data. Dengan demikian, jumlah baris yang
dikembalikan adalah N ✕ M , dimana N adalah jumlah baris dalam kumpulan data A dan
M jumlah baris dalam kumpulan data B. Jelas, jumlah baris dalam cross join dapat
menjadi sampah.
Query :
2. Union Join
Union didukung oleh MySQL mulai dari versi 4.0. Pemakaian union dapat
menyederhanakan perintah persyaratan OR yang bertingkat. Bila dalam sebuah query
menghasilkan pemakaian perintah OR yang lebih dari satu sehingga dapat membuat
bingung, sebagai gantinya digunakan perintah UNION. Union dapat dikatakan sebagai
perintah untuk menggabungkan hasil query sql yang fungsinya sama dengan perintah OR.
Query :
(SELECT <tabel1.field1>,<tabel2.field2> FROM <tabel1> JOIN <tabel2> ON
<key.tabel1> = <key.tabel2> WHERE key1 = ‘Value1’) UNION
(SELECT <tabel1.field1>,<tabel2.field2> FROM <tabel1> JOIN <tabel2> ON
<key.tabel1> = <key.tabel2> WHERE key2 = ‘Value2’)
UNION :
(SELECT a.nama, a.id_dosen, b.id_dosen, b.nama FROM mahasiswa a JOIN
dosen b ON a.id_dosen = b.id_dosen WHERE a.id_dosen='12341') UNION
(SELECT a.nama, a.id_dosen, b.id_dosen, b.nama FROM mahasiswa a JOIN
dosen b ON a.id_dosen = b.id_dosen WHERE a.id_dosen='12343');