Menggunakan MySQLi dengan Fungsi-Fungsi SimpleDB

 

Fungsi-fungsi PHP untuk MySQLI

Bagi yang menggunakan PHP 5 atau yang lebih lama, maka sudah terbiasa menggunakan fungsi-fungsi database mysql_* (misalnya: mysql_connect, mysql_query, dsb). Akan tetapi kalau ingin beralih menggunakan PHP 7, fungsi-fungsi mysql_* itu sudah tidak ada lagi, kita harus menggunakan fungsi mysqli_* atau PDO. Bagaimana cara mengatasinya?

Penulis juga mengalami error saat berpindah ke versi 7, yaitu tidak bisa menggunakan fungsi mysql_*. Tetapi untunglah di proyek-proyek sebelumnya penulis sudah menggunakan fungsi-fungsi buatan sendiri untuk melakukan manipulasi database. Jadi tinggal modifikasi bagian dalam fungsi-nya saja, tanpa mengubah keseluruhan program.

Silahkan download SimpleDB – kumpulan fungsi MySQLi di Github.

SimpleDB selain menggunakan fungsi-fungsi mysqli_*, juga menyediakan fungsi-fungsi manipulasi database yang umum. Seperti tambah, update, delete record pada tabel. Tanpa perlu menuliskan kode SQL yang panjang, cukup dengan menyiapkan variabel array dan memanggil fungsi db_insert() atau db_update(), maka record-record baru akan ditambahkan atau diupdate ke tabel yang dimaksud.

Contoh Menggunakan Fungsi-Fungsi SimpleDB:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
 
// include file nya
require("mysqlidb.php")
 
// connect ke database
db_connect("localhost", "root", "", "hrd");
 
// contoh baca record
$q = db_query("select * from karyawan");
while ($d = db_fetch($q)) {
    print "$d->nik, $d->nama<br/>";
}
 
// contoh insert ke tabel
$a = array();
$a['name'] = "Joni";
$a['kelas']  = 5;
db_insert("siswa", $a);
 
// contoh update tabel
$a = array();
$a['name'] = "Joni Keren";
$a['kelas']  = 6;
db_update("siswa", $a, "id=10");
 
?>

Contoh-contoh lainnya dapat dilihat di halaman Github.

Code Editor yang Bagus Untuk Mengetik Program PHP

 

Untuk mengetik program atau kode, diperlukan sebuah software editor teks. Bila memakai Windows kita bisa menggunakan software Notepad. Akan tetapi Notepad sangat sederhana, hanya bisa menangani pengetikan dasar saja, kurang akan fasilitas yang membantu dalam pengetikan program seperti pengecekan sintaks, tombol cepat, dsb.

Dengan seiring perkembangan waktu, orang menciptakan code editor yang memudahkan programmer dalam pengetikan program. Code editor adalah editor teks yang diberi fasilitas diantara nya: syntax highlighting (teks dengan warna berbeda untuk masing sintaks), code completion (hanya dengan mengetik beberapa huruf, muncul nama fungsi/konstanta/variable), error checking (memberitahu kalau ada penulisan kode yang tidak lengkap atau salah).

Lalu apakah code editor yang ideal untuk memprogram PHP? Well, untuk soal memilih code editor ini biasanya dipengaruhi oleh selera masing-masing programmer. Di bawah ini sekedar saran mengenai code editor yang bisa dipakai untuk mengetik program PHP (ataupun program lainnya).

Notepad++

Notepad-Plus-Plus Code Editor PHP

Notepad++ adalah code editor yang gratis dan yang sangat populer. Walaupun gratis, fitur dari Notepad++ sudah sangat cukup. Mendukung banyak bahasa pemrograman dari A sampai Z, tidak terbatas hanya pada PHP. Pada Notepad++ sudah ada syntax highlighting, code completion, bisa run external program, bisa merekam makro, dsb. Notepade++ sangat cocok untuk programmer pemula maupun yang sudah mahir. Notepad++ hanya bisa berjalan di Windows. Download Notepad++.

Sublime Text

Sublime-Text Code Editor PHP

Sublime Text adalah code editor yang juga cukup populer, dan bisa berjalan multiplatform. Walaupun Sublime Text adalah software berbayar, tetapi versi gratisnya bisa dipakai secara normal tanpa ada batasan waktu. Salah satu kelebihan Sublime Text adalah adanya Package Manager, semacam pengelola plugin yang bisa menambahkan plugin ke Sublime Text sehingga makin memperkaya fungsi-fungsi editornya. Download Sublime Text Code Editor PHP.

Editplus

Editplus Code Editor PHP

Editplus adalah code editor yang ringan dan mendukung banyak bahasa pemrograman. Bisa menuliskan kode PHP dan menambahkan kode-kode HTML hanya dengan mengklik tombol. Secara keseluruhan Editplus adalah code editor yang enak dipakai, tetapi kekurangannya adalah tidak ada code completion yang realtime. Yaitu kemampuan untuk menampilkan nama variable atau fungsi pada saat kita mengetik beberapa huruf. Download Editplus Code Editor PHP.

