Kamis, 20 November 2014


 Debugging Javascript Error Dengan Firebug

Firebug adalah ekstensi untuk Firefox (sekarang include langsung pada Firefox dan Google Chrome) yang berisi sekelompok alat diagnostik agar dapat membantu kita dalam meningkatkan desain web baik secara HTML, CSS , dan JavaScript.
Melihat Error dengan Firebug
Firebug memberikan cara yang lebih mudah dan lebih berguna untuk melihat kesalahan dengan built-in console. Dengan Firebug, ketika kita memuat halaman web dengan error pada JavaScript, kita akan melihat sebuah counter di kanan atas dengan jumlah daftar kesalahan yang ditemukan. Klik ikon Firebug untuk membuka console Firebug, yang berisi daftar setiap error JavaScript. Error yang terdaftar di console Firebug hanya berisi daftar error untuk halaman yang sedang dilihat.
 
Dari gambar diatas kita bisa mengira-ira dimana letak kesalahan penulisan script kita. Terima Kasih Atas Kunjunganya dan Semoga Bermanfaat

Rabu, 20 Agustus 2014

Inner Join adalah menyeleksi seluruh baris dari setiap tabel selama isi dari tabel tersebut memiliki isi yang sama. Contohnya sebagai berikut: 
SELECT * 
FROM table1 INNER JOIN table2 
ON table1.column_name = table2.column_name;
atau
SELECT * 
FROM table1 
JOIN table2 
ON table1.column_name = table2.column_name; 


Perbedaan antara JOIN dan INNER JOIN
JOIN akan menghasilkan setiap baris dari tabel dimana primary key dari tabel pertama sama dengan primary key pada tabel lainnya. 
INNER JOIN memilih semua baris dari kedua tabel yang memiliki kecocokan data antar kolom. Inner Join menggunakan operator perbandingan untuk mencocokan baris dari dua tabel berdasarkan nilai - nilai dalam kolom yang sama dari masing-masing  tabel.
Menggunakan JOIN Clause
SELECT * FROM 
Table1 JOIN Table2 
ON Table1.column_name=Table2.column_name;
Menggunakan INNER JOIN Clause
SELECT * 
FROM Table1 INNER JOIN Table2 
ON Table1.column_name= Table2.column_name;

Rabu, 06 Agustus 2014

Ada 15 flags secara total. Flags dapat didefinisikan pada akhir aturan untuk memanipulasi Apache, sebagian besar hanya membaca jika aturan yang cocok.

.htaccess flags
.htaccess flags
Memungkinkan untuk menggunakan beberapa bendera untuk rewrite rule tunggal (Misalnya, [L, QSA]).

Senin, 04 Agustus 2014


Rewrite URL adalah salah satu bagian penting dari PHP dan sebagian besar ditemukan dalam setiap aplikasi web utama yang menggunakan PHP. Rewrite URL mempunyai dua fungsi utama:
  1. Membuat URL bersih, ramah SEO dan mudah dibaca.
  2. Menyembunyikan fungsi yang mendasari PHP sehingga akan meningkatkan keamanan internal situs.

Rewrite URL paling sering digunakan untuk masking URL yang kompleks, untuk meningkatkan SEO (Search Engine Optimization) dan membuat URL lebih mudah dibaca. Contoh penggunaanya:

  • http://localhost/coba/index.php?artikel=20
  • http://localhost/coba/tutorial-php.html

contoh Url pertama merupakan link asli sebuah halaman sebelum di rewrite, sedang yang kedua yang sudah di rewrite. Url kedua lebih mudah dibaca dan meningkatkan SEO (Search Engine Optimization) karena mengandung kata kunci. Aturan penulisannya juga menyembunyikan index.php?artikel=20 yang memiliki manfaat tidak mengekspos PHP untuk klien. Jadi itu meningkatkan keamanan website.
Sintaks RewriteRule sebagai berikut
RewriteRule Pattern Substitution [flags]
contoh implementasinya sebagai berikut:
RewriteEngine On
RewriteRule ^([0-9]{4})/([0-9]{0,2})/([^/]+)/$ /index.php?y=$1&m=$2&t=$3 [S]
RewriteRule ^error403\.php - [F]
Setiap baris disebut Instruksi. Baris pertama adalah putaran di Rewrite Mesin. Baris kedua adalah pencocokan  URL patern menggunakan regex. Baris ketiga mendeteksi jika url posting naskah dan memastikan redirect ke 403 (Forbidden Response). [S] dan [F] adalah .htaccess flags.

