Tampilkan postingan dengan label php. Tampilkan semua postingan
Tampilkan postingan dengan label php. Tampilkan semua postingan

Rabu, 21 Oktober 2015

Menggunakan HTML2PDF

Selamat siang... Kali ini kita akan belajar sedikit tentang HTML2PDF. Kalau dalam postingan saya yang sebelumnya kita bisa membuat laporan pdf menggunakan FPDF, di sini ada alternatif yang lebih mudah digunakan yaitu HTML2PDF.

Seperti namanya, HTML2PDF itu mengkonversi halaman html menjadi pdf dengan kode yang tidak terlalu banyak. Akan tetapi, belum tentu tampilan pdf-nya sama dengan tampilan aslinya (html). Karena tidak semua style atau css yang digunakan bisa ikut diubah dalam bentuk pdf.

Baiklah, langsung saja...

1. Sebelumnya, silahkan download HTML2PDF di http://html2pdf.fr/en/download


2. Jika ter-direct ke sini, tekan link yang dilingkari

3. Setelah kita mendownloadnya, ekstrak dan letakkan hasil ekstrakan tersebut pada aplikasi yang kita buat.
4. Bagaimana penggunaannya? Sebenarnya, di dalam hasil ekstrakan tadi sudah ada file-file contoh untuk mengubah html menjadi pdf. Tapi intinya seperti ini:

<?php

ob_start();
include(dirname(__FILE__).'file.html');
$isi = ob_get_clean();

require_once(dirname(__FILE__).'/../html2pdf.class.php');
try{
 $html2pdf = new HTML2PDF('P','A4','en');
 $html2pdf->writeHTML($isi, isset($_GET['vuehtml']));
 $html2pdf->Output('cover.pdf');
}
catch(HTML2PDF_exception $e){
 echo $e;
 exit;
}

?>

- Ganti file.html dengan path atau direktori tempat file html kita. Bisa juga file php.
- Ganti '/../html2pdf.class.php' dengan path atau direktori tempat file html2pdf.class.php.
- Pada $html2pdf = new HTML2PDF('P','A4','en');  P berarti Potrait, kita bisa menggantinya dengan L untuk Landscape. A4 adalah ukuran kertas, silahkan disesuaikan dengan ukuran kertas yang kita inginkan. Sedangkan en adalah bahasa. Berhubung bahasa indonesia belum ada, kita gunakan saja en yang berarti bahasa Inggris atau fr yang berarti bahasa Prancis.
- Untuk $html2pdf->Output('file.pdf'), ganti file.pdf dengan nama yang kita inginkan. Biasanya saya samakan dengan nama file html atau php yang diubah menjadi pdf. Hanya saja, tentunya dengan akhiran .pdf.

Baiklah, itu yang dapat saya sampaikan. Semoga berguna...

Jumat, 09 Oktober 2015

Tehnik Enkripsi pada PHP

Tehnik Enkripsi Data Pada PHP

Enkripsi, apa itu enkripsi? Menurut wikipedia, enkripsi adalah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Jika kita mengenal enkripsi, maka kita juga harus tahu tentang dekripsi. Dekripsi adalah proses pengembalian suatu informasi yang telah dienkripsi menjadi seperti semula.

Fungsi Enkripsi dan Dekripsi.

Enkripsi data berfungsi untuk menjaga kerahasiaan suatu data agar tidak mudah dibaca (informasi yang ada pada data tersebut) oleh orang lain. Sedangkan dekripsi berfungsi untuk menerjemahkan data yang sudah terdenkripsi tersebut agar menjadi seperti semula.

Seandainya kita ingin mengirimkan suatu data yang dirasa rahasia dan kita tidak ingin orang lain kecuali penerima dapat membaca data yang kita kirimkan. Maka solusinya adalah dengan mengenkripsi data tersebut dan penerima harus memiliki perangkat untuk mendekripsi (menerjemahkan) data yang kita kirim.

Tehnik Enkripsi

Ada beberapa tehnik enkripsi, mulai dari tehnik klasik yaitu subtitusi dan transposisi sampai tehnik modern.

