Senin, 09 Januari 2017

JSON XML Parsing + Android Code List Basic



Penampakannya sbb:

Saat kita menekan tombol menu akan muncul tampilan ADD New Data

listbasic.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">

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>


listitembasic.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="wrap_content"
    android:orientation="vertical" >

    <!-- txtdata1 - akan di sembunyikan - digunakan untuk mengirim variabel ke activity lain -->
    <TextView
        android:id="@+id/txtdata1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="gone" />

    <!-- Name Label -->
    <TextView
        android:id="@+id/txtdata2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingTop="6dip"
        android:paddingLeft="6dip"
        android:textSize="17dip"
        android:textStyle="bold" />
 
  <!-- txtdata3- akan di sembunyikan - digunakan untuk mengirim variabel ke activity lain -->
     <TextView
        android:id="@+id/txtdata3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="gone" />

</LinearLayout>


mahasiswalist.java
package com.lp2m.crudjson;

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

import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.lp2m.crudjson.R;

import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class MahasiswaList extends ListActivity {
String ip="";

private ProgressDialog pDialog;
JSONParser jParser = new JSONParser();
JSONArray myJSON = null;

ArrayList<HashMap<String, String>> arrayList;
private static final String TAG_SUKSES = "sukses";
private static final String TAG_record = "record";

private static final String TAG_kode_mahasiswa = "kode_mahasiswa";
private static final String TAG_nama = "nama";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listbasic);
arrayList = new ArrayList<HashMap<String, String>>();
ip=jParser.getIP();

new load().execute();

ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
String pk = ((TextView) view.findViewById(R.id.txtdata1)).getText().toString();
Intent i = new Intent(getApplicationContext(), Mahasiswa.class);
i.putExtra("pk", pk);
startActivityForResult(i, 100);
}});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 100) {// jika result code 100
Intent intent = getIntent();
finish();
startActivity(intent);
}
}

class load extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(MahasiswaList.this);
pDialog.setMessage("Load data. Silahkan Tunggu...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
protected String doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
JSONObject json = jParser.makeHttpRequest(ip+"mahasiswa_show.php", "GET", params);
Log.d("show: ", json.toString());
try {
int sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
myJSON = json.getJSONArray(TAG_record);
for (int i = 0; i < myJSON.length(); i++) {
JSONObject c = myJSON.getJSONObject(i);
String kode_mahasiswa= c.getString(TAG_kode_mahasiswa);
String nama = c.getString(TAG_nama);

HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_kode_mahasiswa, kode_mahasiswa);
map.put(TAG_nama, nama);

arrayList.add(map);
}
} else {
Intent i = new Intent(getApplicationContext(),Mahasiswa.class);
i.putExtra("pk", "");
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
}
catch (JSONException e) {e.printStackTrace();}
return null;
}

protected void onPostExecute(String file_url) {
pDialog.dismiss();
runOnUiThread(new Runnable() {
public void run() {
ListAdapter adapter = new SimpleAdapter(MahasiswaList.this, arrayList,R.layout.listitembasic, new String[] { TAG_kode_mahasiswa,TAG_nama},new int[] { R.id.txtdata1, R.id.txtdata2});
setListAdapter(adapter);
}
});}
}

public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0, 1, 0, "Add New").setIcon(R.drawable.add);
        return true;
    }

    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case 1:      
        Intent i = new Intent(getApplicationContext(), Mahasiswa.class);
i.putExtra("pk", "");
startActivityForResult(i, 100);
            return true;
        }
        return false;
    }

 
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}

}





JSON XML Parsing + Android Code List Lengkap

Kita akan mencoba membuat aplikasi dengan tampilan sbb:

Saat kita menekan tombol menu akan muncul Tombol Add dan tampilan akan siap dengan halaman kosong untuk input data:

Tombol yang tersedia hanya ada tombol ADD NEW DATA...saat disimpan automatis program akan merefresh tampilan list sehingga langsung nampak perubahannya...


Saat salah satu data kita pilih...maka akan muncul halaman baru :
dengan data sesuai data yang kita pilih dan tombol yang tersedia hanya tombol Ubah dan Hapus....