Selasa, 22 Juli 2014

Import CSV Data File ke MySql dengan PHP (File Upload dari PC User)

Menganggapi dari komentar saudara solikin pada Import CSV Data File ke MySql dengan PHP maka saya mencoba menata kembali script tersebut.


Pertama kita buat form upload sederhana.
<html>
<body>
<form action="proses.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html> 

Kita beri nama upload_csv.php kemudian untuk proses.php sebagai berikut:

<?php
//proses upload
$allowedExts = array("csv");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);

if (($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts)) {
  if ($_FILES["file"]["error"] > 0) {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
  } else {
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
    if (file_exists("upload/" . $_FILES["file"]["name"])) {
      echo $_FILES["file"]["name"] . " already exists. ";
    } else {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
     
 //koneksi database
$connect = mysql_connect('localhost','root','');
if (!$connect) {
die('Could not connect to MySQL: ' . mysql_error());
}
//nama database
$cid =mysql_select_db('databaseku',$connect);

//tempat file csv berada
define('CSV_PATH','C:/wamp/www/folderku/upload/');

$csv_file = CSV_PATH . $_FILES["file"]["name"];

if (($getfile = fopen($csv_file, "r")) !== FALSE) {
         $data = fgetcsv($getfile, 1000, ",");
    while (($data = fgetcsv($getfile, 1000, ",")) !== FALSE) {
       $num = count($data);
        for ($c=0; $c < $num; $c++) {
            $result = $data;
        $str = implode(",", $result);
        $slice = explode(",", $str);
       
                        $col1 = $slice[0];
                        $col2 = $slice[1];
                        $col3 = $slice[2];
// SQL Query untuk insert data
$query = "INSERT INTO data_pribadi(no,nama,alamat)
VALUES('".$col1."','".$col2."','".$col3."')";

$s=mysql_query($query, $connect );

        }
    }
}
echo "file csv berhasil di import ke database!!";
mysql_close($connect);
     
    }
  }
} else {
  echo "Invalid file";
}
?> 


Selamat Mencoba dan Terima Kasih

Kamis, 17 Juli 2014

Cara Pertama kita dapat menggunakan type number seperti pada HTML5.
<input id="numberbox" type='number' max='100'>
 script diatas hanya mendeteksi nilai yang dimasukkan lebih dari 100. Tidak berjalan pada browser yang belum support HTML5.

Alternatif lainnya menggunakan patern:
<input type='text' maxlength='2' pattern='^[0-9]$'>
Tapi masih kurang akurat karena maksimal masih 99 saja.
 
Sedangkan jika dengan jQuery Untuk Membatasi Angka Pada Input Tidak Lebih Dari 100 sebagai berikut:

$('#numberbox').keyup(function(){
  if ($(this).val() > 100){
    alert("Maksimal 100");
    $(this).val('100');
  }
});
 
Selalu gunakan validasi back-end(PHP) untuk hasil yang maksimal
Terima Kasih Atas Kunjunganya.

Kamis, 26 Juni 2014

Object Oriented Programming adalah sebuah coding style yang memungkinkan developer untuk menggabungkan fungsi / proses yang sama kedalam sebuah class sehingga dapat memudahkan dalam proses perbaikan / maintain. (sumber)

Struktur Class
Dideklarasikan dengan class diikuti dengan nama dan diakhiri dengan kurva ({}):
<?php
class MyClass
{
    // Class properties and methods go here
}
?> 
Setelah membuat class, class tersebut dapat digunakan dengan menyebutkan new class:

$obj = new MyClass;
untuk melihat isi dari class, gunakan  var_dump():

var_dump($obj);

Definisi Properti Class
Properti digunakan untuk menambahkan data didalam sebuah kelas yang hanya dapat diakses dengan objek misalnya:
<?php
class MyClass
{
    public $prop1 = "I'm a class property!";
}
$obj = new MyClass;
var_dump($obj);
?> 
Untuk membaca isi dari properti dan menampilkanya di browser, maka kodenya sebagai berikut
echo $obj->prop1;
Setelah dijalankan hasilnya "I'm a class property! ".

Definisi Methods Class
Metode adalah fungsi-kelas khusus. Tindakan individu dari obyek yang didefinisikan dalam kelas sebagai metode.
Sebagai contoh, untuk menciptakan metode yang akan mengatur dan mendapatkan nilai properti kelas $ prop1, tambahkan baris berikut berani ke kode Anda:
<?php
class MyClass
{
    public $prop1 = "I'm a class property!";
    public function setProperty($newval)
    {
        $this->prop1 = $newval; 
    }
    public function getProperty()
    {
        return $this->prop1 . "<br />";
    }
}

$obj = new MyClass;
echo $obj->prop1;
?> 
untuk mencobanya tambahkan kode berikut
echo $obj->getProperty(); // Get the property value
$obj->setProperty("I'm a new property value!"); // Set a new one
echo $obj->getProperty(); // Read it out again to show the change
sehingga menjadi
<?php 
 class MyClass
{
    public $prop1 = "I'm a class property!";

    public function setProperty($newval)
    {
        $this->prop1 = $newval;
    }

    public function getProperty()
    {
        return $this->prop1 . "<br />";
    }
}

$obj = new MyClass;
echo $obj->getProperty(); // Get the property value
$obj->setProperty("I'm a new property value!"); // Set a new one
echo $obj->getProperty(); // Read it out again to show the change
?> 
maka hasilnya
I'm a class property! 
I'm a new property value! 
Catatan : OOP memungkinkan objek untuk referensi sendiri menggunakan $this. Ketika bekerja dalam metode yang sama.

Senin, 26 Mei 2014

Contoh Membuat CRUD di PHP -MySql
Create Read Update Delete

Untuk membuat sebuah CRUD seperti diatas  pertama yang kita butuhkan adalah database dan tabelnya. Berikut contoh tabel berserta isinya.
-- ----------------------------
-- Table structure for `biodata`
-- ----------------------------
DROP TABLE IF EXISTS `biodata`;
CREATE TABLE `biodata` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `nama` varchar(50) DEFAULT NULL,
  `alamat` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of biodata
-- ----------------------------
INSERT INTO `biodata` VALUES ('1', 'Yanuar', 'Blitar');
INSERT INTO `biodata` VALUES ('2', 'Nopi', 'Surabaya');
Dari tabel diatas kita dapat membuat koneksinya setelah itu baru membuat form inputanya.

<script>
$(document).ready(function(){
    $("#batal").click(function(){
        $("#form_data").fadeOut("slow");
    })
    $("#save_data").submit(function(){
        var data = $("#save_data").serialize();
        $.ajax({
            type:"POST",
            data:"aksi=Simpan&"+data,
            url:"SimpanData.php",
            success:function(data){
                //alert(data);
                $("#refresh").click();
                $("#batal").click();
                return true;
            }
        })
        return false;
    })
})
</script>
<form id="save_data" method="post">
<table>
<tr>
    <td>Nama</td>
    <td><input type="text" name="nama" id="nama" required="required" /></td>
</tr>
<tr>
    <td>Alamat</td>
    <td><input type="text" name="alamat" id="nama" required="required"/></td>
</tr>
<tr>
    <td colspan="2"><input type="submit" value="Simpan" id="simpan" /><input type="button" id="batal" value="Batal" /></td>
</tr>
</table>
</form>

Setelah form input kemudian proses menyimpan dan akan langsung menuju ke tampilan datanya berikut script untuk view datanya.

<script>
$(document).ready(function(){
    $(".edit").click(function(){
        var id = $(this).closest("tr").attr("id");
        $.ajax({
            type:"POST",
            data:"id="+id,
            url:"EditData.php",
            success:function(data){
            $("#form_data").fadeIn("10");
            $("#form_data").html(data);
            }
        })
    })
    $(".delete").click(function(){
        var id = $(this).closest("tr").attr("id");
        var nama = $(this).closest("tr").attr("title");
        var x = confirm("Menghapus User " + nama)
        if(x){
         $.ajax({
            type:"POST",
            data:"aksi=Delete&id="+id,
            url:"SimpanData.php",
            success:function(data){
              alert("Data Berhasil Dihapus");
              $("#refresh").click();
            }
         })
        }
    })
})
</script>
<?php
include "koneksi.php";
echo "<table width='750'>
<tr>
<td>No</td>
<td>Nama</td>
<td>Alamat</td>
<td>Aksi</td>
</tr>";
$sql = mysql_query("select * from biodata order by id asc");
while ($h=mysql_fetch_array($sql))
{
    ++$no;
 echo"<tr id='$h[id]' title='$h[nama]'>
<td>$no</td>
<td>$h[nama]</td>
<td>$h[alamat]</td>
<td><input type='button' value='Edit' class='edit'/>
<input type='button' value='Delete' class='delete'/></td>
</tr>";
}
echo "</table>";
?>
Untuk proses Delete sudah termasuk pada script view. Sekarang tinggal proses Edit, Update. Untuk script Edit sebagai berikut.

<script>
$(document).ready(function(){
    $("#batal").click(function(){
        $("#form_data").fadeOut("slow");
    })
    $("#save_data").submit(function(){
        var data = $("#save_data").serialize();
        $.ajax({
            type:"POST",
            data:"aksi=Update&"+data,
            url:"SimpanData.php",
            success:function(data){
                //alert(data);
                $("#refresh").click();
                $("#batal").click();
                return true;
            }
        })
        return false;
    })
})
</script>
<?php
include "koneksi.php";
$sql = "select * from biodata where id = $_POST[id]";
$sql = mysql_query($sql);
$h = mysql_fetch_array($sql);
?>
<form id="save_data" method="post">
<input type="hidden" name="id" id="id" value="<?php echo $_POST["id"];?>" />
<table>
<tr>
<td>Nama</td>
<td><input type="text" name="nama" id="nama" required="required" value="<?php echo $h[nama];?>" /></td>
</tr>
<tr>
<td>Alamat</td>
<td><input type="text" name="alamat" id="nama" required="required" value="<?php echo $h[alamat];?>"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Update" id="update" /><input type="button" id="batal" value="Batal" /></td>
</tr>
</table>
</form>
Bagian terpenting dari semua script diatas adalah Proses Simpan, Update dan Deletenya seperti dibawah ini.

<?php
include "koneksi.php";
if($_POST["aksi"]=="Simpan"){
$nama = $_POST["nama"];
$alamat = $_POST["alamat"];
$sql = mysql_query("insert into biodata(nama,alamat) values('$nama','$alamat')");
echo "insert into biodata(nama,alamat) values('$nama','$alamat')";
}
else if($_POST["aksi"]=="Update"){
$nama = $_POST["nama"];
$alamat = $_POST["alamat"];
$sql = mysql_query("update biodata set nama = '$nama',alamat='$alamat' where id= $_POST[id]");
echo "update biodata set nama = '$nama',alamat='$alamat' where id= $_POST[id]";
}
else if($_POST["aksi"]=="Delete"){
$sql = mysql_query("delete from biodata where id= $_POST[id]");
echo "delete from biodata where id= $_POST[id]";
}
?>

Secara lengkap script diatas dapat di download pada link berikut Belajar Membuat CRUD
Sekian dulu Terima kasih atas kunjunganya, selamat mencoba dan semoga bermanfaat.

Subscribe to RSS Feed Follow me on Twitter!