Ada banyak pilihan untuk meng-enkripsi data. Karena pastinya, disetiap bahasa pemrograman terdapat sebuah cara untuk mengenkripsi data. Entah dengan memanggil fungsi yang tersedia untuk mengenkripsi data ataupun membuat sebuah fungsi sendiri untuk mengenkripsi data tersebut.

Dalam contoh kasus, enkripsi data digunakan sebagai password. Artinya, kita menggunakan satu atau beberapa huruf sebagai keyword untuk mengenkripsi data. Dan data tersebut ketika di dekripsi, kita harus memasukkan keyword yang sama dengan keyword saat mengenkripsi agar data kembali seperti semula. Jika keyword pada saat dekripsi berbeda dengan keyword pada saat enkripsi, maka file tidak akan kembali seperti semula. Hasilnya, file tersebut tidak akan bisa dibaca atau rusak. Ini merupakan salah satu penerapan enkripsi dengan algoritma symmetric key.

Pada bahasa pemrograman php, sudah tersedia beberapa fungsi untuk mengenkripsi data. Yaitu dengan fungsi base64_encode() untuk enkripsi dan base64_decode() untuk dekripsi.

Penggunaanya cukup mudah, cukup masukkan string atau variabel yang benilai string pada fungsi tersebut. Contohnya, base64_encode("tahu"), maka string "tahu" (tanpa tanda petik) akan dienkripsi sesuai dengan metode dan algoritma enkripsi base64. Begitu pula cara yang digunakan untuk mengembalikan sebuah string yang sudah dienkripsi, yaitu base64_decode("stringYangDienkripsi").

Selain base64, tersedia juga fungsi md5() pada php.  Akan tetapi, bedanya fungsi md5() hanya bisa digunakan untuk mengenkripsi data saja. jadi data yang sudah dienkripsi tidak bisa kita kembalikan seperti semula. Berbeda dengan fungsi base64 yang bisa kita gunakan untuk mengenkripsi atau dari yang sudah terenkripsi kita kembalikan seperti semula. Fungsi md5() cocok digunakan untuk verifikasi data, misal, password. Karena tidak ada yang tahu apa hasil dekripsi dari string yang sudah terenkripsi oleh md5().

Jika menggunakan md5(), cara untuk memastikan apakah data yang diinputkan sama adalah dengan mengenkripsi data yang diinputkan menggunakan fungsi md5() dan membandingkannya dengan data yang sudah ada pada database. Jika sama, berarti inputan tersebut benar. Akan tetapi bila salah, maka inputan yang dimasukkan salah.

Selain menggunakan fungsi yang tersedia pada php. Kita juga bisa menggunakan library php atau javascript yang diperuntukkan sebagai peng-enkripsi data.

Contoh studi kasus penggunaan enkripsi pada suatu aplikasi adalah saat login.

Sebelum login kita harus mendaftar dan pada saat mendaftar password yang kita inputkan akan dienkripsi oleh sistem. Lalu ketika login, sistem memiliki dua pilihan. Tergantung dari sang pembuat. Apakah password yang diinputkan ketika login di enkripsi dan kemudian dibandingkan dengan data yang dari database. Atau data yang dari database didekripsi dan dibandingkan dengan data yang diinputkan ketika login. Jika dua data yang dibandingkan sama, maka login berhasil. Namun bila dua data yang dibandingkan ternyata tidak sama, maka login akan gagal.

Kamis, 27 Agustus 2015

Membuat Laporan PDF Dengan FPDF Pada PHP

Pernahkah kalian merasa kesulitan membuat laporan pada aplikasi yang berbasis web? Karena biasanya, laporan yang ditunjukkan hanyalah halaman html yang otomatis di print. Tentu saja, ada banyak kelemahan membuat laporan dengan cara itu. Salah satunya adalah penomoran halaman. Di html kita tidak bisa memecah halaman dan memberi nomor halaman. Selain itu, tidak semua browser memberikan fitur print preview sehingga kita tidak bisa melihat apakah hasil yang akan dicetak sesuai atau tidak. Berbeda dengan Visual Basic atau Delphi yang memiliki Cristal Report.

Untuk mengatasi masalah tersebut, kita bisa membuat laporan dalam bentuk pdf menggunakan library php. Tentunya ini cukup memudahkan bagi para programmer web untuk membuat laporan yang lebih rapi, dan sesuai dengan kebutuhan dari aplikasi web yang sedang dibuat.

