You are on page 1of 52

WEB PROGRAMMING

Disusun oleh:
Moh. Sofyan S. Thayf, S.T., M.CS.

STMIK KHARISMA MAKASSAR


2009
Session Pokok Bahasan
1 Pengantar Web Programming
 Pengantar Java Script
 Pengantar PHP
2 Teknik Pemrograman
 Struktur Kontrol PHP
 Function dan Procedure
3 Pemrosesan Form
 Validasi Form
 Pemrosesan Form
4 Akses Data
 Pengantar MySQL
 SQL Query
 PHP-MySQL
5 Array
 Menangani Data dalam Array
6 Manipulasi String
 Operasi String
7 Cookies dan Session
 Cookies
 Session
8 Penanganan File
 File Teks
 Upload File
9 Grafik dan Dokumen
 Bekerja dengan GD
 Membuat Dokumen PDF
10 Asynchrounous JavaScript
 Pengantar AJAX
 AJAX – PHP

2
Introduction

World Wide Web (WWW) atau dengan singkat sering disebut web adalah satu bentuk
media informasi dan komunikasi dan merupakan aplikasi terpopuler atau paling banyak
dimanfaatkan dalam jaringan internet. Melalui sarana web, berbagai bentuk informasi
dapat disampaikan secara interaktif kepada pengguna internet di seluruh dunia.
Secara fisik, web sesungguhnya merupakan rangkaian dokumen berisi teks, gambar, atau
multimedia, yang saling berhubungan ( link) satu dengan yang lain, membentuk rangkaian
informasi lengkap.
Karena merupakan aplikasi dalam jaringan internet yang meliputi seluruh dunia, dimana
penggunanya sangat mungkin memiliki dan menggunakan perangkat dan platform
komputer yang berbeda-beda, maka web harus bersifat universal dan dapat diakses
melalui beragam platform. Karena itu dokumen web ditulis sebagai dokumen hypertext
dengan menggunakan Hyper Text Markup Language (HTML).
HTML merupakan bahasa markup yang dipakai untuk mendefinisikan isi, layout, dan
format sebuah dokumen. Representasi dokumen yang dihasilkan bergantung pada kode -
kode HTML yang dituliskan untuk dokumen tersebut. Dengan HTML , sebuah dokumen
dengan penampilan yang kompleks dapat disajikan hanya dengan menuliskan kode -kode
HTML yang berbasis plain text (file berformat teks, bukan file biner). Karena itu
dokumen web disebut dokumen hypertext, dan karena itu pula dokumen web dapat
ditransmisikan dan dibaca dengan mudah di seluruh dunia sekalipun pada platform yang
berbeda-beda
Dokumen web dapat dibuat secara statik maupun dinamik. Web statik merupakan
dokumen web yang dibentuk dengan menggunakan HTML murni, dikatakan statik karena
isinya bersifat tetap atau tidak berubah sampai dilakukan perubahan pada kode HTML -
nya. Web dinamik adalah dokumen web yang isinya bisa berubah disesuaikan dengan
berbagai keadaan seperti waktu, tempat, ataupun pilihan pengguna. Dokumen web
dinamik dibentuk dengan menggunakan pemrograman yang menghasilkan HTML
sebagai bentuk output

3
1
Pengantar Web Programming

Dokumen web pada dasarnya dibentuk dengan menggunakan HyperText Markup


Language (HTML). Sebuah dokumen web akan tampil sesuai dengan kode HTML yang
ditulis, dan hanya berubah apabila kode HTML -nya dirubah sebagian atau seluruhnya,
atau dapat dikatakan bahwa dokume web dengan HTML bersifat statik.
Dalam perkembangannya, web saat ini sudah digunakan untuk aplikasi yang lebih luas,
dan tidak terbatas pada informasi yang sifatnya statik saja. Web dinamik adalah dokumen
web yang isinya bisa berubah disesuaikan dengan berbagai keadaan seperti waktu,
tempat, ataupun pilihan pengguna. Web dinamik dibentuk dengan menggunakan teknik
pemrograman dalam bahasa pemrograman tertentu yang menghasilkan HTML sebagai
bentuk output.
Webmerupakan satu bentuk komunikasi data berarsitektur client-server, di mana sebuah
client yang membutuhkan layanan web harus terkoneksi dan melakukan request ke
sedikitnya satu server yang khusus melayani web (web server), dan server akan
memberikan respon atas request dari client tersebut dengan mengirimkan dokumen web
yang diminta lalu ditampilkan melalui program browser di client.
Berdasarkan arsitektur client-server tersebut, maka pemrograman web dapat dilakukan di
sisi server (server-side programming) maupun di sisi client (client-side programming).
Pada pemrograman client-side, kode program yagn akan menghasilkan dokumen web
akan di kirim ke web browser, dan web browser akan mengeksekusi program untuk
kemudian menampilkan hasilnya. Pada pemrograman server-side, program akan
dieksekusi oleh server dan hasilnya akan dikirim ke browser client untuk di tampilkan.
Penggunaan client-side programming dan server-side programming memiliki keuntungan
dan kelemahannya masing-masing, dan digunakan sesuai denga n kebutuhannya, namun
keduanya juga dapat digabungkan untuk mendapatkan performance aplikasi web yang
lebih baik.
Keuntungan client-side programming, aktifitas yang hanya berhubungan dengan tampilan
dan validasi di sisi pengguna/pembaca tidak membebani server dan proses bisa
melibatkan event pada browser client.
Pemrograman client-side tidak cukup baik untuk aplikasi web yang membutuhkan faktor
keamanan, karena script program ikut di dalam kode HTML yang di-download oleh
browser user atau di-download sebagai file eksternal, sehingga pengguna bisa mengakses
source-code program.
Pemrograman yang dieksekusi di sisi server (server-side) memungkinkan pengembangan
web dinamik yang melibatkan akses data, serta aktifitas yang membutuhkan autentikasi
dan security. Permasalahan pada pemrograman server-side adalah terkait dengan beban

4
server jika harus melayani jumlah pengguna yang banyak secara bersamaan ( concurrent).
Karena itu dalam disain program, ef isiensi perlu menjadi perhatian.
Bahasa pemrograman yang peling populer untuk pemrograman web client-side adalah
JavaScript, dan bahasa-bahasa yang banyak di pakai untuk pemrograman server-side
antara lain PHP, Perl, Python, ASP, JSP, dan lain -lain, namun dalam tutorial ini, kita
membatasi hanya pada bahasa pemrograman PHP yang banyak digunakan dan relatif
mudah untuk dipelajari.

JavaScript
JavaScript pertama kali dikembangkan oleh Brendan Eich pada Netscape Navigator
2.0, pada tahun 1996, dan hingga saa t ini dapat dijalankan pada hampir semua browser
populer terbaru. Standart JavaScript disahkan oleh ISO pada tahun 1998 dan sampai saat
ini masih terus dikembangkan.

Java dan JavaScript adalah dua bahasa yang sama sekali berbeda, baik dari segi konsep
maupun disain.
Java (dikembangkan oleh Sun Microsystems) adalah bahasa pemrograman yang sangat
kompleks dan powerful seperti C atau C++.

HTML bukanlah bahasa pemrograman, tetapi dengan tambahan JavaScript, HTML


menjadi memiliki tools pemrograman, yang memun gkinkan sebuah dokumen web dapat:
 Menghasilkan tampilan dokumen web yang dinamis dengan pemanfaatan
variabel-variabel dan kontrol struktur dari JavaScript
 Merespon atau memberikan reaksi terhadap event pada browser seperti klik
mouse, atau menutup dan memb uka window browser
 Melakukan validasi data pada form HTML

JavaScript dalam HTML


JavaScript disisipkan ke dalam kode HTML dengan menggunakan pasangan tag
<script> .. </script> , dan atribut type digunakan untuk mendefinisikan tipe bahasa
<html>
<body>
<script type="text/javascript">
document.write("Hello World!");
</script>
</body>
</html>

5
Script JavaScript bisa ditempatkan pada bagian <head> , pada bagian <body>, ataupun
pada <head> dan <body> sekaligus dari HTML, disesuaikan dengan dimana JavaScript
diperlukan

<html>
<head>
<script type="text/javascript">
....
</script>
</head>

<html>
<head>
</head>
<body>
<script type="text/javascript">
....
</script>
</body>

JavaScript juga dapat disimpan pada file eksternal yang nantinya di -include ke dalam
dokumen HTML
<html>
<head>
<script src="namafile.js"></script>
</head>
<body>
</body>
</html>

Cara ini memungkinkan penggunaan bersama satu set kode JavaScript untuk sejumlah
dokumen HTML tanpa harus menuliskannya kembali di setiap dokumen.
Sebagaimana layaknya bahasa pemrograman, JavaScript ditulis dalam bentuk urutan
statemen, eksekusi akan dilakukan oleh browser dan setiap statemen output JavaScript
hasilnya akan langsung ditampilkan oleh browser.
Contoh:
<script type="text/javascript">
document.write("<h1> Judul Halaman</h1><hr>");
document.write("<p> Ini paragraf pertama </p>");
document.write("<p> Ini paragraf kedua </p>");
</script>

Contoh output dengan proses seleksi:


<script type="text/javascript">
var d=new Date();
var time=d.getHours();

if (time<10)
{

6
document.write("<b>Selamat Pagi</b>");
}
</script>

