Tampilkan postingan dengan label PHP. Tampilkan semua postingan
Tampilkan postingan dengan label PHP. Tampilkan semua postingan

Kamis, 13 Desember 2012

Fungsi Break dan contiue dalam php


Fungsi break dalam php digunakan untuk menghentikan proses yang dilakukan oleh perintah php  : for, foreach, while, do-while atau switch. Sedangkan continue digunakan untuk melanjutkan proses pada perintah perulangan for dengan php. Kedua fungsi ini (break dan continue) memang tidak selalu digunakan, karena setiap kasus mungkin saja berbeda keperluan. Pada kasus seperti apa anda memerlukan fungsi break dan continue?
Fungsi break ini biasanya digunakan untuk mengendalikan alur kerja dari sebuah proses yang dilakukan dengan perintah seperti diatas. Fungsi break ini diletakkan dalam struktur if dengan menambahkan kriteria tertentu.


<?php
switch ($nilai) {
  case '1':
    echo "$nilai=1";
    break;
  case '2':
    echo "$nilai=2";
    break;
  case '3':
    echo "$nilai=3";
    break;
  case '4':
    echo "$nilai=4";
    break;
  default:
    echo "$nilai";
}
?>
Pada contoh switch diatas bisa kita lihat bahwa setiap akhiran case diletakkan break. Ini fungsinya agar, pada saat variabel nilai sesuai dengan salah satu nilai case maka proses switch akan diakhiri setelah perintah break. Hal ini dikarenakan jika tidak diletakkan break maka php akan melanjutkan sampai case terakhir.


<?php
for ($i = 0; $i < 5; ++$i) {
    if ($i == 2)
        continue
    echo "$i\n";
}
?>
Jika kode php diatas dijalankan maka hasilnya adalah menuliskan angka 0 1 3 4, pada bagian program kita lihat ada if($i == 2) continue yang artinya pada saat perulangan dengan nilai i sama dengan 2 maka perulangan mengabaikan perintah menuliskan angka 2 dan melanjutkan ke perulangan nilai berikutnya.
Semoga bermanfaat


CSV adalah jenis file yang sering digunakan untuk menyimpan data berupa huruf dan angka dalam bentuk plain-text. CSV (comma separated values) ini menyimpan dengan susunan baris data yang dipisah dengan karakter koma dan disimpan dalam ekstensi .csv. File csv ini sering digunakan untuk menyimpan data dalam bentuk tabel yang terdiri dari kolom dan baris. CSV ini juga sangat fleksibel sehingga bisa dengan mudah dibaca ataupun ditulis dengan aplikasi/sistem lain. Bagaimana membaca file csv ini dengan php?
File csv ini bisa dibuat dengan cara manual dengan notepad/editor text atau dengan bantuan aplikasi tabular seperti excel. Isi file csv ini jika kita lihat dengan excel disajikan dalam bentuk kolom-kolom data seperti berikut :
csv dalam excel
dan jika kita buka dengan notepad akan terlihat seperti ini :
csv dalam notepad
Jika dilihat pada gambar diatas maka terlihat bahwa data yang tersimpan terdiri dari baris-baris data dengan kolom yang dipisah dengan tanda titik koma, bisa juga tiap kolom dipisah dengan tanda koma tapi cara kerjanya sama.
Sekarang sudah kita ketahui format data yang tersimpan dalam csv, kita lanjutkan caramembacanya dengan php.
Contoh isi file csv yang akan dibaca adalah file-csv.csv dengan isi :

KODE;NAMA;JUMLAH
1;BAJU KAOS;10
2;KAOS KAKI;12
3;SENDAL JEPIT;10
Cara membaca file diatas :

<?php
    $namafile="file-csv.csv";
    $pemisah=";";
    $datacsv = fopen($namafile, "r");
    while (($data = fgetcsv($datacsv, 1000, $pemisah)) !== FALSE)
    {
        echo $data[0]." - ".$data[1]." - ".$data[2]."</br>";
    }
    fclose($datacsv);
?>
Jika kita lihat kode diatas cara membacanya cukup sederhana dengan fungsi php fopen dengan mode "r" read, menudian dipindah dalam array dengan diberi nama $data dengan fungsi fgetcsv. Hasil php diatas jika dijalankan akan menghasilkan  seperti gambar berikut :
cara baca csv dengan php
Jika masih bingung, silahkan coba download contoh kode php berikut : Download contoh baca csv

