web programming -...

52
WEB PROGRAMMING Disusun oleh: Moh. Sofyan S. Thayf, S.T., M.CS. STMIK KHARISMA MAKASSAR 2009

Upload: hangoc

Post on 02-Mar-2019

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

WEB PROGRAMMING

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

STMIK KHARISMA MAKASSAR2 0 0 9

Page 2: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

2

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

Page 3: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

3

Introduction

World Wide Web (WWW) atau dengan singkat sering disebut web adalah satu bentukmedia informasi dan komunikasi dan merupakan aplikasi terpopuler atau paling banyakdimanfaatkan dalam jaringan internet. Melalui sarana web, berbagai bentuk informasidapat disampaikan secara interaktif kepada pengguna internet di seluruh dunia.

Secara fisik, web sesungguhnya merupakan rangkaian dokumen berisi teks, gambar, ataumultimedia, yang saling berhubungan ( link) satu dengan yang lain, membentuk rangkaianinformasi lengkap.

Karena merupakan aplikasi dalam jaringan internet yang meliputi seluruh dunia, dimanapenggunanya sangat mungkin memiliki dan menggunakan perangkat dan platformkomputer yang berbeda-beda, maka web harus bersifat universal dan dapat diaksesmelalui beragam platform. Karena itu dokumen web ditulis sebagai dokumen hypertextdengan menggunakan Hyper Text Markup Language (HTML).

HTML merupakan bahasa markup yang dipakai untuk mendefinisikan isi, layout, danformat sebuah dokumen. Representasi dokumen yang dihasilkan bergantung pada kode -kode HTML yang dituliskan untuk dokumen tersebut. Dengan HTML , sebuah dokumendengan penampilan yang kompleks dapat disajikan hanya dengan menuliskan kode -kodeHTML yang berbasis plain text (file berformat teks, bukan file biner). Karena itudokumen web disebut dokumen hypertext, dan karena itu pula dokumen web dapatditransmisikan dan dibaca dengan mudah di seluruh dunia sekalipun pada platform yangberbeda-beda

Dokumen web dapat dibuat secara statik maupun dinamik. Web statik merupakandokumen web yang dibentuk dengan menggunakan HTML murni, dikatakan statik karenaisinya bersifat tetap atau tidak berubah sampai dilakukan perubahan pada kode HTML -nya. Web dinamik adalah dokumen web yang isinya bisa berubah disesuaikan denganberbagai keadaan seperti waktu, tempat, ataupun pilihan pengguna. Dokumen webdinamik dibentuk dengan menggunakan pemrograman yang menghasilkan HTMLsebagai bentuk output

Page 4: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

4

1Pengantar Web Programming

Dokumen web pada dasarnya dibentuk dengan menggunakan HyperText MarkupLanguage (HTML). Sebuah dokumen web akan tampil sesuai dengan kode HTML yangditulis, 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 dokumenweb yang isinya bisa berubah disesuaikan dengan berbagai keadaan seperti waktu,tempat, ataupun pilihan pengguna. Web dinamik dibentuk dengan menggunakan teknikpemrograman dalam bahasa pemrograman tertentu yang menghasilkan HTML sebagaibentuk output.

Webmerupakan satu bentuk komunikasi data berarsitektur client-server, di mana sebuahclient yang membutuhkan layanan web harus terkoneksi dan melakukan request kesedikitnya satu server yang khusus melayani web (web server), dan server akanmemberikan respon atas request dari client tersebut dengan mengirimkan dokumen webyang diminta lalu ditampilkan melalui program browser di client.

Berdasarkan arsitektur client-server tersebut, maka pemrograman web dapat dilakukan disisi server (server-side programming) maupun di sisi client (client-side programming).Pada pemrograman client-side, kode program yagn akan menghasilkan dokumen webakan di kirim ke web browser, dan web browser akan mengeksekusi program untukkemudian menampilkan hasilnya. Pada pemrograman server-side, program akandieksekusi oleh server dan hasilnya akan dikirim ke browser client untuk di tampilkan.

Penggunaan client-side programming dan server-side programming memiliki keuntungandan kelemahannya masing-masing, dan digunakan sesuai denga n kebutuhannya, namunkeduanya juga dapat digabungkan untuk mendapatkan performance aplikasi web yanglebih baik.

Keuntungan client-side programming, aktifitas yang hanya berhubungan dengan tampilandan validasi di sisi pengguna/pembaca tidak membebani server dan proses bisamelibatkan event pada browser client.

Pemrograman client-side tidak cukup baik untuk aplikasi web yang membutuhkan faktorkeamanan, karena script program ikut di dalam kode HTML yang di-download olehbrowser user atau di-download sebagai file eksternal, sehingga pengguna bisa mengaksessource-code program.

Pemrograman yang dieksekusi di sisi server (server-side) memungkinkan pengembanganweb dinamik yang melibatkan akses data, serta aktifitas yang membutuhkan autentikasidan security. Permasalahan pada pemrograman server-side adalah terkait dengan beban

Page 5: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

5

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 adalahJavaScript, dan bahasa-bahasa yang banyak di pakai untuk pemrograman server-sideantara lain PHP, Perl, Python, ASP, JSP, dan lain -lain, namun dalam tutorial ini, kitamembatasi hanya pada bahasa pemrograman PHP yang banyak digunakan dan relatifmudah untuk dipelajari.