Ada banyak sekali library php yang bisa digunakan untuk membuat laporan dalam bentuk pdf. Tapi di sini kita akan sama-sama belajar membuat laporan menggunakan library FPDF.

Untuk mengawalinya, mari kita berkenalan dengan FPDF terlebih dahulu.

FPDF adalah PHP class yang memungkinkan untuk menghasilkan file PDF dengan PHP murni, artinya tanpa menggunakan library PDFLib. F dari FPDF singkatan Free. Anda dapat menggunakannya untuk setiap jenis penggunaan dan memodifikasi sesuai kebutuhan Anda.

FPDF memiliki keuntungan lain: fungsi tingkat tinggi. Berikut adalah daftar fitur utama:
  • Pilihan ukuran Unit, format halaman dan margin
  • Halaman header dan footer manajemen
  • Halaman otomatis istirahat
  • Otomatis istirahat garis dan teks pembenaran
  • Dukungan gambar (JPEG, PNG dan GIF)
  • Warna
  • Link
  • TrueType, Type1 dan dukungan encoding
  • Kompresi halaman
FPDF tidak memerlukan ekstensi (kecuali zlib untuk mengaktifkan kompresi dan GD untuk dukungan GIF). Ia bekerja dengan PHP 4 dan PHP 5 (versi terbaru membutuhkan setidaknya PHP 4.3.10).

Baiklah. Setelah kita kenalan dengan FPDF sekarang kita akan memasang FPDF itu pada projek aplikasi web kita. Tapi, sebelum itu unduh dulu FPDF di http://fpdf.org/en/download.php. Pilih versi yang ingin kalian unduh, kemudian tekan link ZIP yang ada di bawahnya. Versi terbaru dari FPDF ketika saya menulis ini adalah v1.7.



Sebenarnya, di dalam file yang kita unduh tadi sudah ada referensi perintah-perintah yang digunakan dalam FPDF dan juga tutorialnya. Tentu saja berbahasa inggris. Kalau mau referensi yang berbahasa indonesia, ada juga kok. Tinggal tekan link seperti dalam gambar.


Memasang FPDF

Setelah kita mengunduh FPDF, ektrak file zip itu dan salin hasil ekstak itu ke dalam folder projek kita. Oh, iya. Pastikan komputer atau laptop yang kita gunakan sudah terinstall aplikasi untuk membaca file PDF seperti Foxit Reader atau Adobe Acrobat agar browser bisa menampilkan dokumen PDF dengan baik.

Menggunakan FPDF 

Untuk sampel pertama, kita akan membuat sebuah kalimat sederhana menggunakan FPDF.

<?php
require('FPDF/fpdf.php');  //pastikan path atau alamat FPDF sesuai
$pdf = new FPDF();
$pdf->AddPage();  //membuat halaman baru
$pdf->SetFont('Arial','B',16);  //memilih font Arial Bold dengan ukuran 16pt
$pdf->Cell(40,10,'Selamat Datang di FPDF!'); //membuat sebuah cell dengan panjang 40 dan tinggi 10
                                             //yang berisi tulisan 'Selamat Datang di FPDF'

$pdf->Output();  //hasilnya dicetak
?>

Dan hasilnya sebagai berikut.


Membuat Header, Footer, Penomoran Halaman dan Gambar

Perhatikan script berikut :

<?php
require('FPDF/fpdf.php');

// kita akan membuat class baru yang mewarisi sifat dari class FPDF
// tujuannya agar lebih memudahkan editing
class PDF extends FPDF{
// function Header dan Footer akan otomatis dipanggil untuk membuat header dan footer

  function Header()
  {
      // logo atau gambar, 
      // 'logo.php' di bawah berarti path atau alamat gambar
      // dengan panjang posisi X = 10, Y = 6, dan panjang 30 
      $this->Image('logo.png',10,6,30);
      // arial bold 15
      $this->SetFont('Arial','B',15);
      // membuat cell kosong dengan panjang 80
      $this->Cell(80);
      // judul
      $this->Cell(30,10,'Ini Judul',1,0,'C');
      // line break dengan tinggi 20
      $this->Ln(20);
  }

