Modul_PHP
Modul_PHP
Modul I
Generasi pertama sebuah halaman web adalah di publish secara statis, yang tentu
saja mengandalkan HTML, gambar statis, text yang tidak dapat diposisikan secara pas
sesuai dengan koordinat yang diinginkan. Tentu saja halaman web seperti itu adalah
halaman yang sangat basic sekali. Untuk mendapatkan hasil yang baik dari teknik
tersebut diatas, kita memerlukan tenaga ahli HTML atau seorang designer web handal.
Kemudian untuk melakukan update halaman web yang sudah kita buat itu, maka hal
yang cukup merepotkan yaitu dengan meng-edit HTML itu secara manual atau dengan
menggunakan editor. Selain itu halaman web yang statis tidak kompatibel dengan
basis data.
Maka dari itu kita memerlukan halaman web yang aktif, tidak statis dan dapat
mengakses basis data. Sebuah halaman web yang aktif akan selalu berubah-ubah
tergantung isi dari basis data ataupun tergantung event yang kita buat di level aplikasi.
Sehubungan dengan hal itu maka diciptakanlah teknologi pemrograman web untuk
memungkinkan para pengembanga web membuat halaman web yang dinamis
tersebut. Pada dasarnya kita dapat membagi ke dalam dua bagian pemrograman web
tersebut, yaitu Client Side Programming (Pemrograman sisi Client) dan Server Side
Programming (Pemrograman sisi server).
Training PHP MySQL 2/85
3.1 Client Side Programming
Yang dimaksud client side programming adalah bahwa eksekusi program yang kita
buat itu adalah terjadi di client. Client disini adalah komputer yang meminta layanan
http. Komputer yang meminta layanan http akan menjalankan sebuah browser Internet
seperti Internet Explorer dari Microsoft ataupun Netscape Navigator dari Netscape.
Pemrograman client side ini berarti akan mengandalkan browser yang dijalankan di client
karena eksekusi program akan dilakukan di client yang berarti di eksekusi oleh browser
yang dijalankan di komputer client. Berikut adalah beberapa teknologi client side yang
sering digunakan:
ActiveX Controls
ActiveX Control adalah program yang berdiri sendiri, yang biasa disebut komponen
yang ditulis dalam bahasa C++ atau Visual Basic. Ketika ditambahkan ke sebuah
halaman web, program ini mempunyai beberapa fungsi, seperti timer, client
authentication atau akses terhadap basis data. Obyek ActiveX control ditambahkan ke
HTML dengan menggunakan tag <OBJECT>, yang sekarang ini sudah menjadi
standard HTML. ActiveX control dapat dieksekusi oleh browser atau server ketika
mereka ditempelkan ke dalam sebuah halaman web.
ActiveX control dikembangkan oleh Microsoft, dan meskipun kompatibel dengan
HTML standar, tapi tidak di-support oleh Netscape browser yang tanpa
menggunakan ActiveX plug- in. ActiveX control hanya dapat berfungsi di Internet
Explorer (meskipun begitu beberapa fungsi ActiveX disediakan untuk Netscape
melalui plug-in dari Ncompass).
Java Applets
Applets adalah sebuah program yang ditulis dengan menggunakan bahasa
pemrograman Java yang bisa dimasukkan ke dalam halaman HTML, sama seperti
sebuah image dimasukkan ke halaman HTML. Ketika kita menggunakan browser
dengan Java diaktifkan untuk melihat halaman yang memuat applet, maka kode
applet ditransfer ke sistem kita dan dieksekusi oleh browser. Karena applet ditulis
dengan Java, maka applet ini mempunyai kelebihan-kelebihan Java, seperti bisa
menjadi stand-alone dan cross platform.
Client Side Script dan DHTML
Client side scripting dikembangkan untuk menyediakan alternatif untuk mengubah
HTML yang statis menjadi dinamis. Ketika browser menemukan instruksi-instruksi
yang berupa script yang ditempel di dalam kode HTML, maka browser akan
menterjemahkannya ke dalam HTML murni (dengan asumsi browser mengerti
bahasa scripting yang ditemukannya). Ini memungkinkan para pengembang untuk
membuat halaman web yang interaktif yang lebih banyak mempunyai fungsi
daripada sebuah HTML murni.
JavaScript adalah bahasa script yang utama digunakan di Internet. Bahasa script ini
di-support oleh Netscape Navigator (mulai versi 2) dan Microsoft Internet Explorer
(mulai versi 3). Client- Side VBScript , hanya didukung oleh Internet Explorer, dan
maka dari itu bukan merupakan pilihan yang baik dalam scripting Internet sehari-
hari, tetapi mungkin kadang-kadang digunakan dalam membuat aplikasi Intranet
yang semua produknya berasal dari Microsoft.
Dynamic HTML adalah script yang lebih ditujukan untuk membuat respresentasi dari
sebuah halaman HTML. DHTML mempunyai lebih banyak akses ke fitur-fitur seperti
kemampuan untuk menganimasikan halaman dan menempatkan gambar grafis
dan teks secara tepat dengan menggunakan absolute positioning.
Tentang PHP
PHP (merupakan akronim dari : PHP Hypertext Preprocessor), adalah bahasa
scripting sisi server (server-side) yang bisa ditempel di HTML (embedded). Ini berarti
PHP bisa digunakan bersama-sama dengan dokumen HTML sehingga kita bisa
membuat HTML itu dinamis sehingga bisa membuat halaman web lebih dinamis.
Kita bisa membuat aplikasi web dengan lebih baik yang tidak sekedar pajangan-
pajangan informasi yang susah untuk di-update.
Tetapi mengapa memilih PHP?, padahal masih banyak bahasa lain seperti ASP,
Cold Fusion, Perl, Java dan lainnya. Penulis memilih PHP sebagai bahasa server side
scripting karena kesederhanaannya (simplicity), PHP mempunyai native API untuk
koneksi ke berbagai database sehingga otomatis koneksinya akan lebih cepat
dibandingkan melalui ODBC (Open Database Conectivity) yang merupakan perantara
antara bahasa scripting dengan database, sebagaimana yang selalu dilakukan oleh
ASP misalnya. Selain itu PHP sangat cross-platform, yang berarti dapat berjalan di
platform manapun baik di Windows atau pun di Unix. Berikut adalah beberapa
keunggulan PHP selengkapnya:
1. Eksekusi scripting dilakukan sangat cepat sehingga meningkatkan throughput dari
server.
Training PHP MySQL 5/85
2. Simplisitasnya menjadikan penulisan program PHP lebih pendek dan sederhana
sekaligus mudah dipahami.
3. Dukungan koneksinya hampir ke semua database yang beredar sekarang ini
termasuk MySQL, PostgreSQL, mSQL, Sybase, Informix, Interbase, Oracle, SQL
Server, Ms Access, dBase dan masih banyak lainnya.
4. Selain menggunakan ODBC, PHP mempunyai native API untuk koneksi ke
database, sehinngga akses ke database akan lebih cepat karena mengakses
langsung ke database- nya (tidak melalui ODBC terlebih dahulu).
5. PHP dapat dipasang di beberapa web server seperti PWS, IIS, Apache, Xitami,
Netscape Enterprise, AOL server dan Oreilly Wesite Pro. PHP juga dapat
dipasang dengan mode CGI atau ISAPI.
6. PHP dapat berjalan di berbagai platform seperti Windows dan Unix. Ini
memungkinkan programmer misalnya melakukan development di Windows untuk
kemudian di pasang di Linux.
7. PHP adalah software open-source yang gratis dan bebas didistribusikan kembali di
bawah lisensi GPL (GNU Public License). Source PHP dan file binernya dapat
secara bebas didapatkan di Internet, yaitu di situs resminya :
http://www.php.net . Pengembangan PHP yang begitu cepat sehingga bug PHP
dapat secara cepat dilaporkan dan diatasi hanya dalam hitungan hari bahkan
hitungan jam.
HTTP request
(http://website)
Web
Server
<HTML>
<b>Ini adalah halaman web</b> HTTP
</HTML> Response
Client
Gets Page
HTTP Request
<HTML>
<?php PHP code ?>
</HTML>
Web
Server
Server Interprets PHP code
Response
<HTML>
<b>Hello</b>
Client </HTML>
Hello
Training PHP MySQL 7/85
Kode PHP disimpan (saved) sebagai sebuah file plain text dalam format ASCII,
jadi kita bisa menulis kode/program PHP di hampir semua text editor, seperti vi,
emacs, dan Notepad. Penggunaan editor HTML seperti Dreamweaver atau
Homesite akan sangat membantu dalam menulis program PHP.
Seperti dijelaskan sebelumnya, program PHP dapat dimasukkan / ditempel di
halaman HTML, yang sebelumnya dieksekusi di server sebelum dikirim ke
browser. Contoh berikut ini akan menjelaskannya :
<HTML>
<?php
echo (“Text generated by PHP.”);
?>
</HTML>
Sebuah file .html biasa akan dilewatkan begitu saja oleh HTTP server (web
server). Web server tidak akan mencoba untuk memproses isinya dan akan
langsung dikirim balik ke browser karena adalah tugas browser untuk memproses
file .html seperti itu. File yang berekstensi .php akan diperlakukan berbeda.
Pertama web server akan mencari kode PHP. Pertama-tama Web server akan
berjalan dengan “HTML mode”. Dengan kata lain pertama kali server
menjalankan sebuah file akan mengasumsikan bahwa isi file tersebut hanya
berisi HTML, CSS, JavaScript, teks sederhana dan beberapa teks lain yang bisa
langsung dilewatkan ke browser tanpa harus diterjemahkan terlebih dahulu.
Web Server akan masuk ke “PHP mode” ketika server menemukan tag php, yang
digunakan untuk melakukan ‘escape’ atau keluar dari kode HTML. Ada beberapa
cara untuk melakukannya :
Pada contoh diatas, penulis menggunakan instruksi proses XML seperti ini :
<?php echo (“kode PHP ditulis disini”); ?>
Juga bisa menggunakan instruksi proses SGML seperti ini:
<? echo (“kode PHP ditulis disini”); ?>
Cara yang ini agak sedikit merepotkan, dan pasti sangat familiar bagi para
pemrogram JavaScript dan VBScript. Gunakan hanya jika editor yang
digunakan tidak bisa menangani instruksi pemrosesan:
<SCRIPT LANGUAGE=’php’> echo (“kode PHP ditulis disini”);</SCRIPT>
Mulai PHP 3.0.4, kita bisa mengkonfigurasi PHP untuk menggunakan karakter
‘escape’ ASP:
<% echo (“kode PHP ditulis disini”); %>
HTTP server akan langsung mengerti ketika menemukan karakter ‘escape’ diatas.
Setelah menemukan mekanisme karakter escape seperti diatas, maka web server
akan langsung memproses kode PHP itu, kemudian hasil dari proses tersebut
akan dikirim ke browser berupa HTML biasa. Ketika http server menemukan
closing tag ?> maka server pun akan kembali ke mode HTML dan kembali
mengirim dokumen web tanpa melakukan suatu proses di sisi server.
Pada contoh diatas statement PHP nya adalah :
echo (“Text Generated by PHP.”);
Perlu diperhatikan bahwa setiap diakhir sebuah statement PHP harus diakhiri
dengan titik koma (;). Jika tidak maka akan muncul pesan kesalahan. Statement
echo diatas akan menghasilkan output ke browser. Dalam kasus ini kita
mengistruksikan PHP untuk mencetak output ke browser sebuah string “Text
generated by PHP”. (Beberapa programmer PHP menggunakan statement print
yang fungsinya sama dengan echo).
Training PHP MySQL 8/85
Statement echo boleh menggunakan tanda kurung ataupun tidak, jadi dua
statement echo berikut ini akan menghasilkan hal yang sama :
echo (“Text generated by
PHP.”); echo “Text generated
by PHP.”;
Simpan contoh diatas dengan nama misalnya ‘test.php’ ke directory root atau
direktori yang termasuk didaftarkan di web server. Jika file test.php di akses lewat
browser maka halaman web ini akan menampilkan tulisan “Text generated by
PHP”, seperti yang terlihat dibawah ini :
Untuk melihat apa yang terjadi di halaman ini, kita bisa lihat source code-nya
dengan klik
view->source:
Gambar 2.5 Tampilan source code test.php yang diterima oleh browser
Bisa dilihat bahwa semua perintah PHP beserta tag-nya menghilang, dan hanya
terlihat tag yang di luar tag PHP yaitu tag <HTML> dan string yang ingin kita
tampilkan. Ini karena script PHP dieksekusi di server, sebelum halaman ini di
kirim ke browser.
Variabel di PHP bersifat seperti penampung , jadi tipe data setiap variabel
bergantung dari isinya. Setiap variabel ditulis dengan didahului tanda ‘$’.
Misalnya :
<?
$username = “Sandi”; // $username bertipe string
$umur = 21; // $umur bertipe integer
$umur = 21.5; // sekarang $umur bertipe double
?>
Modul II
PHP dan HTML
PHP merupakan sebuah bahasa scripting yang menyatu dengan tag-tag HTML,
dieksekusi di server, dan digunakan untuk membuat halaman WEB yang dimamis
<HTML>
Simpanlah contoh tersebut dengan nama test.html.
Setiap file HTML harus memiliki paling sedikit bagian seperti diatas, dan
<HEAD>
disimpan dengan extension
<TITLE>HTML
Judulatau HTM.
Halaman TagSITE</TITLE>
WEB HTML biasanya berpasangan,
tag pembuka </HEAD>
dan penutup menggunakan kata yang sama, bedanya adalah,
untuk tag penutup ada tanda slash “/”
<BODY>
Berikut ini contoh-contoh tag HTML
Isi web site dituliskan pada bagian BODY
</BODY>
Tag HTML Kegunaan
<HTML> Merupakan penanda untuk setiap file HTML
<HEAD> merupakan bagian Head dari HTML
<TITLE> Judul dari halaman WEBSITE
<BODY> Pada bagian ini dituliskan isi dari WEBSITE
<CENTER> membuat tulisan ditengah halaman
<TABLE> membuat tabel
<FORM> membuat form isian
<HTML>
simpan contoh diatas dengan nama test.php
Pada file tersebut ada satu baris perintah php yaitu
<HEAD>
<TITLE> Pemrograman PHP</TITLE>
</HEAD>
Perintah<?
dibuka dengan tag <? dan ditutup dengan tag ?> , dan setiap baris perintah
echodengan
PHP diakhiri “Baris ini ditulis
tanda dengan
titik koma (kode PHP”; PHP dapat disisipkan disembarang
; ). Perintah
?> <BODY>
tempat dari file diatas.
<CENTER>
Sebuah file PHP<?dapat juga keseluruhannya berisi perintah PHP. sebagai contoh, file
echo “Baris
test.php diatas dapat ini ditulis dengan
juga dituliskan kode
sebagai PHP”;
berikut:
?>program php yang menuliskan keseluruhan
//contoh
</CENTER>
program php
<?
echo ("
<HTML>
<HEAD>
<TITLE> Pemrograman PHP</TITLE>
</HEAD>
<BODY>
<CENTER>
Baris ini ditulis dengan kode PHP
</CENTER>
</BODY>
</HTML>" );
Spasi tidak berpengaruh pada penulisan baris perintah PHP, hal ini memudahkan
dalam pengaturan penulisan program agar program dapat lebih mudah dibaca.
Untuk penulisan komentar program (baris yang tidak dieksekusi oleh program) ada 3
style yang dapat digunakan, yaitu :
1. C style, komentar diawali dengan tag /* dan diakhiri dengan * ?, style ini
digunakan untuk komentar yang lebih dari satu baris.
Training PHP MySQL 12/85
2. C++ style, komentar ini diawali dengan tag // dan hanya berlaku untuk satu
baris komentar, untuk baris berikutnya harus diawali dengan tag // lagi
3. Bourne Shell style, diawali dengan tag # untuk satu baris komentar.
contoh:
$decimal = 16;
$heksadesimal = 0x10;
$octal = 020
$desimal_minus = -16; #bilangan negatif
2. Floating Point
Floating point merepresentasikan bilangan pecahan atau bilangan desimal.
Range tipe ini antara 1.7308 sampai 1.7E+308. Floating point dapat dinyatakan dalam
bentuk desimal dan dalam bentuk pangkat
contoh :
$decimal operasi-operasi
Untuk menangani = 0.017; data bilangan yang membutuhkan tingkat
$pangkat= 17.0E-3
ketelitian tinggi, PHP menyediakan fungsi fungsi BC (Binary Calculation)
3. String
Sebuah data dengan tipe string dinyatakan dengan mengapitnya menggunakan
tanda petik tunggal (‘ ‘) maupun ganda (“ “)
contoh:
$str1 = ‘Ini sebuah string’;
$str2 = “Ini sebuah string”;
Perbedaanya adalah , jika kita menggunakan tanda petik tunggal, maka pada
string itu tidak dapat kita masukkan variabel dan escape sequence handling,
coba jalankan program berikut ini
<HTML>
<HEAD>
<TITLE> String dengan tanda petik tunggal dan
ganda</TITLE>
</HEAD>
<?
//string01.php
$var=”string”;
$str1=”contoh $var dengan tanda petik ganda”;
Training PHP MySQL 13/85
echo(“<br>$s
tr1”);
echo(“<br>$s
tr2”);
?>
<BODY>
Coba jalankan di browser, diperoleh hasil pada string yang diapit tanda petik ganda
dapat digunakan variabel $var dan tercetak isinya, yaitu “string”, sebaliknya jika
diapit tanda petik tunggal $var tercetak apa adanya
str1 akan menghasilkan : Contoh string dengan tanda
petik ganda str2 akan menghasilkan : Contoh $var
dengan tanda petik tunggal.
Escaped Characters
Sequence Meaning
\n baris baru
\r carriage return
\t tab horizontal
\\ backslash
\$ tanda dollar
\” tanda kutip
\[0-7]{1,3} Urutan karakterk yang sesuai dengan ekspresi
reguler adalah karakter yang berada dalam
notasi oktal
\x[0-9A-Fa- urutan karakter yang sesuai dengan ekspresi
f]{1.2} reguler
adalah karakter yang berada dalam notasi
heksa
4. Arrays
Array adalah sebuah data yang mengandung satu atau lebih data, dan dapat
diindeks berdasarkan numeric, maupun string (associative array). Data yang
dikandung oleh sebuah data array dapat dari tipe data lainnya bahkan juga dapat
bertipe array (multiple array). PHP membolehkan elemen dari array terdiri atas
data dengan tipe yang berbeda-beda.
contoh:
<HTML>
<HEAD>
<TITLE> Contoh tipe data array</TITLE>
</HEAD>
<BODY>
<?
//array01.php
$arr[]=1;
$arr[]=’10’;
$arr[]=”15”;
$arr[]=’A’;
$arr[]=”string”;
$buah[apel] = “merah”;
$buah[jeruk]=”kuning”;
$buah[mangga]=”hijau”;
for ($i=0;$i<5;$i++)
{
echo (“<br> variabel \$arr[$i] nilainya adalah : $arr[$i] ”);
}
Training PHP MySQL 14/85
?>
</BODY>
Tipe data string meskipun didefinisikan sebagai salah satu tipe data primitif,
tetapi dapat pula dipandang sebagai sebuah array, dan dapat dimanipulasi layaknya
sebuah data bertipe array.
contoh
Training PHP MySQL 15/85
<HTML>
<HEAD>
<TITLE> String sebagai array</TITLE>
</HEAD>
<BODY>
<CENTER>
<?
//array02.php
$str=”Data String”;
for ($i=0;$i<11;$i++)
{
echo (“<br> $str[$i] ”);
}
?>
</CENTER>
</BODY>
</HTML>
$fruits =
$this->str = $str;
}
}
$class = new
Test; echo
$class->str;
$class->set_var("Variabel
Object"); echo("<br> $class-
>str");
?>
Dalam program object.php diatas, dibuat sebuah class dengan nama test,
kemudian dibuat sebuah data object test dari class test, data ini dicetak dan
keluarannya adalah “variabel class”
Class test juga mempunyai sebuah method dengan nama set_var, method ini
digunakan untuk memberi nilai pada variabel $str. Data Object test yang
dibuat atau instance dari class test akan mempunyai semua properties dari
class test, termasuk method-methodnya, sehingga sebuah data bertipe object
juga dapat mengandung sebuah method(fungsi). Pada program diatas method
set_var pada object test kita pakai untuk mengubah nilai variabel $str menjadi
“Variabel Object” kemudian mencetaknya.
Nilai Boolean
Setiap tipe data PHP memiliki nilai Boolean yang spesifik menyertainya, nilai
Boolean ini biasanya digunakan pada struktur kontrol program seperti IF atau
IF-ELSE
Untuk integer dan floating point, nilai booleannya adalah false jika nilainya
0, selainnya adalah true
Untuk string, nilai booleannya adalah false jika string kosong (“”), selainnya
adalah true
Untuk tipe data array, akan bernilai false jika elemennya kosong, dan
sebaliknya adalah true
untuk tipe data object, bernilai false jika tidak ada variabel atau
fungsi/method yang terdefinisi didalamnya, dan sebaliknya bernilai true
untuk variabel yang belum dibuat atau didefinisikan nilainya false.
PHP memiliki 2 keyword true dan false, true merepresentasikan nilai integer 1
dan false merepresentasikan string kosong, Keyword true dan false tidak case
sensitive.
$var=1
+1.0;
echo(“<br
>”);
echo “\$var = “.$var.” dan bertipe ”.gettype($var) ;
Hasilnya adalah sebagai berikut:
Perubahan pada tipe data diatas juga dapat dilakukan secara eksplisit yang
biasa disebut dengan type casting. Casting pada sebuah variabel dilakukan
dengan menuliskan jenis tipe data yang diinginkan di depan nilai dari variabel
tersebut
Variabel
Variable dinyatakan dengan tanda $ dibelakang nama variabel.
Nama variabel dapat terdiri atas angka, huruf dan underscore.
Penamaan variabel bersifat case sensitive artinya penggunaan huruf kecil
dan huruf besar dibedakan.
Deklarasi sebuah variabel selalu diikuti dengan pemberian (assignment) nilai
dari variabel tersebut, sehingga jika sebuah variabel belum memiliki nilai,
tidak perlu dideklarasikan terlebih dahulu.
Pemberian nilai variabel yg mengacu pada nilai dari variabel lain yang
menjadi referensinya dinyatakan dengan tanda & didepan nama variabel
referencenya.
Contoh:
<?
//var_reference.php
$nama01= “Anita Rachman”;
$nama02 = &$nama01;
echo (“<br> Variabel \$nama01 =
$nama01”); echo (“<br> Variabel \
$nama02 = $nama02”);
Variabel Scope
Variabel scope bergantung pada konteks dimana variabel tersebut dinyatakan.
Variabel yang dinyatakan didalam suatu fungsi akan memiliki scope lokal hanya
didalam fungsi itu saja. Variabel yang dinyatakan di dalam bagian sebuah script
program akan memiliki scope global dalam script tersebut, variabel dalam
sebuah file yang dimasukkan akan juga memiliki sifat global. Contoh:
<?
Bila program diatas dijalankan, hasilnya adalah sebagai berikut:
//a.inc
$a =
variabel iniaisyah;
terletak pada
?>
function c Cantika
<? ini terletak pada badan
variabel
//scope.php
program Aisyah
Budi
include “a.inc”; //memanggil file lain yang berisikan variabel
$b =
Terlihat “Budi”;$a yang terletak pada file a.inc dapat dikenali pada badan
variabel
program scope.php melalui fungsi include, tetapi tidak dikenali pada function
//deklarasikan
c(). Demikian pula halnya variabel $b yang dideklarasikan pada badan program
fungsitidak
scope.php function
dapat dikenali pada function c(). Sebaliknya variabel $c yang
c() {
dideklarasikan pada function c() hanya dikenali di dalam function c() saja.
$c = “Cantika”;
Variabelecho$a(“<br>
dan $b variabel ini tercetak
dapat pada
dibuat dikenali dalam function c() dengan
function
memberinya c”);global.
sifat
echo(“<br>$a<br>$b<br>$c”);
} <?
c(); //memanggil fungsi c
echo (“<br> variabel ini tercetak pada badan
program”); echo(“<br>$a<br>$b<br>$c”);
Training PHP MySQL 19/85
//scope.php
//deklarasikan
fungsi function
c() {
global $a,$b;
$c = “Cantika”;
echo (“<br> variabel ini tercetak pada
function c”);
echo(“<br>$a<br>$b<br>$c”);
}
c(); //memanggil fungsi c
echo (“<br> variabel ini tercetak pada badan
program”); echo(“<br>$a<br>$b<br>$c”);
hasilnya sebagai berikut:
Predefined Variabel
PHP memiliki variabel-variabel yang telah didefinisikan sebelumnya, variabel ini
nilainya bergantung pada beberapa faktor, seperti jenis server, setting server
dan lain-lain. Predefined variabel selengkapnya dapat dilihat dengan memakai
fungsi phpinfo()
//info.php
<HTML>
<HEAD>
<TITLE> PHP INFO </TITLE>
</HEAD>
<BODY >
<?
phpinfo();
?>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE> Contoh Form </TITLE>
</HEAD>
<BODY>
<P>
Nama : <INPUT TYPE="text" NAME="nama"> <BR>
Email :<INPUT TYPE="text" NAME="email"> <BR>
Jenis Kelamin : <INPUT TYPE="radio" NAME="sex" value= "Pria"> Pria
coba simpan file diatas dengan nama form.php, kemudian jalankan di browser.
Pada saat tombol KIRIM di klik, form akan mengirimkan ke file tujuan yang
ditunjukkan oleh atribut action. Dalam program diatas, file yang dituju adalah
$PHP_SELF yaitu file form.php itu sendiri. Ada 4 variabel yang dikirimkan yaitu,
$nama, $email, $sex dan $submit, nama variabel itu sesuai dengan nama
elemen kontrol . Pada baris ketiga program form.php terdapat sebuah if kontrol
yang memeriksa apakah ada variabel yang dikirimkan. Jika ada, variabel
tersebut akan dicetak.
Konstanta
Konstanta mirip dengan sebuah variabel, hanya saja nilainya tetap dan
tidak perlu memakai tag $.
Konstanta dideklarasikan menggunakan fungsi define().
Konstanta dideklarasikan hanya satu kali dan nilai tidak dapat diubah atau
didefinisikan lagi pada keseluruhan program.
Contoh
<?
//
konstanta.php
define (“phi”,
3.14);
$r_lingkaran = 5;
$luas_lingkaran = phi * $r_lingkaran *
$r_lingkaran; echo “<br> Jari-jari sebuah
Training PHP MySQL 21/85
Predefined Konstanta
PHP menyediakan beberapa built-in konstanta, diantaranya
_FILE_ : menyatakan nama file yang sedang diproses
_LINE_ : menyatakan baris program yang sedang
diproses PHP_VERSION : versi PHP yang digunakan
PHP_OS : Sistem Operasi yang
digunakan TRUE : NILai Boolean true
FALSE : Nilai Boolean False
Training PHP MySQL 22/85
Modul III
Operator Aritmatika
Operator aritmatika digunakan untuk operasi-operasi dasar tambah,
kurang, bagi. Berikut ini tabel operator aritmatika
Contoh Operasi Hasil
$a + $b Penjumlahan $a ditambah $b
$a - $b Pengurangan Selisih $a
dengan
$b
$a * $b Perkalian $a dikali $b
$a / $b Pembagian $a dibagi $b
$a % $b Modulus Sisa hasil $a
dibagi
$b
Operator Assignment
Assignment adalah operasi
pemberian/pendefinisian nilai. Contoh operator
assignment antara lain =, +=, -=, *=, .=
<?
//contoh contoh operator assignment
$a = 1 ; //a diberi nilai 1
$a+=1; //ekivalen dengan $a=$a+1 , hasilnya $a
bernilai 2
$a -=1; //ekivalen dengan $a=$a-1 , hasilnya $a
bernilai 1
$a *=2; //ekivalen dengan $a=$a*2 , hasilnya $a
bernilai 2
Operator Bitwise
Operator bitwise digunakan untuk operasi-operasi
bilangan binari Tabel operator bitwise
Operator Operasi Contoh
$a & $b And 11 (1011
binari) &
13 (1101 binari)
-------------------- hasilnya
9 (1001 binari)
$a | $b Or 11 (1011 binari)
|
13 (1101 binari)
-------------------- hasilnya
15 (1111 binari)
$a ^ $b Xor 11 (1011 binari)
^
13 (1101 binari)
-------------------- hasilnya
Training PHP MySQL 23/85
6 (0110 binari)
~$a Not ~ 11 equals 12 (desimal)
$a << $b Shift left 11 (1011 binari)
<<2
hasilnya
2 (10 binari)
$a >> $b Shift right 11(1011 binari)
>>2
hasilnya
44(101100
binari)
Operator Perbandingan
Operator perbandingan digunakan pada struktur control program seperti if, elseif,
di mana dilakukan perbandingan antara dua nilai.
Tabel Operator Perbandingan
Contoh Operasi Contoh
$a == $b Sama dengan True jika $a sama dengan $b
$a === Identik True jika $a sama dengan
$b $b, dan memiliki tipe
yang sama (PHP4)
$a != $b Tidak sama True jika $a tidak sama
dengan dengan
$b
$a < $b Lebih kecil dari True jika $a lebih kecil dari
$b
$a <= $b Lebih kecil True jika $a lebih kecil
atau sama atau sama dengan $b
dengan
$a > $b Lebih besar True jika $a lebih besar dari
dari $b
$a >= $b Lebih True jika $a lebih besar
besar atau sama dengan $b
atau sama
dengan
Operator Logika
Tabel operator
logika
Contoh Operasi Contoh
$a and And True jika $a dan $b keduanya bernilai
$b true
$a or $b Or True jika salah satu atau keduanya
$a, $b bernilai true
$xor $b Xor True jika salah satu $a atau $b
bernilai
true, tetapi false jika keduanya
bernilai true
!$a Not True jika $a bernilai tidak true
Operator Increment.Decrement
Tabel Operator increment/decrement
Contoh Operasi Contoh
++$a Pre- Nilai $a ditambah satu,
increme kemudian operasi
nt dilaksanakan
$a++ Post- Operasi dilaksanakan,
increme kemudian $a ditambah satu
nt
Training PHP MySQL 24/85
--$a Pre- Nilai $a dikurangi satu,
decreme kemudian operasi
nt dilaksanakan
$a-- Post- Operasi dilaksanakan, kemudian $a
Training PHP MySQL 25/85
decrement dikurangi satu
Contoh program:
<?
Hasilnya sebagai berikut:
//operator increment/decrement
//operator.php
(operasi ++$var) nilai
$var==2 1;
$var (operasi $var++)
nilai $var = 2 (operasi --
echonilai
$var) (“<br>(operasi
$var = 2 ++\$var) nilai \$var
=”.++$var); echo (“<br>(operasi
(operasi $var--) nilai $var \$var+
=2+) nilai \$var =”.$var++); echo
(“<br>(operasi --\$var) nilai \$var =”.--
$var); echo (“<br>(operasi \$var--) nilai \
Operator Presedence
Presedence adalah urutan atau level dari operator. Operator dengan level lebih tinggi
akan dieksekusi lebih dulu, contoh $hasil = 8 – 3 * 2
Variabel $hasil akan bernilai 2, bukannya 10, sebab operasi * memiliki level yang
lebih tinggi dari operator -, sehingga 3*2 akan dieksekusi lebih dahulu, kemudian 8
dikurangi dengan hasil 3*2
Beberapa operator memiliki level presedence yang sama, untuk kasus seperti ini
digunakan aturan associativity dari operasi tersebut, contoh: $hasil = 8 / 4 / 2
Operator bagi (/) memiliki asosiacitivity left (dari kiri ke kanan) sehingga urutan
eksekusinya adalah 8 dibagi 4 asilnya sama dengan 2, kemudian dibagi 2 hasilnya
sama dengan 1.
Statement
Statement berfungsi sebagai rangka dari badan program. Aliran program diatur
dengan statemen- statemen struktur kontrol. PHP mengenal dua jenis statemen
kontrol, yaitu statemen kondisional dan loop
Statement Kondisional
Statemen kondisional mengatur aliran program berdasarkan kondisi pada tertentu
yang ditetapkan. Untuk masalah dengan satu atau dua pencabangan digunakan
statemen if dan else, untuk multiple alternatif dapat digunakan elseif dan switch
Statemen If
If digunakan jika satu atau lebih operasi akan dilaksanakan jika syaratnya terpenuhi.
Bentuk pernyataannya:
<?
if (persyaratan)
{ operasi
program;
}
Operasi program dilaksanakan jika persyaratan terpenuhi atau bernilai true, jika tidak
operasi
program akan diabaikan, contoh:
<?contoh progamnya
Berikut ini
if
<?
(persyaratan
//contoh kontrol
){ program menggunakan statemen if..else
//ifelse.php
Operasi 1;
} $a
else= {10;
$b =Operasi
1 2;
if ($a > $b) { //kondisi if
pertama echo "$a lebih
besar dari $b";
}else{
echo "$b lebih besar dari $a";
}
Multiple Alternatives
Pada contoh diatas telah ditunjukkan penyelesaian masalah dengan satu atau dua
alternatif. Bagaimana dengan masalah dengan lebih dari 2 alternatif atau multiple
alternatif. Contoh pada penentuan nilai ujian,
jika nilai ujian >= 85
gradenya A nilai antara 70 –
84 gradenya B nilai antara
60 – 69 gradenya C nilai
antara 40 – 59 gradenya D
dan nilai < 40 grade E
Switch
Switch digunakan pada saat ditemui masalah membandingkan suatu variabel dengan
berbagagi nilai, SWITCH statemen mirip dengan serangkaian statemen IF dengan
ekspresi yang sama. Pada banyak kesempatan kita perlu untuk membandingkan
variable yg sama (atau ekspresi) dengan banyak nilai yg berbeda dan mengeksekusi
kode program yg berbeda tergantung pada nilai mana yang memenuhi. Berikut ini
contoh 2 cara untuk menuliskan hal yg sama, satu menggunakan statemen IF, dan
satunya menggunakan SWITCH statemen
<?
Hasilnya nilai i = 1 adalah :
//statemen
berikut IF $i di proses dengan Statemen IF : i
ini nilai
$i = 1;
equals 1 berikut ini nilai $i di proses dengan
echo “<br> berikut
SWITCH: i equals 1 ini nilai \$i di proses dengan
Statemen IF : ” if ($i == 0) {
Statemenecho
SWITCH"i equals 0";
dieksekusi baris demi baris (statemen demi statemen). Hanya jika
}
sebuah CASE statemen ditemukan dengan nilai yang cocok dengan nilai dari
if ($i == 1) {
ekspresi SWITCH, PHP mulai mengeksekusi statemen yang ada. PHP terus
echo "i equals 1";
mengeksekusi statemen sampai akhir dari SWITCH blok, atau jika menemukan
}
statemen BREAK untuk pertamakalinya. Jika tidak ada statemen BREAK pada akhir
daftar CASE , PHP akan terus mengeksekusi statemen pada CASE berikutnya.
if ($i == 2) {
echo "i equals 2";
}
i is not equal to 0, 1, 2 ;
Loop
Loop adalah sebuah proses eksekusi program secara berulang-ulang sampai ditemukan
kondisi untuk menghakhiri tersebut. PHP mempunyai dua macam loop yaitu while loop
dan for loop.
While Loop
While adalah statemen loop yang paling sederhana, bentuknya adalah :
Operasi while
program(persyaratan) {
akan dieksekusi terus menerus selama persyaratan
operasi
bernilai true. Contoh : program;
}
<?
//while.php
$i = 1;
while ($i <=
10) { print
$i++ ;
}
Hasilnya di layar akan menampilkan angka mulai dari 1
sampai 10 12345678910
Do..While
Loop menggunakan do..while pada prinsipnya sama dengan while, yang berbeda
adalah pada eksekusi operasi program. Jika menggunakan while persyaratan diperiksa
terlebih dahulu.
Kemudian jika persyaratan bernilai true, ekseskusi dilakukan. Sebaliknya pada
do..while, operasi
Training PHP MySQL 30/85
program dieksekusi terlebih dahulu baru kemudian persyaratan diperiksa. Jika true,
loop diteruskan, jika false, loop dihentikan. Dengan demikian, operasi program
minimal dieksekusi sekali.
Contoh :
<?
Pada program diatas, menghasilkan : Nilai $i adalah : 0
//dowhile.php
Nilai $i= 0 tidak memenuhi kondisi $i > 0, akan tetapi karena pemeriksaan do..while
$i =
diakhir statemen, maka proses cetak sudah dilakukan sebelum diadakan pemeriksaan,
0; ketika di cek i tidak memenuhi kondisi, program keluar dari loop.
selanjutnya,
do
{
echo “Nilai \$i adalah : $i”;For Loop
Bentuk loop menggunakan statemen for sebagai berikut:
for
Syarat pertama diperiksa sekali saja saat awal mulainya loop. Syarat kedua diperiksa
(syarat1,syarat2,syarat
setiap awal iterasi/perulangan. Jika syarat kedua dipenuhi operasi program dieksekusi,
3) {
jika operasi
tidak, loopprogram;
dihentikan. Syarat ketiga dieksekusi setiap akhir iterasi.
Contoh penggunaan for
:
<?
//forloop.php
/* example 1 */
/* example 2
*/ for ($i =
1;;$i++) {
if ($i >
10) {
break;
}
echo "$i";
}
echo "<br>";
/* example 3 */
$i =
Training PHP MySQL 31/85
if ($i >
10) {
break;
}
echo "$i";
$i++;
}
echo "<br>";
/* example 4 */
ForEach
Foreach digunakan melakukan iterasi pada sebuah nilai array, sintaksnya sebagai
berikut:
foreach(array_expression as
$value){ operasi program;
}
Contoh :
<?
//contoh penggunaan foreach
//foreach.php
$a =
array(1,3,5,7);
foreach ($a as
$v) { echo
("<br> $v");
Hasilnya
adalah :
1
3
5
7
Elemen dari array otomatis akan dibaca dari elemen yang pertama, sehingga tidak
perlu dilakukan reset.
Break
Break digunakan untuk menghentikan iterasi dari sebuah loop. Break diikuti
dengan numeric argumen menunjukkan berapa tingkatan loop yang dihentikan
iterasinya.
Contoh :
<?
//contoh penggunaan break
//break.php
Training PHP MySQL 32/85
$i = 0;
while ($i < 10)
{ echo"$i";
if ($arr[$i] == "stop") {
break; /*while loop distop*/
}
$i++;}
echo "<br>\$i
= $i"; switch
($i){
case 5:
echo"<br> Break
Pertama"; break 1;
//switch distop
case 10:
echo"<br> Break
Kedua"; break 2;
//while distop default :
break;
}
Hasil dari program diatas adalah sebagai berikut:
0123456789
$i = 1
$i = 2
$i = 3
$i = 4
$i = 5
Break Pertama
$i = 6
$i = 7
$i = 8
$i = 9
$i = 10
Break
Kedua
Break pertama adalah break dari loop switch, sedangkan break kedua adalah
break untuk loop while
Continue
Continue digunakan untuk kembali ke awal loop dan sisa operasi program di bawahnya
akan diabaikan. Continue diikuti numeric argumen menunjukkan di mana loop akan
dimulai kembali.
Contoh:
<?
//contoh penggunaan continue
//continue .php
for ($i = 0; $i <5;$i++){
echo (“ <br> loop ke satu \$i = $i”);
Training PHP MySQL 33/85
loop ke satu $i
= 0 loop ke dua
$i = 0 loop ke
satu $i = 1 loop
ke dua $i = 1
Bagian ini hanya tampil jika $i bernilai
ganjil loop ke satu $i = 2
loop ke dua $i
= 2 loop ke
satu $i = 3 loop
ke dua $i = 3
Bagian ini hanya tampil jika $i bernilai
ganjil loop ke satu $i = 4
loop ke dua $i = 4
Include dan Require
Include dan require keduanya digunakan untuk memanggil dan mengeksekusi file
yang ditentukan. Dengan kedua statemen ini dapat dibuat fungsi-fungsi,
konstanta ataupun perintah operasi biasa dalam sebuah file secara terpisah yang
dapat dipanggil dari file program lain.
Contoh :
<?
//contoh include file berisi konstanta
//pi.inc
$pi = 3.14;
?>
<?
//dolar.inc
$dollar = 9000;
?>
<?
//contoh penggunaan include & require
//ir.php
include"pi.i
nc";
echo ("<br> pi = $pi");
require "dollar.inc";
echo ("<br> 1 dolar = Rp $dollar");
Hasilnya adalah :
Training PHP MySQL 34/85
pi = 3.14
1 dolar = Rp 9000
Include dan require juga dapat digunakan untuk pemanggilan dalam loop.
for
Contoh deklarasi fungsi:
($i=0;$i<2;$i+
<?
+) { include
//contoh deklarasi fungsi
$arr2[$i];
//fungsi01.php
}
$a = 4;
echo("<br> contoh include dalam
Training PHP MySQL 35/85
$b = 5;
$c = $a*kali_dua($b);
echo “Fungsi dengan output
nilai”; echo “<BR>\$c =
$c”;
echo “<p>Fungsi dengan hasil
operasi”; cetak_perkalian($a,$b);
//fungsi dengan
output nilai function
kali_dua($x){
return 2*$x;
}
function tambah_kata($tambah) {
$tambah .=” ini tambahan kata”;
}
Pada pemanggilan fungsi yang pertama, argumen dikirim berdasarkan nilai, sehingga
perubahan yang dilakukan didalam fungsi tidak mengubah nilai variabel $str. Pada
pemanggilan fungsi yang kedua, argumen dikirim berdasarkan reference, sehingga
perubahan nilai argumen yang dilakukan di dalam fungsi juga mengakibatkan
berubahnya nilai variabel $str.
Variabel Fungsi
Variabel fungsi adalah sebuah variabel yang berisi sebuah fungsi, contoh :
<?
//contoh variabel fungsi
//
variabelfungsi.
php function
fungsi1() {
echo(“<br> Ini fungsi kesatu”);
}
function fungsi2($str) {
echo(“<br> Ini fungsi
kedua”);
echo(“<br>$str”);
}
Modul IV
Operasi Array
Index
Setiap elemen dari array memiliki nomor indeks. Nomor indeks ini diawali dengan
angka 0 (nol). Jika pada deklarasi array nomor indeks tidak dideklarasikan secara
eksplisit, otomatis deklarasi elemen array yang pertama akan diberi nomor indeks 0,
dan deklarasi elemen berikutnya otomatis akan diberi nomor indeks secara berurutan.
Tipe data array memiliki pointer yang menunjukkan pada nomor indeks berapa yang
saaat itu sedang aktif. Untuk array yang baru dideklarasikan, posisi pointer ini adalah
pada nomor indeks yang pertama (indeks 0). Untuk mengetahui nomor indeks elemen
di mana pointer tersebut berada (elemen yang sedang aktif) dapat menggunakan
fungsi key() dan untuk mengetahui nilai elemen tersebut menggunakan fungsi
curent(). Posisi pointer juga dapat diatur, untuk menaikkan menggunakan fungsi
next(), untuk menurunkan menggunakan fungsi prev(), untuk meletakkan pointer
pada posisi terakhir menggunakan fungsi end() dan untuk mengembalikan pointer
pada posisi pertama menggunakan fungsi reset().
Contoh:
<?
//contoh penggunaan fungsi-fungsi array
//arrayindeks.php
$murid = array (“rian”, “seno”, “dika”);
echo (“<br> Elemen dicetak dari indeks ke 0 smpai
indeks ke 2”); for ($i=0; $i<count($murid);$i++ ){
$elemen_aktif = key($murid);
$nilainya = current($murid);
echo(“<br> Saat ini pointer berada pada elemen ke
$elemen_aktif dan nilainya = $nilainya”);
next($murid);
}
echo(“<p> Elemen dicetak dari indeks ke 2 sampai
indeks ke 0”); end($murid);
for ($i=0; $i<count($murid);$i++ ){
$elemen_aktif = key($murid);
$nilainya = current($murid);
echo(“<br> Saat ini pointer berada pada elemen ke
$elemen_aktif dan nilainya = $nilainya”);
prev($murid);
}
end($murid);
$elemen_aktif = key($murid);
echo(“<p> Pointer dipindahkan ke elemen terakhir, yaitu elemen ke
$elemen_aktif”);
reset($murid);
$elemen_aktif = key ($murid);
echo(“<p> Pointer dipindahkan ke elemen pertama, yaitu elemen ke
$elemen_aktif”);
?>
Hasilnya:
Training PHP MySQL 38/85
Pada loop yang pertama, digunakan statemen for, variabel $i dimulai dari 0 sebab
indeks dari array dimulai dari 0, loop dilakukan dengan batas syarat jumlah elemen
dari array, untuk memperoleh nilai ini digunakan fungsi count().
Elemen dicetak dari elemen yang pertama sampai yang terakhir, untuk posisi awal
tidak ada masalah, pointer sudah ada pada posisi awal, untuk memindahkan pointer
ke elemen berikutnya digunakan fungsi next(), sehingga pointer pindah dari elemen
ke 0 menjadi posisi elemen ke 1, demikian seterusnya sampai semua elemen array
dicetak loop akan berhenti.
Pada loop kedua elemen akan dicetak kebalikan dari loop pertama, yaitu dari indeks
terakhir sampai indeks pertama. Sebelum loop dimulai posisi pointer harus diatur pada
elemen terakhir menggunakan fungsi end(). Untuk memindahkan pointer ke posisi
elemen sebelumnya digunakan fungsi prev().
Pada contoh diatas, indeks elemen array berupa integer. Selain integer indeks array
juga dapat berupa string. Untuk merunut array dengan indeks berupa string
menggunakan fungsi each(). Fungsi each() mengambil nilai dari array kemudian
memajukan pointer satu elemen. Hasil dari fungsi each terdiri atas empat elemen,
yaitu 0, 1, key dan val. 0 dan key menunjukkan indeks elemen, 1 dan val
menunjukkan nilai elemen. Untuk memasukkan hasil dari fungsi each() ke dalam
variabel digunakan fungsi list(). Variabel yang dihasilkan juga bertipe array.
Contoh:
<?
Hasilnya :
//contoh penggunaan fungsi each() dan list()
//arrayeachlist.php
Saat ini pointer berada pada elemen PIII1 dan nilainya
= rian Saat ini pointer berada pada elemen PIII2 dan
$murid=
nilainya array(“PIII1”
= seno Saat ini => “rian”,
pointer “PIII2”
berada =>elemen
pada “seno” ,
“PIII3” => “dika”);
PIII3 dan nilainya = dikafor ($i=0; $i<count($murid);$i++ ){
list($key,$val)=each($murid);
echo
Variabel array (“<br>
pada Saat
contoh ini pointer berada
arrayindeks.php pada
diubah elemen $key
indeksnya dan
berupa nomor induk
nilainya =
murid (berupa string). Paduan fungsi each() dan list() digunakan untuk merunut
elemen $val”);
array. Perhatikan
}
Training PHP MySQL 39/85
perbedaannya dengan fungsi key() dam current(), menggunakan fungsi each() pointer
secara otomatis maju satu langkah sehingga tidak perlu digunakan fungsi next() lagi.
Urutan Elemen
Operasi urutan(sorting) sangat penting dalam operasi array. Salah satu teknik sorting
yang sangat populer adalah bubblesort. Berikut ini contoh implementasi algoritma
bubblesort menggunakan PHP:
<?
Hasilnya :
//contoh$aprogram
Variabel sebelumsorting menggunakan
diurutkan = algoritma bubblesort
//arraybubblesort.php
14253910687 Variabel $a setelah
diurutkan = 123456789
$a = array (1,4,2,5,3,9,10,6,8,7);
Masalah$b = bubblesort($a,
pengurutan elemen $a2);
array seperti diatas, dapat juga diselesaikan
menggunakan fungsi sort(), fungsi sort akan mengurutkan elemen array dari nilai
terendahecho (“<br>Variabel
ke nilai \$a elemen
tertinggi untuk sebelumnumerik dan dari a – z untuk elemen
diurutkancontoh
string. Sehingga = ”); for ($i=0;
diatas $i<count($a);
cukup diselesaikan seperti ini:
$i++ ){
echo (“$a[$i]”);
<?
}
//contoh program sorting menggunakan fungsi sort()
//arraysort.php
echo (“<br>Variabel \$a setelah
$a = array=(1,4,2,5,3,9,10,6,8,7);
diurutkan ”); for ($i=0;
$i<count($a);$i++ ){
echo (“$b[$i]”);
}
function bubblesort($a1,$a2){
for ($i=sizeof($a1);
$i>=1;$i-- ){ for
($j=1; $j<=$i;$j++ ){
if($a1[$j-1]>$a1[$j]) {
$t=$a1[$j-1];
$t2=$a2[$j-1];
$a1[$j-1] = $a1[$j];
$a2[$j-1] = $a2[$j];
$a1[$j] =$t;
$a2[$j] =$t2;
}
}
}
Training PHP MySQL 40/85
for ($i=0;
$i<count($potongan_keempat);$i+
+ ){ echo "$potongan_keempat[$i]," ;
}
echo ("<br> array_slice($a,-4,-2)= ");
for ($i=0;
$i<count($potongan_kelima);$i++ )
{ echo "$potongan_kelima[$i]," ;
}
Hasilnya :
Variabel $a = 0,1,2,3,4,5,6,7,8,9,
array_slice(Array,2)= 2,3,4,5,6,7,8,9,
array_slice(Array,2,4)= 2,3,4,5,
array_slice(Array,2,-2)= 2,3,4,5,6,7,
array_slice(Array,-4,4)= 6,7,8,9,
array_slice(Array,-4,-2)= 6,7,
Fungsi array_walk
Fungsi array_walk() digunakan untuk melakukan suatu operasi pada setiap elemen
bukan array. Contoh :
<?
Hasilnya:
$a//contoh fungsi array_walk()
= 0,1,2,3,4,5,6,7,8,9,
//arraywalk.php
$a = elemen
Setiap array (0,1,2,3,4,5,6,7,8,9);
variabel $a di kalikan 5
echo("<br>\$a = ");
$a == 0,5,10,15,20,25,30,35,40,45,
for ($i=0; $i<count($a);
$i++ ){ echo "$a[$i],"
Operasi File;
PHP cukup} banyak menyediakan fungsi-fungsi build-in untuk operasi file yang
sebagianecho("<p>Setiap
akan dibahas pada bab ini.
elemen variabel \$a
dikalikan 5 "); echo("<br>\$a = ");
Mengakses File
array_walk($a,'kali_lima');
Untuk mengakses sebuah file dari sistem file, HTTP atau FTP digunakan
fungsi fopen(). Sintaksnya adalah:
function kali_lima($bil){
$bil1=$bil
*5; echo
"$bil1, ";
Training PHP MySQL 42/85
Fopen(nama file, mode akses)
Mode akses menunjukkan operasi yang akan dilakukan pada file tersebut,mode akses
antara lain: ‘r’ - Membuka file untuk dibaca, pointer diletakkan pada awal file.
‘r+’ - Membuka file untuk dibaca dan diubah, pointer
terletak pada awal file.
‘w’ - Membuka file untuk diubah, pointer diletakkan pada
awal file ‘w+’ - Membuka file untuk diubah dan dibaca,
pointer terletak di awal
file.
‘a’ - Membuka file untuk diubah, pointer terletak diakhir file
‘a+’ - Membuka file untuk diubah dan dibaca, pointer
terletak pada akhir file.
Contoh membuka file:
<?
Untuk melihat isi dari file yang telah dibuka digunakan fungsi fget(). Fungsi fgets()
//contoh
akan membaca isi membuka
file baris file menggunakan
perbaris. fopen()
Contohnya :
//fopen.php
<?
$namafile = "test.txt";
//contoh membaca isi file menggunakan fgets()
$handlefile=fopen($nama
//fgets.php
file,r); echo("<br>
$hfile=fopen("fgets.php",r);
$handlefile");
while(!feof($hfile)){
fclose($handlefile);
$buffer =
fgets($hfile,4096);
echo("<br> $buffer");
}
fclose($hfile);
Hasil dari program diatas adalah sebagai berikut:
Fungsi fgets() membaca isi file baris per baris. Untuk membatasi loop digunakan
fungsi feof() untuk memeriksa apakah isi file telah dibaca semua. Setelah
membaca isi file, akses ke file tersebut ditutup menggunakan fungsi fclose().
Pada fungsi fgets() jika terdapat tag HTML pada isi file yang dibaca, tag tersebut
akan diesekusi, seperti pada contoh program diatas, pada file fgets.php terdapat tag
HTML <BR>, sehingga kata berikutnya dicetak pada baris baru.
Training PHP MySQL 43/85
Untuk mengabaikan tag HTML yang terdapat pada isi file, dapat digunakan fungsi
fgetss() untuk membaca isi file tersebut.
Untuk menambahkan isi suatu file dapat digunakan
fungsi fputs(). Contoh :
<?
//contoh menambahkan isi suatu file menggunakan fputs()
//fputs.php
$handle = fopen("test.txt",a);
fputs($handle,"ini tambahan
menggunakan fputs"); fclose($handle);
?>
Tambahan isi terletak pada akhir program, sebab pada fungsi fopen() digunakan
parameter a
sehingga pointer terletak pada akhir file.
Mengkopi File
Untuk mengkopi suatu file digunakan fungsi copy. File yang akan dikopi dapat
langsung diambil dari sistem file atau berasal dari form HTML. Contoh program upload
file dari client:
<HTML>
<BODY>
<?
//contoh mengkopi file menggunakan fungsi copy()
//
upload.p
hp
if($submi
t){
if (copy($ufile,$ufile_name))
{echo("<br><center> Copy
Sukses");} else
{echo("<br><center> Copy
Gagal");}
}else{
echo ("<FORM METHOD = \"POST\" ACTION = \"$PHP_SELF\"
ENCTYPE=\"multipart/form-data\">");
?>
<CENTER>
<h1> Copy File</h1>
<P><Input type="file" NAME="ufile" SIZE=50>
<P><Input type="submit" NAME="submit" VALUE="COPY">
if($sub
mit){ if
(copy($ufile1,$ufile1_name)&©($ufile2,$ufile2_name)&&cop
y($ufile3,
$ufile3_name))
{echo("<br><center> Copy
Sukses");} else {echo("<br><center>
Copy GAGAL");}
if (rename($ufile2_name,"namabaru.php")){
echo("<br><center> File kedua menjadi
namabaru.php");
}else {
echo("<br><center> rename GAGAL ");
}
if ( unlink($ufile3_name)){
echo("<br><center> File ketiga
dihapus");
}else {
echo("<br><center> hapus file GAGAL ");
}
}else{
echo ("<FORM METHOD = \"POST\" ACTION = \"$PHP_SELF\"
ENCTYPE=\"multipart/form-data\">");
?>
<CENTER>
<h1> Copy File, Ubah File dan Hapus File</h1>
<P><Input type="file" NAME="ufile1" SIZE=50>
<P><Input type="file" NAME="ufile2" SIZE=50>
<P><Input type="file" NAME="ufile3" SIZE=50>
<?
Download File
Untuk melakukan download file menggunakan fungsi
readfile() Contoh:
File HTML untuk mendownload file:
<BODY>
<CENTER>
<h1>Download File</h1>
<ahref=”download.php?file=test.txt”>Test.txt</a>
</CENTER>
</BODY>
</HTML>
Training PHP MySQL 45/85
<?
//download.php
$total = “C:/home/unwim/www/”.
$file; Header(“Content-
Type:application/zip”);
Header(“Content-
Length:”.filesize($total));
Header(“Content-Disposition: attachment;
Manipulasi String
Pada bagian ini akan dibahas fungsi-fungsi untuk manipulasi string dan regular
expression
Substr()
Fungsi substr() digunakan untuk mengambil potongan dari sebuah string yang
panjangnya ditentukan oleh parameter start dan length. Sintaknya adalah sebagai
berikut:
<? hasilnya:
//substr.php cdefg
$str=”abcdefgh”; h
$a[]=substr($str,2); efgh
$a[]=substr($str,-4); cdef
$a[]=substr($str,2,4); cd
$a[]=substr($str,2,-4); e
$a[]=substr($str,-4,2); f
$a[]=substr($str,-4,-2); e
f
for ($i=0; $i<count($a);
$i++
Operasi ){ echo
substr() ini hampir sama dengan opeasi array_slice() pada operasi arry
“<br>$a[$i],” ; substr_replace()
}
Fungsi substr_replace() digunakan untuk menggantikan sebagian atau seluruh
karakter dari sebuah string dengan satu atau lebih karakter. Sintaksnya adalah:
Parameter start menunjukkan string yang akan digantikan dimulai dari karakter ke
berapa (karakter pertama dari string adalah karakter ke 0). Jika parameter start
diberi tanda minus ( - ) berarti awal string yang akan digantikan ditentukan dari
akhir string sebanyak nilai yang ditunjukkan parameter start.
Parameter length menunjukkan karakter yang akan digantikan. Jika diberi tanda
minus akhir penggantian dihitung dari karakter terakhir.
Contoh :
<?
//substr_replace.php
$str=”abcdefgh”;
$tambahan =”ijkl”;
$a[]=substr_replace($str,$tambahan,0);
$a[]=substr_replace($str,$tambahan,0, -(strlen($str)));
$a[]=substr_replace($str,$tambahan,2);
$a[]=substr_replace($str,$tambahan,-4);
$a[]=substr_replace($str,$tambahan,2,4);
$a[]=substr_replace($str,$tambahan,2,-6);
$a[]=substr_replace($str,$tambahan,-4,2);
$a[]=substr_replace($str,$tambahan,-4,-2);
explode(pola, string)
Fungsi split() relatif sama dengan fungsi explode, hanya saja terdapat optional
parameter pembagi untuk menentukan string akan dipecah menjadi berapa bagian,
Jika parameter tidak dideklarasikan, pemecahannya akan dilakukan sesuai kondisi
string yang akan dipecah, sintaksnya :
Contoh:
Buat file test.txt yang isinya sebagai berikut:
PHP pada
Berikut contoh dasarnya
untuk menggunakan fungsi explode(), split() dan implode()
adalah sebuah alat
<?
untuk membuat
//contoh pemecahan
halaman WEB yangstring
//explode.php
dinamis
$fh=fopen("test.txt",r);
<br>seperti halnya
$str=fread($fh,1024*40);
Microsoft's Active Server Pages
$str1=explode("
(ASP) ",$str); Pages
atau JavaServer
for
(JSP)
($i=0;$i<count($str1);
$i++){
echo"$i=$str1[$i]: ";
}
echo ("<P> Dicetak sepuluh kata saja");
$str2=split(" ",$str,10);
for
($i=0;$i<count($str2);
$i++){
echo"$i=$str2[$i]: ";
}
Hasilnya adalah sebagai berikut :
0=PHP: 1=pada: 2=dasarnya: 3=adalah sebuah: 4=alat: 5=untuk:
6=membuat halaman: 7=WEB: 8=yang: 9=dinamis
seperti: 10=halnya Microsoft's: 11=Active: 12=Server: 13=Pages: 14=(ASP)
atau: 15=JavaServer: 16=Pages: 17=(JSP)
Training PHP MySQL 48/85
: 18=versi: 19=pertama: 20=dari: 21=PHP: 22= dibuat: 23=oleh:
24=Resmus: 25=Lerdorf pada: 26=tahun: 27=1995:
Pages (JSP) versi pertama dari PHP dibuat oleh Resmus Lerdorf pada
tahun 1995:
Digabung lagi
PHP pada dasarnya adalah sebuah alat untuk membuat halaman WEB
yang dinamis seperti halnya Microsoft's Active Server Pages (ASP) atau
JavaServer Pages (JSP)
versi pertama dari PHP dibuat oleh Resmus Lerdorf pada tahun 1995
strip_tags(), nl2br()
Kedua fungsi di atas digunakan untuk menangani tag-tag HTML. Fungsi strip-tags()
digunakan untuk menghapus tag HTML dari sebuah string. Fungsi nl2br() digunakan
untuk mengubah baris baru menjadi tag HTML <BR>.
Contoh :
<?
//strip.php
$fh=fopen("test.txt",r);
$str=fread($fh,1024*40);
echo ("*****Tampilan Asli ****<br>$str");
$str=strip_tags($str);
echo ("<P>*****Tag HTML dihilangkan ****<br>$str");
$str=nl2br($str);
echo ("<P>*****Menggunakan fungsi nl2br()****<br>$str");
?>
Hasilnya adalah sebagai berikut:
*****Menggunakan fungsi
nl2br()**** PHP pada dasarnya
adalah
sebuah alat untuk
membuat halaman WEB
yang dinamis seperti
halnya
Microsoft's Active Server Pages
(ASP) atau JavaServer Pages (JSP)
versi pertama dari PHP
dibuat oleh Resmus
Lerdorf pada tahun
1995
Training PHP MySQL 49/85
Modul V
DATABASE MYSQL
Browser
HTTP
Web Server
+
Java Applet / Application ODBC / JDBC
program CGI/
HTTP Database Spesific API Database
Servlets Skrip PHP
HTTP
Kebanyakan dari statemen sub-select dapat ditulis kembali tanpa menggunakan sub-
select. Statemen sub-select yang rumit dapat ditulis ulang dengan memanfaatkan atau
membuat temporary table.
Stored Procedures dan Triggers
Sebuah stored procedure adalah kumpulan statement SQL yang di compile dan di simpan di
server, sehingga client dapat menggunakan stored procedure ini, karena statemen SQL-nya
sudah di-compile dan di-parsed di server sehingga akan lebih sedikit data yang dikirim dari
client ke server. Sedangkan Trigger adalah sebuah stored procedure yang akan dipanggil atau
dijalankan berdasarkan suatu kejadian atau event. Sebagai contoh sebuah trigger dapat di
set untuk dipanggil ketika dilakukan operasi UPDATE terhadap tabel tertentu. Trigger juga
dapat di set untuk mengirim e-mail kepada orang-orang yang tertarik terhadap barang
tertentu, dimana barang itu mengalami penurunan harga sebanyak 20% misalnya.
Foreign Key
Foreign key adalah sebuah kolom pada sebuah tabel yang menunjukkan bahwa kolom
tersebut adalah primary key pada tabel lain. Ini digunakan untuk memelihara integritas /
relasi antar tabel. MySQL tidak mendukung foreign key dengan berbagai alasan, diantaranya
bahwa dengan adanya penggunaan foreign key akan menurunkan kecepatan secra drastis
pada operasi INSERT dan UPDATE. Tidak lama lagi MySQL akan dibuat untuk menyimpan
definisi foreign key pada setiap database sehingga client dapat mengetahui bagaimana relasi
antar tabel yang ada di database dilakukan.
Views
Views adalah representasi data yang dibuat sedemikian rupa dari satu tabel atau lebih
(atau dari view lain). View dapat dianalogikan sebagai “virtual table”. View tidak
memerlukan ruang penyimpanan.
Sebagai contoh jika kita mempunyai tabel pekerja (employee) dan menginginkan semua user
Training PHP MySQL 52/85
yang
Training PHP MySQL 53/85
bukan manajer, hanya dapat melihat nama dan id employee dari tabel pekerja
tersebut. Kita bisa membuat view untuk kasus tersebut dengan statemen SQL
berikut ini:
Create,=88 View Employee_View as SELECT name, employee-id FROM employee
Dengan membuat hak akses SELECT ke Employee_View ke semua user (selain manajer)
maka semua user tersebut hanya dapat melihat nama dan id saja.
MySQL saat ini masih belum mendukung views, tetapi ini merupakan hal yang akan
ditambahkan para pengembang MySQL dikemudian hari.
CREATE
Ini digunakan untuk membuat (create) sebuah basis data atau tabel didalam basis data
yang telah ada. Sintak untuk membuat sebuah tabel adalah cukup kompleks karena harus
mendefinisikan setiap tipe data pada tiap-tiap kolomnya. Untuk membuat sebuah
database, sintaks yang dipakai cukup sederhana yaitu:
CREATE DATABASE nama_database
Ada 2 cara lain untuk membuat sebuah database di MySQL, yaitu melalui mysqladmin
atau dengan menggunakan PHP. Misalnya sekarang kita akan membuat database
dengan nama “mahasiswa”, kita bisa menulisnya:
% mysql
mysql>CREATE DATABASE
mahasiswa; mysql>QUIT;
atau:
Create_definition:
Col_name type [NOT NULL | NULL] [DEFAULT default_value]
[AUTO_INCREMENT] [PRIMARY KEY] [reference_definition]
atau PRIMARY KEY (index_col_name,…)
atau KEY [index_name]
(index_col_name,…)
atau INDEX [index_name] (index_col_name,…)
atau UNIQUE [INDEX] [index_name] (index_col_name,…)
Training PHP MySQL 54/85
atau [CONSTRAINT symbol] FOREIGN KEY index_name
(index_col_name,…) [reference_definition]
atau CHECK (expr)
type:
TINYINT[(length)] [UNSIGNED] [ZEROFILL]
atau SMALLINT[(length)] [UNSIGNED]
[ZEROFILL] atau MEDIUMINT[(length)]
[UNSIGNED] [ZEROFILL] atau INT[(length)]
[UNSIGNED] [ZEROFILL]
atau INTEGER[(length)] [UNSIGNED]
[ZEROFILL] atau BIGINT[(length)]
[UNSIGNED] [ZEROFILL]
atau REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
atau DOUBLE[(length,decimals)] [UNSIGNED]
[ZEROFILL] atau FLOAT[(length,decimals)]
[UNSIGNED] [ZEROFILL] atau
DECIMAL[(length,decimals)] [UNSIGNED]
[ZEROFILL] atau NUMERIC[(length,decimals)]
[UNSIGNED] [ZEROFILL] atau CHAR(length)
[BINARY]
atau VARCHAR(length)
[BINARY] atau DATE
atau TIME
atau TIMESTAMP
atau DATETIME
atau TINYBLOB
atau BLOB
atau MEDIUMBLOB
atau
LONGBLOB atau
TINYTEXT
atau TEXT
atau MEDIUMTEXT
atau LONGTEXT
atau ENUM(value1,value2,value3,
…) atau
SET(value1,value2,value3,
…)
index_col_name:
col_name[(length)]
Training PHP MySQL 55/85
reference_definition:
REFERENCES tbl_name [(index_col_name,…)]
[MATCH FULL | MATCH PARTIAL]
[ON DELETE reference_option]
Training PHP MySQL 56/85
[ON UPDATE reference_option]
reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT
table_option:
TYPE = {ISAM | MYISAM |
HEAP} atau AUTO_INCREMENT = #
atau AVG_ROW_LENGTH =
# atau CHECKSUM = {0 | 1}
atau COMMENT =
“string” atau
MAX_ROWS = #
atau MIN_ROWS = #
atau PACK_KEYS = {0 |
1} atau PASSWORD =
“string”
atau DELAY_KEY_WRITE = {0 | 1}
select_statement:
[IGNORE | REPLACE] SELECT … (some legal statement)
Kata kunci TEMPORARY akan membuat tabel sementara / temporer yang secara otomatis
akan dihilangkan ketika koneksi ke database terhenti. IF NOT EXIST digunakan untuk
menghindari kesalahan jika nama tabel yang akan dibuat sudah ada di database.
VARCHAR(200),
summary TEXT,
keywords VARCHAR(300),
body MEDIUMTEXT,
published DATE,
updated TIMESTAMP,
comment TEXT
);
MySQL mempunyai banyak tipe data untuk setiap kolom. Tipe data ini dapat dijelaskan
dengan melihat tabel dibawah ini:
Training PHP MySQL 57/85
Tipe Data Range Signed Range Unsigned Keterangan
Training PHP 58/
TINYINT -128 sampai 127 0 sampai 255 Tipe
integer
yang
sangat
kecil
SMALLINT -32768 to 32767. 0 to 65535
MEDIUMINT -8388608 to 8388607 is 0 to
16777215
INT / INTEGER -2147483648 to 0 to
2147483647 4294967295.
BIGINT -9223372036854775808 0 to
to 1844674407370
9223372036854775807 9
551615
FLOAT -3.402823466E+38 -
to - 1.175494351E-
38, 0 dan
1.175494351E-38 to
3.402823466E+38
DOUBLE - -
/ REAL 1.7976931348623157E+
308 to -
2.2250738585072014E-
308, 0 and
2.2250738585072014E-
308
to
1.7976931348623157E+
308
DATE '1000-01-01' to '9999-12- Dengan
31' format
YYYY- MM-
DD
DATETIME '1000-01-01 00:00:00' to Ditulis
'9999-12-31 23:59:59' dengan
format
'YYYY- MM-
DD
HH:MM:SS'
TIMESTAMP '1970-01-01 00:00:00' to
sometime in the year
2037
TIME '-838:59:59' to '838:59:59'
YEAR[(2|4)] 1901 to 2155, and 0000
MEDIUMBLO Panjang
B maksimum
MEDIUMTEXT 16777215 (2^24
- 1)
LONGBLOB Dengan panjang
LONGTEXT maksimum 4294967295
(2^32 – 1)
DROP
DROP digunakan untuk membuang / menghapus database, tabel , index dan function,
dengan perintah seperti DROP DATABASE, DROP TABLE, DROP INDEX, dan DROP
FUNCTION. Disini hanya akan dibahas DROP DATABASE dan DROP TABLE saja.
Untuk menghapus (drop) sebuah database (harap berhati-hati karena ini akan
menghapus seluruh elemen dari database itu termasuk tabel beserta data-datanya),
bisa menggunakan :
DROP DATABASE [IF EXIST] nama_database
Untuk melakukan drop terhadap database ini juga dapat dilakukan dengan berbagai cara.
Contoh jika kita ingin men-drop database mahasiswa, kita bisa menggunakan:
% mysql
mysql> drop database
mahasiswa; mysql> quit;
atau
Selain itu kita bisa melakukan drop terhadap beberapa tabel sekaligus dengan cara :
INSERT
Statemen Insert digunakan untuk mengisi atau menambahkan data ke sebuah tabel di
sebuah database. Sintaks umumnya adalah sebagai berikut:
INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] nama_tabel [(nm_kol,…)] VALUES
(ekspression,…),(…),…
atau
Training PHP 61/
atau
MySQL dapat melakukan insert dalam dua cara, yang pertama yaitu dengan memasukan
kolom secara eksplisit (INSERT … VALUES, atau INSERT … SET) atau dengan mendapatkan
value-nya dari database yang telah ada (INSERT … SELECT).
Opsi LOW_PRIORITY digunakan jika kita menginginkan pemasukan data ketika tidak
ada client lain yang sedang membaca tabel yang akan dimasukkan.
Jika ada client yang tidak akan menunggu sampai proses pemasukan (insertion) selesai,
maka kita bisa menggunakan DELAYED. Dengan menggunakan opsi DELAYED maka akan
menunda proses pemasukan data sampai tidak ada client lain yang membaca tabel yang
akan dimasukan datanya, tetapi kontrol program akan segera dikembalikan ke client.
Keuntungan dengan menggunakan DELAYED adalah bahwa setiap client yang mengirimkan
statement INSERT maka akan dieksekusi sebagai sebuah blok. Ini akan berguna dalam
penulisan informasi log misalnya.
Opsi IGNORE digunakan untuk kasus dimana statement INSERT berpotensi mengalami
kegagalan karena sebuah aturan yang diberlakukan seperti tidak boleh ada nilai ganda
di sebuah kolom. Jika terjadi error di database maka proses INSERT tidak akan dilakukan
dan tidak ada data baru yang dimasukkan ke tabel.
Atau
Atau jika kita membuat tabel temporer tempdocs yang diisi dengan dokumen yang
dibuat oleh John Winter yang diisi sejak awal tahun 1999 dari tabel document:
Untuk menjalankan contoh terakhir ini tentu saja harus dibuat dulu tabel temporer
tempdocs dan tabel document.
REPLACE
Training PHP 62/
Sintaks REPLACE yang hanya ada di MySQL ini hampir sama dengan statement INSERT dan
penulisannya pun hampir sama. Perbedaannya adalah jika ada data lama yang merupakan
UNIQUE INDEX di tabel dan data itu sama dengan data yang akan diisikan ke tabel, maka
data lama itu akan di- replace dengan data yang baru tersebut.
REPLACE [LOW PRIORITY | DELAYED]
[INTO] nama_tabel
[(col_name,...)] VALUES
(expression,...)
Atau
Atau
Jika kita tidak memakai statement WHERE maka operasi update akan melakukan updating
ke semua kolom yang disebutkan. Atau kita bisa menggunakan LIMIT untuk menentukan
jumlah perubahan maksimum dari operasi update ini.
Statemen diatas akan melakukan pembaruan (update) kolom title di tabel document
dimana id-nya adalah 231, dan menambahkan comment yang menunjukkan alasan
diadakannya update.
DELETE
Statement ini akan menghapus satu atau lebih data / record yang memenuhi kondisi yang
ditentukan. Jika WHERE tidak disertakan maka akan menghapus seluruh data dari tabel,
tetapi tentu saja tabelnya tidak ikut terhapus. Jadi penggunaan statement ini haruslah
dilakukan dengan hati-hati. Sintaksnya adalah :
DELETE [LOW_PRIORITY] FROM nama_tabel
Training PHP 63/
[WHERE where_condition] [LIMIT rows]
Berikut adalah contoh penggunaan DELETE yang akan menghapus 10 data pertama di
tabel document: DELETE FROM document LIMIT 10;
Jika kita ingin menghapus seluruh artikel yang di terbitkan sebelum 1
Januari 1999 : DELETE FROM document WHERE published < ‘1990-01-
01’
SELECT
Statement ini digunakan di aplikasi web ketika akan melakukan pencarian data di
database MySQL. Karena itu sintaks ini merupakan sintaks yang rumit:
SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT]
[HIGH_PRIORITY]
[DISTINCT | DISTINCTROW | ALL]
select_expression,...
[INTO_OUTFILE ‘file_name’
export_options] [FROM
table_references
[WHERE
where_definition]
[GROUP BY
col_name,...] [HAVING
where_definition]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC]
, ...] [LIMIT [offset,] rows]
[PROCEDURE procedure_name] ]
Penulisan opsi harus berurutan sesuai dengan yang dituliskan diatas, jadi opsi HAVING harus
ditulis sebelum opsi ORDER BY atau sebelum opsi LIMIT dan PROCEDURE.
Statement SELECT tidak hanya untuk mendapatkan data dari database, tetapi bisa
juga untuk mendapatkan hasil dari operasi matematik, seperti :
SELECT SQRT((144 % 5) – 1);
Ini akan mengembalikan nilai 1.732051.
Berikut akan dijelaskan beberapa opsi yang dapat digunakan bersama-sama dengan
statement
SELECT:
DISTINCT
Ini digunakan untuk menjamin bahwa hasil yang didapat tidak terdapat baris yang sama.
INTO OUTFILE
Opsi ini digunakan jika kita menginginkan hasil yang didapat dari query disimpan di sebuah
file teks. Secara default ini akan menghasilkan file data dengan field atau kolomnya
dipisahkan dengan tab, dengan menggunakan special character backslash (\) dan setiap
barisnya diakhiri dengan karakter newline (\n). Untuk membuat file CSV bisa menggunakan
sintaks berikut ini:
... INTO OUTFILE ‘outfile.cvs’ FIELDS TERMINATED BY ‘,’ ENCLOSED
BY ‘”’ ESCAPED BY ‘\\’ LINES TERMINATED BY ‘\n’ ...
Training PHP 64/
FROM
Training PHP 65/
Digunakan untuk menunjukkan tabel yang sedang digunakan dalam proses SELECT, dan
tabel itu dapat dibuat alias-nya yang sangat berguna untuk membandingkan field yang
namanya sama dari tabel yang berbeda :
SELECT field1, field2 FROM mytab AS tab1, mytab AS
tab2 WHERE tab1.id = tab2.subid
WHERE
Opsi ini digunakan sebagai pengkondisian dari proses SELECT yang dilakukan, dan dapat
berupa perbandingan (comparison), fungsi matematika dan ekspresi logika. Contoh berikut
akan mendapatkan nama author dan judul bukunya dari tabel document, author dan
authorsofdoc yang semua authornya memiliki nama belakang ‘SMITH’, dan tinggal di kode
area 212, dan yang mempunyai artikel yang diterbitkan diantara 1 Januari 1999 dan 15
Juni 1999:
SELECT DISTINCT document.title, author.fullname FROM document, author,
authorsofdoc WHERE author.phone LIKE ‘212$’ AND
document.published >= ‘19990101’
AND document.published <=
‘19990615’ AND authorsofdoc.authorid
= author.authorid AND
authorsofdoc.docid = document.docid
AND author.fullname LIKE “% Smith”;
LIKE
Merupakan fungsi untuk menyamakan dengan pattern atau bentuk yang disebutkan.
Contohnya kita bisa menggunakan karakter wild card seperti ‘%’ yang berarti akan sama
dengan karakter apapun baik ada banyak karakter ataupun tidak ada karakter sama sekali.
Dengan menggunakan ‘_’ berarti bentuk ini akan sama dengan satu karakter.
GROUP BY
Opsi ini digunakan untuk mengelompokkan hasil dari query dengan sembarang field.
Biasanya berguna ketika kita menggunakan fungsi agregat di dalam parameter seleksi.
Sebagai contoh, untuk mendapatkan nilai rata-rata dari umur pekerja bangunan di
departemen yang berbeda dari suatu organisasi, kita bisa menggunakan:
HAVING
Pengkondisian pada statemen ini mirip dengan yang digunakan oleh klausa WHERE.
Perbedaannya adalah HAVING ini dipakai setelah statement GROUP BY. Contoh :
ORDER BY
Training PHP 66/
Digunakan untuk mengurutkan data hasil dari query yang dilakukan. Dapat diurutkan
secara naik (ASC, yang merupakan default-nya), atau secara menurun (DESC). Contoh
berikut akan mendapatkan data buku yang judulnya ada string PHP dan akan diurutkan
secara menurun (desc) menurut penerbitannya:
SELECT id, title, published FROM document where title LIKE
‘%PHP’ ORDER BY published;
LIMIT
Statement ini akan membatasi baris yang akan keluar dari hasil query yang dilakukan.
Contoh berikut akan menampilkan sepuluh data pertama dari tabel document:
SELECT titles, published FROM document LIMIT 10;
Dan contoh berikut akan mengembalikan sepuluh baris berikutnya
(baris 11-20): SELECT titles, published FROM document LIMIT 10, 10;
PROCEDURE
Didalam MySQL kita bisa mendefinisikan atau membuat prosedur dalam bahasa C++
yang dapat mengakses dan merubah data di dalam sebuah query sebelum data itu di
kirim kembali ke client.
Training PHP 67/
Modul VI
PHP dan MySQL
PHP telah menyediakan fasilitas koneksi untuk hampir semua program database
populer baik yang komersial maupun gratis. Berikut ini contoh membangun database
di situs web dengan menggunakan MYSQL. MYSQL adalah salah satu program
database yang gratis dan cukup handal.
Akses Database
Secara umum akses ke database melalui tiga tahapan:
1. koneksi ke database (persiapan)
2. query/permintaan data (operasi)
3. pemutusan koneksi
Koneksi ke database dilakukan menggunakan fungsi-fungsi mysql_connect(),
mysql_pconnect(), mysql_select_db()
Mysql_connect()
Mysql_connect() digunakan untuk melakukan koneksi ke program database MYSQL.
Sintaksnya:
mysql_connect(nama_host,nama_user,password)
Jika parameter nama host tidak dideklarasikan, otomatis akan berisi localhost. Koneksi
ke database akan secara otomatis terputus pada saat script program selesai
dieksekusi seluruhnya, kecuali diberikan perintah mysql_close(). Fungsi
mysql_connect() akan menghasilkan nilai true jika koneksi berhasil dilakukan dan nilai
fase jika gagal.
Contoh :
Contoh :
Tahap Operasi
Setelah melakukan koneksi ke database, membuat sebuah database dan sebuah
tabel beserta field-fieldnya, tahap persiapan telah selesai. Tahap berikutnya, yaitu
Training PHP 70/
tahap operasi di mana
Training PHP 71/
dilakukan operasi-operasi memasukkan data, mengambil data, mengedit data,
menghapus data, dan lain-lain, dapat dimulai.
PHP tidak menyediakan fungsi-fungsi khusus untuk operasi data, sehingga sintaks
yang dipakai adalah sintaks perintah-perintah MYSQL. Untuk melakukan operasi-
operasi data menggunakan PHP ururtannya sebagai berikut:
1. Koneksi ke database
2. Deklarasikan sebuah variabel string yang berisi sintaks perintah MYSQL yang akan
dilakukan
3. Laksanakan sintaks MYSQL menggunakan fungsi mysql_query(), jika sintaks
yang akan dijalankan menghasilkan output yang akan ditampilkan, deklarasikan
sebuah variabel untuk menampung hasil tersebut.
4. Mengambil hasil dari sintaks MYSQL yang dilaksanakan menggunakan fungsi-
fungsi mysql_fetch_array(), mysql_fetch_row(), mysql_num_rows, dan lain-lain.
Bergantung pada format output yang diinginkan.
Memasukkan Data
Untuk memasukkan data ke database, digunakan sintaks:
INSERT INTO nama_table (field1, field2, …) VALUES (‘data1’, ‘data2’,…)
Jika parameter field tidak dideklarasikan, data yang dimasukkan jumlahnya harus
sama dengan jumlah field dari table tersebut.
Contoh:
<?
//contoh memasukkan data
//datamasuk.php mysql_connect(“localhost”,”mahasiswa”,”rahasia”); mysql_select_db(
$perintah= “INSERT INTO data_pribadi
(nama, alamat) VALUES
$hasil=mysql_query($perintah); if($hasil){
echo (“Input data berhasil”);
}else {
echo (“Input data gagal”);
}
?>
Agar proses input data ini lebih ‘user friendly’, dapat dibuat sebuah form HTML
untuk input data, contoh:
<HTML>
<HEAD>
<TITLE> Form Input Data </TITLE>
</HEAD>
<BODY>
<CENTER>
<TABLE border = 1>
<tr>
<td align = center>Form Input Data Mahasiswa</td>
</tr>
<tr>
Training PHP 72/
<td>
<table>
<form method=post action=input.php>
<tr>
<td>Nama</td><td><input size=20></td>
type =textname=nama
</tr>
<tr>
<td>Alamat</td><td><input size=40></td>
</tr> type = text name=alamat
<tr>
<td> </td>
<tdalign=right><inputtype=submitname=submit value=Kirim></td>
</tr>
</table>
</td>
</tr>
</TABLE>
</CENTER>
</BODY>
</HTML>
Form HTML ini akan mengirimkan dua variabel yaitu variabel $nama dan $alamat ke
file input.php, sesuai yang tertera di parameter ACTION dan FORM HTML
<?
File input.php akan mengolah variabel tersebut dan memasukkannya ke dalam
database.//contoh
Dalammemasukkan data
sintaks INSERT dengan
yang variabel dari
dideklarasikan form
hanya HTML
field nama dan alamat,
//input.php
sedangkan field nim tidak perlu diisikan karena field tersebut memiliki atribut
mysql_connect(“localhost”,”mahasiswa”,”rahasia”)
AUTO_INCREMENT yang artinya MYSQL akana mengenerate sendiri data untuk field
; mysql_select_db(“data_mahasiswa”);
tersebut.
$perintah= “INSERT INTO data_pribadi
(nama, Mencari Data
Untuk mencari satu atau lebih
alamat) data di database digunakan sintaks berikut:
VALUES
(‘$nama’,’$alamat’)”; // perintah masukkan data
$hasil=mysql_query($peri
ntah); if($hasil){
echo (“Input data berhasil”);
}else {
echo (“Input data gagal”);
}
Training PHP 73/
SELECT field1,field2,… FROM nama_table WHERE syarat1, syarat2,… ORDER BY
nama_field
Jika field yang dicari adalah semua field dari tabel maka tidak perlu nama field
dideklarasikan semua tetapi cukup digantikan dengan tanda * (asteriks) maka semua
field akan diakses.
Paramater ORDER BY menunjukkan data akan diurutkan berdasar field yang mana,
default urutan adalah dari yang terkecil (urutan angka), dari A – Z (urutan huruf) dan
dari data yang pertama dimasukkan ke data yang terakhir (urutan waktu). Urutan ini
dapat dibalik dengan menambahkan atribut DESC. Sebagai contoh akan dicari semua
data pada database data_mahasiswa, table data_pribadi untuk ditampilkan urut
berdasarkan field nama.
<HTML>
Data yang dicari disimpan dalam variabel $hasil, variabel ini bertipe array dengan
<HEAD>
urutan default dari A ke Z, jika data akan diurutkan kebalikannya (dari Z ke A)
<TITLE>Mencari
ditambahkan atribut DESC,data di database</TITLE>
contoh program diatas, sintaks mencari data diubah
</HEAD> menjadi :
<BODY>
<TABLE>
<tr>
<td align = center> Data Mahasiswa</td>
</tr>
<tr>
<td>
<table border = 1>
<tr>
<td>Nama</td><td>NIM</td><td>ALAMAT</td>
</tr>
<?
//contoh mencari data dengan urutan berdasarkan nama
//cari.php
mysql_connect(“localhost”,”mahasiswa”,”rahasia”)
; mysql_select_db(“data_mahasiswa”);
while($data=mysql_fetch_row($hasil)){
echo (“<TR> <TD>$data[1]</TD>
<TD>$data[0]</TD>
<TD>$data[2]</
TD>
</TR>”);
}
?>
</table>
</td>
</tr>
</TABLE>
Training PHP 74/
$perintah= “SELECT * FROM data_pribadi ORDER BY nama DESC”;
Fungsi mysql_fetch_row()
Pada contoh program diatas, hasil dari query ke database disimpan dalam sebuah
variabel yaitu
$hasil. Untuk mengambil isi dari variabel ini digunakan fungsi mysql_fetch_row().
Fungsi mysql_fetch_row() mengambil data dari variabel $hasil secara baris perbaris.
Pengambilan pertama adalah baris data yang paling atas. Data yang akan diambil
dalam bentuk array, dimana elemen array adalah field-field dari tabel data.
Pembacaan dilakukan perbaris data, sehingga perintah while akan mendapatkan
nilai false, dengan demikian perulangan dihentikan.
Fungsi mysql_fetch_array()
Selain menggunakan fungsi mysql_fetch_row() untuk mengambil hasil query ke
database, dapat juga digunakan fungsi mysql_fetch_array(). Fungsi ini hampir sama,
dimana data dibaca baris perbaris, perbedaannya menggunakan
mysql_fetch_array() hasil yang diperoleh dalam bentuk array assosiatif. Sehingga
bila pada pembacaan mysql_fetch_row indeksnya adalah numeric, maka pada hasil
pembacaan dengan mysql_fetch_array($hasil) pembacaan menghasilkan array
dengan indeks string sesuai dengan nama fieldnya, contoh : $row[nama],
$row[nama],$row[alamat]. Pembacaan dilakukan baris perbaris data, sampai tidak
ada lagi baris data yang dibaca.
Mengedit Data
Untuk mengedit data menggunakan sintaks berikut:
Sebagai contoh, akan dicoba untuk mengedit salah satu data dari tabel
data_mahasiswa.
<?
//file include untuk koneksi database
//db.inc.php
mysql_connect(“localhost”,”mahasiswa”,”rahasia”);//konek
si database mysql_select_db(“data_mahasiswa”);
?>
<?
//form untuk memilih data yang akan diedit
//edit.php
?>
<HTML>
<HEAD>
<TITLE>Edit data</TITLE>
</HEAD>
<BODY>
<TABLE>
<tr>
<td align = center> Edit Data </td>
</tr>
<tr>
<td>
<table border = 1>
<?
include “db.inc.php”; //koneksi ke database
$perintah= “SELECT * FROM data_pribadi”;
$hasil=mysql_query($perintah); //perintah dilaksanakan hasil
disimpan dlm $hasil
Training PHP 75/
while($row=mysql_fetch_array($ha
sil)){ echo (“<TR>
<TD>$row[nama]</TD>”); echo
(“ <TD>$row[nim]</TD>”);
echo (“ <TD>$row[alamat]</TD>”);
echo (“<td> <a href=\”edit_form.php?
id=$row[nim]\”> Edit
</a></td></TR>”);
}
?>
</table>
</td></tr></TABLE>
Untuk contoh program mengedit data ini, terdiri atas empat buah file program. File
db.inc.php
adalah file untuk koneksi database, sehingga untuk koneksi ke database untuk tiga file
lainnya cukup dilakukan dengan menginclude file db.inc.php ini. Dengan
mendeklarasikan koneksi database ke dalam sebuah file include tersendiri akan
memudahkan. Jika suatu saat perlu dilakukan perubahan user_name atau password
untuk koneksi database. Untuk penamaan perlu dilakukan hati-hati, tetaplah konsisten
menggunakan ekstensi.php agar isi file tersebut tidak dapat terlihat. Kehati-hatian ini
sangat diperlukan mengingat isi file koneksi ini sangat penting untuk keamanan data
dan bersifat rahasia.
File kedua untuk contoh program mengedit data adalah file edit.php, file ini akan
menampilkan keseluruhan data yang ada dalam tabel, kemudian pada kolom terakhir
akan tampil menu edit yang jika di klik akan membawa program untuk menjalankan
file edit_form.php
File ketiga contoh program mengedit data adalah file edit_form.php. File ini akan
menampilkan form untuk mengedit data yang telah dipilih pada form sebelumnya.
Mekanismenya adalah pada form yang pertama (file edit.php) pengguna memili
salah satu data yang akan diedit dengan mengklik menu edit pada kolom yang
paling kanan. Pada saat menu edit ini diklik program akan menuju file edit_form.php
dan mengirimkan variael $id yang isinya nomor karyawan yang dipilih untuk diedit
datanya. Berikut file program edit_form.php
</HEAD>
<BODY>
<CENTER>
<TABLE border = 1>
<tr>
<td align = center>Form Edit Data Mahasiswa</td>
</tr>
<tr>
<td>
<table>
<?
include "db.inc.php"; //koneksi ke database
$perintah= "SELECT * FROM data_pribadi WHERE nim='$id'";
$hasil=mysql_query($perintah);
$row = mysql_fetch_array($hasil);
?>
<form method=post action=edit_data.php>
<tr>
<input "$row[nim]"?>" >
type=hidden name="id" value ="<?echo
Editlah data yang akan diubah, misalnya mengubah alamat mahasiswa yang baru
pindah rumah.
Isilah alamat yang baru, kemudian klik tombol edit.
Dengan mengklik tombol edit, maka program akan menuju ke file program yang ke
empat, yaitu file edit_data.php dengan membawa tiga variabel, yaitu variabel $id,
yang berisi data nomor induk mahasiswa (nim), variabel $nama yang berisi data
nama mahasiswa dan variabel $alamat yang berisi data alamat. Pada file ini
dilakukan perubahan data pada database dengan menggunakan sintaks :
$perintah = “UPDATE data_pribadi SET nama=’$nama’, alamat = ‘$alamat’ where nim = ‘$id’”;
Untuk melihat hasilnya, apakah data sudah berubah atau belum, program
diarahkan kembali ke file edit.php dengan perintah header(“location:edit.php”). File
program edit_data.php sebagai berikut:
<?
Menghapus Data
//edit_data.php
Untuk menghapus data, menggunakan sintaks berikut:
include”db.inc.
php”;
$perintah = “UPDATE data_pribadi SET nama=’$nama’,
DELETE FROM nama_table WHERE
alamat = syarat1,syarat2,…
‘$alamat’ where
nim =
Sebagai contoh, form edit data pada program diatas ditambahkan menu untuk
‘$id’”;
menghapus data sebagai berikut:
mysql_query($perint
echo (“<td> <a href=\”delete.php?id=$row[nim]\”> Delete </a></td></TR>”);
Training PHP 77/
Menu Delete akan membawa program ke file delete.php yang isinya untuk
mengapus data yang telah dipilih pada form di atas. File delete.php sebagai berikut:
<?
Menambah, Mengedit dan Menghapus Field Tabel
//delete.php
Menambah field table menggunakan sintaks berikut :
include”db.inc.
php”;
$perintah = “DELETE FROM data_pribadi WHERE
ALTER TABLE nama_table
nim=’$id’”;ADD nama_field tipe_field atribut_field
mysql_query($perintah);
header(“location:edit.php”);
Contohnya, pada table mahasiswa akan ditambahkan field “jurusan” dengan tipe
“varchar” panjang field 50 character.
<?
Jalankan program diatas di browser, Jika berhasil akan tampil
//contoh menambah field tabel database MYSQL
//tambah_field.php
dilayar tulisan: Field jurusan berhasil ditambahkan
mysql_connect(“localhost”,”mahasiswa”,”rahasia”);
mysql_select_db(“data_mahasiswa”);
Struktur tabel data_mahasiswa akan berubah menjadi 4 field, yaitu nim yang
bertipe integer, nama“ALTER
$perintah= bertipeTABLE data_pribadi
varchar(100), ADD
alamat jurusan
bertipe varchar(255) dan
varchar(255)”;
jurusan bertipe varchar(255).
$tambah_field=mysql_db_query(“data_mahasiswa”,$perintah);
if($tambah_field){
Suatu saat, adakalanya tabel yang telah dibuat memerlukan modifikasi atau
perubahan,echo (“<BR><BR>Field
misalnya tipe field yang jurusan berhasil
sebelumnya ditambahkan”);
char ingin diubah menjadi varchar,
}else {
atau panjang field yang semula char(50), misalnya ingin diperlebar menjadi
echo (“<BR><BR>Field
char(100), jurusan
Untuk mengubah gagal
field dataditambahkan”);
ini menggunakan sintaks :
}
Sebagai contoh field jurusan pada tabel data_pribadi akan diubah tipe fieldnya menjadi
char(50)
<?
//contoh mengubah field tabel database MYSQL
//ubah_field.php
Training PHP 78/
mysql_connect(“localhost”,”mahasiswa”,”rahasia”);
mysql_select_db(“data_mahasiswa”);
$perintah= “ALTER TABLE data_pribadi MODIFY jurusan
char(50)”;
$ubah_field=mysql_db_query(“data_mahasiswa”,$perintah);
if($ubah_field){
echo (“<BR><BR>Field jurusan berhasil diubah”);
}else {
echo (“<BR><BR>Field jurusan gagal diubah”);
}
Jalankan di browser, jika berhasil akan muncul dilayar tulisan
Struktur databasenya akan berubah juga, dimana field jurusan mempunyai tipe
data char(50). Untuk menghapus sebuah field dari tabel menggunakan sintaks
berikut:
Sebagai contoh, field jurusan pada tale data_pribadi akan dihapus, menggunakan
program berikut:
Dalam PHP, class merupakan kumpulan variabel dan fungsi yang bekerja dengan
variabel tersebut, dan object adalah instans atau turunan dari class. Sebuah object
akan mewarisi variabel dan fungsi dari class tempatnya berasal.
Class nama_class{
}
Untuk membuat sebuah object, digunakan perintah :
$sebuah_objek = new nama_class;
Untuk mengakses fungsi-fungsi dari class digunakan operator .
Misalkan akan dibuat sebuah class yang mendefinisikan sebuah kotak. Class kotak
akan memiliki variabel-variabel yang menggambarkan karakteristik dari sebuah
kotak dan fungsi untuk menggambar kotak.
<?
//classkotak.php
class Kotak{
//karakteristik
kotak var
$x_awal = 0;
var $y_awal =
0; var
$panjang=
250; var $lebar
= 50;
//fungsi-fungsi (method)
//fungsi set koordinat x
awal function
set_x_awal($x_awal){
$this -> x_awal = $x_awall;
}
//fungsi set koordinat y
awal function
set_y_awal($y_awal){
Training PHP 80/
}
//fungsi set lebar kotak
function
set_lebar($lebar){
$this -> lebar = $lebar;
}
//fungsi menggambar kotak
function gambar_kotak($x_awal, $y_awal, $panjang, $lebar){
//kirim header
Header("Content-Type: image.jpeg");
//membuat kotak
ImageFill($img,0,0,$putih)
;
Imagerectangle($img,$x_awal,$y_awal,$panjang,$lebar,
$hitam);
//output image ke
browser
ImageJPEG($img);
Class kotak mendefinisikan detail dari sebuah kotak. Karakteristik dari kotak adalah
koordinat awal dimana kotak akan digambarkan, pnjang kotak dan lebar kotak. Untuk
membuat sebuah kotak, maka dibuat sebuah object yang merupakan instans dari
class kotak.
<?yang dihasilkan adalah persis dengan kotak yang didefinisikan oleh class
Kotak
Kotak.//contoh membuat object
Dalam pemrograman dari sebuah
berorientasi class setelah class dibuat, maka dapat
object,
//objectkotak.php
dibuat banyak object yang dapat persis seperti class-nya atau dapat juga
mempunyai karakteristik yang berbeda dengan classnya (untuk kotak, ukuran
//mengaitkan dengan filedapat berbeda-beda).
class
include”classkotak.php”;
Eksistensi cookies dapat diatur dengan atribut “expire”. Contoh jika diinginkan
$test_cookies berumur 1 jam (3600 detik), sintaksnya adalah sebagai berikut:
Session Handling
Fasilitas session adalah salah satu keunggulan PHP, menggunakan session, seorang
pengunjung situs web dapat memiliki variabel yang akan terus ada selama dalam
kunjungannya.
Variabel Session
Variabel session adalah sebuah variabel global, yang akan dibuat pada saat
session dimulai. Untuk memulai session dapat secara explisit dengan fungsi
session_start() atau secara implisit menggunakan fungsi session_register(). Untuk
lebih jelasnya dalam contoh berikut:
<?
//contoh variabel session
//session1.php
session_start();
$test_session = "ini variabel
session";
session_register("test_session")
;
echo("<a href=session2.php>LANJUT>>><a\>");
?>
<?
//contoh variabel session
//
session2.ph
Jalankan program session1.php, klik “LANJUT>>>” , program akan
menjalankan session2.php, hasilnya dilayar akan muncul tulisan
sebagai berikut:
<HTML>
<HEAD>
<TITLE> Kirim Email </TITLE>
</HEAD>
<BODY>
<? Echo ("<FORM METHOD = post ACTION=$PHP_SELF>") ?
>
<h3> Kirim Email </h3>
<p> To: <INPUT TYPE = text NAME = tujuan SIZE=30>
<br> Subject: <INPUT TYPE = text NAME = hal SIZE=30>
<P> Message : <br> <TEXTAREA NAME="pesan"
ROWS="5" COLS="70"></TEXTAREA>
Cobalah simpan program diatas dengan nama email.php kemudian cobalah di
browser, cobakan untuk mengirimkan email.
Training PHP 84/
Modul VIII
1. Konsep Template
Konsep template muncul dilatarbelakangi oleh kurang efisiennya pemrograman PHP
yang konvensional (embedded HTML), terutama dalam pembuatan program dalam skala
besar. Pada pemrograman konvensional PHP di-embed-kan dalam HTML untuk membuat
tampilan web yang dinamis. Web programmer (pembuat script PHP) akan menambahkan
programnya (script PHP) dalam web yang telah didisain oleh web designer, sedemikian rupa
sehingga tampilan web menjadi dinamis. Namun jika ada perubahan dalam disain web
(misalnya perubahan tata letak tanggal) maka web programmer juga harus merubah posisi
script yang digunakan untuk menampilkan tanggal. Untuk web skala kecil maka hal tersebut
bukan menjadi masalah, karena perubahan yang dilakukan sedikit. Akan tetapi untuk web
dalam skala besar tentunya akan banyak perubahan yang dilakukan, hal ini tentunya
menjadi tidak efisien. Salah satu cara untuk mengatasi hal tersebut adalah penggunaan
template. Dengan menggunakan template maka perubahan-perubahan hanya dilakukan
pada file template saja. Sedangkan file lain (yang mengacu pada template tersebut tidak
perlu diubah).
Selain itu penggunaan template memungkinkan web programmer dan web designer bekerja
secara parallel untuk membuat suatu web yang dinamis. Namun tetap diperlukan adanya
kesepakatan tentang kode-kode (tag-tag) yang digunakan untuk memproses file template.
Dengan demikian web designer dapat berkonsntrasi dalam pembuatan design, sedangkan
web programmer dapat berkonsentrasi dalam pembuatan script PHP.
Ide dasar dari konsep template ini adalah file template yang dibuat oleh web designer
diberi kode- kode (tag-tag) khusus, yang nantinya akan digantikan oleh hasil
pemrosesan script yang dibuat oleh web programmer. File template di-parsing kemudian
tag-tag yang ada digantikan dengan keluaran dari fungsi yang memproses script.
File Template
format HTML
Gambar 8.2 dan 8.3 merupakan contoh file template misalnya diberi
nama template.tpl.php. Dalam file template tersebut terdapat beberapa
tag. Tag – tag tersebut nantinya akan menjadi indeks dari array
associative. Untuk lebih jelasnya dapat dilihat dalam tabel berikut
b. Pembuatan Fungsi
Pembuatan fungsi untuk pemrograman template seperti
halnya dalam pembuatan fungsi PHP biasa. Hanya saja dalam
pembuatan fungsi kali ini
Training PHP 88/
diperlukan pengembalian nilai keluaran fungsi dalam format string.
Hasil keluaran fungsi (dalam format string) nanti akan dimasukkan
dalam array assosiatif dengan indexnya adalah nama tag yang ada
dalam file template.
Contoh fungsi yag digunakan dalam file template
<?
Function fungsiAtas() {
$atas = date();
return $atas;
}
Fungtion fungsiTengah($nama) {
$tengah = “Hello Nama ku = “.
Fungtion fungsiBawah() {
$bawah = “Adalah Mahasiswa Unwim”;
return $bawah;
}
?>
Catatan :
Penggunaan tanda ‘’ dan “” perlu diperhatikan sebagai berikut :
o Tanda ‘’ digunakan jika diantara tanda tersebut ada tag html yang
biasanya ada tanda “” dalam tag attributnya
Training PHP 89/
Contoh :
$a[“ATAS”] = ‘<input type=”text” name=”jawab”>’;
bisa juga digunakan tanda “” tetapi ada penambahan tanda slash dalam
tag attribut HTML, contoh nya :
$a[“ATAS”] = fungsiAtas();
$a[“TENGAH”] = fungsiTengah(“Arie”);
$a[“bawah”] = fungsiBawah();
Selain cara tersebut penggabungan dapat pula dilakukan dengan menggunakan tag ‘; hal ini biasanya digunakan
dalam fungsi, contohnya :
Function fungsiAtas() {
$atas = ‘Pencetakan bilangan dari 1 sampai 10’;
$atas .= ‘<br>’;
for ($c=1;$c<11;$c++) {
$atas .= $c.’<br>’;
}
return $atas;
Catatan lain :
Oleh karena pengembalian nilai fungsi adalah string maka tidak diperkenankan
menggunakan perintah echo dan print dalam fungsi. Adanya perintah echo atau
print dapat menyebabkan pencetakan string langsung ke browser tanpa melalui
proses parsing.
d. Parsing
Dalam pemrograman template untuk mem-parsing file
template digunakan fungsi Parse([file template],[array]).
Pemanggilan fungsi parsing dilakukan sebagai berikut :
Training PHP 90/
<?
Parse (“template.tpl.php”,$a);
?>
3. Contoh Kasus
a. Program 1
Pembuatan File Template
Buatlah file template seperti berikut :
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
Pembuatan
{
$title = "Program Pelatihan PHP";
return $title;
}
function tanggal() {
Training PHP 91/
$tanggal = date("j-n-
Y"); return $tanggal;
}
function nama($nama) {
return $nama;
}
function menu() {
$menu = '<a href="'.$PHP_SELF.'?v=nama1">nama1</a>'.'<br>';
$menu .= '<a href="'.$PHP_SELF.'?v=nama2">nama2</a>';
return $menu;
}
function isi($var_isi) {
switch
($var_isi) {
case
"nama1" :
$isi .= "anda telah mengklik nama
pertama"."<br>"; break;
case "nama2" :
$isi .= "anda telah mengklik nama
kedua"."<br>"; break;
default :
$isi .= "silakan klik menu di
samping"."<br>"; break;
}
return $isi;
}
Pengisian array
$a[“TITLE”] = title();
$a[“TANGGAL”] = tanggal();
$a[“NAMA”] = nama(“Arie”);
$a[“MENU”] = menu();
$a[“ISI”] = isi($v);
Proses Parsing
Secara lengkap fungsi, pengisian array dan parsing dimasukkan dalam file latih1.php :
<?
include ("parsing.php");
function title() {
$title = "Program Pelatihan
function tanggal() {
$tanggal = date("j-n-
Y"); return $tanggal;
}
function nama($nama) {
return $nama;
}
function menu() {
$menu = '<a href="'.$PHP_SELF.'?v=nama1">nama1</a>'.'<br>';
$menu .= '<a href="'.$PHP_SELF.'?v=nama2">nama2</a>';
return $menu;
}
function isi($var_isi) {
switch
($var_isi) {
case
"nama1" :
$isi .= "anda telah mengklik nama
pertama"."<br>"; break;
case "nama2" :
$isi .= "anda telah mengklik nama
kedua"."<br>"; break;
default :
$isi .= "silakan klik menu di
samping"."<br>"; break;
}
return $isi;
}
$a["TITLE"] = title();
$a["TANGGAL"] = tanggal();
$a["NAMA"] = nama("Arie");
$a["MENU"] = menu();
$a["ISI"] = isi($v);
Parse ("template1.tpl.php",$a);
?>
b. Program 2
Persiapan
1. Buat database uji
2. Buat table mahasiswa dengan fields :
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<?
include ("parsing.php");
function title() {
$title = "Daftar Mahasiswa";
return $title;
}
function isi() {
// variabel-variabel
// -- nama host
$host = "192.168.0.248";
// -- nama user
$user = "root";
// -- password
$pass = "cyber";
// -- nama database
$namadb = "uji";
// query to mysql
$sql = "select * from mahasiswa";
$result = mysql_query($sql,$link);
$isi .= '
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="21%" bgcolor="#AAAAAA"><b>NIM</b></td>
<td width="27%" bgcolor="#AAAAAA"><b>NAMA</b></td>
<td width="25%" bgcolor="#AAAAAA"><b>TEMPAT LAHIR</b></td>
<td width="27%" bgcolor="#AAAAAA"><b>TANGGAL LAHIR</b></td>
</tr>
';
return $isi;
}
function footer() {
$footer = "Dibuat oleh admin";
return $footer;
}
$a["TITLE"] = title();
$a["ISI"] = isi();
$a["FOOTER"] = footer();
Parse ("template2.tpl.php",
$a);
?>
Keterangan :
Variable-variabel dalam fungsi isi() dapat diganti disesuaikan dengan kondisi
masing-masing (hostnya,user dan password) :
// variabel-variabel
// -- nama host
$host = "192.168.0.248";
// -- nama user
$user = "root";
// -- password
$pass = "cyber";
// -- nama database
$namadb = "uji";