Jika data kita hapus atau ubah ..maka pada tampilan utama (list) akan langsung tampak perubahannya....


Kelebihan Aplikasi ini:
Hanya ada dua halaman....halaman Utama (ListView) dan halaman detail.....dengan tombol simpan atau ubah atau hapus akan menyesuaikan........

OK Kita Coba:

mahasiswa.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
 
<ScrollView
    android:layout_marginBottom="50dip"
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:background="#999999"
 >
<TableLayout android:id="@+id/TableLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#fff">

<TextView
android:id="@+id/txtMarquee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="14sp"
android:typeface="sans"
android:textColor="#ffffff"
android:background="#000000"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever">
</TextView>


  <ImageView
   android:id="@+id/myGambar" android:layout_centerHorizontal="true"
   android:src="@drawable/admin"
   android:layout_width="100dp"
   android:layout_height="100dp"
   />

 
<TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content" android:layout_height="wrap_content">

      <TextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="kode_mahasiswa"
          android:textColor="#000000" />

      <EditText
          android:id="@+id/txtkode_mahasiswa"
          android:textColor="#000000"
          android:hint="kode_mahasiswa" />

</TableRow>  

<TableRow android:id="@+id/TableRow02" android:layout_width="wrap_content" android:layout_height="wrap_content">
      <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#000000"
        android:text="nama" />
      <EditText android:id="@+id/txtnama"
android:textColor="#000000"
          android:hint="nama" />
</TableRow>  


<TableRow android:id="@+id/TableRow03" android:layout_width="wrap_content" android:layout_height="wrap_content">
      <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#000000"
        android:text="telepon" />
      <EditText android:id="@+id/txttelepon"
android:textColor="#000000"
          android:hint="telepon"
          />
</TableRow>  


<TableRow android:id="@+id/TableRow04" android:layout_width="wrap_content" android:layout_height="wrap_content">
      <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#000000"
        android:text="email" />
      <EditText android:id="@+id/txtemail"
          android:textColor="#000000"
          android:hint="email"
          />
          />
</TableRow>  


<TableRow android:id="@+id/TableRow05" android:layout_width="wrap_content" android:layout_height="wrap_content">
      <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#000000"
        android:text="keterangan" />
  <TextView android:text="" />
</TableRow>  

 <EditText android:id="@+id/txtketerangan"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:lines="2"
        android:textColor="#000000"
        android:hint="keterangan"
        android:gravity="top"/>

<TableRow android:id="@+id/TableRow06" android:layout_width="wrap_content" android:layout_height="wrap_content">
      <TextView
        android:layout_width="wrap_content"
        android:textColor="#000000"
        android:layout_height="wrap_content"
        android:text="status" />
      <EditText android:id="@+id/txtstatus"
          android:textColor="#000000"
          android:hint="status"
          />
</TableRow>  

  <Button android:id="@+id/btnproses"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Proses"
        android:layout_weight="1"/>

  <Button android:id="@+id/btnhapus"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Hapus"
        android:visibility="gone"
        android:layout_weight="1"/>

</TableLayout>
</ScrollView>
</RelativeLayout>



listlist.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">
    <ListView
        android:id="@+id/listlkp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:divider="#b5b5b5"
        android:dividerHeight="1dp"
        android:listSelector="@drawable/list_selector" />

</LinearLayout>


listshow.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/list_selector"
    android:orientation="horizontal"
    android:padding="5dip" >

<!--  ListRow Left sied Thumbnail image -->
<LinearLayout android:id="@+id/thumbnail" 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dip"
        android:layout_alignParentLeft="true"
        android:background="@drawable/image_bg" 
   android:layout_marginRight="5dip">
        
<ImageView     
android:id="@+id/list_imagelkp"   
       android:layout_width="50dip"
       android:layout_height="50dip"
       android:src="@drawable/gprofile"/>
        
</LinearLayout>
    
<!-- Deskripsi LP2M ARAY-->
    <TextView
        android:id="@+id/deskripsilkp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail"
        android:text="From zero to hero"
        android:textColor="#040404"
        android:typeface="sans" 
        android:textSize="15dip"
        android:textStyle="bold"/>

