Pemrograman Basis Data Berbasis Web

Download Report

Transcript Pemrograman Basis Data Berbasis Web

Pemrograman Basis Data
Berbasis Web
Pertemuan Ke-8-9
(Basis Data MySQL)
S1 Teknik Informatika - Unijoyo
1
MySQL?
• MySQL termasuk di dalam jenis RDBMS
(Relational Database Management System).
• Suatu basis data (database) memiliki satu atau
beberapa tabel. Tabel terdiri dari sejumlah baris
dan kolom.
• Pada umumnya, di dalam konteks bahasa SQL,
informasi tersimpan dalam tabel-tabel yang secara
logik merupakan struktur dua dimensi yang terdiri
atas baris-baris data (row atau record) yang
berada dalam satu atau lebih kolom (column atau
field).
S1 Teknik Informatika - Unijoyo
2
Tipe data field
• Tipe data Numerik
TINYINT, SMALLINT, MEDIUMINT, INT, INTEGER, BGINT,
FLOAT(x), FLOAT, DOUBLE, DOUBLE PRECISION, REAL,
DECIMAL(M,D), NUMERIC(M,D)
• Tipe data String
CHAR, VARCHAR, TINYBLOB, TINYTEXT, BLOB, TEXT,
MEDIUMBLOB, MEDIUMTEXT, LONGBLOB, LONGTEXT,
ENUM(‘elemen1’, ‘elemen2’, …), SET(elemen1’, ‘elemen2’, …)
• Tipe data char() dan varchar()
• Tipe data Tanggal
DATETIME, DATE, TIMESTAMP, TIME, YEAR
S1 Teknik Informatika - Unijoyo
3
Operator SQL
• Operator matematika
+ − * / %
• Operator range
< > <= >=
• Operator kesamaan
= <>
• Operator logika
&&
||
S1 Teknik Informatika - Unijoyo
4
Pernyataan (statement) SQL dapat digolongkan
atas Dua golongan yaitu:
•
Data Definition Language (DDL) yang mendefinisikan struktur suatu
data. Perintah-perintah SQL yang termasuk DDL antara lain:
• CREATE – untuk membuat tabel.
• DROP – untuk menghapus suatu tabel.
•
Data Manipulation Language (DML) yang dapat mencari (query) dan
mengubah (modify) suatu tabel. Perintah-perintah SQL yang termasuk
DML antara lain:
SELECT – untuk membaca (query) isi tabel.
Syntaks: SELECT [ ALL | DISTINCT |*] FROM [Nama Table] WHERE [Kondisi ];
INSERT – untuk memasukkan data ke table.
Syntaks: INSERT INTO [Nama Tabel]([Nama Kolom]) VALUE [. Ekspresi];
UPDATE – untuk mengubah isi tabel.
Syntaks:
UPDATE [Nama Tabel]SET [Nama Kolom= Ekspresi] WHERE [Kondisi];
DELETE – untuk menghapus isi tabel.
Syntaks:
DELETE FROM [Pemakai.]Nama Table[@Nama Database][WHERE Kondisi];
S1 Teknik Informatika - Unijoyo
5
Perintah CREATE
Sintaks:
create DATABASE nama;
atau
create TABLE nama;
Contoh:
•
create database:
create DATABASE db_akademik;
•
create tabel:
create TABLE mahasiswa
(
nim SMALLINT(6) NOT NULL PRIMARY KEY,
Nama CHAR(20),
Tanggal_lahir DATE,
alamat VARCHAR(3),
nomortlp VARCHAR(12)
);
S1 Teknik Informatika - Unijoyo
6
Perintah INSERT
Sintaks:
insert INTO NAMA_TABEL (kolom1, kolom2, kolom3,...)
values ('nilai1',' nilai2',' nilai3',...);
Contoh :
insert INTO mahasiswa (nim,nama,tanggal_lahir, alamat,nomortlp)
values (1111,”Setia Budi”,”1985-06-25”,”Jl.Kutai 33, Sby”,”031-3459097”);
insert INTO mahasiswa values
(1112,”Dewi Sekartaji”,”1985-10-01”,”Jl. Mangga 2, Sby”,”031-6749331”),
(1113,”Adinda Cendrakasih”,”1986-01-10”,”Jl. Ketintang 45C, Sby”,”031-8291190”);
S1 Teknik Informatika - Unijoyo
7
Perintah SELECT
Sintaks:
select kolom1, kolom2, kolom3, [...] FROM
NAMA_TABEL;
Contoh:
select * FROM mahasiswa;
select nim, Nama FROM mahasiswa;
S1 Teknik Informatika - Unijoyo
8
Perintah SELECT … [lanjutan]
• Select banyak tabel
 mengambil data dari banyak tabel sekaligus
