Build Your Android App

Berhubung lagi booming akhir akhir ini, ayo kita utak atik buat aplikasi Android. cuman butuh skill di java aja koq :)

Create Your Own Game Using Unity

Kata siapa membuat game itu susah, asal ada kemauan untuk belajar membuat game itu gampang kok. Apalagi ada engine seperti unity ini

Belajar JSON yuk

Apa itu JSON? penasaran dengan fungsi dan cara menggunakannya? mari kita pelajari disini

Mushroom Farmer

Yuk belajar manajamen bisnis sambil bermain sebagai petani jamur. Tertarik? Cek Disini

HIMIT PENS

Menjadi bagian dari himpunan di kampus cukup menyenangkan. Banyak pengalaman yang bisa didapat dari kegiatan tersebut dan juga bisa menjadi sarana pengembangan diri.

Minggu, Februari 24, 2013

Membuat Login Form di Android dengan PHP MySQL

http://rapidpurple.com/purpleblog/wp-content/uploads/2011/11/php_mysql_logo.png

Salam Developer, kali ini kita akan melanjutkan postingan sebelumnya mengenai koneksi Android dengan PHP MySQL. Untuk lebih jelasnya akan kita implementasikan pada program yang dibuat dibawah ini. Jika ingin membuka postingan sebelumnya klik link berikut

Untuk persiapan, tool tool yang kita butuhkan adalah

1. Apache Web Server dan mySQL bisa pake XAMPP download disini –> XAMPP

2. Eclipse dan Android SDK –> versi yang saya gunakan disini ada 2.3.3 Ginggerbeard

3. Notepad++ atau Dreamweaver terserah mau pake yang mana untuk edit file PHP

4. Kopi/Susu + roti bakar Open-mouthed smile --> Wajib nih meski cuman singkat tutorialnya Smile

Bagian 1 Buat Project baru pada Android

Seperti sebelumnya copykan file class JSONParser yang ada di postingan sebelumnya ke project ini. Setelah itu buat class baru bernama UserFunction.java. Nantinya class ini akan menghandle fungsi fungsi JSON dan HTTP-POST yang akan kita lakukan.(ingat class dan package yang saya gunakan dalam project ini adalah default dari komputer saya. jadi ketika anda melakukan copas cek sesuai dengan konfigurasi milik anda)

UserFunction.java

package com.eepis.android;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;

public class UserFunctions {
   
    private JSONParser jsonParser;
   
    private static String loginURL = "http://10.0.2.2/tes/";
   
    private static String login_tag = "login";
    private static String register_tag = "register";
   
    // constructor
    public UserFunctions(){
        jsonParser = new JSONParser();
    }
   
    public JSONObject loginUser(String email, String password){
        // Building Parameters
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("tag", login_tag));
        params.add(new BasicNameValuePair("email", email));
        params.add(new BasicNameValuePair("password", password));
        JSONObject json = jsonParser.getJSONFromUrl(loginURL, params);

        return json;
    }
   
    /**
     * function make Login Request
     * @param name
     * @param email
     * @param password
     * */
    public JSONObject registerUser(String name, String email, String password){
        // Building Parameters
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("tag", register_tag));
        params.add(new BasicNameValuePair("name", name));
        params.add(new BasicNameValuePair("email", email));
        params.add(new BasicNameValuePair("password", password));
       
        // getting JSON Object
        JSONObject json = jsonParser.getJSONFromUrl(loginURL, params);
        // return json
        return json;
    }
}

LoginFormActivity.java

package com.eepis.android;

