CRUD Android dengan MySQL Part 3

CRUD Android dengan MySQL Part 3

46

Selanjutnya silahkan kalian buat file xml baru dengan nama TampilanSemuaPgw maka secara otomatis namanya akan menjadi activity_tampil_semua_pgw.xml. File xml ini digunakan untuk menampilkan semua data pegawai. Setelah file xml telah terbentuk selanjutnya silahkan ikuti kode program seperti berikut:

xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:orientation="vertical"

android:layout_height="match_parent" android:paddingLeft="16dp"

android:paddingRight="16dp"

android:paddingTop="16dp"

android:paddingBottom="16dp"

tools:context="com.kodingindonesia.mycrud.TampilSemuaPgw">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/listView" />

Dari kode program xml di atas akan menghasilkan tampilan seperti berikut:

Karena kita membuat ListView, maka kita perlu untuk membuat lagi satu Layout atau tampilan xml untuk menampilkan ListVeiw tersebut. Silahkan buat file xml dengan nama list_item.xml dan ikuti kode program di bawah ini:

android:orientation="vertical" android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/id"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

android:id="@+id/name"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

Setelah kita membuat file xml activity_tampil_semua_pgw.xml secara langsung file Java Class baru akan terbentuk dengan nama tampilSemuaPgw.java silahkan kalian salin kode program dibawah berikut kedalam Java Class tampilSemuaPgw.java

package com.kodingindonesia.mycrud;

import android.app.ProgressDialog;

import android.content.Intent;

import android.os.AsyncTask;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ListAdapter;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import java.util.ArrayList;

import java.util.HashMap;

/**

* Created by muhammadyusuf on 01/19/2017.

* kodingindonesia

*/

public class TampilSemuaPgw extends AppCompatActivity implements ListView.OnItemClickListener{

private ListView listView;

private String JSON_STRING;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_tampil_semua_pgw);

listView = (ListView) findViewById(R.id.listView);

listView.setOnItemClickListener(this);

getJSON();

}

private void showEmployee(){

JSONObject jsonObject = null;

ArrayList> list = new ArrayList>();

try {

jsonObject = new JSONObject(JSON_STRING);

JSONArray result = jsonObject.getJSONArray(konfigurasi.TAG_JSON_ARRAY);

for(int i = 0; i

JSONObject jo = result.getJSONObject(i);

String id = jo.getString(konfigurasi.TAG_ID);

String name = jo.getString(konfigurasi.TAG_NAMA);

HashMap employees = new HashMap<>();

employees.put(konfigurasi.TAG_ID,id);

employees.put(konfigurasi.TAG_NAMA,name);

list.add(employees);

}

} catch (JSONException e) {

e.printStackTrace();

}

ListAdapter adapter = new SimpleAdapter(

TampilSemuaPgw.this, list, R.layout.list_item,

new String[]{konfigurasi.TAG_ID,konfigurasi.TAG_NAMA},

new int[]{R.id.id, R.id.name});

listView.setAdapter(adapter);

}

private void getJSON(){

class GetJSON extends AsyncTask{

ProgressDialog loading;

@Override

protected void onPreExecute() {

super.onPreExecute();

loading = ProgressDialog.show(TampilSemuaPgw.this,"Mengambil Data","Mohon Tunggu...",false,false);

}

@Override

protected void onPostExecute(String s) {

super.onPostExecute(s);

loading.dismiss();

JSON_STRING = s;

showEmployee();

}

@Override

protected String doInBackground(Void... params) {

RequestHandler rh = new RequestHandler();

String s = rh.sendGetRequest(konfigurasi.URL_GET_ALL);

return s;

}

}

GetJSON gj = new GetJSON();

gj.execute();

}

@Override

public void onItemClick(AdapterView parent, View view, int position, long id) {

Intent intent = new Intent(this, TampilPegawai.class);

HashMap map =(HashMap)parent.getItemAtPosition(position);

String empId = map.get(konfigurasi.TAG_ID).toString();

intent.putExtra(konfigurasi.EMP_ID,empId);

startActivity(intent);

}

}

Selanjutnya kita buat file xml untuk menampilkan data pegawai yang dipilih/select dengan nama tampil tampilPegawai, dari nama tersebut akan secara otomatis terbentuk nama untuk xml dengan nama activity_tampil_pegawai.xml dan selanjutnya salin kode program berikut:

xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:orientation="vertical"

android:layout_height="match_parent" android:paddingLeft="16dp"

android:paddingRight="16dp"

android:paddingTop="16dp"

android:paddingBottom="16dp" tools:context=".MainActivity">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="ID Pegawai" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/editTextId" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Nama Pegawai" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/editTextName" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Posisi" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/editTextDesg" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Salary" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/editTextSalary" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Update Pegawai"

android:id="@+id/buttonUpdate" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Hapus Pegawai"

android:id="@+id/buttonDelete" />

Dari kode program di atas akan menghasilkan tampilan seperti berikut:

Dari file xml yang kita buat sebelumnya akan menghasil file Java Class dengan nama tampilPegawai.java selanjutnya silahkan salin kode program di bawah ini kedalam fila java class tampilPegawai.java

package com.kodingindonesia.mycrud;

import android.app.ProgressDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.os.AsyncTask;

import android.support.v7.app.AlertDialog;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import java.util.HashMap;

/**

* Created by muhammadyusuf on 01/19/2017.

* kodingindonesia

*/

public class TampilPegawai extends AppCompatActivity implements View.OnClickListener{

private EditText editTextId;

private EditText editTextName;

private EditText editTextDesg;

private EditText editTextSalary;

private Button buttonUpdate;

private Button buttonDelete;

private String id;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_tampil_pegawai);

