• LINK
    • Dengan bangga mendukung kegiatan idsecconf 2009
    • Kajian.Net

CARI MP3 KAJIAN, EBOOK, TUTORIAL PEMROGRAMAN PHP, MATERI KULIAH DATABASE, DLL

Loading

November 6, 2009

Class Grafik Kacung - Sample Grafik Dengan PHP

Didalam Katagori: Uncategorized, PHP

Kemarin habis bikin Class buat nge-generate Grafik dalam bentuk gambar dengan PHP, Grafik ini hanya melapporkan dua item (Rata-Rata dan Total), item ini bisa diubah sesuai kebutuhan, cuma ganti caption-nya doang :D ,

<?php
   
    /*
      Author : Didin Nurdin Ahmadi
                  <didinonpqcms{ a t }gmail{ d o t }com>
      date   : 2009-11-2 3:44:13 AM     
    */
   
    class Grafik_Kacung {
   
        private $imageTemp;
        private $Font;
        private $Width;
        private $Height;
        private $ScaleX;
        private $ScaleY;
        private $XY;
       
        function __construct(){
          $this -> Scale = 30;
          $this -> XY = array();
        }
       
        public function setFont($font){
          $this -> Font = $font;
        }
       
        public function setData($data){
          $this -> Data = $data;
        }
       
        public function setCanvas($height, $width,$file = null){
          $this -> Height = $height;
          $this -> Width  = $width; 
          $this -> imageTemp = imagecreate( $this -> Width + 150, $this -> Height + 80 );
          imagecolorallocate($this -> imageTemp, 255, 255, 244);
          $this -> setColor(); 
          $this -> drawLineXY();
          $this -> drawData();
          //header(’Content-type: image/png’);
          imagepng($this -> imageTemp, $file);
        }
       
        private function drawLineXY(){
          imageline($this -> imageTemp, 20, 5, 20, $this -> Height, $this -> black);
          imageline($this -> imageTemp, 20, $this -> Height, $this -> Width, $this -> Height, $this -> black);
          $xOrdinate = array(0,10,20,30,40,50,60);
          $tempH = $this -> Height;
          $this -> ScaleY = round($tempH / count($xOrdinate));
          foreach($xOrdinate as $v){
            $i++;
            $text = " ";
            if(empty($v)){
              $text = null;
            }
            imagettftext($this -> imageTemp, 12, 0, 17, $tempH ,$this -> black, $this -> Font, $text);
            if($i>1) imageline($this -> imageTemp, 25, $tempH, $this -> Width, $tempH, $this -> grey);
            imagettftext($this -> imageTemp, 10, 0, 3, $tempH ,$this -> black, $this -> Font, $v);
            $tempH-= $this -> ScaleY;
          }
         
          $tempW = 50;
          $this -> ScaleX = ($this -> Width  / count($this -> Data));
          foreach($this -> Data as $k => $v){
            imagettftext($this -> imageTemp, 10, 0 , $tempW ,$this -> Height + 20 ,$this -> black, $this -> Font, $k);
            imageline($this -> imageTemp, $tempW, $this -> Height - 10, $tempW, 10, $this -> grey);
            imagettftext($this -> imageTemp, 9, 0 , $tempW - 30 ,$this -> Height + 40 , $this -> black, $this -> Font, wordwrap($v[’nama’], 20, "\n"));
            $tempW += $this -> ScaleX;
          }
         
        }
       
        private function drawData(){
          $tempW = 50;
          $keyInserted = array();
          foreach($this -> Data as $k => $v){
            $i++;
            $pOrd = $this -> scaleConverter($v[’total’]);
            $rOrd = $this -> scaleConverter($v[’rata’]);
            imagettftext($this -> imageTemp, 10, 0 , $tempW , $pOrd ,$this -> red, $this -> Font, " " . $v[’total’]);
            imagettftext($this -> imageTemp, 10, 0 , $tempW , $rOrd ,$this -> blue, $this -> Font, " " . $v[’rata’] );
            $this -> createSign($tempW, $pOrd);                       
            $this -> createSign($tempW, $rOrd, $this -> blue);
            $a = next($this -> Data);
            if($i < count($this -> Data)){           
              imageline($this -> imageTemp, $tempW, $pOrd, $tempW + $this -> ScaleX, $this -> scaleConverter($a[’total’]), $this -> red);
              imageline($this -> imageTemp, $tempW, $rOrd, $tempW + $this -> ScaleX, $this -> scaleConverter($a[’rata’]), $this -> blue);
            }
            $tempW += $this -> ScaleX;           
          }
         
          $this -> createNotes();
        }
       
        public function setColor(){
          $this -> violet   = imagecolorallocate($this->imageTemp, 0x00, 0x00, 0xCD);
          $this -> white    = imagecolorallocate($this->imageTemp, 0xFF, 0xFF, 0xFF);
          $this -> red      = imagecolorallocate($this->imageTemp, 0xFF, 0x66, 0x66);
          $this -> grey     = imagecolorallocate($this->imageTemp, 0xCF, 0xCF, 0xCF);
          $this -> yellow   = imagecolorallocate($this->imageTemp, 0xFF, 0xFF, 0x99);
          $this -> black    = imagecolorallocate($this->imageTemp, 0x00, 0x00, 0x00);
          $this -> green    = imagecolorallocate($this->imageTemp, 0x66, 0xCC, 0x66);
          $this -> blue     = imagecolorallocate($this->imageTemp, 0x33, 0x99, 0xFF);
        }
       
        private function scaleConverter($nilai){
          $max = $this -> Height;
          $result = $this -> Height - ($nilai * ($this -> ScaleY / 10));
          return $result;
        }
       
        private function createSign($x,$y, $color = null){
          if($color == null){
            imagefilledellipse($this -> imageTemp, $x, $y, 5, 6, $this -> red);
          }else{
            imagefilledellipse($this -> imageTemp, $x, $y, 5, 6, $color);
          }
        }
       
        private function createNotes(){
          $this -> createSign( $this -> Width + 30 , 35);
          imagettftext($this -> imageTemp, 10, 0 ,$this -> Width + 40, 40 , $this -> red, $this -> Font, "TOTAL");         
          $this -> createSign( $this -> Width + 30 , 55, $this -> blue);
          imagettftext($this -> imageTemp, 10, 0 ,$this -> Width + 40, 60 , $this -> blue, $this -> Font, "RATA-RATA");
        }
     
   
   
    } 

?>

cara pake nya bisa seperti ini

<?

$sampelData = array(
      ‘1′ => array(
        ‘nama’  => ‘TO Pertama’,
        ‘total’ => 60,
        ‘rata’ => 56
      ),
      ‘2′ => array(
        ‘nama’  => ‘TO Kedua’,
        ‘total’ => 50,
        ‘rata’ => 40
      ),
      ‘3′ => array(
        ‘nama’  => ‘TO Ketiga’,
        ‘total’ => 43,
        ‘rata’ => 60
      ),
      ‘4′ => array(
        ‘nama’  => ‘TO Keempat’,
        ‘total’ => 12,
        ‘rata’ => 40,
      ),
      ‘5′ => array(
        ‘nama’  => ‘TO Kelima’,
        ‘total’ => 59,
        ‘rata’ => 40
      ),
      ‘6′ => array(
        ‘nama’  => ‘TO Keenam’,
        ‘total’ => 7,
        ‘rata’ => 10
      )
      ,
      ‘7′ => array(
        ‘total’ => 13,
        ‘rata’ => 34
      ),
      ‘8′ => array(
        ‘total’ => 4,
        ‘rata’ => 21
      ) ,
      ‘9′ => array(
        ‘total’ => 0,
        ‘rata’ => 40
      ),
      ‘10′ => array(
        ‘total’ => 30,
        ‘rata’ => 40
      )                                                           
    );
   
   
    $graph = new Grafik_Kacung;
    $graph -> setFont(’bookos.ttf’);
    $graph -> setData($sampelData);
    $graph -> setCanvas(350,550);

?>

 Kurang lebih hasilnya seperti ini:

Sample Grafik Kacung

Semoga Bermanfaat

Comments (1)

August 25, 2009

Integrasi foto picasa dengan web

Didalam Katagori: PHP

Mungkin anda sudah familiar dengan aplikasi Picasa, merupakan salah satu aplikasi google tempat sharing foto, kurang lebih fungsinya sama dengan flickr.

Kebetulan ada salah satu kerjaan saya  yang kudu integrasi picasa dengan website. Setelah mencoba browsing ternyata picasa sendiri telah menyediakan API function untuk developer yang ingin mengintegrasikan aplikasi picasa dengan aplikasi lain. namun sayangnya kebanyakan harus memakai library Zend (Zend Framework). Hal ini jelas sangat merepotkan bagi saya, karena harus melakukan instalasi terlebih dahulu. terlebih saya hanya butuh untuk menampilkan foto-foto saja, tidak lebih (menambah foto, edit, atau delete)

Jadi kalo pake zend kayaknya terlalu berlebihan. namun untungnya saya menemukan solusi lain yang lebih simple dan praktis. kebetulan di picasa sendiri tersedia fitur RSS.

Jadi saya bisa memanfaatkan salah satu function di PHP 5 untuk memparse XML. function tersebut adalah simplexml_load_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>Listing albums</title>
<style>
body {
font-family: Verdana;
}
</style>
</head>
<body>
<h1>Album Listing</h2>
<?php
$userid = ‘user@gmail.com’; // username picasa anda

$feedURL = "http://picasaweb.google.com/data/feed/api/user/$userid?kind=album";

// memparse alamat xml
$sxml = simplexml_load_file($feedURL);

echo "<ul>";
foreach ($sxml->entry as $entry) {
$title = $entry->title;
$gphoto = $entry->children(’http://schemas.google.com/photos/2007′);
$numphotos = $gphoto->numphotos;
echo "<li>$title - $numphotos Foto</li>\n";
}
echo "</ul>";
?>

</body>
</html>

 

Referensi :
http://www.ibm.com/developerworks/xml/library/x-picasalbum/index.html

 

Comments (0)

August 23, 2009

Mengenal Netbeans Sebagai PHP Editor

Didalam Katagori: PHP, Software

Selama ini saya selalu menggunakan text editor  (pspad editor) untuk berhubungan dengan PHP, Javascript, CSS ataupun sejenisnya. hingga tak sengaja sewaktu chat dengan temen mengenai editor, keluarlah kata "Netbeans" di Messenger saya .. he…

Netbeans?? apakah itu?

secara umum netbeans itu adalah tools atau aplikasi IDE (Integrated Development Environment) yang berguna bagi software developer untuk mendevelop aplikasi yang didevelopnya (he..he..). Netbeans mendukung bermacam2 bahasa pemrograman seperti java, C#/C++, python, ruby, grovy, dll. termasuk juga PHP :)

Untuk menginstall netbeans dibutuhkan software JDK (Java Development Kit) yang bisa didownload di http://www.java.com/en/download/index.jsp, aplikasi ini berbasis java jadi membutuhkan beberapa aplikasi seperti JDK tadi.

Memang Netbeans ini bisa membebani hardisk karena ukuran file yang lumayan gede, namun hal itu sesuai dengan feature  yang disediakan di Netbeans.

HTML, Javascript dan CSS telah diintegrasikan didalamnnya sehingga proses debuging dan profiling akan terasa lebih mudah dan gak ribet. fitur autocomplete layaknya di software veteran DreamWeaver pun tak kalah menarik, bukan hanya function bawaan PHP saja, setiap class, function buatan sendir, bahkan variable terintegrasi dalam fitur autocomplete ini.

Debugger Javascript pun tak kalah hebatnya dengan Aplikasi Firebugs (debugger javascript + HTML via addon mozilla). bahkan disini validator HTMLnya pun juga ada… 

Screenshoot autocomplete 

Screenshoot  Netbeans IDE PHP 

klik untuk memperbesar

 untuk info lengkapnya bisa kunjungi di http://www.netbeans.org/features/php/index.html

Comments (0)

August 21, 2009

Membuat Menu Dinamis (Parenting Menu) dengan PHP

Didalam Katagori: PHP

Bismillah…

ini sebagai arsip saja, 

misi dari tulisan ini adalah membuat menu parenting unlimited dengan PHP + (MySQL sebagai database), artinya menu tersebut mempunyai banyak submenu tanpa batas. 

jadi kalo digambarkan kurang lebih seperti ini

Gambar menu parenting unlimited

 

Nah, contoh menu diatas , pada sub menu Indonesia1 masih bisa ditambah lagi beberapa sub menu bahkan hingga tak terbatas!! gimana keren kan!

Saya asumsikan bahwa kita telah mempunyai database latihan, dengan menggunakan database ini kita harus membuat sebuah table saya contohkan disini adalah table menu:

Struktur Database Menu Parenting Unlimited 

Nah setelah membuat table menu, selanjutnya kita mulai koding, tentunya dengan PHP.

saya contohkan script ini dismpan sebagai file index.php

<?php
  $db_host = ‘localhost’;
  $db_user = ‘root’;
  $db_pass = ‘root’;
  $db_name = ‘latihan’;
 
  $link = mysql_connect($db_host,$db_user,$db_pass) or die("Koneksi error");
  $dblink = mysql_select_db($db_name,$link) or die("Pilih database error");
 
 
  function show($id = ‘’){
    $where = ‘’;
    if(strlen($id) > 0) $where = " WHERE parent=’$id’";
    $sql = "SELECT * FROM menu $where"; 
    $res = mysql_query($sql);
    $num = mysql_num_rows($res);
   
    while($row = mysql_fetch_assoc($res)){
    if($i == 0) echo "\n<ul>";
      $i++;
      echo "\n\t\t<li>$row[nama]";
      echo $i;
      show($row[’id’]);     
      echo "</li>";
    if($i == $num)echo "\n</ul>";      
    }
   
  }
 
  show("0");

 ?>

 Setelah langkah ini dilakukan, selanjutnya kita harus mengisi table menu tadi untuk melihat hasilnya apakah berjalan dengan baik atau tidak.

kalo lagi males, kebetulan saya sudah siapkan sql buat ngisi table tersebut, tinggal copas saja dibawah:

 

INSERT INTO `menu` VALUES (1, 0, ‘Makanan’);
INSERT INTO `menu` VALUES (2, 0, ‘Minuman’);
INSERT INTO `menu` VALUES (3, 1, ‘Baso’);
INSERT INTO `menu` VALUES (4, 1, ‘Mi ayam’);
INSERT INTO `menu` VALUES (5, 1, ‘Pizza’);
INSERT INTO `menu` VALUES (6, 1, ‘Pecel’);
INSERT INTO `menu` VALUES (7, 2, ‘Jus Rmbutan’);
INSERT INTO `menu` VALUES (8, 2, ‘Es campur’);
INSERT INTO `menu` VALUES (9, 2, ‘Es Doger’);
INSERT INTO `menu` VALUES (10, 2, ‘Es Kenyot’);
INSERT INTO `menu` VALUES (11, 5, ‘Rasa ayam’);
INSERT INTO `menu` VALUES (12, 5, ‘Rasa Jamur’);
INSERT INTO `menu` VALUES (13, 11, ‘Kampung’);
INSERT INTO `menu` VALUES (14, 11, ‘Negeri’);
INSERT INTO `menu` VALUES (15, 14, ‘Indonesia’);
INSERT INTO `menu` VALUES (16, 14, ‘Arab’);

 

Sekarang kita bisa melihat hasil dengan membuka browser kemudianketikan alamat dimana anda menginstall script tadi :)

 

Semoga bermanfaat

Comments (0)

August 10, 2009

Cara mengkonversi Bilangan Desimal Ke Biner

Didalam Katagori: PHP

Oke pelajaran pertama. sebagai arsip pribadi sekaligus biar gak lupa, coz ini penting banget buat programmng, pada tulisan kali ini saya akan menjelaskan bagaimana cara mengkonversi bilangan desimal ke biner.

Oke sekedar pengenalan bilangan biner itu berbasis 2, dan hanya terdiri dari 2 character yakni 0 dan 1 (nol dan satu). nol berarti off sedangkan satu berarti on. jadi biner itu mungkin kalo boleh saya katakan bilangan yang basisnya paling rendah dan lebih dekat dengan bahasa mesin.

sebagai tambahan informasi, semua bahasa pemrograman yang sering kita gunakan seperti VB, Delphi, C++, PHP, Foxpro, dan sebagainya yang dengan berbagai macam syntax yang mudah dibaca pun akan di konversi ke dalam bentuk biner. Nah ketika telah berbentuk biner, baru komputer akan dapat membaca dan merespon semua perintah dalam bahasa pemrograman tersebut.

Oke langsung saja misal saya akan mengkonversi bilangan desimal/ basis 10 ke dalam bentuk biner:

DESIMAL | BINER |
10 | |

63 => cara menghitung

bilangan 63 haris dibagi 2, karena biner itu berbasis 2.

63 / 2 = 31 => sisa ========> 1
31/2 = 15 => sisa =========> 1
15/2 =7 => sisa ==========> 1
7/2 = 3 => sisa ==========> 1
3/2 = 1=> sisa ==========> 1

jadi hasilnya adalah 111111 cara membacanya dari bawah ke atas (hanya bagian yang saya tebalkan saja).

untuk membuktikan benar tidaknya perhitungan diatas, jadi sekalian saya sertakan bagaimana konversi dari biner ke desimal.

baik saya akan mengkonversi hasil biner tadi yaitu 111111, maka akan saya jabarkan menjadi seperti dibawah ini (dibaca dari kanan ke kiri/ angka 1 ujung kanan menjadi angka satu paling atas, sedangkan angka satu yang tadinya di paling kiri menjadi paling bawah ) kemudian masing-masing di pangkat kan berurutan dari 0 hingga jumlah karakter biner tersebut. untuk lebih detailnya silahkan pahami langkah dibawah ini:

1 x 2^0 = 1
1 x 2^1 = 2
1 x 2^2 = 4
1 x 2^3 = 8
1 x 2^4 = 16
1 x 2^5 = 32
————– +
63

kemudian totalkan semua hasil dari exponen tersebut dan ternyata ketemu 63 :-)

so. gimana.. apakah anda faham?? semoga saja faham oke….. kalo mau tanya lewat komen aja yah…

Semoga bermanfaat

Comments (1)

May 11, 2009

How to upload video or image with bigger size with HTACCESS

Didalam Katagori: Uncategorized, PHP

uploading images is commonly used in website. so how with uploading video?? we know that video maybe the size is bigger than image basicly. I say the example is the video is 1 MB minimum size. 1 MB is big for image in size. but not in video.

basicly and default in PHP uploading is limited in size. example basicly upload file is limited at 8 MB.  if you want to upload more file with size more than 8 MB you can’t do this. except you must do some change in this problem. some way to resolving this problem is with adding new file named is .htaccess.

 

.htaccess is configuration file to configure server system without chnage php.ini, it means we can sett apache configuration trouhg this file only.

to allow we can upload more bigger size. please do the following step above:

  • create file named .htaccess  ini base directory site
  • write this

php_value upload_max_filesize 300M
php_value post_max_size 300M
php_value memory_limit 300M

  • Save to htaccess file’s
  • this configuration is means, maximum file size is 300MB either with post variable and memory limitation.
good luck with this emoticon

 

 

Comments (0)

January 20, 2009

Konsep PHP Object Oriented

Didalam Katagori: PHP

Sebenarnya ini konsep yang saya temukan sendiri secara tidak sengaja ketika membuat sebuah program. pemrograman berbasis object atau OOP (Object oriented programming) bagi saya adalah jenis pemrograman yang keren, apa lagi kalo di PHP, saya lebih suka karena teratur dan maintenable. meskipun sebenarnya Java adalah lebih OOP dibanding PHP, karena boleh dibilang java menggunakan 100% OOP Programming, sedang PHP bisa iya bisa tidak tergantung programmernya.

sebelumnya kita harus tahu, kapan kita membutuhkan OOP programming dan kapan tidak. OOP Programming atau lebih mudahnya kalau di PHP biasanya berbentuk class, itu berbeda dengan function. misalkan:

contoh function

function makan_buah($apa) {

     echo "SAYA MAKAN BUAH $apa";

}

function minum_air($apa) {

     echo "SAYA MINUM $apa";

}

Penggunaann function diatas

 <?php

        makan_buah("Apel");

        echo "<br>" ;

        minum_air("Es Kelapa Muda") ;
        echo "<br>";
        makan_buah("Anggur");
        echo "<br>";
        minum_air("Air putih");

 ?>

 script php diatas akan menghasikan out put:

SAYA MAKAN BUAH Apel
SAYA MINUM Es Kelapa Muda
SAYA MAKAN BUAH Anggur
SAYA MINUM Air putih

coba bandingkan dengan class

Class Makan{

      var $buah;
      var $air;

      function atur_buah($buah){

           $this->buah = $buah;

      }

      function atur_air($air){

            $this->air = $air;

      }
      function makan_buah(){

            echo ‘SAYA MAKAN BUAH’. $this->buah;

      }

      function minum_air(){

           echo ‘SAYA MINUM’.  $this->air;

       }

}

Pemanggilnya

<?php

         $oBuah = new Makan;

         $oBuah->atur_buah("Apel");
         $oBuah->atur_air("Es Degan");
         $oBuah->makan_buah();
         echo ‘<br>’;
         $oBuah->minum_air();

?>

 

ketika kita menggunakan function, maka variable akan dipanggil berulang2, meskipun variabel itu sama, sedangkan dalam penggunakan class kita cukup mengatur variabel diawal script saja,  dengan catatan bahwa variabel tersebut sama isinya, sedangkan kalu berbeda tentunya harus diset ulang.

Jadi inilah konsep yang saya temukan. yaitu konsep yang membedakan antara kegunaan function dengan class yang ternyata berbeda. karena seblumnya saya juga bingung kenapa teman-teman saya menggunakan class, padahal kalaupun mereka menggunakan function saja itu sudah cukup.

Comments (2)