<!-- Judul LP2M ARAY-->
    <TextView
        android:id="@+id/namalkp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/deskripsilkp"
        android:textColor="#343434"
        android:textSize="10dip"
        android:layout_marginTop="1dip"
        android:layout_toRightOf="@+id/thumbnail"
        android:text="Just gona stand there and ..." />

<!-- Bar LP2M ARAY -->
    <TextView
        android:id="@+id/barlkp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@id/deskripsilkp"
        android:gravity="right"
        android:text="5:45"
        android:layout_marginRight="5dip"
        android:textSize="10dip"
        android:textColor="#10bcc9"
        android:textStyle="bold"/>
      
     <!-- Rightend Arrow -->    
     <ImageView android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:src="@drawable/arrow"
      android:layout_alignParentRight="true"
      android:layout_centerVertical="true"/>

</RelativeLayout>


Adapun java yang dibuat adalah sbb:

JSONParser.java
package listiconlkplp2maray.com;

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.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URLEncodedUtils;
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 = "";

public JSONParser() {}

String getIP() {
return "http://192.168.1.29/arraystudi/masterCSSmysqliAndroid/mahasiswa/";
}

public JSONObject makeHttpRequest(String url, String method,List<NameValuePair> params) {
try {
if(method == "POST"){
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();
}
else if(method == "GET"){
DefaultHttpClient httpClient = new DefaultHttpClient();
String paramString = URLEncodedUtils.format(params, "utf-8");
url += "?" + paramString;
HttpGet httpGet = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(httpGet);
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();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}

try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}

return jObj;
}
}



listMahasiswa.java
package listiconlkplp2maray.com;

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

import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

public class listMahasiswa extends Activity {
String ip="";

private ProgressDialog pDialog;
JSONParser jParser = new JSONParser();
JSONArray myJSON = null;
ArrayList<HashMap<String, String>> arrayList;
private static final String TAG_SUKSES = "sukses";
private static final String TAG_record = "record";
private static final String TAG_kode_mahasiswa = "kode_mahasiswa";
private static final String TAG_nama = "nama";
private static final String TAG_telepon = "telepon";
private static final String TAG_email = "email";
private static final String TAG_keterangan = "keterangan";
private static final String TAG_status = "status";
int jd;
String[]arr_kode_mahasiswa;
String[]arr_nama;
String[]arr_telepon;
String[]arr_email;
String[]arr_status;
String[]arr_keterangan;

static final String KEY_record = "record";
public static final String KEY_nama = "nama";
public static final String KEY_status = "status";
public static final String KEY_email = "email";
public static final String KEY_telepon = "telepon";
public static final String KEY_keterangan = "keterangan";
public static final String KEY_gambar = "gambar";
public static final String KEY_kode_mahasiswa = "kode_mahasiswa";

ListView list;
listDataMahasiswa adapter;

    @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listlist);

ip=jParser.getIP();
arrayList = new ArrayList<HashMap<String, String>>();
new load().execute();

    }
    
    //++++++++++++++++++++++++++++++++++++++++++++++++++++
 
    class load extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(listMahasiswa.this);
pDialog.setMessage("Load data. Silahkan Tunggu...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
protected String doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
JSONObject json = jParser.makeHttpRequest(ip+"mahasiswa_show.php", "GET", params);
Log.d("show: ", json.toString());
try {
int sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
myJSON = json.getJSONArray(TAG_record);
jd=myJSON.length();
arr_kode_mahasiswa=new String[jd];
arr_nama=new String[jd];
arr_telepon=new String[jd];
arr_email=new String[jd];
arr_status=new String[jd];
arr_keterangan=new String[jd];
for (int i = 0; i < jd; i++) {
JSONObject c = myJSON.getJSONObject(i);
String lkode_mahasiswa= c.getString(TAG_kode_mahasiswa);
String lnama = c.getString(TAG_nama);
String ltelepon= c.getString(TAG_telepon);
String lemail= c.getString(TAG_email);
String lketerangan= c.getString(TAG_keterangan);
String lstatus= c.getString(TAG_status);
arr_kode_mahasiswa[i]=lkode_mahasiswa;
arr_nama[i]=lnama;
arr_telepon[i]=ltelepon;
arr_email[i]=lemail;
arr_status[i]=lstatus;
arr_keterangan[i]=lketerangan;
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_kode_mahasiswa, lkode_mahasiswa);
map.put(TAG_nama, lnama);
map.put(KEY_telepon, ltelepon);
map.put(KEY_email, lemail);
map.put(KEY_status, lstatus);
map.put(KEY_keterangan, lketerangan);
arrayList.add(map);
}
} else {
Intent i = new Intent(getApplicationContext(),Mahasiswa.class);
i.putExtra("pk", "");
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivityForResult(i, 100);
}
catch (JSONException e) {e.printStackTrace();}
return null;
}

