• Tidak ada hasil yang ditemukan

Membangun Aplikasi Inventaris Barang untuk Usaha Kecil dan Menengah (UKM) Berbasis Android

N/A
N/A
Protected

Academic year: 2019

Membagikan "Membangun Aplikasi Inventaris Barang untuk Usaha Kecil dan Menengah (UKM) Berbasis Android"

Copied!
35
0
0

Teks penuh

(1)

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=""

(2)

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"

(3)

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"

(4)

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"

(5)

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

(6)

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"

(7)

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"

(8)

<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

(9)

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

(10)

<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();

(11)

} 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;

(12)

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

(13)

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();

(14)

} }

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);

(15)

} });

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();

(16)

// 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); }

});

}

(17)

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) {

(18)

// 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 * */

(19)

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")

(20)

@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

(21)

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;

(22)

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

(23)

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);

(24)

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));

(25)

} 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) {

(26)

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> {

/**

(27)

@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

* **/

(28)

}

} }

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);

(29)

$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";

(30)

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);

} ?>

(31)

<?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);

} ?>

(32)

<?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"])) {

(33)

// 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);

(34)

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

(35)

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.

Diketahui,

Disetujui,

Ketua Program Studi D3 Teknik Informatika Pembimbing Utama

Referensi

Dokumen terkait

Daya serap air yang ditunjukkan pada Gambar 1, memberikan kecenderungan yang linier, dengan nilai R 2 = 0.869, artinya bahwa sebanyak 86,9% dari total daya

Tujuan penelitian ini dilakukan adalah untuk menentukan kadar air dan besar bilangan penyabunan dalam minyak kelapa serta menentukan apakah kadar air dan bilangan penyabunan

The main objectives of this study are the (1) measurement and mapping of the spatial distribution of the deformation rates in the study area; (2) analysis of

Sistem penilaian dengan system KPI, selain dapat mengukur kinerja orang per orang, juga bisa dilakukan untuk melakukan pengukuran kinerja secara kelompok, baik itu

Dengan menggunakan Akibat 2.3 ini, dapat dikonstruksi sebuah aljabar graf pada graf- berhingga baris tanpa sources seperti halnya pada graf berarah, dinotasikan dengan

Level 3 ini aktor harus memakan lebih banyak keju dan dihadapkan dengan musuh yang lebih banyak maka dari itu pada level 3 ini pemain harus lebih berhati-hati

informasi manajemen rumah sakit adalah suatu sistem berbasis komputer yang.. menghasilkan sekumpulan informasi yang telah diolah dan saling

Pada tahap pelaksanaan, kegiatan pembelajaran dibagi menjadi tiga bagian yaitu kegiatan awal, kegiatan inti dan kegiatan penutup. Pada kegiatan awal dimulai dengan