Sabtu, 23 Juni 2012

Modul PHP 6


MySQL & PHPMyAdmin


Tujuan:
  1. Mahasiswa mampu mengadministrasi basisdata MySQL
  2. Mahasiswa mampu mengkoneksikan basisdata MySQL dengan PHP


Landasan Teori

MySQL adalah multi user database yang menggunakan bahasa Structured Query Language (SQL). MySQL dalam operasi client-server melibatkan server daemon MySQL disisi server dan berbagai macam program serta library yang berjalan disisi client. MySQL mampu untuk menangani data yang cukup besar. Perusahaan yang mengembangkan MySQL yaitu TcX, mengaku mampu menyimpan data lebih dari 40 database, 10.000 tabel dan sekitar 7 juta baris, totalnya kurang lebih 100 Gigabytes data. Informasi selengkapnya tentang MySQL dapat dilihat di www.mysql.com.
SQL adalah bahasa standar yang digunakan untuk mengakses server database. Bahasa ini pada awalnya dikembangkan oleh IBM, namun telah diadopsi dan digunakan sebagai standar industri. Dengan menggunakan SQL, proses akses database menjadi lebih user-friendly dibandingkan dengan menggunakan dBASE atau Clipper yang masih menggunakan perintah-perintah pemrograman.

Database, tabel, baris, dan kolom

Dalam konteks bahasa SQL, pada umumnya informasi tersimpan dalam tabel-tabel yang secara logik merupakan struktur dua dimensi yang terdiri atas baris-baris data yang berada dalam satu atau lebih kolom. Baris pada tabel sering disebut sebagai instance dari data, sedangkan kolom sering disebut sebagai attributes atau field. Keseluruhan tabel itu dihimpun dalam satu kesatuan yang disebut database.


Tipe Data pada MySQL

Berikut ini tabel tipe data yang dapat digunakan untuk field-field tabel pada database MySQL.

Tabel Tipe Data pada MySQL
Tipe Data

Keterangan

Ukuran

TINYINT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang sangat kecil.
Signed range –128 – 127
Unsigned range 0 –255.
1
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang kecil.
Signed range –32768 – 32767
Unsigned range 0 –65535.
2
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
Integer dengan ukuran sedang.
Signed range –8388608 –8388607
Unsigned range 0 – 16777215.
3
INT[(M)] [UNSIGNED] [ZEROFILL]
Data numeris yang tidak memiliki komponen desimal atau disebut juga bilangan bulat. Signed range –2147483648 – 2147483647
Unsigned range 0 – 4294967295.
4
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
Integer dengan ukuran yang besar.
Signed range –9223372036854775808 – 9223372036854775807
Unsigned range 0 – 18446744073709551615.
8
FLOAT(Precision)
Bilangan pecahan. FLOAT (4) adalah single precision dan FLOAT (8) adalah double precision (lihat juga DOUBLE).
Range –3.402823466E+38F – -1.175494351E-38, 0,
-1.175494351E-38 – 3.402823466E+38F.
4
FLOAT[(M,D)]
Bilangan floating point/pecahan kecil. Tidak boleh unsigned.
Range –3.402823466E+38F – -1.175494351E-38, 0,
-1.175494351E-38 – 3.402823466E+38F.
4
DOUBLE PRECISION[[M,D]]
Bilangan floating point/pecahan normal atau bilangan real.Tidak boleh unsigned
8
REAL[(M,D)]
DECIMAL[(M,D)]
Sama seperti DOUBLE. Tidak boleh unsigned. Range sama seperti DOUBLE. Berkelakuan seperti CHAR.
8
M+D
NUMERIC[(M,D)]
Sama seperti DECIMAL.
M+D
TIMESTAMP[(M)]
Timestamp/tanda waktu otomatis. Berisi waktu pada saat tabel diakses, dalam UNIX time.
4
DATE
Untuk menyimpan informasi tanggal.
Format : ‘YY-MM-DD’, ‘YYYY-MM-DD’, dan ‘YYMMDD’.
Range 0000-00-00 to 9999-12-31.
4
TIME
Untuk menyimpan informasi waktu.
Format : ‘HH:MM:SS, ‘HHMMSS’, ‘HHMM’, ‘HH’
3
DATETIME
Untuk menyimpan informasi tanggal dan waktu.
Format : “YYYY-MM-DD HH:MM:SS”.
Range ‘0000-01-01 00:00:00’ – ‘9999-12-31 23:59:59’.
8
YEAR
Informasi tahun.
1
CHAR(M)[binary]
String dengan panjang tetap, selalu tersimpan sesuai dengan panjang yang ditentukan. Range 1 – 255 karakter. Seluruh space akhiran dibuang saat di-retriev. Di-sortir dan dibandingkan secara case insentive kecuali jika diberikan binary keyword.
M
VARCHAR(M)
[binary]
String dengan panjang variable, tersimpan sesuai dengan panjangnya saat itu. Range 1 – 255 karakter. Seluruh space akhiran dibuang saat di-retriev. Di-sortir dan dibandingkan secara case insentive kecuali jika diberikan binary keyword
L+1
TINYBLOB
TINYTEXT
Teks dengan ukuran yang pendek.
Dengan panjang maksimum 255 karakter
L+1
BLOB
TEXT
Deretan karakter yang panjang. Biasa dipakai sebagai pengganti format data text karena keterbatasan ukuran format text. Dengan panjang maksimum 65535 karakter
L+2
MEDIUMBLOB
MEDIUMTEXT
Teks dengan ukuran yang sedang. Dengan panjang maksimum 16777216 karakter
L+3
LONGBLOB
LONGTEXT
Teks dengan ukuran yang panjang.
Dengan panjang maksimum 4294967295 karakter
L+4
ENUM
Objek string yang hanya boleh mempunyai satu nilai dari nilai yang dimungkinkan (atau NULL).
1 / 2
SET
Objek string yang dapat mempunyai lebih dari satu nilai dari nilai yang dimungkinkan (atau NULL).
1 - 8

 

Mengoneksikan User dengan Server

Untuk mengoneksikan user dengan server, kita dapat melakukan dengan menggunakan aplikasi telnet. Cara penggunaannya menngunakan apliksi DOS-Command:

C:> telnet 172.21.206.2

atau

c:> telnet www2.ti.usd

Jika sukses maka kita akan terhubung dengan server dan harus memberikan nama user
Red Hat Linux release 8.0 (Psyche)
Kernel 2.4.18-14 on an i686
login:

Gunakan username seperti saat anda mengkases ftp://www2.ti.usd.

Menjalankan MySQL

Sebelum kita dapat menjalankan MySQL terlebih dahulu kita pastikan apakah daemon MySQL sudah di-start apa belum. Untuk menjalankan MySQL gunakan perintah berikut:

# MYSQL -U user -P
# password :

user disini adalah nama user kita pada MySQL, setelah di-enter maka kita diminta untuk memasukan password-nya. Jika berhasil maka akan tampil promt mysql
Welcome to the MySQL monitor. Command end with ; or \g.
Your MySQL connection id is 403 to server version 3.22.10-beta

Type ‘help’ for help.

mysql>

Catatan:
Anda telah dibuatkan user MySQL, hubungi administrator basis data MySQL. Anda juga sudah dibuatkan database sendiri sendiri.

Membuat Database

Untuk membuat database gunakan perintah berikut ini :
mysql>CREATE DATABASE nama_database;

Membuka Database

Untuk membuka suatu database gunakan perintah berikut ini :
mysql>USE nama_database

Membuat Tabel

Setelah database terbuat dan kita telah membukanya, kita seharusnya membuat tabel yang akan menyimpan data yang kita butuhkan. Setiap perintah SQL pada MySQL harus diakhiri dengan titik koma (;). Pada promt mysql ketikkan perintah berikut untuk membuat tabel.
mysql>CREATE TABLE nama_tabel
mysql>(
mysql>nama_field1    tipe_data1,
mysql>nama_field2    tipe_data2,
       . . .
mysql>);

Insert Query

Untuk mengisi data pada suatu tabel, kita gunakan perintah INSERT. Sintaks penulisannya adalah sebagai berikut :
mysql>INSERT INTO nama_tabel (field1, field2, ... ) VALUES  (nilai_field1,
nilai_field2, ... );

Select Query

Perintah ini digunakan untuk melihat data dari satu atau beberapa tabel. Sintaks penulisannya adalah sebagai berikut :
mysql>SELECT (fieldx, fieldx, ... ) FROM nama_tabel;

Untuk melihat semua kolom/field pada suatu tabel, sintaks penulisannya adalah sebagai berikut :
mysql>SELECT * FROM nama_tabel;

Menyaring Hasil Select Query dengan WHERE

Kita dapat membatasi hasil select query dengan keyword WHERE sehingga record-record yang dikeluarkan hanyalah record yang sesuai dengan kriteria yang diinginkan. Sintaks penulisannya adalah sebagi berikut :
mysql>SELECT (fieldx, fieldx, ... ) FROM nama_tabel WHERE kriteria;

Operator yang digunakan dalam kriteria WHERE
Operator Equality dan Inequality
Operator
Keterangan
=
Operan kiri sama dengan operan kanan
<> atau !=
Operan kiri tidak sama dengan operan kanan
Operan kiri lebih besar dari operan kanan
>=
Operan kiri lebih besar atau sama dengan dari operan kanan
Operan kiri lebih kecil dari operan kanan
<=
Operan kiri lebih kecil atau sama dengan dari operan kanan

Operator Logic
Operator
Keterangan
And
Operator logika ‘dan’
Or
Operator logika ‘atau’

Mensortir Data

Hasil query dapat disortir sesuai dengan kebutuhan dengan keyword ORDER BY. Sintaks penulisannya adalah sebagai berikut :
mysql>SELECT (fieldx, fieldx, ... ) FROM nama_tabel ORDER BY kriteria;

Untuk mensortir dengan urutan terbalik, gunakan keyword tambahan DESC. Sintaks penulisannya adalah sebagai berikut :
mysql>SELECT (fieldx, fieldx, ... ) FROM nama_tabel ORDER BY kriteria DESC;

Delete Query

Berfungsi untuk menghapus suatu record dengan kriteria tertentu. Sintaks penulisannya adalah sebagai berikut :
mysql>DELETE FROM nama_tabel WHERE kriteria;

Untuk menghapus seluruh record pada suatu tabel, gunakan perintah DELETE tanpa menentukan kriterianya.
mysql>DELETE FROM nama_tabel WHERE kriteria;

Update Query

Berfungsi untuk memodifikasi nilai kolom/field dari suatu record. Sintaks penulisannya adalah sebagai berikut :
mysql>UPDATE nama_tabel SET nama_field1=nilai_baru1, nama_field2=nilai_baru2,
... WHERE kriteria;

Untuk memodifikasi nilai suatu kolom/field secara keseluruhan gunakan perintah UPDATE tanpa menentukan kriterianya.
mysql> UPDATE nama_tabel SET nama_field1=nilai_baru1, ...;

PHPMyAdmin

Aplikasi ini berguna untuk mengadministrasi basisdata MySQL berbasis web. Cara penggunaanya, sbb:
1.      Jalankan internet ekplorer. Panggil http://www2.ti.usd/~MyAdmin.
2.      Berikan username dan password sebagai user MySQL.
3.      Tambahkan tabel baru. Gunakan fungsi-fungsi yang ada pada menu.


KONEKSI PHP DENGAN MySQL


Pada bagian ini akan dibahas tentang langkah-langkah yang diperlukan untuk melakukan akses ke basis data MySQL. Tapi sebagai catatan, PHP harus memiliki ekstensi koneksi ke basis data MySQL agar dapat menggunakan fungsi-fungsi koneksi ke basis data MySQL.

Membuka koneksi ke basis data MySQL

Sebelum mampu mengakses basis data server, terlebih dahulu kita harus membuka koneksi ke basis data. Untuk koneksi ke MySQL server, digunakan perintah :
<?
  $hostname = "localhost";
  $username = "";
  $password = "";

  if (!$mysql_link = mysql_connect($hostname, $username, $password))
  {
    echo mysql_error();
    exit;
  }
?>

Setelah itu variabel $mysql_link akan berisi referensi yang akan digunakan untuk proses akses basis data selanjutnya.

Query ke basis data MySQL

Setelah koneksi sukses dilakukan, sekarang tinggal melakkukan query ke basis data untuk membaca data, menyisipkan, memperbaharui, dan sebagainya pada satu atau beberapa tabel dengan menggunakan bahasa SQL. Gunakan perintah berikut untuk mengirimkan query (yang dalam contoh ini disimpan dalam variabel $myquery) ke server :
<?
  $database=”test”;
  If(!mysql_select_db($database, $mysql_link))
  {
    echo mysql_error();
    exit;
  }
  $myquery = "SELECT * FROM nama_tabel";
  if (!$mysql_result = mysql_query($myquery, $mysql_link))
  {
    echo mysql_error();
    exit;
  }
?>

Setelah proses diatas sukses, variabel $mysql_result akan berisi identifier ke hasil query yang siap digunakan oleh fungsi selanjutnya, misalnya mysql_fetch_row(), mysql_fetch_array(), dan sebagainya.


Menampilkan isi Tabel

Setelah melakukan query, perlu dilakukan proses untuk menampilkan hasil query. Sebagai contoh gunakan perintah dibawah ini untuk menampilkan dalam bentuk format tabel HTML. Misalkan hasil query yang dilakukan memiliki tiga buah field.
<table>
  <tr>
    <td>field 1
    <td>field 2
    <td>field 3
      <?
        while ($row = mysql_fetch_row($mysql_result))
        (
          echo “<tr>”;
          echo “<td>$row[0]”;
          echo “<td>$row[1]”;
          echo “<td>$row[2]”;
        }
      ?>
<table>
                       

Menambah record ke basis data MySQL

Untuk menyisipkan record ke suatu tabel, gunakan perintah berikut ini:
<?
  $myquery  = "INSERT INTO nama_tabel(field1, field2, field3)";
  $myquery .= "VALUES ($field1, $field2, $field3)";

  if (!$mysql_result = mysql_query($myquery, $mysql_link))
  {
    echo mysql_error();
    exit;
  }
?>

Pada contoh diatas kita menyisipkan record ke tabel nama_tabel field1, field2 dan field3 dengan nilai variabel $field1, $field2 dan $field3. Biasanya variabel ini adalah variabel eksternal, misalnya dari form HTML.

Menghapus record ke basis data MySQL

Untuk menghapus record ke suatu tabel, gunakan perintah berikut ini:
<?
  $myquery  = "DELETE FROM nama_tabel";
  $myquery .= "WHERE kriteria";

  if (!$mysql_result = mysql_query($myquery, $mysql_link))
  {
    echo mysql_error();
    exit;
  }
?>

Pada contoh diatas kita akan menghapus record dari tabel nama_tabel dengan kriteria dijabarkan dalam variabel kriteria. Biasanya variabel ini adalah variabel eksternal, misalnya dari form HTML.

Mengubah record ke basis data MySQL

Untuk menyisipkan record ke suatu tabel, gunakan perintah berikut ini:
<?
  $myquery  = " UPDATE nama_tabel SET field1=$field1, ";
  $myquery .= " field2=$field2, field3=$field3";
  $myquery .= " WHERE kriteria";

  if (!$mysql_result = mysql_query($myquery, $mysql_link))
  {
    echo mysql_error();
    exit;
  }
?>
Pada contoh diatas kita akan mengubah record ke tabel nama_tabel field1, field2 dan field3 dengan nilai variabel $field1, $field2 dan $field3 dan kriteria dijabarkan dalam variabel kriteria. Biasanya variabel ini adalah variabel eksternal, misalnya dari form HTML.

Tidak ada komentar: