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:id="@+id/password"
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: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> 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" android:background="#001122">
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Nama Barang" android:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="10dip" android:textSize="17dip" android:textColor="#ffffff"/> <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" android:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="10dip" android:textSize="17dip" android:textColor="#ffffff"/> <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:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="10dip" android:textSize="17dip" android:textColor="#ffffff"/> <!-- Input alamat --> <EditText android:id="@+id/inputdesk" 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: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" android:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="10dip" android:textSize="17dip" android:textColor="#ffffff"/> <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:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="10dip" android:textSize="17dip" android:textColor="#ffffff"/> <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: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" xmlns:android="http://schemas.android.com/apk/res/android" android:background="#001122">
<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="Contact Person " android:textColor="#ffffff"/> <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>
<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 (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 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.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface;
import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.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); }
}); }
// Respon dari Edit barang Activity @Override
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 * */
ListAdapter adapter = new SimpleAdapter( SemuaBarangActivity.this, barangList,
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 java.util.ArrayList; 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.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.setMessage("Mengambil data barang. Silahkan tunggu..."); pDialog.setIndeterminate(false);
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)); txtdeskripsi.setText(barang.getString(TAG_DESKRIPSI));
} 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) { // data yang akan diupdate dari EditTexts String nama = txtNama.getText().toString();
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> { /**
* Sebelum memulai background thread Tampilkan Progress Dialog * */
@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
* **/
protected void onPostExecute(String file_url) { // dismiss dialog setelah proses hapus selesai pDialog.dismiss();
} } } 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); $username = $_POST['username']; $password = $_POST['password'];
$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"; // memprint/mencetak JSON respon
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
NIP 195304181987031001
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.