JavaScript

JavaScript pertama kali dikembangkan oleh Brendan Eich pada Netscape Navigator2.0, pada tahun 1996, dan hingga saa t ini dapat dijalankan pada hampir semua browserpopuler terbaru. Standart JavaScript disahkan oleh ISO pada tahun 1998 dan sampai saatini masih terus dikembangkan.

Java dan JavaScript adalah dua bahasa yang sama sekali berbeda, baik dari segi konsepmaupun disain.

Java (dikembangkan oleh Sun Microsystems) adalah bahasa pemrograman yang sangatkompleks dan powerful seperti C atau C++.

HTML bukanlah bahasa pemrograman, tetapi dengan tambahan JavaScript, HTMLmenjadi memiliki tools pemrograman, yang memungkinkan sebuah dokumen web dapat:

Menghasilkan tampilan dokumen web yang dinamis dengan pemanfaatanvariabel-variabel dan kontrol struktur dari JavaScript

Merespon atau memberikan reaksi terhadap event pada browser seperti klikmouse, atau menutup dan membuka 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>

Page 6: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

6

Script JavaScript bisa ditempatkan pada bagian <head> , pada bagian <body>, ataupunpada <head> dan <body> sekaligus dari HTML, disesuaikan dengan dimana JavaScriptdiperlukan

<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 dalamdokumen HTML

<html><head><script src="namafile.js"></script></head><body></body></html>

Cara ini memungkinkan penggunaan bersama satu set kode JavaScript untuk sejumlahdokumen HTML tanpa harus menuliskannya kembali di setiap dokumen.

Sebagaimana layaknya bahasa pemrograman, JavaScript ditulis dalam bentuk urutanstatemen, eksekusi akan dilakukan oleh browser dan setiap statemen output JavaScripthasilnya akan langsung di tampilkan 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){

Page 7: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

7

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

JavaScript Function

Untuk mencegah agar script tidak langsung dieksekusi oleh browser, kode JavaScriptdapat disimpan dalam bentuk function. Function akan dieksekusi melalui pemanggilanfunction tersebut atau dipicu oleh sebuah event (lihat Event JavaScript). Pemanggilanfunction dapat dilakukan oleh kode JavaScript lain di seluruh bagian dokumen HTML

Function pada JavaScript dapat dituliskan pada bagian <head> maupun <body> dariHTML, termasuk melalui pemanggilan JavaScript sebagai file eksternal (file .js) , namununtuk memastikan function telah dibaca atau di-load oleh browser, dan untuk functionyang akan digunakan/dipanggil berulangkali dalam sebuah dokumen, sebaiknya functionJavaScript di simpan di bagian <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. Functiontanpa parameter tetap menggunakan t anda kurung () pada nama function.

Jika function menghasilkan nilai balik/nilai hasil ( return value) maka digunakanstatement return.

function prod(a,b){x=a*b;return x;}

Page 8: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

8

Jika function di atas di panggil dengan sintaks

hasil=prod(2,3);

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

Event dan JavaScript

Setiap element dari halaman web umumnya memiliki event tertentu yang dapatdigunakan untuk memicu eksekusi dari function JavaScript. Bahkan untuk bisamemanfaatkan event, selalu digunakan bersama dengan function yang sudahdidefinisikan 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) padahalaman 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()"

Page 9: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

9

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

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

PHP

PHP adalah singkatan dari “PHP: Hypertext Preprocessor” , merupakan bahasascripting yang bekerja di sisi server, yang banyak digunakan untuk pengembanganaplikasi web. PHP dikembangkan oleh Rasmus Lerdof sejak tahun 1997 pada serverweb Apache. Server web Apache sendiri saat ini merupakan server web terpolpuler dansudah 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 diakhiridengan ?>, atau dapat juga di tulis dengan bentuk singkat <? dan ?>. Akan tetapi untukmendapatkan kompatibilitas maksimum, dianjurkan untuk menggunakan bentuk yangpertama

<?php

.. kode php di sini ..

?>

Karena pada dasarnya akan menghasilkan kode HTML yang ak an membentuk dokumenweb, maka file source code PHP akan terlihat seperti file HTML yang disisipi dengankode-kode PHP

<html><body><?phpecho "Hello World";?></body></html>

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

Page 10: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

10

Variabel pada PHP

Variabel digunakan untuk menampung nilai t ertentu berupa data text atau data nilaitertentu selama eksekusi program. Variabel pada PHP sangat fleksibel, tidak sepertikebanyakan bahasa pemrograman yang mengharuskan sebuah variabel dan tipenyadideklarasikan terlebih dahulu sebelum digunakan, pada PHP tidak perlu ada deklarasivariabel dan tipe data aan ditentukan otomatis pada saat digunakan pertama kali sesuaidengan nilai yang diberikan

<?php$txt = "Hello World!";$number = 16;?>

Nama variabel pada PHP selalu didahului dengan tanda $, dengan aturan penamaan yangsama seperti bahasa pemrograman lain nya, antara lain seperti dimulai dengan huruf atauunderscore ( _ ) setelah tanda $, tidak dimulai dengan angka dan tidak mengandung spasiatau tanda baca

