Kamis, 06 Juni 2013

Simpan Edit Hapus Data dengan PDO (PHP PDO MySQL)

PDO (PHP Data Objects) adalah php extension untuk mengakses database, sama seperti mysql_query atau mysql_fetch_array. Saat ini fungsi seperti mysql_query dan mysql_fetch_array sudah di-deprecated dan akan segera dihapus. Oleh karena itu kita perlu segera beralih menggunakan PDO atau MySQLi untuk menyimpan, edit atau hapus data. PDO bisa dipakai untuk mengakses beberapa database berbeda, sedangkan MySQLi hanya untuk database mysql. Jika saat ini kita menggunakan database MySQL dan di kemudian hari berganti menggunakan database PostgreSQL maka kita tidak perlu lagi mengubah kode yang sudah dibuat.

Membuat Koneksi ke Database dengan PDO

Sebelumnya kita membuat koneksi ke database menggunakan fungsi mysql_connect seperti:

  1. $host = "localhost";
  2. $user = "root";
  3. $password = "";
  4. $database_name = "test";
  5. mysql_connect($host, $user, $password);
  6. mysql_select_db($database_name);
Menggunakan PDO juga cukup mudah dan hampir mirip, seperti:
  1. $host = "localhost";
  2. $user = "root";
  3. $password = "";
  4. $database_name = "test";
  5. $pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password);
pdo.png

Kemudian dengan PDO kita bisa menggatur error mode, mengatur bagaimana penanganan error yang terjadi. Misal throw error yang terjadi.

  1. $host = "localhost";
  2. $user = "root";
  3. $password = "";
  4. $database_name = "test";
  5. $pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
  6. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
  7. ));

Menyimpan Data dengan PDO

Misalkan kita punya sebuah tabel dengan nama siswa dengan struktur seperti:
Nama Field Tipe Data Keterangan
nis varchar(20) Nomor Induk siswa, Primary Key
nama varchar(50)
jenis_kelamin char(1)
tgl_lahir date

Sebelumnya kita menggunakan mysql_query untuk menyimpan data seperti:

  1. <?php
  2. $host = "localhost";
  3. $user = "root";
  4. $password = "";
  5. $database_name = "test";
  6. mysql_connect($host, $user, $password);
  7. mysql_select_db($database_name);
  8. $query = "insert into siswa (nis,nama,jenis_kelamin,tgl_lahir) values ('001','Budi', 'L','1987-06-01')";
  9. hasil = mysql_query($query);
  10. if($hasil){
  11. echo "Data siswa telah disimpan";
  12. }else{
  13. echo "Error! gagal menyimpan data siswa:".mysql_error();
  14. }


Menggunakan PDO menjadi sedikit berbeda, seperti:

  1. <?php
  2. $host = "localhost";
  3. $user = "root";
  4. $password = "";
  5. $database_name = "test";
  6. $pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
  7. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
  8. ));
  9. try{
  10. $query = $pdo->prepare("insert into siswa (nis,nama,jenis_kelamin,tgl_lahir)
  11. values (:nis,:nama, :jenis_kelamin,:tgl_lahir)");
  12. $dataSiswa = array(
  13. ':nis' => '001',
  14. ':nama' => 'Budi',
  15. ':jenis_kelamin' => 'L',
  16. ':tgl_lahir' => '1987-06-01'
  17. );
  18. $query->execute($dataSiswa);
  19. echo "Data siswa telah disimpan";
  20. }catch(PDOException $e){
  21. echo "Error! gagal menyimpan data siswa:".$e->getMessage();
  22. }

Menampilkan data dengan PDO

Menampilkan data menggunakan PDO hampir sama dengan mysql_fetch_array. Sebelumnya kita menggunakan mysql_fetch_array untuk menampilkan data seperti:

  1. <?php
  2. $host = "localhost";
  3. $user = "root";
  4. $password = "";
  5. $database_name = "test";
  6. mysql_connect($host, $user, $password);
  7. mysql_select_db($database_name);
  8. $query = mysql_query("select * from siswa");
  9. ?>
  10. <table>
  11. <tr>
  12. <td>Nis</td>
  13. <td>Nama</td>
  14. <td>Jenis Kelamin</td>
  15. <td>TGL Lahir</td>
  16. </tr>
  17. <?php while($siswa = mysql_fetch_array($query)){?>
  18. <tr>
  19. <td><?php echo $siswa['nis']?></td>
  20. <td><?php echo $siswa['nama']?></td>
  21. <td><?php echo $siswa['jenis_kelamin']?></td>
  22. <td><?php echo $siswa['tgl_lahir']?></td>
  23. </tr>
  24. <?php }?>
  25. </table>


Jika menggunakan PDO akan menjadi

  1. <?php
  2. $host = "localhost";
  3. $user = "root";
  4. $password = "";
  5. $database_name = "test";
  6. $pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
  7. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
  8. ));
  9. $query = $pdo->prepare("select * from siswa");
  10. $query->execute();
  11. ?>
  12. <table>
  13. <tr>
  14. <td>Nis</td>
  15. <td>Nama</td>
  16. <td>Jenis Kelamin</td>
  17. <td>TGL Lahir</td>
  18. </tr>
  19. <?php while($siswa = $query->fetch()){?>
  20. <tr>
  21. <td><?php echo $siswa['nis']?></td>
  22. <td><?php echo $siswa['nama']?></td>
  23. <td><?php echo $siswa['jenis_kelamin']?></td>
  24. <td><?php echo $siswa['tgl_lahir']?></td>
  25. </tr>
  26. <?php }?>
  27. </table>

Mengedit Data dengan PDO

Mengedit data menggunakan PDO hampir mirip dengan cara menyimpan data di atas. Menggunakan mysql_query untuk mengedit data akan seperti:

  1. <?php
  2. $host = "localhost";
  3. $user = "root";
  4. $password = "";
  5. $database_name = "test";
  6. mysql_connect($host, $user, $password);
  7. mysql_select_db($database_name);
  8. $query = "update siswa set nama = 'Budi Setio',jenis_kelamin = 'L',tgl_lahir='1988-06-01' where nis='001'";
  9. hasil = mysql_query($query);
  10. if($hasil){
  11. echo "Data siswa telah diupdate";
  12. }else{
  13. echo "Error! gagal mengedit data siswa:".mysql_error();
  14. }

sedangkan menggunakan PDO akan menjadi:

  1. <?php
  2. $host = "localhost";
  3. $user = "root";
  4. $password = "";
  5. $database_name = "test";
  6. $pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
  7. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
  8. ));
  9. try{
  10. $query = $pdo->prepare("update siswa set nama = :nama, jenis_kelamin = :jenis_kelamin,
  11. tgl_lahir = :tgl_lahir where nis = :nis");
  12. $data = array(
  13. ':nama' => 'Budi Setio',
  14. ':jenis_kelamin' => 'L',
  15. ':tgl_lahir' => '1988-06-01',
  16. ':nis' => '001'
  17. );
  18. $query->execute($data);
  19. echo "Data siswa telah diupdate";
  20. }catch(PDOException $e){
  21. echo "Error! gagal mengedit data siswa:".$e->getMessage();
  22. }

Hapus Data dengan PDO

Mengapus data dengan PDO kurang lebih sama seperti edit data tapi lebih sederhana. Jika menggunakan mysql_query akan seperti:

  1. <?php
  2. $host = "localhost";
  3. $user = "root";
  4. $password = "";
  5. $database_name = "test";
  6. mysql_connect($host, $user, $password);
  7. mysql_select_db($database_name);
  8. $nis = "001";
  9. $hasil = mysql_query("delete from siswa where nis='".$nis."'");
  10. if($hasil){
  11. echo "Data siswa sudah dihapus";
  12. }else{
  13. echo "Gagal menghapus data siswa:".mysql_error();
  14. }

Sedangkan jika menggunakan PDO akan menjadi:

  1. <?php
  2. $host = "localhost";
  3. $user = "root";
  4. $password = "";
  5. $database_name = "test";
  6. $pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
  7. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
  8. ));
  9. try{
  10. $query = $pdo->prepare("delete from siswa where nis = :nis");
  11. $query->execute(array(
  12. ':nis' => '001'
  13. ));
  14. echo "Data siswa sudah dihapus";
  15. }catch(PDOException $e){
  16. echo "Gagal menghapus data siswa:".$e->getMessage();
  17. }

Keuntungan Menggunakan PDO

Beberapa manfaat yang dapat diperoleh dari menggunakan PDO. Pertama PDO membantu mencegah SQL injection, PDO secara otomatis akan mengquote inputan user. Kedua PDO bisa digunakan untuk mengakses beberapa database berbeda. Jika hari ini kita menggunakan database MySQL, pada saat berganti database ke PostgreSQL maka tidak perlu lagi mengubah kode yang sudah dibuat. Yang ketiga PDO sudah mendukung database transaction. Yang keempat PDO lebih cepat bila dibandingkan dengan menggunakan fungsi mysql_query.  


Sumber

Minggu, 28 April 2013

DOWNLOAD MASTER SAP IDES 7.20 DEMO VERSION

Ingin belajar SAP tapi tidak punya IDES nya...???
Kami Menyediakan IDES. 7.20 Demo version...??? 

untuk belajar....,?? 
jika tertarik  sms aja ke 081231596009 atau inbox fb (dikirim via POS) berikut screenshotnya..







Rabu, 24 April 2013

PHP direct printing to DOT MATRIX printer

Direct printing is still the mainstay for print-scoring affair, especially for programs / POS applications. Because this application requires speed in doing print document .

Sewaktu bermigrasi ke pemrograman  berbasis Web yang paling saya takutkan adalah mendapat project yang mengharuskan  mencetak dalam bentuk STRUK. ternyata benar saya mendapat project  program SPP di salah satu sekolah yang mengharuskan mencetak kedalam struk. Awalnya saya membuatnya dengan Fpdf tetapi ternyata hasil print  jadi kacau dan tidak bisa dibaca.
dan  akhirnya bisa juga mencetak  langung ke printer dari scrip PHP.Ada beberapa tahan supaya kita bisa cetak langsung ke printer. 
1. Sharing dahulu printernya
    misal nama printer LX-300 kemudian sharing dengan nama EPSONLX.
2. Catat IP Address komputer yang terhubung ke printer 
3. Buat perintah seperti dibawah ini  dan simpan di web server misal dengan nama cetak.php:

<?php $tmpdir = sys_get_temp_dir(); # ambil direktori temporary untuk simpan file. $file = tempnam($tmpdir, 'ctk'); # nama file temporary yang akan dicetak $handle = fopen($file, 'w'); $condensed = Chr(27) . Chr(33) . Chr(4); $bold1 = Chr(27) . Chr(69); $bold0 = Chr(27) . Chr(70); $initialized = chr(27).chr(64); $condensed1 = chr(15); $condensed0 = chr(18); $Data = $initialized; $Data .= $condensed1; $Data .= "==========================\n"; $Data .= "| ".$bold1."COBA CETAK".$bold0." |\n"; $Data .= "==========================\n"; $Data .= "INI AKAN DI CETAK\n"; $Data .= "INI AKAN DI CETAK\n"; $Data .= "INI AKAN DI CETAK\n"; $Data .= "INI AKAN DI CETAK\n"; $Data .= "INI AKAN DI CETAK\n"; $Data .= "We Love PHP Indonesia\n"; $Data .= "--------------------------\n"; fwrite($handle, $Data); fclose($handle); copy($file, "//192.168.1.1/EPSONLX"); # Lakukan cetak unlink($file); ?>

4. Coba panggil file php dari browser, maka printer akan langsung mencetak.dan berhenti  ketika script selesai di cetak. Hal ini berbeda jika kita mengunakan pdf yang  akan terus  menggulung kertas  sampai satu lembar.
KETERANGAN PROGRAM:
- mula-mula membuat file temporary
- mengisi file dangan $data.
- copy $data ke alamat printer yang di sharing untuk di cetak

Kamis, 11 April 2013

DROPDOWN DENGAN CSS

Pertama kita harus buat struktur HTML untuk menu CSS . dengan menggunakan HTML5 untuk membuat menu dan tag  <nav> sebagai elemen , kemudian tambahkan link navigasi utama dalam daftar menu sederhana.

Struktur HTML

Buat HTML dan simpan dengan nama Index.html

<html>
<head>
<title>Coba Menu by Jazuli</title>
<link rel="stylesheet" type="text/css" href="style.css" >
</head>
<body>
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Kursus</a>
<ul>
<li><a href="#">Photoshop</a></li>
 <li><a href="#">Illustrator</a></li>
<li><a href="#">Web Design</a>
 <ul>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Artikel</a>
<ul>
<li><a href="#">Web Design</a></li>
<li><a href="#">Pengalaman</a></li>
</ul>
</li>
<li><a href="#">Contac Us</a></li><li><a href="#"></a></li>
</ul>
</nav>
</body>
</html>

Tampilan sebelum dibuat css.



CSS Style

Selanjutnya buat css nya , simpan dengan nama style.css

nav ul ul {
display: none;
}

nav ul li:hover > ul {
display: block;
}


nav ul {
background: #efefef; 
background: linear-gradient(top, #efefef 0%, #bbbbbb 100%);  
background: -moz-linear-gradient(top, #efefef 0%, #bbbbbb 100%); 
background: -webkit-linear-gradient(top, #efefef 0%,#bbbbbb 100%); 
box-shadow: 0px 0px 9px rgba(0,0,0,0.15);
padding: 0 20px;
border-radius: 10px;  
list-style: none;
position: relative;
display: inline-table;
}
nav ul:after {
content: ""; clear: both; display: block;
}



nav ul li {
float: left;
}
nav ul li:hover {
background: #4b545f;
background: linear-gradient(top, #4f5964 0%, #5f6975 40%);
background: -moz-linear-gradient(top, #4f5964 0%, #5f6975 40%);
background: -webkit-linear-gradient(top, #4f5964 0%,#5f6975 40%);
}
nav ul li:hover a {
color: #fff;
}
nav ul li a {
display: block; padding: 25px 40px;
color: #757575; text-decoration: none;
}



nav ul ul {
background: #5f6975; border-radius: 0px; padding: 0;
position: absolute; top: 100%;
}
nav ul ul li {
float: none; 
border-top: 1px solid #6b727c;
border-bottom: 1px solid #575f6a;
position: relative;
}
nav ul ul li a {
padding: 15px 40px;
color: #fff;
}
nav ul ul li a:hover {
background: #4b545f;
}
nav ul ul ul {
position: absolute; left: 100%; top:0;
}


Tampilan setelah selesai..
Untuk merubah warna dan ukuran silahkan di edit di css nya.

Lihat DEMO Download Source

Sabtu, 23 Maret 2013

Belajar Konsep OOP Java Inheritance

Java adalah bahasa pemrograman yang lagi naik daun, kepopulerannya sudah melampui bahasa C.
Hal itu terjadi karena java memiliki beberapa kelebihan
  • aplikasi yang dibuat dengan mengunakan java dapat dijalankan di berbagai OS yang didalamnya sudah terdapat Java Virtual Machine (JVM). Bahasa kerennya Write Once Run Any WhereMendukung pemrograman berorientasi object (Fully support OOP)
  • Banyak referensi-referensi untuk belajar java, termasuk juga komunitas developer java diinternet
  • Banyak contoh program atau pun library yang siap pakai dan dapat digabungkan dengan program yang kita buat
  • Gratis / Free
Nah sekarang sudah tertarik belum belajar java ?
Pernah berfikir untuk bisa membuat aplikasi yang dapat berjalan di handphone / blackberry. Kalau mau yah harus belajar java.
Oke, sekarang kita mulai membahas konsep object oriented menggunakan java. Dalam pemrograman berorientasi object, kita harus memandang segala sesuatu sebagai object.
Berbagai benda disekitar kita adalah object seperti meja, kuri, rumah dan lainnya.
Kenalan dengan object dan class
Ada pertanyaan nih, kita kan harus memandang segala suatu sebagai object. Bagaimana caranya kita memindah pemikiran object didunia nyata menjadi object didunia sofware khususnya pemrograman java ?
Sekarang mari kita ambil contoh object burung
Sekarang mari kita perhatkan, burung itu punya nama, mata, kaki, sayap, warna, jenis. Burung juga dapat terbang, berkicau dan berjalan. Mata, kaki sayap dan warna dalam dunia pemrograman disebut juga atribut atau properties. Terbang, berkicau dan berjalan dalam dunia pemrograman disebut jugabehaviour atau method.
class adalah cetakan, template, prototype dari object, sedangkan object adalah instance dari kelas. Satu kelas dapat mempunyai object lebih dari satu atau banyak.
Bingung yah, nggak usah bingung. Ibaratkan saja class itu adalah cetakan kue dan object itu adalah kue dari cetakan tersebut.
Satu cetakan kue menghasilkan banyak kue
Selanjutnya mari kita lanjutkan ke pemrograman javanya.
Untuk membuat sebuah class dengan java sangatlah mudah, cukup gunakan
public class nama_class { }
class biasnya terdiri dari beberapa attribut dan method
Sekarang mari kita buat class Burung.
01public class Burung {
02    String nama; //atribut nama
03    String jenis; //atribut jenis
04    String warna; //atribut warna
05    String sayap; //atribut sayap
06 
07    //method terbang
08    public void terbang(){
09        this.sayap = "mengepak";
10        System.out.println("Burung "+this.nama+" Sedang Terbang");
11    }
12    //method tidur
13    public void tidur(){
14        this.sayap = "diam";
15        System.out.println("Burung "+this.nama+" Sedang Tidur");
16    }
17}
Masih bingung apa itu attribute dan method ?
Attribute adalah Berbagai variable yang mengitari class, dengan nilai datanya bisa ditentukan di object. nama, warna, sayap, dan jenis adalah atribute dari class Burung
Method ethod adalah implementasi dari bagaimana bekerjanya sebuah class.terbang dan tidur adalah method atau behaviour dari class Burung
Untuk membuat object baru dari class Burung tersebut kita harus menginstantiate class Burung. Untuk menginstantiate sebuah class gunakan keyword new
Sekarang mari program untuk membuat object dari class Burung.
01public class BurungBeraksi {
02 
03    public static void main(String[] args){
04        Burung burungnuri = new Burung();//membuat object burungnuri dari class Burung
05        burungnuri.nama = "Nuri"//memanggil attribut nama pada object burungnuri dan memberi nilai
06        burungnuri.warna = "Merah";
07        System.out.println("Burung "+burungnuri.nama+" warnanya "+burungnuri.warna);
08        //memangil method terbang object burungnuri
09        burungnuri.terbang();
10        System.out.println("Sayapnya "+burungnuri.sayap);
11        burungnuri.tidur();
12        System.out.println("Sayapnya "+burungnuri.sayap);
13        System.out.println("");
14 
15        Burung burungmerpati = new Burung();//membuat object burungmerpati dari class Burung
16        burungmerpati.nama = "Merpati";
17        burungmerpati.warna = "Putih";//memanggil attribut warna pada object burungmerpati dan memberi nilai
18        System.out.println("Burung "+burungmerpati.nama+" warnanya "+burungmerpati.warna);
19        //memangil method terbang object burungmerpati
20        burungmerpati.terbang();
21        System.out.println("Sayapnya "+burungmerpati.sayap);
22        burungmerpati.tidur();
23        System.out.println("Sayapnya "+burungmerpati.sayap);
24    }
25 
26}
Jika class BurungBeraksi di run maka hasilnya :
Burung Nuri warnanya Merah
Burung Nuri Sedang Terbang
Sayapnya mengepak
Burung Nuri Sedang Tidur
Sayapnya diam
Burung Merpati warnanya Putih
Burung Merpati Sedang Terbang
Sayapnya mengepak
Burung Merpati Sedang Tidur
Sayapnya diam
Inheritance
Object Oriented Program memiliki beberapa karakteristik, yang akan kita bahas disini adalah inheritance atau pewarisan.
inheritance adalah pewarisan yang artinya sebuah class dapat mewarisi atribut dan metho dari class lain, sebagai contoh dalam dunia nyata adalah Class Burung menurunkan sifat dan kemampuannya kepada class Bebek. Class Burung sebagai superclass dan mewariskan atribut juga methodnya kepada class Bebek sebagai subclass. Berikut ini gambarannya.
Berikut contoh implementasinya dalam java
Buat Class dengan nama Bebek yang mewarisi class Burung gunakan keyowd extends
1public class Bebek extends Burung{
2 
3    String kaki;
4 
5    public void berenang(){
6        System.out.println("Bebek berenang menggunakan kakinya yang berselaput");
7    }
8 
9}
Untuk membuktikannya mari bahwa class bebek mewarisi attribut dan method class burung kita buat class BebekBeraksi
01public class BebekBeraksi {
02 
03    public static void main (String[] args){
04        Bebek bebekku = new Bebek(); //membuat object bebekku dari class bebek
05        bebekku.nama = "Donald Duck"//terbukti object bebekku mewarisi attribut nama dari class Burung
06        bebekku.warna = "Coklat";
07        System.out.println("Bebek ini bernama "+bebekku.nama+" dan warnanya "+bebekku.warna);
08        bebekku.tidur(); //terbukti object bebekku mewarisi method tidur nama dari class Burung
09        bebekku.kaki ="berselaput"//memanggil object kaki dan menset nilainya
10        bebekku.berenang();//memanggil method berenang object bebekku
11    }
12 
13}
Jika class BebekBeraksi dirun hasilnya
Bebek ini bernama Donald Duck dan warnanya Coklat
Burung Donald Duck Sedang Tidur
Bebek berenang menggunakan kakinya yang berselaput
Terbuktikan class bebek mewarisi class Burung.
Melihat hasil diatas ada kalimat yang aneh. Yaitu “Burung Donald Duck Sedang Tidur” classnya bebek kok hasilnya burung itu karena yang dipanggil adalah method tidur yang diwarisi dari class burung.
Untuk memperbaikinya kita bisa mengoveride method tidur tersebut. Tambahkan method tidur pada class Bebek, sehingga bentuk programnya menjadi seperti ini.
01public class Bebek extends Burung{
02 
03    String kaki;
04 
05    public void berenang(){
06        System.out.println("Bebek berenang menggunakan kakinya yang berselaput");
07    }
08 
09    public void tidur(){
10        System.out.println("Bebek "+this.nama+" Sedang Tidur");
11    }
12 
13}
Run kembali class BebekBeraksi, maka sekarang hasilnya adalah
Bebek ini bernama Donald Duck dan warnanya Coklat
Bebek Donald Duck Sedang Tidur
Bebek berenang menggunakan kakinya yang berselaput
Sudah tidak ada kalimat yang janggal dan terbukti bahwa method di superclass dapat dioveride oleh subclassnya.