Saturday, 6 February 2016

Beberapa Perubahan pada PHP 7 PART 1



      1. Perubahan pada list()
Pengisian variabel pada list tidak lagi terbalik
Pengisian value ke list() sekarang menurut urutan value yang diisikan, tidak lagi terbalik seperti pada PHP 5. Umumnya, ini akan berpengaruh ketika list digunakan dengan operator array [].
<?php
list($a[], $a[], $a[]) = [123];
var_dump($a);
?>

Output dari kode diatas pada PHP 5 :
array(3) {
  [0]=>
  int(3)
  [1]=>
  int(2)
  [2]=>
  int(1)
}
Output pada PHP 7 :
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}
Namun, direkomendasikan agar tidak terlalu bergantung urutan pada urutan list(), karena bisa jadi masih bisa berubah lagi kedepannya.

Pengisian list() kosong dihilangkan
Pembuatan list() tidak boleh kosong. Kode seperti dibawah ini sudah tidak diperbolehkan :
<?php
list() = $a;
list(,,) = 
$a;
list(
$x, list(), $y) = $a;
?>
list() tidak bisa memecah string
list() sekarang tidak bisa lagi memecah variabel string. Untuk memecah string dapat menggunakan str_split().
2.      Perubahan pada foreach
foreach by-value menggunakan salinan dari array
Ketika digunakan pada mode default by-value, foreach sekarang menggunakan salinan dari array yang diiterasikan. Artinya perubahan pada array sumber ketika iterasi berlangsung tidak akan mempengaruhi data yang diiterasikan.

foreach by-reference ditambahkan behaviour baru
Ketika iterasi menggunakan by-reference, foreach sekarang dapat mendeteksi perubahan pada array sumber ketika iterasi berlangsung. Contohnya, menambahkan data kesebuah array ketika iterasi berlangsung sekarang juga akan menghasilkan data yang ditambahkan ketika iterasi :
<?php
$array 
= [0];
foreach (
$array as &$val) {
    
var_dump($val);
    
$array[1] = 1;
}
?>
Output pada PHP 5 :
int(0)
Output pada PHP 7 :
int(0)
int(1)

3.      Perubahan pada integer handling
Literal bilangan oktal
Sebelumnya, literal oktal yang mengandung angka yang tidak valid akan dihilangkan. Contoh 0128, maka yang diambil 012. Sekarang literal oktal yang tidak valid akan menyebabkan error.

Perubahan pada Division By Zero
Sebelumnya, ketika 0 digunakan sebagai pembagi untuk operator pembagi (/) atau modulus (%), sebuah E_WARNING akan tampil dan akan me-return false. Sekarang, operator pembagi me-return sebuah float, antara +INF,-INF, atau NAN. Pada operator modulus E_WARNING telah dihilangkan dan akan melempar sebuah exception DevisionByZeroError.
<?php
var_dump
(3/0);
var_dump(0/0);
var_dump(0%0);
?>

Output pada PHP 5 :
Warning: Division by zero in %s on line %d
bool(false)
 
Warning: Division by zero in %s on line %d
bool(false)
 
Warning: Division by zero in %s on line %d
bool(false)
 
Output pada PHP 7 :
Warning: Division by zero in %s on line %d
float(INF)
 
Warning: Division by zero in %s on line %d
float(NAN)
 
PHP Fatal error:  Uncaught DivisionByZeroError: Modulo by zero in %s line %d
 
4.      Fungsi tidak boleh memiliki parameter ganda dengan nama yang sama
Sekarang tidak diperbolehkan lagi untuk mendefinisikan dua atau lebih fungsi dengan nama yang sama. Contoh dibawah akan men-trigger E_COMPILE_ERROR :
<?php
function foo($a$b$unused$unused) {
    
//
}
?>

5.      Swicth tidak boleh memiliki blok default ganda
Tidak dimungkinkan lagi untuk mendefinisikan dua tau lebih blok default pada sebuah statement switch. Contoh dibawah akan menghasilkan sebuah E_COMPILE_ERROR :
<?php
switch (1) {
    default:
    break;
    default:
    break;
}
?>

6.      Karakter # untuk komentar dihilangkan pada file INI
Dukungan untuk membuat komentas dengan karakter # pada file INI telah dihilangkan. Untuk itu dapat menggunakan semi-kolon (;) atau titik koma. Perubahan ini diterapkan pada php.ini.

Sunday, 17 January 2016

Monday, 2 June 2014

Aplikasi PHP, MySQL, AJAX : Sistem Inventaris Barang

Aplikasi PHP, MySQL, AJAX : Sistem Inventaris Barang
Screen Shot 1
Aplikasi PHP, MySQL, AJAX : Sistem Inventaris Barang
Screen Shot 2

Aplikasi PHP, MySQL, AJAX : Sistem Inventaris Barang
Screen Shot 3

Aplikasi PHP, MySQL, AJAX : Sistem Inventaris Barang
Screen Shot 4



Saya kali ini akan men-share aplikasi inventaris sederhana untuk mencatat atau memanajemen barang. Aplikasi ini saya buat dengan menggunakan PHP, AJAX, dan MySQL. Mohon maaf mungkin kurang menarik, maklum baru belajar, hehehe :-)

NOTE : Aplikasi ini dibangun dengan XAMPP versi 1.8, didalamnya masih menggunakan library mysql,
jadi jika dijalankan di PHP versi 7 akan error karena sudah tidak didukung lagi (baca perubahan di PHP 7).
Jika ada error yang berhubungan dengan URL not found atau file not found, kemungkinan itu error karena HTACCESS-nya, jadi bisa googling untuk mengaktifkan mod rewrite di webserver atau baca artikel saya Mengenal HTACCESS, Tutorial HTACCESS, Tips HTACCESS.
Download di link dibawah ini
Download 1
Download 2
Download 3
Download 1
Download 2 via 4shared
Download 3 via Tusfiles
Download 4

Password : 1nv3nt4r1s

Harap laporkan jika link mati :-)

Tuesday, 8 April 2014

Membuat Rating Menggunakan PHP, AJAX dan My SQL

Halo sobat ketemu lagi di blog saya. Kali ini saya akan membehas mengenai cara membuat rating sederhana dengan menggunakan PHP, Ajax, dan My SQL. Silahkan disimak baik-baik ya . . . J
Pertama-tama kita siapkan yang kita butuhkan. Untuk rating biasanya menggunakan simbol bintang, maka sobat cari gambar bintang. Untuk gambar ini sobat cari 3 jenis, yang pertama untuk menampilkan jumlah rating, kemudian yang kedua untuk pemberian rating dan yang terakhir untuk pemberian rating ketika di-hover.
Yang kedua buat database dengan struktur tabel sebagai berikut :
CREATE DATABASE IF NOT EXISTS `aplikasi_rating`;
USE `aplikasi_rating`;

CREATE TABLE IF NOT EXISTS `rating` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nama` varchar(50) NOT NULL,
  `rating` int(11) NOT NULL,
  `voter` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

Setelah itu buat file baru di editor sobat, beri nama rating.php atau terserah sobat. Kemudian masukkan script berikut :

<html>
<head>
<script type="text/javascript">
var xmlhttp;
function buatRq(){
            if(window.ActiveXObject)
            {
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else
            {
                        xmlhttp = new XMLHttpRequest();
            }
}
function tampilKan(){
            buatRq();
            xmlhttp.onreadystatechange = tanganiIni;
            xmlhttp.open("GET","rating.php",true);
            xmlhttp.send(null);
}
function beriRating(i,j){
            xmlhttp.onreadystatechange = tanganiIni;
            xmlhttp.open("GET","rating.php?rating="+i+"&id="+j,true);
            xmlhttp.send(null);
            alert("Terima Kasih");
}
function tanganiIni(){
            if(xmlhttp.readyState == 4){
                        if(xmlhttp.status == 200){
                                    document.getElementById("hasil").innerHTML = xmlhttp.responseText;
                                    setTimeout('tampilKan()',1000);
                        }
            }
}
function diatasRating(i,x){
            var l;
            for(l=1;l<=i;l++)
            {
                        document.getElementById(x+"_"+l).src = "ratingisi.png";
            }
}
function diatasRatin(i,x){
            var l;
            for(l=1;l<=i;l++)
            {
                        document.getElementById(x+"_"+l).src = "rating.png";
            }
}
</script>
<body onload="tampilKan();">
<div id="hasil"></div>
</body>
</html>


Script diatas befungsi untuk membuat request data ke server. Sekarang kita buat file untuk menampung request datanya. Scriptnya sebagai berikut :
<style>
.ratink{
width : 335px;
border : 1px solid black;
border-radius : 10px;
margin-bottom : 10px;
padding : 10px;
box-shadow : 0 0 4px 0;
}
.berirating{
overflow : hidden;
}
.tampil_rating{
overflow : hidden;
</style>

<?php
mysql_connect("localhost","root","");
mysql_select_db("aplikasi_rating");

if(isset($_GET['rating']) && isset($_GET['id']))
{
            $rating = $_GET['rating'];
            $id       = $_GET['id'];
            mysql_query("update rating set rating = rating + ".$rating.",voter = voter + 1 where id = '".$id."'");
}
$q = mysql_query("select * from rating");

while($d=mysql_fetch_array($q))
{
           
           
            $id       = $d['id'];
            $nama = $d['nama'];
            $rating = $d['rating'];
            $voter = $d['voter'];
            if($rating == 0 || $voter == 0)
            {
                        $rate = 0;
            }
            else
            {
                        $rata = $rating/$voter;
                        $rate = round($rata);               
            }
           
            echo "<div class='ratink'>";
            echo "<div class='tampil_rating'>";
            echo "<b>".$nama."</b> mempunyai rating : ".$rate." ";
            if($rate == 1)
            {
                        echo "<img src='rating.jpg' width='25' />";
            }
            else if($rate == 2)
            {
                        for($i=1;$i<=2;$i++)
                                    echo "<img src='rating.jpg' width='25' />";
            }
            else if($rate == 3)
            {
                        for($i=1;$i<=3;$i++)
                                    echo "<img src='rating.jpg' width='25' />";
            }
            else if($rate == 4)
            {
                        for($i=1;$i<=4;$i++)
                                    echo "<img src='rating.jpg' width='25' />";
            }
            else if($rate == 5)
            {
                        for($i=1;$i<=5;$i++)
                                    echo "<img src='rating.jpg' width='25' />";
            }
            echo "</div>";
           
           
            echo "<div class='berirating'>";
            echo "Beri rating : ";
            for($i=1;$i<=5;$i++)
            {
                        ?>
                        <img id="<?php echo $id."_".$i; ?>" src="rating.png" width="25" onmouseover="diatasRating('<?php echo $i; ?>','<?php echo $id; ?>');" onmouseout="diatasRatin('<?php echo $i; ?>','<?php echo $id; ?>');" onclick="beriRating('<?php echo $i; ?>','<?php echo $id; ?>');" />
                        <?php
            }
            echo "</div></div>";
}
?>
Script diatas digunakan untuk handler data. Beri nama file diatas rating.php. Kemudian untuk gambarnya silahkan sobat tempatkan satu folder dengan dua script diatas. Untuk menjalankannya tinggal jalankan script rating.html. Hasilnya :
Membuat Rating Menggunakan PHP, AJAX dan My SQL
Hasil


Oke, sekian artikel saya kali ini dan semoga bermanfaat bagi sobat semua. Tunggu artikel-artikel selanjutnya ya . . . J

Monday, 30 December 2013

Mengurutkan Angka dengan PHP


Halo sobat semua, apa kabar nih??
Lagi musim hujan gini biasanya banyak yang sakit??Hehehe. Tapi saya yakin kalau sobat semua sehat  . . . Oke langsung saja, kali ini saya akan memberikan artikel tentang algoritma mengurutkan angka, dan saya implementasikan ke dalam sebuah program PHP sederhana. Memang sudah ada fungsi untuk mengurutkan bilangan dalam PHP, namun tidak ada salahnya juga kita belajar agar menambah wawasan kita. Bisa juga sobat implementasikan ke bahasa pemrograman yang lain.
Yang pertama kita tentukan angkanya dahulu.Kemudian kita gunakan perulangan untuk mengecek setiap baris pada deretan angka tersebut. Karena deretan angka lebih dari satu, maka kita perlu membuat dua perulangan untuk mengeceknya, yaitu perulangan  yang pertama untuk pindah baris sesudah perulangan yang kedua mengecek deretan angka-angka, kemudian yangkedua untuk mengecek angka-angka pada deretan angka dan kemudian menukar urutannya. Jumlah perulangan ditentukan berdasarkan jumlah angka yang akan diurutkan. Nah, pada for yang kedua itulah proses untuk mengurutkan angkanya.Pada perulangan yang kedua yang di cek ada dua urutan angka.Angka akan diperbandingkan apakah angka yang pertama lebih besar dari angka yang kedua. Jika tidak maka angka akan dilewati. Namun apabila ternyata angka yang pertama lebih besar, maka angka akan ditukar (ini tergantung sobat, apakah mengurutkan secara ascending atau descending, saya memakai urutan dari yang kecil ke besar).
Untuk implementasinya silahkan lihat gambar dibawah

Pada program diatas saya memakai array untuk menghandel dalam penyimpanan angkanya. Kemudian ada fungsi dari PHP yaitu count(), yang berguna untuk menghitung jumlah isi dari array. Nah, selanjutnya adalah bagian yang menukar urutan angka.Algoritmanya kedua angka dijumlahkan terlebih dahulu, kemudian mengubah (menukar) isi dari variabel array dengan mengurangkan jumlah tadi dengan masing-masing angka itu sendiri.Hasilnya bisa sobat coba sendiri.
                Oke mungkin itu yang bisa saya sharing, untuk kritik ataupun saran ataupun pertanyaan dapat sobat tulis dikolom komentar. Semoga bermanfaat . . . (^_^)

Monday, 18 November 2013

5 Tips HTACCESS untuk Modifikasi URL

5 Tips HTACCESS untuk Modifikasi URL



Halo sobat semua, gimana kabar?? Hehehe
Saya baik kok, (siapa yg nanya ya??) wk.k.k.k.k.k ^_^
Untuk yang belum baca posting saya tentang htaccess, silahkan baca agar lebih paham.
Oke, saya kali ini akan memberi 5 tips berkaitan dengan htaccess untuk memodifikasi URL. Langsung saja ini :
1.     Mengganti “berita.php?id=12” menjadi “berita-12.html”
Sebenarnya ini hampir sama dengan postingan saya yang lalu, tapi sedikit beda jadi buat referensi dan wawasan saja buat sobat. Sintaks di htaccess :

RewriteEngine On
RewriteRule ^berita-([0-9]+)\.html$ berita.php?id=$1

2.     Mengganti “berita.php?id=12” menjadi “berita/teknologi-canggih/12.html”
Para ahli SEO sangat menganjurkan untuk menampilkan keyword utama di URL. Pada contoh ini kita akan menampilkan jenis berita di URL. Sintaksnya sebagai berikut :

RewriteEngine On
RewriteRule ^berita/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ berita.php?id=$2

dari sintaks diatas yang diambil adalah kelompok pola yang kedua.

3.     Redirect atau mengalihkan URL yang bukan www ke URL www
Jika Anda pernah mengunjungi Yahoo!, maka Anda akan mengerti. Ketika Anda mengetikkan yahoo.com di browser, maka akan dialihkan ke www.yahoo.com. Sintaksnya sebagai berikut :

RewriteEngine On
RewriteCond %{HTTP_HOST} ^situs-sobat\.com$
RewriteRule (.*)
http://www.situs-sobat.com/$1 [R=301,L]

4.     Rewrite “situs-sobat.com/anggota.php?username=sobat” menjadi “situs-sobat.com/sobat”
Jika sobat semua membuka halaman profil facebook, maka URL akan menunjukkan https://www.facebook.com/nama-profil. Jika sobat ingin situsnya seperti itu, maka ketik kode berikut di file htaccess

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ anggota.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ anggota.php?username=$1

5.     Redirect atau mengalihkan domain ke subfolder dalam web
Jika sobat ingin mengembangkan web sobat dan mengalihkannya sementara ke subfolder yang ada dalam root folder web, maka gunakan kode berikut di file htaccess sobat :

RewriteEngine On
RewriteCond %{HTTP_HOST} ^situs-sobat\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.
situs-sobat \.com$
RewriteCond %{REQUEST_URI} !^/
subfolder-sobat/
RewriteRule (.*) /
subfolder-sobat /$1
Demikian posting saya kali ini, semoga bermanfaat bagi sobat semua. Sampai jumpa dipostingan selanjutnya . . . ^_^