Intent intent = getIntent();

id = intent.getStringExtra(konfigurasi.EMP_ID);

editTextId = (EditText) findViewById(R.id.editTextId);

editTextName = (EditText) findViewById(R.id.editTextName);

editTextDesg = (EditText) findViewById(R.id.editTextDesg);

editTextSalary = (EditText) findViewById(R.id.editTextSalary);

buttonUpdate = (Button) findViewById(R.id.buttonUpdate);

buttonDelete = (Button) findViewById(R.id.buttonDelete);

buttonUpdate.setOnClickListener(this);

buttonDelete.setOnClickListener(this);

editTextId.setText(id);

getEmployee();

}

private void getEmployee(){

class GetEmployee extends AsyncTask{

ProgressDialog loading;

@Override

protected void onPreExecute() {

super.onPreExecute();

loading = ProgressDialog.show(TampilPegawai.this,"Fetching...","Wait...",false,false);

}

@Override

protected void onPostExecute(String s) {

super.onPostExecute(s);

loading.dismiss();

showEmployee(s);

}

@Override

protected String doInBackground(Void... params) {

RequestHandler rh = new RequestHandler();

String s = rh.sendGetRequestParam(konfigurasi.URL_GET_EMP,id);

return s;

}

}

GetEmployee ge = new GetEmployee();

ge.execute();

}

private void showEmployee(String json){

try {

JSONObject jsonObject = new JSONObject(json);

JSONArray result = jsonObject.getJSONArray(konfigurasi.TAG_JSON_ARRAY);

JSONObject c = result.getJSONObject(0);

String name = c.getString(konfigurasi.TAG_NAMA);

String desg = c.getString(konfigurasi.TAG_POSISI);

String sal = c.getString(konfigurasi.TAG_GAJIH);

editTextName.setText(name);

editTextDesg.setText(desg);

editTextSalary.setText(sal);

} catch (JSONException e) {

e.printStackTrace();

}

}

private void updateEmployee(){

final String name = editTextName.getText().toString().trim();

final String desg = editTextDesg.getText().toString().trim();

final String salary = editTextSalary.getText().toString().trim();

class UpdateEmployee extends AsyncTask{

ProgressDialog loading;

@Override

protected void onPreExecute() {

super.onPreExecute();

loading = ProgressDialog.show(TampilPegawai.this,"Updating...","Wait...",false,false);

}

@Override

protected void onPostExecute(String s) {

super.onPostExecute(s);

loading.dismiss();

Toast.makeText(TampilPegawai.this,s,Toast.LENGTH_LONG).show();

}

@Override

protected String doInBackground(Void... params) {

HashMap hashMap = new HashMap<>();

hashMap.put(konfigurasi.KEY_EMP_ID,id);

hashMap.put(konfigurasi.KEY_EMP_NAMA,name);

hashMap.put(konfigurasi.KEY_EMP_POSISI,desg);

hashMap.put(konfigurasi.KEY_EMP_GAJIH,salary);

RequestHandler rh = new RequestHandler();

String s = rh.sendPostRequest(konfigurasi.URL_UPDATE_EMP,hashMap);

return s;

}

}

UpdateEmployee ue = new UpdateEmployee();

ue.execute();

}

private void deleteEmployee(){

class DeleteEmployee extends AsyncTask {

ProgressDialog loading;

@Override

protected void onPreExecute() {

super.onPreExecute();

loading = ProgressDialog.show(TampilPegawai.this, "Updating...", "Tunggu...", false, false);

}

@Override

protected void onPostExecute(String s) {

super.onPostExecute(s);

loading.dismiss();

Toast.makeText(TampilPegawai.this, s, Toast.LENGTH_LONG).show();

}

@Override

protected String doInBackground(Void... params) {

RequestHandler rh = new RequestHandler();

String s = rh.sendGetRequestParam(konfigurasi.URL_DELETE_EMP, id);

return s;

}

}

DeleteEmployee de = new DeleteEmployee();

de.execute();

}

private void confirmDeleteEmployee(){

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

alertDialogBuilder.setMessage("Apakah Kamu Yakin Ingin Menghapus Pegawai ini?");

alertDialogBuilder.setPositiveButton("Ya",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0, int arg1) {

deleteEmployee();

startActivity(new Intent(TampilPegawai.this,TampilSemuaPgw.class));

}

});

alertDialogBuilder.setNegativeButton("Tidak",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0, int arg1) {

}

});

AlertDialog alertDialog = alertDialogBuilder.create();

alertDialog.show();

}

@Override

public void onClick(View v) {

if(v == buttonUpdate){

updateEmployee();

}

if(v == buttonDelete){

confirmDeleteEmployee();

}

}

}

Setelah kalian selesai mengikuti langkah-langkah di atas semua maka program Android siap dijalankan di emulator atau dismartphone Android langsung.

Jika masih ada yang error silahkan Cek kembali File Java Class dan xml nya sudah benar atau belum. dari project Android yang telah kita buat akan menciptakan susunan file Java Class serta xml seperti gambar berikut:

Penting:
Jangan lupa untuk menghidupkan Apache dan MySQL pada xampp atau wamp atau web service lainnya.

jika masih ada yang kurang atau belum ada silahkan baca kembali ke atas ya mungkin ada yang terlewatkan. Source Code CRUD Android dengan MySQL dapat di download pada link berikut ini: Download Source Code

Perdalam pengetahuan

Di bawah ini kami memiliki rujukan tutorial yang bagus buat kamu. Kamu bisa memperdalam pengetahuan mengenai MySQL.

Tutorial MySQL Lengkap Bahasa Indonesia

Jika artikel ini dirasa bermanfaat, silahkan di share ya...

Share: