Instalasi PHP

April 28, 2008

:: Instalasi PHP, MySQL, Apache

Apache merupakan webserver yang paling banyak digunakan saat ini .

menurut survey netcraft, apache digunakan pada lebih dari 62 %

webserver di internet. Hal ini disebabkan oleh beberapa sebab , di

antaranya adalah karena sifatnya yang opensource dan mudahnya

mengkostumisasikannya . diantaranya dengan menambahkan support secure

protocol melalui ssl dan konektifitasnya dengan database server melalui

bahasa scripting PHP .



catatan : sebenarnya php dapat diinstall pada berbagai macam webserver

,tetapi dipercaya memiliki kemampuan \’lebih\’ pada webserver apache.



Asumsi



Anda telah paham perintah-perintah dasar *NIX.

Anda memiliki paket development yang cukup untuk melakukan kompilasi ini.

paket-paket itu antara lain:

ANSI-C Compiler , gcc / egcs

GNU make

bison

perl 5

gzip



Persiapan

Sebelum melakukan instalasi , tentu saja kita membutuhkan file-file

yang akan diinstall . pada saat artikel ini ditulis , stable version

terakhir (pada saat artikel ini diupdate) dari file-file yang

diperlukan adalah :



Apache — http://www.apache.org/dist/apache_1.3.26.tar.gz

Mod_SSL — http://www.modssl.org/source/mod_ssl-2.8.10-1.3.26.tar.gz

OpenSSL — http://www.openssl.org/source/openssl-0.9.6g.tar.gz

MySQL — http://www.mysql.com/Downloads/MySQL-3.23/mysql-3.23.52.tar.gz

PHP — http://www.php.net/distributions/php-4.2.3.tar.gz



Untuk kemudahan , semua file itu didownload dalam satu direktori

temporer , dengan menggunakan user \’root\’ demi menghindari masalah

permission . disini kami menggunakan direktori /tmp/download . anda

bisa menempatkannya di direktori manapun sesuai keinginan anda .

Rencana

Pertama kali , kita akan melakukan instalasi MySQL dan memastikannya

bekerja . kemudian melakukan instalasi PHP , dan modssl . Dan terakhir

memastikan semuanya berjalan dengan baik . Perlu di catat bahwa :

/usr/local/apache

/usr/local/mysql

/usr/local/ssl

adalah direktori dimana kami menginstal Apache, MySQL, dan OpenSSL

.Anda dapat merubah direktori itu dengan menambahkan \”prefix\” pada

saat konfigurasi .


Keterangan: Warna hijau menunjukan output yang keluar dari sistem ,

sedangkan warna merah merupakan variabel yang mungkin berbeda pada

mesin anda !

MySQL

Mengekstrak file tarball mysql , dan melakukan \’configure\’ di dalam direktory hasil ekstrak

# cd /tmp/download/

# tar -zxvf mysql-3.23.52.tar.gz

# cd mysql-3.23.52

# ./configure –prefix=/usr/local/mysql –with-segala-optionnya

Melakukan kompilasi untuk membentuk binary mysql , dan menginstall nya pada direktori yang kita kehendaki

# make

# make install

Membuat tabel-tabel dasar mysql , dan menjalankan MySQL daemon :

# scripts/mysql_install_db

# cd /usr/local/mysql/bin

# ./safe_mysqld &

Merubah password admin mysql , secara default root MySQL tidak memiliki password , hal yang sangat berbahaya .

# ./mysqladmin -u root password \’PaSSwOrdBarU\’

Memeriksa hasil instalasi mysql

Pada saat instalasi tadi , telah terbentuk dua buah database pada mysql

anda. Yaitu database mysql yang berisi data-data yang mengontrol

database, user, password , database permission, dan hal-hal utama lain.

Serta database test . Pada artikel kali ini kita akan berlatih pula

membuat database , yang disini diberi nama test2

# mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 1 to server version: 3.23.52

Type \’help\’ for help.

mysql> show databases;

+ —————– +

| Database |