protected void onPostExecute(String file_url) {
pDialog.dismiss();
runOnUiThread(new Runnable() {
public void run() {
list=(ListView)findViewById(R.id.listlkp);
       adapter=new listDataMahasiswa(listMahasiswa.this, arrayList);//recordsList        
       list.setAdapter(adapter);
       list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int p, long kode_mahasiswa) {
String pk = ((TextView) view.findViewById(R.id.barlkp)).getText().toString();
Intent i = new Intent(listMahasiswa.this, Mahasiswa.class);
i.putExtra("pk", pk);
startActivityForResult(i, 100);
Toast.makeText(listMahasiswa.this,pk+ " telah dipilih....", Toast.LENGTH_LONG).show(); 
}});
}});}
}
    //++++++++++++++++++++++++++++++++++++++++++++++++++++
    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 100) {// jika result code 100
Intent intent = getIntent();
finish();
startActivity(intent);
}
}
    
    

public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0, 1, 0, "Add New").setIcon(R.drawable.add);
        return true;
    }

    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case 1:         
        Intent i = new Intent(getApplicationContext(), Mahasiswa.class);
i.putExtra("pk", "");
startActivityForResult(i, 100);
            return true;
        }
        return false;
    }

    
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}   
}



listDataMahasiswa.java
package listiconlkplp2maray.com;

import java.util.ArrayList;
import java.util.HashMap;

import listiconlkplp2maray.com.R;
import listiconlkplp2maray.com.listMahasiswa;


