Iklan Header

Rabu, 28 Mei 2014

Cara mengkoneksi device android dengan MySQL



<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- In Articles Ads -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-3786943708043906"
     data-ad-slot="8852105979"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>

Hey guys, gimana kabarnya..??, penulis berharap teman2 semua masih semangat untuk belajar..hehehe..

Pada postingan kali ini, penulis ingin berbagi tentang Bagaimana membuat aplikasi client-server berbasis android dengan DBMS servernya MySQL.

Nah, pada tutorial kali ini kita membutuhkan script PHP untuk menghubungkan antara device android dengan MySQL. Ok guys tanpa basa-basi lagi langsung saja ikuti langkah berikut:

1 . Buat database baru dengan nama “akademik” dan buat tabel baru dengan nama “mhs” dengan strukturnya seperti gambar berikut berikut:


2 . Buat file php dan simpan dengan nama “koneksi.php” dan simpan file php tersebut dalam database server anda, jika anda menggunakan XAMPP simpan didalam direktori C:\xampp\htdocs\ dan jika anda menggunkan WAMP simpan didalam direktori C:\wamp\www\

adapun script PHP nya sebagai berikut:

<?php
$nobp=$_POST['nobp'];
$nama=$_POST['nama'];
$jurusan=$_POST['jurusan'];
$konek=mysql_connect("localhost","root","");
mysql_select_db("akademik");
$query="insert into mhs values('$nobp','$nama','$jurusan')";
$result=mysql_query($query);
?>

Setelah anda membuat script php diatas dan menyimpannya di database server anda, Sekarang buat project android baru dengan nama Prjakademik dengan ketentuan seperti berikut:

3 . Desain layoutnya dengan coding main.xml seperti berikut:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<EditText
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/Enobp"
android:hint="Masukan NoBP"/>
<EditText
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/Enama"
android:hint="Masukan Nama"/>
<EditText
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/Ejurusan"
android:hint="Masukan Jurusan"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/simpan"
android:text="Simpan"/>
</LinearLayout>
 
Coding diatas akan menghasilkan layout seperti gambar berikut:

4 . sekarang beralih ke package javanya dan buat class baru dengan cara klik kanan pada nama paketnya -> new -> class seperti gambar berikut:

5 . Buat kelas baru dengan nama kelasnya CustomHttpClient dan ketikan coding berikut untuk kelas tersebut:


package com.fikri;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.ArrayList;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
public class CustomHttpClient {
public static final int HTTP_TIMEOUT=30*1000;
private static HttpClient mHttpClient;

private static HttpClient geHttpClient() {
       if (mHttpClient==null){
              mHttpClient=new DefaultHttpClient();
              final HttpParams params=mHttpClient.getParams();
              HttpConnectionParams.setConnectionTimeout(params, HTTP_TIMEOUT);
              HttpConnectionParams.setSoTimeout(params, HTTP_TIMEOUT);
              ConnManagerParams.setTimeout(params, HTTP_TIMEOUT);
       }
       return mHttpClient;
}
public static String executeHttpPost(String url,ArrayList<NameValuePair>posparameter)throws Exception {
       BufferedReader in=null;
       try{
              HttpClient client=geHttpClient();
              HttpPost request=new HttpPost(url);
              UrlEncodedFormEntity formEntity=new UrlEncodedFormEntity(posparameter);
              request.setEntity(formEntity);
              HttpResponse respon=client.execute(request);
              in=new BufferedReader(new InputStreamReader(respon.getEntity().getContent()));
              StringBuffer sb=new StringBuffer("");
              String line="";
              String NL=System.getProperty("line.separator");
              while ((line=in.readLine())!=null) {
                     sb.append(line+NL);
              }
              in.close();
              String result=sb.toString();
              return result;
       }finally{
              if(in != null){
                     try{
                           in.close();
                     }catch(IOException e){
                           e.printStackTrace();
                     }
              }
       }
      
}
public static String executeHttpGet(String url)throws Exception{
       BufferedReader in=null;
       try{
              HttpClient client=geHttpClient();
              HttpGet request=new HttpGet();
              request.setURI(new URI(url));
              HttpResponse respon=client.execute(request);
              in=new BufferedReader(new InputStreamReader(respon.getEntity().getContent()));
              StringBuffer sb=new StringBuffer("");
              String line="";
              String NL=System.getProperty("line.separator");
              while ((line=in.readLine())!=null) {
                     sb.append(line + NL);     
              }
              in.close();
              String result=sb.toString();
              return result;
       }finally{
              if(in != null){
                     try{
                           in.close();
                     }catch(IOException e){
                           e.printStackTrace();
                     }
              }
       }
      
}
}