JavaScript Function
Untuk mencegah agar script tidak langsung dieksekusi oleh browser, kode JavaScript
dapat disimpan dalam bentuk function. Function akan dieksekusi melalui pemanggilan
function tersebut atau dipicu oleh sebuah event (lihat Event JavaScript). Pemanggilan
function dapat dilakukan oleh kode JavaScript lain di seluruh bagian dokumen HTML
Function pada JavaScript dapat dituliskan pada bagian <head> maupun <body> dari
HTML, termasuk melalui pemanggilan JavaScript sebagai file eksternal (file .js) , namun
untuk memastikan function telah dibaca atau di-load oleh browser, dan untuk function
yang akan digunakan/dipanggil berulangkali dalam sebuah dokumen, sebaiknya function
JavaScript di simpan di bagi an <head> dari dokumen HTML.
<html>
<head>
<script type="text/javascript">
function tampilpesan()
{
alert("Hello World!");
}
</script>
</head>

<body>
<form>
<input type="button" value=" Coba diKlik!" onclick="tampilpesan()">
</form>
</body>
</html>

Sintaks untuk menuliskan function pada JavaScript:


function nama_function (var1,var2,...,varX )
{
.. kode dari function di tulis di sini ..
}

var1, var2, sampai varX adalah parameter yang akan dilewatkan pada function. Function
tanpa parameter tetap menggunakan t anda kurung () pada nama function.
Jika function menghasilkan nilai balik/nilai hasil ( return value) maka digunakan
statement return.
function prod(a,b)
{
x=a*b;
return x;
}

7
Jika function di atas di panggil dengan sintaks
hasil=prod(2,3);

maka variabel hasil akan bernilai 6, karena function prod() menghasilkan nilai balik
berupa hasil kali kedua parameternya ( a dan b).

Event dan JavaScript


Setiap element dari halaman web umumnya memiliki event tertentu yang dapat
digunakan untuk memicu eksekusi dari function JavaScript. Bahkan untuk bisa
memanfaatkan event, selalu digunakan bersama dengan function yang sudah
didefinisikan untuk merespon event tersebut.
Contoh event:
 onclick : klik mouse
 onload : loading halaman web atau file image (gambar)
 onunload : unloading halaman web atau file image (gambar)
 onmouseover/onmouseout : melewatkan mouse diatas hot-spot (mis.: link) pada
halaman web
 onfocus/onblur : pemilihan input-box pada form HTML
 onchange : merubah isi input-box pada form HTML
 onsubmit : melakukan submit sebuah form HTML

Contoh pemanfaatan event pada JavaScript:


<html>
<head>
<script type="text/javascript">
function mouseOver()
{
document.b1.src ="webmail_b1.jpg";
}
function mouseOut()
{
document.b1.src ="webmail_b0.jpg";
}
</script>
</head>

<body bgcolor='ddeeff'>
<a href="http://webmail.kharisma.ac.id"
target="_blank" onclick="alert('Maaf, sedang offline..')">
<img border="0" alt="Webmail KHARISMA"
src="webmail_b0.jpg" name="b1"
onmouseOver="mouseOver()"

8
onmouseOut="mouseOut()" >
</a>
</body>
</html>

Penulisan kode JavaScript bersifat case -sensitive, sehingga dalam menulis kode
JavaScript, penggunaan huruf kecil dan huruf besar harus diperhatikan. Umumnya
reserverd word dari JavaScript seperti function dan return ditulis dalam huruf kecil

PHP
PHP adalah singkatan dari “PHP: Hypertext Preprocessor” , merupakan bahasa
scripting yang bekerja di sisi server, yang banyak digunakan untuk pengembangan
aplikasi web. PHP dikembangkan oleh Rasmus Lerdof sejak tahun 1997 pada server
web Apache. Server web Apache sendiri saat ini merupakan server web terpolpuler dan
sudah tersedia dalam berbagai platform server seperti UNIX, Linux, Windows, dan Mac.

Sintax PHP
Kode PHP selalu ditulis di dalam blok yang di awali dengan tanda <?php dan diakhiri
dengan ?>, atau dapat juga di tulis dengan bentuk singkat <? dan ?>. Akan tetapi untuk
mendapatkan kompatibilitas maksimum, dianjurkan untuk menggunakan bentuk yang
pertama
<?php
.. kode php di sini ..
?>

Karena pada dasarnya akan menghasilkan kode HTML yang ak an membentuk dokumen
web, maka file source code PHP akan terlihat seperti file HTML yang disisipi dengan
kode-kode PHP
<html>
<body>
<?php
echo "Hello World";
?>
</body>
</html>

Setiap baris perintah PHP diakhiri dengan tanda semicolon (;), dan file berisi kode PHP
disimpan dengan ekstensi .php, .php3, atau .phtml. Jika file HTML yang mengandung
kode PHP disimpan dengan ekstensi .html, maka kode -kode PHP tersebut akan terbaca
sebagai isi dokumen.

9
Variabel pada PHP
Variabel digunakan untuk menampung nilai t ertentu berupa data text atau data nilai
tertentu selama eksekusi program. Variabel pada PHP sangat fleksibel, tidak seperti
kebanyakan bahasa pemrograman yang mengharuskan sebuah variabel dan tipenya
dideklarasikan terlebih dahulu sebelum digunakan, pada PHP tidak perlu ada deklarasi
variabel dan tipe data aan ditentukan otomatis pada saat digunakan pertama kali sesuai
dengan nilai yang diberikan
<?php
$txt = "Hello World!";
$number = 16;
?>

Nama variabel pada PHP selalu didahului dengan tanda $, dengan aturan penamaan yang
sama seperti bahasa pemrograman lain nya, antara lain seperti dimulai dengan huruf atau
underscore ( _ ) setelah tanda $, tidak dimulai dengan angka dan tidak mengandung spasi
atau tanda baca

Kode PHP tidak akan terlihat jika kita mencob a menggunakan fasilitas View Source dari
browser, akan yang terlihat hanya kode -kode HTML murni karena semua kode PHP
sudah diinterpretasi oleh server dan menghasilkan output HTML sebelum di kirim ke
client

Lebih jauh tentang PHP dan pemanfaatannya bersa ma JavaScript dalam pemrograman
web akan di uraikan dalam pembahasan -pembahasan selanjutnya.

10
2
Teknik Pemrograman

Struktur Kontrol
Pada prinsipnya, program dieksekusi secara berurutan (sekuensial) mulai dari baris
pertama hingga baris terakhir dari kode program. Namun karena berbagai kondisi logika,
seperti pemilihan dua nilai atau lebih, atau proses yang harus dilakukan berulang -ulang,
maka dikenal tiga struktur kontrol dalam pemrograman:
 Sekuensial
 Pencabangan
 Perulangan
Karena struktur sekuensial merupakan sifat natural dari program, maka tidak ada
statement khusus untuk kontrol sekuensial, tetapi untuk pencabangan dan perulangan
terdapat sejumlah statement khusus yang bisa digunakan sesuai keperluan

Pencabangan dengan IF .. ELSE ..


Statemen IF .. ELSE .. digunakan untuk memilih untuk menjalankan salah satu dari
dua proses berdasrkan sebuah kondisi, proses pertama dijalankan jika kondisi bernilai
benar (True) dan proses kedua dijalankan jika kondisi bernilai salah ( False)
if (kondisi)
.. kode yang akan dijalankan jika kondisi bernilai benar .. ;
else
.. kode yang akan dijalankan jika kondisi bernilai salah .. ;

Contoh:
<html>
<body>
<?php
$d=date("D");
if ($d == "Fri")
echo "Selamat berakhir pekan !";
else
echo "Selamat bekerja!";
?>
</body>
</html>

11
Jika kode yang akan dieksekusi lebih dari satu baris, maka kode harus ditulis dalam blok
yang ditandai dengan tanda kurung kurawal {}
<html>
<body>
<?php
$d=date("D");
if ($d == "Fri")
{
echo "Halo!<br />";
echo "Selamat berakhir pe kan!";
echo "Sampai jumpa!";
}
?>
</body>
</html>

Pencabangan dengan IF .. ELSEIF .. ELSE ..


Jika terdapat lebih dari satu kondisi yang akan bernilai benar, maka digunakan statement
IF .. ELSEIF .. ELSE ..
if (kondisi1)
.. kode yang akan dijalank an jika kondisi1 bernilai benar .. ;
Elseif (kondisi2)
.. kode yang akan dijalankan jika kondisi2 bernilai benar .. ;
else
.. kode yang akan dijalankan jika semua kondisi bernilai salah .. ;

Contoh:
<html>
<body>
<?php
$d=date("D");
if ($d == "Fri")
echo "Selamat berakhir pekan";
elseif ($d == "Sun")
echo "selamat berhari minggu!";
else
echo "Selamat bekerja!";
?>
</body>
</html>

Pencabangan dengan SWITCH


Jika pilihan dan kondisi cukup banyak, maka penggunaan statemen IF .. ELSEIF ..
menjadi tidak efisien baik dalam penulisan kode maupun dalam eksekusi oleh processor,
karena itu disarankan untuk menggunakan statemen SWITCH

12
switch (ekspresi)
{
case nilai1:
.. kode yang akan dijalankan jika ekspresi = nilai1.. ;
break;
case nilai2:
.. kode yang akan dijalankan jika ekspresi = nilai2.. ;
break;
default:
kode yang akan dijalankan
jika ekspresi tidak sama dengan
nilai-nilai yang tersedia ;
}