Contoh diatas dengan kondisi file csv berada dalam satu folder phpnya. Bagaimana kalau file csv-nya diupload?
Dengan sedikit perubahan kita bisa lakukan hal yang sama pada kasus file csv yang diupload. Caranya :
Pertama buat form seperti berikut :
upload csv dengan php
dengan kode perintah html :

<form action="" method="post" enctype="multipart/form-data" name="ContohUploadCSV" id="ContohUploadCSV">
  <p>Pilih file csv
    <input type="file" name="filecsv" id="filecsv" />
</p>
  <p>
    <input type="submit" name="button" id="button" value="Kirim" />
</p>
</form>
action pada form sengaja dikosongkan yang artinya form diatas akan diproses pada file yang sama. Kemudian kita tambahkan perintah untuk memproses file csv dengan kode berikut :

<?php
if (!empty($_FILES["filecsv"]["tmp_name"]))
{
    $namafile = $_FILES['filecsv']['tmp_name'];
    $pemisah=";";
    $datacsv = fopen($namafile, "r");
    while (($data = fgetcsv($datacsv, 1000, $pemisah)) !== FALSE)
    {
        $jml++;
        echo $data[0]." - ".$data[1]." - ".$data[2]."</br>";
    }
    fclose($datacsv);   
    echo "<SCRIPT>alert('".$jml." baris data berhasil dibaca');</SCRIPT>";
}
?>
Hanya sedikit bagian yang berubah, yang semula file csv dengan menyebutkan nama filenya, sekarang diubah menjadi bersumber dari fille yang diupload.
Silahkan download contoh lengkapnya berikut : Download contoh upload dan baca csv

Semoga bermanfaat

Upload Banyak File dengan php

Beberapa waktu lalu saya sempat menulis tentang bagaimana membuat form serta script upload file dengan php, tapi masih dengan cara melampirkan satu file saja. Berikut ini saya akan menjelaskan lagi bagaimana jika yang di upload terdiri dari beberapa file yang dikirim secara bersamaan dengan php.

Kita akan buat sebuah form untuk banyak file lengkap dengan judul seperti tampilan berikut :

upload banyak file
Pada form diatas bisa dilihat bahwa nantinya masing2 file yang diupload, disertakan judul dalam bentuk text sehingga keduanya (judul dan file dikirim secara bersamaan).
Perintahnya membuat form diatas seperti ini :

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Upload banyak file dengan php</title>
<style type="text/css">
#form-upload {
 width:500px;
 margin:0 auto;
 border:1px solid #ccc;
 border-radius:10px;
 padding:10px;
 background-color:#E2FEEA;
 font:14px "Trebuchet MS";
}
</style>
</head>
<body>
<div id="form-upload">
<form action="file-upload.php" method="post" enctype="multipart/form-data">
  <h3 align="center">Isikan judul dan pilih file yang akan di upload :</h3>
  <p> File 1<br />Judul : <input name="judul[]" type="text" size="30" maxlength="30" />  <input name="userfile[]" type="file" /></p>
  <p>File 2<br />Judul :   <input name="judul[]" type="text" size="30" maxlength="30" /> <input name="userfile[]" type="file" /></p>
  <p>File 3<br /> Judul :  <input name="judul[]" type="text" size="30" maxlength="30" /> <input name="userfile[]" type="file" /></p>
  <p>* Hanya file gambar jpg/gif/png</p>
  <p align="center"><input name="btnKirim" type="submit" id="btnKirim" value="Kirim File" /></p>
</form>
</div>
</body>
</html>

Script diatas bisa disimpan dengan nama upload.php.
Jika anda amati script membuat form diatas ( elemen form judul[] dan userfile[]), sayamenggunakan objek textfield dan file field dengan jenis array sehingga memungkinkan kita menambahnya sebanyak2nya sesuai keperluan. Jangan lupa

Formnya sudah jadi tinggal membuat file yang menanggani form upload dan nanti disimpan dengan nama file-upload.php. Isi filenya seperti berikut :

