CRUD Data (Volley) part 2
Hello sobat, saya akan memberikan artikel mengenai CRUD data menggunakan library volley yang sebelumnya sudah kita bahas mengenai volley pada artikel sebelumnya yaitu menampilkan data menggunakan recyclerview dan sekarang masuk ke part 2 mengenai CRUD yaitu Tambah, Ubah dan Hapus data, untuk langkah-langkahnya,
Langkah PART 1
Langkah PART 1
Design Layout
Membuat layout dengan struktur
Masukan code xml pada activity_insert_data.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:alpha="0.2" android:background="@color/colorAccent" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="10dp"> <android.support.design.widget.TextInputLayout android:id="@+id/tilnpm" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/etNis" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="NIS" /> </android.support.design.widget.TextInputLayout> <android.support.design.widget.TextInputLayout android:id="@+id/tilnama" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/etNama" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Nama" /> </android.support.design.widget.TextInputLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:orientation="horizontal"> <Button android:id="@+id/btn_cancel" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="Batal" /> <Button android:id="@+id/btn_simpan" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="Simpan" /> <Button android:id="@+id/btn_delete" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="Hapus" android:visibility="gone" /> </LinearLayout> </LinearLayout> </RelativeLayout>
Package Java
Membuat package dengan struktur
Masukan code pada class InsertData.java
package com.codetr.tanwir.crudvolley; import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.android.volley.AuthFailureError; import com.android.volley.Request; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; import com.codetr.tanwir.crudvolley.Util.AppController; import com.codetr.tanwir.crudvolley.Util.ServerAPI; import org.json.JSONException; import org.json.JSONObject; import java.util.HashMap; import java.util.Map; public class InsertData extends AppCompatActivity { EditText nis, nama; Button btnbatal, btnsimpan, btndelete; ProgressDialog pd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_insert_data); setTitle("CodeTR"); /*get data from intent*/ Intent data = getIntent(); final int update = data.getIntExtra("update", 0); String intent_nis = data.getStringExtra("nis"); String intent_nama = data.getStringExtra("nama"); nis = (EditText) findViewById(R.id.etNis); nama = (EditText) findViewById(R.id.etNama); btnbatal = (Button) findViewById(R.id.btn_cancel); btnsimpan = (Button) findViewById(R.id.btn_simpan); btndelete = (Button) findViewById(R.id.btn_delete); pd = new ProgressDialog(InsertData.this); /*kondisi update / insert*/ if (update == 1) { btnsimpan.setText("Update"); nis.setText(intent_nis); nis.setVisibility(View.GONE); btndelete.setVisibility(View.VISIBLE); nama.setText(intent_nama); } btnsimpan.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (update == 1) { Update_data(); } else { simpanData(); } } }); btndelete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { deleteData(); } }); btnbatal.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent main = new Intent(InsertData.this, MainActivity.class); startActivity(main); } }); } private void Update_data() { pd.setMessage("Update Data"); pd.setCancelable(false); pd.show(); StringRequest updateReq = new StringRequest(Request.Method.POST, ServerAPI.URL_UPDATE, new Response.Listener<String>() { @Override public void onResponse(String response) { pd.cancel(); try { JSONObject res = new JSONObject(response); Toast.makeText(InsertData.this, "pesan : " + res.getString("message"), Toast.LENGTH_SHORT).show(); } catch (JSONException e) { e.printStackTrace(); } startActivity(new Intent(InsertData.this, MainActivity.class)); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { pd.cancel(); Toast.makeText(InsertData.this, "pesan : Gagal Insert Data", Toast.LENGTH_SHORT).show(); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map = new HashMap<>(); map.put("nis", nis.getText().toString()); map.put("nama", nama.getText().toString()); return map; } }; AppController.getInstance().addToRequestQueue(updateReq); } private void simpanData() { pd.setMessage("Menyimpan Data"); pd.setCancelable(false); pd.show(); StringRequest sendData = new StringRequest(Request.Method.POST, ServerAPI.URL_INSERT, new Response.Listener<String>() { @Override public void onResponse(String response) { pd.cancel(); try { JSONObject res = new JSONObject(response); Toast.makeText(InsertData.this, "pesan : " + res.getString("message"), Toast.LENGTH_SHORT).show(); } catch (JSONException e) { e.printStackTrace(); } startActivity(new Intent(InsertData.this, MainActivity.class)); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { pd.cancel(); Toast.makeText(InsertData.this, "pesan : Gagal Insert Data", Toast.LENGTH_SHORT).show(); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map = new HashMap<>(); map.put("nis", nis.getText().toString()); map.put("nama", nama.getText().toString()); return map; } }; AppController.getInstance().addToRequestQueue(sendData); } private void deleteData() { pd.setMessage("Hapus Data ..."); pd.setCancelable(false); pd.show(); StringRequest delReq = new StringRequest(Request.Method.POST, ServerAPI.URL_DELETE, new Response.Listener<String>() { @Override public void onResponse(String response) { pd.cancel(); Log.d("volley", "response : " + response.toString()); try { JSONObject res = new JSONObject(response); Toast.makeText(InsertData.this, "pesan : " + res.getString("message"), Toast.LENGTH_SHORT).show(); } catch (JSONException e) { e.printStackTrace(); } startActivity(new Intent(InsertData.this, MainActivity.class)); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { pd.cancel(); Log.d("volley", "error : " + error.getMessage()); Toast.makeText(InsertData.this, "Gagal menghapus data", Toast.LENGTH_SHORT).show(); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map = new HashMap<>(); map.put("nis", nis.getText().toString()); return map; } }; AppController.getInstance().addToRequestQueue(delReq); } }
Output Aplikasi
Sekian artikel dari saya semoga bermanfaat, jika ada yang ditanyakan comment saja di bawah.
Comments
Post a Comment