Wednesday, June 25, 2014

membuat Otomatis refresh halaman ketika tidak ada aktifitas selama 5 menit

<body onmousemove = "canceltimer()"; onclick = "canceltimer()">

<script type = "text/javascript">

var tim = 0;
function reload () {
tim = setTimeout("location.reload(true);",300000);   // 5 minutes
}

function canceltimer() {
window.clearTimeout(tim);  // cancel the timer on each mousemove/click
reload();  // and restart it
}

</script>

Tuesday, June 10, 2014

Konfigurasi php5 di apache2 untuk setting pgsql

Untuk menghubungkan php dengan database postgreSQL diperlukan pgsql. buat file 
info.php untuk melihat pgsql sudah terinclude apa belum. Jika belum ada dapat 
dilihat pada php.ini dan melakukan beberapa konfigurasi seperti dibawah ini.
sudo apt-get install php5-pgsql
setting di php.ini untuk setting pgsql
pgsql.allow_persistent = On
extension=php_pdo.dll
extension=php_pgsql.dll
extension=php_pdo_pgsql.dll

Monday, June 9, 2014

Belajar PHP

Konfersi string ke integer PHP dengan menghilangkan koma atau titik.

$n_angg_p = "800,000";
$n_angg_p = str_replace(',', '', $n_angg_p);

String 800,000 menjadi numeric 800000. Sehingga akan menjadi integer yang bisa dijumlahkan, pengurangan atau yang lainnya.

membuat fungsi untuk format tanggal dd/mmyy di php

<?php
function tgl($tgl){
$tanggal = '';
if($tgl){
$tanggal = date('d/m/Y',strtotime($tgl));
}
return $tanggal;
}
?>

mengambil data hari ini

date("d/m/Y");





REST Pada Codeigniter

REST merupakan singkatan dari representational state transfer, atau bisa disebut juga gaya arsitektur dalam membangun sebuah perangkat lunak yang melibatkan HTTP. Pengertian tersebut masih penyimpulan saya saja, jika ingin mengetahui lebih lanjut masalah REST bisa explorasi sendiri. Saya disini hanya ingin membahas untuk mengimplementasi REST pada codeigniter. Sehingga dapat dibuat sebuah API yang hanya menyediakan data yang dibuat menggunakan Codeigniter dengan REST. Data tersebut dapat berupa array dengan format JSON maupun XML. Tetapi saya lebih suka menggunakan JSON karena nanti pada sisi client pengambilan data JSON menggunakan javascript. 

Pertama yang kita lakukan adalah menyiapkan Framework Codeigniter. Silahkan download codeigniter dengan versi yang terbaru, atau bisa download versi yang saya gunakan yang sudah saya config dan saya tambahkan .htaccesss dan saya tambahkan HMVC. Codeigniter yang saya gunakan disini adalah versi 2.2.0

Setelah itu download restserver disini. Setelah terdownload drag and drop sesuai dengan penempatannya file dibawah ini di folder codeigniter yang sudah kita siapkan tadi.

application/libraries/Format.php
application/libraries/REST_Controller.php
application/config/rest.php

konfigurasi rest codeigniter untuk server sudah selesai, hanya 3 file diatas yang diperlukan. Masalah selanjutnya adalah bagaimana cara membuat untuk GET, POST, PUT, dan sebagainya pada restserver tersebut. Berikut saya berikan contoh script yang saya gunakan saja. disini kita hanya main di Controller dan models saja karena memang tujuannya untuk membuat data dan menkonfersinya dalam bentuk array dengan format JSON atau XML. Terusterang saya bingung ingin menjelaskannya, berikut scriptnya silahkan dibaca sekilas. Saya tidak menampilkan untuk databasenya. 

untuk controller :

<?php defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * Example
 *
 * This is an example of a few basic user interaction methods you could use
 * all done with a hardcoded array.
 *
 * @package CodeIgniter
 * @subpackage Rest Server
 * @category Controller
 * @author Phil Sturgeon
 * @link http://philsturgeon.co.uk/code/
*/

// This can be removed if you use __autoload() in config.php OR use Modular Extensions
require APPPATH.'/libraries/REST_Controller.php';

class c_laporan extends REST_Controller
{
public function __construct(){
parent:: __construct();
$this->load->model(array('m_laporan'));
}

//menampilkan data bulan
function combo_bulan_get(){
$ip = $_SERVER['REMOTE_ADDR'];
if($ip=="127.0.0.1"){
$combo_bulan = $this->m_laporan->combo_bulan();
if($combo_bulan){
$this->response($combo_bulan, 200);
}else{
$this->response(array('error'=> 'Could\'t find any users!'), 400);
}
}else{
echo "Page Not Found";
}
}
}

Untuk modelnya:

<?php
class m_laporan extends CI_Model{

//menampilkan data bulan
function combo_bulan(){
$query = $this->db->query('SELECT KD_BULAN AS "kd_bulan", NM_BULAN AS "nm_bulan" 
FROM MD_BULAN ORDER BY CAST(KD_BULAN AS INTEGER) ASC');
return $query->result();
}
}

Saya diatas menggunakan database oracle. Mungkin Jika masih kurang jelas bisa mempelajari link-link dibawah ini :


Terimakasih sudah mampir, Karena keterbatasan waktu mungkin ini yang dapat saya sampaikan. 



Sunday, June 8, 2014

SQL di ORACLE

Untuk membuat grant di oracle

SQL>grant select on nama_table to nama_database_yang_dituju;

Untuk membuat synonym di oracle

SQL> create synonym nama_table for nama_database_yang _digrant.nama_table;

Membuat fungsi untuk mencari selisih waktu

SQL> create or replace function datediff( p_what in varchar2,
  2                                       p_d1   in date,
  3                                       p_d2   in date ) return number
  4  as
  5      l_result    number;
  6  begin
  7      select (p_d2-p_d1) *
  8             decode( upper(p_what),
  9                     'SS', 24*60*60, 'MI', 24*60, 'HH', 24, NULL )
 10       into l_result from dual;
 11
 11      return l_result;
 12  end;
 13  /

Function created

SQL> create or replace view temp_view 
  2  as 
  3  select to_date('01-JAN-1999 12:02:04', 'dd-mon-yyyy hh24:mi:ss' ) d1, 
  4         to_date('15-MAR-1999 01:34:23', 'dd-mon-yyyy hh24:mi:ss' ) d2 
  5  from dual 
  6  / 
View created. 


sekarang tinggal memanggil fungsinya saja

SQL> select datediff( 'ss', d1, d2 ) seconds from temp_view;
   SECONDS
----------
   6269539
SQL> select datediff( 'mi', d1, d2 ) minutes from temp_view;
   MINUTES
----------
104492.317
SQL> select datediff( 'hh', d1, d2 ) hours from temp_view;

     HOURS
----------
1741.53861


menambah waktu pada date di oracle


    Tambahkan sehari. pilih to_date (’02-22-2008 10:30:30 ‘,’ mm-dd-yyyy HH24: mi: ‘ss) hari ini, to_date (’02-22-2008 10:30:30 ‘,’ mm-dd-yyyy HH24: mi: ‘ss) +1 next_day dari dual; HARI INI NEXT_DAY ————————- ————————- 02-22-08 10:30:30 02-23-08 10:30:30
    Tambahkan satu jam. pilih to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ‘ss) hari ini, to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ss ‘) + 1 / 24 next_hour dari dual; HARI INI NEXT_HOUR ———————— ———————— 02-22-08 10:30:30 02-22-08 11:30:30
    Tambahkan satu menit. pilih to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ‘ss) hari ini, to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ss ‘) + 1 / (24 * 60) next_min dari dual; HARI INI NEXT_MIN ———————— ———————— 02-22-08 10:30:30 02-22-08 10:31:30
    Tambahkan kedua. pilih to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ‘ss) hari ini, to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ss ‘) + 1 / (24 * 60 * 60) next_sec dari dual; HARI INI NEXT_SEC ———————— ———————— 02-22-08 10:30:30 02-22-08 10:30:31
    Kurangi sehari. pilih to_date (’02-22-2008 10:30:30 ‘,’ mm-dd-yyyy HH24: mi: ‘ss) hari ini, to_date (’02-22-2008 10:30:30 ‘,’ mm-dd-yyyy HH24: mi: ss ‘) – 1 prev_day dari dual; HARI INI PREV_DAY ————————- ————————- 02-22-08 10:30:30 02-21-08 10:30:30
    Kurangi jam. pilih to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ‘ss) hari ini, to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ss ‘) – 1 / 24 prev_hour dari dual; HARI INI PREV_HOUR ———————— ———————— 02-22-08 10:30:30 02-22-08 09:30:30
    Kurangi menit. pilih to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ‘ss) hari ini, to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ss ‘) – 1 / (24 * 60) prev_min dari dual; HARI INI PREV_MIN ———————— ———————— 02-22-08 10:30:30 02-22-08 10:29:30
    Kurangi detik. pilih to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ‘ss) hari ini, to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ss ‘) – 1 / (24 * 60 * 60) prev_sec dari dual; HARI INI PREV_SEC ———————— ———————— 02-22-08 10:30:30 02-22-08 10:30:29
    //===================================================================
    SELECT MENGGUNAKAN IF ELSE PADA ORACLE
    SELECT ename, CASE WHEN sal = 1000 THEN 'Minimum wage'
                       WHEN sal > 1000 THEN 'Over paid'
                       ELSE 'Under paid'
                  END AS "Salary Status"
    FROM   emp;

membuat hmvc pada codeigniter

