LAMPIRAN
Listing Program
Login.xml
<?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"
android:layout_gravity="center|center_vertical" android:background="#001122"
>
<TextView
android:id="@+id/tv0" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="Aplikasi Inventaris Usaha Kecil Menengah" android:textSize="20sp"
android:gravity="center" android:textStyle="bold" android:textColor="#ffffff" />
<TextView
android:id="@+id/tv1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Nama"
android:textColor="#ffffff" />
<EditText
android:text=""
android:id="@+id/username" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true"
android:hint="@string/hint_nama" android:textColor="#ffffff"> </EditText>
<TextView
android:id="@+id/tv2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Password"
android:textColor="#ffffff" />
<EditText
android:text=""
android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true"
android:password="true"
android:hint="@string/hint_password" android:textColor="#ffffff"
> </EditText> <TextView
android:id="@+id/tv" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text=""
/>
<Button
android:id="@+id/Button01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Login" />
</LinearLayout>
Menu.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:gravity="center_horizontal" android:background="#001122">
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Selamat Datang"
android:textSize="14dip" android:gravity="center"
android:layout_marginTop="10dip" android:textColor="#ffffff"/>
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Di Aplikasi Inventaris" android:textSize="12dip"
android:gravity="center"
android:layout_marginTop="10dip" android:textColor="#ffffff"/>
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content"
android:textSize="12dip" android:gravity="center"
android:layout_marginTop="10dip" android:textColor="#ffffff"/>
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Pilih Menu :"
android:textSize="12dip" android:gravity="left"
android:layout_marginTop="20dip" android:textColor="#ffffff"/>
<Button android:id="@+id/btnLihatbarang" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Lihat Barang"
android:layout_marginTop="25dip"/> <!-- Button untuk menambah Data anggota --> <Button android:id="@+id/btnTambahbarang" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Tambah Barang" android:layout_marginTop="25dip"/> <Button android:id="@+id/btndatasaya" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Data Saya"
android:layout_marginTop="25dip"/> </LinearLayout>
semua_barang.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:background="#001122">
<ListView
android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content"/>
</LinearLayout>
tambah_barang.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"
android:background="#001122">
<ListView
android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content"/>
</LinearLayout>
List_item.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"
android:background="#001122">
<TextView
android:id="@+id/idmem"
android:layout_width="fill_parent" android:layout_height="wrap_content" android:visibility="gone" />
<TextView
android:id="@+id/nama"
android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingTop="6dip"
android:paddingLeft="6dip" android:textSize="17dip" android:textStyle="bold" android:textColor="#ffffff"/>
<TextView
android:id="@+id/alamat"
android:layout_width="fill_parent" android:layout_height="wrap_content" android:visibility="gone" />
</LinearLayout>
tambahbarang.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent" android:orientation="vertical"
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Nama Barang"
<EditText android:id="@+id/inputNama" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dip"
android:layout_marginBottom="15dip" android:singleLine="true"
android:hint="@string/hint_nama_barang" android:textColor="#ffffff"/>
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Harga"
<EditText android:id="@+id/inputharga" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dip"
android:layout_marginBottom="15dip" android:singleLine="true"
android:hint="@string/hint_harga_barang" android:textColor="#ffffff"/>
<!-- Label Alamat -->
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Deskripsi"
android:layout_height="wrap_content" android:layout_margin="5dip"
android:layout_marginBottom="15dip" android:lines="4"
android:gravity="top"
android:hint="@string/hint_desk_barang" android:textColor="#ffffff"/>
<Button android:id="@+id/btnTambahbarang" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Tambah Barang" android:textColor="#ffffff"/>
</LinearLayout>
Editbarang.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent" android:orientation="vertical"
android:background="#001122">
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Nama Barang"
<EditText android:id="@+id/inputNama" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dip"
android:layout_marginBottom="15dip" android:singleLine="true"
android:textColor="#ffffff"/>
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Harga"
android:layout_height="wrap_content" android:layout_margin="5dip"
android:layout_marginBottom="15dip" android:singleLine="true"
android:textColor="#ffffff"/>
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Deskripsi"
android:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="10dip" android:textSize="17dip" android:textColor="#ffffff"/>
<EditText android:id="@+id/inputdeskripsi" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dip"
android:layout_marginBottom="15dip" android:lines="4"
android:gravity="top" android:textColor="#ffffff"/>
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="horizontal">
<Button android:id="@+id/btnSave" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Save Changes"
android:layout_weight="1"/>
<Button android:id="@+id/btnDelete" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Delete"
android:layout_weight="1"/>
</LinearLayout> </LinearLayout>
Data.xml
<?xml version="1.0" encoding="utf-8"?> <TableLayout
android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
<TableRow> <TextView
android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Nama "
android:textColor="#ffffff"/>
<TextView
android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Syafri"
android:textColor="#ffffff"/> </TableRow>
<TableRow> <TextView
android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Nim "
android:textColor="#ffffff"/> <TextView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="112406015" android:textColor="#ffffff"/> </TableRow>
<TableRow>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="Jurusan " android:textColor="#ffffff"/> <TextView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="D3 Teknik Informatika" android:textColor="#ffffff"/> </TableRow>
<TableRow> <TextView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Fakultas " android:textColor="#ffffff"/> <TextView
android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="MIPA"
android:textColor="#ffffff"/> </TableRow>
<TableRow> <TextView
android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="085761579205"
android:textColor="#ffffff"/> </TableRow>
</TableLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.tugasakhir"
android:versionCode="1" android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8" android:targetSdkVersion="14" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity
android:name="com.tugasakhir.Login" android:label="@string/app_name" > <intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
</activity> <activity
android:name="com.tugasakhir.Menu"
android:label="@string/title_activity_menu" > </activity>
<activity
android:name="com.tugasakhir.Data" android:label="Data Saya">
</activity> <activity
android:name="com.tugasakhir.SemuaBarangActivity" android:label="Lihat Barang">
</activity> <activity
android:name="com.tugasakhir.TambahBarangActivity" android:label="Tambah Barang">
<activity
android:name="com.tugasakhir.EditBarangActivity" android:label="Perbaharui Data Barang" >
</activity> </application> </manifest>
JSONParser.java
package com.tugasakhir;
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 = "";
// constructor
public JSONParser() {
}
// fungsi ambil json dari url
// lewat method HTTP POST atau GET
public JSONObject makeHttpRequest(String url, String method, List<NameValuePair> params) {
// membuat request HTTP
} catch (UnsupportedEncodingException 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 parse the string menjadi JSON object try {
jObj = new JSONObject(json); } catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString()); }
// return JSON String return jObj;
} }
Login.java
package com.tugasakhir;
import java.util.ArrayList; import java.util.List;
import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair;
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.TextView; import android.widget.Toast;
public class Login extends Activity { Button b;
EditText et,pass; TextView tv; HttpPost httppost; StringBuffer buffer; HttpResponse response; HttpClient httpclient;
List<NameValuePair> nameValuePairs; ProgressDialog dialog = null;
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.login);
b = (Button)findViewById(R.id.Button01); et = (EditText)findViewById(R.id.username); pass= (EditText)findViewById(R.id.password); tv = (TextView)findViewById(R.id.tv);
b.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
dialog = ProgressDialog.show(Login.this, "", "loading...", true);
new Thread(new Runnable() { public void run() {
login();
} }).start(); }
}); }
void login(){ try{
\httpclient=new DefaultHttpClient();
httppost= new HttpPost("http://10.0.2.2/TA/check.php"); // koneksi ke database localhost
nameValuePairs.add(new
BasicNameValuePair("username",et.getText().toString().trim())); // $Edittext_value = $_POST['Edittext_value'];
nameValuePairs.add(new
BasicNameValuePair("password",pass.getText().toString().trim()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); response=httpclient.execute(httppost);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
final String response = httpclient.execute(httppost, responseHandler); System.out.println("Response : " + response);
runOnUiThread(new Runnable() { public void run() {
tv.setText("Response from PHP : " + response); dialog.dismiss();
} });
if(response.equalsIgnoreCase("User Found")){ runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(Login.this,"Login Success", Toast.LENGTH_SHORT).show();
} });
startActivity(new Intent(Login.this, Menu.class)); }else{
showAlert(); }
}catch(Exception e){ dialog.dismiss();
System.out.println("Exception : " + e.getMessage()); }
}
public void showAlert(){
Login.this.runOnUiThread(new Runnable() { public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(Login.this); builder.setTitle("Login Error.");
builder.setMessage("User not Found.") .setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) { }
}); AlertDialog alert = builder.create(); alert.show();
} }
Menu.java
package com.tugasakhir;
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button;
public class Menu extends Activity{
Button btnLihatbarang; Button btnTambahbarang; Button btndatasaya;
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.menu);
// inisialisasi button/tombol
btnLihatbarang = (Button) findViewById(R.id.btnLihatbarang); btnTambahbarang = (Button) findViewById(R.id.btnTambahbarang); btndatasaya = (Button) findViewById(R.id.btndatasaya);
// even klik untuk menampilkan class SemuaAnggotaActivity btnLihatbarang.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Tampilkan semua anggota activity lewat intent
Intent i = new Intent(getApplicationContext(), SemuaBarangActivity.class); startActivity(i);
} });
// even klik menampilkan TambahAnggotaACtivity
btnTambahbarang.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Tampilkan tambah anggota activity lewat intent
Intent i = new Intent(getApplicationContext(), TambahBarangActivity.class);
} });
btndatasaya.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Tampilkan tambah anggota activity lewat intent
Intent i = new Intent(getApplicationContext(), Data.class); startActivity(i);
} }); }
}
SemuaBarangActivity.java
package com.tugasakhir;
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.ListActivity; import android.app.ProgressDialog; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; 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 SemuaBarangActivity extends ListActivity {
// Progress Dialog
private ProgressDialog pDialog;
// Membuat objek JSONParser
JSONParser jParser = new JSONParser();
// inisialisasi url semuanggota.php
private static String url_semua_anggota = "http://10.0.2.2/TA/semuaanggota.php";
// inisialisasi nama node dari json yang dihasilkan oleh php private static final String TAG_SUKSES = "sukses"; private static final String TAG_BARANG = "barang"; private static final String TAG_IDMEM = "id"; private static final String TAG_NAMA = "nama";
// buat JSONArray barang JSONArray barang = null;
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.semua_barang);
// Hashmap untuk ListView
barangList = new ArrayList<HashMap<String, String>>();
// buat method untuk menampilkan data pada Background Thread new AmbilDataJson().execute();
// ambil listview
ListView lv = getListView();
// pada saat mengklik salah satu nama barang // lalu alihkan pada class EditanggotaActivity
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// ambil nilai dari ListItem yang dipilih
String idmem = ((TextView)
view.findViewById(R.id.idmem)).getText().toString();
// Starting new intent
Intent in = new Intent(getApplicationContext(), EditBarangActivity.class);
// kirim idmem ke activity berikutnya in.putExtra(TAG_IDMEM, idmem);
// mulai activity baru dan dapatkan respon dengan result kode 100
startActivityForResult(in, 100); }
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data);
// jika result code 100 if (resultCode == 100) {
// jika result code 100 diterima
// artinya user mengedit/menghapus barang // reload layar ini lagi
Intent intent = getIntent(); finish();
startActivity(intent); }
}
/**
* Background Async Task untuk menampilkan semua data anggota dengan HTTP Request
* */
class AmbilDataJson extends AsyncTask<String, String, String> {
/**
* sebelum memulai background thread tampilkan Progress Dialog * */
@Override
protected void onPreExecute() { super.onPreExecute();
pDialog = new ProgressDialog(SemuaBarangActivity.this);
pDialog.setMessage("Mengambil Data barang. Silahkan Tunggu..."); pDialog.setIndeterminate(false);
pDialog.setCancelable(false); pDialog.show();
}
/**
* mengambil semua data barang dari url * */
protected String doInBackground(String... args) { // membangun Parameter
List<NameValuePair> params = new ArrayList<NameValuePair>(); // ambil JSON string dari URL
JSONObject json = jParser.makeHttpRequest(url_semua_anggota, "GET", params);
// cek log cat untuk JSON reponse
Log.d("Semua Anggota: ", json.toString());
try {
// mengecek untuk TAG SUKSES int sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
// mengambil Array dari barang
barang = json.getJSONArray(TAG_BARANG);
// looping data semua member/anggota for (int i = 0; i < barang.length(); i++) {
JSONObject c = barang.getJSONObject(i);
// tempatkan setiap item json di variabel String id = c.getString(TAG_IDMEM); String nama = c.getString(TAG_NAMA);
// buat new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// menambah setiap child node ke HashMap key => value
map.put(TAG_IDMEM, id); map.put(TAG_NAMA, nama);
// menambah HashList ke ArrayList barangList.add(map);
} } else {
// tidak ditemukan data anggota/member // Tampilkan layar tambahAnggotaActivity
Intent i = new
Intent(getApplicationContext(),TambahBarangActivity.class);
// tutup semua activity sebelumnya
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); }
} catch (JSONException e) { e.printStackTrace(); }
return null; }
/**
* setelah menyelesaikan background task hilangkan the progress dialog * **/
protected void onPostExecute(String file_url) {
// hilangkan dialog setelah mendapatkan semua data member pDialog.dismiss();
// update UI dari Background Thread runOnUiThread(new Runnable() {
public void run() { /**
* update hasil parsing JSON ke ListView * */
R.layout.list_item, new String[] { TAG_IDMEM, TAG_NAMA}, new int[] { R.id.idmem, R.id.nama });
// update listview setListAdapter(adapter); }
});
}
} }
TambahBarangActivity.java
package com.tugasakhir;
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.app.ProgressDialog; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText;
public class TambahBarangActivity extends Activity {
// Progress Dialog
private ProgressDialog pDialog;
JSONParser jsonParser = new JSONParser(); EditText inputNama;
EditText inputharga; EditText inputdesk;
// inisialisasi url tambahanggota.php
private static String url_tambah_anggota = "http://10.0.2.2/TA/tambahanggota.php";
// inisialisasi nama node dari json yang dihasilkan oleh php (utk class ini hanya node "sukses")
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tambahbarang);
// inisialisasi Edit Text
inputNama = (EditText) findViewById(R.id.inputNama); inputharga = (EditText) findViewById(R.id.inputharga); inputdesk = (EditText) findViewById(R.id.inputdesk);
// inisialisasi button
Button btnTambahAnggota = (Button)
findViewById(R.id.btnTambahbarang);
// klik even tombol tambah anggota
btnTambahAnggota.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// buat method pada background thread new BuatAnggotaBaru().execute(); }
}); }
/**
* Background Async Task untuk menambah data anggota baru * */
class BuatAnggotaBaru extends AsyncTask<String, String, String> {
/**
* sebelum memulai background thread tampilkan Progress Dialog * */
@Override
protected void onPreExecute() { super.onPreExecute();
pDialog = new ProgressDialog(TambahBarangActivity.this); pDialog.setMessage("Menambah data..silahkan tunggu"); pDialog.setIndeterminate(false);
pDialog.setCancelable(true); pDialog.show();
}
/**
* menambah data * */
protected String doInBackground(String... args) { String nama = inputNama.getText().toString(); String harga = inputharga.getText().toString(); String deskripsi = inputdesk.getText().toString();
// membangun Parameters
params.add(new BasicNameValuePair("nama", nama)); params.add(new BasicNameValuePair("harga", harga)); params.add(new BasicNameValuePair("deskripsi", deskripsi));
// mengambil JSON Object //dengan method POST
JSONObject json = jsonParser.makeHttpRequest(url_tambah_anggota,"POST", params);
// periksa log cat respon
Log.d("Respon tambah anggota", json.toString());
// check for success tag try {
int sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
// jika sukses menambah data baru
Intent i = new Intent(getApplicationContext(), SemuaBarangActivity.class);
startActivity(i);
// tutup activity ini finish();
} else {
// jika gagal dalam menambah data }
} catch (JSONException e) { e.printStackTrace(); }
return null; }
/**
* After completing background task Dismiss the progress dialog * **/
protected void onPostExecute(String file_url) {
// hilangkan dialog ketika selesai menambah data baru pDialog.dismiss();
}
} }
EditBarangActivity.java
package com.tugasakhir;
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.ProgressDialog; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText;
public class EditBarangActivity extends Activity {
EditText txtNama; EditText txtharga; EditText txtdeskripsi; Button btnSave; Button btnDelete;
String idmem;
// Progress Dialog
private ProgressDialog pDialog;
// instansiasi objek JSON parser
JSONParser jsonParser = new JSONParser();
// inisialisasi url anggotadetail.php
private static final String url_detail_anggota = "http://10.0.2.2/TA/anggotadetail.php";
// inisialisasi url updateanggota.php
private static final String url_update_anggota = "http://10.0.2.2/TA/updateanggota.php";
// inisialisasi url hapusanggota.php
private static final String url_delete_anggota = "http://10.0.2.2/TA/hapusanggota.php";
// inisialisasi nama node dari json yang dihasilkan oleh php private static final String TAG_SUKSES = "sukses"; private static final String TAG_barang = "barang"; private static final String TAG_IDbarang = "id"; private static final String TAG_NAMA = "nama"; private static final String TAG_HARGA = "harga"; private static final String TAG_DESKRIPSI = "deskripsi"; @Override
super.onCreate(savedInstanceState); setContentView(R.layout.editbarang);
// inisialisasi button
btnSave = (Button) findViewById(R.id.btnSave); btnDelete = (Button) findViewById(R.id.btnDelete);
// ambil data anggota detail dari intent Intent i = getIntent();
// ambil member id (idmem) dari intent idmem = i.getStringExtra(TAG_IDbarang);
// buat method ambil detail anggota pada background thread new AmbilDetailAnggota().execute();
// klik even tombol save
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// buat background task untuk simpan anggota new SimpanAnggotaDetail().execute(); }
});
// klik even tombol delete
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// buat method hapus anggota dalam background thread new HapusAnggota().execute();
} });
}
/**
* Background Async Task untuk menmpilkan data detail anggota * */
class AmbilDetailAnggota extends AsyncTask<String, String, String> {
/**
* Sebelum memulai background thread tampilkan Progress Dialog * */
@Override
protected void onPreExecute() { super.onPreExecute();
pDialog = new ProgressDialog(EditBarangActivity.this);
pDialog.setCancelable(true); pDialog.show();
}
/**
* Ambil detail anggota background thread * */
protected String doInBackground(String... params) {
// Cek jika tag sukses bernilai 1 atau 0 int sukses;
try {
// Membangun Parameters
List<NameValuePair> params1 = new ArrayList<NameValuePair>(); params1.add(new BasicNameValuePair("idmem", idmem));
// ambil detail anggota dengan request HTTP // dengan menggunakan methode GET
JSONObject json = jsonParser.makeHttpRequest(url_detail_anggota, "GET", params1);
// cek log untuk json respon
Log.d("Barang Detail", json.toString());
// json sukses tag
sukses = json.getInt(TAG_SUKSES); if (sukses == 1) {
// sukses mengambil detail anggota
JSONArray barangObj = json.getJSONArray(TAG_barang); // JSON Array
// ambil objek member pertama dari JSON Array
final JSONObject barang =
barangObj.getJSONObject(0);
// update UI dari Background Thread runOnUiThread(new Runnable() {
public void run() {
// member dengan idmem yang ditemukan // Edit Text
txtNama = (EditText) findViewById(R.id.inputNama); txtharga = (EditText) findViewById(R.id.inputharga);
txtdeskripsi = (EditText)
findViewById(R.id.inputdeskripsi);
try {
// tampilkan data member di EditText
txtNama.setText(barang.getString(TAG_NAMA));
txtharga.setText(barang.getString(TAG_HARGA));
} catch (JSONException e) {
// TODO Auto-generated catch block e.printStackTrace();
} } });
}else{
// jika idmem tidak ditemukan }
} catch (JSONException e) { e.printStackTrace(); }
return null; }
/**
* setelah background task selesai hilangkan progress dialog * **/
protected void onPostExecute(String file_url) {
// dismiss dialog setelah mendapatkan data detail anggota pDialog.dismiss();
} }
/**
* Background Async Task untuk menyimpan/mengupdate data anggota * */
class SimpanAnggotaDetail extends AsyncTask<String, String, String> {
/**
* Sebelum memulai background thread tampilkan Progress Dialog * */
@Override
protected void onPreExecute() { super.onPreExecute();
pDialog = new ProgressDialog(EditBarangActivity.this); pDialog.setMessage("Menyimpan Data barang ..."); pDialog.setIndeterminate(false);
pDialog.setCancelable(true); pDialog.show();
}
/**
* simpan anggota * */
protected String doInBackground(String... args) {
String harga = txtharga.getText().toString(); String deskripsi = txtdeskripsi.getText().toString();
// Membangun Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("idmem", idmem));
params.add(new BasicNameValuePair("nama", nama)); params.add(new BasicNameValuePair("harga", harga)); params.add(new BasicNameValuePair("deskripsi", deskripsi)); // mengirim data yang diupdate lewat request http
// Dengan method POST
JSONObject json = jsonParser.makeHttpRequest(url_update_anggota,"POST", params);
// cek json sukses tag (apakah 1 atau 0) try {
int sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
// sukses mengupdate data Intent i = getIntent();
// kirim result code 100 untuk notifikasi kalau update dilaksanakan
setResult(100, i); finish();
} else {
// gagal update data }
} catch (JSONException e) { e.printStackTrace(); }
return null; }
/**
* setelah update data selesai background task akan menghilangkan progress dialog
* **/
protected void onPostExecute(String file_url) { // dismiss dialog ketika selesai
pDialog.dismiss(); }
}
/***************************************************************** * Background Async Task untuk menghapus data anggota
* */
class HapusAnggota extends AsyncTask<String, String, String> {
/**
@Override
protected void onPreExecute() { super.onPreExecute();
pDialog = new ProgressDialog(EditBarangActivity.this); pDialog.setMessage("Menghapus data barang..."); pDialog.setIndeterminate(false);
pDialog.setCancelable(true); pDialog.show();
}
/**
* menghapus data anggota * */
protected String doInBackground(String... args) {
// cek sukses tag (apakah 1 atau 0) int sukses;
try {
// membangun Parameter
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("idmem", idmem));
// ambil member/anggota detail dengan request HTTPt JSONObject json = jsonParser.makeHttpRequest(url_delete_anggota, "POST", params);
// cek log untuk json respon
Log.d("Delete barang", json.toString());
// json sukses tag
sukses = json.getInt(TAG_SUKSES); if (sukses == 1) {
// Member sukses di delete
// beritahu activity sebelumnya dengan mengirim result code 100 Intent i = getIntent();
setResult(100, i); finish();
}
} catch (JSONException e) { e.printStackTrace(); }
return null; }
/**
* Setelah hapus data selesai background task akan menghilangkan progress dialog
* **/
}
} }
Data.java
package com.tugasakhir;
import android.os.Bundle; import android.app.Activity; import android.view.View; import android.content.Intent; import android.widget.Button;
public class Data extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.data); }
}
Koneksi.php <?php
$dbhost = "localhost"; $dbuser = "root"; $dbpass = "";
$dbname = "TA";
mysql_connect($dbhost,$dbuser,$dbpass); mysql_select_db($dbname);
?>
check.php
<?php
$hostname_localhost ="localhost"; $database_localhost ="TA"; $username_localhost ="root"; $password_localhost ="";
$localhost = mysql_connect($hostname_localhost,$username_localhost,$password_localhost) or
trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_localhost, $localhost);
$query_search = "select * from tbl_user where username = '".$username."' AND password = '".$password. "'";
$query_exec = mysql_query($query_search) or die(mysql_error()); $rows = mysql_num_rows($query_exec);
//echo $rows; if($rows == 0) {
echo "No Such User Found"; }
else {
echo "User Found"; }
?>
Semuabarang.php
<?php
//koneksi database mysql include("koneksi.php");
//buat array untuk menampung respon dari JSON $respon = array();
// query menampilkan semua data barang
$result = mysql_query("SELECT *FROM barang") or die(mysql_error());
// jika data ada/tidak kosong
if (mysql_num_rows($result) > 0) { // looping semua hasil
// barang node
$respon["barang"] = array();
while ($row = mysql_fetch_array($result)) { // temp barang array
$barang = array();
$barang["id"] = $row["id"]; $barang["nama"] = $row["nama"]; $barang["harga"] = $row["harga"]; $barang["deskripsi"] = $row["deskripsi"];
//tambahkan array $barang pada array final $respon array_push($respon["barang"], $barang);
} // sukses
$respon["sukses"] = 1;
// memprint/mencetak JSON respon echo json_encode($respon);
} else {
// jika data kosong $respon["sukses"] = 0;
$respon["pesan"] = "Tidak ada barang";
echo json_encode($respon); }
?>
Tambahbarang.php
<?php
//koneksi database mysql include("koneksi.php");
//buat array untuk menampung respon dari JSON $respon = array();
// cek apakah nilai yang dikirimkan android sudah terisi
if (isset($_POST['nama']) && isset($_POST['harga'])&&isset($_POST['deskripsi'])) {
$nama = $_POST['nama']; $harga = $_POST['harga'];
$deskripsi = $_POST['deskripsi']; // query menambah data barang
$result = mysql_query("INSERT INTO barang(nama, harga, deskripsi) VALUES('$nama', '$harga','$deskripsi')");
// cek apakah query berhasil menambah data if ($result) {
// jika berhasil menambah data ke mysql $respon["sukses"] = 1;
$respon["pesan"] = "Berhasil menambah data barang.";
// memprint/mencetak JSON respon echo json_encode($respon);
} else {
// gagal menambah data barang $respon["sukses"] = 0;
$respon["pesan"] = "Gagal menambah data.";
// memprint/mencetak JSON respon echo json_encode($respon);
} } else {
// jika data tidak terisi/tidak terset $respon["sukses"] = 0;
$respon["pesan"] = "data belum terisi";
// memprint/mencetak JSON respon echo json_encode($respon);
} ?>
<?php
//koneksi database mysql include("koneksi.php");
//buat array untuk menampung respon dari JSON $respon = array();
// cek apakah nilai yang dikirimkan android sudah terisi if (isset($_POST['idmem'])
&& isset($_POST['nama']) && isset($_POST['harga']) && isset($_POST['deskripsi'])) {
$idmem = $_POST['idmem']; $nama = $_POST['nama']; $harga = $_POST['harga'];
$deskripsi = $_POST['deskripsi'];
// query update berdasarkan id
$result = mysql_query("UPDATE barang SET nama = '$nama', harga = '$harga', deskripsi = '$deskripsi' WHERE id = $idmem");
// cek apakah berhasil update atau tidak if ($result) {
// jika sukses diupdate $respon["sukses"] = 1;
$respon["pesan"] = "Data barang berhasil diupdate.";
// memprint/mencetak JSON respon echo json_encode($respon);
} else {
// gagal update data $respon["sukses"] = 0;
$respon["pesan"] = "Gagal update data.";
// memprint/mencetak JSON respon echo json_encode($respon);
} } else {
// jika data tidak terisi/tidak terset $respon["sukses"] = 0;
$respon["pesan"] = "data belum terset/terisi";
// memprint/mencetak JSON respon echo json_encode($respon);
} ?>
<?php
//koneksi database mysql include("koneksi.php");
//buat array untuk menampung respon dari JSON $response = array();
// cek apakah variabel idmem sudah terset / terisi if (isset($_POST['idmem'])) {
$idmem = $_POST['idmem'];
// query update barang berdasarkan id
$result = mysql_query("DELETE FROM barang WHERE id = $idmem");
// jika berhasil di hapus
if (mysql_affected_rows() > 0) { $respon["sukses"] = 1;
$respon["pesan"] = "barang berhasil dihapus";
// memprint/mencetak JSON respon echo json_encode($respon);
} else {
// jika gagal dihapus $respon["sukses"] = 0;
$respon["pesan"] = "Gagal dihapus";
// memprint/mencetak JSON respon echo json_encode($respon);
} } else {
// jika data tidak terisi/tidak terset $respon["sukses"] = 0;
$respon["pesan"] = "data belum terisi";
// memprint/mencetak JSON respon echo json_encode($respon);
} ?>
Barangdetail.php
<?php
//koneksi database mysql include("koneksi.php");
//buat array untuk menampung respon dari JSON $respon = array();
// cek apakah variabel idmem sudah terset / terisi if (isset($_GET["idmem"])) {
// query ambil data barang berdasarkan id
$result = mysql_query("SELECT *FROM barang WHERE id = $idmem");
if (!empty($result)) {
// jika data barang ada (besar dari nol) if (mysql_num_rows($result) > 0) { $result = mysql_fetch_array($result);
// temp barang array $barang = array();
$barang["id"] = $result["id"]; $barang["nama"] = $result["nama"]; $barang["harga"] = $result["harga"];
$barang["deskripsi"] = $result["deskripsi"]; // sukses
$respon["sukses"] = 1;
// node barang
$respon["barang"] = array();
//tambahkan array $barang pada array final $respon array_push($respon["barang"], $barang);
// memprint/mencetak JSON respon echo json_encode($respon);
} else {
// tidak ada barang (kecil dari nol) $respon["sukses"] = 0;
$respon["pesan"] = "Tidak ada barang";
// memprint/mencetak JSON respon echo json_encode($respon);
} } else {
// jika query tidak tidak meghasilkan data (tidak ada barang) $respon["sukses"] = 0;
$respon["pesan"] = "tidak ada barang";
// memprint/mencetak JSON respon echo json_encode($respon);
} } else {
// jika data tidak terisi/tidak terset $respon["sukses"] = 0;
$respon["pesan"] = "data belum terisi";
// memprint/mencetak JSON respon echo json_encode($respon);
SURAT KETERANGAN
Hasil Uji Program Tugas Akhir
Yang bertanda tangan di bawah ini, menerangkan bahwa Mahasiswa Tugas Akhir
Program D-III Teknik Informatika :
Nama
: SYAFRI ALI PUTRA
NIM
: 112406015
Program Studi
: D-III Teknik Informatika
Judul Tugas Akhir
: MEMBANGUN APLIKASI INVENTARIS BARANG
UNTUK USAHA KECIL DAN MENENGAH (UKM)
BERBASIS ANDROID
telah melakukan test program Tugas Akhir Mahasiswa tersebut di atas pada tanggal
…..
../06/2014.
Dengan hasil : SUKSES / GAGAL
Demikian diterangkan untuk digunakan melengkapi Syarat Pendaftaran Meja Hijau
Tugas Akhir Mahasiswa bersangkutan di Departemen Matematika FMIPA USU
Medan.
Medan, Juni 2014
Dosen Pembimbing
Program D-3 Teknik Informatika
Drs. Rachmad Sitepu, M.Si
KEMENTERIAN PENDIDIKAN NASIONAL UNIVERSITAS SUMATERA UTARA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM Jl. Bioteknologi No.1 Kampus USU Padang Bulan Medan-20155
Telp. (061) 8211050, Fax. (061) 8214290
KARTU BIMBINGAN TUGAS AKHIR MAHASISWA
Nama Mahasiswa
: SYAFRI ALI PUTRA
Nomor Stambuk
: 112406015
Judul Tugas Akhir
: MEMBANGUN
APLIKASI
INVENTARIS
BARANG
UNTUK
USAHA
KECIL
DAN
MENENGAH (UKM) BERBASIS ANDROID
Dosen Pembimbing
: Drs. Rachmad Sitepu, M.Si
Tanggal Mulai Bimbingan
:
Tanggal Selesai Bimbingan :
No.
Tanggal
Asisten
Bimbingan
Pembahasan pada
Asistensi Mengenai, pada
Bab :
Paraf Dosen
Pembimbing
Keterangan
1.
2.
3.
4.
5.
6.
7
Kartu ini harap dikembalikan ke Departemen Matematika bila bimbingan telah selesai.