Geany

Geany Code Editor PHP

Geany adalah code editor yang berjalan multiplatform. Kalau sering bekerja misalnya di Windows dan Linux tanpa ingin berganti jenis code editor, Geany bisa jadi pilihan. Walaupun namanya kurang banyak disebut, Geany sudah memiliki fitur code editor yang modern. Seperti syntax highlighting, code completion, dan mendukung banyak bahasa pemrograman termasuk PHP, Java, Python, dan sebagainya. Download Geany Code Editor PHP.

Demikian beberapa pilihan code editor untuk PHP, silahkan dipilih yang dirasa cocok. Rekomendasi dari penulis kalau menggunakan sistem operasi Windows adalah Notepad++ karena gratis dan fiturnya sudah sangat lengkap. Kalau bekerja di Linux atau MacOS, rekomendasinya adalah SublimeText.

Selamat mencoba dan happy coding!

Mencetak Barcode dengan Mudah Menggunakan PHP dan FPDF

 

Mencetak barcode code128 dengan PHP

Pada artikel sebelumnya sudah dibahas tentang bagaimana mencetak ke printer via PDF menggunakan PHP. Sekarang kita bahas bagaimana membuat dan mencetak barcode ke PDF menggunakan PHP.

Sekarang ini barcode sudah banyak dipakai, tidak hanya untuk label barang. Tetapi juga dipakai sebagai ID karyawan, kartu anggota gym, kartu perpustakaan, dsb.

Bagaimana mencetak barcode dengan PHP? Caranya sangat mudah, kita bisa menggunakan library PDF dari FPDF yang bisa di download gratis.

Pertama-tama, download library FPDF disini.

Kemudian download script barcode disini. Script ini adalah contoh untuk menghasilkan barcode jenis Code128.

Contoh script membuat barcode:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
require('code128.php');
 
$pdf=new PDF_Code128();
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
 
$anggota =  array();
$anggota[] = array("nama"=> "Unyil", "kode" => "0001");
$anggota[] = array("nama"=> "Usro",  "kode" => "0002");
$anggota[] = array("nama"=> "Ucrit", "kode" => "0003");
 
$y = 20;
foreach($anggota as $a) {
    $pdf->Code128(20,$y,$a["kode"],80,20);
    $pdf->SetXY(20,$y+25);
    $pdf->Write(0,'Nama: '.$a["nama"]." - Kode: ".$a["kode"]);
    $y+=50;
}
$pdf->Output();
?>

Hasil tampilan script barcode ini dapat dilihat disini.

Contoh di atas menggunakan array sebagai data kode untuk barcode, bisa juga data diganti dengan membaca tabel dari database.

Contoh barcode jenis lain: Code 39 dan EAN-13

Selamat mencoba.

Mencetak Laporan ke Printer Menggunakan PHP dan MPDF

 

Cetak Laporan ke Printer dengan PHP Mencetak laporan ke printer menggunakan PHP memerlukan trik khusus. Ini dikarenakan mencetak sesuatu dari browser ke printer itu seringkali posisi layoutnya tidak sesuai seperti yang kita inginkan. Karena setiap browser memiliki setting margin, layout, skala yang bisa diatur-atur sendiri oleh pengguna browser di komputernya masing-masing.

Karena kondisinya demikian, maka kita tidak bisa mengandalkan pencetakan langsung ke halaman web — sebab layout bisa berubah-ubah. Solusinya adalah dengan mencetak ke .PDF. Sebab kalau sudah dicetak ke .PDF, maka di browser apapun akan mencetak sama persis seperti yang ada di file .PDF tersebut.

Salah satu library PDF untuk PHP yang menurut penulis cukup bagus untuk keperluan mencetak laporan adalah MPDF. Keunggulan MPDF ini adalah kemampuan mengkonversi format HTML menjadi PDF. Disamping itu ada fitur lain seperti penentuan ukuran kertas, setting header dan footer otomatis, dan sebagainya.

Library MPDF bisa di download gratis disini.

Di bawah ini ada contoh script sederhana bagaimana membuat tabel laporan menggunakan MPDF, yang nantinya bisa dicetak, bahkan disimpan dalam bentuk file .PDF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
include('./mpdf57/mpdf.php');
 
ob_start();
?>
 
<style>
td {
    padding: 3px 5px 3px 5px;
    border-right: 1px solid #666666;
    border-bottom: 1px solid #666666;
}
 
.head td {
    font-weight: bold;
    font-size: 12px;
    background: #b7f0ff; 
}
 
table .main tbody tr td {
    font-size: 12px;
}
 
table, table .main {
    width: 100%;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-collapse: collapse;
    background: #fff;
}
 
h1 {
    font-size:20px;
}
</style>
 
<table class='main' repeat_header="1" cellspacing="0" width="100%" style="width:100%">
<thead>
<tr class="head">
    <td align='center' height="30">No.</td>
    <td>Kode Barang</td>
    <td align='center'>Nama Barang</td>
    <td align='right'>Saldo Stok</td>
</tr>
</thead>
 
<tbody>
<tr><td align='center'>1</td><td>PSG-001</td><td>Pasta Gigi</td><td align='right'>150</td></tr>
<tr><td align='center'>2</td><td>SBM-002</td><td>Sabun Mandi</td><td align='right'>63</td></tr>
<tr><td align='center'>3</td><td>PML-008</td><td>Pembersih Lantai</td><td align='right'>260</td></tr>
</tbody>
 
</table>
 
<?php
$content = ob_get_clean();
 
$header = '<table cellpadding=0 cellspacing=0 style="border:none;">
           <tr><td style="border:none;" align="left"><img src="img/logo-disini.jpg" width="42"></td>
           <td width="100%" style="border:none;"><h1>Laporan Stok Barang</h1></td></tr></table>';
 
$footer = '<table cellpadding=0 cellspacing=0 style="border:none;">
           <tr><td style="margin-right:-5px;border:none;" align="left">
           Dicetak: '.date("Y-m-d H:i").'</td>
           <td style="margin-right:-5px;border:none;" align="right">
           Halaman: {PAGENO} / {nb}</td></tr></table>';            
 
try {
    $mpdf=new mPDF('utf-8', "A4", 9 ,'Arial', 5, 5, 20, 5, 5, 4);
    $mpdf->SetTitle("Laporan Stok Barang");
    $mpdf->setHTMLHeader($header);
    $mpdf->setHTMLFooter($footer);
    $mpdf->WriteHTML($content);
    $mpdf->Output("laporan-stok.pdf","I");
} catch(Exception $e) {
    echo $e;
    exit;
}
?>

Contoh file .PDF yang dihasilkan dari script ini dapat dilihat disini.

Bila kita mengeset header dan footer dengan fungsi setHTMLHeader & setHTMLFooter, maka pada setiap halaman yang kita cetak, akan muncul header dan footer tersebut. Ini sangat berguna menampilkan judul laporan atau keterangan tambahan dibagian bawah halaman. Menjadikan laporan kita cantik dan rapi.

Bila anda ingin mengubah orientasi halaman menjadi Landscape di MPDF, caranya adalah dengan menambahkan “-L” pada ukuran kertas. Misalnya ingin menggunakan A4 Landscape, maka kodenya adalah “A4-L”. Untuk orientasi Potrait, biarkan saja tanpa tambahan apa-apa pada ukuran kertasnya.

1
$mpdf=new mPDF('utf-8', "A4-L", 9 ,'Arial', 5, 5, 20, 5, 5, 4);

Selamat mencoba.

Contoh Dasar PHP Menggunakan Database MySQL dengan Fungsi-fungsi MySQLi

 

Koneksi database MySQL dengan PHP

Saat artikel ini ditulis, versi PHP sudah mencapai versi 7. Selain ada penambahan fitur-fitur baru, di versi PHP-7 juga ada fitur yang dihilangkan. Salah satu fitur yang dihilangkan adalah support pada ekstensi MySQL. Setiap programmer yang ingin menggunakan MySQL di PHP-7, harus menggunakan ektensi MySQLi (i artinya improved) atau menggunakan PDO.

Kelebihan menggunakan ektensi MySQLi antara lain:

  • Bersifat object-oriented
  • Mendukung Prepared Statements
  • Mendukung Multiple Statements
  • Mendukung Transactions

Di bawah ini contoh dasar bagaimana PHP berkomunikasi dengan database MySQL menggunakan fungsi-fungsi MySQLi. Kalau belum mengerti cara membaca database dan mengupdate database dengan SQL, silahkan pelajari dasar-dasar SQL disini.

Contoh script PHP dengan MySQLi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
// Buat koneksi ke database
$db = new mysqli('localhost', 'user', 'pass', 'database_saya');
 
if($db->connect_errno > 0){
    die('Gagal membuka database ['. $db->connect_error.']');
}
 
// Contoh membaca record dari sebuah tabel
$sql = "SELECT * FROM user where stat='aktif' "; 
 
if(!$result = $db->query($sql)){
    die('Gagal menjalankan query ['.$db->error.']');
}
 
// Tampilkan jumlah record
echo 'Jumlah record terbaca: '. $result->num_rows;
 
// Contoh membaca semua record dan tampilkan 
while($record = $result->fetch_assoc()){
    echo "Username: ".$record['username'] . '<br />';
}
 
// Bersihkan memori penampung hasil
$result->free();
 
// Tutup database
$db->close();
 
?>

Menggunakan extensi MySQLi untuk terhubung ke database MySQL ternyata tidak sulit bukan? Selamat mencoba dan happy coding.