<?php
$namafolder="photo/"; //tempat menyimpan file
for($i=0; $i<count($_FILES['nama_file']); $i++) 
{
  if (!empty($_FILES["nama_file"]["tmp_name"][$i]))
  {
    $jenis_gambar=$_FILES['nama_file']['type'][$i];
    $judul_gambar=$_POST['judul'][$i];
    if($jenis_gambar=="image/jpeg" || $jenis_gambar=="image/jpg" || $jenis_gambar=="image/gif" || $jenis_gambar=="image/x-png")
    {           
      $gambar = $namafolder . basename($_FILES['nama_file']['name'][$i]);       
      if (move_uploaded_file($_FILES['nama_file']['tmp_name'][$i], $gambar)) {
        //tampilkan ke layar
        echo "Judul Gambar : ".$judul_gambar."<br />";
        echo "Jenis Gambar : ".$jenis_gambar."<br />";
        echo "<img src=\"$gambar\" width=\"100\" alt=\"$judul_gambar\" /><br />";
        //tambahkan proses menyimpan database jika diperlukan seperti berikut 
        //mysql_query("insert into tb_mgambar(judul_gambar,nama_file) values('$judul_gambar','$gambar')") or die(mysql_error());
       } 
     } 
     else 
     {
       echo "Jenis gambar yang anda kirim salah. Harus .jpg .gif .png<br />";
     }
   }
}
?>

Anda bisa sesuaikan script upload banyak file diatas sesuai keperluan seperti untuk jenis file selain gambar (rar, pdf, mp3 dll) atau juga bisa anda kembangkan berbasis database seperti photo galleri.
Hasil tampilan akhir jika berhasil upload akan tampil seperti berikut :
tampilan hasil upload banyak file
Silahkan download contoh lengkapnya : Download Script Upload banyak File.
Cara menjalankanya cukup anda ekstrak di dalam folder web server (htdocs), dan jalankan file upload-banyak.php.
Semua script serta contoh uploadnya sudah saya coba jalankan dan semuanya bisa dipertanggungjawabkan :). Jika ada kesalahan, silahkan komentar dibawah ini.

Semoga bermanfaat, dan selamat mencoba.

Htaccess dengan php


Apakah anda sudah pernah mendengar istilah clean url dalam php? Dan apakah sudah mencoba sendiri membuatnya? Jika belum inilah saatnya anda mengetahui dan mencoba menerapkannya dalam php. Apa clean url, keuntunganya serta bagaimana membuatnya, simaktulisan saya berikut ini.

Clean url adalah sebuah metode penamaan halaman web dengan cara lebih sederhana, struktural, logis dan terbaca oleh manusia. Dengan struktur penamaan halaman yang baik maka pembaca atau pengguna lebih mudah mengingat apa yang mereka buka. Clean url juga sering dikenal dengan user-friendly URLs atau SEO-friendly URLs yang artinya penamaan yang digunakan sangat mendukung untuk optimalisasi mesin pencari .

Bagaimana kita membedakan mana yang not clean url dengan clean url lihat contoh url berikut :
Halaman web dikatakan Not Clean url jika dibuat seperti berikut :
bukan clean url
Jika kita lihat cara pemanggilan halaman diatas tentunya akan sangat menyulitkan, belum lagi kalo kombinasinya lebih banyak dari itu.
Alamat halaman web dikatakan clean url jika disusun seperti berikut :
contoh clean url dengan php
Beberapa keuntungan menggunakan model clean url yaitu :
  1. Nama file lebih baik dan mudah diingat
  2. Lebih mudah menghubungkan dengan file lainya (link antar halaman)
  3. Memudahkan mesin pencari/search engine melakukan index halaman
  4. Lebih baik dari sisi keamanan

Clean url dalam php bisa dilakukan dengan beberapa cara, diantaranya yaitu dengan murni coding php, ada juga yang dibantu dengan file .htaccess. Jika melakukanya dengan murni php biasanya hasilnya kurang maksimal (masih terlihat melibatkan file utama) contoh :www.zainalhakim.web.id/index.php/artikel/php/12. Berbeda dengan yang menggunakan .htaccess, hasilnya jika kita lihat akan lebih baik dan mudah difahami contoh :www.zainalhakim.web.id/artikel/php/12.
Apa file .htaccess? File htaccess adalah sebuah file konfigurasi sistem yang dijalankan pada web server apache. htaccess ini biasanya diletakkan pada folder utama yang memerlukan konfigurasi tersebut. htaccess tidak memiliki ekstensi/jenis jadi cuman diberi nama dengan ".htaccess" dan diisi dengan konfigurasi web server.
Langkah pertama membuat clean url dengan htaccess dan php adalah membuat file .htaccess dengan isi seperti berikut :

RewriteEngine On
RewriteBase /nama-folder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /nama-folder/index.php [L] 

Contoh lengkap bisa anda download pada bagian akhir tulisan ini. Untuk mengeditnya anda bisa menggunakan notepad atau text editor lainya.
Anda harus mengubah konfigurasi htaccess sesuai dengan letak folder aplikasi php (terlihat pada baris 2 dan 6). Jika anda menjalankan pada sub folder localhost maka kita harus menuliskan nama sub foldernya seperti diatas, dan jika dijalankan pada root folder/folder utama maka baris ke 2 dan 6 diubah menjadi :

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] 

Maksud htaccess diatas adalah memusatkan semua permintaan url ke file index.php, sehingga apapun yang diminta maka yang menghandle lebih dulu adalah index.php. Kecuali yang alamat yang diminta memang secara fisik ada folder atau filenya baru index diabaikan. Jika file htaccess sudah siap, sekarang kita membuat coding file phpnya seperti berikut :

<?php
$nama_folder = "http://localhost/clean-url";
$url = explode("/",$_SERVER["REQUEST_URI"]);
$segmen1   = $url[0];
$segmen2   = $url[1];
$segmen3   = $url[2];
$segmen4   = $url[3];
$segmen5   = $url[4];
$segmen6   = $url[5];
?>
<!DOCTYPE html>
<head>
<title>Contoh clean url</title>
</head>
<body>
<h1>Contoh Clean Url dengan PHP</h1>
<p>Contoh Link</p>
<p>
<a href="<?php echo $nama_folder?>/artikel/">Artikel</a> |
<a href="<?php echo $nama_folder?>/berita/">Berita</a> |
<a href="<?php echo $nama_folder?>/galleri/">Galleri</a> |
<a href="<?php echo $nama_folder?>/kontak/">Kontak</a></p>
<?php
switch ($segmen3) { 
case "artikel" : 
	//anda bisa ganti bagian ini dengan perintah lain
	echo "<h2>Anda memilih menu artikel</h2>";
	break; 
case "berita" : 
	//anda bisa ganti bagian ini dengan perintah lain
	echo "<h2>Anda memilih menu berita</h2>";
	break; 
case "galleri" : 
	//anda bisa ganti bagian ini dengan perintah lain
	echo "<h2>Anda memilih menu galleri</h2>";
	break; 
case "kontak" : 
	//anda bisa ganti bagian ini dengan perintah lain
	echo "<h2>Anda memilih menu kontak</h2>";
	break; 
}
?>
<p>writed by <a href="www.zainalhakim.web.id">www.zainalhakim.web.id</a></p>
</body>
</html>

Pada blok awal php, kita definisikan dulu alamat web secara lengkap contoh untuk web yang berada pada http://localhost/clean-url. Jika anda mencobanya di internet, bisa menuliskan alamatnya seperti http://www.zainalhakim.web.id/nama-folder.
Langkah kedua (baris ke 2) kita memisah permintaan url yang dikirimkan melalui browser, misal yang diminta : http://localhots/clean-url/artikel/ maka $_SERVER["REQUEST_URI"] akan bernilai /clean-url/artikel/. Dan pada saat dijalankan baris berikutnya :
$url = explode("/",$_SERVER["REQUEST_URI"]); maka $url akan diberi nilai dalam bentuk array yang kemudian dipecah dalam beberapa variabel diberi nama $segmen1 s/d $segmen6. Variabel segemen ini ditentukan sesuai kedalaman alamat yang kita buat. Nilai masing2 segmen jika sampai 6 maka berisikan :
$segmen1 =
$segmen2 = clean-url
$segmen3 = artikel
$segmen4 =
$segmen5 =
Sehingga pada blok php berikutnya kita lakukan filter dengan switch pada $segmen3 sebagai kata kunci permintaan. Jika isi segmen3 artikel maka { lakukan proses } dst.
* Catatan : posisi segmen akan berubah tergantung alamat/url yang diminta
Silahkan download contoh lengkapnya disini.
Semoga bermanfaat dan bisa memberi inspirasi serta pengetahuan tambahan buat kita semua.

