SKRIP PHP
&?php $dir = opendir("./"); while ($baca_file = readdir($dir)) { echo "$baca_file", "\n"; } closedir($dir);?>
COunTEr :
&?php$cfile = "datapengunjung.dat";$fh = fopen($cfile, "r+");
if (!$fh){ die("
Gagal membuka file $cfile.");}$s = fgets($fh, 6);
$hitung = (int) $s;$hitung = $hitung + 1;$hitung = str_pad($hitung, 6);
rewind($fh);fwrite($fh, $hitung);
echo "Anda pengunjung ke $hitung";
fclose($fh);?>
hITungKAr:
&?php$kalimat = "Belajar PHP";$jumlah=strlen($kalimat);print "variabel string \$kalimat = $kalimat
";print "Kalimat '$kalimat' diatas jumlah karakternya adalah $jumlah ";?>
IFLeSe:
&?php$a = 2;$b = 15;
print "\$a = $a dan \$b = $b
";
if ($a > $b){ print "Nilai a lebih besar dari nilai b";}else{ print "Nilai a lebih kecil dari nilai b";}?>
LingKar:
&?phpheader("Content-Type:image/jpeg");$background=@imagecreate(100,100);$kuning=imagecolorallocate($background,250,250,300);$hitam=imagecolorallocate($background,0,0,0);imagearc($background,50,50,50,50,0,360,$hitam);imageJPEG($background);imagedestroy($background);?>
TanGgaL:
&?php$tanggal=date("Ymd",time());print "Tanggal hari ini adalah $tanggal";?>
WaKTu:
&?php$waktu = date ("H:i:s",time());print "Waktu sekarang adalah $waktu";?>
WEB SERVER
Kata Web Server dapat dimaknai dengan :
1. Suatu Program Komputer yang mempunyai tanggung jawab/tugas menerima permintaan HTTP dari komputer klien, yang dikenal dengan nama web browser, dan melayani mereka dengan menyediakan respon HTTP berupa konten data, biasanya berupa halaman web yang
terdiri dari dokumen HTML, dan objek yang terkait seperti gambar, dll.
2. Komputer yang menjalankan program diatas. Walaupun masing-masing program webserver secara detil berbeda tetapi pada umumnya program
webserver memiliki fitur-fitur dasar yang sama seperti :
1. HTTP : Setiap program web server bekerja dengan menerima permintaan HTTP dari klien, dan memberikan respon HTTP ke klien tersebut. Respon HTTP biasanya mengandung dokumen HTML tetapi dapat juga berupa berkas raw, gambar, dan berbagai jenis dokumen lainnya. Jika terjadi kesalahan permintaan dari klien atau terjadi masalah saat melayani klien maka web server akan mengirim respon kesalahan yang dapat berupa dokumen HTML atau teks yang memberi penjelasan penyebab terjadinya kesalahan.
2. Logging : Umumnya setiap web server mempunyai kemampuan untuk melakukan pencatatan/logging terhadap informasi detil mengenai permintaan klien dan respon dari web server dan disimpan dalam berkas log, dengan adanya berkas log ini maka akan memudahkan web master untuk mendapat statistik dengan menggunakan tool log analizer. Pada penggunaan sehari-hari banyak web server mengimplementasikan fitur-fitur berikut :
1. Otentifikasi : fitur untuk mengotorisasi suatu permintaan dari klien sebelum menggunakan sumber daya yang dimiliki oleh web server (biasanya User dan Password)
2. Penanganan konten statis (berkas tersimpan pada file sistem server) dan konten dinamis dengan mendukung satu atau lebih antara muka yang sesuai (SSI, CGI, SCGI, FastCGI, JSP, PHP, ASP, ASP.NET, Server API seperti NSAPI, ISAPI dsb).
3. Dukungan HTTPS (dengan SSL, atau TSL) yang memungkinkan koneksi yang aman (dengan enkripsi) ke server pada port 433 berbeda dengan koneksi HTTP biasa di port 80
4. Kompresi Konten (misal menggunakan enkoding gzip) untuk mengurangi waktu respon server sehingga penggunaan pita data /Bandwith menjadi lebih hemat.
5. Virtual Hosting yang berguna untuk melayani banyak website hanya dengan menggunakan satu alamat IP.
6 Dukungan berkas berukuran besar, berfungsi untuk mendukung berkas yang memiliki ukuran lebih dari 2 gigabyte
7. Pengatur Bandwith (Bandwith throttling) yang berfungsi untuk membatasi kecepatan respon dengan tujuan tidak membanjiri jaringan dan menghemat pita data (bandwith) agar dapat melayani klien lebih banyak. Konten jawaban dari server web dibedakan menjadi :
1. Konten statis : biasanya berasal dari berkas yang telah ada pada server web
2. Konten Dinamis : dikatakan konten dinamis jika terjadi perubahan secara dimanis atas isi dari web baik dilakukan oleh program lain, script atau Application Program Interface (API) yang dijalankan oleh server web. Server dengan konten statis biasanya lebih cepat dari yang berisi konten dinamis (2 s.d. 100 kali Lebih cepat), terutama dalam menangani pengambilan data dari database.
Penerjemahan Path (Path Transalation)
Server web mengarahkan pennterjemahan komponen path kedalam URL (Uniform Resource
Locator) menuju :
● Sumber daya berkas sistem lokal jika permintaan bersifat statis.
● Program internal ataupun eksternal jika permintaan bersifat dinamis.
Untuk permintaan bersifat statis maka URL yang diminta oleh klien diarahkan ke root direktori webserver.
Perhatikan URL berikut yang diminta oleh klien :
http://www.example.com/path/file.html
Browser web pada klien akan menterjemahkan koneksi ke www.example.com dengan permintaan
HTTP 1.1 seperti berikut :
GET /path/file.html HTTP/1.1
Host: www.example.com
Server Web www.example.com akan mencari path/alamat yang diberikan mulai dari root direktori. Pada mesin unix biasanya di /var/www/htdocs. Hasil pada sistem lokal adalah
/var/www/htdocs/path/file.html
Server akan mencari dan membaca berkas tersebut, jika berkas ada maka akan mengirimkan jawaban ke browser klien. Respon yang diberikan akan menggambarkan isi konten dari berkas itu
sendiri.
LOAD LIMIT (BATAS BEBAN)
Setiap Server Web telah menentukan batas beban yang dapat ditanggung, sehingga setiap server web mempunyai batasan jumlah klien yang terhubung pada satu waktu (umumnya antara 2 s.d. 60.000, secara bawaan (default) maks 500 atau 1000).
Kemampuan ini bergantung pada :
● Pengaturan Server Web itu sendiri;
● Jenis permintaan HTTP;
● Jenis Konten (Statis atau dinamis);
● Kondisi konten di server dilakukan cache atau tidak;
● Perangkat Keras, perangkat Lunak serta sistem operasi yang digunakan.
Jika server web sudah mendekati batas limit yang mampu ditangani maka server menjadi kelebihan beban sehingga lambat dalam memberikan respon.
Penyebab Overload/Kelebihan beban
Grafik harian beban server web, memperlihatkan adanya lonjakan beban pada awal hari. Setiap saat server web dapat saja mengalami kelebihan beban yang disebabkan :
● Terlalu banyak koneksi (misalkan ada ribuan bahkan jutaan permintaan dari klien pada jeda waktu yang singkat, seperti yang pernah terjadi pada Slashdot)
● Serangan DDOS (Distribute Denial Of Services);
● Cacing Komputer (Worm) yang dapat menyebabkan lalulintas data tidak wajar karena banyaknya komputer yang terinfeksi;
● Virus XSS dapat menyebabkan lalulintas data yang tinggi karena jutaan browser dan server web yang terinfeksi;
● Internet Web Robot, Lalu lintas data yang tidak difilter atau web server besar dengan sumber daya yang terbatas misalnya pita data yang dimiliki kecil dsb;
● I nternet (network) Lambat, hal ini menyebabkan jawaban atas permintaan klien ke server web melambat dan jumlah koneksi maksimum perwaktu jauh di bawah kemampuan server web itu sendiri;
● Sebagian Server Web dalam kondisi mati, Ini dapat terjadi jika ada keperluan yang mendadak untuk perawatan/pembaharuan, kerusakan perangkat keras atau lunak, back end (misalnya Database) gagal, dalam kondisi ini server web yang masih bertugas mengalami kelebihan lalulintas data dan menjadi kelebihan beban.
Gejala Kelebihan Beban
Tanda-tanda apabila server web mengalami kelebihan beban adalah :
● Lambatnya respon terhadap permintaan dari klien (respon biasanya berkisar dari 1 s.d.Ratusan detik);
● Muncul pesan kesalahan 500, 502, 503, 504 HTTP Errors (Kadang-kadang juga muncul pesan kesalahan 404 dan 408);
● Koneksi TCP ditolak atau direset sebelum isi konten sampai ke klien;
● Hal ini jarang terjadi, hanya sebagian isi konten yang dikirim (tetapi hal ini kebanyakan disebabkan kesalahan program/bug, walaupun sumber daya yang dimiliki sistem terbatas).
Teknik Pencegahan Kelebihan Beban
● Mengatur lalulintas data jaringan, dengan menggunakan :
○ Firewalls to menghadang data yang tidak diinginkan dari sumber IP yang tidak sesuai ataupun memiliki pola yang aneh.
○ Pengaturan lalulintas data melalui protokol HTTP, untuk memutuskan koneksi, mengarahkan, atau menulis ulang permintaan yang memiliki pola HTTP yang tidak sesuai.
○ Pengaturan Bandwith dan Traffic shaping, untuk menurunkan beban puncak
penggunaan jaringan.
● Mengembangkan teknik cache;
● Menggunakan domain yang berbeda, untuk melayani konten yang berbeda (Statis dan dinamis) dengan memisahkan server web, contoh :
○ http://images.example.com
○ http://www.example.com
● Menggunakan domain yang berbeda dan atau komputer yang berbeda untuk memisahkan
berkas berukuran besar dan kecil; idenya adalah untuk mengoptimalkan cache berkas yang ukuran kecil dan menengah dan secara efisien melayani berkas berukuran besar (10-1000 Mb) menggunakan pengaturan yang berbeda;
● Menggunakan banyak server web pada tiap komputer, masing-masing program server web di arahkan ke masing-masing kartu jaringan dan alamat IP;
● Menggunakan banyak komputer server web dan menggabungkannya kedalam satu grup bertindak seolah-olah menjadi satu server web besar;
● Menambahkan perangkat keras seperti RAM, hdd pada tiap server web;
● Melakukan tunning pada Sistem Operasi sehingga dapat memaksimalkan penggunaan perangkat keras terpasang;
● Menggunakan program komputer yang sesedikit mungkin pada komputer yang digunakan sebagai server web;
● Menggunakan area kerja lain untuk melayani konten-konten yang bersifat dinamis.
Perbedaan PHP dan HTML
HTML adalah suatu bahasa yang digunakan untuk berkomunikasi antara web server dengan klien (browser) yang diberi markup (tanda) khusus untuk melaksanakan atau menampilkan perintah khusus pula.
Kita bisa membuat web dengan menggunakan HTML. Kita juga bisa membuat link ke halaman lain di web kita atau halaman lain di web lain.
Tapi sayangnya, HTML adalah web statis. Artinya, jika kita ingin membuat web yang mempunyai banyak halaman, maka kita dituntut untuk membuat halaman web yang banyak juga.
Di lain pihak, PHP adalah suatu script (tepatnya server-side script) yang memproses perintah-perintah dan mengembalikannya ke server sudah dalam bentuk HTML.
Cara kerjanya seperti ini:
1. Browser meminta halaman ke web server.
2. Web server (bisa Apache, IIS dan lain-lain) akan memproses permintaan itu.
3. Jika web server menemukan suatu tanda khusus PHP (yaitu , atau ) maka web server akan memberikan kesempatan kepada PHP untuk memprosesnya, karena itu di luar wewenang web server.
4. PHP akan memproses perintah-perintah yang berada di antara atau dan mengabaikan yang lainnya.
5. Dalam memproses perintah-perintah di antara , jika ada perintah untuk menampilkan sesuatu (seperti echo), maka PHP akan memberikannya kepada web server. Jika PHP menemukan kesalahan, baik itu sintaks, overflow, file tidak ditemukan dan lain-lain, maka PHP akan memberikan peringatan yang akan diteruskan ke web server.
6. Jika semua proses telah selesai, maka web server akan memberikan nilai kembalian kepada browser berupa HTML, satu-satunya bahasa yang dia mengerti.
Untuk dapat menggunakan PHP, Anda harus menginstal PHP yang dapat diperoleh di http://www.php.net dan web server seperti Apache, IIS dan sejenisnya.
Contoh sederhana script PHP adalah sebagai berikut:
echo "Saya sedang belajar PHP.";
?>
Script di atas akan menampilkan Saya sedang belajar PHP. pada browser.
PHP juga dapat dipadukan dengan HTML. Artinya, dalam suatu dokumen web, Anda bisa mencampurkan HTML dengan PHP.
PHP
Pada awalnya PHP merupakan kependekan dari Personal Home Page (Situs Personal). PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP masih bernama FI (Form Interpreted), yang wujudnya berupa sekumpulan script yang digunakan untuk mengolah data form dari web.
Selanjutnya Rasmus merilis kode sumber tersebut untuk umum dan menamakannya PHP/FI. Dengan perilisan kode sumber ini menjadi open source, maka banyak programmer yang tertarik untuk ikut mengembangkan PHP.
Pada November 1997, dirilis PHP/FI 2.0. Pada rilis ini interpreter PHP sudah diimplementasikan dalam program C. Dalam rilis ini disertakan juga modul-modul ekstensi yang meningkatkan kemampuan PHP/FI secara signifikan.
Pada tahun 1997, sebuah perusahaan bernama Zend menulis ulang interpreter PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian pada Juni 1998, perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan rilis tersebut sebagai PHP 3.0 dan singkatan PHP dirubah menjadi akronim berulang PHP: Hypertext Preprocessing.
Pada pertengahan tahun 1999, Zend merilis interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah versi PHP yang paling banyak dipakai pada awal abad ke-21. Versi ini banyak dipakai disebabkan kemampuannya untuk membangun aplikasi web kompleks tetapi tetap memiliki kecepatan dan stabilitas yang tinggi.
Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter PHP mengalami perubahan besar. Versi ini juga memasukkan model pemrograman berorientasi objek ke dalam PHP untuk menjawab perkembangan bahasa pemrograman ke arah paradigma berorientasi objek.