Jumat, 28 Juni 2013

[Tools] FPDF Generator - Mempermudah Pembuatan Code Untuk FPDF

Explanation

Cell
MultiCell
SetX
SetY
SetXY
SetFont
SetFillColor
Image

$pdf->Output();
?>


Source : http://fpdfgenerator.sourceforge.net

[PHP] Membuat dan Mengextract File Zip dengan PHP

Oh, sudah lama nggak buat artikel tentang php dan kali ini saya akan sedikit memberikan cara membuat file Zip dan mengextractnya dengan PHP.

Pertama buat file zip.php dan isi dengan script berikut

<?php

/**
 * Class CZipArchive  
 * Digunakan untuk membuat dan mengextract file zip
 * 
 * @dibuat        Dida Nurwanda
 * @email        dida_n@ymail.com
 * @blog        didanurwanda.blogspot.com
 */

class CZipArchive extends ZipArchive
{
    public function create($fileName='', $overwrite=false, $fileAndDir='')
    {
        if(file_exists($fileName) && !$overwrite)
        {
            return false;
        }
        
        if(is_array($fileAndDir))
        {
            $vFile=array();
            
            foreach($fileAndDir as $file)
            {
                if(file_exists($file))
                {
                    $vFile[]=$file;
                }
            }
            
            if(count($vFile))
            {
                if($this->open($fileName, $overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true)
                {
                    return false;
                }
            
                foreach($vFile as $file)
                {
                    $this->addFile($file,$file);
                }
                
                $this->close();
            
                return file_exists($fileName) ? true : false;
            }
            else
            {
                return false;
            }
        }
        else
        {
            if($this->open($fileName, $overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true)
            {
                return false;
            }
            $this->addFile($fileAndDir,$fileAndDir);
            $this->close();
            return file_exists($fileName) ? true : false;
        }
        
    }
    
    public function extract($to='', $file='')
    {
        if($this->open($file)===true)
        {
            $this->extractTo($to);
            $this->close();
            return true;
        }
        else
        {
            return false;
        }
    }
}

Kemudian buat contoh file untuk penggunaannya, saya menggunakan nama index.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Zip Dengan PHP - Dida Nurwanda</title>
</head>
<body>
<center><h1>Create dan Extract Zip dengan PHP</h1></center>
<center><h4>Dida Nurwanda</h4></center>
<center><a href="http://didanurwanda.blogspot.com">didanurwanda.blogspot.com</a></center>
<br /><br />
<a href="?type=create">Create ZIP</a><br />
<a href="?type=extract">Extract Zip</a><br />

<?php
require_once dirname(__FILE__).'/zip.php';
$zip=new CZipArchive;

// membuat zip
if(isset($_GET['type']) && $_GET['type']=='create')
{
    $return=$zip->create('data.zip',true,array('zip.php','index.php'));
    if($return)
    {
        echo "<center><h3><i>Anda berhasil membuat file ZIP</i></h3></center>";
    }
    else
    {
        echo "<center><h3><i>Anda gagal membuat file ZIP</i></h3></center>"; 
    }
}
elseif(isset($_GET['type']) && $_GET['type']=='extract')
{
    $return=$zip->extract('./folder','data.zip');
    if($return)
    {
        echo "<center><h3><i>Anda berhasil mengextract file ZIP</i></h3></center>";
    }
    else
    {
        echo "<center><h3><i>Anda gagal mengextract file ZIP</i></h3></center>"; 
    }
}
?>
</body>
</html>

Sedikit menjelaskan tentang Class yang saya buat, untuk fungsi create($fileName='', $overwrite=false, $fileAndDir='') sebagai berikut :
  • $fileName itu merupakan nama file Zip yang akan anda buat,
  • $overwrite berfungsi untuk menimpa file Zip yang telah ada, default false
  • $fileAndDir merupakan nama file yang akan dibuat Zip, pada variable ini anda dapat memasukan banyak file sekaligus dengan array atau hanya satu file dengan string
Untuk fungsi extract($to='', $file='') sebagai berikut :
  • $to merupakan direktory tempan mengextract file Zip
  • $file merupakan nama file Zip yang akan di extract
Berikut penampakan contoh programnya

Download
Password : didanurwanda.blogspot.com

Rabu, 26 Juni 2013

[Android] Membuat aplikasi Android dengan HTML 5, CSS, dan JS tanpa PhoneGap

Sebenarnya membuat aplikasi Android dengan HTML 5, CSS, dan JS bisa menggunakan framework yang bernama PhoneGap, tetapi untuk kali ini saya tidak akan menjelaskan cara menggunakan PhoneGap melainkan menggunakan Native Android.

Pertama Anda buat project, disini saya menamakannya dengan AndroidHtml. kemudian buka file AndroidManifest.xml dan tambahkan

<uses-permission android:name="android.permission.INTERNET" />

Script lengkapnya seperti berikut

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.didanurwanda.androidhtml"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />
       <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.didanurwanda.androidhtml.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest> 

untuk layoutnya, disini saya pakai nama main.xml

<?xml version="1.0" encoding="utf-8"?>
<WebView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
/> 

Kemudian untuk MainActivity.java

package com.didanurwanda.androidhtml;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

    WebView webview;
    WebSettings websettings;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.main);
        
        webview=(WebView)findViewById(R.id.webview);
        websettings=webview.getSettings();
        websettings.setJavaScriptEnabled(true);
        webview.setWebViewClient(new WebViewClient());
        webview.loadUrl("file:///android_asset/www/index.html");
        
    }    
}

Setelah itu buat folder pada direktori assets dengan nama www dan tambahkan file index.html pada folder tersebut, direktori lengkapnya assets/www/index.html. File index.html ini merupakan file yang akan di tampilkan oleh aplikasi, anda dapat menambahkan CSS, JS ataupun file HTML lain pada folder ini.

Untuk contoh, pada index.html berisi sebagai berikut

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Android HTML</title>
</head>
<body>
    <h1>Hello World</h1>
    <p>didanurwanda.blogspot.com</p>
</body>
</html> 

Berikut adalah penampakannya

Download
 Password: didanurwanda.blogspot.com