Minggu, 27 Mei 2012

Koneksi PHP Ke Database Mysql

Koneksi PHP Ke Database Mysql

Telah dijelaskan bahwa koneksi ke database merupakan salah satu fitur PHP yang paling sering digunakan. Apalagi PHP juga telah menyediakan fungsi-fungsi built in yang mendukung koneksi database ke MySQL server. Nah, setelah Anda sedikit banyak tahu tentang MySQL, kini saatnya untuk menerapkan pengetahuan tersebut untuk membuat aplikasi web database dengan PHP dan MySQL.

Untuk keperluan contoh dan latihan, kita akan membuat sebuah database dengan MySQL. Buatlah sebuah database dengan nama datakontak sebagai berikut:

mysql> create database datakontak;

Pilihlah database tersebut sebagai database aktif.

mysql> use datakontak;

Buatlah sebuah tabel baru dengan nama tbl_kontak sebagai berikut:

mysql> create table tbl_kontak(

-> nama varchar(20),

-> alamat varchar(30),

-> telpon varchar(12),

-> email varchar(30),

-> tgl_lahir (date);

Tabel ini adalah contoh suatu tabel daftar nama kontak. Isikan tabel tersebut dengan data-data yang terdapat pada tabel di bawah ini:

Tabel Kotak : Record-record untuk tbl_kontak



nama alamat telpon email tgl_lahir !!

Anton  Jl. Angsa 1-123456 anton@anton.com 1975-01-01

Betty Jl. Belimbing 2-234567 betty@betty.net 1980-02-02

Charlie Jl. Cakra 3-345678 charlie@charlie.org 1974-03-03

Diana Jl. Durian 4-456789 diana@diana.tv 1979-04-04
Enggar Jl. Elang 5-567891 enggar@enggar.info 1982-05-05

Fifi Jl. Flamengo 6-678912 fifi@fifi.biz 1977-06-06

Gina Jl. Gelora 7-789123 gina@gina.com 1973-07-07

Kemudian buatlah sebuah file teks yang berisi teks sebagai berikut:

insert into tbl_kontak values ('Anton','Jl. Angsa 1','123456',' anton@anton.com','1975-01-01');

insert into tbl_kontak values ('Betty','Jl. Belimbing 2','234567',' betty@betty.net','1980-02-02');

insert into tbl_kontak values ('Charlie','Jl. Cakra 3','345678',' charlie@charlie.org','1974-03-03');

insert into tbl_kontak values ('Diana','Jl. Durian 4','456789',' diana@diana.tv','1979-04-04');

insert into tbl_kontak values ('Enggar','Jl. Elang 5','567891',' enggar@enggar.info','1982-05-05');

insert into tbl_kontak values ('Fifi','Jl. Flamengo 6','678912',' fifi@fifi.biz','1977-06-06');

insert into tbl_kontak values ('Gina','Jl. Gelora 7','789123',' gina@gina.com','1973-07-07');

Simpanlah file teks tersebut dengan nama misalnya tbl_kontak.sql, lalu jalankan perintah mysql dari prompt/shell sebagai berikut:

    # mysql datakontak < tbl_kontak.sql
atau

c:\mysql\bin> mysql datakontak < tbl_kontak.sql

Untuk memeriksa apakah pengisian data tersebut,berhasil, maka buatlah query sebagai berikut:

myqsl> use datakontak;

mysql> select * from tbl_kontak;

Hasil yang diberikan seharusnya akan sama persis dengan yang terlihat pada Tabel Kontak.

Nah, sekarang kita masuk ke aplikasi PHP yang akan mengakses database tersebut. Latihan pertama yang diberikan adalah mengakses atau melakukan koneksi ke server MySQL, mengambil query, dan menampilkan query tersebut ke halaman web.

            Untuk melakukan koneksi ke database MySQL digunakan fungsi mysql_connect(). Fungsi ini merupakan jembatan antara aplikasi PHP dengan database MySQL. Sintaksnya adalah sebagai berikut:

mysql_connect(host, user, password)

Server adalah nama server yang merupakan host dari MySQL server, sedangkan user dan password adalah user dan password MySQL. Contoh:

$conn = mysql_connect('localhost','root','root')

Setelah jembatan itu terbentuk, berikutnya adalah memilih database mana yang akan digunakan dalam aplikasi PHP. Fungsi yang digunakan adalah mysql_select_db(). Sintaksnya adalah sebagai berikut:

mysql_select_db(namadatabase[,koneksi])

Parameter koneksi adalah variabel yang menyimpan koneksi ke MySQL server yang dilakukan oleh fungsi mysql_connect(). Contoh:

mysql_select_db('datakontak',$conn)

Berikutnya adalah mengambil query dari database yang telah terkoneksi tersebut. Fungsi yang digunakan adalah mysql_query(). Sintaksnya adalah sebagai berikut:

mysql_query(perintahsql[,koneksi])

Contoh:

$qry = mysql_query('select * from tbl_kontak',$conn)

Yang terakhir adalah menampilkan hasil query tersebut ke halaman web. Fungsi yang digunakan adalah mysql_fetch_array(). Fungsi ini digunakan untuk memasukkan hasil query ke dalam array assosiatif dan/atau array numeris. Dalam bentuk variabel array, tentunya record-record tersebut kini bisa ditampilkan. Sintaks dari fungsi mysql_fetch_array() adalah sebagai berikut:

mysql_fetch_array(query)

Query adalah hasil query yang didapatkan dari fungsi mysql_query(). Contoh:

$row = mysql_fetch_array($qry)

Variabel $row inilah yang merupakan array yang menyimpan hasil query. Dengan demikian untuk menampilkan field-field pada query Anda dapat menggunakan $row[0], $row[1], dan seterusnya, atau $row['namafield1'], $row['namafield2'], dan seterusnya. Yang harus diperhatikan adalah bagaimana caranya kita menampilkan query tersebut sehingga sedap dipandang.

Berikut ini adalah contoh skrip bagaimana mengakses tabel tbl_kontak dari database data kontak

$host = “localhost”;

$user = “root”;

$passwd = “root”;

$db = “datakontak”;

$sql = “select * from tbl_kontak”;

$conn = mysql_connect($host,$user,$passwd);

mysql_select_db($db);

$qry = mysql_query($sql);

?>

<table border=1><tr><td bgcolor="#f32142"> Nama </td><td bgcolor="#f32142"> Alamat </td><td bgcolor="#f32142"> Telpon </td><td bgcolor="#f32142"> Email </td><td bgcolor="#f32142"> Tanggal Lahir </td></tr>

<tr><td bgcolor="#f7efde"> =$row['nama']?> </td><td bgcolor="#f7efde"> =$row['alamat']?> </td><td bgcolor="#f7efde"> =$row['telpon']?> </td><td bgcolor="#f7efde"> =$row['email']?> </td><td bgcolor="#f7efde"> =$row['tgl_lahir']?> </td></tr>

</table>

Dukungan PHP
  Memiliki banyak library yang memungkinkan untuk akses database.
  Kecepatan akses dengan menggunakan engine/driver yang khusus untuk setiap database.
  Independent terhadap database yang digunakan.
  PHP mendukung ODBC.
Prosedur Standar
  1. Connect to Server
  2. Open Database
  3. EksekusiSQL
  4. ProsesRecord Set
  5. Close Database
  Proses inti dari manipulasi database adalah pembangunan perintah SQL yang digunakan untuk melakukan query, select, insert, update dan delete.
Template Akses Database
  Membuat koneksi dengan database
                $conn= mysql_connect($host, $user, $pass);
                mysql_connect (namaserver, username ,password) perintah ini digunakan untuk melakukan
koneksi ke database server. Fungsi ini menghasilkan suatu pengenal link (link identifier) yang digunakan untuk perintah berikutnya.
  Membuka database
                $select = Mysql_select_db($nama_db);
                Mysql_select_db printah ini digunakan untuk memilih database apa yang akan diproses.
  Melakukan Query
                $result = Mysql_query(“SELECT EmployeeID from Sales”);
                Mysql_query perintah ini digunakan untuk mengeksekusi perintah SQL yang ada di parameter query.fungsi ini akan menghasilkan suatu petunjuk kehasil eksekusi (result).
  Mengambil Hasil Query à masukkan ke dalam Array
                $row = Mysql_fetch_array($result);
                Mysql_fetch_array (link result) berfungsi untuk mengambil satu baris data atau satu kolom data dari proses eksekusi query, perintah ini menghasilkan array yang dimulai dengan index 0.
  Mencetak isi Field
                echo $row[“namafield”];
                echo $row merupakan perintah yang digunakan untuk menampilkan berapa data yang dihasilkan dari eksekusi query(result).

ERD (Entity Relationship Diagram)


ERD
(Entity Relationship Diagram)

Data Modeling merupakan cara untuk menyusun dan mengorganisasikan data sehingga dapat digunakan dengan mudah oleh database.  ERD adalah salah satu cara permodelan data (data modeling).
Sebuah ERD menggambarkan data dalam konteks entitas dan hubungannya.

Tujuan utama dari sebuah ERD adalah untuk mendokumentasikan struktur logis
 dari database.

Komponen ERD
}  Entity (Entitas)
}  Attribute (Atribut)
}  Relationship (Relasi)
}  Kardinality (Kardinalitas)