+ —————– +

| mysql |

| test |

+ —————– +

2 rows in set (0.00 sec)

mysql> create database test2;

Query OK,

1 row affected (0.02 sec)

Memasuki database test2 , kemudia membentuk tabel baru bernama books,

dengan fields : fields 1 bernama \’id\’ , berupa integer dengan panjang

maksimal 3. fields 2 bernama \’name\’ berupa karakter dengan panjang

maksimal 50. Dengan id sebagai kunci utama untuk dasar pencarian dan

indexing .

CATATAN : perintah-perintah MySQL tidak \’case sensitive\’ seperti

halnya perintah-perintah *nix . sehingga CREATE dan cReAtE merupakan

perintah yang sama .

mysql> use test2;

Database changed

mysql> CREATE TABLE books (

-> id int(3) not null auto_increment,

-> name char(50) not null,

-> unique(id),

-> primary key(id)

-> );

Query OK, 0 rows affected (0.00 sec)



Memeriksa tabel hasil buatan kita.



mysql> show tables;

+—————–+

| Tables_in_test2 |

+—————–+

| books |

+—————–+

1 row in set (0.00 sec)

mysql> describe books;

+——-+———-+——+—–+———+—————-+

| Field | Type | Null | Key | Default | Extra |

+——-+———-+——+—–+———+—————-+

| id | int(3) | | PRI | NULL | auto_increment |

| name | char(50) | | | | |

+——-+———-+——+—–+———+—————-+

2 rows in set (0.00 sec)



Sekarang menambahkan data berupa dua buah judul buku , yaitu \’PHP 4

Newbies\’ dan \’RedHat Linux 6 Server\’ pada tabel \’books\’.



mysql> INSERT INTO books (name) values(\’PHP 4 Newbies\’);

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO books (name) values(\’RedHat Linux 6 Server\’);

Query OK, 1 row affected (0.00 sec)



Kita bisa melihat hasilnya dengan command \’select\’



mysql> SELECT * from books;

+—-+————————————–+

| id | name |

+—-+————————————–+

| 1 | PHP 4 Newbies |

| 2 | Red Hat Linux 6 Server |

+—-+————————————–+

2 rows in set (0.00 sec)



Adanya penambahan angka di fields id di atas secara otomatis merupakan hasil dari pembuatan fields dengan \’auto_increment\’.

Anda bisa menghapus data dengan perintah \’delete\’



mysql> delete from books where id=1;

Query OK, 1 row affected (0.00 sec)

mysql> select * from books;

+—-+———————————–+

| id | name |

+—-+———————————–+

| 2 | Red Hat Linux 6 Server |

+—-+———————————–+

1 row in set (0.00 sec)



Cukup permainan dengan mysql , kita lanjutkan dengan yang lainnya .



PHP

Untuk melakukan instalasi PHP , anda membutuhkan source apache yang

sudah di \’configure\’ . karena itu , kita persiapkan dulu source

apachenya .



# cd /tmp/download

# tar -zxvf apache_1.3.26.tar.gz

# cd apache_1.3.26

# ./configure



Cukup . biarkan apache sampai disini . instalasi apache akan dilakukan nanti setelah semuanya beres .



# cd ..

# tar -zxvf php-4.2.3.tar.gz

# cd php-4.2.3



Melakukan \’configure\’ pada php . ingatlah untuk selalu melihat

./configure –help setiap kali melakukan kompilasi untuk melihat

option-option yang mungkin akan anda kehendaki ( seperti support imap ,

mcrypt ,mcal , dan masih banyak lagi ). instalasi seperti tertulis di

sini hanya melibatkan apache dan mysql .



# ./configure –with-mysql=/usr/local/mysql

> –with-xml

> –with-apache=../apache_1.3.26

> –enable-track-vars

# make

# make install

Kemudian copy file php.ini-dist menuju /usr/local/lib. Secara default,

php akan membaca file konfigurasi pada dir ini kecuali anda beri option

–with-config-file-path=/dir pada saat instalasi :