Sintaks:
select TABEL1.tabel_kolom1, TABEL1.tabel_kolom2,
TABEL2.tabel_kolom1, TABEL2.tabel_kolom2
FROM TABEL1, TABEL2;
(tanda titik diperlukan sebagai penghubung antara nama tabel dan nama kolom)
• Order by
 mengurutkan (ascending atau descending) record hasil query berdasarkan suatu kolom.
Sintaks:
select kolom1, kolom2, […] FROM NAMA_TABEL
ORDER BY nama_kolom;
• Where
 menentukan kondisi atau persyaratan dari query
Sintaks:
select kolom1, kolom2, […] FROM NAMA_TABEL WHERE persyaratan;
Suatu pernyataan kondisional mempunyai bagian sisi kiri yang merupakan kolom tabel dan
bagian sisi kanan kondisi yang dijadikan syarat pencarian.
Contoh persyaratan:
WHERE nama_kolom = kondisi;
S1 Teknik Informatika - Unijoyo
9
Mengubah Struktur Tabel
Sintaks:
alter TABLE NAMA_TABEL ADD/DROP NAMA_KOLOM;
alter TABLE NAMA_TABEL CHANGE KOLOM_PERINTAH;
alter TABLE NAMA_TABEL RENAME NAMA_TABEL_BARU;
Contoh:
•
Menambahkan sebuah kolom baru (Hobi) ke dalam tabel mahasiswa:
alter TABLE mahasiswa
ADD Hobi;
•
Menghapus kolom:
alter TABLE mahasiswa
DROP Hobi;
•
Mengganti nama tabel:
alter TABLE mahasiswa RENAME mahasiswatrun;
S1 Teknik Informatika - Unijoyo
10
UPDATE Data
Sintaks:
update NAMA_TABEL
SET kolom1=“nilai”, kolom2=“nilai”,
kolom3=“nilai”
WHERE kolom_kunci = “nilai”;
Contoh:
• Mengubah nilai kolom Nama untuk mahasiswa dengan nim = 1111.
UPDATE mahasiswa
SET Nama = “Setiawan Budi”
WHERE nim = '1111';
S1 Teknik Informatika - Unijoyo
11
Menghapus (DELETE) Data
Sintaks:
delete FROM NAMA_TABEL
WHERE persyaratan;
Contoh:
•
Menghapus record pada tabel mahasiswa yang field nim-nya bernilai 1114 :
delete FROM mahasiswa
WHERE nim=1114;
S1 Teknik Informatika - Unijoyo
12
TRUNCATE
 untuk membersihkan tabel secara keseluruhan (sama
seperti DELETE tanpa kondisi), yaitu dengan cepat
menghapus semua record tanpa menghapus struktur
tabel.
Sintaks:
truncate TABEL NAMA_TABEL;
Contoh:
• Menghapus semua record dalam tabel mahasiswa:
truncate TABLE mahasiswa;
S1 Teknik Informatika - Unijoyo
13
Predikat
Predikat diletakkan setelah klausa WHERE untuk
pencarian record database agar mendapatkan string,
karakter atau range tertentu.
1.
2.
3.
4.
5.
6.
7.
8.
9.
LIKE dan NOT LIKE
BETWEEN
LIMIT
INNER JOIN
LEFT JOIN
RIGHT JOIN
UNION
UNION ALL
Sub-Query
S1 Teknik Informatika - Unijoyo
14
1. LIKE dan NOT LIKE
 LIKE  untuk mendapatkan record yang memenuhi sebagian kriteria pencarian
yaitu mencari data yang menyerupai atau seperti.
 Perintah LIKE sering dikombinasikan dengan tanda “persen” (%) dan
“underscore” (_). “Persen” digunakan di awal atau akhir teks kriteria sedangkan
“underscore” dimanapun diinginkan.
 Sintaks dasar dari SELECT yang melibatkan LIKE adalah
select kolom1, kolom2, […] FROM NAMA_TABEL
WHERE kolom_tabel LIKE %string%;
 NOT LIKE  merupakan lawan dari LIKE. Semua data yang masuk kriteria LIKE
secara otomatis tidak masuk kriteria NOT LIKE.
2. BETWEEN
 digunakan untuk menyeleksi nilai-nilai yang berada dalam kisaran (range),
misalnya menampilkan “student” yang mempunyai IPK antara 3,00 sampai 3,50.
 Sintaks perintah SELECT dengan BETWEEN adalah
select kolom1, kolom2, […] FROM NAMA_TABEL
WHERE nama_kolom BETWEEN nilai1 and nilai2;
3. LIMIT
 memungkinkan pembatasan jumlah record yang diambil dari database.
 Sintaks:
select kolom1, kolom2, […] FROM NAMA_TABEL LIMIT jumlah_limit;
S1 Teknik Informatika - Unijoyo
15
4. INNER JOIN
 JOIN digunakan bersama SELECT untuk mengkombinasikan kolom
dari satu tabel dengan kolom pada tabel lain. Proses utama yang
dilakukan oleh JOIN adalah mencocokkan nilai pada field kunci pada
kedua tabel
 INNER JOIN mengembalikan semua baris sebagai hasil yang
memenuhi suatu kondisi
5. LEFT JOIN
 Suatu LEFT JOIN mengembalikan semua baris sisi kiri kondisional
bahkan jika tidak ada sisi kanan yang memenuhi sekalipun
6. RIGHT JOIN
 Suatu RIGHT JOIN akan menampilkan baris-baris sisi kanan
kondisional yang memenuhi atau tidak memenuhi kondisi.
S1 Teknik Informatika - Unijoyo
16
7. UNION
 untuk menggabung dua tabel, menempatkan dua query terpisah secara bersama
membentuk satu tabel
 UNION akan memberikan hasil terbaik saat menggunakan dua tabel dengan kolom serupa
karena setiap kolom harus mempunyai tipe data sama
 Sintaks dasar:
select kolom1, kolom2 FROM NAMA_TABEL
UNION
select kolom1, kolom2 FROM NAMA_TABEL;
8. UNION ALL
 memilih semua baris dari setiap tabel dan mengkombinasikannya ke dalam satu
tabel
 Perbedaan antara UNION dan UNION ALL yaitu UNION ALL tidak akan
menghapus (mengeliminir) baris-baris yang sama (duplicate rows) – hanya
mengambil semua baris dari semua tabel sesuai query yang dikirim ke server
database
9. Sub-Query
 adalah query SELECT yang ditempatkan di dalam suatu pernyataan SQL lain.
 dapat diletakkan sebagai bagian dari query utama : SELECT, INSERT, UPDATE,
DELETE, SET, DO
 Sintaks:
select kolom1, kolom2, kolom3 […] FROM NAMA_TABEL
WHERE kolom_tabel = (select kolom1, kolom2, kolom3 […] FROM
NAME_TABEL_LAIN);
S1 Teknik Informatika - Unijoyo
17
Koneksi Database
• PHP menyediakan fungsi untuk koneksi ke
database dengan sejumlah fungsi untuk
pengaturan baik menghubungkan maupun
memutuskan koneksi dengan server
database MySQL.
• Fungsi koneksi ke server database
mengunakan pola yang sama yaitu server,
port, user, password.
• Fungsi-fungsi tersebut adalah:
S1 Teknik Informatika - Unijoyo
18
mysql_connect(host,user,password)
Fungsi ini gunakan untuk membuka koneksi dengan server
MySQL. Parameter yang digunakan sebagai berikut:
•
Host: nama server dengan server local dapat dengan
menggunakan localhost.
•
User: user yang terdaftar dalam MySQL yang
digunakan untuk login ke server.
•
Password: password dari user yang melakukan
koneksi.
•
$conn : variabel untuk menampung hasil koneksi
kepada server database
Contoh:
$host = "localhost";
$name = "root";
$pass = "";
$conn =mysql_connect($host,$name,$pass);
S1 Teknik Informatika - Unijoyo
19
mysql_select_db(nama_database,nama_koneksi)
Fungsi ini digunakn untuk memilih database
yang akan digunakan.
Contoh:
$conn=mysql_connect("localhost","root","")
$sukses=mysql_select_db(“akademik",$con
n);
S1 Teknik Informatika - Unijoyo
20
mysql_query(perintah_query,nama_koneksi)
• Perintah ini digunakan untuk mengirimkan query ke server database
melalui link nama koneksi. Fungsi ini mengembalikan nilai FALSE
baik CREATE, UPDATE, DELETE, DROP, dll.
• Contoh:
$conn=mysql_connect("localhost","root","");
$sql="select nama_anggota,password from anggota where
nomor_anggota='$username'";
$rs=mysql_query($sql,$conn);
S1 Teknik Informatika - Unijoyo
21
Fungsi-fungsi MySQL
• mysql_connect()
– Untuk melakukan koneksi ke server basis data (database) MySQL
– Koneksi ke database akan secara otomatis terputus pada saat script
program selesai dieksekusi seluruhnya, kecuali diberikan perintah
fungsi mysql_close()
– Akan menghasilkan nilai true jika koneksi berhasil, dan nilai false jika
gagal
– Sintaks: mysql_connect(nama_host,nama_user,password);
• mysql_pconnect()
– Fungsinya sama dengan mysql_connect, akan tetapi koneksi tidak
akan terputus meskipun script program telah selesai dieksekusi
seluruhnya
• mysql_create_db()
– Untuk membuat sebuah database
– Sintaks: mysql_create_db(“nama_database”);
S1 Teknik Informatika - Unijoyo
22
• mysql_select_db()
– Untuk memilih atau mengaktifkan database
• mysql_query()
– Untuk menjalankan query yang terdapat di MySQL
• mysql_db_query()
– Untuk menjalankan suatu permintaan terhadapt database
• mysql_fetch_row()
– Menghasilkan suatu array yang berisi seluruh kolom dari sebuah baris
pada suatu himpunan hasil
– Mengambil data secara baris per baris
– Data yang diambil dalam bentuk array (elemen dari array adalah fieldfield dari tabel data)
• mysql_fetch_array()
– Fungsinya sama seperti mysql_fetch_array, akan tetapi hasil yang
diperoleh dalam bentuk array assosiatif
S1 Teknik Informatika - Unijoyo
23
Mengelola MySQL dengan PHPMyAdmin
• PHPMyAdmin dibuat khusus untuk mengelola database MySQL
• Aplikasi ini free dan dapat di-download di mysql.com,
sourceforge.net dan situs web lain yang berhubungan dengan PHP
dan MySQL. Bahkan, dengan menginstal PHPTriad, maka secara
otomatis Apache, MySQL, PHP dan PHPTriad juga telah terinstal
• Untuk membuka aplikasi PHPMyAdmin, harus menjalankan terlebih
dahulu server web Apache, dan server database MySQL, sebelum
membuka aplikasi PHPMyAdmin
• PHPMyAdmin dapat diakses melalui alamat
http://localhost/PHPMyAdmin (jika PHPMyAdmin terinstal di
komputer yang sedang digunakan) atau alamat
http://nama_komputer_atau_ip_address/PHPMyAdmin (jika terinstal
pada komputer lain)
• XAMPP merupakan sebuah tool yang menyediakan beberapa paket
perangkat lunak kedalam satu buah paket.
• Dengan Menginstal XAMPP, kita tidak perlu lagi melakukan isntalasi
dan konfigurasi web server apache dan MySQL secara manual.
Karena XAMPP akan menginstalasi dan mengkonfigurasinya secara
otomatis
S1 Teknik Informatika - Unijoyo
24
Tampilan awal PHPMyAdmin
S1 Teknik Informatika - Unijoyo
25
PHPMyAdmin – Membuat Database
• Langkah-langkah membuat database:
1. Di halaman awal PHPMyAdmin, masukkan
nama database, misalnya db_company pada
isian Create new database
2. Klik tombol Create
Jika berhasil, akan terdapat keterangan sebagai berikut:
Database db_company has been created.
No tables found in database.
S1 Teknik Informatika - Unijoyo
26
PHPMyAdmin – Pembuatan Tabel
• Langkah-langkah pembuatan tabel:
1. Pada menu HOME, pilih nama database yang akan
ditambahkan tabel di dalamnya. Misalkan nama database
adalah db_company.
2. Pada bagian Create new table on database db_company,
masukkan nama tabel, misalnya EMPLOYEE dan jumlah field
(kolom)-nya adalah 3. Klik Go.
3. Tenntukan nama ketiga field berikut tipe datanya.
S1 Teknik Informatika - Unijoyo
27
4. Klik Save. Jika pembuatan tabel berhasil, maka akan
muncul pesan seperti berikut ini:
S1 Teknik Informatika - Unijoyo
28
PHPMyAdmin – Memasukkan data
• Langkah-langkah memasukkan data:
1. Pada sisi kiri (menu HOME), terdapat nama database db_company dan
tabel-tabel di dalamnya. Klik tabel yang akan dimasukkan datanya,
misalnya tabel EMPLOYEE.
2. Terdapat link Browse, Select, Insert, Empty, Drop. Untuk memasukkan
data, klik link Insert. Pada halaman entri data, masukkan data yang
diinginkan pada kolom kanan.
3. Di bawah form isian, terdapat dua buah radio button. Pilihan “Return”
artinya kembali ke halaman tabel dan pengisian selesai). Sedangkan
pilihan “Insert a new record” artinya memasukkan record baru
berikutnya. Misalnya yang dipilih adalah Return.
4. Klik Go.
S1 Teknik Informatika - Unijoyo
29
PHPMyAdmin – Mengedit dan menghapus data
• Langkah-langkah untuk mengedit (mengupdate) dan menghapus data:
1. Klik link Browse atau Select pada tabel yang akan
diubah atau dihapus datanya
2. Data ditampilkan dalam bentuk tabel dan pada sisi
kirinya terdapat link Edit dan Delete
3. Untuk menghapus data, klik Delete dan jawab OK
sebagai konfirmasi
4. Untuk meng-update data, klik Edit.Pada form isian
(seperti pada penambahan) betulkan data yang
perlu diupdate. Akhiri dengan klik Go
S1 Teknik Informatika - Unijoyo
30
Kesimpulan
• MySQL adalah merupakan RDBMS, sehingga ia dapat digunakan
untuk memanipulasi data seperti menambah, menghapus,
menampilkan, dan mengubah suatu data
• Tipe-tipe data yang terdapat di dalam MySQL adalah Tipe data
Numerik, Tipe data String, Tipe data char() dan varchar() serta Tipe
data Tanggal
• Operator SQL yang dapat digunakan di dalam MySQL: Operator
matematika, Operator range, Operator kesamaan dan Operator
logika
• PHP tidak mnyediakan fungsi-fungsi khusus untuk operasi data,
sehingga sintaks yang dipakai adalah sintaks perintah-perintah
MySQL
• PHPMyAdmin dapat digunakan untuk mengelola basis data MySQL,
sehingga dapat digunakan untuk membuat database, membuat
tabel, memasukkan data ataupun mengedit (meng-update) dan
menghapus data
S1 Teknik Informatika - Unijoyo
31