MUHHANAVY.COM

belajar takkan pernah cukup, berbagi takkan pernah rugi

Socialize

Thursday, September 22, 2016

Mikrotik Solusi IP Public Dinamis

Pada saat berlangganan layanan internet tertentu, biasanya provider memberikan alamat IP Public untuk dapat mengakses internet. Biasanya IP Public yang diberikan tersebut berupa IP Public Statis, dimana IP tidak akan berubah selama masih berlangganan layanan internet tersebut. Namun provider layanan internet yang memberikan alamat IP Public Static biasanya memaut harga layanan tersebut cukup mahal. Solusinya beberapa provider menerapkan IP Public Dynamic, dimana pelanggan tetap mendapatkan IP Public namun dengan harga yang tidak terlalu mahal.
Kendalanya pada saat akan mengakses IP tersebut harus tahu perubahan IP Dinamis terbaru, sehingga akses tidak salah tujuan. Pada Mikrotik RouterOS mulai dari versi 6.14 telah disediakan fitur untuk memudahkan mengakses IP Public Dynamic tersebut. Fitur tersebut semacam layanan DDNS yang memudahkan mengakses alamat IP Public Dynamic menggunakan nama domain. Fitur ini pada Mikrotik RouterOS dinamakan sebagai IP Cloud.
Fitur tersebut dapat diakses melalui menu IP - Cloud

Setelah mengakses fitur tersebut akan keluar setting option, pastikan DDNS Enabled checked kemudian Apply maka akan tampak Public IP Address dan DDNS Name. DDNS Name tersebut lah yang menjadi alamat domain yang dapat diakses walaupun IP Public sering berubah.

Demikian solusi tips n trik mikrotik :-) , ,

Tips Membuat base_url Dinamis Pada CodeIgniter


Pada saat awal pengembangan sebuat website atau aplikasi berbasis web menggunakan Framework CodeIgniter, hal-hal yang mungkin perlu dilakukan di awal langkah pengembangan adalah setup base_url. Biasanya untuk base_url ini disetup secara manual. Misalnya:
          $config['base_url'] ='http://www.domainanda.com';      // digunakan pada publish domain
atau
          $config['base_url'] ='http://localhost/website';             // digunakan pada saat development

Ada sedikit cara singkat untuk config base_url tersebut agar pada saat pengembangan ataupun publikasi website terbut tidak perlu mengganti berkali-kali. Berikut skripnya:
          $http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 's' : '') . '://';
          $newurl = str_replace('index.php','', $_SERVER['SCRIPT_NAME']);
          $config['base_url']    = "$http" . $_SERVER['SERVER_NAME'] . "" . $newurl;

Demikian tips singkat untuk konfigurasi base_url secara dinamis agar tidak perlu mengubah-ubah baik pada saat pengambangan ataupun saat publikasi.

, , , ,

Wednesday, September 21, 2016

Membuat No Registrasi Otomatis Pada CodeIgniter


Dalam membuat sebuah aplikasi, pada sebuah item data tertentu pasti membutuhkan penomoran unik baik untuk nomor registrasi atau nomor faktur pada aplikasi penjualan. Untuk penomoran otomatis sebenarnya dapat dilakukan dari 2 sisi, yaitu dari sisi database dimana query database yang akan menghasilkan nomor ID secara otomatis atau dari sisi aplikasi dimana menggunakan kode skrip tertentu untuk menghasilkan nomor ID secara otomatis.
Adapun pembuatan nomor ID secara otomatis dari segi aplikasi pada CodeIgniter berikut cara nya:
Asumsikan database dan tabel sudah dibuat.
Asumsikan juga instalasi codeigniter sudah sukses dan tinggal menempatkan kode untuk penomoran otomatis. Cara instalasi codeigniter dapat dibuka di link berikut.
CodeIgniter menggunakan prinsip MVC (Model View Controller)
Contoh Format ID (X01.Y02.Z03.MMYY.0001)  // mmyy merupakan format bulan tanggal
skrip untuk Controller:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Register_ID extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->model('caridata');  // load model
        }

function index(){
   $nowYear = date("y");
$Nunit = $this->input->post('nilaiunit');
$Ndept = $this->input->post('nilaidept');
$Nitem = $this->input->post('nilaiitem');

$xdata=$this->caridata->nextIDNo($nowYear, $Nunit, $Ndept, $Nitem);

$data['inidata']= "<input type=\"text\" value=$xdata readonly>";
                        $this->load->view('register',$data);
}

}

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

class Caridata extends CI_Model{

function nextIDNo($nowYear, $Nunit, $Ndept, $Nitem){
$nowMonthYear = date('my');
$this->db->select_max("id_no"); // select max (id_no)
$this->db->where("unit_loct", $Nunit);         // where unit_loct
$this->db->where("dept_unit_loct", $Ndept); // and dept_unit_loct
$this->db->where("item_type", $Nitem); // and item_type
$this->db->where("DATE_FORMAT(datepublish, '%y') = ", $nowYear); // and month to year
$query = $this->db->get('id_item');

if(!empty($query)){
foreach ($query->result() as $value) {
$kode = $value->id_no;                 // contoh : X01.Y02.Z03.MMYY.0001
                                        //no urut kode hanya diteruskan jika Nunit and Ndept and Nitem sudah pernah ada record sebelumnya
$lastkode = substr($kode,17,4);    // urutan digit mulai ke 17 sepanjang 4 karakter
$nextkode = $lastkode + 1;
$tempnextno = $Nunit.".".$Ndept.".".$Nitem.".".$nowMonthYear.".";
$nextnoreg = $tempnextno.sprintf('%04s',$nextkode);    // %04s untuk penyesuaian 4 digit no urut
}
}else{
                                // jika kondisi  Nunit and Ndept and Nitem tidak dipenuhi maka no urut reset dari 1
$tempnextno = $Nunit.".".$Ndept.".".$Nitem.".".date('ym').".";
$nextnoreg = $tempnextno.sprintf('%04s',$nextkode);
}
return $nextnoreg;
}

}

skrip untuk view:
<html>
<head>
<title>Untitled Document</title>
</head>

<body>
<p><?php echo $inidata;?></p>
</body>
</html>

And that's all. , , , ,