Notasi ERD

Entity
Entity adalah obyek yang dapat dibedakan dengan yang lain dalam dunia nyata. Entity Set adalah kumpulan dari entity yang sejenis
Contoh:
       Individu : Pegawai, pelanggan, mahasiswa, distributor
       Tempat : ruang, bangunan, kantor, lapangan, kampus
       Objek : Buku, Motor, paket, software, produk
       Peristiwa : Pendaftaran , pemesanan, penagihan
       Konsep : Rekening, kualifikasi
Attribut
Atribut adalah karakteristik dari entity atau relationship, yang menyediakan penjelasan detail tentang entity atau relationship tersebut. Nilai Atribut  merupakan suatu data aktual atau informasi yang disimpan  pada suatu  atribut di dalam suatu entity atau relationship. Atribut digambarkan dalam bentuk oval. 
Jenis-Jenis Atribut
Jenis-jenis atribut :
  1. Key
    Atribut yang digunakan untuk menentukan suatu entity secara unik.
  2. Atribut Simple
    Atribut yang bernilai tunggal.
  3. Atribut Multivalue
    Atribut yang memiliki sekelompok nilai untuk setiap instan entity.
4. Atribut Komposit
}  Suatu atribut yang terdiri dari beberapa atribut yang lebih kecil yang mempunyai arti tertentu.
}  CONTOH:
5. Atribut Derivatif 
}   Suatu atribut yang dihasilkan dari atribut yang lain

Relasi
Relationship adalah hubungan  yang terjadi antara satu atau lebih entity.
CONTOH:
 
Kardinalitas/Derajat Relasi
}  Kardinalitas Relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas lain.
}  Macam Kardinalitas:
Ø  Satu ke Satu (One to One)
Ø  Satu ke Banyak (One to Many)
Ø  Banyak ke Satu (Many to One)
Ø  Banyak ke Banyak (Many to Many)

Tahapan Pembuatan ERD
}  Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat
}  Menentukan atribut-atribut key dari masing-masing himpunan entitas
}  Mengidentfikasi dan menetapkan seluruh himpunan relasi di antara himpunan entitas-himpunan entitas yang ada beserta foreign key-nya
}  Menentukan derajat/kardinalitas relasi untuk setiap   himpunan relasi
}  Melengkapi himpnan entitas dan himpunan relasi  dengan atribut deskriptif (non key)