import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class LoginFormActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    //Deklarasi variabel view object
    TextView     error;
    Button        login,register;
    EditText    user,pwd;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //Registrasi view id
        error=(TextView)findViewById(R.id.txt1);
        login=(Button)findViewById(R.id.btn1);
        login.setOnClickListener(this);
        register=(Button)findViewById(R.id.btn2);
        register.setOnClickListener(this);
        user=(EditText)findViewById(R.id.edit1);
        pwd=(EditText)findViewById(R.id.edit2);
    }
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.btn1:
            //Memanggil fungsi login di class userfunction
            UserFunctions userFunction = new UserFunctions();
            JSONObject json = userFunction.loginUser(user.getText().toString(), pwd.getText().toString());
            try {
                if (json.getString("success") != null) {
                    error.setText("");
                    String res = json.getString("success");
                    if(Integer.parseInt(res) == 1){
                        Intent login = new Intent(LoginFormActivity.this,MemberActivity.class);
                       startActivity(login);
                       MemberActivity.session=user.getText().toString();
                    }else{
                        error.setText("username/password anda salah");
                    }
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            break;
        case R.id.btn2:
            //Memanggil fungsi register di class userfunction
            AlertDialog.Builder alert = new AlertDialog.Builder(this);
            alert.setTitle("Registrasi");
            alert.setMessage("Masukkan Data Anda");
           
            // Set an EditText view to get user input
            LinearLayout lay=new LinearLayout(this);
            lay.setOrientation(LinearLayout.VERTICAL);
            final EditText name = new EditText(this);
            name.setHint("Nama");
            final EditText email = new EditText(this);
            email.setHint("Email");
            final EditText password = new EditText(this);
            password.setHint("Password");
            lay.addView(name);
            lay.addView(email);
            lay.addView(password);
            alert.setView(lay);
            alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    String nama = name.getText().toString();
                    String mail = email.getText().toString();
                    String pass = password.getText().toString();   
                    UserFunctions userFunction = new UserFunctions();
                    JSONObject json = userFunction.registerUser(nama, mail, pass);
                    try {
                         if (json.getString("success") != null) {
                             String res = json.getString("success");
                             if(Integer.parseInt(res) == 1){
                                 Toast.makeText(LoginFormActivity.this, "Registrasi Berhasll", 1).show();
                             }else{
                                 Toast.makeText(LoginFormActivity.this, "Registrasi Gagal", 1).show();
                             }
                         }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            });
            alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
           
                }
            });
            alert.show();
            break;
        default:
            break;
        }
    }
}

MemberActivity.java

package com.eepis.android;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MemberActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    Button        logout;
    static String session="";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.member);
       logout=(Button)findViewById(R.id.btn1);
       logout.setOnClickListener(this);
    }
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        this.session="";
        this.finish();
    }
}

AndroidManifest.xml

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

    <uses-sdk android:minSdkVersion="10" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".LoginFormActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:label="@string/app_name"
            android:name=".MemberActivity" >
        </activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>

Bagian 2 Buat API yang menghandle request dari Android

Pada server side kita membuat API yang menangkap Http-Post yang kita kirim via android dan mengembalikannya ke kita dalam bentuk JSON

SQL file

<form action="index.php" method="post">
   <p>tag: <input type="text" name="tag" /></p>
   <p>name: <input type="text" name="name" /></p>
   <p>email: <input type="text" name="email" /></p>
   <p>password: <input type="text" name="password" /></p>
   <input type="submit" name="submit" value="Submit" />
</form>

index.php

<?php

/**
File ini untuk menghandle API Request
hasilnya di encoda dalam bentuk JSON
  /**
* check for POST request
*/
if (isset($_POST['tag']) && $_POST['tag'] != '') {
    // Tag
    $tag = $_POST['tag'];

    // Database Handler
    require_once 'include/DB_Functions.php';
    $db = new DB_Functions();

    // Response--> data yang akan dikembalikan
    $response = array("tag" => $tag, "success" => 0);
   
    // Cek tipe tag
    if ($tag == 'login') {
        // Tangkap data yang dikirim dari android
        $email = $_POST['email'];
        $password = $_POST['password'];

        // Cek user
        $user = $db->getUserByEmailAndPassword($email, $password);
        if ($user != false) {
            // User ditemukan
            $response["success"] = 1;
            echo json_encode($response);
        } else {
            // User tidak ditemukan
            $response["success"] = 0;
            echo json_encode($response);
        }
    }
    else if ($tag == 'register') {
        // Tangkap data yang dikirim dari android
        $name = $_POST['name'];
        $email = $_POST['email'];
        $password = $_POST['password'];

        // cek user sudah ada atau belum
        if ($db->isUserExisted($email)) {
            // User sudah ada
            $response["success"] = 0;
            $response["error_msg"] = "User sudah ada";
            echo json_encode($response);
        } else {
            // Simpan user baru
            $user = $db->storeUser($name, $email, $password);
            if ($user) {
                // Registrasi Berhasil
                $response["success"] = 1;
                echo json_encode($response);
            } else {
                // Registrasi Gagal
                $response["success"] = 1;
                echo json_encode($response);
            }
        }
    }
   
    else {
        echo "Invalid Request";
    }
} else {
    echo "Access Denied";
}
?>

