Share

Minggu, 09 September 2012

Piramida Perulangan dengan PHP

Assalamu'alaikum.... :D kali ini kita akan memanfaatkan perulangan untuk membentuk Piramida dengan PHP. Contohnya seperti ini :

VIEW DEMO

Sekarang tahap pengerjaan project. Buat file baru dengan nama Piramid.php , isi dengan coding berikut :

<html>
<head>
<title>
PHP > Perulangan piramida
</title>
</head>
<style>
body{
margin: 0;
background-image:-moz-repeating-linear-gradient(-45deg, blue , white, blue 4px);
background-attachment: fixed;
}
td,th{
padding: 15px;
}
#f_megacont{

height: 100%;
margin: 0;
}
#f_cont{
background: rgba(255,255,255,.8);
background: -moz-linear-gradient(top center,rgba(200,200,200,.8) 70%,rgba(255,255,255,1));
position: relative;
text-align: center;
padding:40px;
width: 80%;
margin:auto;
top:10%;
border-radius: 20px;
border: #000 double 4px;
box-shadow: 0 0 10px #333;
}
</style>
<body>
<div id="f_megacont">
<div id="f_cont">
<?php
//piramid 1 
echo "<table align='center' border=1><tr><th>
Piramid 1<br>(size font dan color berubah mengecil)
</th><td>";
$teks = "Hello syarif";
$warna = "";
for($a=1;$a<=5;$a++){
switch ($a){
case 1:$warna = "red";break;
case 2:$warna = "green";break;
case 3:$warna = "blue";break;
case 4:$warna = "cyan";break;
case 5:$warna = "magenta";break;
default :break;
}
echo "<h$a><font color=$warna>$teks</font></h$a>";
}
echo "</td><th>Piramid 2</br>(size font, warna dan bintang berubah membesar)</br>
<form method='post' action='".$_SERVER['PHP_SELF']."'>
<label for='jumlah'>inputkan tinggi piramid2 (max 10)</label></br>
<input id='jumlah' name='jumlah'/><input type='submit' value='oke'>
</form></th><td align=center>";
//piramid 2
if(isset($_POST['jumlah'])){
if($_POST['jumlah']<=10){
$jumlah = $_POST['jumlah'];
}
else{
echo '<script>alert("tampaknya jumlah terlalu tinggi")</script>';
$jumlah=5;
}
}
else{
$jumlah=5;
}
for($f=1;$f<=$jumlah;$f++){
switch ($f){
case 1:$warna = "red";break;
case 2:$warna = "green";break;
case 3:$warna = "blue";break;
case 4:$warna = "cyan";break;
case 5:$warna = "magenta";break;
default :$warna = "rgb(".($f*10).",".($f*$f).",".($f).")";
}
echo "<font style=font-size:".($f*10)."px;color:$warna>";
for($f2=1;$f2<=$f;$f2++){
echo "*";
}
echo "</font></br>";
}
?>
</div></div>
</body>
</html>
Bagaimana cara kerjanya ?? Berikut Penjelasan singkatnya ...
Untuk yang "Hello  Syarif", php akan melakukan perulangan sebanyak 5 kali. Tulisan "Hello Syarif" akan diapit tag <H1> sampai <H5> sesuai dengan perulangan ke-a (Misalkan perulangan ke-3 maka akan diapit H3). Karena tag H1 font-nya paling besar dan akan semakin mengecil sampai H6 kalo nggak H7 maka akan tampak seperti piramid. Sedangkan untuk perubahan warna kita gunakan percabangan switch(case) yakni script berikut :
switch ($a){
case 1:$warna = "red";break;
case 2:$warna = "green";break;
case 3:$warna = "blue";break;
case 4:$warna = "cyan";break;
case 5:$warna = "magenta";break;
default :break;
}
Perulangan pertama akan memilih warna merah, kedua hijau, ketiga biru, keempat cyan dan kelima magenta.

Untuk bintangnya, dilakukan perulangan sebanyak $jumlah kali sesuai dengan inputan. Jika user tidak melakukan inputan maka perulangan sebanyak 5 kali. Disini terdapat perulangan didalam perulangan. Perulangan terluar yakni yang akan membuat baris yang dipisahkan dengan enter (tag <br>). Ditiap baris dilakukan perulangan untuk menulis karakter bintang(*) sebanyak $f kali, dengan $f adalah baris keberapa ?. Misalkan untuk membuat baris ke-3 maka dilakukan perulangan untuk menulis bintang(*) sebanyak tiga kali baru kemudian dipisahkan dengan enter(<br>).

Ini adalah screenshotnya :


Berikut variasi lain untuk bintang yang digunakan untuk membentuk JajaranGenjang alias wajik.
<html>
<head>
<title>
PHP > Perulangan Bintang JajaranGenjang
</title>
<style>
body{
margin: 0;background-image:-moz-repeating-linear-gradient(-45deg, blue , white, blue 4px);
background-attachment: fixed;
}
td,th{
padding: 15px;
}
#f_megacont{

height: 100%;
margin: 0;
}
#f_cont{
background: rgba(255,255,255,.8);
background: -moz-linear-gradient(top center,rgba(200,200,200,.8) 70%,rgba(255,255,255,1));
position: relative;
text-align: center;
padding:40px;
width: 50%;
margin:auto;
top:10%;
border-radius: 20px;
border: #000 double 4px;
box-shadow: 0 0 10px #333;
}
</style>
</head>
<body>
<div id="f_megacont">
<div id="f_cont">
<?php
//piramid 1 
echo "<table align='center' border=1><tr>
<th>Wajik (Jajaran genjang)</br>(size font, warna dan bintang berubah<br/>membesar kemudian mengecil)</br></br>
<form method='post' action='".$_SERVER['PHP_SELF']."'>
<label for='jumlah'>inputkan tinggi JajaranGenjang,<br/> jika genap maka otomatis ditambah 1</label></br>
<input id='jumlah' name='jumlah'/><input type='submit' value='oke'>
</form></th><td align=center>";
//piramid 2
if(isset($_POST['jumlah'])){
$jumlah = $_POST['jumlah'];
}
else{
$jumlah=10;
}
if($jumlah%2==0){
$jumlah++;
}
for($f=1;$f<=$jumlah/2;$f++){
switch ($f){
case 1:$warna = "red";break;
case 2:$warna = "green";break;
case 3:$warna = "blue";break;
case 4:$warna = "cyan";break;
case 5:$warna = "magenta";break;
default :$warna = "rgb(".($f*10).",".($f*$f).",".($f).")";
}
echo "<font style=font-size:".($f*10)."px;color:$warna>";
for($f2=1;$f2<=$f;$f2++){
echo "*";
}
echo "</font></br>";
}
$jumlah++;
for($f=$jumlah/2;$f>=1;$f--){
switch ($f){
case 1:$warna = "red";break;
case 2:$warna = "green";break;
case 3:$warna = "blue";break;
case 4:$warna = "cyan";break;
case 5:$warna = "magenta";break;
default :$warna = "rgb(".($f*10).",".($f*$f).",".($f).")";
}
echo "<font style=font-size:".($f*10)."px;color:$warna>";
for($f2=1;$f2<=$f;$f2++){
echo "*";
}
echo "</font></br>";
}
?>
</div>
</div>
</body>
</html>

Demonya bisa dilihat disini :

VIEW DEMO

Screenshotnya :

Reaksi:

3 komentar:

Andreas BKH Reply

rif??
kok jek keno yo awakmu gae domen uni.me?
aku rodok angel i... ngcreate anyar manneh domen'e... opo'o?

Syarif Negsatt Moklet (SNM) Reply

aku entas nggawe.i wingi song....
lancar lancar ae...
tapi sing sayange iku web ku sing di byethost ke suspend gak iso baleknoe :(

Andreas BKH Reply

SBB, web seng endi rif? Di suspend enek opo mange? coba cek email seng kanggo daftar dek akun byethostmu seng disuspend... mesti ana pemberitahuane.. Opo awakmu nyalai T.O.S'e byethost?

coba lek ana email'e ko byethost/opo gak onok email'e ndang konfirmasi dek CS'e byethost... biasane via YM, opo email...

Posting Komentar

Share lewat :
Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Bluehost Coupons | Modified by Syarif Moklet