import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class listDataMahasiswa extends BaseAdapter {

    private Activity activity;
    private ArrayList<HashMap<String, String>> data;
    private static LayoutInflater inflater=null;
    
    public listDataMahasiswa(Activity a, ArrayList<HashMap<String, String>> d) {
        activity = a;
        data=d;
        inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    public int getCount() {
        return data.size();
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }
    
    public View getView(int position, View convertView, ViewGroup parent) {
        View vi=convertView;
        if(convertView==null)
            vi = inflater.inflate(R.layout.listshow, null);

        TextView txtnama = (TextView)vi.findViewById(R.id.deskripsilkp); 
        TextView txtdeskripsi = (TextView)vi.findViewById(R.id.namalkp); 
        TextView txtbar = (TextView)vi.findViewById(R.id.barlkp); 
        ImageView mygambar=(ImageView)vi.findViewById(R.id.list_imagelkp);
        
        HashMap<String, String> mylist = new HashMap<String, String>();
        mylist = data.get(position);
        
        String kode=mylist.get(listMahasiswa.KEY_kode_mahasiswa);
        String nama=mylist.get(listMahasiswa.KEY_nama);
        String telepon=mylist.get(listMahasiswa.KEY_telepon);
        String email=mylist.get(listMahasiswa.KEY_email);
        String keterangan=mylist.get(listMahasiswa.KEY_keterangan);
        String status=mylist.get(listMahasiswa.KEY_status);

        txtnama.setText(nama);
        txtdeskripsi.setText("telepon:"+telepon+"/"+email+"\nstatus:"+status+"."+keterangan);
        txtbar.setText(kode);
        
        int gb=R.drawable.icon1;
        mygambar.setImageResource(gb);
        
        return vi;
    }
}


Mahasiswa.java

package listiconlkplp2maray.com;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.Html;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Mahasiswa extends Activity {
String ip="";
String kode_mahasiswa;
String kode_mahasiswa0="";
EditText txtKode_mahasiswa;
EditText txtNama;
EditText txtTelepon;
EditText txtEmail;
EditText txtKeterangan;
EditText txtStatus;
Button btnProses;
Button btnHapus;

private ProgressDialog pDialog;
JSONParser jsonParser = new JSONParser();

private static final String TAG_SUKSES = "sukses";
private static final String TAG_record = "record";
private static final String TAG_nama = "nama";
private static final String TAG_telepon = "telepon";
private static final String TAG_email = "email";
private static final String TAG_keterangan = "keterangan";
private static final String TAG_status = "status";

@Override  
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mahasiswa);
ip=jsonParser.getIP();
callMarquee();
txtKode_mahasiswa = (EditText) findViewById(R.id.txtkode_mahasiswa);
txtNama= (EditText) findViewById(R.id.txtnama);
txtEmail= (EditText) findViewById(R.id.txtemail);
txtTelepon= (EditText) findViewById(R.id.txttelepon);
txtKeterangan = (EditText) findViewById(R.id.txtketerangan);
txtStatus= (EditText) findViewById(R.id.txtstatus);
btnProses= (Button) findViewById(R.id.btnproses);
btnHapus = (Button) findViewById(R.id.btnhapus);
 
Intent i = getIntent(); 
kode_mahasiswa0 = i.getStringExtra("pk");
if(kode_mahasiswa0.length()>0){
new get().execute();
btnProses.setText("Update Data");
btnHapus.setVisibility(View.VISIBLE);
}
else{
btnProses.setText("Add New Data");
btnHapus.setVisibility(View.GONE);
}

btnProses.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
kode_mahasiswa= txtKode_mahasiswa.getText().toString();
String lnama= txtNama.getText().toString();
String lemail= txtEmail.getText().toString();
String ltelepon= txtTelepon.getText().toString();
String lketerangan= txtKeterangan.getText().toString();
String lstatus= txtStatus.getText().toString();
if(kode_mahasiswa.length()<1){lengkapi("kode_mahasiswa");}
else if(lnama.length()<1){lengkapi("nama");}
else if(lemail.length()<1){lengkapi("email");}
else if(ltelepon.length()<1){lengkapi("telpon");}
else{
if(kode_mahasiswa0.length()>0){
new update().execute();
}
else{
new save().execute();
}
}//else
}});