HMVC pada codeigniter berfungsi salah satunya adalah untuk membuat penempatan file lebih tertata. berikut adalah yang saya lakukan mengambil dari beberapa tutorial pada blog. Yang terpenting sudah mendownload codeigniter versi terbaru. Saya menggunakan codeigniter versi 2.2.0 silahkan download di sini http://ellislab.com/codeigniter.

Pertama yang dilakukan adalah memastikan codeigniter yang baru saja didownlod sudah tepat. Sehingga kita dapat menjalankan dibrowser http://localhost/Codeigniter_2.2.0. Tampilan awal codeigniter sudah jalan.  

Setelah itu dapat dibuat file .htaccess di dalam folder Codeigniter_2.2.0 untuk menghilangkan idex.php pada path saat kita ingin mengakses halaman pada codeigniter. sebelumnya kita mengakses http://localhost/Codeigniter_2.2.0/index.php/welcome. Maka tampilan akan tampil halaman welcome codeigniter, untuk menghilangkan index.php maka perlu .htaccess yang dibuat pada Codeigniter. 

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /Codeigniter_2.2.0

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond $1 !^(index\.php|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

script diatas disimpan dalam folder Codeigniter_2.2.0. Setelah itu buka file config.php yang berada pada Codeigniter_2.2.0/Applications/Config/config.php. Edit baris

$config['base_url'] = '';

menjadi 

$config['base_url'] = 'http://localhost/Codeigniter_2.2.0';

Setelah itu coba jalankan lagi http://localhost/Codeigniter_2.2.0/welcome. Sampai disini pastikan halaman tersebut menampilkan tampilan yang sama seperti sebelumnya saat mengakses http://localhost/Codeigniter_2.2.0/index.php/welcome. Setelah jalan baru kita lanjut kelangkah berikutnya.

Langkah berikutnya dalah download modul HMVC yang akan kita gunakan untuk membuat hmvc. download disini. Didalamnya terdapat dua folder core dan third_party. Pindahkan folder tersebut ke Codeigniter/Application. Buat folder baru di Codeigniter/Application dengan nama modules_core.

Setelah itu buat folder hmvc di Codeigniter/Applications/modules_core. Buat folder controllers, views, models di Codeigniter/Applications/modules_core/hmvc. Sehinga didalam folder hmvc tersebut sudah terdapat controllers, views dan models. Jika kita ingin membaut folder hmvc-hmvc yang lain ya tinggal membuatnya didalam folder modules_core, tentunya dengan nama yang beda.

Sekarang kita coba buat file controllers di Codeigniter/Applications/modules_core/hmvc/controllers, buat file dengan nama hmvc.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Hmvc extends MX_Controller {

   public function index(  )
   {
      $this->load->view('hmvc_view');
   }
}

Selanjutnya buat file view di  Codeigniter/Applications/modules_core/hmvc/views, buat file dengan nama hmvc_view.php

<h2>This is from the HMVC module page. OKE</h2>

Setelah selesai kita coba config lagi pada codeigniter. Buka file autoload.php di Codeigniter/applcation/config/autoload.php dan edit script 

$autoload['packages'] = array();

menjadi

$autoload['packages'] = array(APPPATH.'third_party');

Buka Codeigniter/applcation/config/config.php dan edit script 


$config['log_threshold'] = 0;

$config['encryption_key'] = ' ';

menjadi 


$config['log_threshold'] = 1;

$config['encryption_key'] = 'myclientbase';

Tambahkan script

$config['modules_locations'] = array(
    APPPATH.'modules_core/' => '../modules_core/',
);

Saat rename folder yang perludiubah adalah config

$config['base_url'] = 'http://localhost/Codeigniter_2.2.0_hmvc';

dan

.htaccess (nama folder CI yang terdapat didalam htaccess)

Kurang lebih seperti diatas yang saya coba. Bila ada yang mencoba dan tidak jalan silahkan berikan komentar mungkin saya salah dalam menulis atau ada yang kurang. Jika memang ada masalah lain yang menyebabkan tidak jalan mungkin dapat diselesaikan secara kekeluargaan saja, hehe... 

Hasil ujicoba saya akan saya dokmentasikan disini, bisa didownload codeigniter_2.2.0_hmvc. Hanya namanya saja yang beda ditambah _hmvc tetapai secara prakteknya ga jauh beda. Terimakasih sudah mampir.....

Monday, June 2, 2014

Problem saat upload file excel (.xls) dari phpexcel tidak terbaca pada codeigniter:

Edit file upload.php pada codeigniter yang terletak di system/libraries line 200

$this->file_type = preg_replace("/^(.+?);.*$/", "\\1", $this->file_type);

menjadi

$this->file_type = preg_replace("/^(.+?);.*$/", "\\1", $_FILES[$field]['type']);

//----------------------------------------------------------------------------------