config.php

<?php

/**
* Database config variables
*/
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "tes");
?>

DB_Connect.php

<?php
class DB_Connect {

    // constructor
    function __construct() {
    }

    // destructor
    function __destruct() {
        // $this->close();
    }

    // Connecting to database
    public function connect() {
        require_once 'include/config.php';
        // connecting to mysql
        $con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
        // selecting database
        mysql_select_db(DB_DATABASE);

        // return database handler
        return $con;
    }

    // Closing database connection
    public function close() {
        mysql_close();
    }

}

?>

DB_Function.php

<?php

class DB_Functions {

    private $db;
    // constructor
    function __construct() {
        require_once 'DB_Connect.php';
        // Koneksi ke database
        $this->db = new DB_Connect();
        $this->db->connect();
    }

    // destructor
    function __destruct() {
       
    }
   
    public function storeUser($name, $email, $password) {
        $uuid = uniqid('', true);
        $hash = $this->hashSSHA($password);
        $encrypted_password = $hash["encrypted"]; // Enkripsi password
        $salt = $hash["salt"]; // salt
        $result = mysql_query("INSERT INTO users(unique_id, name, email, encrypted_password, salt, created_at) VALUES('$uuid', '$name', '$email', '$encrypted_password', '$salt', NOW())");
        // Cek registrasi berhasil
        if ($result) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * Cek user di database
     */
    public function getUserByEmailAndPassword($email, $password) {
        $result = mysql_query("SELECT * FROM users WHERE email = '$email'") or die(mysql_error());
        $no_of_rows = mysql_num_rows($result);
        if ($no_of_rows > 0) {
            $result = mysql_fetch_array($result);
            $salt = $result['salt'];
            $encrypted_password = $result['encrypted_password'];
            $hash = $this->checkhashSSHA($salt, $password);
            // Cek kesamaan password
            if ($encrypted_password == $hash) {
                // Identifikasi berhasil
                return true;
            }
        } else {
            // User tidak ditemukan
            return false;
        }
    }

    /**
     * Cek user exist atau tidak
     */
    public function isUserExisted($email) {
        $result = mysql_query("SELECT * from users WHERE email = '$email'");
        $no_of_rows = mysql_num_rows($result);
        if ($no_of_rows > 0) {
            // user existed
            return true;
        } else {
            // user not existed
            return false;
        }
    }
        /**
    Enkripsi password
     */
    public function hashSSHA($password) {

        $salt = sha1(rand());
        $salt = substr($salt, 0, 10);
        $encrypted = base64_encode(sha1($password . $salt, true) . $salt);
        $hash = array("salt" => $salt, "encrypted" => $encrypted);
        return $hash;
    }


    public function checkhashSSHA($salt, $password) {

        $hash = base64_encode(sha1($password . $salt, true) . $salt);

        return $hash;
    }
}
?>

Bagian 3 Hasil running aplikasi

File JSON yang dikirim ke android berbentuk

// Jika berhasil
{"tag":"login","success":1}
// Jika gagal
{"tag":"login","success":0}
// Jika user exist
{"tag":"register","success":0,"error_msg":"User sudah ada"}

Hasil tampilan pada aplikasi

image  image   image

Demikianlah tutorial kali ini semoga bisa bermanfaat buat kawan kawan sekalian. Untuk source projectnya bisa di download di alamat berikut

DOWNLOAD

Tutorial selanjutnya akan membahas tentang menghandle data array dalam format JSON dengan Android. So Keep Update ya Open-mouthed smile

jika ada pertanyaan silahkan saja email saya di bagibagi23@gmail.com

Sabtu, Februari 23, 2013

Membangun Koneksi PHP MySQL dengan Android

http://rapidpurple.com/purpleblog/wp-content/uploads/2011/11/php_mysql_logo.png

Salam Developer, kali ini kita akan membahas tentang bagaimana membangun koneksi antara PHP MySQl dengan aplikasi yang kita buat di platform Android. Koneksi yang akan kita bangun ini menggunakan JSON. Untuk lebih jelasnya mengenai apa itu JSON bisa dibuka pada link berikut.

Untuk persiapan, tool tool yang kita butuhkan adalah

1. Apache Web Server dan mySQL bisa pake XAMPP download disini –> XAMPP

2. Eclipse dan Android SDK –> versi yang saya gunakan disini ada 2.3.3 Ginggerbeard

3. Notepad++ atau Dreamweaver terserah mau pake yang mana untuk edit file PHP

4. Kopi/Susu + roti bakar Open-mouthed smile --> Wajib nih meski cuman singkat tutorialnya Smile

Bagian 1 Buat Project Baru pada android

Setelah membuat project baru buat class baru bernama JSONParser.java(disini saya menggunakan package dan main class saya sendiri, so jika anda copas perhatikan hal tersebut OK).

JSONParser.java

package com.eepis.android;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

public class JSONParser {

    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";

