DATABASE MySQL
6.1 Pendahuluan
Materi yang dibahas pada bab ini yaitu pengenalan database, DBMS, RDBMS dan dasar-
dasar MySQL. Bab ini juga membahas tentang perintah dasar SQL yakni cara membuat dan
menghapus database, membuat tabel, melihat struktur tabel, mengubah struktur tabel, mengganti
nama tabel, menghapus tabel, pengambilan record dari database serta koneksi PHP dengan
MySQL.
6.2 Basis Data
Basis data (database) adalah kumpulan informasi yang disimpan di dalam komputer
secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk
memperoleh informasi dari basis data tersebut. Database digunakan untuk menyimpan informasi
atau data yang terintegrasi dengan baik di dalam komputer.
Untuk mengelola database diperlukan suatu perangkat lunak yang disebut DBMS
(Database Management System). DBMS merupakan suatu sistem perangkat lunak yang
memungkinkan user (pengguna) untuk membuat, memelihara, mengontrol, dan mengakses
database secara praktis dan efisien. Dengan DBMS, user akan lebih mudah mengontrol dan
memanipulasi data yang ada. DBMS merupakan salah satu sistem dalam mengakses database
yang menggunakan bahasa SQL.
Sedangkan RDBMS (Relationship Database Management System) merupakan salah satu
jenis DBMS yang mendukung adanya relationship atau hubungan antar tabel. Disamping
RDBMS, terdapat jenis DBMS lain, misalnya Hierarchy DBMS, Object Oriented DBMS.
Beberapa software atau perangkat lunak DBMS yang sering digunakan dalam aplikasi
program antara lain:
DB2 - http://www-306.ibm.com/software/data/db2
Microsoft SQL Server - http://www.microsoft.com/sql
Oracle - http://www.oracle.com
Sybase - http://www.sybase.com
Interbase - http://www.borland.com/interbase
96
Teradata - http://www.teradata.com
Firebird - http://www.firebirdsql.org
MySQL – http://www.mysql.com
PostgreSQL - http://www.postgresql.org
Dalam konsep database, urutan atau hierarki database sangatlah penting. Urutan atau
hierarki database digambarkan dalam gambar sebagai berikut:
6.3 MySQL
MySQL (My Structure Query Language) adalah salah satu database dari sekian banyak
database lain seperti Oracle, MS SQL, PostgresSQL. Kesemuanyaitu mempunyai fungsi dan
manfaat yang hampir sama namun dalam pengerjaanya sedikit berbeda. Dalam hal penggunaan
MySQL adalah yang paling mudah digunakan.
MySQL merupakan software open source sehingga memungkinkan untuk semua orang
untuk menggunakan dan memodifikasi software. Setiap orang dapat mendownload MySQL dari
internet dan menggunakannya tanpa membayar apapun. Database MySQL sangat cepat, reliable,
dan mudah untuk digunakan, selain itu MySQL telah banyak menangani pembuatan software
besar.
MySQL menggunakan bahasa SQL dan dapat dikatakan sebagai DBMS. Secara umum
bahasa SQL dibagi menjadi tiga bagian:
1. DDL (Data Definition Language) yang digunakan untuk membangun objek-objek dalam
database seperti tabel.
97
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.
6.4 Menjalankan MySQL
1. Buka MS. DOS dengan jalan klik start → run, pada menu run ketikkan CMD kemudian
enter
2. Rubah direktori C prompt menjadi C:\mysql\bin\mysql.exe
3. Setelah itu akan masuk ke menu utama dari MySql
Untuk menghapus database yang telah dibuat, perintah yang digunakan adalah:
98
6.5.2 Menampilkan Database
Untuk melihat database perintah yang digunakan adalah:
Mysql>show databases;
Perintah diatas digunakan untuk melihat semua database yang ada didalam MySQL,
sedangkan untuk melihat database yang sedang aktif menggunakan perintah:
Mysql>select database;
Untuk menggunakan atau masuk kedalam suatu database, perintah yang digunakan
adalah:
Jika terdapat pesan database changed, berarti telah berhasil masuk ke database tersebut,
tetapi jika terdapat pesan ERROR 1049:uknown database, berarti tidak berhasil masuk ke
database tersebut.
6.6 Membuat, Mengubah dan Menghapus Tabel
6.6.1 Membuat Tabel
Setelah menciptakan suatu database dan mengaktifkan database tersebut maka dapat
dilakukan pembuatan tabel, perintah yang digunakan:
Dalam membuat nama tabel atau field tidak boleh menggunakan spasi.
Beberapa tipe data dalam MySQL yang sering digunakan:
Tabel 6.1 Tipe data MySQL
Tipe data Keterangan
INT(M) [UNSIGNED] Angka -2147483648 s/d 2147483647
FLOAT(M,D) Angka pecahan
DATE Tanggal format: YYYY-MM-DD
DATETIME Tanggal dan waktu format: YYYY-MM-DD HH:MM:SS
CHAR(M) String dengan panjang tetap sesuai dengan yang ditentukan
99
Panjangnya 1-255 karakter
VARCHAR(M) String dengan panjang ang berubah-ubah sesuai dengan yang
disimpan saat itu, panjangnya 1-255 karakter
BLOB Teks dengan panjang maksimum 65535 karakter
LONGBLOB Teks dengan panjang maksimum 4294967295
Untuk bentuk tipe data lengkap yang digunakan anda dapat merujuk ke manual MySQL
atau mengunjungi manual di http://mysql.com.
Contoh: Buatlah tabel buku alamat seperti tabel dibawah:
Field Type Key
No Int (3)
Nama Varchar (25)
Kd_post Char (5)
Email Varchar (30)
Kemudian lihat hasil dari pembuatan tabel tersebut, apakah nama tabel tersebut telah ada
dalam daftar tabel yang ada.
6.6.2 Melihat Tabel
Untuk melihat tabel yang ada dalam suatu database, perintah yang digunakan adalah:
Mysql>show table from <nama database>;
mysql>describe buku_alamat;
100
6.6.4 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:
mysql>alter table nama_tabel change nama_field_lama nama_field_baru
tipe_data;
Contoh: Gantilah field kd_post pada tabel buku_alamat dengan kdpos, dengan mengetikkan
perintah:
Contoh: Gantilah tipe data pada field alamat pada tabel buku_alamat dengan tipe data text,
dengan mengetikkan perintah:
mysql>alter table buku_alamat modify alamat text;
c. Penambahan field
Struktur tabel akan berubah dengan bertambahnya field/kolom baru didalamnya. Struktur
penulisan:
mysql>alter table nama_tabel add nama_field tipe_data_baru;
Contoh: Buatlah field baru pada tabel buku_alamat dengan nama field jk tipe data varchar(2),
dengan mengetikkan perintah:
101
d. Penghapusan field
Struktur tabel mengalami perubahan akibat berkurangnya field/kolom tertentu. Struktur
penulisan:
Contoh: Hapuslah field kdpos pada tabel buku_alamat dengan mengetikkan perintah:
mysql>alter table buku_alamat drop column kdpos;
Contoh: Ubahlah nama tabel buku_alamat dengan nama alamat, dengan mengetikkan
perintah:
mysql>alter table buku_alamat rename alamat;
102
6.8 Memberikan nilai bawaan (Default)
Jika tidak memberikan suatu nilai dalam kolom tertentu maka oleh sistem secara otomatis
diisi dengan nilai NULL. Oleh karena itu pada saat perancangan field tabel tersebut defaultnya
diisi dengan tetapan yang dikehendaki.
Contoh :
103
6.9.3 Mengubah Data (Update)
Jika data sudah kadaluarsa, berikut perintah digunakan untuk merubah data. Struktur
penulisan:
Contoh :
Contoh:
104
$conn adalah nama variabel penampung status hasil koneksi kepada database
host adalah nama host atau alamat server database MySQL
username adalah nama user yang telah diberi hak untuk dapat mengakses server database
password adalah kata sandi untuk username untuk dapat masuk ke dalam database
2. Memilih database yang akan digunakan di server
mysql_select_db()
Digunakan untuk melakukan koneksi ke database yang dalam server yang berhasil dikoneksi
dengan perintah mysql_connect().
Sintaks :
$pilih = mysql_select_db(”namadatabase”,$conn);
$hasil akan berupa record set apabila SQL Statement berupa perintah select.
4. Mengambil record dari database
a. mysql_fetch_array()
Digunakan untuk melakukan pemrosesan hasil query yang dilakukan dengan perintah
mysql_query(), dan memasukkannya ke dalam array asosiatif, array numeris atau
keduanya.
Sintaks :
$row = mysql_fetch_array($hasil);
105
$row adalah array satu record dari record $hasil yang diproses nomor record sesuai
dengan nomor urut dari proses mysql_fetch_array yang sedang dilakukan.
$hasil adalah record set yang akan diproses.
b. mysql_fetch_assoc()
Fungsi ini hampir sama dengan fungsi mysql_fetch_array(), hanya saja array yang
dihasilkan hanya array asosiatif.
Sintaks :
$row = mysql_fetch_assoc($hasil);
c. mysql_fetch_row()
Fungsi ini hampir sama dengan fungsi mysql_fetch_array(), hanya saja array yang
dihasilkan hanya array numeris.
Sintaks :
$row = mysql_fetch_row($hasil);
d. mysql_num_rows()
Fungsi ini digunakan untuk menghitung jumlah record yang ada pada database.
Sintaks :
$jml = mysql_num_rows($hasil);
$jml akan memiliki nilai sesuai dengan jumlah record yang ada.
106
Latihan
1. Menguji interkoneksi PHP dengan MySQL
<html>
<head>
<title>Koneksi Database MySQL</title>
</head>
<body>
<h1>Demo koneksi database MySQL</h1>
<?
$conn=mysql_connect ("localhost","root","");
if ($conn) {
echo "OK";
} else {
echo "Server not connected";
}
?>
</body>
</html>
107
c. Akses databases menggunakan mysql_fetch_array()
<html>
<head>
<title>koneksi database mysql</title>
</head>
<body>
<h1>koneksi database dengan mysql_fetch_array</h1>
<?
$conn=mysql_connect ("localhost","root","")
or die ("koneksi gagal");
mysql_select_db("faruq",$conn);
$hasil = mysql_query("select * from liga",$conn);
while ($row=mysql_fetch_array($hasil)) {
echo "liga " .$row["negara"]; //array asosiatif
echo " mempunyai " .$row[2]; //array numeris
echo " wakil di liga champion <br>";
}
?>
</body>
</html>
<html>
<head>
<title>koneksi database mysql</title>
</head>
<body>
<h1>koneksi database dengan mysql_fetch_assoc</h1>
<?
$conn=mysql_connect ("localhost","root","")
or die ("koneksi gagal");
mysql_select_db("faruq",$conn);
$hasil = mysql_query("select * from liga",$conn);
while ($row=mysql_fetch_array($hasil)) {
echo "liga " .$row["negara"];
echo " mempunyai " .$row[“champion”];
echo " wakil di liga champion <br>";
}
?>
</body>
</html>
108
e. Akses databases menggunakan mysql_fetch_row()
<html>
<head>
<title>koneksi database mysql</title>
</head>
<body>
<h1>koneksi database dengan mysql_fetch_assoc</h1>
<?
$conn=mysql_connect ("localhost","root","")
or die ("koneksi gagal");
mysql_select_db("faruq",$conn);
$hasil = mysql_query("select * from liga",$conn);
while ($row=mysql_fetch_row($hasil)) {
echo "liga " .$row[1];
echo " mempunyai " .$row[2];
echo " wakil di liga champion <br>";
}
?>
</body>
</html>
109
b. Buat form untuk buku tamu, beri nama bukutamu.htm
<html>
<head>
<title>buku tamu</title>
</head>
<body>
<h1>buku tamu untuk database mysql</h1>
<form action="bukutamu_add_form.php" method="post">
Nama: <input type="text" name="nama" size="35" maxlength="50"> <br>
Email: <input type="text" name="email" size="35" maxlength="50">
<br>
komentar: <textarea name="komentar" rows="5" cols="30"></textarea>
<br>
<input type="submit" value="simpan">
<input type="reset" value="reset">
</form>
</body>
</html>
<html>
<head>
<title>simpan buku tamu</title>
</head>
<body>
<h1>simpan buku tamu mysql</h1>
<?
$nama = $_post["nama"];
$email = $_post["email"];
$komentar = $_post["komentar"];
$conn=mysql_connect ("localhost","root","")
or die ("koneksi gagal");
mysql_select_db("faruq",$conn);
echo "nama : $nama <br>";
echo "email : $email <br>";
echo "komentar : $komentar <br>";
$sqlstr="insert into bukutamu (nama,email,komentar)
values ('$nama','$email','$komentar')";
$hasil = mysql_query($sqlstr,$conn);
echo "simpan bukutamu berhasil dilakukan";
?>
</body>
</html>
110
d. Buat file view.php untuk menampilkan isi buku tamu
<?
$conn = mysql_connect("localhost","root","");
mysql_select_db("faruq",$conn);
$hasil = mysql_query("select * from bukutamu",$conn);
$jumlah = mysql_num_rows($hasil);
echo "<center>Daftar Pengunjung</center>";
echo "Jumlah pengunjung : $jumlah";
$a=1;
while($baris = mysql_fetch_array($hasil))
{
echo "<br>";
echo $a;
echo "<br>";
echo "Nama : ";
echo $baris[0];
echo "<br>";
echo "Email : ";
echo $baris[1];
echo "<br>";
echo "Komentar : ";
echo $baris[2];
$a++;
}
?>
<html>
<head>
<title>cari database</title>
</head>
<body>
<h1>searching buku tamu untuk database mysql</h1>
<form action="hasilsearch.php" method="post">
<select name="kolom">
<option value="nama">nama</option>
<option value="email">email</option>
</select>
Masukkan kata yang anda cari
<input type ="text" type ="text" name="cari">
<input type ="submit" value="cari" >
</form>
</body>
</html>
111
b. Buat file hasilsearch.php untuk menampilkan data
<?
$kolom=$_POST['kolom'];
$cari=$_POST['cari'];
$conn=mysql_connect("localhost","root","");
mysql_select_db("faruq", $conn);
$hasil=mysql_query("select * from bukutamu where $kolom like
'%$cari%'", $conn);
$jumlah=mysql_num_rows($hasil);
echo "<br>";
echo "Ditemukan: $jumlah";
echo "<br>";
while($baris=mysql_fetch_array($hasil))
{
echo "Nama : ";
echo $baris[0];
echo "<br>";
echo "Email : ";
echo $baris[1];
echo "<br>";
echo "Komentar :";
echo $baris[2];
}
?>
Tugas
Modifikasilah program diatas, sehingga anda memiliki 3 tombol yaitu:
1. Bukutamu untuk inputkan data
2. Tampilkan untuk menampilkan database bukutamu dalam bentuk tabel.
3. Search untuk melakukan searching database bukutamu dalam bentuk tabel.
112