btnHapus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
new del().execute();
}});
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
class get extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Mahasiswa.this);
pDialog.setMessage("Load data detail. Silahkan tunggu...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
protected String doInBackground(String... params) {
int sukses;
try {
List<NameValuePair> params1 = new ArrayList<NameValuePair>();
params1.add(new BasicNameValuePair("kode_mahasiswa", kode_mahasiswa0));
String url=ip+"mahasiswa_detail.php";
Log.v("detail",url);
JSONObject json = jsonParser.makeHttpRequest(url, "GET", params1);
Log.d("detail", json.toString());
sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
JSONArray myObj = json.getJSONArray(TAG_record); // JSON Array
final JSONObject myJSON = myObj.getJSONObject(0);
runOnUiThread(new Runnable() {
public void run() {
try {
txtKode_mahasiswa.setText(kode_mahasiswa0);
txtNama.setText(myJSON.getString(TAG_nama));
txtTelepon.setText(myJSON.getString(TAG_telepon));
txtEmail.setText(myJSON.getString(TAG_email));
txtKeterangan.setText(myJSON.getString(TAG_keterangan));
txtStatus.setText(myJSON.getString(TAG_status));
catch (JSONException e) {e.printStackTrace();}
}});
}
else{
// jika id tidak ditemukan
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String file_url) {pDialog.dismiss();}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

class save extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Mahasiswa.this);
pDialog.setMessage("Menyimpan data ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
protected String doInBackground(String... args) {
kode_mahasiswa = txtKode_mahasiswa.getText().toString();
String lnama= txtNama.getText().toString();
String lemail= txtEmail.getText().toString();
String ltelepon= txtTelepon.getText().toString();
String lketerangan= txtKeterangan.getText().toString();
String lstatus= txtStatus.getText().toString();
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("kode_mahasiswa0", kode_mahasiswa0));
params.add(new BasicNameValuePair("kode_mahasiswa", kode_mahasiswa));
params.add(new BasicNameValuePair("nama", lnama));
params.add(new BasicNameValuePair("email", lemail));
params.add(new BasicNameValuePair("telepon", ltelepon));
params.add(new BasicNameValuePair("keterangan", lketerangan));
params.add(new BasicNameValuePair("status", lstatus));
String url=ip+"mahasiswa_add.php";
Log.v("add",url);
JSONObject json = jsonParser.makeHttpRequest(url,"POST", params);
Log.d("add", json.toString());
try {
int sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
Intent i = getIntent();
setResult(100, i);
finish();
} else {
// gagal update data
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}

protected void onPostExecute(String file_url) {pDialog.dismiss();}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

class update extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Mahasiswa.this);
pDialog.setMessage("Mengubah data ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
protected String doInBackground(String... args) {
kode_mahasiswa = txtKode_mahasiswa.getText().toString();
String lnama= txtNama.getText().toString();
String lemail= txtEmail.getText().toString();
String ltelepon= txtTelepon.getText().toString();
String lketerangan= txtKeterangan.getText().toString();
String lstatus= txtStatus.getText().toString();
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("kode_mahasiswa0", kode_mahasiswa0));
params.add(new BasicNameValuePair("kode_mahasiswa", kode_mahasiswa));
params.add(new BasicNameValuePair("nama", lnama));
params.add(new BasicNameValuePair("email", lemail));
params.add(new BasicNameValuePair("telepon", ltelepon));
params.add(new BasicNameValuePair("keterangan", lketerangan));
params.add(new BasicNameValuePair("status", lstatus));
String url=ip+"mahasiswa_update.php";
Log.v("update",url);
JSONObject json = jsonParser.makeHttpRequest(url,"POST", params);
Log.d("add", json.toString());
try {
int sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
Intent i = getIntent();
setResult(100, i);
finish();
} else {
// gagal update data
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}

protected void onPostExecute(String file_url) {pDialog.dismiss();}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
class del extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Mahasiswa.this);
pDialog.setMessage("Menghapus data...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}

protected String doInBackground(String... args) {
int sukses;
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("kode_mahasiswa", kode_mahasiswa0));

String url=ip+"mahasiswa_del.php";
Log.v("delete",url);
JSONObject json = jsonParser.makeHttpRequest(url, "GET", params);
Log.d("delete", json.toString());
sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
Intent i = getIntent();
setResult(100, i);
finish();
}
catch (JSONException e) {e.printStackTrace();}
return null;  
}

protected void onPostExecute(String file_url) {pDialog.dismiss();}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public void lengkapi(String item){
 new AlertDialog.Builder(this)
 .setTitle("Lengkapi Data")
 .setMessage("Silakan lengkapi data "+item +" !")
 .setNeutralButton("Tutup", new DialogInterface.OnClickListener() {
  public void onClick(DialogInterface dlg, int sumthin) {
  finish();
  }}).show();
 
 
void callMarquee(){
         Calendar cal = Calendar.getInstance();          
         int jam = cal.get(Calendar.HOUR);
         int menit= cal.get(Calendar.MINUTE);
         int detik= cal.get(Calendar.SECOND);

         int tgl= cal.get(Calendar.DATE);
         int bln= cal.get(Calendar.MONTH);
         int thn= cal.get(Calendar.YEAR);

         String stgl=String.valueOf(tgl)+"-"+String.valueOf(bln)+"-"+String.valueOf(thn);
         String sjam=String.valueOf(jam)+":"+String.valueOf(menit)+":"+String.valueOf(detik);
        
         TextView  txtMarquee=(TextView)findViewById(R.id.txtMarquee);
         txtMarquee.setSelected(true);
         String kata="Selamat Datang @lp2maray.com Aplikasi Android  "+stgl+"/"+sjam+" #";
         String kalimat=String.format("%1$s",TextUtils.htmlEncode(kata));
         txtMarquee.setText(Html.fromHtml(kalimat+kalimat+kalimat)); 
  }
 
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}   
 
}