    // constructor
    public JSONParser() {

    }
   
    public JSONObject getJSONListfromURL(String url,List<NameValuePair> params){

        //initialize
        InputStream is = null;
        String result = "";
        JSONObject jArray = null;

        //http post
        try{
            DefaultHttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(url);
            httppost.setEntity(new UrlEncodedFormEntity(params));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();

        }catch(Exception e){
            Log.e("log_tag", "Error in http connection "+e.toString());
        }

        //convert response to string
        try{
            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            result=sb.toString();
        }catch(Exception e){
            Log.e("log_tag", "Error converting result "+e.toString());
        }

        //try parse the string to a JSON object
        try{
                jArray = new JSONObject(result);
        }catch(JSONException e){
            Log.e("log_tag", "Error parsing data "+e.toString());
        }

        return jArray;
    }

    public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {

        // Making HTTP request
        try {
            // defaultHttpClient
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            httpPost.setEntity(new UrlEncodedFormEntity(params));

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();
            Log.e("JSON", json);
        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }

        // try parse the string to a JSON object
        try {
            jObj = new JSONObject(json);           
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }

        // return JSON String
        return jObj;

    }
   
    public void SendJSONToURL(String url,List<NameValuePair> params){

        //http post
        try{
            DefaultHttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(url);
            httppost.setEntity(new UrlEncodedFormEntity(params));
            httpclient.execute(httppost);

        }catch(Exception e){
            Log.e("log_tag", "Error in http connection "+e.toString());
        }
    }
}

ConnectPHPMySQLActivity.java

package com.eepis.android;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class ConnectPHPMySQLActivity extends Activity implements OnClickListener{
    //Deklarasi variabel yang digunakan
    private JSONParser jsonParser;
    private static String ServerURL = "http://10.0.2.2/tes/";    //alamat lokasi file untuk menangkap/mengirim JSON
    private static String pesan_tag = "pesan";
    TextView     makanan,minuman;
    Button        lihat;
    EditText    pesan;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //Deklarasi Object di XML Layout
        makanan=(TextView)findViewById(R.id.txt1);
        minuman=(TextView)findViewById(R.id.txt2);
        lihat=(Button)findViewById(R.id.btn1);
        lihat.setOnClickListener(this);
        pesan=(EditText)findViewById(R.id.edit1);
    }
    @Override
    public void onClick(View v) {
        //Memanggil class JSONParser
        jsonParser = new JSONParser();       
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("tag", pesan_tag));
        params.add(new BasicNameValuePair("id", pesan.getText().toString()));       
        //Mengirim parameter yang akan di tangkap server
        JSONObject json = jsonParser.getJSONFromUrl(ServerURL, params);
        try {
            makanan.setText(json.getString("makanan"));
            minuman.setText(json.getString("minuman"));
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }   
    }
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dp">
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Pilihan Menu"
        android:layout_marginTop="10dp"
        android:textSize="25dp" />
    <EditText
        android:id="@+id/edit1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="Isi antara 1-5" />
    <Button
        android:id="@+id/btn1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Lihat Data"/>
    <TextView
          android:id="@+id/txt1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Makanan"
        android:layout_marginTop="10dp"
        android:textSize="25dp" />
    <TextView
           android:id="@+id/txt2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Minuman"
        android:layout_marginTop="10dp"
        android:textSize="25dp"/>
</LinearLayout>

AndroidManifest.xml

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

    <uses-sdk android:minSdkVersion="10" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".ConnectPHPMySQLActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

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

Bagian 2 Buat API yang menghandle request dari Android

Pada server side kita membuat API yang menangkap Http-Post yang kita kirim via android dan mengembalikannya ke kita dalam bentuk JSON

SQL file

CREATE TABLE IF NOT EXISTS `pesanan` (
  `id` int(2) NOT NULL AUTO_INCREMENT,
  `makanan` varchar(15) NOT NULL,
  `minuman` varchar(15) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

INSERT INTO `pesanan` (`id`, `makanan`, `minuman`) VALUES
(1, 'nasi goreng', 'milkshake'),
(2, 'nasi campur', 'es jeruk'),
(3, 'martabak', 'jus alpukat');

index.php

<?php

/**
File ini untuk menghandle API Request
hasilnya di encoda dalam bentuk JSON
  /**
* check for POST request
*/
if (isset($_POST['tag']) && $_POST['tag'] != '') {
    // Tag
    $tag = $_POST['tag'];

    // Database Handler
    require_once 'include/DB_Functions.php';
    $db = new DB_Functions();

    // Response--> data yang akan dikembalikan
    $response = array("tag" => $tag, "success" => 0);
   
    if ($tag == 'pesan') {
        $id = $_POST['id'];
        $list=$db->getData($id);
        $response = $list;
        if($list!=false)    {
            $response["success"] = 1;
            echo json_encode($response);
        }
        else{
            $response["success"] = 0;
            echo json_encode($response);
        }
    }
   
    else {
        echo "Invalid Request";
    }
} else {
    echo "Access Denied";
}
?>

config.php

<?php

/**
* Database config variables
*/
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "tes");
?>

DB_Connect.php

<?php
class DB_Connect {

    // constructor
    function __construct() {
       
    }

    // destructor
    function __destruct() {
        // $this->close();
    }

    // Connecting to database
    public function connect() {
        require_once 'include/config.php';
        // connecting to mysql
        $con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
        // selecting database
        mysql_select_db(DB_DATABASE);

        // return database handler
        return $con;
    }

    // Closing database connection
    public function close() {
        mysql_close();
    }

}

?>

DB_Function.php

<?php

class DB_Functions {

    private $db;

    //put your code here
    // constructor
    function __construct() {
        require_once 'DB_Connect.php';
        // connecting to database
        $this->db = new DB_Connect();
        $this->db->connect();
    }

    // destructor
    function __destruct() {
       
    }
   
    public function getData($id) {
        $result=mysql_query("SELECT * FROM pesanan WHERE id='$id'");       
        $result=mysql_fetch_assoc($result);
        if ($result != null) {
            return $result;
        }
        else{
            return false;
        }
    }
}
?>

Bagian 3 Hasil running aplikasi

File JSON yang dikirim ke android berbentuk

{"id":"2","makanan":"nasi campur","minuman":"es jeruk","success":1}

Hasil tampilan pada aplikasi

image

Demikianlah tutorial kali ini semoga bisa bermanfaat buat kawan kawan sekalian. Untuk source projectnya bisa di download di alamat berikut

DOWNLOAD

Tutorial selanjutnya akan membahas tentang membuat login dengan MySQL dan PHP via Android. So Keep Update ya Open-mouthed smile

jika ada pertanyaan silahkan saja email saya di bagibagi23@gmail.com

Minggu, Februari 10, 2013

Jalan jalan di Car Free Day, Bandung

10022013582

Brrrr pagi pagi dingin amat disini. Yah begitulah kalo orang Surabaya yang biasanya berkutat dengan panasnya matahari berhadapan dengan dinginnya udara di Bandung. Padahal udah jam 6 tapi serasa masih berkabut wkwkwkwk. Sayangnya hal itu ga nyurutin semangat kita buat cari sehat sambil jalan jalan di Car Free Day bandung. yah kan jarang jarang kesini. lumayan juga buat jalan jalan. Di surabaya sih jam 6 udah rame(karena emang udah terang sih). kalo disini jam setengah 7 masih biasa lah, tapi semakin siang semakin rame loo.

Event event disini juga banyak yang menarik, yang pasti seperti CFD pada umumnya ada senam bareng biar tubuh tambah bugar dan sehat. Tidak lupa ada pos kesehatan untuk memeriksakan kesehatan kita loh. Wah enak bener sekalian jalan sekalian juga periksa kesehatan disini Open-mouthed smile. Sambil terus berjalan lihat kanan kiri celingak celinguk kesana kemari ga kerasa cukup jauh juga ya cfdnya haha. Habis kanan kiri banyak makanan yang bikin ngiler wkwkwkwk, eits ga cuman makanan aja, mojang yang gelis gelis euy bertebaran disana sini wkwkwkwkw. Kalo kata pembimbing di tempat kerja praktek ane. klo di Surabaya mah susah cari yang cantik eh klo disini susah cari yang jelek #ngakak Smile.