Contoh
<html>
<body>
<?php
switch ($x)
{
case 1:
echo "Number 1";
break;
case 2:
echo "Number 2";
break;
case 3:
echo "Number 3";
break;
default:
echo "No number between 1 and 3";
}
?>

</body>
</html>

Stetemen break digunakan untuk keluar dari statemen switch dan mencegah eksekusi
baris di bawahnya apabila satu pilihan telah memen uhi. Pilihan default akan diambil
apabila tidak ada nilai yang sama dengan ekspresi.

Perulangan dengan WHILE


Statemen WHILE digunakan untuk melakukan proses yang berulang selama satu kondisi
masih memenuhi
while (kondisi)
{
..Kode yang akan di jalankan
selama kondisi masih memenuhi ..
}

13
Contoh
<html>
<body>
<?php
$i=1;
while($i<=5)
{
echo "nomor urut: " . $i . "<br>";
$i++;
}
?>
</body>
</html>

Perulangan dalam statemen WHILE pada prinsipnya tak berhingga, karena itu selalu
dibutuhkan cara untuk mengatur dan membatasi perulangan seperti penggunaan counter
(penghitung). Pada contoh, statemen $i++ yang berarti penambahan nilai (increment)
variabel $i dengan 1 berfungsi sebagai counter. Tanpa adanya pembatasan perulangan,
proses perulangan tidak akan berhenti dan menyebabkan program gagal bekerja

Perulangan dengan DO .. WHILE


Perulangan dengan statemen DO .. WHILE sama dengan perulangan dengan statemen
WHILE , bedanya pada pengujian kondisi masih memenuhi atau tidak dilakukan setelah
proses dijalankan, sehingga proses dalam perulangan dengan DO ..WHILE selalu akan
dijalankan minimal satu kali
do
{
..Kode yang akan di jalankan
selama kondisi masih memenuhi..
}
while (kondisi)

Contoh:
<html>
<body>
<?php
$i=1;
do
{
echo "nomor urut: " . $i . "<br>";
$i++;
}
while($i<=5)
?>
</body>
</html>

14
Perulangan dengan FOR
Untuk proses perulangan yang jumlah perulangannya sudah diketahui, digunakan
statemen FOR.
for (nilai_awal; kondisi; increment)
{
..Kode yang akan di jalankan
selama kondisi masih memenuhi..
}

Jumlah perulangan pada statemen FOR ditentukan dari kombinasi nilai_awal , kondisi ,
dan increment , sehingga tidak membutuhkan counter di dalam proses perulangannya
Contoh
<html>
<body>
<?php
for ($i=1; $i<=5; $i++)
{
echo "Selamat Malam Dunia!<br >";
}
?>
</body>
</html>

Function dan Procedure


Function dan Procedure merupakan istilah untuk subprogram atau modul program yang
berdiri sendiri dan didisain untuk menjalankan satu fungsi tertentu. Keuntungan dengan
memecah-mecah program menjadi sejumlah function dan procedure antara lain:
 memudahkan pembuatan program dengan memilah -milah dan menyelesaikan
masalah dalam modul-modul program yang lebih kecil
 memudahkan penelusuran bila terjadi kesalahan, karena cukup melakukan
penelusuran pada modul tertentu saja, tidak perlu pada keseluruhan program
 memungkinkan penggunaan ulang (reuse) modul program untuk bagian lain dari
program atau untuk proyek pengembangan program yang lain
function dan procedure pada prinsipnya dan cara penulisannya sama, yang membedakan
adalah pengembalian nilai (return value), hasil eksekusi function memberikan nilai balik,
sedangkan procedure tidak memberikan nilai balik. Pada pemrograman PHP, function
dan procedure sama-sama dibentuk dengan menggunakan statemen function , yang
membedakannya adalah penggunaan statemen return pada function untuk pengembalian
nilai.
Contoh procedure:
<html>
<body>
<?php
// deklarasi procedure

15
function tulis_nama()
{
echo "Sofyan Thayf";
}

//pemanggilan procedure
Tulis_nama();
?>

</body>
</html>

Contoh function:
<html>
<body>
<?php

// deklarasi function
function add($x,$y)
{
$total = $x + $y;

//pengembalian nilai $total sebagai nilai balik


return $total;
}

//Pemanggilan function
$hasil = add(1,16);
echo $hasil;

?>

</body>
</html>

Tanda {} merupakan tanda awal dan akhir blok function, kode -kode dari function/
procedure dituliskan di antara dua tanda tersebut. Variabel $x dan $y pada contoh
function merupakan parameter untuk memberikan nilai masukan kepada function atau
procedure.
Function menghasilkan nilai, sehingga function dapat dianggap sebuah nilai, dan sebuah
nilai tidak dapat dituliskan berdiri sendiri, karena itu pemanggilan function harus
dinyatakan dalam bentuk ekspresi (pernyataan) atau bersama stat emen lain

$hasil = add(1,16); // pemanggilan dalam bentuk ekspresi


echo add(1,16); // pemanggilan bersama statemen lain
tulis_nama(); // pemanggilan procedure

16
Sejumlah function/procedure buatan sendiri (user defined function) dapat dikoleksi dalam
file tersendiri sebagai library dan dipanggil dari file program PHP yang lain dengan
function include() , atau require() yang merupakan function bawaan dari PHP
<html>
<body>
<?php include("header.php"); ?>

</body>
</html>

<html>
<body>
<?php require("header.php"); ?>

</body>
</html>

include() dan require() pada prinsipnya memiliki fungsi dan cara kerja yang sama,
tetapi berbeda pada penanganan error akibat kesalahan nama file yang di -include atau file
yag dimaksud tidak ada. Function include() hanya akan memberikan warning atau
pesan kesalahan dan melanjutkan ekseskusi program, sedangkan require() akan
menghentikan proses eksekusi program setelah memberikan warning..
Untuk integritas progam, sangat dianjurkan untuk menggunakan require() untuk meng-
include-kan file eksternal atau library/koleksi fungsi ke dalam program.
Dengan mengoleksi function/procedure sebagai library, akan menghemat waktu
pengembangan aplikasi-aplikasi berikutnya, karena function yang dikoleksi nantinya bisa
dimanfaatkan kembali (reuse) dengan mudah.

