P. 1
Web Programming

Web Programming

|Views: 2,888|Likes:
Published by Sofyan Thayf
Dasar-dasar pemrograman web
Dasar-dasar pemrograman web

More info:

Published by: Sofyan Thayf on Sep 14, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/05/2012

pdf

text

original

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

STMIK 2009

MAKASSAR

Session 1

Pokok Bahasan Pengantar Web Programming Pengantar Java Script Pengantar PHP Teknik Pemrograman Struktur Kontrol PHP Function dan Procedure Pemrosesan Form Validasi Form Pemrosesan Form Akses Data Pengantar MySQL SQL Query PHP-MySQL Array Menangani Data dalam Array Manipulasi String Operasi String Cookies dan Session Cookies Session Penanganan File File Teks Upload File Grafik dan Dokumen Bekerja dengan GD Membuat Dokumen PDF Asynchrounous JavaScript Pengantar AJAX AJAX – PHP

2

3

4

5 6 7

8

9

10

2

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

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 onload

: klik mouse : loading halaman web atau file image (gambar) : unloading halaman web atau file image (gambar) : melewatkan mouse diatas hot-spot (mis.: link) pada

onunload

onmouseover/onmouseout

halaman web
onfocus/onblur onchange onsubmit

: pemilihan input-box pada form HTML

: merubah isi input-box pada form HTML : 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

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); echo add(1,16); tulis_nama(); // pemanggilan dalam bentuk ekspresi // pemanggilan bersama statemen lain // 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 menginclude-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

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, radiobutton, 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

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 Tabel Field Field Field Tabel Field Field Field 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 int(size) smallint(size) tinyint(size) mediumint(size) bigint(size) decimal(size,d) double(size,d) float(size,d)

Keterangan Menyimpan data bilangan bulat ( integer)

Menampung data bilangan pecahan (real)

Data Teks char(size) varchar(size)

Tinytext Text blob (biner) Mediumtext mediumblob (biner) Longtext longblob (biner)

Keterangan Menampung data teks dengan ukuran jumlah karakter tetap Menampung data teks dengan ukuran jumlah karakter bervariasi sesuai dengan panjang data . Ukuran size untuk menentukan ukuran maksimum Menampung data teks dengan ukuran jumlah karakter bervariasi, dengan maximum 255 karakter Menampung data teks dengan ukuran jumlah karakter bervariasi, dengan maximum 65535 karakter Menampung data teks dengan ukuran jumlah karakter bervariasi, dengan maximum 16777215 karakter Menampung data teks dengan ukuran jumlah karakter 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 CREATE DATABASE namadatabase;

database ba ru

digunakan untuk mendefinisikan dan membuat struktur sebuah tabel dengan sejumlah field beserta tipe dan ukurannya
CREATE TABLE CREATE TABLE Field1 Field2 Field3 ); namatable( type(ukuran), type(ukuran), 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’) ;

digunakan untuk memanggil/mencari data dengan atribut dan kriteria tertentu dari satu atau lebih tabel
SELECT // contoh 1 SELECT * FROM namatable; // contoh 2 (dengan atribut/field tertentu) SELECT Field1, Field2 FROM namatable;

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

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%’;

digunakan bersama-sama dengan statemen query SELECT untuk mengatur urutan dari data hasil query
ORDER // 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;

digunakan untuk merubah satu atau beberapa baris data, digunakan bersama statemen WHERE untuk menentukan kriteria data yang ak an dirubah
UPDATE UPDATE user SET nama=’sofyan thayf’ WHERE nama=’sofyan’;

digunakan untuk menghapus satu beberapa baris data, digunakan bersama statemen WHERE untuk menentukan kriteria data yang akan dihapus.
DELETE 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 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 echo echo echo ?> $nama[0]."<br>"; $nama[1]."<br>"; $nama[6]."<br>"; $nama[7]."<br>"; // // // // --> --> --> --> Nabigha Yushatia Salsabil Jalila Filza Ramadhani 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 { echo echo echo } ?> = mysql_fetch_array( $hasilq ) ) $dt[‘namauser’]; $dt[‘alamat’]; $dt[‘telepon’];

32

6

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 $s $s $s = 3; = ‘3’; == $n --> True === $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” ) echo strstr( $teks, “a” ) // --> “MA Makassar” // --> “akassar”

// case-insensitive echo stristr( $teks, “A” ) // --> “ARISMA Makassar” echo strpos( $teks, “K” ) echo strpos( $teks, “a” ) // case-insensitive echo stripos( $teks, “a” ) ?> // --> 3 // --> 16

// --> 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]; echo $st[2]; echo $st[3]; ?> // --> 17 // --> 08 // --> 2008

Substring Substring adalah pengambilan (ekstraksi) satu string dari satu string yang lain, pada PHP digunakan function substr()
<?php $teks = “STMIK KHARISMA Makassar” ; echo echo echo echo ?> substr( substr( substr( substr( $teks, $teks, $teks, $teks, 6 ); 6 , 8 ); 0, 5 ); -3 ); // // // // --> --> --> --> KHARISMA Makassar KHARISMA STMIK 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

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

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+ w w+ a a+ x x+ Read/Write, pointer file berada di a wal file Write only, membuka dan mengosongkan isi file untuk kemudian ditulisi, atau membuat file baru jika file belum ada Read/Write, membuka dan mengosongkan isi file, atau membuat file baru jika file belum ada 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 di akhir file) Write only, Membuat file baru. Menghasilkan FALSE dan pesan error if jika nama file sudah ada 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

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 onthe-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 image PNG image PNG image WBMP

imagepng() , menghasilkan format imagejpg(), menghasilkan format

imagewbmp() , menghasilkan format

<?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 printerfriendly 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

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're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->