# cp php.ini-dist /usr/local/lib/php.ini

OpenSSL

# cd ..

# tar -zxvf openssl-0.9.6g.tar.gz

# cd openssl-0.9.6g

#./config shared –prefix=/usr/local/ssl –openssldir=/usr/local/ssl/openssl

# make

# make test

# make install

mod_ssl

# cd ..

# tar -zxvf mod_ssl-2.8.10-1.3.26.tar.gz

# cd mod_ssl-2.8.10-1.3.26

# ./configure –with-apache=../apache_1.3.26 –with-ssl=/usr/local/ssl

Apache

# cd ../apache_1.3.26

# ./configure

> –enable-module=ssl

> –activate-module=src/modules/php4/libphp4.a

> –enable-module=php4

[...ditambah semua option yang anda inginkan...]

# make

Sekarang anda dapat membuat sertifikat ssl anda sendiri. Dengan option

custom, Anda akan menjumpai pertanyaan-pertanyaan untuk keperluan

sertifikat \’sementara\’ ini, sertifikat ini sudah cukup memadai untuk

keperluan enkripsi . tapi jika anda ingin membuat usaha e-commerce ,

anda memerlukan sertifikat yang dibuat oleh perusahaan semacam Verisign

(http://www.verisign.com).

# make certificate TYPE=custom

Dan akhirnya , menginstall apache .

# make install

Saatnya untuk mengedit httpd.conf untuk mengaktifkan fungsi php pada

apache kita . pada prefix ini , file httpd.conf akan ditemukan pada

/usr/local/apache/conf/ Jika anda memakai prefix anda sendiri,

seharusnya anda tau lokasinya :) cari bagian dari httpd.conf seperti

dibawah ini . ( bagian .php3 ditambahkan sendiri untuk kompabilitas

backward dengan php3, anda juga dapat menambahkan extensi lain yang

anda inginkan ).

>

> # And for PHP 4.x, use:

> #

AddType application/x-httpd-php .php .php3

AddType application/x-httpd-php-source .phps

>

Test hasil instalas

Pertama kita lakukan test apache tanpa menghidupkan support ssl :

# cd /usr/local/apache/bin

# ./apachectl configtest

Syntax OK

# ./apachectl start

./apachectl start: httpd started

Buka browser anda , dan test dengan membuka http://localhost/ atau

http://127.0.0.1/, atau dengan ip/host komputer anda jika berhasil anda

akan mendapatkan browser memperlihatkan halaman test apache yang

berisikan \”selamat atas berhasilnya instalasi apache anda\”. anda bisa

merubah tampilan\’situs\’ anda ini dengan mengganti file di

/usr/local/apache/htdocs, atau dimanapun root document anda , bisa

diliat pada httpd.conf bagian DocumentRoot.

Buat satu file pada tempat yang terjangkau pada web, dengan ekstensi

PHP yang telah anda \’daftarkan\’ pada httpd.conf sebagai file yang

akan ditangani mod_php , yang berisi :

Hal ini bisa dilakukan dengan perintah sederhana

# echo \”\” > /usr/local/apache/htdocs/test.php

dan arahkan browser anda pada http://localhost/test.php. Jika berhasil

, anda akan mendapatkan halaman berisi data-data tentang system , php

beserta semua \’kemampuannya\’ ( pastikan mysql ada disana ), dan

tentang apache anda . Jika hasilnya tidak demikian , anda diizinkan

mengulang lagi bacaan ini dari atas :) .

Kemudian matikan apache anda dan hidupkan kembali dengan mengaktifkan ssl.

# /usr/local/apache/bin/apachectl stop

/usr/local/apache/bin/apachectl stop: httpd stopped

# /usr/local/apache/bin/apachectl startssl

/usr/local/apache/bin/apachectl startssl: httpd started

Untuk melihat keberhasilan instalasi ssl ini , arahkan kembali browser

anda pada ip/host anda dengan merubah protokol menjadi https,

https://localhost/. Jika anda menggunakan netscape, netscape akan