Kode PHP tidak akan terlihat jika kita mencob a menggunakan fasilitas View Source daribrowser, akan yang terlihat hanya kode -kode HTML murni karena semua kode PHPsudah diinterpretasi oleh server dan menghasilkan output HTML sebelum di kirim keclient

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

Page 11: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

11

2Teknik Pemrograman

Struktur Kontrol

Pada prinsipnya, program dieksekusi secara berurutan (sekuensial) mulai dari barispertama 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 adastatement khusus untuk kontrol sekuensial, tetapi untuk pencabangan dan perulanganterdapat sejumlah statement khusus yang bisa digunakan sesuai keperluan

Pencabangan dengan IF .. ELSE ..

Statemen IF .. ELSE .. digunakan untuk memilih untuk menjalankan salah satu daridua proses berdasrkan sebuah kondisi, proses pertama dijalankan jika kondisi bernilaibenar (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>

Page 12: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

12

Jika kode yang akan dieksekusi lebih dari satu baris, maka kode harus ditulis dalam blokyang ditandai dengan tanda kurung kurawal {}

<html><body><?php$d=date("D");if ($d == "Fri") {

echo "Halo!<br />";echo "Selamat berakhir pekan!";echo "Sampai jumpa!";

}?></body></html>

Pencabangan dengan IF .. ELSEIF .. ELSE ..

Jika terdapat lebih dari satu kondisi yang akan bernilai benar, maka digunakan statementIF .. ELSEIF .. ELSE ..

if (kondisi1) .. kode yang akan dijalankan 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

Page 13: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

13

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 dijalankanjika ekspresi tidak sama dengannilai-nilai yang tersedia;

}

Contoh

<html><body><?phpswitch ($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 eksekusibaris di bawahnya apabila satu pilihan telah memen uhi. Pilihan default akan diambilapabila tidak ada nilai yang sama dengan ekspresi.

Perulangan dengan WHILE

Statemen WHILE digunakan untuk melakukan proses yang berulang selama satu kondisimasih memenuhi

while (kondisi){

..Kode yang akan di jalankanselama kondisi masih memenuhi..

}

Page 14: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

14

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 selaludibutuhkan 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 statemenWHILE, bedanya pada pengujian kondisi masih memenuhi atau tidak dilakukan setelahproses dijalankan, sehingga proses dalam perulangan dengan DO ..WHILE selalu akandijalankan minimal satu kali

do{

..Kode yang akan di jalankanselama kondisi masih memenuhi..

}while (kondisi)

Contoh:

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

Page 15: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

15

Perulangan dengan FOR

Untuk proses perulangan yang jumlah perulangannya sudah diketahui, digunakanstatemen FOR.

for (nilai_awal; kondisi; increment){

..Kode yang akan di jalankanselama 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><?phpfor ($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 yangberdiri sendiri dan didisain untuk menjalankan satu fungsi tertentu. Keuntungan denganmemecah-mecah program menjadi sejumlah function dan procedure antara lain:

memudahkan pembuatan program dengan memilah -milah dan menyelesaikanmasalah dalam modul-modul program yang lebih kecil

memudahkan penelusuran bila terjadi kesalahan, karena cukup melakukanpenelusuran pada modul tertentu saja, tidak perlu pada keseluruhan program

memungkinkan penggunaan ulang (reuse) modul program untuk bagian lain dariprogram atau untuk proyek pengembangan program yang lain

function dan procedure pada prinsipnya dan cara penulisannya sama, yang membedakanadalah pengembalian nilai (return value), hasil eksekusi function memberikan nilai balik,sedangkan procedure tidak memberikan nilai balik. Pada pemrograman PHP, functiondan procedure sama-sama dibentuk dengan menggunakan statemen function, yangmembedakannya adalah penggunaan statemen return pada function untuk pengembaliannilai.

Contoh procedure:

<html><body><?php// deklarasi procedure

Page 16: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

16

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

//pemanggilan procedureTulis_nama();?>

</body></html>

Contoh function:

<html><body><?php

// deklarasi functionfunction add($x,$y) {

$total = $x + $y;

//pengembalian nilai $total sebagai nilai balikreturn $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 contohfunction merupakan parameter untuk memberikan nilai masukan kepada function atauprocedure.

Function menghasilkan nilai, sehingga function dapat dianggap sebuah nilai, dan sebuahnilai tidak dapat dituliskan berdiri sendiri, karena itu pemanggilan function harusdinyatakan 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

Page 17: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

17

Sejumlah function/procedure buatan sendiri (user defined function) dapat dikoleksi dalamfile tersendiri sebagai library dan dipanggil dari file program PHP yang lain denganfunction 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 fileyag dimaksud tidak ada. Function include() hanya akan memberikan warning ataupesan kesalahan dan melanjutkan ekseskusi program, sedangkan require() akanmenghentikan 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 waktupengembangan aplikasi-aplikasi berikutnya, karena function yang dikoleksi nantinya bisadimanfaatkan kembali (reuse) dengan mudah.

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

Page 18: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

18

3Pemrosesan Web Form

Form HTML

Form (formulir) pada halaman web merupakan sarana untuk menerima input/masukandari 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 didalamnya 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 digunakantag <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 yangnantinya akan mewakili data yang dimasukkan, karena itu harus bersifat unik. Atributvalue digunakan untuk memberikan nilai awal atau nilai default dari isian.

Page 19: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

19

Password

Input bertipe password, pada dasarnya sama dengan input bertipe text, hanya saja saatpengetikan 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 sejumlahinput tipe radio yang merupakan pilihan untuk satu nilai. Nilai yang nantinya diambiladalah value dari input radio yang dipilih

Checkbox

Untuk isian pilihan yang memungkinkan pemilihan lebih dari satu biasanya digunakaninput 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

Page 20: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

20

Submit dan Reset

Tipe input submit dan reset bukan untuk membuat isian data, tetapi digunakan untukmenampilkan tombol yang jika di klik akan mengakhiri pengisian form dan mengirimkandatanya 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 untukmenuliskan teks pada tombol

Hidden

Jika terdapat data yang bersifat default dan tidak memerlukan masukan daripembaca/pengguna yang akan ikut dikirim bersama form, dapat digunakan tipe inputhidden

<html><body><form>

<input type=’hidden’ name=’class’ 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 dandata 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 pilihanbisa disajikan dalam bentuk drop-down box/combo-box dengan menggunakan tag<select> .. </select> yang didalamnya dituliskan sejumlah pilihan, masing -masingpilihan menggunakan tag <option> .. </option>

<html><body><form>

Bidang Pekerjaan: <select name=’divisi’> <option value=’Finance’>Finance</option> <option value=’IT’>IT</option> <option value=’Marketing’>Marketing</option> </select></form></body>

Page 21: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

21

</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 pengisian data teks yangpanjang 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 dimungkinkandan textarea akan menampilkan penggulung ( scrollbar)

Validasi Form

“Garbage in, garbage out”, jika sampah yang masuk maka sampah juga yang akankeluar, ungkapan ini masih selalu digunakan untuk mengingatkan agar selalu memastikanbahwa data yang diinput sudah merupakan data yang valid dan benar agar tidak terjadikesalahan proses dan mengakibatkan kesalahan output atau informasi yang akandihasilkan.

Web merupakan media dengan karakteristik pengguna yang sangat beragam, baik darisegi tingkat pendidikan hingga perilaku, sehingga disainer web tidak bisa menganggapbahwa pengguna selalu mengerti tentang informasi yang disajikan dan akan memberikaninformasi yang selalu valid melalui form. Karena itu proses validasi form selalu harusmenjadi perhatian.

Validitas data disini tidak termasuk kebenaran data dalam arti kesesuaian dengan fakta,tetapi lebih kepada kualitas fisik data, seperti memastikan tidak terjadi kesalahan entritanggal 30-02-1008 (tidak ada tanggal 30 di bulan Februari), alamat email mengandungspasi atau dengan dua tanda @, field/isian yang wajib diisi, verifikasi password yangtidak sama, dan lain sebagainya.

Validasi dapat dilakukan baik di sisi client, maupun di sisi server. Validasi di sisi clientdianjurkan karena proses bisa lebih cepat dan tidak/belum melibatkan koneksi ke server.Validasi di sisi server juga memiliki keuntungan karena bisa langsung di lakukanverifikasi dengan data pembanding dari koleksi databa se yang ada. Semakin banyak titikuntuk melakukan validasi semakin menjamin bahwa data yang masuk bukan datasampah.

Page 22: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

22

Validasi di sisi client akan di proses sebelum data dari form dikirimkan, karena itu prosesakan 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() yangakan memeriksa isi field tertentu

Page 23: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

23

Pemrosesan Form

Untuk dapat diproses lebih lanjut data form akan dikirim ke server, dan akan diprosesoleh server-side program. Untuk itu form haruis diberi atribut untuk memberikaninformasi 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 sisiserver (dalam contoh: file regist.php), dan atribut method digunakan untuk menentukanmetode pengiriman data ke server, ada dua metode yangbisa digunakan, metode GET danmetode POST.

Metode GET akan mengirimkan data melalui request URL ke server, sedangkan metodePOST akan mengrimkan data form melalui koneksi tersendiri ke server.

Di sisi server semua nilai atribut name pada form akan dibaca sebagai variabel jikasetting REGISTER_GLOBAL pada server diset ON, dan akan dibaca sebagai array jikaREGISTER_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 anda: “. $mail ;?>

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

Page 24: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

24

4Akses 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 danbanyak digunakan, bahkan menjadi standar de-facto untuk database bagi layanan berbasisweb dengan digunakannya MySQL oleh situs -situs besar di internet seperti Yahoo danGoogle.

Struktur Data Base

Seperti lazimnya DBMS yang populer lainnya, MySQL juga memiliki struktur databaseyang merupakan himpunan sejumlah tabel, dan setiap tabel merupakan himpunan datadengan atribut (field) tertentu. Setiap data di susun dalam setiap baris tabel, dan setiapatribut data disusun sebagai kolom di dalam tabel.

Atribut atau field data merupakan bagian dari data yang memilik i kriteria atau klasifikasitertentu, seperti field nama, field alamat, field nomor telepon, kumpulan semua fieldmembentuk satu baris/satu record data.

Tipe Data

Atribut/field dari data memiliki tipe dan ukuran tertentu sesuai dengan jenis da ta yangakan disimpan. Pada umumnya terdapat tiga tipe data utama, yaitu

tipe data numerik, tipe data teks, dan tipe data tanggal

TabelField Field Field Field

TabelField Field Field Field

TabelField Field Field Field

DATABASE

record

Page 25: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

25

Data Numerik Keteranganint(size)smallint(size)tinyint(size)mediumint(size)bigint(size)

Menyimpan data bilangan bulat ( integer)

decimal(size,d)double(size,d)float(size,d)

Menampung data bilangan pecahan (real)

Data Teks Keteranganchar(size) Menampung data teks dengan ukuran jumlah karakter

tetapvarchar(size) Menampung data teks dengan ukuran jumlah karakter

bervariasi sesuai dengan panjang data . Ukuran size untukmenentukan ukuran maksimum

Tinytext Menampung data teks dengan ukuran jumlah karakterbervariasi, dengan maximum 255 karakter

Textblob (biner)

Menampung data teks dengan ukuran jumlah karakterbervariasi, dengan maximum 65535 karakter

Mediumtextmediumblob (biner)

Menampung data teks dengan ukuran jumlah karakterbervariasi, dengan maximum 16777215 karakter

Longtextlongblob (biner)

Menampung data teks dengan ukuran jumlah karakterbervariasi, dengan maximum 4294967295 karakter

Tipe blob digunakan untuk menampung data binary seperti image/citra

Data Tanggal Keterangandate (yyyy-mm-dd)datetime (yyyy-mm-dd hh:mm:ss)timestamp (yyyymmddhhmmss)time (hh:mm:ss)

Menampung data tanggal

SQL

Structured Query Language (SQL) adalah merupakan standar bahasa khusus untukmelakukan query (permintaan) data dari database, yang sudah dipakai pada banyakDBMS, termasuk MySQL, dan juga sudah dapat digunakan pada banyak bahasapemrograman untuk mengakses server database.

Berdasarkan fungsinya, statenmen SQL dikelompokkan dalam dua kelompok, yaitukelompok Data Definition Language (DDL) dan kelompok Data Manipulation Language(DML)

Page 26: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

26

Data Definition Language

Statemen-stateman SQL dalam kelompok DDL , lebih banyak di gunakan untukmembentuk 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 tabeldengan 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). StatemenSQL untuk DML yang paling sering digunakan, antara lain:

INSERT, digunakan untuk mengisi record baru kedalam sebuah tabel pada database

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

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

SELECT digunakan untuk memanggil/mencari data dengan atribut dan kriteria tertentudari satu atau lebih tabel

// contoh 1SELECT * FROM namatable;

// contoh 2 (dengan atribut/field tertentu)SELECT Field1, Field2 FROM namatable;

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

Page 27: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

27

// contoh 1SELECT * FROM user WHERE nama=’sofyan’;// contoh 2 (dengan atribut/field tertentu)// menampilkan nama dengan huruf depan sSELECT nama, alamat FROM user WHERE nama LIKE ‘s%’;

ORDER digunakan bersama-sama dengan statemen query SELECT untuk mengatururutan dari data hasil query

// contoh 1SELECT * FROM user WHERE nama=’sofyan’ ORDER BY nama;// contoh 2 (dengan atribut/field tertentu)// menampilkan nama dengan huruf depan s// urutan descendingSELECT nama, alamat FROM user WHERE nama LIKE ‘s%’ ORDER BY nama DESC;

UPDATE digunakan untuk merubah satu atau beberapa baris data, digunakan bersamastatemen 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 bersamastatemen 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 serverdatabase yang menggunkaan MySQL

Membuat Koneksi ke Database

Untuk melakukan koneksi ke server database MySQL dari aplikasi PHP, digunakanfuncrion mysql_connect( ‘namahost’, ‘namauser’, ‘password’), dengan stringnama host, nama user MySQL, dan password user sebagai parameter.

<?php$konek = mysql_connect("localhost","sofyanthayf’,"250708");if (!$con)

Page 28: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

28

{ 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 denganserver 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 terlebihdahulu sebelum melakukan manipulasi (meliputi searching, retrieving, editing, ataudeleting) 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 SQLberbentuk string query. Untuk mengirimkan string query dalam bahasa SQL dari PHP,digunakan function mysql_query( string_query ). Strnig query SQL dilewatkansebagai parameter pada function mysql_query() dan hasilnya ditampung pada sebuahvariabel sebagai kontainer.

<?php

$hasilq = mysql_query(“SELECT * FROM user”);// variabel $hasilq adalah kontainer yang// menampung hasil query

?>

Page 29: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

29

Untuk mengekstrak data hasil query digunakan function mysql_fetch_row(

hasil_query ) atau function mysql_fetch_array( hasil_query ) dengan variabelkontainer hasil query mysql_query() dilewatkan sebagai parameter.

Karena hasil query biasanya berisi sejumlah baris data (tuples), maka biasanya ekstraksidata menggunakan function mysql_fetch_row() atau function mysql_fetch_array()

dilakukan dalam perulangan

<?php

$hasilq = mysql_query(“SELECT * FROM user”);while( $dt = mysql_fetch_row( $hasilq ) ){

echo $dt[0];echo $dt[1];echo $dt[2];

}

?>

Jika menggunakan mysql_fetch_row() , data dibaca sebagai array dengan nomor indekssesuai dengan urutan field yang di query (indeks 0 adalah field pertama), sedangkan jikamenggunakan function mysql_fetch_array(), maka data dibaca sebagai array denganindeks 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 informasijumlah 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)

Page 30: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

30

5A r r a y

Array adalah variabel yang dapat menampung lebih dari satu data dengan hanya satunama variabel. Sejumlah data, yang umumnya sejenis, dapat ditangani dengan mudahhanya dengan menggunakan satu nama variabel. Setiap data menjadi elemen array yangmasing-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 duajenis, yaitu array numerik (numeric array) dan array asosiatif (associative array)

Array Numerik

Array numerik adalah array dengan indeks atau kunci setiap elemennya menggunakannumerik (numeric ID key) berupa bilangan integer, dengan nomor indeks 0 untuk elemenpertama

<?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 menambahkan data pada posisi elemen terakhir$nama[] = "Filza Ramadhani";$nama[] = "Sofyan Thayf";

echo $nama[0]."<br>"; // --> Nabigha Yushatiaecho $nama[1]."<br>"; // --> Salsabil Jalilaecho $nama[6]."<br>"; // --> Filza Ramadhaniecho $nama[7]."<br>"; // --> Sofyan Thayf

?>

Page 31: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

31

Array Asosiatif

Array asosiatif adalah satu cara yang akan sangat memudahkan apabila sebuah nilai perludihubungkan 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 dimungkinkannyapenggunaan string sebagai ID dari elemen array, akan memudahk an dalam penulisanprogram karena jenis data dari elemen array dapat diketahui dari ID, sehinggamemperkecil kemungkinan kesalahan penanganan data array. Hal ini sangat membantuuntuk 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 2dimensi. Elemen dari array dapat terbentuk dari array lagi, dan elemen dari sub-arrayjuga 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";

Page 32: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

32

// 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 elemennyatidak terpantau lagi sepanjang aktifitas program, bisa digunakan stetemen perulanganFOREACH, yang mengambil setiap elemen array sebagai kontrol perulangannya,perulangan akan berhenti setelah semua elemen array terbaca.

<?php

// menampilkan semua elemen arrayforeach( $array as $var ){ echo $var.”<br>”;}

?>

Menangani field database

Data hasil query database merupakan kumpulan record yang sesuai dengan kriteria yangdiinginkan dalam query, karena itu penanganannya dilakukan sebagai array dua dimensi.Untuk tetap menggunakan nama field sebagai identitas data, maka digunakan arrayasosiatif 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’];

}

?>

Page 33: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

33

6Manipulasi String

Operasi String

Memeriksa String Kosong

Untuk melakukan pengecekan apakah 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 databertipe 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

Page 34: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

34

Pengulangan

Untuk menuliskan karakter secara berulang, digunakan function str_repeat()

<?php

echo str_repeat( ‘*’, 10 ; // --> ‘**********’// str_repeat() jauh lebih efisien dari padafor( $u=1; $u<=10; $u++ ){

echo ‘*’;}

?>

Pencarian

Ada dua cara dalam PHP untuk melakukan pencarian string di dalam string lain, yaitumenggunakan function strstr() atau stristr(), dan menggunakan functionstrpos()

<?php

$teks = “STMIK KHARISMA Makassar”;echo strstr( $teks, “M” ) // --> “MA Makassar”echo strstr( $teks, “a” ) // --> “akassar”

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

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

// case-insensitiveecho 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 dalamstring, hitungan posisi dimulai dari 0.

Function stsrstr() dan strpos() bersifat case-sensitive, sedangkan functionstristr() dan stripos() bersifat case-insensisitive, atau tidak mempedulikan hurufbvesar atau huruf kecil

Page 35: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

35

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

?>

Substring

Substring adalah pengambilan (ekstraksi) satu string dari satu string yang lain, padaPHP digunakan function substr()

<?php

$teks = “STMIK KHARISMA Makassar”;echo substr( $teks, 6 ); // --> KHARISMA Makassarecho substr( $teks, 6, 8 ); // --> KHARISMAecho substr( $teks, 0, 5 ); // --> STMIKecho substr( $teks, -3 ); // --> sar

?>

Penggantian String

Untuk melakukan penggantian sebagian dari string digunakan function str_replace()

<?php

$email = “[email protected]”;$email_aman = str_replace( ‘@’, ‘_at_’, $email );echo $emailaman;// --> sofyan_at_yahoo.com

?>

Page 36: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

36

Karena function str_replace() dapat menerima array sebagai daftar string yagn akandiganti, maka dapat dimanfaatkan untuk mengganti kata -kata yang kurang sopan dalamtulisan

<?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 akanditampilkan beserta tipenya.

Function printf() juga dapat digunakan untuk merepresentasikan data numerik sesuaiformat yang diinginkan berdasrakan type specifier-nya

<?php

$n = “65”;// tampilkan sebagai binerprintf( “%b“, $n ); --> 1000001

// tampilkan sebagai karakter ASCIIprintf( “%c“, $n ); --> A

// tampilkan sebagai integerprintf( “%d“, $n ); --> 65

Page 37: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

37

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

// tampilkan sebagai stringprintf( “%s“, $n ); --> 65

// tampilkan sebagai hexadesimalprintf( “%X“, $n ); --> 41

?>

Page 38: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

38

7Cookies dan Session

Web komunikasi data berbasis koneksi yang hanya bekerja berdasarkan request dariclient dan response dari server. Satu sesi koneksi hanya terjadi mulai dari request sampairesponse diterima, setelah itu selesai, dalam arti aktiftas selanjutnya merupakan koneksibaru dan tidak berhubungan dengan aktifitas koneksi sebelumnya.

Untuk aktifitas yang persistent diperlukan informasi tambahan yang akan menjadi saranapenghubung antara satu sesi koneksi dengan sesi koneksi berikutnya, minimal untukmengetahui informasi user atau host pengguna. Untuk itu, disediakan variabel yang akanmenampung data tertentu, dan data tersebut akan di baca kembali untuk memastikanbahwa itu adalah koneksi persistent.

Teknik dengan penyimpanan variabel ini disebut cookies jika variabel dan data disimpandi sisi client oleh browser, dan sessions jika data disimpan di server

Cookies

Untuk menyimpan informasi tertentu di sisi browser agar bisa dibaca kembali pada saatbrowser 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-namavariabel yang ada sebagai ID elemennya

Page 39: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

39

<?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 parameternama variabel yang akan dihapus tanpa nilai/data

<?php

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

?>

Variabel cookies juga bisa dihapus secara otomatis setelah beberapa waktu yangditentukan (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 denganmengunakan session.

Page 40: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

40

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></br><a href="sesi2.php?<?php echo htmlspecialchars(SID); ?>">Lanjutkan</a>

Setiap session akan mendapatkan session-ID yang nantinya akan dipropagasi ke setiaphalaman 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, tetapiakan bermasalah dengan ditolaknya cookies oleh browser sesuai kebijakan yang berlakudi browser masing-masing.

Membaca Variabel Session

Sebelum dapat membaca variabel session, session-ID harus di set dan functionsession_start() di panggil. Untuk propagasi mela laui parameter URL menggunakanhtmlspecialchars(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

?>

Page 41: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

41

8Penanganan File

File Teks

Selain menggunakan database, PHP juga dapat menangani file berbasis teks untukberbagai keperluan

Untuk membuka file teks digunakan function fopen() dan ditampung pada sebuahvariabel sebagai file handler

<?php

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

?>

Parameter kedua dari function fopen() adalah mode pembukaan file

Mode Descriptionr 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 kemudianditulisi, atau membuat file baru jika file belum ada

w+ Read/Write, membuka dan mengosongkan isi file, atau membuat filebaru jika file belum ada

a Append, membuka file dan menulis mulai dari akhir (pointer file diakhir file), membuat file baru jika file belum ada

a+ Read/Append, Membuka file dan menulis mulai dari akhir (pointer filedi akhir file)

x Write only, Membuat file baru. Menghasilkan FALSE dan pesan error ifjika nama file sudah ada

x+ Read/Write. Membuat file baru. Menghasilkan FALSE dan pesan errorjika nama file sudah ada

Untuk menutup file, digunakan function fclose()

fclose( $file );

Page 42: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

42

Pembacaan Isi File Teks

Pembacaan isi file dilakukan dengan melakukan perulan gan hingga ditemukan tanda EndOf File (EOF). Pembacaan dapat dilakukan secara baris -per-baris dengan functionfgets(), 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 untukmelakukan upload file ke server, misalnya untuk upload foto atau dokumen yang akan disharing 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>

Page 43: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

43

Atribut enctype berguna untuk memberitahu server bahwa data dan file uploaddikirimkan dalam beberapa koneksi terpisah. Karena pengiriman dilakuka n dalambeberapa 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( $_FILES[‘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 penyimpanansementara ke lokasi penyimpanan yang diinginkan di server

Page 44: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

44

9Grafik dan Dokumen

Bekerja Dengan GD

PHP memiliki fasilitas untuk membuat image (gambar) sebagai pelengkap informasi padadokumen web yang dihasilkan, sehingga image pada halaman web dapat dibuat secaradinamik juga, tidak statik seperti jika menggunakan image yang sudah jadi hasil dariprogram image editor. Namun elemen gambar yang dihasilkan akan sangat bergan tungpada kreatifitas dan penguasaan atas fungsi -fungsi image PHP

Untuk dapat membuat gambar dengan menggunakan fungsi -fungsi image dari PHP, harusdipastikan bahwa GD Library pada PHP sudah aktif. GD Library adalah ekstensi dariPHP 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 aplikasigrafis.

Untuk membuat image on-the-fly digunakan function imagecreate() diikuti denganfunction lain untuk membuat bentuk dan pewarnaan. Untuk menghasilkan output telahtersedia function khusus untuk menghasilkan output image dalam format yangdiinginkan, 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);

Page 45: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

45

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

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

File yang telah disimpan ke output dengan function imagepng() atau sejenisnya dapatditampilkan dengan pemanggilan melalui tag <IMG SRC=”namafile”> dari HTML.Function imagepng() atau sejenisnya tanpa parameter akan langsung menampilka nimage ke browser

Function imagedestroy() digunakan untuk membersihkan memori dari data -data imagehandler setelah tidak dibutuhkan lagi.

Overlay Image

Cara yang lebih mudah untuk menampilkan image adalah dengan memanfaatkan imageyang sudah ada lalu di-overlay (ditumpuk) dengan teks dinamik yang diinginkan. Dengancara ini penampilan, aspek seni, dan kualitas image bisa lebih baik, karena dibuat denganprogram aplikasi grafis, mengingat keterbatasan kemampuan PHP dalam membuatimage.

<?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 formatlain, tersedia function sejenis yang relevan

Page 46: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

46

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 formatPDF.

PHP dapat menghasilkan dokumen berformat PDF dengna dukungan library eksternalyang sudah cukup banyak dikembangkan oleh banyak pihak. Manual PHP sendirimerekomendasikan dan merujuk pada modul PdfLib yang bisa di download darihttp://www.pdflib.com/en/download/ , hanya saja penggunaan modul PdfLib untukkeperluan komersial atau bisnis diharuskan untuk memiliki lisensi dari pembuatnya.

Library PDF yang juga cukup populer dan bisa digunakan se cara cuma-cuma serta tidakkalah mudah dalam penggunaannya adalah ezPdf yang bisa di download darihttp://www.ros.co.nz/pdf/ .

Dalam contoh pembahasan ini digunakan ezPdf , yang dibuat dengan object orientedprogramming pada PHP, dan ezPdf didistribusikan dalam bentuk class yang siap pakai

<?php

// mengikutkan class ezPdfrequire '../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);

Page 47: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

47

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

?>

Koleksi function dari masing-masing PDF library berbeda-beda, tetapi biasanyadeveloper dari masing-masing library sudah menyediakan tutorial untuk penggunaanlibrary mereka

Page 48: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

48

10Asynchronous Java Script

Pengantar AJAX

AJAX singkatan dari Asynchronous JavaScript And XML.

AJAX bukanlah sebuah bahasa pemrograman baru, tetapi meru pakan teknikpemrograman pada JavaScript yang memungkinkan program client-side yang dibuatdengan JavaScript dapat berkomunikasi langsung dengan server dan meningkatkanperformance dari presentasi/aplikasi web.

AJAX memanfaatkan obyek XMLHttpRequest pada JavaScript yang memungkinkanterjadinya komunikasi asynchronous antara client dengan server, dan memungkinkanperubahan isi sebagian (parsial) dari halaman web tanpa harus me-reload seluruhnya

Komunikasi Asinkron

Pada prinsipnya, web adalah komunikasi data client-server yang bekerja berdasarkanrequest dan respon antara client dan server. Komunikasi terjadi saat client melakukanrequest lalu menunggu respon dari server, dan berakhir setelah semua informasi yangmenjadi respon dari server diterima oleh client. Proses komunikasi ini selalu melibatkanpengguna untuk memulai satu sesi request-respon, misalnya dengan klik icon link atauklik pada tombol submit form, dan disebu sebagai komunikasi sinkron antara client danserver.

Pada komunikasi asinkron, dimungki nkan terjadinya request oleh browser di saat satusesi komunikasi sedang berlangsung tanpa harus menunggu sampai proses sebelumnyaselesai. Proses request terjadi di latar belakang, dan di picu oleh event atau prosedurtertentu, 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-olahsangat dinamis dan sangat interaktif antara client dan server.

XMLHttpRequest

XMLHttpRequest adalah sebuah class obyek dalam JavaScript yang berfungsi untukmengirimkan request dari browser ke server dan menerima hasil (respon) dari server.

Pada browser Microsoft Internet Explorer, digunakan class obyekActiveXObject(“Msxml2.XMLHTTP”) atau ActiveXObject(“Microsoft.XMLHTTP”) ,

Page 49: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

49

karena itu, untuk menggunakan AJAX, script program harus dibuat sedemikian rupa agarbisa mengenali browser pengguna dan menggunakan obyek yang sesuai

<script type="text/javascript">

function ajaxFunction(){var xmlHttp;

// cek browsertry { // 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 memanggilprogram pada server-side

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

xmlHttp.send(null);

Page 50: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

50

Untuk dapat menangkap respon dari server, digunakan properti readyState yang akanmemberi informasi status dari request, dan berdasarkan status tersebut, dijalankanfunction 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-reloadseluruh 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>

Page 51: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

51

AJAX – PHP

Pada prinsipnya, semua bahasa pemrograman web pada server-side dapat berkomunikasidengan ajax, cukup dengan memasukkan nama file scriptnya sebagai parameter padamethod xmlHttp.open(), demikian pula halnya dengan PHP

Contoh halaman web sederhana dengan AJAX dan PHP

<html><body>

<script type="text/javascript">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">

Page 52: Web Programming - dahlan.unimal.ac.iddahlan.unimal.ac.id/files/diktat/pw/Web-Programming-Java.pdf · 4 1 Pengantar Web Programming Dokumen web pada dasarnya dibentuk dengan menggunakan

52

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 fanatikdengan satu bahasa saja misalnya PHP, telah banyak dikemb angkan PHP frameworkuntuk AJAX, dimana sejumlah fungsi -fungsi penting atau yang banyak dipakai telahtersedia dalam bentuk function hingga class object, dan programmer cukup menuliskankode-kode dan pemanggilan function dalam bahasa pemrograman PHP, bahkan adadiantaranya yang menawarkan penggunaan AJAX dari PHP tanpa harus menyentuhbagian JavaScript-nya sama sekali.

Informasi tentang berbagai framework AJAX-PHP dapat dibaca di sini:http://ajaxpatterns.org/PHP_Ajax_Frameworks