Dengan penampakan servernya adalah sebagai berikut:


mahasiswashow.php
<?php 
require_once"../konmysqli.php";
$respon = array();
$sql="SELECT * FROM `$tbmahasiswa` order by `kode_mahasiswa` desc";
$jum=getJum($conn,$sql);
if ($jum> 0) {
    $respon["record"] = array();  
$arr=getData($conn,$sql);
foreach($arr as $d) {
        $record = array();
        $record["kode_mahasiswa"] = $d["kode_mahasiswa"];
        $record["nama"] = $d["nama"];
        $record["telepon"] = $d["telepon"];
$record["email"] = $d["email"];
$record["keterangan"] = $d["keterangan"];
$record["status"] = $d["status"];
        
        array_push($respon["record"], $record);       //tambahkan array 'record' pada array final 'respon'
    }
    // sukses
    $respon["sukses"] = 1;
$respon["pesan"] = "$jum record";
    echo json_encode($respon);
} else {
    // jika data kosong
$respon["record"]="";
    $respon["sukses"] = 0;
    $respon["pesan"] = "0 record";
    echo json_encode($respon);
}
?>


<?php

function getJum($conn,$sql){
  $rs=$conn->query($sql);
  $jum= $rs->num_rows;
$rs->free();
return $jum;
}

function getData($conn,$sql){
$rs=$conn->query($sql);
$rs->data_seek(0);
$arr = $rs->fetch_all(MYSQLI_ASSOC);
$rs->free();
return $arr;
}
?>

mahasiswa_add.php

<?php 
require_once"../konmysqli.php";

$respon = array();

if (isset($_POST['nama']) && isset($_POST['telepon'])) {    
$kode_mahasiswa= $_POST['kode_mahasiswa'];
$nama = $_POST['nama'];
$telepon = $_POST['telepon'];
$email = $_POST['email'];
$keterangan = $_POST['keterangan'];
$status = $_POST['status'];

$sql="INSERT INTO `$tbmahasiswa`
(`kode_mahasiswa`, `nama`, `telepon`, `email`,`keterangan`, `status`) VALUES
('$kode_mahasiswa', '$nama', '$telepon', '$email', '$keterangan', '$status')";
$simpan=process($conn,$sql);

   if($simpan){
        $respon["sukses"] = 1;
        $respon["pesan"] = "1 sukses tambah.";
        echo json_encode($respon);
    } else {
        $respon["sukses"] = 0;
        $respon["pesan"] = "0 gagal tambah";
        echo json_encode($respon);
    }
} else {
    $respon["sukses"] = 0;
    $respon["pesan"] = "? lengkapi data";
    echo json_encode($respon);
}
?>