mengeluarkan dialog box yang berisi peringatan bahwa anda menuju

halaman secure dengan sertifikat yang tidak dikenal. Secara default ,

netscape hanya mengenali sertifikat yang dikeluarkan oleh perusahaan

resmi semacam VeriSign atau Thawte. Kenalkanlah netscape dengan

sertifikat buatan anda sendiri jika anda menghendakinya .

Tambahan :

Menghidupkan dan merestart apache dengan ssl diaktikan akan berbeda

dengan dengan tidak mengaktifkannya . Anda akan dihadapkan pada suatu

prompt yang meminta passphrase yang anda tulis pada saat membuat

sertifikat. Hal ini dikarenakan file server.key yang terenskripsi untuk

alasan keamanan. Jika anda tidak menghendaki hal ini, karena cukup

merepotkan jika harus selalu menulis passphrase saat startup dan

menyebabkan apache tidak bisa di hidupkan dengan support ssl secara

otomatis pada saat anda melakukan rebooting mesin , anda bisa melakukan

dekripsi file server.key .

# cd /usr/local/apache/conf/ssl.key

# mv server.key server.key.asli

# /usr/local/ssl/bin/openssl rsa -in server.key.asli -out server.key

Pastikan server.key baru anda yang sudah tidak terenkripsi ini tetap aman

# chmod 400 server.key

Anda bisa merestart kembali apache anda dengan option startssl, tanpa perlu menulis passphrase lagi.

Konektifitas PHP dan MySQL

Kita akan melihat konektifitas php-mysql dengan membuat skrip php yang

akan memanggil database mysql . Dibawah ini adalah contoh skrip

sederhana untuk memeriksa hal terse

Hal yang sama juga bisa anda dapatkan dengan menggabungkan tag-tag php dengan html biasa .


Jika anda membuka skrip ini lewat browser anda , akan didapatkan tabel serupa ini :








Dasar Pemrograman Java

April 28, 2008

Dasar Pemrograman Bahasa Java

  1. Setting Path dan ClassPath

Setelah anda menginstal software pengembang program Java yaitu SDK,

setelah itu anda diharapkan untuk menyeting path dan classpath dari

software Java tersebut. Hal ini diharapkan agar pada saat booting akan

mencari direktori yang ada untuk file target. Misalkan anda menginstal

pada dirktori default yaitu c:jdk.1.2.2bin maka anda harus mengetikkan

perintah sebagai berikut pada file autoexec.bat (pada window 9x) karena

file ini yang akan dieksekusi pada saat booting. Dan untuk sistem

operasi seperti window 2000 atau Xp kita harus mengesetnya pada

environment variabelnya.
PATH=C:jdk.1.2.2bin
Setelah anda mengeset path maka anda diharapkan juga untuk mengeset

ClassPath yaitu class-class lain yang digunakan oleh program Java.

Perintah untuk menyeting ClassPath adalah sebagai berikut :
SET CLASSPATH=.;C:jdk1.2.2libtools .jar;

2. Aturan Dasar

Sebelum kita mencoba untuk membuat program berbasis Java, kita harus

memperhatikan sejumlah aturan umum dari penggunaan sintaks bahasa Java :

Java bersifat case-sensitive. Jadi saat anda mengetikkan kode Java,

anda harus berhati-hati untuk menggunakan huruf besar dan kecil dengan

benar.

Secara umum, Java mengabaikan spasi kosong. Spasi kosong terdiri dari

karakter yang tidak muncul pada layar, seperti spasi, tab, baris baru,

dll. Seperti yang digunakan dalam pemformatan text.

Tanda {} adalah simbol pengelompokkan dalam Java. Mereka menandai awal dan akhir dari program.

Setiap pernyataan Java diakhiri dengan simbol ;.

Komentar ditandai dengan // yang membuat komentar pada satu baris saja

dan tanda /* — */ yang membuat komentar lebih dari satu baris

3. Mengkompilasi dan menjalankan program