PHP sudah menyediakan sejumlah besar built -in function yang siap digunakan untuk
berbagai keperluan, referensi lengkap tentang koleksi built -in function dapat dilihat di
manual PHP (http://www.php.net/manual/en/)

17
3
Pemrosesan Web Form

Form HTML
Form (formulir) pada halaman web merupakan sarana untuk menerima input/masukan
dari pembaca/pengguna web, untuk berbagai keperluan seperti registrasi user, login user,
feedback pembaca, buuk tamu, survey on-line, dan lain-lain.
Untuk menggunakan form HTML, digunakan pasangan tag <FORM> .. </FORM> dan di
dalamnya di tuliskan sejumlah tag lain sebagai sarana ionput data
<html>
<body>
<form>
<input …>
<input …>
<input …>
</form>
</body>
</html>

Form pada HTML menyediakan sejumlah sar ana input seperti: text, password, radio-
button, checkbox, option, textarea

Text box
Untuk pengisian teks singkat seperti nama, nama user, alamat, atau sejenisnya digunakan
tag <input> bertipe text
<html>
<body>
<form>
Nama Depan: <input type=’text’ name=’nama1’><br>
Nama Belakang: <input type=’text’ name=’nama2’> <br>
Alamat: <input type=’text’ name=’alamat’> <br>
Kota: <input type=’text’ name=’kota’ value=’Makassar’> <br>
Email: <input type=’text’ name=’email’><br>
</form>
</body>
</html>

Atribut name pada tag <input> merupakan identitas dari elemen input pada form yang
nantinya akan mewakili data yang dimasukkan, karena itu harus bersifat unik. Atribut
value digunakan untuk memberikan nilai awal atau nilai default dari isian.

18
Password
Input bertipe password , pada dasarnya sama dengan input bertipe text, hanya saja saat
pengetikan pada kotak isian password, karakter yang diketikkan akan disembunyikan
<html>
<body>
<form>
Nama User: <input type=’text’ name=’nama1’><br>
Password: <input type=’password’ name=’pass1’><br>
Verifikasi Password: <input type=’password’ name=’pass2’><br>
</form>
</body>
</html>

Radio Button
Untuk isian yang berbentuk pilihan , digunakan tag <input> bertipe radio (radio button)
<html>
<body>
<form>
Jenis Kelamin: <input type=’radio’ name=’lp’ value=’L’> Laki-laki
<input type=’radio’ name=’lp’ value=’P’> Perempuan <br>
</form>
</body>
</html>

Atribut name pada tipe radio agak unik, nama yang sama digunakan untuk sejumlah
input tipe radio yang merupakan pilihan unt uk satu nilai. Nilai yang nantinya diambil
adalah value dari input radio yang dipilih

Checkbox
Untuk isian pilihan yang memungkinkan pemilihan lebih dari satu biasanya digunakan
input tipe checkbox
<html>
<body>
<form>
Hoby: <br>
<input type=’checkbox’ name=’baca’>Membaca <br>
<input type=’checkbox’ name=’sport’>Olahraga <br>
<input type=’checkbox’ name=’oto’>Otomotif <br>
</form>
</body>
</html>

Nilai yang akan dikirim adalah nilai logika True jika checkbox bersangkutan terpilih,
atau False jika checkbox tidak dipilih

19
Submit dan Reset
Tipe input submit dan reset bukan untuk membuat isian data, tetapi digunakan untuk
menampilkan tombol yang jika di klik akan mengakhiri pengisian form dan mengirimkan
datanya untuk diproses (submit) atau untuk membatalkan/mengosongkan isian form
<html>
<body>
<form>
<input type=’submit’ value=’Registrasi’>
<input type=’reset’ value=’Batal’>
</form>
</body>
</html>

Tipe submit dan reset tidak memerlukan nama, atribut value digunakan untuk
menuliskan teks pada tombol

Hidden
Jika terdapat data yang bersifat default dan tidak memerlukan masukan dari
pembaca/pengguna yang akan ikut dikirim bersama form, dapat digunakan tipe input
hidden
<html>
<body>
<form>
<input type=’hidden’ name=’cla ss’ value=’Indosat’>
<input type=’hidden’ name=’trainer’ value=’STMIK KHARISMA’>
</form>
</body>
</html>

Tipe input hidden tidak akan tampil dihalaman web, tetapi nama dari atribut name dan
data yang disikan pada atribut value akan ikut dikirim pada saat form di -submit

Select dan Option


Untuk memudahkan pengisian data oleh pengguna, isian yang sudah mempunyai pilihan
bisa disajikan dalam bentuk drop-down box/combo-box dengan menggunakan tag
<select> .. </select> yang didalamnya dituliskan sejumlah pilihan, masing -masing
pilihan menggunakan tag <option> .. </option>
<html>
<body>
<form>
Bidang Pekerjaan: <select name=’divisi’>
<option value=’Finance’>Finance</option>
<option value=’I T’>IT</option>
<option value=’ Marketing’>Marketing</option>
</select>
</form>
</body>

20
</html>

Nilai yang akan dikirim adalah value dari option yang terpilih

Text Area
Jika isian berupa teks yang panjang seperti komentar pada buku tamu, atau artikel online,
digunakan tag <textarea></textarea> yang memungkinkan pengi sian data teks yang
panjang dalam banyak baris
<html>
<body>
<form>
Keterangan Tambahan: <br>
<textarea name=’ctt’ rows=5 cols=40></textarea>
</form>
</body>
</html>

Atribut rows dan cols menentukan ukuran tampilan textarea sebanyak jumlah baris
(rows) dan jumlah kolom (cols). Isian yang melebihi jumlah rows tetap dimungkinkan
dan textarea akan menampilkan penggulung ( scrollbar)

Validasi Form
“Garbage in, garbage out”, jika sampah yang masuk maka sampah juga yang akan
keluar, ungkapan ini masih selalu digunakan untuk mengingatkan agar selalu memastikan
bahwa data yang diinput sudah merupakan data yang valid dan benar agar tidak terjadi
kesalahan proses dan mengakibatkan kesalahan output atau informasi yang akan
dihasilkan.
Web merupakan media dengan kar akteristik pengguna yang sangat beragam, baik dari
segi tingkat pendidikan hingga perilaku, sehingga disainer web tidak bisa menganggap
bahwa pengguna selalu mengerti tentang informasi yang disajikan dan akan memberikan
informasi yang selalu valid melalui form. Karena itu proses validasi form selalu harus
menjadi perhatian.
Validitas data disini tidak termasuk kebenaran data dalam arti kesesuaian dengan fakta,
tetapi lebih kepada kualitas fisik data, seperti memastikan tidak terjadi kesalahan entri
tanggal 30-02-1008 (tidak ada tanggal 30 di bulan Februari), alamat email mengandung
spasi atau dengan dua tanda @, field/isian yang wajib diisi, verifikasi password yang
tidak sama, dan lain sebagainya.
Validasi dapat dilakukan baik di sisi client, maupun di sisi server. Validasi di sisi client
dianjurkan karena proses bisa lebih cepat dan tidak/belum melibatkan koneksi ke server.
Validasi di sisi server juga memiliki keuntungan karena bisa langsung di lakukan
verifikasi dengan data pembanding dari koleksi databa se yang ada. Semakin banyak titik
untuk melakukan validasi semakin menjamin bahwa data yang masuk bukan data
sampah.

21
Validasi di sisi client akan di proses sebelum data dari form dikirimkan, karena itu proses
akan lebih cepat karena hanya melibatkan proses di browser.
Contoh validasi di sisi client untuk isian yang wajib di isi ( required fields)
<html>
<head>
<script type="text/javascript">

function wajib_di_isi(field,pesan)
{
with (field)
{
if (value==null || value=="")
{
alert(pesan);
return false;
}
else
{
return true
}
}
}

function validasi_form(thisform)
{
with (thisform)
{
if ( wajib_di_isi(email,"Alamat Email harus di isi!") == false )
{
email.focus();
return false;
}
}
}

</script>
</head>

<body>

<form onsubmit=”return validasi_form(this)”>

Email: <input type=’text’ name=’email’ >


<input type=’submit’ value=’Kirim Data’ >

</form>

</body>
</html>

Atribut onsubmit adalah event yang akan memanggil fungsi validasi_form() yang
akan memeriksa isi field tertentu

22
Pemrosesan Form
Untuk dapat diproses lebih lanjut data form akan dikirim ke server, dan akan diproses
oleh server-side program. Untuk itu form haruis diberi atribut untuk memberikan
informasi nama file prgram yang akan memprosesnya di sisi server
<form action=”regist.php” method=”post” >

Email: <input type=’text’ name=’email’>


<input type=’submit’ value=’Kirim Data’>

</form>

Atribut action di isi dengan informasi nama file yang akan memp roses data form di sisi
server (dalam contoh: file regist.php), dan atribut method digunakan untuk menentukan
metode pengiriman data ke server, ada dua metode yangbisa digunakan, metode GET dan
metode POST.
Metode GET akan mengirimkan data melalui request URL ke server, sedangkan metode
POST akan mengrimkan data form melalui koneksi tersendiri ke server.
Di sisi server semua nilai atribut name pada form akan dibaca sebagai variabel jika
setting REGISTER_GLOBAL pada server diset ON, dan akan dibaca sebagai array jika
REGISTER_GLOBAL pada server di-set OFF.
// regist.php
// untuk REGISTER_GLOBAL yang di -set ON

<?php
echo “Alamat email anda: “. $email ;
?>

// regist.php
// untuk REGISTER_GLOBAL yang di -set OFF

<?php
$mail = $_POST[‘email’] ;

echo “Alamat email a nda: “. $mail ;


?>

Untuk alasan keamanan, disarankan untuk REGISTER_GLOBAL pada server di-set OFF.
Pembacaan array $_GET atau $_POST disesuaikan dengan metode pengiriman data form

23
4
Akses Data

MySQL
Database adalah kumpulan data yang besar, yang memiliki struktur dan atribut tertentu,
sehingga mudah untuk diorganisasi, dipanggil kembali ( retrieve), atau dimodifikasi.
MySQL adalah salah satu Database Manajemen System (DBMS) yang populer dan
banyak digunakan, bahkan menjadi standar de-facto untuk database bagi layanan berbasis
web dengan digunakannya MySQL oleh situs -situs besar di internet seperti Yahoo dan
Google.

Struktur Data Base


Seperti lazimnya DBMS yang populer lainnya, MySQL juga memiliki struktur database
yang merupakan himpunan sejumlah tabel, dan setiap tabel merupakan himpunan data
dengan atribut (field) tertentu. Setiap data di susun dalam setiap baris tabel, dan setiap
atribut data disusun sebagai kolom di dalam tabel.
Atribut atau field data merupakan bagian dari data yang memilik i kriteria atau klasifikasi
tertentu, seperti field nama, field alamat, field nomor telepon, kumpulan semua field
membentuk satu baris/satu record data.
DATABASE
Tabel
Field Field Field Field
Tabel
Field Field Field Field

Tabel
Field Field Field Field

record

Tipe Data
Atribut/field dari data memiliki tipe dan ukuran tertentu sesuai dengan jenis da ta yang
akan disimpan. Pada umumnya terdapat tiga tipe data utama, yaitu
 tipe data numerik,
 tipe data teks, dan
 tipe data tanggal
24
Data Numerik Keterangan
int(size) Menyimpan data bilangan bulat ( integer)
smallint(size)
tinyint(size)
mediumint(size)
bigint(size)
decimal(size,d) Menampung data bilangan pecahan (real)
double(size,d)
float(size,d)

Data Teks Keterangan


char(size) Menampung data teks dengan ukuran jumlah karakter
tetap
varchar(size) Menampung data teks dengan ukuran jumlah karakter
bervariasi sesuai dengan panjang data . Ukuran size untuk
menentukan ukuran maksimum
Tinytext Menampung data teks dengan ukuran jumlah karakter
bervariasi, dengan maximum 255 karakter
Text Menampung data teks dengan ukuran jumlah karakter
blob (biner) bervariasi, dengan maximum 65535 karakter
Mediumtext Menampung data teks dengan ukuran jumlah karakter
mediumblob (biner) bervariasi, dengan maximum 16777215 karakter
Longtext Menampung data teks dengan ukuran jumlah karakter
longblob (biner) bervariasi, dengan maximum 4294967295 karakter

Tipe blob digunakan untuk menampung data binary seperti image/citra

Data Tanggal Keterangan


date (yyyy-mm-dd) Menampung data tanggal
datetime (yyyy-mm-dd hh:mm:ss)
timestamp (yyyymmddhhmmss)
time (hh:mm:ss)

SQL
Structured Query Language (SQL) adalah merupakan standar bahasa khusus untuk
melakukan query (permintaan) data dari database, yang sudah dipakai pada banyak
DBMS, termasuk MySQL, dan juga sudah dapat digunakan pada banyak bahasa
pemrograman untuk mengakses server database.
Berdasarkan fungsinya, statenmen SQL dikelompokkan dalam dua kelompok, yaitu
kelompok Data Definition Language (DDL) dan kelompok Data Manipulation Language
(DML)

25
Data Definition Language
Statemen-stateman SQL dalam kelompok DDL , lebih banyak di gunakan untuk
membentuk dan/atau memodifikasi struktur database dan struktur table dalam database,
karena itu disebut Data Definition.
Statemen yang banyak digunakan dalam kelompok DDL ini, antara lain:
 CREATE DATABASE , digunakan untuk membuat database ba ru
CREATE DATABASE namadatabase;

 CREATE TABLE digunakan untuk mendefinisikan dan membuat struktur sebuah tabel
dengan sejumlah field beserta tipe dan ukurannya
CREATE TABLE namatable(
Field1 type(ukuran),
Field2 type(ukuran),
Field3 type(ukuran),
);

Data Manipulation Language


Manipulasi data pada database pada dasrnya merupakan aktifitas penyimpanan ( store),
pemanggilan kembali data (retrieving), penyuntingan (editing dan deleting). Statemen
SQL untuk DML yang paling sering digunakan, antara lain:
 INSERT , digunakan untuk mengisi record baru kedalam sebuah tabel pada database

// cara 1
INSERT INTO namatable(Field1, Field2, Field3) VALUES (‘nilai1’,
nilai2’, ‘nilai3’) ;

// cara 2
INSERT INTO namatable SET Field1=‘nilai1’, Field2=‘nilai1’,
Field3=’nilai3’) ;

 SELECT digunakan untuk memanggil/mencari data dengan atribut dan kriteria tertentu
