Informasi mengenai tanggal (date) dan waktu (time) acapkali diperlukan ketika membangun aplikasi web. Bagaimanapun, terkadang kita perlu melakukan perhitungan tanggal maupun waktu. Sehubungan dengan hal ini, PHP telah menyediakan ekstensi built-in yang dapat dimanfaatkan tanpa perlu melakukan konfigurasi tambahan.
2. File System
Aplikasi-aplikasi PHP yang bekerja dengan data permanen akan menggunakan salah satu dari dua pendekatan yang tersedia: file system dan basis data relasional. Dalam konteks penyimpanan data, file dapat dikatakan sebagai tempat penyimpanan alternatif (selain database). Meskipun demikian, operasi-operasi terhadap file mutlak diperlukan dalam pembuatan aplikasi web. Urgensi pembahasan ini semakin terasa karena PHP memungkinkan URL dan sumber daya jaringan lainnya diperlakukan layaknya file lokal.
a. Operasi Dasar Date dan Time
Pada saat bekerja dengan date dan time, kita tidak akan lepas dari operasi- operasi dasar terkait. Salah satunya yang utama adalah mendapatkan tanggal dan waktu sekarang (current date dan time). Operasi ini sebenarnya bisa dilakukan melalui beberapa pendekatan, namun yang paling umum adalah dengan menggunakan fungsi date(). Selain fungsi date(), juga tersedia fungsi-fungsi lain untuk mendapatkan current date dan time, seperti strftime(), idate(), getdate(), dan localtime(). Di samping menyediakan informasi-informasi standar, fungsi date() juga menyediakan karakter-karakter spesifik untuk mendapatkan gabungan elemen sekaligus. Sejak versi 5, PHP menambahkan karakter c yang juga berfungsi untuk merepresentasikan date dan time lengkap.
b. Kalkulasi Date dan Time
Operasi-operasi date dan time umumnya tidak hanya mengacu pada current date atau time. Dengan kata lain, kita mungkin ingin melakukan operasi untuk date dan time yang telah atau belum lewat. Selain itu, tak jarang juga diperlukan kalkulasi date dan time. Setidaknya ada dua pendekatan yang bisa digunakan untuk melakukan pembentukan datetime, yaitu fungsi time() dan mktime(). Meskipun sama-sama mengembalikan timestamp Unix, namun mktime() menyediakan argumen-argumen opsional untuk memudahkan penetapan date dan time. Selain fungsi time() dan mktime(), PHP juga memiliki fungsi strtotime() yang dapat digunakan untuk melakukan kalkulasi secara mudah.
c. Operasi File Dasar
Sehubungan dengan penggunaan file di dalam program, ada beberapa operasi dasar yang perlu sekali diperhatikan. Ekstensi Filesystem menyediakan fungsi file_exsists() yang akan mengembalikan nilai true jika file ditemukan; sebaliknya, fungsi ini mengembalikan nilai false. Meskipun ekstensi Filesystem tidak menyediakan fungsi khusus untuk mendapatkan nama atau ekstensi file, namun terdapat sejumlah fungsi yang mencakup informasi tersebut, diantaranya adalah pathinfo().
d. Operasi File Lanjut
Sehubungan dengan fungsionalitas utamanya, ada beberapa operasi file yang disediakan oleh ekstensi File system. Operasi-operasi yang lazim dilakukan meliputi pembuatan, penghapusan, penulisan, dan pembacaan. Secara garis besar, ada tiga langkah yang diperlukan sehubungan dengan operasi penulisan: membuka file, melakukan penulisan, dan menutup file. Operasi pembukaan file di atas menggunakan mode a+, yang berarti bahwa baris file akan disisipkan dibelakang dan operasi akan sekaligus menciptakan file baru jika belum eksis. Mode lain yang bisa digunakan antara lain adalah r (read-only) dan w (write-only). Di PHP versi 5 ke atas, operasi penulisan file dapat dilakukan lebih praktis, yakni dengan memanfaatkan fungsi file_put_contents(). Fungsi ini akan melakukan tiga pekerjaan sekaligus: membuka, menulis, dan menutup file. Sama seperti penulisan, operasi ini juga dapat dilakukan melalui beragam pendekatan. Apabila Anda ingin membaca seluruh isi file secara praktis gunakan fungsi file_get_contents(). Tidak seperti file_put_contents() fungsi ini sudah tersedia sejak PHP 4. Pembacaan praktis seluruh file juga dapat dilakukan dengan memanfaatkan fungsi file(). Fungsi ini identik dengan file_get_contents(), kecuali nilai kembaliannya adalah suatu array.
e. Operasi Direktori
Seperti halnya operasi file, ada beragam operasi direktori yang lazim dilakukan. Berbekal fungsi-fungsi yang telah tersedia, kita tidak akan kesulitan melakukan operasi ini. Bagi pengguna PHP 5 ke atas, telah tersedia fungsi scandir() untuk memindai file-file di suatu direktori.
f. Include/Require File
Mengacu pada struktur aplikasi web, yang lazimnya terdiri dari beberapa file, tidak mungkin kita dapat menghasilkan aplikasi tanpa meng-include file lain.Adapun dalam implementasinya, include bisa dilakukan melalui fungsi include() atau require(). Sebagai contoh, kita bisa membuat file PHP yang meng-include program scan_file.php dan menggunakan fungsi scanFile() yang telah terdefinisi. Untuk mencegah include/require ulang, gunakan fungsi include_once() atau require_once(). Kedua fungsi ini memastikan bahwa file yang sama hanya akan di-include sekali.
g. Upload File
Seperti halnya memproses field form, gunakan superglobal ketika ingin memproses file yang di-upload oleh user. Khusus untuk menangani file-file yang di-upload melalui method POST, PHP menyediakan superglobal $_FILES.
Kita dapat membuat aplikasi pengolahan data berbasis file dengan spesifikasinya: aplikasi mampu mengambil masukan data dan menyimpan ke file, serta menampilkan hasilnya ke browser, misalnya seperti di bawah ini:
Tugas Praktikum 1 Fungsi Countdown Tanggal
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <title>Aplikasi Berbasis File</title>
</head>
<body background="romantic.jpg">
<form name="tanggal" method="post" action="<?php $_SERVER['PHP_SELF'];?>" onsubmit="(this)">
<p align="center"><? echo $status;?></p>
<table width="600" border="6" align="center" bgcolor="#D3D3D3" rules="groups" cellpadding="5" cellspacing="5">
<tr>
<td width="50"> </td>
<td align="left"><font size="6" face="Comic Sans ms" >Argumen Tanggal Countdown</font></td>
</tr>
<tbody >
<tr><td width="50"> </td><td><font size="4" face="verdana">Tanggal</font></td></tr>
<tr><td width="50"> </td><td><input type="text" name="tggl" size="50" id="tggl" /></td></tr>
<tr><td width="50"> </td><td><font size="4" face="verdana">Bulan</font></td></tr>
<tr><td width="50"> </td><td><input type="text" name="bulan" size="50" id="bulan" /></td></tr>
<tr><td width="50"> </td><td><font size="4" face="verdana">Tahun</font></td></tr>
<tr><td width="50"> </td><td><input type="text" name="tahun" size="50" id="tahun" /></td></tr>
<tr><td colspan="2"align="center"><font size="2" face="verdana" >Masukkan Tanggal sebelum tanggal hari ini</font></td></tr>
<tr><td width="50"> </td><td><input name="submit" type="submit" value="OK" /></td></tr>
<tr><td width="50"> </td><td><input name="reset" type="reset" value="CANCEL" /></td></tr>
</table>
</form>
<?php $tgl = (int) $_POST["tggl"]; ?>
<?php $bln = (int) $_POST["bulan"]; ?>
<?php $thn = (int) $_POST["tahun"]; ?>
<?php
countdown($thn, $bln, $tgl);
function countdown($year, $month, $day)
{
// make a unix timestamp for the given date
$the_countdown_date = mktime($hour, $minute, 0, $month, $day, $year, -1);
// get current unix timestamp
$today = time();
$difference = $today - $the_countdown_date ;
if ($difference < 0) $difference = 0;
$days_left = floor($difference/60/60/24);
$hours_left = floor(($difference - $days_left*60*60*24)/60/60);
$minutes_left = floor(($difference - $days_left*60*60*24 - $hours_left*60*60)/60);
// OUTPUT
echo "Tanggal hari ini ".date("F j, Y, g:i a")."<br/>";
echo "Tanggal countdown ".date("F j, Y, g:i a",$the_countdown_date)."<br/>";
echo "Selisih".$days_left." hari ".$hours_left." jam ".$minutes_left." menit";
}
?>
</body>
</html>
</div>
</body>
</html>
Tugas Praktikum 2 Aplikasi Pengolahan Data Berbasis File
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <title>Aplikasi Berbasis File</title>
</head>
<body background="romantic.jpg">
<form name="data" bgcolor="purple" action="<?php $_SERVER['PHP_SELF'];?>" method="post" onsubmit="(this)">
<p align="left"><? echo $status;?></p>
<table width="500" border="0" align="left" bgcolor="blue" rules="groups" cellpadding="8" cellspacing="5">
<tr><td width="50"> </td><td><font size="4" face="comic sans">No</font></td>
<td width="50"> </td><td><input type="text" name="nomer" size="50" id="nomer" /></td></tr>
<tr><td width="50"> </td><td><font size="4" face="comic sans">Nama</font></td>
<td width="50"> </td><td><input type="text" name="nama" size="50" id="nama" /></td></tr>
<tr><td width="50"> </td><td><font size="4" face="comic sans">Alamat</font></td>
<td width="50"> </td><td><input type="text" name="alamat" size="50" id="alamat" /></td></tr>
<tr><td width="50"> </td><td><input name="submit" type="submit" value="OK" /></td></tr>
<tr><td width="50"> </td><td><input name="reset" type="reset" value="CANCEL" /></td></tr>
</table>
</form>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<div align="center">
<table width="700" border="1" bgcolor="pink" cellpadding="8" cellspacing="5">
<tr>
<td width="50" align="center"><font size="4" face="comic sans">No</font></td>
<td width="200" align="center"><font size="4" face="comic sans">Nama</font></td>
<td width="500" align="center"><font size="4" face="comic sans">Alamat</font></td>
</tr>
<?php $no = 1; $nme = 1; $add = 1; ?>
<?php $no = (int) $_POST["nomer"]; ?>
<?php $nme = (int) $_POST["nama"]; ?>
<?php $add = (int) $_POST["alamat"]; ?>
<tr>
<td align="center"><? echo $no=$no+1; ?></td>
<td align="center"><? echo $nme;?></td>
<td align="center"><? echo $add;?></td>
</tr>
</table>
</div>
</body>
</html>
Setelah sintaks di eksekusi, maka akan tampil layout seperti gambar berikut:
Tampilan Sintaks 1
Tampilan Sintaks 2
0 komentar:
Posting Komentar