Untuk menkompilasi sebuah program yang berekstensi .java kita

menggunakan program yang disebut javac.exe. Jika tidak terdapat

kesalahan pada program maka kompiler akan menghasilkan sebuah file

dengan ekstensi .class pada direktori yang sama dengan direktori file

.java tersebut. Misalnya kita ingin mengkompile file Hello.java maka

pada command prompt kita ketikan :

C:javac Hello.java

Jika tidak ada pesan kesalahan maka akan dihasilkan file yaitu

Hello.class. Untuk menjalankan file ini maka kita gunakan program

java.exe yaitu program yang digunakan untuk menjalankan program-program

Java. Misal setelah dihasilkan file Hello.class maka kita ketikkan

perintah berikut pada command prompt :

C:java Hello

Pada program java.exe tersebut terdapat 2 macam option yaitu :

java [nama file] untuk menjalankan program-program berekstensi .class

java –jar [nama file] untuk menjalankan program-program berekstensi .jar

4. Tipe Data

Ada empat macam tipe data sederhana yang dapat kita gunakan dalam program Java yaitu :

a. Integer : Terdiri dari int, short, byte, dan long.

b. Angka floating point : terdiri dari float dan double.

c. Karakter : Menyimpan satu karakter

d. Boolean : Bernilai True atau False.

5. User Interface

Pada dasarnya bahasa pemrograman Java itu berbasis text. Sedangkan JVM

tidak dapat dilihat kita hanya dapat menghidupkannya seperti pada saat

menjalankan program dengan perintah java, dan biasanya untuk menulis

source code dari java kita menggunakan program – program text editor

seperti Notepad (Window) dan KWrite (Linux). Tetapi sebenarnya pada

saat sekarang sudah banyak IDE yang dapat digunakan untuk membantu

pembuatan program dengan Java antara lain VisualAge for Java, Java

Studio, dan Jbuilder.

6. Deklarasi Variabel

Untuk mendeklarasikan sebuah variabel kita harus menentukan nama dan

tipe data yang akan digunakan. Sebagai contoh kita deklarasikan sebuah

variabel yang bertipe integer :

int num1;

Pada program Java memperbolehkan mendeklarasikan sejumlah variabel yang

memiliki tipe data yang sama dengan memisahkan nama variabel

menggunakan koma, contohnya :

int num1, num2, num3 ;

Anda juga dapat mendeklarasikan variabel dengan memasukkan inisialisasinya. Sebagai contoh :

float radius=1,22 ;

Dan juga dapat dideklarasikan sejumlah variabel dan memberikan inisialisasi pada variabel-variabel yang anda inginkan :

int num1=10, num2, num3, num4=20 ;

Pada Java string bukan merupakan tipe data sederhana melainkan sebuah

kelas. Pada kelas string terdapat fungsi-fungsi untuk melakukan

manipulasi pada string tersebut. Penggunaan string adalah sebagai

berikut :

String myName = “Agus Sugianto”;

Salah satu contoh penggunaan fungsi pada kelas string adalah sebagai berikut :

String myName = “Agus Sugianto”
System.out.println(“Panjang karakter myName adalah” + myName.length());

7. Operator – Operator Java
Operator adalah symbol khusus untuk operasi aritmatik, assignment

(tugas-tugas) dengan bentuk yang bervariasi, increment(naik) dan

decrement(turun), dan logika. Disini saya akan memberikan beberapa

contoh operator dalam Java antara lain :

a. Operator Aritmatika

Operator ini digunakan untuk operasi matematika. Contoh dari operator  ini adalah +, -, *, %, dan /

b. Operator Perbandingan

Operator ini digunakan untuk membandingkan nilai dari 2 buah data

maupun variabel. Contoh dari operator ini adalah ==, !=, < ,

><=, >=

c. Operator bitwise

Operator ini digunakan untuk operasi bit. Contoh dari variabel ini adalah &, |, ^, <<, >>, ~


Belajar MySQL untuk pemula

April 28, 2008

8 Hal Yang Harus Diketahui Programer Pemula Tentang MySQL

PHP+MySQL. Siapa yang tidak tahu bahwa duo sejoli ini adalah pasangan
terpopular di dunia open source, bahkan di seluruh Internet. PHP telah
menggeser Perl sebagai bahasa pilihan dalam membuat aplikasi Web,
terutama bagi pemula. Dan PHP hampir selalu bersanding dengan MySQL;
90–95%+ skrip PHP di http://www.hotscripts.com/ mungkin bertuliskan
“membutuhkan PHP dan MySQL”. Buku-buku PHP, termasuk untuk pemula,
tidak akan dipandang afdol kalau belum membahas MySQL. Dan programer
PHP, lambat atau cepat, mau atau tidak mau, pasti akan harus mengakrabi
software database yang satu ini.

Sayangnya, banyak programer sudah bermain-main dan memakai MySQL secara
live di situs produksi, padahal masih asing sama sekali dengan konsep
database relasional. Bahkan sebetulnya MySQL juga banyak memiliki
kekurangan dalam hal fitur SQL. Sehingga programer PHP tidak bisa
memahami dan memanfaatkan kekuatan penuh database relasional + SQL.
Buat Anda para programer pemula yang memang masih awam dengan MySQL dan
konsep database pada umumnya, tidak perlu minder atau khawatir. Di
dunia IT yang bergerak serba cepat ini memang ada terlalu banyak hal
yang harus dipelajari. Dan kebanyakan jadinya dipelajari sambil jalan,
sambil dipraktikkan. Ketika mulai membangun CMS untuk satunet.com tahun
1999 pun, saya hanya punya skill terbatas tentang SQL: hanya tahu
SELECT, UPDATE, DELETE, CREATE TABLE, dan DROP TABLE. Apa itu JOIN,
bagaimana mengubah skema tabel, bagaimana mendesain database yang baik
dan ternormalisasi, semuanya masih blank. Dan semua harus dipelajari
sambil jalan. Tapi toh akhirnya semua baik-baik saja.

Lewat artikel ini kita akan membahas hal-hal dasar apa yang perlu
diketahui agar bisa memakai MySQL dengan efektif dan efisien. Mari kita
mulai dengan hal nomor satu:

1. Tabel MySQL bukanlah array

Programer PHP atau Perl tentu saja familiar dengan array dan hash, yang
biasanya dipakai untuk menyimpan sekumpulan data terkait. Sebagian dari
mereka yang tidak familiar dengan MySQL akan cenderung menganalogikan
tabel database dengan array/hash (tepatnya, array of array atau array 2
dimensi). Tabel dipandang sama seperti sebuah array, hanya saja bisa
berukuran besar sekali dan persisten (disimpan di disk).
Cara pandang ini tidak sepenuhnya salah, karena toh dalam mengambil
record dari tabel biasanya ditampung ke dalam variabel array/hash.
Hanya saja, cara pandang ini kadang-kadang membuat programer PHP
melakukan sesuatu seperti:

$res = mysql_query(“SELECT * FROM t1″);$rows = array();while ($row =
mysql_fetch_row($res)) $rows[] = $row;echo “Jumlah record di tabel t1 =
“, count($rows);

atau membuat tabel seperti:

CREATE TABLE t2 ( f0 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, f1 INT
UNSIGNED, f2 VARCHAR(5), f3 VARCHAR(200), f4 VARCHAR(200), f5 BLOB);

Apa yang salah dengan kode PHP pertama di atas, yang bertujuan mencari
jumlah record dalam sebuah tabel? Si programer, yang terlalu terobsesi
menganggap tabel MySQL sebagai sebuah array, mencoba membangun dulu
arraynya dengan mengisi satu-persatu elemen dari hasil query agar
nantinya bisa menggunakan fungsi array count(). Masalahnya, bagaimana
kalau jumlah record ada 100 ribu? 1 juta? 10 juta? Bukan itu saja,
selesai di-count() variabel $rows langsung dibuang lagi! Padahal, ada
cara yang jauh lebih efisien:

SELECT COUNT(*) FROM t1

Hasil querynya hanyalah sebuah record saja, tak peduli berapa pun ukuran tabel t1.
Lalu apa yang salah dengan kode SQL kedua? Si programer Perl, dalam hal
ini, terobsesi ingin mengambil tiap record di tabel dengan fungsi DBI
$sth->fetchrow_array(

@row = $sth->fetchrow_array();print $row[0]; # f0print $row[1]; # f1print $row[2]; # f2# …

Enak bukan? Elemen ke-0 berisi nilai field f0, elemen ke-1 field f1,
dst. Masalahnya, kemudahan ini mengorbankan nama field yang menjadi
sangat tidak deskriptif. Belum lagi kalau tabel perlu diubah dengan
menyisipkan field-field lain di antara field yang sudah ada. Atau
field-field lama perlu dihapus. Semuanya akan menjadi mimpi buruk.

Sebagian pembaca mungkin geleng-geleng kepala. Apa benar ada programer
PHP dan Perl yang melakukan kedua hal di atas? Percaya deh, ada. Saya
pernah harus ketiban getah memaintain tabel dengan nama field kriptik
seperti ini.

2. Bahasa SQL dan Fungsi-Fungsi MySQL

MySQL adalah database SQL bukan? Sayangnya, programer PHP pemula kadang
terbatas sekali pengetahuan SQL-nya. Padahal, untuk menggunakan
database MySQL dengan efektif, ia tidak boleh malas mempelajari bahasa
kedua, yaitu SQL. Jika tidak belajar SQL, maka ada kemungkinan Anda
akan melakukan hal-hal seperti:
$res = mysql_query(“SELECT * FROM bigtable”);while ($row =
mysql_fetch_assoc($res)) { if ($row['age'] >= 40) { echo “Ditemukan
kustomer yang berusia lebih dari 40 tahun!\n”; break; }}

Apa salah kode di atas? Si programer PHP mencoba mensimulasikan klausa
WHERE SQL dengan melakukan pengujian kondisi di kode PHP. Padahal, yang
seharusnya dilakukan adala
SELECT * FROM bigtable WHERE age >= 40

Ini amat mengirit trafik client/server karena tidak semua record harus dikirimkan dari MySQL ke program PHP And
Sebagian pembaca mungkin geleng-geleng kepala. Apa benar ada programer PHP yang seperti ini? Percaya deh, ada.

SQL sudah menyediakan cara untuk menyortir data, memformat tampilan,
mengelompokkan dan memfilter record, dsb. MySQL juga terkenal banyak
menyediakan fungsi-fungsi, mulai dari manipulasi tanggal, angka,
string, dsb. Kenali SQL dan fungsi-fungsi MySQL; jangan duplikasikan
ini semua di PHP sebab akan lebih efisien jika dilakukan di level MySQ
Ini contoh lain programer PHP yang tidak memanfaatkan fasilitas dari MySQL:

$res = mysql_query(“SELECT * FROM customers”);while ($row =
mysql_fetch_assoc($res)) { # format semula yyyy-mm-dd…
preg_match(“/(\d\d\d\d)-(\d\d?)-(\d\d?)/”, $row[date], $matches); # …
dan ingin dijadikan dd/mm/yyyy $tanggal =
“$matches[3]/$matches[2]/$matches[1]“; echo “Nama=$row[name], Tanggal
lahir=$tanggal
\n”;}
Padahal MySQL sudah menyediakan fungsi pemformatan dan manipulasi tanggal

$res = mysql_query(“SELECT name, DATE_FORMAT(date,’%d-%m-%Y’) as
tanggal “. “FROM customers”);while ($row = mysql_fetch_assoc($res)) { #
tidak perlu capek-capek manipulasi string lagi… echo
“Nama=$row[name], Tanggal lahir=$row[tanggal]
\n”;}

Poin no. 2 ini kedengarannya klise, tapi, seperti nasihat Inggris bilang: know thy tools.