dari satu atau lebih tabel

// contoh 1
SELECT * FROM namatable;

// contoh 2 (dengan atribut/field tertentu)


SELECT Field1, Field2 FROM namatable;

 WHERE digunakan bersma-sama dengan statemen lain untuk menentukan kriteria data
yang akan dimanipulasi

26
// contoh 1
SELECT * FROM user WHERE nama=’sofyan’;

// contoh 2 (dengan atribut/field tertentu)


// menampilkan nama dengan huruf depan s
SELECT nama, alamat FROM user WHERE nama LIKE ‘s%’;

 ORDER digunakan bersama-sama dengan statemen query SELECT untuk mengatur


urutan dari data hasil query

// contoh 1
SELECT * FROM user WHERE nama=’sofyan’ ORDER BY nama;

// contoh 2 (dengan atribut/field tertentu)


// menampilkan nama dengan huruf depan s
// urutan descending
SELECT nama, alamat FROM user WHERE nama LIKE ‘s%’ ORDER BY nama DESC;

 UPDATE digunakan untuk merubah satu atau beberapa baris data, digunakan bersama
statemen WHERE untuk menentukan kriteria data yang ak an dirubah

UPDATE user SET nama=’sofyan thayf’ WHERE nama=’sofyan’;

 DELETE digunakan untuk menghapus satu beberapa baris data, digunakan bersama
statemen WHERE untuk menentukan kriteria data yang akan dihapus.

DELETE FROM user WHERE nama=’sofyan’;

PHP-MySQL
Sejumlah function telah tersedia pada PHP untuk melakukan akses data ke server
database yang menggunkaan MySQL

Membuat Koneksi ke Database


