Anda di halaman 1dari 39

BAB I PENDAHULUAN

MySQL (My Structure Query Language) adalah salah satu database dari sekian banyak database lain seperti Oracle, MS SQL, PostgresSQL dan banyak lagi. Kesemuanya itu mempunyai fungsi dan manfaat yang hampir sama namun dalam pengerjaanya sedikit berbeda tetapi MySQL adalah penggunaan yang paling mudah. Kenapa MySQL? MySQL adalah database manajemen sistem (DBMS) DBMS (Database Manajemen System) merupakan salah satu system dalam mengakses database yang menggunakan bahasa SQL, MySQL menggunakan bahasa SQL dan dapat dikatakan sebagai DBMS. MySQL software open source Open source artinya memungkinkan untuk semua orang untuk menggunakan dan memodifikasi software. Setiap orang dapat men-download MySQL dari internet dan menggunakannya tanpa membayar apapun. Jika mau, anda bisa mempelajari kode sumber dan menukar apa yang anda inginkan. Kenapa menggunakan MySQL? Database MySQL sangat cepat, reliable, dan mudah untuk digunakan, selain itu MySQL telah banyak menangani pembuatan software besar. Bagaimana MySQL diimplementasikan pada WEB? Karena dalam praktikum basisdata ini kita juga mempelajari PHP, maka berikut juga dijelaskan secara singkat bagaimana mempresentasikan bentuk hubungan yang dilakukan bahasa pemrograman dengan database

Gambar 1-1 Arsitektur dari aplikasi Web

Dari gambar tersebut terlihat adanya hubungan antara Web server, Bahasa Pemrograman dan database. Secara teknis database-lah yang menyimpan hampir semua data dan data tersebut diolah oleh bahasa pemrograman yang kemudian ditampilkan ke internet dengan menggunakan web server, anda dapat melihat data-data tersebut dengan mengunjugi URL dengan menggunakan browser seperti Konqueor, opera atau IE. Dalam praktikum database ini kita membuat kesemua hal tersebut dalam sebuah PC, artinya database, webserver, bahasa programan dan web browser dilakukan dengan sebuah PC.

BAB II APLIKASI SERVER MYSQL

Didalam MySQL terdapat sebuah database yang ada sejak awal setelah anda menginstall MySQL, nama database tersebut adalah mysql dan pada database tersebut tersimpan nama-nama pengguna yang dapat mengguakan MySQL lengkap dengan opsi otoritas yang dapat dilakukan oleh pengguna tersebut. Secara default user dengan nama root adalah pengguna yang menguasai secara utuh dan dapat membuat user lainnya (termasuk membatasi user - user lain). Untuk dapat menggunakan MySQL anda harus memasukan user dan password yang sama dengan apa yang dideklarasikan dalam database (mysql). Untuk dapat menjalankan MySQL adan harus menjalankan service atau layanan MySQL. Berikut cara mengakses MySQL (dilakakukan pada DOS (C:\\apache\mysql\bin\) atau mode text).

Masuk ke Server MySql


mysql -u root -h localhost -p Enter password:************ Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 4.0.11a-gamma Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

Keterangan : -h : menunjukkan nama Host (dapat juga dengan alamat IP, ex : 184.36.25.1) -u : menunjukkan nama User

-p : MySQL akan menanyakan password jika anda menggunakan opsi ini. Jika user yang anda gunakan tidak menggunakan password anda tidak perlu menggunakan opsi -p ini. -p dapat juga digunakan untuk mendeklarasikan nama database yang anda gunakan (ex: mysql -u root
- loclhost -p latihan)

Keluar dari MySql


mysql> \q Bye

BAB III DATABASE

Database adalah kumpulan dari tabel-tabel, dan tabel merupakan kumpulan dari beberapa Field atau column. Untuk membuat suatu table maka seorang user harus membuat database terlebih dahulu. Dengan mengaktifkan database yang dibuat tersebut.

Membuat database dalam server BU : CREATE Database Nm_Database; Contoh :


mysql> create database Praktikum; Query OK, 1 row affected (0.11 sec)

Melihat seluruh daftar database dalam server MySql BU: SHOW Databases;
mysql> show databases; +--------------+ | Database | +--------------+ | 1adminksl | | A1 | | bahasa | | catalog | | praktikum | | sample | | survey | | tracking | | u | +--------------+ 9 rows in set (0.27 sec)

Mengaktifkan/Menggunakan Database Sebelum pembuatan tabel dan operasi-operasi yang berhubungan dengan tabel maka database harus di aktifkan/digunakan. BU : USE Nm_Database Contoh :
mysql> use praktikum; Database changed 5

Menghapus Database dari Server BU : Drop Database Nm_Database Contoh :


mysql> drop database praktikum; Query OK, 0 rows affected (0.11 sec)

Aturan penamaan dalam pembuatan database : 1. Jangan menggunakan spasi dan spesial karakter dalam pembuatan nama database 2. Jangan menggunkan angka pada awal pembuatan nama database

BAB IV SUB BAHASA STRUCTURE QUERY LANGUAGE (SQL)

Secara umum bahasa SQL dibagi menjadi tiga bagian: 1. DDL (Data Definition Language) yang digunakan untuk membangun objek-objek dalam database seperti tabel. 2. DML (Data Manipulation Language) yang digunakan dalam memanipulasi suatu tabel didalam database (menambah, mengedit, mencari dan menghapus) 3. DCL (Data Control Language) yang digunakan untuk menangani masalah keamanan dalam database server Ketiga komponen ini bisa digunakan setelah suatu database di aktifkan. 1. DDL (Data Definition Language) Terdiri atas : Create, Alter, Drop

Membuat Tabel Setelah menciptakan suatu database dan mengaktifkan database tersebut maka dapat dilakukan perintah pembuatan tabel BU : CREATE TABLE Nm_Tabel (Nm_Kolom1 tipe data([ukuran]),nm_kolom2 tipe data ([ukuran]).. nm_kolom_n tipe data ([ukuran])); Untuk bentuk tipe data yang digunakan anda dapat merujuk ke manual MySQL atau mengunjungi manual di http://mysql.com. Contoh :
create table berita (tanggal date, berita text);

Melihat Struktur Tabel Perintah describe nama_tabel; digunakan untuk melihat struktur tabel yang telah dibuat. Namun sebelumnya, sudah berada pada database yang mempunyai tabel tersebut. Contoh :
mysql>describe produk; +-------+--------------+------+------+----------+------+ | Field | Type | Null | Key | Default | | +-------+--------------+------+------+----------+------+ | nama | varchar(25) | YES | | NULL | | | harga | bigint | YES | | NULL | | +-------+--------------+------+------+----------+------+ 2 ROWS IN SET (0.10 SEC)

Mengubah Struktur Tabel Ada empat macam perubahan dalam struktur tabel, yaitu : a. Perubahan nama field/kolom Perubahan yang terjadi hanya pada nama field/kolom saja. Nama field/kolom lama diganti dengan nama field/kolom yang baru. Struktur penulisan : alter table nama_tabel change nama_field_lama nama_field_baru tipe_data; Contoh :
mysql>alter table toko change buku nama varchar(25);

b.

Perubahan tipe data Perubahan yang terjadi hanya pada tipe data yang digunakan oleh field/kolom tertentu. Tipe data baru langsung disebutkan dibelakang nama field/kolom, tanpa harus menyebutkan tipe data lama.

Struktur penulisan : Alter table nama_tabel modify nama_field tipe_data_baru; Contoh :


mysql>alter table toko modify nama longtext;

c.

Penambahan field Struktur tabel akan berubah dengan bertambahnya field/kolom baru didalamnya. Struktur penulisan : Alter table nama_tabel add nama_field tipe_data_baru; Contoh :
mysql>alter table supermarket add stok int;

d.

Penghapusan field Struktur tabel mengalami perubahan akibat berkurangnya field/kolom tertentu. Struktur penulisan : Alter table nama_tabel drop column nama_field; Contoh :
mysql>alter table supermarket drop column stok;

Mengganti Nama Tabel Penggantian nama tabel meliputi nama tabel itu sendiri. Struktur penulisan : Alter table nama_tabel_lama rename nama_tabel_baru; Contoh :
mysql>alter table toko rename supermarket;

Menghapus Tabel Tabel dapat saja dihapus karena sudah tidak dibutuhkan lagi,atau terjadi kesalahan. Struktur penulisan : Drop table nama_tabel; Contoh :
mysql>drop table supermarket;

KEKANGAN NILAI PADA DATA Menentukan Kunci Primer (Primary Key) Secara sederhan kunci primer digunakan untuk menyatakan bahwa suatu nilai tidak boleh ada yang sama dan nilai tersebut harus diisi (NOT NULL). Penetapan kunci primer dibuat pada saat pembuatan tabel:
mysql> create table siswa (NIM varchar(10) not null primary key,Nama varchar(25),SEX char(1),Alamat varchar(35));

Memberikan nilai bawaan (Default) Jika tidak memberikan suatu nilai dalam kolom tertentu maka oleh system secara otomatis diisi dengan nilai NULL. Oleh karena itu pada saat perancangan table field tersebut defaultnya diisi dengan tetapan yang dikehendaki.
mysql> create table MatKul (KD_MK varchar(10) key,nama_MK varchar(20),SKS int default 0); not null primary

10

2. DML (Data Manipulation Language) Terdiri dari SELECT, INSERT, UPDATE dan DELETE

Memasukkan Data (Insert) Ada dua cara yang dapat digunakan untuk memasukkan data kedalam tabel, yaitu: 1. insert into nama_tabel values (isi_field_2,,isi_field_n); Contoh :
insert into produk values (SG 100,2500);

2. insert into nama_tabel (nama_field_1, nama_field_2,,nama_ field_n) values (isi_field_1, isi_field_2,,isi_field_n); Contoh :
Insert into produk (kode,harga) values (SG 100,25000);

Menampilkan Data (Select) Berikut ini perintah untuk menampilkan data : Struktur Penulisan :
Select [fields] from [nama_tabel] Where [kondisi]

Order by [nama_field] Group by [nama_field] asc / desc

Contoh :
Select kode from produk; Select kode,harga from produk; Select * from produk;

Note :

11

Setelah penulisan select, [fields] dapat diganti dengan menyebutkan satu nama field saja atau beberapa field sekaligus yang dipisah dengan tanda koma (,). Penulisan field-field tersebut digunakan untuk memunculkan data dari kolom mana saja yang akan ditampilkan. Jika seluruh kolom akan ditampilkan dapat menggunakan tanda asterik (*) untuk mewakilinya. Mengurutkan Tampilan Klausa ORDER BY digunakan untuk mengurutkan hasil. Jika menginginkan data ditampilkan urut berdasarkan pada urutan terkecil ke besar, dapat menggunakan ASC (ascending). Sedangkan untuk mengurutkan data berdasarkan yang terbesar ke kecil, dapat menggunakan DESC (descending).
mysql> select * from siswa order by NIM desc; +------------+---------------+---------------+------+ | NIM | Nama | alamat | Sex | +------------+---------------+---------------+------+ | 01.05.2004 | Leon Auman | Jl. depok | P | | 01.05.2003 | Annisa Akhwat | Jl. Mawar | W | | 01.05.2002 | Abu Bakar | Jl. Tunjung | P | | 01.05.2001 | Laksmi dewi | Jl. Balapan | W | | 01.05.2000 | Budi R | Jl. Kaliurang | P | +------------+---------------+---------------+------+ 5 rows in set (0.11 sec)

Mengubah Data (Update) Jika data sudah kadaluarsa, berikut perintah digunakan untuk merubah data. Struktur penulisan :
Update nama_tabel set nama_field_1=isi_baru_1, nama_field_2=

isi_baru_2,, nama_field_n=isi_baru_n Where kriteria;

Contoh :
Update produk set harga=3000 where nama=Sikat Gigi;

12

OPERATOR RELASIONAL Operator yang digunakan yntuk perbandingan antara dua buah nilai. Jenis dari operator ini adalah = , >, <, >=, <=, <>
mysql> select * from siswa where sex='P'; +------------+------------+---------------+------+ | NIM | Nama | alamat | Sex | +------------+------------+---------------+------+ | 01.05.2000 | Budi R | Jl. Kaliurang | P | | 01.05.2002 | Abu Bakar | Jl. Tunjung | P | | 01.05.2004 | Leon Auman | Jl. depok | P | +------------+------------+---------------+------+ 3 rows in set (0.06 sec)

Operator BETWEEN dan NOT BETWEEN Operator between ini untuk menangani operasi jangkauan
mysql> select * from siswa where tgl_lhr between '1980-01-01' and '198212-29'; +------------+---------------+---------------+------+------------+ | NIM | Nama | alamat | Sex | Tgl_lhr | +------------+---------------+---------------+------+------------+ | 01.05.2000 | Budi R | Jl. Kaliurang | P | 1982-03-17 | | 01.05.2001 | Laksmi dewi | Jl. Balapan | W | 1982-10-21 | | 01.05.2003 | Annisa Akhwat | Jl. Mawar | W | 1980-01-12 | +------------+---------------+---------------+------+------------+

Operator IN dan NOT IN Operator IN digunakan untuk mencocokkan dengan salah satu yang ada pada suatu daftar nilai. Sebagai contoh :
mysql> select nama from siswa where nim in ('01.05.2000','01.05.2004'); +------------+ | nama | +------------+ | Budi R | | Leon Auman | +------------+ 2 rows in set (0.00 sec)

Operator LIKE dan NOT LIKE Operator LIKE atau NOT LIKE sangat bermanfaat dalam mencari suatu data. Operasi ini digunakan dengan menyebutkan tanda wildcard berupa garis bawah (_) atau (%)
13

<. Tanda garis bawah (_) berarti sebuah karakter apa saja. Contoh a_u cocok dengan anu,aku,alu,abu dan tidak cocok untuk andu,ambu ataupun allu <. Tanda % berarti cocok dengan kata apa saja dan berapapun panjangnya contoh:

mysql> select nim,nama,alamat from siswa where nama like 'a%'; +------------+---------------+-------------+ | nim | nama | alamat | +------------+---------------+-------------+ | 01.05.2002 | Abu Bakar | Jl. Tunjung | | 01.05.2003 | Annisa Akhwat | Jl. Mawar | +------------+---------------+-------------+ 2 rows in set (0.00 sec)

FUNGSI AGREGAT Fungsi Agregat AVG COUNT MAX MIN SUM Contoh :
mysql> select avg(nilai) from nilai; +------------+ | avg(nilai) | +------------+ | 63.0000 | +------------+ 1 row in set (0.05 sec) mysql> select count(nama) from siswa; +-------------+ | count(nama) | +-------------+ | 5 | +-------------+ 1 row in set (0.00 sec) mysql> select max(nilai),min(nilai) from nilai; +------------+------------+ | max(nilai) | min(nilai) | +------------+------------+ | 100 | 10 | +------------+------------+ 1 row in set (0.05 sec)

Keterangan Memperoleh nilai rata-rata Menghitung cacah data Menghasilkan nilai terbesar Menghasilkan nilai terkecil Memperoleh penjumlahan data

14

mysql> select sum(nilai) from nilai; +------------+ | sum(nilai) | +------------+ | 315 | +------------+ 1 row in set (0.05 sec)

Ekspresi Pada Query Ekspresi pada query memungkinkan untuk mengubah judul kolom keluaran, melakukan perhitungan pada kolom keluaran, dan mengubah tipe data keluaran. Memberi nama lain terhadap kolom keluaran Untuk memberi nama lain terhadap suatu kolom keluaran dengan klausa AS.
mysql> select nim,nilai*10 as Nilai_MHS from nilai; +------------+-----------+ | nim | Nilai_MHS | +------------+-----------+ | 01.05.2000 | 900 | | 01.05.2001 | 400 | | 01.05.2002 | 750 | | 01.05.2003 | 100 | | 01.05.2004 | 1000 | +------------+-----------+ 5 rows in set (0.00 sec)

Menambah teks dalam baris keluaran


mysql> select 'No Mahasiswa ',nim,' Nilainya ',nilai from nilai; +---------------+------------+------------+-------+ | No Mahasiswa | nim | Nilainya | nilai | +---------------+------------+------------+-------+ | No Mahasiswa | 01.05.2000 | Nilainya | 90 | | No Mahasiswa | 01.05.2001 | Nilainya | 40 | | No Mahasiswa | 01.05.2002 | Nilainya | 75 | | No Mahasiswa | 01.05.2003 | Nilainya | 10 | | No Mahasiswa | 01.05.2004 | Nilainya | 100 | +---------------+------------+------------+-------+

Ekpresi berkondisi BU : CASE nilai_ekspresi WHEN nilai_ekspresi THEN nilai_ekspresi ELSE nilai_ekspresi END

15

mysql> select nim,nama,case sex when 'P' then 'Pria' else 'Wanita' end as sex from siswa; +------------+---------------+--------+ | nim | nama | sex | +------------+---------------+--------+ | 01.05.2000 | Budi R | Pria | | 01.05.2001 | Laksmi dewi | Wanita | | 01.05.2002 | Abu Bakar | Pria | | 01.05.2003 | Annisa Akhwat | Wanita | | 01.05.2004 | Leon Auman | Pria | +------------+---------------+--------+ 5 rows in set (0.06 sec)

Ekspresi tentang Waktu Pernyataan berikut akan menampilkan identitas sisa yang tanggal lahirnya lebih dari tanggal 29 desember 1980
mysql> select nim,nama,tgl_lhr from siswa where tgl_lhr>date '198012-29'; +------------+-------------+------------+ | nim | nama | tgl_lhr | +------------+-------------+------------+ | 01.05.2000 | Budi R | 1982-03-17 | | 01.05.2001 | Laksmi dewi | 1982-10-21 | | 01.05.2004 | Leon Auman | 1983-01-19 | +------------+-------------+------------+ 3 rows in set (0.00 sec) mysql> select time '23:12:00'-time '05:00:00'; +---------------------------------+ | time '23:12:00'-time '05:00:00' | +---------------------------------+ | 18 | +---------------------------------+ 1 row in set (0.06 sec)

FUNGSI NILAI CURRENT_DATE : Menghasilkan tanggal sekarang CURRENT_TIME : Menghasilkan Waktu sekarang
mysql> select current_date as Tgl_Sekarang; +--------------+ | Tgl_Sekarang | +--------------+ | 2003-10-08 | +--------------+ 1 row in set (0.06 sec)

16

mysql> select current_time as Waktu_Sekarang; +----------------+ | Waktu_Sekarang | +----------------+ | 06:45:14 | +----------------+ 1 row in set (0.06 sec)

QUERY ANTAR TABEL

Query yang akan dibahas pada bagian ini melibatkan lebih dari satu tabel
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | NIM | varchar(10) | | PRI | | | | Nama | varchar(25) | YES | | NULL | | | alamat | varchar(35) | YES | | NULL | | | Sex | char(1) | YES | | P | | | Tgl_lhr | date | YES | | NULL | | +---------+-------------+------+-----+---------+-------+

Struktur dari table Siswa


+------------+---------------+---------------+------+------------+ | NIM | Nama | alamat | Sex | Tgl_lhr | +------------+---------------+---------------+------+------------+ | 01.05.2000 | Budi R | Jl. Kaliurang | P | 1982-03-17 | | 01.05.2001 | Laksmi dewi | Jl. Balapan | W | 1982-10-21 | | 01.05.2002 | Abu Bakar | Jl. Tunjung | P | 1977-12-29 | | 01.05.2003 | Annisa Akhwat | Jl. Mawar | W | 1980-01-12 | | 01.05.2004 | Leon Auman | Jl. depok | P | 1983-01-19 | +------------+---------------+---------------+------+------------+

Isi dari table Siswa


+-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | NIM | varchar(10) | | PRI | | | | Nilai | int(11) | YES | | 0 | | +-------+-------------+------+-----+---------+-------+

Struktur dari table Siswa


+------------+-------+ | NIM | Nilai | +------------+-------+ | 01.05.2000 | 90 | | 01.05.2001 | 40 | | 01.05.2002 | 75 | | 01.05.2003 | 10 | | 01.05.2004 | 100 | +------------+-------+

Isi dari table Siswa


17

MySQL mempunyai kemampuan untuk menggabungkan dua tabel atau lebih gua mendapatkan informasi yang diinginkan. Proses yang dilakukan dengan nama JOIN. Dalam penggabungan dari beberapa tabel (join) ada beberapa hal yang perlu diperhatian, antara lain : 1. Setiap kolom disebutkan dengan bentuk, 2. tabel-tabel yang dilibatkan dalam queri perlu disebutkan dalam Klausa FORM dengan antar tabel dipisah oleh koma. 3. Kondisi dalam WHERE menetukan macam join yang terbentuk Contoh:
mysql> select siswa.nim,nama,nilai nilai.nim=siswa.nim; +------------+---------------+-------+ | nim | nama | nilai | +------------+---------------+-------+ | 01.05.2000 | Budi R | 90 | | 01.05.2001 | Laksmi dewi | 40 | | 01.05.2002 | Abu Bakar | 75 | | 01.05.2003 | Annisa Akhwat | 10 | | 01.05.2004 | Leon Auman | 100 | +------------+---------------+-------+ from nilai,siswa where

Macam-macam bentuk Penggabungan (Join) 1. CROSS JOIN Cross Join merupakan bentuk penggabungan yang paling sederhana, tanpa ada kondisi. BU : SELECT field1,field2 FROM Tabel1 CROSS JOIN tabel2; 2. INNER JOIN Hampir sama dengan cross join tetapi diikuti dengan kondisi BU : SELECT Field FROM tabel1 INNER JOIN tabel 2 ON kondisi

18

mysql> select * from siswa inner join nilai on siswa.nim=nilai.nim;


+------------+---------------+---------------+------+------------+------------+-------+ | NIM | Nama | alamat | Sex | Tgl_lhr | NIM |Nilai | +------------+---------------+---------------+------+------------+------------+-------+ | 01.05.2000 | Budi R | Jl. Kaliurang | P | 1982-03-17 | 01.05.2000 | 90 | | 01.05.2001 | Laksmi dewi | Jl. Balapan | W | 1982-10-21 | 01.05.2001 | 40 | | 01.05.2002 | Abu Bakar | Jl. Tunjung | P | 1977-12-29 | 01.05.2002 | 75 | | 01.05.2003 | Annisa Akhwat | Jl. Mawar | W | 1980-01-12 | 01.05.2003 | 10 | | 01.05.2004 | Leon Auman | Jl. depok | P | 1983-01-19 | 01.05.2004 | 100 | +------------+---------------+---------------+------+------------+------------+-------+

3. STRAIGHT JOIN Straight Join identik dengan inner join tetapi tidak mengenal klausa where BU : SELECT field FROM Tabel1 SATRIGHT JOIN tabel2

4. LEFT (OUTER) JOIN Akan menampilkan tabel disebelah kanannya (dalam hal ini tabel nilai) dengan NULL jika tidak terdapat hubungan antara tabel disebelah kiri (dalam hal ini tabel siswa) BU : SELECT field FROM tabel1 LEFT JOIN tabel2 ON kondisi Contoh
mysql> select siswa.nim,nama,nilai from siswa left join nilai on siswa.nim=nilai .nim; +------------+---------------+-------+ | nim | nama | nilai | +------------+---------------+-------+ | 01.05.2000 | Budi R | 90 | | 01.05.2001 | Laksmi dewi | 40 | | 01.05.2002 | Abu Bakar | 75 | | 01.05.2003 | Annisa Akhwat | 10 | | 01.05.2004 | Leon Auman | 100 | +------------+---------------+-------+

5. RIGHT/OUTER JOIN Kebalikan dari LEFT JOIN, jika idak menemukan hubungan dengan tabel disebelah kiri maka akan ditampilkan NULL BU : SELECT field FROM tabel1 RIGHT JOIN tabel2 ON kondisi

19

Contoh
mysql> select siswa.nim,nama,nilai from siswa right join nilai on siswa.nim=nilai.nim; +------------+---------------+-------+ | nim | nama | nilai | +------------+---------------+-------+ | 01.05.2000 | Budi R | 90 | | 01.05.2001 | Laksmi dewi | 40 | | 01.05.2002 | Abu Bakar | 75 | | 01.05.2003 | Annisa Akhwat | 10 | | 01.05.2004 | Leon Auman | 100 | | NULL | NULL | 68 | +------------+---------------+-------+ 6 rows in set (0.06 sec)

Menghapus Data (Delete) Jika terdapat kesalahan data atau data sudah tidak digunakan lagi, hapus dengan perintah delete. Struktur penulisan : Delete from nama_tabel where kriteria; Contoh :
Delete from produk where nama=Sikat Gigi,

20

USER DAN HAK AKSES USER Sebagai seorang adminitrator database user ROOT mempunyai hak dalam membuat user dan memberikan hak-hak akses terhapad user baru tersebut. Adapun struktur dari Table User adalah sebagai berikut : Field Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv Type char(60) char(16) char(16) enum('N','Y') enum('N','Y') enum('N','Y') enum('N','Y') enum('N','Y') enum('N','Y') enum('N','Y') enum('N','Y') enum('N','Y') enum('N','Y') enum('N','Y') NULL Key PRI PRI Default Extra

N N N N N N N N N N N

Untuk Melihat struktur dari table user


mysql>describe user;

Perintah membuat User Baru Nama User = User1, Host di Local dan password=user1
mysql> use mysql; Database changed mysql> insert into user (host,user,password) values (Localhost','User1',password('user')); Query OK, 1 row affected (0.39 sec) mysql> flush privileges; Query OK, 0 rows affected (0.22 sec)

Keterangan : Host : Localhost user hanya dapat mengakses MySQL hanya di komputer local / server saja IP Address User hanya dapat mengakses MySQL di komputer dengan alamat IP yang telah didefinisikan
21

% - User dapat mengakses MySQL dari komputer manapun User : Nama atau ID yang digunakan untuk Login Password : Digunakan untuk keamanan server database Dan Password di enkripsi untuk keamanan user. Flush Privileges : Wajib diberikan untuk menetapkan user dalam server dan digunakan selain pembuatan user baru juga dalam mengedit user maupun menghapus user dari server Setiap User mempunyai 14 Hak Akses, yaitu : Nama Field Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_Priv Index_Priv Alter_Priv Type ('N','Y') ('N','Y') ('N','Y') ('N','Y') ('N','Y') ('N','Y') ('N','Y') ('N','Y') ('N','Y') ('N','Y') ('N','Y') (N , Y ) ('N','Y') ('N','Y') Default N N N N N N N N N N N N N N Keterangan Select (Table) Insert (Table) Update (Table) Delete (Table) Create (Database,Table,index) Drop (database,table) Reload (Server Administration) Shutdown (Server dministration) Prosess (server administration) FILE (Akses File di server) Grant (Database,table) References (Database,Table) Index (Table) Alter (Table)

Pemberian Hak Akses pada saat pembuatan user

mysql> insert into user (host,user,password,select_priv) values ('Localhost', 'User1',password('user1'),'Y'); Query OK, 1 row affected (0.05 sec) mysql> flush privileges; Query OK, 0 rows affected (0.05 sec)

Melihat daftar user yang terdaftar di server

mysql> select * from User;

22

Mengubah nama host dari localhost ke no IP 192.168.1.1 dari user1


mysql> update user set host='192.168.1.1' where user='User1'; Query OK, 1 row affected (0.05 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.05 sec)

Mengubah Nama user dari User1 ke User2


mysql> update user set user='User2' where user='User1'; Query OK, 1 row affected (0.05 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.05 sec)

Mengubah Password dari User2


where

mysql> update user set password=password('User2') user='User2'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.06 sec)

Mengubah dan menambah hak akses dari user2


mysql> update user set Insert_Priv='Y' where user='User2'; Query OK, 1 row affected (0.06 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)

Menghapus User2 dari Server


mysql> delete from user where user='User2'; Query OK, 1 row affected (0.05 sec) mysql> flush privileges; Query OK, 0 rows affected (0.05 sec)

23

3.

DCL (Data Control Language)

Terdiri atas (GRANT dan REVOKE) DCL merupakan kontrol keamanan terhadap database dan tabelnya., yaitu mengatur hak akses dan cara mencabut hak akses, agar tabel-tabel tertentu hanya bisa diakses oleh orang-orang yang dikehendaki. a. GRANT Grant digunakan untuk mengizinkan seorang user mengakses tabel dalam database tertentu. Pemberian hak akses ini dengan clausa GRANT. BU : GRANT hak_akses ON Nm_Tabel TO Pemakai Keterangan : Hak Akses adalah hak-hak yang diberikan server administrator kepada user, antara lain : ALTER, CREATE, DELETE, DROP, UPDATE, INSERT, FILE, PROCESS, RELOAD, REFERENCES,LOAD, SHUTDOWN DAN USAGE Nm_Tabel adalah nama-nama tabel yang akan akan diakses atau pemberian hak kepada user. Pemakai adalah nama user yang akan diberi hak, dengan ketentuan nama pemakai diikuti nama dari host diawalai tanda @ Contoh : Dberikan semua hak akses semua tabel dalam database praktikum terhadap user User1 di localhost
mysql> grant all privileges on praktikum.* to User1@localhost; Query OK, 0 rows affected (0.06 sec) mysql> flush privileges; Query OK, 0 rows affected (0.11 sec)

24

Dberikan hak akses insert dan select dalam database praktikum dengan tabel siswa terhadap user User1 di localhost
mysql> grant select,insert on User1@localhost; Query OK, 0 rows affected (0.05 sec) mysql> flush privileges; Query OK, 0 rows affected (0.06 sec) praktikum.siswa to

b. REVOKE REVOKE digunakan untuk Mencabut hak akses seorang user mengakses tabel dalam database tertentu. Pencabutan hak akses ini dengan clausa REVOKE. BU : REVOKE hak_akses ON Nm_Tabel FROM Pemakai Keterangan : Hak Akses adalah hak-hak yang diberikan server administrator kepada user, antara lain : ALTER, CREATE, DELETE, DROP, UPDATE, INSERT, FILE, PROCESS, RELOAD, REFERENCES,LOAD, SHUTDOWN DAN USAGE Nm_Tabel adalah nama-nama tabel yang akan akan diakses atau pemberian hak kepada user. Pemakai adalah nama user yang akan diberi hak, dengan ketentuan nama pemakai diikuti nama dari host diawalai tanda @

Contoh : Dicabut semua hak akses semua tabel dalam database praktikum terhadap user User1 di localhost
mysql> REVOKE all privileges User1@localhost; Query OK, 0 rows affected (0.06 sec) mysql> flush privileges; Query OK, 0 rows affected (0.11 sec) on praktikum.* From

25

Dicabut hak akses insert dan select dalam database praktikum dengan tabel siswa terhadap user User1 di localhost
mysql> REVOKE select,insert on User1@localhost; Query OK, 0 rows affected (0.05 sec) mysql> flush privileges; Query OK, 0 rows affected (0.06 sec) praktikum.siswa FROM

26

HTML
Untuk penulisan HTML dilakukan dengan text editor yang ada, misalnya Emacs, GNU vi, vi, Kwrite dan lain-lain. Untuk melihat hasil gunakan browser yang ada seperti Konqueror, Mozzila, dan simpan file tersebut dengan exstensi html atau htm, misalnya coba.html

Cara penulisan
Penulisan HTML dilakukan dengan diawali <kodehtml> dan diakhiri </kodehtml>. Untuk menulis tebal html menggunakan kode <b>, sehingga jika anda ingin menebalkan kata ini saya akan tebalkan maka : source HTML : <b>ini saya akan tebalkan</b> Hasil : ini saya akan tebalkan Pada saat pembuatan source html (pada text editor), menekan enter dan spasi lebih dari satu akan tidak akan berpengaruh terhadap tampilan. Source HTML (pada texteditor) : Ini saya gunakan spasi sampai disini pake enter lagi Hasil pada browser :

Ini saya gunakan spasi sampai disini pake enter lagi


Terlihat tidak ada pengaruh pada hasil jika menekan spasi dan enter pada texteditor., HTML punya cara sendiri untuk melakukan jarak dengan enter dan spasi, kode enter pada html adalah <br> dan spasi adalah &nbsp;. Jika ingin menggunakan jarak maka seharusnya lakukan dengan : Source HTML (pada texteditor) : Ini saya gunakan spasi &nbsp;&nbsp;&nbsp;&nbsp; sampai disini

<br><br><br><br><br><br><br>pake enter lagi Hasil pada browser :

Ini saya gunakan spasi

sampai disini

pake enter lagi


Dengan keadaan tersebut dapat kita menyiumpulkan bahwa tidak semua format penulisan HTML harus dengan diawali dengan <kodehtml> dan diakhiri dgn < kodehtml>, jika kode yang tidak memblock sesuatu karakter atau area maka kita tidak perlu meng-akhiri dengan </kodehtml>. Penulisan HTML juga menggunakan prameter-parameter tambahan, yakni mengkondisikan sebuah block dengan bentuk bentuk yang diatur, misalnya untuk membuat tulisan diposisikan digunakan kode <div> dan diakhiri</div>. Kode tersebut belum mempunyai parameter tambahan artinya belum jelas seuatu block diposisikan dimana (kanan/kiri/tengah), untuk itu kode <div> harus ditambahkan parameter yakni align. 27

Source HTML Hasil

: <div align=center>Saya tengah</div> : Saya tengah

Source HTML : <div align=right>Saya kanan</div> Hasil : Saya kanan Begitu pula untuk left dan justify. Beberapa parameter pada kode html mempunyai parameter lebih dari satu, berikut kita lihat contoh memasukan gambar dengan parameter lebih dari satu : <img src="/home/data/pics/logosurat.jpg" width=148 height=185 border=2 > hasill :

Memasukan Link
<a href=/home/data/pics/logosurat.jpg>klik disini untuk lihat gambar asli</a><br> <a href=http://www.xxx.cim/kel_stu_lix/index.php>Link menuju halaman lain (internet)</a><br> <a href=/home/data/php/index.php>Link menuju halaman lain juga (local) </a><br> hasil :

Membuat Tabel
Dalam sebuah block table setidaknya harus terdiri dari <table>, <tr> dan <td>. <table> mendefenisiskan mulai membuat table <tr> membuat table rows (baris table) <td> membuat table data (isi dari setiap tr) Contoh: 28

<table border=1 width=300 bgcolor=#C2C2C2> <tr> <td>Kolom satu dengan data satu</td> </tr> </table> Contoh 2: <table border=1 width=300 bgcolor=#FFFCCC> <tr> <td>Baris 1 data pertama (1)</td> <td>Baris 1 data kedua (2)</td> </tr> </table>

hasill

Beberapa from pada HTML


Deklarasi form pada html dimulai dengan <form> dan diakhiri dengan </form>. Beberapa form pada html yakni :

Jenis text

Kode
<input type=text>

Hasil

password

<input type=password>

textarea

<textarea cols=20 rows=5>isinya</textarea>

submit

<input type=submit value=Kirim> <input type=reset>

reset

Berikut cara penulisan untuk mendeklarasikan sebuah form dengan beberapa paremeter standar. Untuk membuat sebuah form seperti di atas, kita harus mendeklasikannya layaknya saat kita mendeklarasikan sebuah table.

29

<form method=post action=file_proses.php > Masukan nama anda :<br><input type=text name=nam_mhs><br> Jenis kelamin :<br><input type=radio name=a value=1>Laki-laki<br> <input type=radio name=c value=2>Perempuan<br> Zodiak :<br> <select name=b> <option value=1>Sagitarius</option> <option value=2>Leo</option> <option value=3>Aquarius</option> </select> <br> Alamat :<br><textarea name=alamat cols=20 rows=5> </textarea><br> <input type=submit name=pro value=Proses> <input type=reset ></form> Penjelasan : untuk membuat form ber-type apapun, harus dimulai dengan <form> dan diakhiri dengan </form> pada <form> paling sedikir harus memiliki method dan action method pada form mendeklarasikan bentuk pengiriman data (post/get) dan action menyatakan bahwa block form ini akan diproses oleh action atau file pada action (mis : file_proses.php). Type pada input menyatakan form yang dibentuk dalam bentuk apa (text / password /radio/checkbox dan lain sebagainya) name pada setiap jenis form menyatakan nama dari setiap form tersebut value adalah nilai default yang diberikan pada form tersebut, sehingga apapun yang dipilih atau diisi, nilai yang dimiliki tetap pada nilai value. Ini hanya berlaku pada <option>, <radio> dan <chackbox>, sementara untuk yang lainnya seperti text dan textarea nilai akan berubah jika pengguna mengisi nilai baru pada tempat tsb. Kita akan banyak memahami maksut nilai tersebut jika kita telah melakukan proses yang akan kita lakukan dengan php nantinya. Cols dan rows pada <textarea> mendeklarasikan lebar dan panjang area yang dibentuk value pada <input type=submit value=Proses> mendeklarasikan tulisan yang akan tertulis pada tombol. Jika anda menulis source diatas dengan benar maka akan tampil:

30

PHP
Untuk menjalalankan kode PHP kita harus menjalankan web server terlebih dahulu, dalam hal ini adalah Apache.

Beberapa hal penting : DocumentRoot http:// mempunyai alamat http://nama_host. File php.ini Membuka service rPHP case sensitive.

: c:\\apache\htdocs\ : http://localhost atau http://127.0.0.1, bagi anda yang IP (bukan loopback) gunakan http://alamat_ip atau : c:\\apache\php\php.ini : c:\\apache\apache

Ada beberapa code yang dapat ditulis untuk menandakan awal dan mengakhiri dari kode php namun untuk saat ini kita sepakati saja dengan kode sebagai berikut : <?php //ISI PROGRAM PHP ?> Latihan 1 (echo/print) Buatlah sebuah file dengan nama belajar.php dan simpan di c:\\apache\htdocs\ c:\\apache\htdocs\ kita sebut dengan documentroot). Isi file tersebut dengan code sebagai berikut: <?php echo Kenapa harus halo dunia ; ?> Silahkan kunjungi http://localhost/belajar.php, Latihan 2 (echo+html) Modifikasi file tersebut dengan menambahkan code html seperti berikut : (selanjutnya

31

<?php echo ?>

<b>Kenapa harus halo dunia </b> ;

Atau : <?php echo <font size=+4 color=#00FFLP face=vendana>Kenapa harus halo dunia </font> ; ?> Latihan 3 (variabel) Penulisan sebuah variabel ditulis dengan diawali dengan ($) dan diikuti dengan nama variabel. contoh : Integer atau bilangan berkoma : $a = 1; atau $a = 1.25; String : $a = Ini string;

Berikut contoh penulisan varibel Integer dan String: <? $a = $A = $c = $d = echo ?>

1; 2; $a+$A; "Hasilnya adalah :" ; "$d $c";

Hasil pada browser dari program tersebut adalah : Hasilnya adalah : 3

Struktur Kontrol
Ada banyak struktur kontrol yang dapat digunakan oleh PHP layaknya bahasa pemrograman lainnya, namun disini saya hanya sedikit memberi contoh untuk if+else+while dan for saja karena keempat struktur kontrol inilah yang sering digunakan, sementara untuk lainnya (fungsi 2x dsb) Insyaallah akan disambung pada tulisan berikutnya (jika banyak yang berminat)

If+else
<? $a=10; if($a>5) { echo PETAMA; } else { echoKeDuA; } ?>

32

Ubahlah nilai variabel $a (misalnya 1 atau 2 atau 4 atau 6 , lalu jalankan para browser dan lihat perbedaannya.

While
<? $x=1; while($x<10) { echo <b>sudah $x kali</b><br> $x=$x+1; } ?> Hasil dari source tersebut adalah :

Kirta dapat juga melakukan :

<? $x=1; echo "<table border=1 bordercolor=#2DA5D4>"; while($x<10) //jangan echo table di sini, tapi sebelum while { echo "<tr><td bgcolor=#C5C5D4>Data $x</td></tr>"; $x=$x+1; } echo "</table>"; ?> Hasil :

33

for
Source : [nilai awal] <? [nilai akhir] [lakukan penambahan]

for($a=1;$a<=10;$a++) { echo "Berulang sebanyak $a kali<br>"; } ?> Hasil :

Sebenarnya penggunaan struktur kontrol sama seperi kita melakukan pada bahasa pemrograman lainnya, hannya saja disini kita bisa mem-bubuinya dengan html. Untuk struktur kontrtrol yang lain, mungkin anda bisa membaca manual php atau referensi lainnya.

34

MySQL dan PHP

Koneksi php dgn mysql


<? $a = mysql_connect('xxxxx.org','root','xxxxxxxxx'); mysql_select_db('latihan',$a); ?>

Pejelasan: mysql_connect adalah fungsi php untuk melakukan koneksi ke mysql xxxxx.org adalah hostname komputer yang digunakan atau dapat pula diisi dengan IP komputer anda, misalnya 10.23.0.4 xxxxxxxxx adalah password mysql yang anda punya. Biasanya pada instalasi awal mysql tidak diberi password, sehingga bisa ditulis dengan ' ' (dikosongkan) saja. Root adalah user name pada data base mysql anda, ubah jika perlu mysql_select_db adalah fungsi yang digunakan untuk mendeklarasikan nama database yang akan digunakan, terlihat dalam bentuk ini nama database yang digunakan adalah latihan INGAT : SETIAP FILE YANG DIDALAMNYA ADA PERINTAH QUERY KE MYSQL MAKA FILE TERSEBUT HARUS DIDAHULUI SCRIPT KONEKSI KE MYSQL (SEPERTI DI ATAS) pelajari ttg include dan require jika ingin ingin mempermudah proses koneksi Jika script di atas dijalankan, maka tidak akan menghasilkan output apapun, jikapun ada itu adalah bukti ketidak berhasilan koneksi yang berupa lampiran error atau warning. Jadi pastikan dengan menulis script di atas dengan menghasilkan (pada browser) tidak ada apa-apa (halaman kosong).

35

Menampilkan data
Buatlah sebuah database pada MySQL dengan nama latihan dan buatlah sebuah tabel : +-------+-----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-----------+------+-----+---------+-------+ | no | int(3) | | PRI | 0 | | | nama | char(254) | | | | | +-------+-----------+------+-----+---------+-------+ 2 rows in set (0.03 sec) Kemudian isilah tabel tersebut sesuka anda. Buatlah file dengan nama tampilkandata.php (simpan pada documentRoot) : <? $a = mysql_connect('xxxxx.org','root','xxxxxxxxx'); mysql_select_db('latihan',$a);

$perintah = mysql_query(select no,nama from contoh2); while($teruskan = mysql_fetch_array($perintah)) { echo $teruskan[no]; echo $teruskan[nama]; } ?>

Jika penulisan benar maka anda dapat melihat hasil di browser anda.

dan yang terjadi pada mysql adalah : mysql> select no,nama from contoh2; +------+---------------------+ | no | nama | +------+---------------------+ | 1 | Kelompok Studi McOS | | 2 | KPLI Jakarta | | 3 | KPLI Jogja | | 4 | Bosnia | | 5 | Argentina | | 6 | Malaysia | +------+---------------------+ 6 rows in set (0.03 sec)

36

Memasukan data
buat sebuh file dengan nama masukandata.php : <? $a = mysql_connect('xxxx.org','root','xxxxxxxxx'); mysql_select_db('latihan',$a); // jika tidak ada nilai dengan nama varibel $kirim if(!$kirim) { // $PHP_SELF mengartikan dilakukan oleh file ini sendiri echo <form method=post action=$PHP_SELF> No : <br> <input type=text name=nomor ><br> Nama:<br> <input type=text name=nm><br> <input type=submit name=kirim><input type=reset value=clear> </form>; } else { mysql_query(insert into contoh2 values('$nomor','$nm'); echo data telah dimasukan <a href=tampilkandata.php > [ lihat hasil ] </a>; } ?> Jika source disalin dengan benar maka akan tampil :

Menghapus data
perhatikan source berikut (pengembangan dari tampilkandata.php). Buatlah sebuah file dengan nama hapusdata.php :

37

<? $a = mysql_connect('xxxxxxx.org','root','xxxxxxxxx'); mysql_select_db('latihan',$a); $perintah = mysql_query(select no,nama from contoh2); while($teruskan = mysql_fetch_array($perintah)) { echo $teruskan[no]; echo $teruskan[nama]; echo <a href=dohapus.php?nilai=$teruskan[no]>[ delete ] </a> ; } ?>

Lalu buat sebuah file lagi dengan nama dohapus.php <? $a = mysql_connect('mauladi.org','root','xxxxxxxxx'); mysql_select_db('latihan',$a); mysql_query(delete from contoh2 where no='$nilai' ); echo data telah dihapus <a href=hapusdata.php>[ lihat data ]</a>; ?> Yang terjadi Pada mysql : mysql> select no,nama from contoh2; +------+--------------+ | no | nama | +------+--------------+ | 2 | KPLI Jakarta | | 3 | KPLI Jogja | | 4 | Bosnia | | 5 | Argentina | | 6 | Malaysia | +------+--------------+ 5 rows in set (0.16 sec) mysql> delete from contoh2 where no='3'; Query OK, 1 row affected (0.19 sec)

38

Mencari data
<? $a = mysql_connect('mauladi.org','root','xxxxxxxxx'); mysql_select_db('latihan',$a); if (!$cari) { echo <form method=post action=$PHP_SELF> Find : <input type=text name=nilainya > <input type=submit name=cari > ; } else { $perintah= mysql_query(select nama from contoh2 where nama like '%$nilainya%' ); while ($hasil = mysql_fetch_array($perintah)) { echo $hasil[nama]<br>; } ?>

Ada banyak bentuk yang dapat kita oleh dengan form-form html namun setidaknya contoh-contoh dan sedikit penjelasan ini dapat menjadi sebuah gambaran singkat tentang pengolahan data yang dilakukan dengan php, mysql dan html. Kami menyadari tulisan ini tidak begitu lengkap untuk menjelaskan semua hal yang dapat dilakukan dengan php,mysql atau html bahkan mungkin tidak dapat memuaskan, namun setidaknya ini adalah sebuah langkah awal dari langkah langkah lain yang dapat anda pilih.

Asisten Lab I dan IV 09/17/0402:14:16 pm

39