10022013584

Yah sayangnya ga bawa kamera bagus buat ngabadiin momen disana sini jadi pake kamera hape ajalah yang kejalannin Winking smile. Jalan jalan sambil foto foto ga jelas kadang asyik juga, sayangnya pas kita kemari cuman berempat coba kalo lebih banyak pasti lebih rame kaya slogannya Sampoerna Ijo tuh(Ga ada Loe ga Rame). Disini juga banyak komunitas komunitas yang datang sama kaya di Surabaya cuman lebih banyak yang jualan disini. Ada komunitas skater,BMX, Musik dll. cuman pas kita datang lagi ga ada event aja. Tapi ada juga pawai tentara loo. Orang orang berpakaian ala veteran sambil menenteng senjata(entah itu asli apa kaga tp menurut ane mirip banget). Ane pikir ada peringatan perang ato apa tapi kayaknya cuman pawai biasa. Meski begitu cukup keren lah TOTALITAS BGT Hot smile

Setelah berjalan cukup lama kita sih akhirnya istirahat sejenak, maklumlah jaman kuliah kurang olahraga sering tidur malam bikin badan tambah remuk aja Annoyed. Sehabis istirahat pun kita melanjutin perjalanan kembali. Ditengah jalan eh ada orang main pesawat pesawatan yang bisa balik abis dilempar. Temen ane eh tiba tiba tertarik ma gituan, awalnya sih ngapain koq temen ane ini ilang entah kemana. Eh ternyata dy beli mainan tadi Sarcastic smile yah mungkin masa kecil kurang bahagia kaleee #MKKBS. Lelah berjalan lagi kita minggir deh nyari sarapan yang enak. Kebetulan mumpung lagi di Bandung ada batagor. Wah kesempatan nih, ane langsung duduk n makan tuh batagor bareng temen2 wkwkwkwkwk Open-mouthed smile. Begitulan jalan jalan ane hari ini cuman share doang buat temen temen di Surabaya yang ke Bandung bisa mampir nih ke CFD disini ga kalah ma Surabaya looo….. jangan lupa bawa sangu yang banyak biar ga ngiler OK Open-mouthed smile

Sabtu, Februari 02, 2013

Aplikasi Cross Platform Dengan Titanium Appcelerator

images

Kebetulan banget, pas KP A.K.A. Kerja Praktek dapat ilmu baru nih. Sehubungan dengan proyek aplikasi mobile yang mau dibuat akan lebih menguntungkan kalo bisa di jalankan di blackberry dan IOS. Tapi ketika ditawarin mau develop pake IOS pun pikir pikir ulang lagi deh, ya gimana lagi kaga punya lapotp MAC Open-mouthed smile. Untungnya ada solusi tuh pake Titanium Appcelerator. Sebetulnya ini mirip dengan phonegap hanya saja hasil aplikasi yang diexport pake Titanium ini berupa native code sehingga lebih ringan ketika jalan di mobile dan kodingnya bisa direuse loo. Coba bandingin ma phonegap yang Web Engine dan agak lemot sih(meski smartphone jaman sekarang dah cukup bagus spec2nya tapi tetep aja ada beberapa yang kurang maksimal). Selain itu aplikasi ini pastinya FREE Smile.

0

Buat yang sering develop aplikasi android ketika pertama kali ngejalain aplikasi ini pasti akan merasa interfacenya eclipse banget. Bahasa yang digunakan disini adalah javascript. Namun ketika kompilasi dijalankan akan keluar native codenya baik itu android,IOS,atau BB bergantung pada Mobile SDK yang digunakan. Untuk menjalankan project pun lebih nmudah karena langsung bisa terhubung ke emulator sesuai SDK yang mau dijalankan. Instalasi emang agak panjang sih tapi ga usah khawatir selama mengikuti tutorial di webnya pasti bisa finish dengan selamat hahahaha Open-mouthed smile

ini nih kalo mau cari cari info tentang Titanium

http://www.appcelerator.com

klo tutorialnya ada banyak di slideshare dan disini nih http://www.titaniumtutorial.com/

Nah buat yang ingin mencoba buat aplikasi cross platform bisa dipake nih, sekali merengkung dayung 2-3 pulau terlampaui wkwkwkwk
Selamat berkarya ya ^_^