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 

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

Popular posts from this blog

PRIVACY POLICY BELMANDIYSAH

PRIVACY POLICY - APLICATION BELMANDIYSAH

Application Belmandiyah