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.

Rabu, 26 Agustus 2015

Menyimpan Data dari textarea TinyMCE Menggunakan MySQL

Bagaimana caranya menyimpan teks yang ditulis pada textarea WYSIWYG TinyMCE?

Pertama, buat tabel tiny di database db_tiny dengan struktur sebagai berikut:

Field Type Length Extra Primary
id_berita INT 5 auto_increment
judul VARCHAR 100
isi TEXT

Kemudian buat sebuah file tiny.php dengan skrip seperti berikut:

<?php
if(isset($_POST['simpan'])){
 $isi = addslashes($_POST['isi']);

 mysql_connect("localhost","root","");
 mysql_select_db("db_tiny");

 mysql_query("insert into tiny(judul, isi) values('$_POST[judul]','$isi')");
}
?>
<!doctype html>
<html>
<head>
 <title>TinyMCE MySQL</title>
 <script type="text/javascript" src="tinymce/tinymce.min.js"></script>
 <script type="text/javascript">
 tinymce.init({
     selector: "textarea",
     plugins: [
         "advlist autolink lists link image charmap print preview anchor",
         "searchreplace visualblocks code fullscreen",
         "insertdatetime media table contextmenu paste"
     ],
     toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
 });
 </script>
</head>
<body>

<form method="post" action="">
Judul : <input type="text" name="judul" maxlength="50">
<br><br>
isi Berita :<br>
<textarea name="isi" rows="15" cols="80">

</textarea>
<br>
<input type="submit" name="simpan" value="Simpan">
<input type="reset" value="Batal">
</form>

</body>
</html>


Baiklah, waktunya penjelasan.

1. Pada tabel, data yang akan menampung data dari textarea harus bertipe TEXT. Kalau VARCHAR, masih kurang mencukupi.