<?php
function process($conn,$sql){
$s=false;
$conn->autocommit(FALSE);
try {
  $rs = $conn->query($sql);
  if($rs){
     $conn->commit();
   $last_inserted_id = $conn->insert_id;
  $affected_rows = $conn->affected_rows;
  $s=true;
  }
catch (Exception $e) {
echo 'fail: ' . $e->getMessage();
  $conn->rollback();
}
$conn->autocommit(TRUE);
return $s;
}
?>


mahasiswa_detail.php

<?php 
require_once"../konmysqli.php";
$respon = array();

if (isset($_GET["kode_mahasiswa"])) {
    $kode_mahasiswa = $_GET['kode_mahasiswa'];
$sql="SELECT * FROM `$tbmahasiswa` WHERE `kode_mahasiswa` = '$kode_mahasiswa'";
    $jum=getJum($conn,$sql);
    if ($jum>0) {
            $d=getField($conn,$sql);
   $record = array();
            $record["kode_mahasiswa"] = $d["kode_mahasiswa"];
$record["nama"] = $d["nama"];
$record["telepon"] = $d["telepon"];
$record["email"] = $d["email"];
$record["keterangan"] = $d["keterangan"];
$record["status"] = $d["status"];

            $respon["sukses"] = 1;
            $respon["record"] = array();
            array_push($respon["record"], $record);
             $respon["pesan"] = "$jum record";
echo json_encode($respon);
        } else {
            $respon["sukses"] = 0;
            $respon["pesan"] = "0 record";
            echo json_encode($respon);
        }

} else {
    $respon["sukses"] = 0;
    $respon["pesan"] = "? lengkapi data";
    echo json_encode($respon);
}
?>

<?php

function getJum($conn,$sql){
  $rs=$conn->query($sql);
  $jum= $rs->num_rows;
$rs->free();
return $jum;
}

function getField($conn,$sql){
$rs=$conn->query($sql);
$rs->data_seek(0);
$d= $rs->fetch_assoc();
$rs->free();
return $d;
}
?>



mahasiswa_update.php

<?php 
require_once"../konmysqli.php";
$respon = array();

if (isset($_POST['kode_mahasiswa']) && isset($_POST['nama']) && isset($_POST['telepon'])) {    
$kode_mahasiswa0= $_POST['kode_mahasiswa0'];
$kode_mahasiswa= $_POST['kode_mahasiswa'];
$nama = $_POST['nama'];
$telepon = $_POST['telepon'];
$email = $_POST['email'];
$keterangan = $_POST['keterangan'];
$status = $_POST['status'];

$sql="UPDATE `$tbmahasiswa` SET 
`kode_mahasiswa` = '$kode_mahasiswa',
`nama` = '$nama', 
`telepon` = '$telepon', 
`email` = '$email', 
`keterangan` = '$keterangan', 
`status` = '$status' 
WHERE `kode_mahasiswa` = '$kode_mahasiswa0'";
    $ubah=process($conn,$sql);

    if ($ubah) {
        $respon["sukses"] = 1;
        $respon["pesan"] = "1 sukses update.";     
        echo json_encode($respon);
    } else {
        $respon["sukses"] = 0;
        $respon["pesan"] = "Gagal update data.";
        echo json_encode($respon);
        
    }
} else {
    $respon["sukses"] = 0;
    $respon["pesan"] = "data belum terset/terisi";
    echo json_encode($respon);
}
?>



<?php
function process($conn,$sql){
$s=false;
$conn->autocommit(FALSE);
try {
  $rs = $conn->query($sql);
  if($rs){
  $conn->commit();
   $last_inserted_id = $conn->insert_id;
  $affected_rows = $conn->affected_rows;
  $s=true;
  }
catch (Exception $e) {
echo 'fail: ' . $e->getMessage();
  $conn->rollback();
}
$conn->autocommit(TRUE);
return $s;
}
?>


mahasiswa_del.php

<?php 
require_once"../konmysqli.php";
$response = array();

if (isset($_GET['kode_mahasiswa'])) {
    $kode_mahasiswa = $_GET['kode_mahasiswa'];
$sql="DELETE FROM `$tbmahasiswa` WHERE `kode_mahasiswa` = '$kode_mahasiswa'";
$hapus=process($conn,$sql);
   if($hapus){
        $respon["sukses"] = 1;
        $respon["pesan"] = "1 berhasil dihapus";
        echo json_encode($respon);
    } else {
        $respon["sukses"] = 0;
        $respon["pesan"] = "0 Gagal dihapus";
        echo json_encode($respon);
    }
} else {
    $respon["sukses"] = 0;
    $respon["pesan"] = "? lengkapi data";
    echo json_encode($respon);
}
?>



<?php
function process($conn,$sql){
$s=false;
$conn->autocommit(FALSE);
try {
  $rs = $conn->query($sql);
  if($rs){
    $conn->commit();
   $last_inserted_id = $conn->insert_id;
  $affected_rows = $conn->affected_rows;
  $s=true;
  }
catch (Exception $e) {
echo 'fail: ' . $e->getMessage();
  $conn->rollback();
}
$conn->autocommit(TRUE);
return $s;
}
?>

Ok ...bisa yaa...Saya dan Anda pasti Bisa....