Tutorial PHP
Tutorial PHP
Semicolon (;)
Apabila Anda perhatikan contoh sebelumnya, maka terdapat tanda titik koma (semicolon) pada akhir perintah echo. Tanda semicolon merupakan penanda akhir dari statement PHP dan harus ada. Contoh: <html> <head> <title>Halaman PHP </head> <body> <?php echo "Hello World! echo "Hello World! echo "Hello World! echo "Hello World! echo "Hello World! ?> </body> </html>
pertamaku</title>
Pindah Spasi
Seperti halnya HTML, pergantian spasi dalam PHP tidak akan mempengaruhi tampilan hasilnya. Dengan kata lain, pergantian spasi akan diabaikan oleh PHP. Perhatikan contoh berikut ini. Pada contoh tersebut diberikan tiga bentuk penulisan kode PHP yang berbeda namun akan dihasilkan tampilan yang sama dalam web browser. Contoh: <html> <head> <title>Halaman PHP pertamaku</title> </head> <body> <?php echo "Hello World! "; echo "Hello World! "; ?> </body> </html> <html> <head> <title>My First PHP Page</title> </head> <body> <?php echo "Hello World! "; echo "Hello World! "; ?>
</body> </html> <html> <head> <title>Halaman PHP pertamaku</title> </head> <body> <?php echo "Hello World! ";
Variabel
Misalkan dalam PHP kita akan menyimpan suatu nilai berupa angka atau string dalam suatu variabel, caranya adalah membuat nama variabel terlebih dahulu kemudian diberikan suatu assignment pada nilai yang diinginkan. Perhatikan sintaks berikut ini $nama_variabel = nilai; Note: jangan lupa tanda dollar ($) Contoh: <?php $hello = "Hello World!"; $sebuah_bilangan = 4; $bilanganYangLain = 8; ?> Dari contoh di atas tampak bahwa dalam PHP, nama variabel tidak perlu dideklarasikan terlebih dahulu seperti halnya bahasa Pascal atau C/C++.
Echo
Seperti yang Anda lihat pada contoh-contoh kode PHP sebelumnya, bahwa perintah echo digunakan untuk menampilkan teks ke dalam browser. Suatu teks atau string dapat dituliskan di browser dengan langsung dituliskan dalam echo yang diapit oleh dua tanda petik ganda (quotes)
atau menyimpan string atau teks terlebih dahulu dalam suatu variabel kemudian dituliskan dalam echo. Berikut ini adalah contohnya: Contoh: <?php $StringKu = "Hello!"; echo $StringKu; echo "<h5>I love using PHP!</h5>"; ?>
Penting!!!
Hati-hati dalam penulisan suatu string yang di dalamnya terdapat tanda petik ganda (quotes) menggunakan echo. Dalam echo, tanda quotes merupakan penanda awal dan akhir teks/string yang akan ditulis dengan echo, sehingga Anda harus memperhatikan hal-hal berikut ini Contoh: <?php echo "<font face="verdana" size="4">I love using PHP!</font>"; ?> <?php echo "<font face=\"verdana\" size=\"4\">I love using PHP!</font>"; ?> <?php echo "<font face='verdana' size='4'>I love using PHP!</h5>"; ?> Pada contoh kode pertama di atas akan terjadi error karena dalam teks yang ditulis dalam echo terdapat tanda quotes. Sedangkan untuk kode kedua dan ketiga tidak terdapat error dan akan dihasilkan output yang sama di browser. Jangan menggunakan tanda quotes di dalam teks yang akan ditulis dengan echo Apabila Anda tetap ingin menuliskan tanda quotes dalam teks yang akan ditulis dengan echo, maka berikan tanda slash \ di depan quotes tersebut. Selain itu, dapat pula Anda gunakan tanda petik tunggal (apostrophes) untuk menggantikan tanda quotes pada teks.
?> Catatan: Untuk menampilkan nilai variabel dengan echo tanpa menggunakan tanda quotes. Berikut ini contoh menampilkan gabungan suatu nilai dari variabel yang berupa string. Contoh: <?php $string_ku = "Hello. Nama saya: "; $baris_baru = "<br>"; echo $string_ku."Ari".$baris_baru; echo "Hi, Nama saya Ari. Kamu siapa? ".$string_ku.$baris_baru; echo "Hi, Nama saya Ari. Kamu siapa? ".$string_ku."Amalia"; ?> Untuk menggabungkan beberapa string menjadi satu digunakan operator dot (.)
Operator Aritmatik
Berikut ini adalah tabel operator aritmatik, makna dan contohnya: Operator + * / % Contoh: <?php $penjumlahan = 2 + 4; $pengurangan = 6 - 2; $perkalian = 5 * 3; $pembagian = 15 / 3; $modulus = 5 % 2; echo "Menampilkan penjumlahan: 2 + 4 = ".$penjumlahan."<br>"; echo "Menampilkan pengurangan: 6 - 2 = ".$pengurangan."<br>"; echo "Menampilkan perkalian: 5 * 3 = ".$perkalian."<br>"; echo "Menampilkan pembagian: 15 / 3 = ".$pembagian."<br>"; echo "Menampilkan modulus: 5 % 2 = " . $modulus."; ?> Makna Penjumlahan Pengurangan Perkalian Pembagian Modulus Contoh 2 + 4 6 - 2 5 * 3 15 / 3 43 % 10
Operator Perbandingan
Perbandingan digunakan untuk menguji hubungan antara nilai dan atau variabel. Operator ini digunakan dalam suatu statement bersyarat yang selalu menghasilkan nilai TRUE atau FALSE. Misalkan: $x = 4; $y = 5; berikut ini adalah beberapa contoh penggunaan operator perbandingan dan hasilnya.
Operator Makna == Sama dengan != Tidak sama dengan < > <= >= Lebih kecil dari Lebih besar dari Lebih kecil atau sama dengan dari Lebih besar atau sama dengan dari
BAB IV MODULARITAS
Suatu pemrograman yang baik seharusnya program yang besar dipecah menjadi programprogram yang kecil yang selanjutnya disebut modul. Modul-modul kecil tersebut dapat dipanggil sewaktu-waktu diperlukan. Dalam PHP juga mendukung konsep tersebut yang selanjutnya diberinama modularitas. Kita dapat menyisipkan isi suatu file/modul lain ke dalam file/modul tertentu. Terdapat 2 perintah/function untuk hal tersebut dalam PHP yaitu menggunakan include dan require.
Include()
Untuk memudahkan pemahaman, diberikan contoh berikut. Misalkan kita akan membuat menu link sejumlah 4 buah yaitu index, about, links, dan contact pada setiap halaman web yang kita buat. Teknik yang digunakan adalah membuat menu link dalam suatu modul tersendiri kemudian modul tersebut dipanggil pada setiap halaman web yang diinginkan terdapat menu link di dalamnya. menu.php <html> <body> <a href="index.php">Home</a> <a href="about.php">About Us</a> <a href="links.php">Links</a> <a href="contact.php">Contact Us</a> <br> index.php <?php include("menu.php"); ?> <p>Ini adalah halaman index</p> </body> </html> about.php <?php include("menu.php"); ?> <p>Ini adalah halaman about</p> </body> </html> Dari teknik di atas tampak adanya kemudahan dalam membuat halaman web. Dalam hal ini, kita tidak perlu membuat menu link di setiap halaman web yang ada. Bayangkan seandainya kita
10
punya halaman web sejumlah 100 buah yang kesemuanya ingin diberi menu link tanpa menggunakan teknik di atas, tentu hal tersebut sangat merepotkan. Meskipun secara teknis, kode pembangun web dipecah dalam modul-modul, namun ketika di browser akan terlihat menyatu. Berikut ini adalah kode HTML yang dihasilkan oleh browser ketika membuka halaman web index.php <html> <body> <a href="index.php">Home</a> <a href="about.php">About Us</a> <a href="links.php">Links</a> <a href="contact.php">Contact Us</a> <br> <p>Ini adalah halaman index</p> </body> </html>
Require()
Cara penggunaan maupun fungsi dari require() sama dengan include(). Jadi apa perbedaannya? Sebaiknya mana yang kita gunakan? Perhatikan contoh berikut ini <?php include("noFileExistsHere.php"); echo "Hello World!"; ?> dengan asumsi bahwa file noFileExistxHere.php tidak ada. Maka dengan menggunakan include() akan dihasilkan tampilan: Warning: main(noFileExistsHere.php): failed to open stream: No such file or directory in include.php on line 2 Warning: main(): Failed opening 'noFileExistsHere.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in include.php on line 2 Hello World Selanjutnya kita akan gunakan require(). <?php require("noFileExistsHere.php"); echo "Hello World!"; ?> dan hasilnya Warning: main(noFileExistsHere.php): failed to open stream: No such file or directory in require.php on line 2 Fatal error: main(): Failed opening required 'noFileExistsHere.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in require.php on line 2
11
Bandingkan kedua hasil di atas, khususnya yang tercetak merah. Pada include(), error yang dihasilkan hanya berupa Warning saja dan statement berikutnya masih dapat dijalankan. Hal ini terlihat bahwa teks Hello World! Masih ditampilkan di browser. Sedangkan pada require(), error yang dihasilkan berupa Fatal Error. Dengan demikian statement selanjutnya tidak akan dijalankan. Disarankan agar Anda menggunakan require() dengan harapan bahwa kode PHP yang Anda buat tidak akan diproses apabila terdapat file yang hilang atau tidak ada.
12
BAB V ARRAY
Dalam PHP, indeks untuk array dapat berupa numerik dan dapat pula berupa suatu nilai atau yang sering disebut dengan array assosiatif.
Sedangkan berikut ini adalah contoh untuk menampilkan nilai dari suatu array berindeks numerik. <? $karyawan[0] $karyawan[1] $karyawan[2] $karyawan[3]
= = = =
echo "Berikut ini adalah 2 orang karyawan saya, yaitu " . $karyawan[0] . " & " . $karyawan[1]; echo "<br>Dua orang karyawan saya yang lain adalah " . $karyawan[2] . " & " . $karyawan[3]; ?>
Array Assosiatif
Untuk array assosiatif, sintaksnya sama dengan array berindeks numerik namun perbedaannya adalah pada $key. Pada array assosiatif, $key dapat berupa suatu string. Berikut ini adalah contohnya. $gaji["Bob"] = 2000; $gaji["Sally"] = 4000; $gaji["Charlie"] = 600; $gaji["Clare"] = 0; dan berikut ini adalah contoh kode untuk menampilkan nilai dari array assosiatif <? $gaji["Bob"] = 2000; $gaji["Sally"] = 4000;
13
$gaji["Charlie"] = 600; $gaji["Clare"] = 0; echo echo echo echo ?> "Bob digaji - $" . $gaji["Bob"] . "<br>"; "Sally digaji - $" . $gaji["Sally"] . "<br>"; "Charlie digaji - $" . $gaji["Charlie"] . "<br>"; "dan Clare digaji - $" . $gaji["Clare"];
14
15
<? $number = 3; if ($number == 4) { echo "Benar"; } else { echo "Salah"; } ?> Terdapat pula bentuk sintaks berikutnya dari IF yaitu dengan ditambahkan elseif if (syarat1) { statement11; statement12; . . } elseif (syarat2) { statement21; statement22; . . } . . else { statement1; statement2; . . } Jika syarat1 bernilai TRUE, maka statement11, statement12 dst akan dijalankan. Sedangkan jika syarat1 FALSE maka selanjutnya akan dicek untuk syarat2. Jika syarat2 TRUE maka statemen21, statement22, dst akan dijalankan, sedangkan jika syarat2 FALSE akan dicek syarat berikutnya (jika masih ada). Statement1, statement2, dst baru akan dijalankan apabila semua syarat sebelumnya bernilai FALSE. Contoh: <? $karyawan = "Bob"; if($karyawan == "Tanner") { echo "Hello Tanner!"; } elseif($karyawan == "Bob") { echo "Hello Bob!";
16
Statement SWITCH
Sintaks dari statement ini adalah switch (variabel) { case option1: statement11; statement12; . . break; case option2: statement21; statement22; . . break; . . default: statementdefault1; statementdefault2; . . break; } Pada sintaks di atas, nilai dari variabel akan dicek pada setiap option yang ada (terletak di bagian case). Jika ada option yang sama dengan nilai variabel, maka statement-statement di bawah option tersebutlah yang akan dijalankan. Bagian default adalah optional (boleh ada, boleh tidak). Contoh: <?php $tujuan = "Tokyo"; echo "Biaya Perjalanan Menuju $tujuan adalah "; switch ($tujuan){ case "Las Vegas": echo " $500"; break; case "Amsterdam": echo " $1500"; break; case "Egypt": echo " $1750"; break; case "Tokyo": echo " $900"; break;
17
case "Caribbean Islands": echo " $700"; break; } ?> Contoh: <?php $tujuan = "New York"; echo "Biaya Perjalanan Menuju $tujuan adalah "; switch ($tujuan){ case "Las Vegas": echo " $500"; break; case "Amsterdam": echo " $1500"; break; case "Egypt": echo " $1750"; break; case "Tokyo": echo " $900"; break; case "Caribbean Islands": echo " $700"; break; default: echo " $100"; break; } <?
Statement WHILE
Statement ini digunakan untuk mengerjakan suatu statement secara berulang-ulang sampai suatu syarat dipenuhi. Sintaksnya adalah while (syarat) { statement; statement; . . } Pada sintaks di atas, selama syarat bernilai TRUE maka statement-statement di dalam while akan terus dijalankan secara berulang-ulang. Perulangan baru akan berhenti apabila syarat bernilai FALSE. Sebelum statement yang diulang-ulang dilakukan, terlebih dahulu akan dicek syarat nya apakah bernilai TRUE atau FALSE. Apabila TRUE maka statement akan dijalankan. Sedangkan apabila FALSE, perulangan akan langsung berhenti. Dengan kata lain, statement dalam WHILE bisa jadi tidak akan pernah dilakukan, yaitu apabila syaratnya langsung bernilai FALSE.
18
Contoh: <? $harga_sikat = 1500; $jumlah_sikat = 10; echo "<table border=\"1\" align=\"center\">"; echo "<tr><td><b>Jumlah Sikat</b></td>"; echo "<td><b>Harga</b></tr></td>"; while ( $jumlah_sikat <= 100 ) { echo "<tr><td>"; echo $jumlah_sikat; echo "</td><td>"; echo "Rp. ".$harga_sikat * $jumlah_sikat; echo "</td></tr>"; $jumlah_sikat = $jumlah_sikat + 10; } echo "</table>"; ?> Kode di atas akan menampilkan hasil di browser berupa tabel yang berisi jumlah sikat dan harganya, dengan asumsi harga sebuah sikat adalah Rp. 1.500. Jumlah sikat yang ditampilkan adalah kelipatan 10 dengan batas sampai 100 buah.
Statement FOR
Statement FOR mirip dengan WHILE yang memiliki sintaks berikut ini for (inisialisasi counter; syarat; increment/decrement counter) { statement; . . } Untuk memperjelas pemahaman tentang FOR, berikut ini adalah contoh kode dengan for untuk menghasilkan tampilan yang sama dengan contoh while sebelumnya (tentang jumlah sikat dan harganya). Coba bandingkan dengan kode contoh while sebelumnya. Contoh: <? $harga_sikat = 1500; echo "<table border=\"1\" align=\"center\">"; echo "<tr><td><b>Jumlah Sikat</b></td>"; echo "<td><b>Harga</b></td></tr>"; for ($jumlah_sikat = 10; $jumlah_sikat <= 100; $jumlah_sikat+=10) { echo "<tr><td>"; echo $jumlah_sikat; echo "</td><td>"; echo "Rp. ".$harga_sikat * $jumlah_sikat; echo "</td></tr>"; }
19
Statement Foreach
Misalkan Anda punya data berupa array assosiatif yang akan diproses secara berulang-ulang, maka PHP menyediakan statement foreach yang mudah digunakan. Sintaksnya adalah: foreach(variabelarray as kunci => value) { statement; . . } Sebagai contoh, misalkan Anda memiliki 5 orang karyawan dengan usianya masing-masing yang ditulis dalam kode PHP sebagai berikut $UsiaKaryawan["Lisa"] = "28"; $UsiaKaryawan["Jack"] = "16"; $UsiaKaryawan["Ryan"] = "35"; $UsiaKaryawan["Rachel"] = "46"; $UsiaKaryawan["Grace"] = "34"; Berikut ini adalah contoh kode PHP yang akan menampilkan semua karyawan beserta usianya dengan menggunakan foreach. <? $UsiaKaryawan["Lisa"] = "28"; $UsiaKaryawan["Jack"] = "16"; $UsiaKaryawan["Ryan"] = "35"; $UsiaKaryawan["Rachel"] = "46"; $UsiaKaryawan["Grace"] = "34"; foreach($UsiaKaryawan as $Nama => $umur) { echo "Nama Karyawan: $Nama, Usia: $umur"." th <br>"; } ?>
Statement DO WHILE
Statement ini merupakan bentuk modifikasi dari WHILE. Sintaksnya adalah sebagai berikut do { statement; . . } while (syarat);
20
Coba bandingkan dengan sintaks WHILE sebelumnya. Dilihat dari posisi statement yang diulang, posisi statement yang diulang pada DO WHILE terletak di atas syarat. Dengan demikian, sebelum syarat dicek TRUE atau FALSE nya, statement akan dikerjakan terlebih dahulu. Sedangkan pada WHILE, sebelum statement yang diulang dikerjakan, terlebih dahulu syarat akan dicek. Prinsip kerja DO WHILE sama dengan WHILE yaitu statement akan terus dikerjakan selama syarat bernilai TRUE dan perulangan akan berhenti apabila FALSE. Perhatikan contoh berikut ini yang membandingkan DO WHILE dengan WHILE Contoh: <? $kue = 0; while($kue > 1) { echo "Mmmmm...Aku suka kue! Nyam..nyam..nyam.."; } ?> <? $kue = 0; do { echo "Mmmmm... Aku suka kue! Nyam..nyam..nyam.."; } while ($kue > 1); ?> Pada kode WHILE, teks "Mmmm. " dst tidak akan ditampilkan karena syaratnya langsung bernilai FALSE (perulangan berhenti). Sedangkan pada DO WHILE, teks akan ditampilkan dahulu kemudian perulangan berhenti (syarat bernilai FALSE).
21
22
23
akan ditampilkan pada URL. Bisa-bisa password Anda akan kelihatan di URL (jika terdapat input password ketika login). Untuk metode get, biasanya digunakan untuk input data melalui link (bukan melalui form). Untuk contoh aplikasinya dapat dilihat pada contoh-contoh aplikasi pada bab-bab berikutnya.
24
BAB IX FUNCTION
Sebuah function merupakan sebuah nama yang kita berikan pada suatu blok program yang sewaktu-waktu dapat kita panggil dan gunakan. Sebuah function dapat diletakkan di bagian manapun, bisa di awal, tengah, dan akhir dari keseluruhan bagian kode PHP. Berikut ini adalah contoh membuat sebuah function sederhana yang di dalamnya tidak ada statementnya. Contoh: <?php function myCompanyMotto() { } myCompanyMotto(); ?> Pada contoh di atas, myCompanyMotto merupakan nama function. Nama function inilah yang dapat dipanggil sewaktu-waktu diperlukan. Aturan membuat nama function sama dengan ketika membuat nama variabel (lihat di Bab II). Statement/perintah dari function dituliskan di dalam kurung kurawal {}. Sedangkan perintah myCompanyMotto(); bagian paling bawah dari kode di atas merupakan cara memanggil function. Perhatikan contoh berikutnya: Contoh: <?php function myCompanyMotto() { echo "Sabar adalah bagian dari keimanan"; } myCompanyMotto(); ?> Pada contoh tersebut, terdapat perintah echo di dalam function. Sehingga begitu nama function dipanggil, PHP akan menampilkan teks yang di-echo-kan tersebut. Sebuah function dapat dipanggil berulang-ulang, seperti pada contoh berikut. <?php function myCompanyMotto() { echo "Sabar adalah bagian dari keimanan"; } echo "Selamat datang di PT. Nada Corp. <br>"; myCompanyMotto(); echo "Terima kasih atas kunjungan Anda<br>"; echo "dan ingatlah selalu... <br>";
25
myCompanyMotto(); ?>
26
function Jumlahkan($x, $y){ $hasil = $x + $y; return $hasil; } $bil = 0; echo "Nilai bil mula-mula adalah ". $bil ."<br>"; $bil = Jumlahkan(3, 4); echo "Nilai bil setelah memanggil function adalah " . $bil ."<br>"; ?> Function Jumlahkan() di atas mengembalikan nilai dari variabel $hasil yang merupakan hasil penjumlahan dari nilai $x dan $y. Sedangkan perintah $bil = Jumlahkan(3, 4); bermakna nilai yang dikembalikan function Jumlahkan(3, 4) disimpan pada variabel $bil (dalam hal ini nilai $bil adalah 7).
27
Membuka File
Secara umum terdapat 3 cara membuka file, yaitu membuka file hanya untuk dibaca (read: r), hanya untuk ditulisi baru (write: w), dan hanya untuk ditambahi isinya (append: a). Selain 3 cara membuka file tersebut, terdapat pula cara lain membuka file yaitu dapat dibaca dan ditulisi (read/write: r+), serta dapat dibaca dan ditambahi isinya (append: a+). Berikut ini adalah contoh kode PHP untuk membuka file <? $nama_file = "test.txt"; $fh = fopen($nama_file, 'X') or die("File tidak bisa dibuka"); fclose($fh); ?> dengan 'X' dapat diganti dengan 'w', 'r', 'a', 'r+', 'a+'. Apabila nama file yang akan dibuka ternyata salah, atau letak filenya yang tidak tepat, maka function die() yang akan dijalankan. Function die() akan menampilkan teks sebagai peringatan apabila proses membuka file gagal.
Menutup File
Setelah file dibuka, hendaknya file tersebut juga ditutup ketika pemrosesan selesai. File yang yang tidak ditutup kemungkinan dapat terjadi kerusakan pada strukturnya. Berikut ini adalah contoh kode PHP untuk menutup file yang telah dibuka $NamaFile = "testFile.txt"; $FileHandle = fopen($NamaFile, 'w') or die("File tidak bisa dibuka"); fclose($FileHandle); File yang telah ditutup tidak bisa untuk dibaca, ditulisi, dan ditambah. Untuk bisa melakukan hal itu kembali, file terlebih dahulu harus dibuka lagi seperti sebelumnya.
Menulis ke File
File yang telah dibuka dapat ditulisi dengan data di dalamnya. Berikut ini adalah contoh kode PHP untuk menulis suatu string ke dalam file. <? $FileKu = "testFile.txt";
28
$FileHandle = fopen($Fileku, 'w') or die("File gagal dibuka"); $DataString = "Hallo Amalia... \n"; fwrite($FileHandle, $DataString); $DataString = "Hallo Faza dan Nada... \n"; fwrite($FileHandle, $DataString); fclose($FileHandle); ?> Apabila Anda menggunakan mode 'w' pada fopen(), dan selanjutnya Anda menuliskan data pada file, maka isi file yang lama (jika sebelumnya terdapat isi pada file tersebut) akan terhapus dan diganti dengan isi yang baru. Sedangkan apabila Anda menginginkan data yang lama pada suatu file tidak dihapus, maka Anda gunakan mode append 'a+' atau 'a'.
29
$FileHandle = fopen($FileKu, 'r'); while(!feof($FileHandle)) { $Data = fgetc($FileHandle); echo $Data; } fclose($FileHandle); ?> Keterangan: Function fgetc() pada kode di atas diletakkan dalam perulangan. Function feof() digunakan untuk menyelidiki apakah pointer sudah berada di akhir dari file (end of file) atau belum. Selama belum end of file, proses pembacaan karakter akan berjalan terus. Setiap kali pembacaan, karakter yang dibaca akan ditampilkan di browser.
Menghapus File
Dalam PHP, function untuk menghapus file adalah unlink(). Berikut ini contohnya. <? $myFile = "testFile.txt"; unlink($myFile); ?>
30
Upload File
Di beberapa aplikasi web, sering kita menjumpai proses upload file ke server. Berikut ini akan dibahas cara melakukan hal itu. Langkah pertama untuk membuat aplikasi web guna upload file adalah membuat formnya terlebih dahulu. Berikut ini adalah salah satu contoh form dalam bentuk HTML <form enctype="multipart/form-data" action="upload.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> Nama File : <input name="userfile" type="file" /> <input type="submit" value="Upload" /> </form> Pada form di atas, kita membatasi ukuran file yang dapat diupload adalah 30 Kb. Selanjutnya kita membuat file upload.php untuk proses uploadnya. <?php $uploaddir = 'uploads/'; $uploadfile = $uploaddir . $_FILES['userfile']['name']; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "File telah berhasil diupload"; } else { echo "File gagal diupload"; } ?>
31
str_replace
Function ini memiliki peran yang sama seperti ketika kita menggunakan fasilitas Replace All pada MS. Word. Function ini akan menggantikan suatu string dengan string yang lain. Contoh: $stringawal = "selamat datang di halaman web ini"; $ubahstring = str_replace("web", "website", $stringawal); echo "$ubahstring";
32
Function str_replace() juga dapat menggantikan beberapa string secara simultan sekaligus. Berikut ini contohnya:
<? $rawstring = "Welcome Birmingham parent! <br> Your offspring is a pleasure to have! We believe pronoun is learning a lot.<br> The faculty simple adores pronoun2 and you can often hear them say \"Attah sex!\"<br>"; $placeholders = array('offspring', 'pronoun', 'pronoun2', 'sex'); $malevals = array('son', 'he', 'him', 'boy'); $femalevals = array('daughter', 'she', 'her', 'girl'); $malestr = str_replace($placeholders, $malevals, $rawstring); $femalestr = str_replace($placeholders, $femalevals, $rawstring); echo "Son: ". $malestr . "<br>"; echo "Daughter: ". $femalestr; ?> Pada script di atas, array $placeholder berisi string-string dari $rawstring yang akan diganti. Dan tampilan script di atas adalah sbb: Son: Welcome Birmingham parent! Your son is a pleasure to have! We believe he is learning a lot. The faculty simple adores he2 and you can often hear them say "Attah boy!" Daughter: Welcome Birmingham parent! Your daughter is a pleasure to have! We believe she is learning a lot. The faculty simple adores she2 and you can often hear them say "Attah girl!" Perhatikan string yang dicetak merah pada tampilan script tersebut. Seharusnya string pronoun2 akan diganti dengan him dan her. Hal ini dikarenakan efek str_replace dari string pronoun yang merupakan substring dari pronoun2. Untuk menghindari efek kesalahan seperti itu, hindari peletakan substring di depan string lain dalam str_replace. Berikut ini hasil modifikasinya: <? $rawstring = "Welcome Birmingham parent! <br> Your offspring is a pleasure to have! We believe pronoun is learning a lot.<br> The faculty simple adores pronoun2 and you can often hear them say \"Attah sex!\"<br>"; $placeholders = array('offspring', 'pronoun2', 'pronoun', 'sex'); $malevals = array('son', 'him', 'he', 'boy'); $femalevals = array('daughter', 'her', 'she', 'girl');
33
$malestr = str_replace($placeholders, $malevals, $rawstring); $femalestr = str_replace($placeholders, $femalevals, $rawstring); echo "Son: ". $malestr . "<br>"; echo "Daughter: ". $femalestr; ?> dan tampilannya adalah Son: Welcome Birmingham parent! Your son is a pleasure to have! We believe he is learning a lot. The faculty simple adores him and you can often hear them say "Attah boy!" Daughter: Welcome Birmingham parent! Your daughter is a pleasure to have! We believe she is learning a lot. The faculty simple adores her and you can often hear them say "Attah girl!"
strtoupper
Function ini digunakan untuk mengubah semua karakter huruf dari suatu string menjadi kapital. Contoh: <? $originalString = "String Capitalization 1234"; $upperCase = strtoupper($originalString); echo "Old string - $originalString <br>"; echo "New String - $upperCase"; ?> Hasilnya adalah Old string - String Capitalization 1234 New String - STRING CAPITALIZATION 1234
strtolower
Kebalikan dari strtoupper(), function ini mengubah semua karakter huruf dari string menjadi huruf kecil. Contoh: <? $originalString = "String Capitalization 1234"; $lowerCase = strtolower($originalString); echo "Old string - $originalString <br>";
34
echo "New String - $lowerCase"; ?> Hasilnya adalah Old string - String Capitalization 1234 New String - string capitalization 1234
ucwords
Karakter huruf pertama dari suatu kata dalam string juga dapat diubah menjadi huruf kapital menggunakan function ini. Contoh: <? $titleString = "a title that could use some hELP"; $ucTitleString = ucwords($titleString); echo "Old title - $titleString <br>"; echo "New title - $ucTitleString"; ?> Hasilnya adalah: Old title - a title that could use some hELP New title - A Title That Could Use Some HELP Bagaimana cara mengubah HELP menjadi Help (pada tampilan outputnya)? Perhatikan script modifikasi berikut ini
<? $titleString = "a title that could use some hELP"; $lowercaseTitle = strtolower($titleString); $ucTitleString = ucwords($lowercaseTitle); echo "Old title - $titleString <br />"; echo "New title - $ucTitleString"; ?> yaitu dengan cara mengubahnya (hELP) ke huruf kecil semua terlebih dahulu (help), kemudian huruf pertama dari help diberikan perintah ucwords().
explode
Sesuai namanya explode, fungsi ini digunakan untuk meledakkan/memecah suatu string menjadi potongan-potongan string yang kecil. Selanjutnya potongan-potongan string ini akan disimpan dalam suatu array. Perhatikan contoh berikut ini
35
<? $PhoneNumber = "800-555-5555"; $hasil = explode("-", $PhoneNumber); echo " Phone Number = $PhoneNumber <br>"; echo "Pecahan 1 = $hasil[0]<br>"; echo "Pecahan 2 = $hasil[1]<br>"; echo "Pecahan 3 = $hasil[2]"; ?> Hasilnya adalah: Phone Number = 800-555-5555 Pecahan 1 = 800 Pecahan 2 = 555 Pecahan 3 = 5555 Pada perintah explode("-", $PhoneNumber); di atas, karakter "-" dapat diibaratkan sebagai dinamitnya. Dinamit ini apabila diledakkan akan memecah string dari $PhoneNumber. Karakter yang akan digunakan sebagai dinamit dapat ditentukan sendiri oleh programmer, dapat berupa spasi, koma dsb. Jumlah pecahan string dari hasil ledakan dapat dibatasi dengan menambahkan jumlah batas ledakan sebagai paramater ketiga dari function explode(). Contoh: <? $PhoneNumber = "800-555-5555"; $hasil = explode("-", $PhoneNumber, 2); echo " Phone Number = $PhoneNumber <br>"; echo "Pecahan 1 = $hasil[0]<br>"; echo "Pecahan 2 = $hasil[1]<br>"; echo "Pecahan 3 = $hasil[2]"; ?> Hasilnya adalah: Phone Number = 800-555-5555 Pecahan 1 = 800 Pecahan 2 = 555-5555 Pecahan 3 = Perintah explode("-", $PhoneNumber, 2); di atas membatasi 2 buah pecahan string dari hasil ledakan. Dengan demikian, tampak pada hasil bahwa pecahan ketiga tidak ada.
implode
Kebalikan dari explode(), function implode() digunakan untuk menyatukan pecahan-pecahan string menjadi satu kesatuan string. Contoh:
36
<? $pecahan = array("Hello", "World,", "I", "am", "Here!"); $disatukandenganspasi = implode(" ", $pecahan); $disatukandengandash = implode("-", $pecahan); echo "$disatukandenganspasi <br>"; echo "$disatukandengandash "; ?> Hasilnya adalah: Hello World, I am Here! Hello-World,-I-am-Here!
37
38
Beberapa ini beberapa jenis timestamp yang dapat digunakan untuk mengatur format tampilan tanggal dan waktu Time: a A g G h H i s Day: d j D l w z Month: m n M F t Year: L Y y : 1 jika melompati tahun dan 0 jika tidak. : Format tahun 4 digit : Format tahun 2 digit. (00-99) : Nomor bulan dengan 0 di depan (01-12) : Nomor bulan tanpa 0 di depan (1-12) : Singkatan dari bulan. (Jan-Dec) : Nama bulan lengkap. (January-December) : Jumlah hari dalam sebulan. (28-31) : Hari dalam bulan (tanggal) dengan 0 di depan. Bernilai antara 01-31. : Hari dalam bulan (tanggal) tanpa 0 di depan. Bernilai antara 1-31. : Hari dalam mingguan (disingkat). Bernilai antara Sun-Sat : Hari dalam mingguan. Bernilai antara Sunday-Saturday : Hari dalam mingguan tanpa 0 di depan. Bernilai antara 0-6. : Hari dalam tahunan tanpa 0 di depan. Bernilai antara 0-365. : am atau pm : AM atau PM : Jam tanpa 0 di depan. Bernilai antara 1- 12. : Jam tanpa 0 di depan (format 24 jam). Bernilai antara 0- 23. : Jam dengan 0 di depan. Bernilai antara 01- 12. : Jam dengan 0 di depan (format 24 jam). Bernilai antara 00- 23. : Menit dengan 0 di depan. Bernilai antara 00-59. : Detik dengan 0 di depan. Bernilai antara 00-59.
Contoh: <?php // Misalkan hari ini adalah: 10 Maret 2001, 5:16:18 pm $today = date("F j, Y, g:i a"); echo "$today"; $today = date("m.d.y"); echo "$today"; $today = date("j, n, Y"); echo "$today"; $today = date("Ymd"); echo "$today"; $today = date("H:i:s"); echo "$today"; ?> Hasilnya adalah: March 10, 2001, 5:16 pm 03.10.01
39
40
2</a>
<a
2</a>
<a
41
Hal3.php <? echo "Ini adalah halaman 3<br>"; echo "Nama user Anda adalah: $username<br><br>"; echo "<a href=hal1.php>Hal 1</a> <a href=hal2.php>Hal 2</a> <a href=hal3.php>Hal 3</a>"; ?>
Dengan file-file di atas, user diminta melakukan login terlebih dahulu (memasukkan nama user) melalui form.php. Selanjutnya akan muncul submit.php yang menampilkan nama user yang dimasukkan tadi dan beberapa link ke halaman lain. Begitu user mengakses 3 buah halaman web yang ada tersebut, diharapkan nama user yang telah dimasukkan dalam form sebelumnya tetap ditampilkan dalam setiap halaman web yang diakses. Akan tetapi apa yang terjadi? Ternyata untuk ketiga halaman web yang diakses tersebut tidak menampilkan nama user. Hal ini dikarenakan hilangnya data/informasi dari nama user yang dimasukkan sebelumnya. Nah di sinilah perlunya session. Dengan session, data dapat disimpan dan selanjutnya dapat diakses di beberapa halaman web. Penggunaan session sering diterapkan pada aplikasi web yang bersifat multiuser, seperti online shopping, web based mail, e-banking, dll. Data yang yang tersimpan dalam session bersifat temporary/ sementara. Biasanya akan terhapus secara otomatis begitu user menutup browser, atau melakukan logout.
42
echo "Nama user Anda adalah: $username<br><br>"; echo "<a href=hal1.php>Hal 1</a> <a href=hal2.php>Hal 2</a> <a href=hal3.php>Hal 3</a>"; ?>
<a
<a
<a
43
Misalkan terdapat lebih dari satu session dan kita ingin menghapus semuanya, maka caranya dengan memberikan perintah session_destroy(); Biasanya menghapus data session yang terkait dengan username diterapkan pada proses logout. Dengan proses logout, maka username yang telah tersimpan dalam session akan terhapus. Contoh: Akan dibuat script untuk proses logout dari kasus di atas. <? session_start(); unset($_SESSION['namauser']); ?>
44
echo "Anda belum login"; exit; } ?> Dan berikut adalah script hal1.php, hal2.php, dan hal3.php yang sudah dimodifikasi
Hal1.php <? session_start(); include "cek.php"; echo "Ini adalah halaman 3<br>"; echo "Nama user Anda adalah: ".$_SESSION['namauser']. "<br><br>"; echo "<a href=hal1.php>Hal 1</a> <a href=hal2.php>Hal 2</a> href=hal3.php>Hal 3</a>"; ?> Hal2.php <? session_start(); include "cek.php"; echo "Ini adalah halaman 3<br>"; echo "Nama user Anda adalah: ".$_SESSION['namauser']. "<br><br>"; echo "<a href=hal1.php>Hal 1</a> <a href=hal2.php>Hal 2</a> href=hal3.php>Hal 3</a>"; ?> Hal3.php <? session_start(); include "cek.php"; echo "Ini adalah halaman 3<br>"; echo "Nama user Anda adalah: ".$_SESSION['namauser']. "<br><br>"; echo "<a href=hal1.php>Hal 1</a> <a href=hal2.php>Hal 2</a> href=hal3.php>Hal 3</a>"; ?>
<a
<a
<a
45
Membuat Cookies
Untuk membuat cookies, caranya dengan menggunakan perintah setcookie(name, value, expiration). Perintah ini memiliki 3 buah argumen, yaitu 1. name, merupakan nama dari cookie. Nama cookie ini dapat dipanggil sewaktu-waktu untuk mendapatkan informasi. Jadi jangan sampai nama cookie ini lupa. 2. value, merupakan informasi atau data yang disimpan dalam cookie. Biasanya value ini berupa username atau tanggal pengaksesan suatu halaman web. 3. expiration, merupakan batas waktu penyimpanan cookie (dalam detik timestamp). Apabila lama penyimpanan sebuah cookie melebihi batas waktu ini, maka secara otomatis cookie tersebut akan terhapus. Contoh: Pada contoh ini akan dibuat perintah PHP untuk membuat cookie yang digunakan untuk menyimpan data waktu kunjungan terakhir seorang user yang mengakses suatu halaman web. Cookie ini diberi batas waktu sampai 2 bulan (60 hari) penyimpanan. <?php $duabulanlagi = time() + 60 * 24 * 3600; setcookie(KunjunganTerakhir, date("G:i - m/d/y"), $duabulanlagi); ?>
46
<?php if(isset($_COOKIE['KunjunganTerakhir'])) { $visit = $_COOKIE['KunjunganTerakhir']; echo "Kunjungan Anda terakhir pada - ". $visit; } else echo "Anda sudah 2 bulan lebih tidak mengunjungi web ini"; ?>
47
Untuk memperoleh informasi parameter di atas, dapat menghubungi server administrator. Sedangkan perintah PHP untuk melakukan koneksi ke MySQL adalah <?php mysql_connect("nama server", "username", "password") or die(mysql_error()); echo "Koneksi ke MySQL Sukses<br>"; ?> Perintah di atas akan menampilkan Koneksi ke MySQL sukses apabila koneksi telah berhasil, sedangkan apabila gagal akan menampilkan pesan kesalahan.
Memilih Database
Setelah koneksi berhasil, selanjutnya kita dapat memilih database yang kita inginkan. Adapun perintahnya menggunakan mysql_select_db(). Contoh: <?php mysql_connect("localhost", "admin", "1admin") or die(mysql_error()); echo "Connected to MySQL<br />"; mysql_select_db("test") or die(mysql_error()); echo "Connected to Database"; ?>
48
Contoh di atas menggambarkan bagaimana cara melakukan koneksi ke MySQL dengan nama servernya localhost, username : admin, dan password: 1admin. Selanjutnya memilih database test.
<?php mysql_connect("localhost", "admin", "1admin") or die(mysql_error()); mysql_select_db("test") or die(mysql_error()); mysql_query("CREATE TABLE example( id INT NOT NULL AUTO_INCREMENT, nama VARCHAR(30), umur INT) PRIMARY KEY(id)") or die(mysql_error()); echo "Tabel sudah dibuat"; ?> Pada contoh di atas, dapat dilihat bahwa perintah PHP untuk menuliskan query ke MySQL adalah mysql_query("query"); Sedangkan berikut ini contoh script untuk menyisipkan 2 buah record/data ke tabel example. <?php mysql_connect("localhost", "admin", "1admin") or die(mysql_error()); mysql_select_db("test") or die(mysql_error()); mysql_query("INSERT INTO example(nama, umur) VALUES('budiman', 20)"); mysql_query("INSERT INTO example(nama, umur) VALUES('surti', 30)"); echo "Data sudah dimasukkan"; ?>
49
<?php mysql_connect("localhost", "admin", "1admin") or die(mysql_error()); mysql_select_db("test") or die(mysql_error()); $result = mysql_query("SELECT * FROM example") or die(mysql_error()); // menyimpan record ke dalam variabel $data $record = mysql_fetch_array( $result ); // menampilkan data dari $record untuk setiap field echo "Namanya: ".$record['nama']. "<br>"; echo "Umurnya: ".$record['umur']; ?> Output script di atas adalah: Namanya: budiman Umurnya: 20 Perintah di atas hanya akan menampilkan record pertama dari tabel example. Lantas, bagaimana caranya untuk menampilkan record yang lebih dari satu? Untuk menampilkan record yang lebih dari satu, kita gunakan looping. Perhatikan contoh berikut ini. <?php mysql_connect("localhost", "admin", "1admin") or die(mysql_error()); mysql_select_db("test") or die(mysql_error()); $hasil = mysql_query("SELECT * FROM example") or die(mysql_error()); while ($record = mysql_fetch_array($hasil)) { echo "Namanya: ".$record['nama']. "<br>"; echo "Umurnya: ".$record['umur']. "<br><br>"; } ?> Looping while di atas akan terus berjalan selama record masih ada untuk dibaca. Hasil dari script di atas adalah Namanya: budiman Umurnya: 20 Namanya: surti Umurnya: 30 Catatan: Untuk lebih memudahkan Anda dalam administrasi dan mengatur database dalam MySQL, sangat dianjurkan untuk menginstall phpMyAdmin yang dapat diunduh melalui situs resminya di http://phpmyadmin.sourceforge.net/
50
51
Diberikan form login sbb. Login.php <form method=post action=submit.php> Nama user <input type=text name=username><br> Password <input type=text name=password> <input type=submit name=submit value=Submit> </form> Dan file submit.php sbb. <? mysql_connect("localhost","root","root"); mysql_select_db("test"); $username = $_POST['username']; $password = $_POST['password']; $query = "SELECT * FROM user WHERE username = '$username' AND password = '$password'"; echo "$query<br>"; $hasil = mysql_query($query); $jmldata = mysql_num_rows($hasil); if ($jmldata != 0) echo "<h1>Login SUKSES</h1>"; else echo "<h1>Login GAGAL</h1>"; ?> Ide dari proses login di atas adalah mencari namauser dan password dalam tabel user berdasarkan username dan password yang dimasukkan melalui form. Perintah mysql_num_rows() akan menghasilkan jumlah record hasil pencarian. Apabila ditemukan namauser dan password yang sesuai maka mysql_num_rows() akan menghasilkan jumlah baris record yang tidak sama dengan 0. Sedangkan apabila tidak ditemukan, jumlah baris record adalah 0. Selanjutnya jumlah baris record yang muncul tersebut dicek. Login akan berhasil apabila ada record yang ditemukan atau jumlah baris recordnya tidak sama dengan 0, dan akan gagal jika jumlah baris recordnya 0. Sekarang, perhatikan apa yang terjadi apabila dalam form dimasukkan input sebarang nama user dan password berbentuk ' OR 1 OR '1' = '1. Pastilah login akan sukses karena perintah SQL yang dijalankan adalah SELECT * FROM user WHERE username = 'xxx' AND password = '' OR 1 OR '1' = '1' yang akan menghasilkan TRUE
52
53