  function Footer()
  {
      // mengatur posisi 1,5 cm ke bawah
      $this->SetY(-15);
      // arial italic 8
      $this->SetFont('Arial','I',8);
      // penomoran halaman
      $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
  }
}

$pdf = new PDF();
$pdf->AliasNbPages(); // fungsi untuk mengitung jumlah total halaman
$pdf->AddPage(); // membuat halaman
$pdf->SetFont('Times','',12); // Times 12

// pengulangan agar dokumen ada isinya dan kelihatan penomorannya
for($i=1;$i<=40;$i++){
  $pdf->Cell(0,10,'Baris dalam dokumen yang ke '.$i,0,1);
}

$pdf->Output(); // menampilkan hasil...
?>
Silahkan perhatikan kode di atas. Sudah ada komentar yang saya sisipkan pada kode.

Hasilnya adalah:




FPDF Dengan MySQL

Saya memiliki tabel yang bernama tbl dalam database data, dan saya akan menampilkan seluruh data yang ada dalam tabel tbl. Perhatikan script berikut:

<?php
// pendefinisian folder font pada FPDF
define('FPDF_FONTPATH', 'FPDF/font/');
require('FPDF/fpdf.php');

// seperti sebelunya, kita membuat class anakan dari class FPDF
 class PDF extends FPDF{

  function Header(){
   $this->Image('logo.png',1,1,2.25); // logo
   $this->SetTextColor(128,0,0); // warna tulisan
   $this->SetFont('Arial','B','12'); // font yang digunakan
   // membuat cell dg panjang 19 dan align center 'C'
   $this->Cell(19,1,'LAPORAN SISWA',0,0,'C');
   $this->Ln();
   $this->Cell(19,1,'Sekolah Sementara',0,0,'C');
   $this->Ln();
   $this->SetFont('Arial','B','9');
   $this->SetFillColor(192,192,192); // warna isi
   $this->SetTextColor(0,0,0); // warna teks untuk th
   $this->Cell(6);
   $this->Cell(1,1,'No','TB',0,'L',1); // cell dengan panjang 1
   $this->Cell(1,1,'Kode','TB',0,'L',1); // cell dengan panjang 1
   $this->Cell(2,1,'Nama','TB',0,'L',1); // cell dengan panjang 2
   $this->Cell(3,1,'Alamat','TB',0,'L',1); // cell dengan panjang 3
   // panjang cell bisa disesuaikan
   $this->Ln();
  }

  function Footer(){
   $this->SetY(-2,5);
   $this->Cell(0,1,$this->PageNo(),0,0,'C');
  } 
 }

 $server = "localhost";
 $user = "root";
 $pass = "";
 $data = "data";

 $net = new mysqli($server, $user, $pass, $data);

 if($net->connect_error){
  die("Koneksi gagal: ".$net->connect_error);
 }

 $q = "select * from tbl";
 $h = $net->query($q) or die($net->error);
 $i = 0;
 
 while($d=$h->fetch_array()){
  $cell[$i][0]=$d[0];
  $cell[$i][1]=$d[1];
  $cell[$i][2]=$d[2];
  $i++;
 }
 // orientasi Potrait
 // ukuran cm
 // kertas A4
 $pdf = new PDF('P','cm','A4');
 $pdf->Open();
 $pdf->AliasNbPages();
 $pdf->AddPage();

 $pdf->SetFont('Arial','','8');
 //perulangan untuk membuat tabel
 for($j=0;$j<$i;$j++){
  $pdf->Cell(6);
  $pdf->Cell(1,1,$j+1,'B',0,'C');
  $pdf->Cell(1,1,$cell[$j][0],'B',0,'C');
  $pdf->Cell(2,1,$cell[$j][1],'B',0,'L');
  $pdf->Cell(3,1,$cell[$j][2],'B',0,'L');
  $pdf->Ln();
 }

 $pdf->Output(); // ditampilkan

?>
Dan hasilnya...




Saya rasa sudah cukup yang saya sampaikan. Tutorial lengkap silahkan kunjungi http://fpdf.org/en/tutorial/index.php, walaupun bahasa inggris ya. Tapi, jika ada pertanyaan jangan sungkan untuk bertanya atau komen.