Untuk melakukan koneksi ke server database MySQL dari aplikasi PHP, digunakan
funcrion mysql_connect( ‘namahost’, ‘namauser’, ‘password’), dengan string
nama host, nama user MySQL, dan password user sebagai parameter.
<?php
$konek = mysql_connect("localhost"," sofyanthayf’,"250708");
if (!$con)

27
{
die('Could not connect: ' . mysql_error());
}

... aktifitas manipulasi data ...

mysql_close($konek );
?>

Untuk nama host, jika script PHP berada di server web pada mesin yang sama dengan
server MySQL maka bisa digunakan ‘localhost’, jika berada pada mesin yang berbeda,
digunakan IP address dari host dimana MySQL server di jalankan.
Untuk menutup koneksi, digunakan mysql_close()

Membuka Database
Seteleh terkoneksi ke server MySQL, database yagn akan di akses harus dibuka terlebih
dahulu sebelum melakukan manipulasi (meliputi searching, retrieving, editing, atau
deleting) terhadap data. Untuk membuka database, digunakan mysql_select_db(
‘namadatabase’)
<?php
$konek = mysql_connect("localhost"," sofyanthayf’,"250708 ");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db(‘databaseku’);

... aktifitas manipulasi data ...

mysql_close($konek );
?>

Manipulasi Data
Untuk melakukan manipulasi data pada MySQL, digunakan query dalam bahasa SQL
berbentuk string query. Untuk mengirimkan string query dalam bahasa SQL dari PHP,
digunakan function mysql_query( string_query ). Strnig query SQL dilewatkan
sebagai parameter pada function mysql_query() dan hasilnya ditampung pada sebuah
variabel sebagai kontainer.
<?php
$hasilq = mysql_query(“SELECT * FROM user”);
// variabel $hasilq adalah kontainer yang
// menampung hasil query

?>

28
Untuk mengekstrak data hasil query digunakan function mysql_fetch_row(
hasil_query ) atau function mysql_fetch_array( hasil_query ) dengan variabel
kontainer hasil query mysql_query() dilewatkan sebagai parameter.
Karena hasil query biasanya berisi sejumlah baris data (tuples), maka biasanya ekstraksi
data menggunakan function mysql_fetch_row() atau function mysql_fetch_array()
dilakukan dalam perulangan
<?php
$hasilq = mysql_query(“SELECT * FROM user”);
while( $dt = mysql_f etch_row( $hasilq ) )
{
echo $dt[0];
echo $dt[1];
echo $dt[2];
}

?>

Jika menggunakan mysql_fetch_row() , data dibaca sebagai array dengan nomor indeks
sesuai dengan urutan field yang di query (indeks 0 adalah field pertama), sedangkan jika
menggunakan function mysql_fetch_array(), maka data dibaca sebagai array dengan
indeks bisa menggunakan nomor urut field, atau bisa juga menggunakan string nama field
<?php
$hasilq = mysql_query(“SELECT * FROM user”);
while( $dt = mysql_fetch_array( $hasilq ) )
{
echo $dt[‘namauser’];
echo $dt[‘alamat’];
echo $dt[‘telepon’];
}

?>

Function mysql_num_rows( hasil_query ) digunakan untuk mendapatkan informasi


jumlah baris data dari hasil query yang menggunakan string query SELECT
<?php
$hasilq = mysql_query(“SELECT * F ROM user”);
$jml = mysql_num_row( $hasilq ) ;

?>

Untuk menghitung junlah baris hasil query yang menggunakan string query INSERT,
UPDATE , dan DELETE , dibunakan function mysql_affected_rows(hasil_query)

29
5
Array

Array adalah variabel yang dapat menampung lebih dari satu data dengan hanya satu
nama variabel. Sejumlah data, yang umumnya sejenis, dapat ditangani dengan mudah
hanya dengan menggunakan satu nama variabel. Setiap data menjadi elemen array yang
masing-masing memiliki nomor index atau ID s ebagai pengenal setiap elemen
<?php

$var[index] = data1;
$var[index] = data2;
$var[index] = data3;

?>

Berdasarkan cara pemberian identitas elemennya, array pada PHP dibagi menjadi dua
jenis, yaitu array numerik (numeric array) dan array asosiatif (associative array)

Array Numerik
Array numerik adalah array dengan indeks atau kunci setiap elemennya menggunakan
numerik (numeric ID key) berupa bilangan integer, dengan nomor indeks 0 untuk elemen
pertama
<?php
// contoh pengisian variabel array
$nama = array("Nabigha Yushatia","Salsabil Jalila","Shabrina");
// atau dengan cara lain
$nama[3] = "Chandra Khairani";
$nama[4] = "Hadyan Dwihasan";
$nama[5] = "Farhan Rahmat";

// cara ini otomatis menambah kan data pada posisi elemen terakhir
$nama[] = "Filza Ramadhani";
$nama[] = "Sofyan Thayf";

echo $nama[0]."<br>"; // --> Nabigha Yushatia


echo $nama[1]."<br>"; // --> Salsabil Jalila
echo $nama[6]."<br>"; // --> Filza Ramadhani
echo $nama[7]."<br>"; // --> Sofyan Thayf

?>

30
Array Asosiatif
Array asosiatif adalah satu cara yang akan sangat memudahkan apabila sebuah nilai perlu
dihubungkan atau diasosiasikan dengan nilai lain yang menjadi elemen array.
<?php

// pengisian array asosiatif


$warna = array( "pisang" => "Kuning" );
// atau..
$warna['jeruk'] = "Oranye";
$warna['apel'] = "Merah";
$warna['mangga'] = "Hijau";

$buah = 'pisang';

echo $warna[ $buah ]."<br>"; // --> Hijau

?>

Satu keuntungan dari array asosiatif pada PHP adalah dengan dimungkinkannya
penggunaan string sebagai ID dari elemen array, akan memudahk an dalam penulisan
program karena jenis data dari elemen array dapat diketahui dari ID, sehingga
memperkecil kemungkinan kesalahan penanganan data array. Hal ini sangat membantu
untuk penanganan data dari field-field database
<?php

$mhs[‘nim’] = "52008002";
$mhs[‘nama’] = "Abdul Munir";
$mhs[‘tglahir’] = "1982-04-22";

?>

Array multidimensi
Jika setiap elemen dari sebuah array berisi array lagi, amaka akan membentuk array 2
dimensi. Elemen dari array dapat terbentuk dari array lagi, dan elemen dari sub-array
juga dapat berisi array, dan seterusnya, membentuk array multi-dimensi
<?php

// array 2 dimensi
$mhs[0][‘nim’] = "52004002";
$mhs[0][‘nama’] = "Abdul Munir";
$mhs[0][‘tglahir’] = "1982-04-22";

$mhs[1][‘nim’] = "52004005";
$mhs[1][‘nama’] = "Hamdan Arfandi";
$mhs[1][‘tglahir’] = "1980-09-12";

$mhs[2][‘nim’] = "52004015";
$mhs[2][‘nama’] = "Junaedi";
$mhs[2][‘tglahir’] = "1979-06-16";

31
// cara lain
$mhs[] = array(‘nim’=>‘52004023’,
‘nama’=>‘Rosmala’,
‘tglahir’=>‘1982-08-08’ );

?>

Menangani Data dalam Array

Perulangan dengan FOREACH


Untuk memudahkan penanganan data dalam array, yang bisa jadi jumlah elemennya
tidak terpantau lagi sepanjang aktifitas program, bisa digunakan stetemen perulangan
FOREACH, yang mengambil setiap elemen array sebagai kontrol perulangannya,
perulangan akan berhenti setelah semua elemen array terbaca.
<?php

// menampilkan semua elemen array


foreach( $array as $var )
{
echo $var.”<br>”;
}

?>

Menangani field database


Data hasil query database merupakan kumpulan record yang sesuai dengan kriteria yang
diinginkan dalam query, karena itu penanganannya dilakukan sebagai array dua dimensi.
Untuk tetap menggunakan nama field sebagai identitas data, maka digunakan array
asosiatif dengan nama field sebagai ID
<?php

$hasilq = mysql_query(“SELECT * FROM user”);


// variabel $hasilq adalah array 2 dimensi

while( $dt = mysql_fetch_array( $hasilq ) )


{
echo $dt[‘namauser’];
echo $dt[‘alamat’];
echo $dt[‘telepon’];
}

?>

32
6
Manipulasi String

Operasi String

Memeriksa String Kosong


Untuk melakukan pengecekan a pakah sebuah variabel berisi string kosong atau tidak,
dapat digunakan function isEmpty()
<?php

$em = $_GET[‘email’];
if ( isEmpty( trim( $em ) ) )
{
echo “Alamat email tidak diisi!’;
}
?>

Function trim() digunakan untuk menghilangkan spasi di depan atau di belakang string,
karena spasi tetap dianggap sebagai string.
Cara lain untuk memeriksa string kosong adalah dengan function strlen()
<?php

$em = $_GET[‘email’];
if ( strlen( trim( $em ) ) == 0 )
{
echo “Alamat email tidak diisi!’;
}
?>

Pada prinsipnya strlen() berfungsi untuk menghitung jumlah karakter dalam string

Membandingkan String
PHP menyediakan dua operator perbandingan untuk mebandingkan string, yaitu == dan
===. Operator == akan meng-casting (mengkonversi tipe) variabel yang berisi data
bertipe non-string menjadi string sebelum membandingkan, sementara operator ===
langsung membandingkan, sehingga hasilnya akan bernilai false jika tipe data berbeda.
$n = 3;
$s = ‘3’;
$s == $n --> True
$s === $n --> False

33
Pengulangan
Untuk menuliskan karakter secara berulang, digunakan function str_repeat()
<?php

echo str_repeat( ‘*’, 10 ; // --> ‘**********’

// str_repeat() jauh lebih efisien dari pada


for( $u=1; $u<=10; $u++ )
{
echo ‘*’;
}

?>

Pencarian
Ada dua cara dalam PHP untuk melakukan pencarian string di dalam string lain, yaitu
menggunakan function strstr() atau stristr(), dan menggunakan function
strpos()
<?php
$teks = “STMIK KHARISMA Makassar ”;

echo strstr( $teks, “ M” ) // --> “MA Makassar”


echo strstr( $teks, “a” ) // --> “akassar”

// case-insensitive
echo stristr( $teks, “A” ) // --> “ARISMA Makassar”

echo strpos( $teks, “K” ) // --> 3


echo strpos( $teks, “a” ) // --> 16

// case-insensitive
echo stripos( $teks, “a” ) // --> 8

?>

Function strstr() mengembalikan dereten string, mulai dari posisi karakter yang dicari,
dan function strpos() mengembalikan nomor urut posisi dari karakter yang dicari dalam
string, hitungan posisi dimulai dari 0.
Function stsrstr() dan strpos() bersifat case-sensitive, sedangkan function
stristr() dan stripos() bersifat case-insensisitive, atau tidak mempedulikan huruf
bvesar atau huruf kecil

34
Manipulasi String

Pemisahan String
Function explode() digunakan untuk memisahkan string dengan separator tertentu.
Nilai balik dari function explode adalah array yang berisi hasil pemecahan string
<?php

$str = “17-08-2008”;

$st = explode( ‘-‘ , $str );

echo $st[0]; // --> 17


echo $st[2]; // --> 08
echo $st[3]; // --> 2008

?>

Substring
Substring adalah pengambilan (ekstraksi) satu string dari satu string yang lain, pada
PHP digunakan function substr()
<?php
$teks = “STMIK KHARISMA Makassar” ;

echo substr( $teks, 6 ); // --> KHARISMA Makassar


echo substr( $teks, 6 , 8 ); // --> KHARISMA
echo substr( $teks, 0, 5 ); // --> STMIK
echo substr( $teks, -3 ); // --> sar

?>

Penggantian String
Untuk melakukan penggantian sebagian dari string digunakan function str_replace()
<?php
$email = “sofyanthayf@yahoo.com” ;

$email_aman = str_ replace( ‘@’, ‘_at_’, $email );

echo $emailaman;
// --> sofyan_at_yahoo.com

?>

35
Karena function str_replace() dapat menerima array sebagai daftar string yagn akan
diganti, maka dapat dimanfaatkan untuk mengganti kata -kata yang kurang sopan dalam
tulisan
<?php
$tdksopan = array(‘bodoh’, ‘goblok’, ‘xxx’ ) ;
$ganti = ‘*!*’;

// contoh
$strinput = ‘hanya anak bodoh dan tolol yang baca xxx’;

$sopan = str_replace( $tdksopan, $ganti, $strinput );


// --> hanya anak *!* dan *!* yang baca *!*

?>

Format String
Untuk menampilkan string dalam format tertentu digunakan fungsi printf()
<?php

$str = “RI”;
$thn = “63”;

printf(“Dirgahayu %s ke -%d “, $str, $thn);


// --> Dirgahayu RI ke 63

$format = “Indonesia berusia %d tahun”;


printf($format, $thn);
// --> Indonesia berusia 63 tahun

?>

Tanda %s dan %d adalah type specifier yang menentukan posisi nilai yang akan
ditampilkan beserta tipenya.
Function printf() juga dapat digunakan untuk merepresentasikan data numerik sesuai
format yang diinginkan berdasrakan type specifier-nya
<?php

$n = “65”;

// tampilkan sebagai biner


printf( “%b“, $n ); --> 1000001

// tampilkan sebagai karakter ASCII


printf( “%c“, $n ); --> A

// tampilkan sebagai integer


printf( “%d“, $n ); --> 65

36
// tampilkan sebagai floating point
printf( “%f“, $n ); --> 65.00000

// tampilkan sebagai string


printf( “%s“, $n ); --> 65

// tampilkan sebagai hexadesimal


printf( “%X“, $n ); --> 41

?>

37
7
Cookies dan Session

Web komunikasi data berbasis koneksi yang hanya bekerja berdasarkan request dari
client dan response dari server. Satu sesi koneksi hanya terjadi mulai dari request sampai
response diterima, setelah itu selesai, dalam arti aktiftas selanjutnya merupakan koneksi
baru dan tidak berhubungan dengan aktifitas koneksi sebelumnya.
Untuk aktifitas yang persistent diperlukan informasi tambahan yang akan menjadi sarana
penghubung antara satu sesi koneksi dengan sesi koneksi berikutnya, minimal untuk
mengetahui informasi user atau host pengguna. Untuk itu, disediakan variabel yang akan
menampung data tertentu, dan data tersebut akan di baca kembali untuk memastikan
bahwa itu adalah koneksi persistent.
Teknik dengan penyimpanan variabel ini disebut cookies jika variabel dan data disimpan
di sisi client oleh browser, dan sessions jika data disimpan di server

Cookies
Untuk menyimpan informasi tertentu di sisi browser agar bisa dibaca kembali pada saat
browser yang sama melakukan koneksi, digunakan sarana cookies.

Membuat Cookies
Untuk membuat cookies, digunakan function setcookies()
<?php

setcookies( “namavariabel”, “isi variabel” );

?>

<?php

setcookies( “userid”, “sofyanthayf” );


setcookies( “nama”, “Sofyan Thayf” );

?>

Membaca Variabel Cookies


Variabel cookies dapat dibaca sebagai array asosiatif $_COOKIE[] dengan nama-nama
variabel yang ada sebagai ID elemennya

38
<?php

if( isset( $_COOKIE[‘userid’] ) )


{
$uname = $_COOKIE[‘userid’];
$nama = $_COOKIE[‘nama’];

echo “Hello, $nama”;

}
else
{

echo “Maaf, anda belum login”;

?>

Menghapus Cookies
Untuk menghapus variabel cookies, digunakan function setcookies() dengan parameter
nama variabel yang akan dihapus tanpa nilai/data
<?php

setcookies( “userid” );
// menghapus variabel cookies userid

?>

Variabel cookies juga bisa dihapus secara otomatis setelah beberapa waktu yang
ditentukan (expire time) saat variabel tersebut dibentuk
<?php

setcookies( “userid” , “sofyanthayf”, time()+3600 );


// membuat variabel cookies userid dengan waktu expire 1 jam

?>

Sessions
Keterbatasan cookies adalah karena variabel cookies di simpan di browser client,
sementara untuk alasan security dan privacy, kebijakan browser client bisa berbeda-beda,
termasuk boleh menerima cookies atau tidak.
Solusi lain dari cookies adalah dengan menyimpan variabel dan nilainya di server dengan
mengunakan session.

39
Memulai Session
Untuk memulai session digunakan function session_start() , dan selanjutnya variabel -
variabel session dapat ditambahkan kedalam array asosiatif $_SESSION[]
<?php

session_start();
$_SESSION['username']='Sofyan Thayf';

?>

<h3>Halaman 1</h3></b r>


<a href="sesi2.php?<?php echo htmlspecialchars(SID); ?>">
Lanjutkan</a>

Setiap session akan mendapatkan session-ID yang nantinya akan dipropagasi ke setiap
halaman yang berhubungan atau membutuhkan variabel -variabel session yang ada.
SID adalah konstanta yang otomatis berisi session-ID dari session yang baru dibuka
Untuk propagasi (penyebaran) session-ID bisa dengan menggunakan
 Cookies
 Parameter URL (GET method)
Metode propagasi dengan cookies sebenarnya lebih dianjurkan karena lebih aman, tetapi
akan bermasalah dengan ditolaknya cookies oleh browser sesuai kebijakan yang berlaku
di browser masing-masing.

Membaca Variabel Session


Sebelum dapat membaca variabel session, session-ID harus di set dan function
session_start() di panggil. Untuk propagasi mela laui parameter URL menggunakan
htmlspecialchars(SID) , session-ID otomatis telah diset
<?php

session_start();
echo $_SESSION['username'];

?>

Menutup Session
Untuk menutup session digunakan function session_destroy()
<?php

session_start(); // masuk ke session


session_destroy(); // tutup session

?>

40
8
Penanganan File

File Teks
Selain menggunakan database, PHP juga dapat menangani file berbasis teks untuk
berbagai keperluan
Untuk membuka file teks digunakan function fopen() dan ditampung pada sebuah
variabel sebagai file handler
<?php

$file = fopen("welcome.txt","r");

?>

Parameter kedua dari function fopen() adalah mode pembukaan file


Mode Description
r Read only, pointer file berada di awal file
r+ Read/Write, pointer file berada di a wal file
w Write only, membuka dan mengosongkan isi file untuk kemudian
ditulisi, atau membuat file baru jika file belum ada
w+ Read/Write, membuka dan mengosongkan isi file, atau membuat file
baru jika file belum ada
a Append, membuka file dan menulis mulai dari akhir (pointer file di
akhir file), membuat file baru jika file belum ada
Read/Append, Membuka file dan menulis mulai dari akhir (pointer file
a+
di akhir file)
x Write only, Membuat file baru. Menghasilkan FALSE dan pesan error if
jika nama file sudah ada
x+ Read/Write. Membuat file baru. Menghasilkan FALSE dan pesan error
jika nama file sudah ada

Untuk menutup file, digunakan function fclose()

fclose( $file );

41
Pembacaan Isi File Teks
Pembacaan isi file dilakukan dengan melakukan perulan gan hingga ditemukan tanda End
Of File (EOF). Pembacaan dapat dilakukan secara baris -per-baris dengan function
fgets(), atau secara karakter-per-karakter dengan mengunakan function fgetc()
Pembacaan secara baris-per-baris
<?php

$file = fopen("data.txt", "r") or exit("Gagal membuka file !");

while(!feof($file))
{
echo fgets($file). "<br />";
}
fclose($file);

?>

Pembacaan secara karater-per-karakter


<?php

$file=fopen("data.txt","r") or exit(" Gagal membuka file !");

while (!feof($file))
{
echo fgetc($file);
}
fclose($file);

?>

File Upload
Untuk banyak keperluan, pengguna/pembaca web biasanya membutuhan sarana untuk
melakukan upload file ke server, misalnya untuk upload foto atau dokumen yang akan di
sharing melalui web. Upload file bisa dilakukan melalui sarana form web.

Persiapan Form Untuk Upload


Untuk melayani proses upload file, form web harus di siapkan dengan penambahan tag
<INPUT> bertipe file, dan informasi tambahan tentang encoding.
<html>
<body>
<form action=’upld.php’ method=’pos t’ enctype=’multipart/form-data’>
File to upload: <input type=’file’ name=’fileku’>
</form>
</body>
</html>

42
Atribut enctype berguna untuk memberitahu server bahwa data dan file upload
dikirimkan dalam beberapa koneksi terpisah. Karena pengiriman dilakuka n dalam
beberapa koneksi terpisah, maka metode pengiriman yang digunakan adalah metode POST

Penanganan File Upload di Server


Di sisi server, informasi file upload aan ditangani oleh array asosiatif dua dimensi
$_FILES[] , dengan empat parameter utama sebag ai elemennya yaitu:
$_FILES[‘userfile’][‘name’]
$_FILES[‘userfile’][‘type’]
$_FILES[‘userfile’][‘size’]
$_FILES[‘userfile’][‘tmp_name’]

ID userfile adalah attribut name dari tag <input> tipe file yang digunakan pada form

<?php

if( is_uploaded_file( $_FIL ES[‘fileku’][‘tmp_name’] ) )


{

$updir = '/var/www/uploads/';
$upfile = $uploaddir.$_FILES['userfile']['name' ];

If( $_FILES[‘fileku’][‘size’] > 204800 ); //ukuran max 200KB


{
echo “File di-upload: “.$_FILES[‘fileku’][‘name’].”<br>”;
echo “Type file: “. $_FILES[‘fileku’][‘type’].”<br>”;

if( move_uploaded_file( $_FILES[ ‘fileku’][‘tmp_name’],$upfile ) )


{
echo “Upload Sukses.”;
}

}
}

?>

Function is_uploaded_file() digunakan untuk mengecek apakah ada file yang di -


upload dan function move_uploaded_file() untuk memindahkan file dari penyimpanan
sementara ke lokasi penyimpanan yang diinginkan di server

43
9
Grafik dan Dokumen

Bekerja Dengan GD
PHP memiliki fasilitas untuk membuat image (gambar) sebagai pelengkap i nformasi pada
dokumen web yang dihasilkan, sehingga image pada halaman web dapat dibuat secara
dinamik juga, tidak statik seperti jika menggunakan image yang sudah jadi hasil dari
program image editor. Namun elemen gambar yang dihasilkan akan sangat bergan tung
pada kreatifitas dan penguasaan atas fungsi -fungsi image PHP
Untuk dapat membuat gambar dengan menggunakan fungsi -fungsi image dari PHP, harus
dipastikan bahwa GD Library pada PHP sudah aktif. GD Library adalah ekstensi dari
PHP yang menyediakan sarana untuk pembuatan image secara on-the-fly.

Membuat Image
PHP dengan GD Library menyediakan cukup banyak fungsi untuk membentuk image on-
the-fly dalam arti image dibentuk saat dibutuhkan dan tanpa bantuan program aplikasi
grafis.
Untuk membuat image on-the-fly digunakan function imagecreate() diikuti dengan
function lain untuk membuat bentuk dan pewarnaan. Untuk menghasilkan output telah
tersedia function khusus untuk menghasilkan output image dalam format yang
diinginkan, seperti
 imagegif() , menghasilkan format image GIF
 imagepng() , menghasilkan format image PNG
 imagejpg(), menghasilkan format image PNG
 imagewbmp() , menghasilkan format image WBMP

<?php
$namaf = "test.png";
$teks = "Coba-coba";

header("Content-type: image/png");

$im = @imagecreate(110, 25)


or die("Gagal membuat GD image");

$background_color = imagecolorallocate($im, 0, 0, 0);


$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 3, 15, 5, $teks, $text_color);

44
imagepng($im,$namaf);
imagedestroy($im);
?>

<img src="<?php echo $namaf; ?>">

File yang telah disimpan ke output dengan function imagepng() atau sejenisnya dapat
ditampilkan dengan pemanggilan melalui tag <IMG SRC=”namafile”> dari HTML.
Function imagepng() atau sejenisnya tanpa parameter akan langsung menampilka n
image ke browser
Function imagedestroy() digunakan untuk membersihkan memori dari data -data image
handler setelah tidak dibutuhkan lagi.

Overlay Image
Cara yang lebih mudah untuk menampilkan image adalah dengan memanfaatkan image
yang sudah ada lalu di-overlay (ditumpuk) dengan teks dinamik yang diinginkan. Dengan
cara ini penampilan, aspek seni, dan kualitas image bisa lebih baik, karena dibuat dengan
program aplikasi grafis, mengingat keterbatasan kemampuan PHP dalam membuat
image.
<?php

header("Content-type: image/png");

// teks ini akan di tulis di atas image asli


$teks = "SOFYAN THAYF";

// buka file image asli


$im = imagecreatefrompng("sample.png");

$warna = imagecolorallocate($im, 60, 210, 220);


$px = (imagesx($im) - 7.5 * strlen($teks)) / 2;

imagestring($im, 3, $px, 9, $teks, $warna);

imagepng($im,$namaf);
imagedestroy($im);
?>

<img src="<?php echo $namaf; ?>">

Untuk membuat image secara overlay, digunakan function imagecreatefrompng()


untuk memanggil file image asli, dalam contoh menggunakan format PNG, untuk format
lain, tersedia function sejenis yang relevan

45
Membuat Dokumen PDF
Biasanya pembaca/pengguna web membutuhkan dokumen web yang sifatnya printer-
friendly atau siap cetak, dan biasanya dokumen yang siap ceta k disajikan dalam format
PDF.
PHP dapat menghasilkan dokumen berformat PDF dengna dukungan library eksternal
yang sudah cukup banyak dikembangkan oleh banyak pihak. Manual PHP sendiri
merekomendasikan dan merujuk pada modul PdfLib yang bisa di download dari
http://www.pdflib.com/en/download/ , hanya saja penggunaan modul PdfLib untuk
keperluan komersial atau bisnis diharuskan untuk memiliki lisensi dari pembuatnya.
Library PDF yang juga cukup populer dan bisa digunakan se cara cuma-cuma serta tidak
kalah mudah dalam penggunaannya adalah ezPdf yang bisa di download dari
http://www.ros.co.nz/pdf/.
Dalam contoh pembahasan ini digunakan ezPdf , yang dibuat dengan object oriented
programming pada PHP, dan ezPdf didistribusikan dalam bentuk class yang siap pakai

<?php
// mengikutkan class ezPdf
require '../class.ezpdf.php';

//menciptakan object pdf dari class Cezpdf


$pdf = new Cezpdf('a4', 'P' );

//pengaturan margin dan font


$pdf->ezSetCmMargins( 2, 1.5, 1, 1 );
$pdf->selectFont('../fonts/Helvetica.afm');
$all = $pdf->openObject();
$pdf->saveState();
$pdf->setStrokeColor(0,0,0,1);

//membuat header dan footer


$pdf->addText(250, 822, 6, 'belajar php');
$pdf->line(10, 40, 578, 40);
$pdf->line(10, 818, 578, 818);
$pdf->addText(30, 34, 6, 'generated: '.date("j F, Y, H:i"));

$pdf->restoreState();
$pdf->closeObject();
$pdf->addObject($all, 'all');
$pdf->ezSetDy(30);

//teks judul, font 14


$pdf->ezText($data[‘judul’], 14);
//teks isi, font 10
$pdf->ezText('$data[‘isi’], 10);

//set nomor halaman


$pdf->ezStartPageNumbers(550, 34, 6, '', '', 1);
$pdf->ezStopPageNumbers(1,1);

46
//finishing dokumen
$pdf->ezStream();

?>

Koleksi function dari masing-masing PDF library berbeda-beda, tetapi biasanya


developer dari masing-masing library sudah menyediakan tutorial untuk penggunaan
library mereka

47
10
Asynchronous Java Script

Pengantar AJAX
AJAX singkatan dari Asynchronous JavaScript And XML.
AJAX bukanlah sebuah bahasa pemrograman baru, tetapi meru pakan teknik
pemrograman pada JavaScript yang memungkinkan program client-side yang dibuat
dengan JavaScript dapat berkomunikasi langsung dengan server dan meningkatkan
performance dari presentasi/aplikasi web.
AJAX memanfaatkan obyek XMLHttpRequest pada JavaScript yang memungkinkan
terjadinya komunikasi asynchronous antara client dengan server, dan memungkinkan
perubahan isi sebagian (parsial) dari halaman web tanpa harus me-reload seluruhnya

Komunikasi Asinkron
Pada prinsipnya, web adalah komunikasi data client-server yang bekerja berdasarkan
request dan respon antara client dan server. Komunikasi terjadi saat client melakukan
request lalu menunggu respon dari server, dan berakhir setelah semua informasi yang
menjadi respon dari server diterima oleh client. Proses komunikasi ini selalu melibatkan
pengguna untuk memulai satu sesi request-respon, misalnya dengan klik icon link atau
klik pada tombol submit form, dan disebu sebagai komunikasi sinkron antara client dan
server.
Pada komunikasi asinkron, dimungki nkan terjadinya request oleh browser di saat satu
sesi komunikasi sedang berlangsung tanpa harus menunggu sampai proses sebelumnya
selesai. Proses request terjadi di latar belakang, dan di picu oleh event atau prosedur
tertentu, tanpa harus melibatkan peng guna secara langsung.
AJAX dengan obyek XMLHttpRequest memungkinkan terjadinya request asinkron.
Dengan demikian dapat dihasilkan program yuang berjalan di sisi client yang seolah-olah
sangat dinamis dan sangat interaktif antara client dan server.

XMLHttpRequest
XMLHttpRequest adalah sebuah class obyek dalam JavaScript yang berfungsi untuk
mengirimkan request dari browser ke server dan menerima hasil (respon) dari server.
Pada browser Microsoft Internet Explorer, digunakan class obyek
ActiveXObject(“Msxml2.XMLHTTP”) atau ActiveXObject(“Microsoft.XMLHTTP”) ,

48
karena itu, untuk menggunakan AJAX, script program harus dibuat sedemikian rupa agar
bisa mengenali browser pengguna dan menggunakan obyek yang sesuai
<script type="text/javascript">

function ajaxFuncti on()


{
var xmlHttp;

// cek browser
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
}

...
...
}

</script>

Request dikirimkan dengan menggunakan method open dan send untuk memanggil
program pada server-side

xmlHttp.open("GET", "namaprogram.php?p=parameter",true);
xmlHttp.send(null);

49
Untuk dapat menangkap respon dari server, digunakan properti readyState yang akan
memberi informasi status dari request, dan berdasarkan status tersebut, dijalankan
function yang akan memproses respon dari server
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{

// .. pemrosesan data dari respon server di sini..

}
}

Status dari properti readyState adalah:


Status Keterangan
0 Request tidak/belum diinisialisasi
1 Request telah di set-up
2 Request telah di kirim
3 Request dalam proses
4 Request selesai

Output
Untuk memungkinkan perubahan isi sebagian halaman web tanpa harus me-reload
seluruh halaman, output dari AJAX biasanya diarahkan ke tag <DIV> ..</DIV>
Contoh output AJAX ke halaman web
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("tampil").innerHTML=xmlHttp.responseText;
}
}