6 . Pada aktivitas1.java ketikan coding berikut:
package com.fikri;

import java.io.IOException;
import java.util.ArrayList;

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

import android.R.string;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebChromeClient.CustomViewCallback;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class aktivitas1 extends Activity {
    /** Called when the activity is first created. */
       EditText nobp,nama,jur;
       Button sim;
      
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        nobp=(EditText)findViewById(R.id.Enobp);
        nama=(EditText)findViewById(R.id.Enama);
        jur=(EditText)findViewById(R.id.Ejurusan);
        sim=(Button)findViewById(R.id.simpan);
        sim.setOnClickListener(new OnClickListener() {
                    

                     public void onClick(View v) {
                           // TODO Auto-generated method stub
                           ArrayList<NameValuePair> postparameter=new ArrayList<NameValuePair>();
                           postparameter.add(new BasicNameValuePair("nobp", nobp.getText().toString()));
                           postparameter.add(new BasicNameValuePair("nama", nama.getText().toString()));
                           postparameter.add(new BasicNameValuePair("jurusan", jur.getText().toString()));
                           String respon=null;
                           try{
                                  respon=CustomHttpClient.executeHttpPost("http://10.0.2.2/android/koneksi.php",postparameter);
                                  String res=respon.toString();
                                  res=res.trim();
                                  res=res.replaceAll("\\s", "");
                                  if(res.equals("1"))
                                         Toast.makeText(getApplicationContext(),"Data Sudah Tersimpan" , Toast.LENGTH_LONG).show();
                                  else
                                         Toast.makeText(getApplicationContext(),"Data Sudah Tersimpan Ke Server" , Toast.LENGTH_LONG).show();
                           }catch(Exception e){
                                  Toast.makeText(getApplicationContext(), "Error :"+ e.toString(), Toast.LENGTH_LONG).show();
                           }
                          
                     }
              }
        );
       
    }
}


7 . Ubah Coding AndroidManifest.xml menjadi seperti berikut:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.fikri"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".aktivitas1"
                  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>
    <uses-sdk android:minSdkVersion="8" />
    <uses-permission android:name="android.permission.INTERNET"/>
</manifest>


8 . silahkan running programnya maka akan terlihat hasilnya seperti gambar berikut:


9 . Isikan datanya dan klik tombol simpan maka data yang dinputkan akan masuk kedatabase server  seperti gambar berikut ini:

Nah, sampai disini dulu tutorial kali ini gan semoga bermanfaat dan terima kasih telah berkunjung.


12 komentar:

  1. mas saya mw nanya, saya udah ikutin tutorial di atas, tp error, error ny seperti ini " error : androi.os NetworkOnMainThreadException "..
    itu kenapa ya mas?

    BalasHapus
    Balasan
    1. coba cek lagi codingnya mas..
      use permisionnya udah ditambah belum..?

      Hapus
    2. prmasalahannya sma nh kya mas haris
      coding udah bner
      use permission udah dtambhin
      tp tetep aja kya gtu

      Hapus
  2. misi gan ane mau tanya itu yang dipake buat databasenya pake sqlyog apa sqlserver?

    BalasHapus
  3. CustomHttpClient.executeHttpPost("http://10.0.2.2/android/koneksi.php",postparameter);

    Gan ini maksudnya apa kok tiba2 ada folder android? Koneksi.php itu ditaruh di dalam folder xampp/htdocs/android ?

    BalasHapus
    Balasan
    1. itu maksudnya file phpny bernama koneksi.php yang berada dalam folder android
      kalo pake wamp berarti wamp/www/android/koneksi.php
      kalo pake wamp berarti xampp/htdocs/android/koneksi.php

      Hapus
    2. knapa ya ada "no address associated with hostname"?

      Hapus
  4. mantap mas tutorialnya, semangat terus menulis,
    silahkan kunjungi balik ke website kami CariKode.Com

    BalasHapus
  5. mas.. kalau ingin input data dari android.. dan simpan ke server dengan komunikasi internet bagaimana mas..??

    BalasHapus
  6. kalo mau ngehubungin database ke android apa harus beli hosting dulu ? soalnya aplikasi yang dibangun semacam e-commerce gitu jadi harus selalu di update buat ketersediaan stock barang, terimakasih

    BalasHapus
    Balasan
    1. kalo mau bikin aplikasi e-commerce saya rekomendasikan pake web mobile aja.! lalu di buak apk filenya.!

      Hapus