2. Ketika menyimpan ke MySQL, harus diberi addslashes agar kalau ada tanda petik dua (") tidak menyebabkan error pada saat eksekusi query tersebut.

Itu saja, kalau ada yang kurang dipahami silahkan bertanya.

Selasa, 25 Agustus 2015

Mengenal, Memasang dan Menggunakan Font Awesome

Pernahkah kita kebingungan mencari icon-icon untuk blog atau website?  Entah yang kita cari itu icon user, icon menu, atau icon sosial media. Pokoknya, icon itu berperan cukup penting dalam mempercantik tampilan sebuah web. Jika kita mencari icon di google.com, maka kita perlu mendownload satu per satu gambar yang akan digunakan. Kalau cuma beberapa icon sih tidak masalah, tapi bagaimana kalau kita akan menggunakan puluhan icon?

Untuk itu, kali ini saya ingin mengenalkan pada kalian yang belum kenal dengan "Font Awesome". Pernah dengar tentang Font Awesome?

Singkat saja, Font Awesome adalah font icon yang dapat dipanggil menggunakan css. Font Awesome dibuat oleh Dave Gandy dalam GitHub Project. Kita dapat mengunjungi halaman resminya di http://fortawesome.github.io/Font-Awesome/

Timbul, pertanyaan. Apa aja sih yang ia bisa?


Baik-baik, kemampuan Font Awesome meliputi :

  • 1. Satu font, tapi berisi banyak icon. Icon yang adapun saya rasa sudah cukup lengkap.
  • 2. Tidak memerlukan sintaks JavaScript dalam pengaplikasiannya.
  • 3. Icon menggunakan gambar Scalable Vector Graphics (SVG) sehingga kualitas gambar tetap terjaga dalam berbagai ukuran.
  • 4. Gratis. Yang paling penting adalah... Font Awesome itu gratis.
  • 5. Style dapat dimodifikasi menggunakan css. Seperti mengganti warna, ukuran, shadow dan apapun yang mungkin menggunakan css.
  • 6. Cocok digunakan pada tampilan resolusi tinggi.
  • 7. Meskipun pada awalnya dibuat untuk Bootstrap, namun tetap bisa digunakan pada semua framework.
  • 8. Dapat digunakan pada dekstop.
  • 9. Mudah dideteksi pada layar.
Saya anggap, kita semua sudah mengenal Font Awesome. Nah, sekarang~

Timbul, pertanyaan. Bagaimana kita menginstal atau memasang Font Awesome? 

Ada beberapa cara yang bisa kita gunakan untuk memasang Font Awesome. Tapi, saya akan menjelaskan dua cara saja. Satu untuk online dan satu untuk offline.

1. Menggunakan BootstrapCDN dari MaxCDN

Ini adalah cara yang paling mudah. Tidak perlu mendownload atau menginstall apapun. Cukup menambahkan satu baris kode html di dalam tag <head> pada website kita.

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
Dengan satu syarat, yaitu harus online.

2. Menggunakan CSS

Kalau ini cara biasa. Di netbook saya, saya bisa menggunakan Font Awesome meskipun offline. Tapi, kadang ada icon tertentu yang tidak mau nampil dan saya kurang tahu mengapa.

Pertama, download Font Awesome di http://fortawesome.github.io/Font-Awesome/. Tekan tombol download, lalu akan muncul sebuah modalbox, tekan tombol download yang ada.


Kemudian ekstrak file zip-nya, dan copy ke dalam folder projek kita.
Lalu tambahkan font-awesome.min.css dalam tag <head> pada projek kita.

<link rel="stylesheet" href="path/font-awesome/css/font-awesome.min.css">
Pastikan path atau alamat benar, dan Font Awesome sudah terpasang.

Bagaimana menggunakan Font Awesome?

Cara menggunakannya tidak sulit kok. Cukup tambahkan class="fa fa-icon" dan atur ukuran dan warna menggunakan css. Contoh :

<!doctype html>
<html>
<head>
  <title>Contoh Font Awesome</title>
  <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
</head>
<body> 
  <a href="#" class="fa fa-ambulance" style="color:gray;font-size:100px;"></a>
</body>
</html>
Dan hasilnya adalah

Daftar icon yang bisa digunakan bisa kalian lihat pada halaman http://fortawesome.github.io/Font-Awesome/icons/

Cukup sekian yang kita pelajari tentang Font Awesome. Kalau ada pertanyaan, jangan ragu untuk bertanya. Arigatou...

Senin, 24 Agustus 2015

Mengenal Editor WYSISYG TinyMCE

Pernah mendengar tentang editor WYSISYG?

Baiklah, WYSIWYG adalah singkatan dari What You See Is What You Get yang artinya apa yang kamu lihat adalah apa yang kamu dapatkan. Menurut Wikipedia, editor WYSISYG adalah suatu sistem di mana konten (teks dan grafis) pada layar selama proses editing muncul dalam bentuk erat sesuai dengan penampilan saat dicetak atau ditampilkan sebagai produk jadi, seperti dokumen, halaman web, atau slide presentasi.

Timbul, pertanyaan. Editor WYSIWYG itu gunanya buat ngapain, sih?

Bayangkan kita adalah seorang programmer yang ingin membuat sebuah website berita. Tentunya programmer harus bisa memberikan website dengan antarmuka yang mudah digunakan oleh reporter dalam menuliskan isi beritanya. Untuk memenuhi hal itu, biasanya disediakan texarea yang memungkinkan user untuk mengetik lebih dari satu baris.

Sayangnya, teks yang berada di dalam textarea tidak bisa diformat, seperti dimiringkan, ditebalkan, atau diatur ukuran hurufnya pada kalimat tertentu. Kecuali user hafal perintah HTML dan menuliskannya secara manual di dalam textarea tersebut. Tentunya ini sangat menyulitkan bagi reporter ataupun user yang awam dengan HTML.

Jalan keluarnya adalah menggunakan editor WYSIWYG (What You See Is What You Get). Editor WYSIWYG akan memudahkan user dalam mengisi konten website layaknya menggunakan aplikasi pengolah kata(Microsoft Word atau Open Office).

Lagi-lagi, timbul pertanyaan. Editor apa aja sih yang termasuk WYSIWYG dan gimana dapetinnya? Cara nginstalnya gimana? Gunainnya gimana? Implementasinya di web gimana? Waduh~ Sabar ya...

Ada bayak editor WYSIWYG yang bisa kita pakai. Kalau nanya mbah google, nanti pasti akan nongol banyak, seperti :


Dari pada bingung mau pilih yang mana, kali ini saya akan menggunakan TinyMCE dan sedikit membahas editor WYSIWYG tersebut.

Instalasi atau Pemasangan TinyMCE

Sebelum menggunakan TinyMCE rasanya kurang afdhol kalau kita tidak mengenal TinyMCE terlebih dahulu. Jadi... menurut halaman awal TinyMCE...

TinyMCE adalah platform web independen berdasarkan Javascript HTML editor WYSIWYG kontrol dirilis sebagai Open Source di bawah LGPL.
TinyMCE memiliki kemampuan untuk mengkonversi bidang TEXTAREA HTML atau elemen HTML lainnya untuk kasus redaksi.
Intinya, TinyMCE merubah textarea standar menjadi sebuah editor WYSIWYG. Adapun langkah-langkah pemasangan dan penggunaannya adalah sebagai berikut :

Download TinyMCE di http://www.tinymce.com/download/download.php (pilih yang deskripsinya "Contains all you need for production usage" dan tekan tombol download di samping kanannya)



Ekstrak file zipnya, kemudian pindahkan hasil ekstrak tersebut (tinymce) ke folder htdocs (atau folder projek kalian).

Lalu pasang masukkan file tinymce.min.js dari tinymce ke dalam file html atau php kalian. Contohnya, kita akan membuat sebuah file yang bernama tini.html di htdocs dengan script :

<!doctype html>
<html>
<head>
  <title>Contoh</title>
  <script src="tinymce/js/tinymce/tinymce.min.js"></script>
  <script>
    tinymce.init({selector:'textarea'});
  </script>
</head>
<body>
  <textarea>Easy! You should check out MoxieManager!</textarea>
</body>
</html>

Bagian yang saja warnai adalah bagian untuk memanggil tinymce.min.js. Bagian ini perlu disesuaikan dengan alamat atau path dari file tinymce.min.js tersebut.

  <script>
    tinymce.init({selector:'textarea'});
  </script>

Sedangkan script tinymce.init({selector:'textarea'}); digunakan untuk menempatkan editor WYSIWYG ke dalam textarea. Jangan lupa dengan <!doctype html> yang berada paling atas. Tanpa itu, editor ini tidak bisa digunakan.

Hasilnya seperti berikut :


Tapi, itu belum kelihatan semua fiturnya lho! Karena di atas kita menggunakan cara yang paling mudah. Bagaimana kalau mau yang standar? Cukup ubah

  <script>
    tinymce.init({selector:'textarea'});
  </script> 
Menjadi

  <script>
    tinymce.init({
    selector: "textarea",
    plugins: [
        "advlist autolink lists link image charmap print preview anchor",
        "searchreplace visualblocks code fullscreen",
        "insertdatetime media table contextmenu paste"
    ],
    toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
    });
  </script> 
Dan hasilnya agak beda :



Kalau mau yang full fiturnya, ganti

  <script>
    tinymce.init({selector:'textarea'});
  </script>
Menjadi

  <script>
    tinymce.init({
    selector: "textarea",
    theme: "modern",
    plugins: [
        "advlist autolink lists link image charmap print preview hr anchor pagebreak",
        "searchreplace wordcount visualblocks visualchars code fullscreen",
        "insertdatetime media nonbreaking save table contextmenu directionality",
        "emoticons template paste textcolor colorpicker textpattern imagetools"
    ],
    toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
    toolbar2: "print preview media | forecolor backcolor emoticons",
    image_advtab: true,
    templates: [
        {title: 'Test template 1', content: 'Test 1'},
        {title: 'Test template 2', content: 'Test 2'}
    ]
  });
  </script>
Dan tampilan semua fiturnya seperti ini :





Bagaimana? Menarik? Menurut saya, fitur yang disediakan oleh TinyMCE sudah terbilang memadahi. Sayangnya, plugins untuk Upload File atau File Manager yang tersedia berbayar. Jadi tidak bisa tinggal pasang gambar, langsung terupload. Salah satu solusinya adalah menggunakan Responsive File Manager yang dapat diunduh di http://www.responsivefilemanager.com.

Lain kali kita akan membahas tentang menyimpan hasil dari editing menggunakan TinyMCE ke dalam database MySQL. Sampai jumpa lagi...

 Kalau ada yang tidak anda pahami, jangan sungkan untuk bertanya.

Sabtu, 22 Agustus 2015

Prinsip Gonta-ganti Template CMS Lokomedia

Di CMS Lokomedia, terdapat fitur untuk berganti template sesuka hati. Meskipun tadi dibilang sesuka hati, tapi tergantung template yang tersedia. Yang penting otomatis. Tinggal klik, dan template udah berubah. Terus, gimana sih caranya buat template yang bisa diganti-ganti begitu? Tertarik?

Kali ini, saya tidak akan menunjukkan bagaimana cara pembuatannya. Tapi, yang lebih penting dari itu. Saya akan menjelaskan bagaimana prinsip dari gonta-gantinya template pada CMS Lokomedia.

Pertama, terdapat sebuah tabel dengan struktur seperti berikut

FieldTypeLengthExtraPrimary
id_template INT 5 auto_increment
judul VARCHAR 100
pembuat VARCHAR 50
folder VARCHAR 100
aktif int 1

Id_templates digunakan sebagai primary key. Judul sebagai judul atau nama template. Pembuat untuk nama pembuat template. Folder berisi path (alamat) di mana template bisa diakses. Aktif digunakan sebagai penanda apakah template tersebut sedang aktif (bernilai 1) digunakan atau tidak (bernilai 0). Sistem akan menggunakan salah satu template yang aktif bernilai 1.

Kemudian terdapat sebuah folder untuk menyimpan template-template yang akan digunakan. Sebagai contoh, nama foldernya adalah "templates" dan berisi template dengan nama masing-masing "red" dan "blue". Baik "red" maupun "blue" ini juga merupakan folder yang berisi file-file yang dibutuhkan template tersebut. Mulai dari file css, javascript sampai gambar.

Lebih mudahnya, di dalam folder "templates" terdapat dua folder, yaitu "red" dan "blue", yang berisi file-file yang dibutuhkan template tersebut.

Jika saya ingin membuat template dengan nama "ijo". Maka saya harus membuat folder "ijo di dalam folder "templates", dan mengisi folder "ijo" dengan file-file yang dibutuhkan template saya.

Di dalam "templates" terdapat sebuah file php, sebagai contoh namanya media.php,  yang bertugas untuk memilih template berdasarkan data di database. Dan di dalam folder template(seperti red, blue dan ijo) terdapat file php, sebagai contoh namanya template.php, yang bertugas untuk memanggil file-file yang dibutuhkan untuk template.

Logikanya seperti ini :
  • Ketika sebuah halaman dipanggil, maka media.php (harus) ikut terpanggil.
  • media.php akan memilih nama dan tempat di mana folder template tersebut berada berdasarkan data di database.
  • Saat template yang aktif sudah terpilih, misalnya ijo, maka file template.php yang ada di folder ijo akan terpanggil.
  • File template.php yang berada di sana akan memanggil file-file yang dibutuhkan oleh template.
  • Setelah itu, template akan terpasang pada halaman web tersebut.
Note : harus ada satu dan hanya satu template yang aktif di database.

Tidak terlalu rumit bukan? Jika kita sudah mengetahui alurnya, maka yang perlu kita kerjakan adalah merealisasikannya. Bagaimana cara untuk merealisasikannya adalah pilihan masing-masing.

Cukup sekian yang saya sampaikan. Apabila ada keluhan, kritik, saran atau komentar, silahkan tulis di tempat yang telah disediakan. Wassalam dan selamat malam.