Tag HTML yang akan menerima dan menampilkan output dari AJAX
<form>
Cari (Kata kunci): <input type="text" id="txt1" size="20"
onkeyup="showResult(this.value)">

<div id="tampil"></div>

</form>

50
AJAX – PHP
Pada prinsipnya, semua bahasa pemrograman web pada server-side dapat berkomunikasi
dengan ajax, cukup dengan memasukkan nama file scriptnya sebagai parameter pada
method xmlHttp.open() , demikian pula halnya dengan PHP
Contoh halaman web sederhana dengan AJAX dan PHP
<html>
<body>

<script type="text/jav ascript">


function ajaxFunction()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4 )
{
document.myForm.time.value=xmlHttp.responseText;
}
}
xmlHttp.open("GET","time.php",true);
xmlHttp.send(null);
}
</script>

<form name="myForm">

Name: <input type="text" onkeyup="ajaxFunction();" name="username">

51
Time: <input type="text" name="time">

</form>
</body>
</html>

File time.php
<?php

echo date(“H:i:s”);

?>

Simpel bukan..?? 

Untuk lebih memudahkan penulisan program. Khususnya bagi mereka yang fanatik
dengan satu bahasa saja misalnya PHP, telah banyak dikemb angkan PHP framework
untuk AJAX, dimana sejumlah fungsi -fungsi penting atau yang banyak dipakai telah
tersedia dalam bentuk function hingga class object, dan programmer cukup menuliskan
kode-kode dan pemanggilan function dalam bahasa pemrograman PHP, bahkan ada
diantaranya yang menawarkan penggunaan AJAX dari PHP tanpa harus menyentuh
bagian JavaScript-nya sama sekali.
Informasi tentang berbagai framework AJAX-PHP dapat dibaca di sini:
http://ajaxpatterns.org/PHP_Ajax_Frameworks

52

You might also like