Membagi halaman laporan dalam php

Jumlah data dari mysql yang tampil dalam laporan yang dibuat dengan php tentunya akan sangat mempengaruhi kinerja aplikasi web yang kita buat. Semakin banyak data, pasti prosesnya akan semakin lama dan tentunya agak sedikit menyulitkan orang yang membacanya. Bisa anda bayangkan kalau ada 1000 baris data yang ditampilkan dalam sebuah tabel laporan? Oleh karena itu biasanya halaman laporan dilengkapi dengan sistem navigasi halaman yang sering disebut dengan sistem paging.
Sistem paging ini memungkinkan untuk menampilkan data dari database secara bertahap, halaman per halaman sesuai keperluan. Berikut ini contoh membuat sistem paging dengan php.
Langkah pertama, silahkan download file contoh data dalam file sql berikut : Download
Kemudian anda buat database baru dengan nama "db_mhs", lalu import file yang sudah anda download tadi.
Pastikan import berhasil, dan cek/browse datanya. Saya sudah sisipkan sekitar 200 lebih contoh data didalamnya.
Kemudian copy sourcecode berikut dan simpan dengan nama paging.php
<html>
<head>
<title>Membagi halaman laporan dengan php</title>
<style type="text/css">
#navpage a { padding:3px 5px;background-color:#EDFFEA;border:1px solid #ccc;
text-decoration:none;color:#5B5B5B; }
#navpage a:hover { background-color:#CEFFC6; }
</style>
</head>
<body>
<div align="center">
<?php
//koneksi database bisa disesuaikan
mysql_connect("localhost","root","") or die("Gagal Konek ke server");
mysql_select_db("db_mhs") or die("Gagal Konek ke database");
//nama tabel
$tablename="tb_mhs";
//nama file, ini otomatis
$baselink=$_SERVER['PHP_SELF'];
// jumlah data perhalaman
$rowsPerPage = 12;
//nilai halaman awal
$pageNum = 1;
if(!empty($_GET['page']))
{
    $pageNum = $_GET['page'];
}
$offset = ($pageNum - 1) * $rowsPerPage;
// query database sesuai dengan field atau nama tabel
$query  = "SELECT * FROM $tablename ORDER by nim asc LIMIT $offset, $rowsPerPage";
$result = mysql_query($query) or die('Error, query failed. ' . mysql_error());
?>
  <h2 class="tengah">DATA MAHASISWA</h2>
  <table width="450" border="0" cellpadding="3" cellspacing="1" bgcolor="#999999">
    <tr bgcolor="#E8FDEC">
      <th width="149">NIS</th>
      <th width="348">NAMA</th>
    </tr>
<?php
while($row = mysql_fetch_array($result))
{
?>
    <tr bgcolor="#fff">
      <td><?php echo $row['nim']?></td>
      <td><?php echo $row['nama']?></td>
    </tr>
<?php
} //end of while
?>
  </table>
<?php
    //menghitung jumlah data, silahkan disesuaikan nama field dalam COUNT
    $query   = "SELECT COUNT(nim) AS numrows FROM $tablename";
    $result  = mysql_query($query) or die('Error, query failed. ' . mysql_error());
    $row     = mysql_fetch_array($result, MYSQL_ASSOC);
    $numrows = $row['numrows'];
    $maxPage  = ceil($numrows/$rowsPerPage);
    $nextLink = '&nbsp;';
    if($maxPage >1)
    {
        $nextLink = array();
        for($page = 1; $page <= $maxPage; $page++)
        {
            $nextLink[] =  "<a href=\"".$baselink."?page=$page\">$page</a>";
        }
        $nextLink = "<p>Halaman : </p>" . implode(' ', $nextLink);
    }
    echo '<div id="navpage">'.$nextLink.'</div>';
    mysql_free_result($result);
?>
</div>
</body>
</html>
Jika anda lihat pada script diatas, saya sudah tambahkan beberapa informasi yang bisa anda sesuaikan dengan laporan yang anda perlukan. Anda juga bisa susun tabel sejumlah data yang ingin ditampilkan.
Kemudian silahkan coba jalankan dengan memanggil nama file paging.php. Tampilan hasilnya terlihat seperti gambar diatas.
Silahkan download sourcecode laporan php dengan sistem paging
Selamat mencoba,

 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | free samples without surveys