Tampilkan postingan dengan label perulangan di PHP. Tampilkan semua postingan
Tampilkan postingan dengan label perulangan di PHP. Tampilkan semua postingan

Senin, 31 Agustus 2009

Membuat Kalender

Download Contoh Kode

Berikut ini adalah kode yang pernah saya buat. Walaupun tidak pernah saya berikan dalam kuliah, kode ini menggunakan prinsip - prinsip perulangan,pengecekan,class dan function.

Contoh penggunaannya adalah seperti ini :



<?php
include("kalender.class.php");
$kalender = new kalender();
echo $kalender->setActionPage("http://test/?mod=sched");
echo "<center>";
echo $kalender->printMyMonth(4,2010);
echo "</center>";
echo $kalender->printYear(2010);
?>

Hasilnya akan seperti ini :




Dan berikut ini adalah class Kalendernya. Simpan dengan nama kalender.class.php




class kalender
{
/*

Kalender dengan Fungsi Hari Besar
satiri.a@gmail.com
2006


Membutuhkan Kelas untuk koneksi ke MySQL
db.class.php
table.class.php



*/


var $tabel,$action;


function setTable($table)
{
$this->tabel=$table;
}

function setActionPage($action){
$this->action=$action;
}

function daySize($bulan,$tahun)
{
// tentuin jumlah hari dalam 1 bulan
// check yang paling besar dulu
$ok = checkdate($bulan,31,$tahun);
if($ok)
{
return 31;
}
else
{
$ok = checkdate($bulan,30,$tahun);
if($ok)
{
return 30;
}
else
{
$ok = checkdate($bulan,29,$tahun);
if($ok)
{
return 29;
}
else
{
return 28;
}
}
}

}

function printTimeOfDay($mulai,$sampai)
{
echo "<table width='100%' style='border:solid 1px;' border='1'>";
for($i=$mulai;$i<=$sampai;$i++)
{
if(($i%2)>1)
{
echo "<tr><td width='20%'>$i</td><td width='80%'> </td></tr>";
}
else
{
echo "<tr><td width='20%' bgcolor='#04a022'>$i</td><td width='80%'> </td></tr>";
}
}
echo "</table>";
}

function printShortMonth($bulan,$tahun,$shortest="no")
{
$namahari = array("Min","Sen","Sel","Rab","Kam","Jum","Sab");
$namabulan = array("Jan","Feb","Mar","Apr","Mei","Jun","Jul",
"Agt","Sep","Okt","Nop","Des");

$namahari2 = array("M","S","S","R","K","J","S");

if($shortest=="no")
{
$hasil = $this->printMyMonth($bulan,$tahun,$namabulan,$namahari);
}else
{
$hasil = $this->printMyMonth($bulan,$tahun,$namabulan,$namahari2);
}
return $hasil;
}

function printYear($tahun)
{
$c=1;
echo "<table border='0' align='center'>";
for($i=1;$i<=12;$i++)
{

//echo $c."<br>";
if($c==1)
{
echo "<tr>";
//echo "<td>$c</td>";
echo "<td valign='top'>".$this->printShortMonth($i,$tahun,"yes")."</td>";
}
else
{
if($c==3)
{
//echo "<td>$c</td>";
echo "<td valign='top'>".$this->printShortMonth($i,$tahun,"yes")."</td>";
echo "</tr>";
$c=0;
}
else
{
//echo "<td>$c</td>";
echo "<td valign='top'>".$this->printShortMonth($i,$tahun,"yes")."</td>";
}
}
$c++;
}
echo "</table>";
}

function printMyMonth($bulan,$tahun,$namabulan="",$namahari="")
{
$jhari = $this->daySize($bulan,$tahun);

if($namahari=="")
{
$namahari = array("Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu");
}

if($namabulan=="")
{
$namabulan = array("Januari","Februari","Maret","April","Mei",
"Juni","Juli","Agustus","September","Oktober",
"Nopember","Desember");
}


$c=1;
$chari=0;
for($i=1;$i<=$jhari;$i++)
{
$mydate = getdate(mktime(0,0,0,$bulan,$i,$tahun));
$cdate = getdate();


if($mydate["wday"]==6)
{
$minggu[$chari][$mydate["wday"]]=$i;
$chari++;
}
else
{
$minggu[$chari][$mydate["wday"]]=$i;
}




}


$hasil="";
$hasil.="<table style='border:solid 0px' cellspacing='1' width='80%'>";
$hasil.="<tr><td Colspan='7' class='headerkalender' align='center'><h3>".$namabulan[$bulan-1]." ".$tahun."</h3></td></tr>";
$hasil.="<tr>";

for($i=0;$i<=6;$i++)
{
$hasil.="<td style='border:solid 1px #DEDEDE' align='center'>".$namahari[$i]."</td>";
}
$hasil.="</tr>";

$jharikerja=0;
$jharilewat=0;
foreach($minggu as $seminggu)
{
$hasil.="<tr>";
for($i=0;$i<=6;$i++)
{

$tgl = $tahun."-".$bulan."-".$seminggu[$i];
$hasibesar = "";
//$haribesar = $this->getHaribesar($tgl);

//print_r($haribesar);
if($i==0 | $i==6)
{
$warna="#FF0000";
}
else
{
if($haribesar!="")
{
$warna="#FF0000";
$deskripsi = $haribesar[0];
//echo $deskripsi[0];
}
else
{
$deskripsi="";
$warna = "#0000FF";

if($seminggu[$i]!=null)
{
$jharikerja++;
if($seminggu[$i]<=$cdate["mday"])
{
$jharilewat++;
}
}
}
}


if($seminggu[$i]==$cdate["mday"])
{

$hasil.="<td align='center' bgcolor='#DEDEDE' style='border:solid 1px'>".
"<a href='".$this->action."&bulan=$bulan&tanggal=$seminggu[$i]&tahun=$tahun' title='".addslashes($deskripsi[0])."'>".
$seminggu[$i]."</a></td>";
}else
{
$hasil.="<td align='center' style='border:solid 1px #DEDEDE'>".
"<a href='".$this->action."&bulan=$bulan&tanggal=$seminggu[$i]&tahun=$tahun' title='".addslashes($deskripsi[0])."'>".
"<font color='$warna'>".$seminggu[$i]."</font></a></td>";

}
}
$hasil.="</tr>";
$haribesar="";
$deskripsi="";

}

$hasil.="<tr><td colspan='7'>Jumlah Hari Kerja : $jharikerja</td></tr>";
$hasil.="<tr><td colspan='7'>Sisa hari kerja : ".($jharikerja-$jharilewat)."</td></tr>";
$hasil.="</table>";

return $hasil;
}


function getHariBesar($tanggal)
{
// hasil berupa array
$sql = "select type,deskripsi,tanggal from haribesar where tanggal='".$tanggal."'";
$this->tabel->runQuery($sql);

$event="";
$tglevent="";
$c=0;
while($row=mysql_fetch_row($this->tabel->rs))
{
$event[$c]=$row[1];
$tglevent[$c]=$row[2];
$c++;
}

if($c>=1)
{
return array($event,$tglevent);
}else
{
return "";
}
}


function getAdminList($batas=20,$mulai=0,$return="no",$app)
{
$qry = "select id,type,deskripsi,tanggal ".
"from haribesar ".
"order by tanggal limit $mulai,$batas";
$this->tabel->connect();
$this->tabel->runQuery($qry);

$hasil = $hasil. "<!-- ide list --><table width=100% style='border:solid 1px #DEDEDE' border=1>";
while($row=mysql_fetch_array($this->tabel->rs))
{
$hasil = $hasil.
"<tr><td valign=top style='font-size:9pt' width='5%'>".$row[0]."</td>".
"<td valign=top style='font-size:9pt' width='10%'>".$row[3]."</td>".
"<td valign=top style='font-size:9pt' width='60%'>".$row[2]."</td>".
"<td style='font-size:9pt' size='25%' align='center'>".
"<a href='?app=".$app."&mode=setuju&id=".$row[0]."'>Setuju</a> | <a href='?app=".$app."&mode=tolak&id=".$row[0]."'>Tolak</a> |".
" <a href='?app=".$app."&mode=hapus&id=".$row[0]."'>Hapus</a> | <a href='?app=".$app."&mode=edit&id=".$row[0]."'>Edit</a> </td></tr>";
}
$hasil = $hasil. "</table><!-- ide list -->";

if($return=="no")
{
echo $hasil;
}
else
{
return $hasil;
}
}

}


Kamis, 13 Agustus 2009

Membuat Fungsi Combo Untuk menampilkan tanggal

Level : Pemula

Sebagai programmer :) , tentu akan sering berhadapan dengan pembuatan form yang membutuhkan form tanggal , misal untuk menampilkan tgl (angka 1-31) atau bulan (angka 1-12)
ataupun tahun (1970 - 2008)

Semua hal ini bisa dicapai apabila anda telah mengerti konsep perulangan dan konsep struktur combo/list itu sendiri.

Ok. untuk perulangan, anda bisa baca tulisan sebelumnya tentang perulangan. Sedangkan untuk struktur combo di html adalah sebagai berikut :


<select name="namacombo">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>



Jika kita lihat di browser maka hasilnya akan seperti gambar berikut ini :

Jika kita perhatikan pada struktur combo diatas maka akan tampak perulangan pada item

<option value="valuenya">Labelnya</option>

Nah, kira - kira pasti sudah mengerti arah pembicaraan ini ya. Betul , dengan perulangan (baik php/jsp) kita bisa membuat option yang tidak terbatas/sesuai dengan jumlah data/sesuai dengan kemauan kita

nah bagaimana kita - kira kodenya:

1. Ini adalah kode apabila kita ingin langsung mencapurkan di halaman html, dimana kode ini tidak disarankan karena tidak dapat dipakai ulang dihalaman lain yang membutuhkan :).



<select name="namacombo">
<?php
//membuat bulan 1 s.d. 12
for($i=1;$i<=12;$i++) { echo "<option value='$i'>$i</option>"; } ?> </select>



2. berikut ini adalah fungsi yang dapat digunakan ulang di setiap halaman




<?php

function combo($name, $mulai,$sampai){

$hasil = "<select name=\"$name\">";

for($i=$mulai;$i<=$sampai;$i++) { $hasil.= "<option value='$i'>$i</option>"; } $hasil.="</select>"; return $hasil; } //contoh penggunaan echo combo("tanggal",1,31); echo combo("bulan",1,12); echo combo("tahun",1990,2009); ?>


Nah ini adalah contoh penggunaannya. Semoga mengerti penggunaan perulangan dan functionnya.





Kaspersky Open Space Security

Rabu, 03 Juni 2009

PHP : Tutorial Perulangan

Perulangan di PHP ada 2 jenis , yaitu :

1. perulangan dengan for
2. perulangan dengan while


Contoh
1. Perulangan dengan For


<?php

$x=10;
$i=1;
for($i=1;$i<=$x;$i++){
echo "Baris Ke : " . $i."
";
}

?>


Bagaimana hasilnya ?

Baris Ke : 1
Baris Ke : 2
Baris Ke : 3
Baris Ke : 4
Baris Ke : 5
Baris Ke : 6
Baris Ke : 7
Baris Ke : 8
Baris Ke : 9
Baris Ke : 10

Mengapa demikian ?
Karena for($i=1;$i<=$x;$i++) --> artinya , lakukan perulangan selama nilai dari i lebih kecil dari x, kemudian tambahkan nilai i satu persatu. Jika masih bingung dengan keterangan ini, dicoba terus latihan ini dengan mengganti angka - angkanya ataupun mengganti nama variabelnya. Ingat Semakin banyak latihan semakin cepat pemahaman didapat! :)

Contoh
2. Perulangan dengan While


<?php

$x=10;
$i=1;

while($i<=$x){
echo "Baris Ke : " . $i."
";
$i++;
}

?>


Bagaimana hasilnya ?

Baris Ke : 1
Baris Ke : 2
Baris Ke : 3
Baris Ke : 4
Baris Ke : 5
Baris Ke : 6
Baris Ke : 7
Baris Ke : 8
Baris Ke : 9
Baris Ke : 10

Lho ko mirip ? , iya memang mirip tapi bedanya : perulangan for lebih bisa ditebak karena angka - angka pembentuk kondisi sudah ditetapkan dari awal, dan pertambahan atas varibel pun sudah ditetapkan.

Sedangkan while , penambahan nilai variabel berada sepenuhnya dalam kontrol while itu sendiri,
sehingga jika tidak ditambahkan baris $i++; maka while akan berjalan tanpa henti.