CRUD Android dengan MySQL Part 2

CRUD Android dengan MySQL Part 2

47

Sekarang silahkan buat Java Class baru di dalam package yang ada dengan nama konfigurasi. Dan kalian ikuti kode programnya sebagai berikut:

  • Sebagai catatan jangan lupa perhatikan bagian URL (Pemanggilan file PHP yang ada di Server).
  • Sesuaikan Dengan IP kalian masing-masing

package com.kodingindonesia.mycrud;

/**

* Created by muhammadyusuf on 01/19/2017.

* kodingindonesia

*/

public class konfigurasi {

//Dibawah ini merupakan Pengalamatan dimana Lokasi Skrip CRUD PHP disimpan

//Pada tutorial Kali ini, karena kita membuat localhost maka alamatnya tertuju ke IP komputer

//dimana File PHP tersebut berada

//PENTING! JANGAN LUPA GANTI IP SESUAI DENGAN IP KOMPUTER DIMANA DATA PHP BERADA

public static final String URL_ADD="http://192.168.1.9/Android/pegawai/tambahPgw.php";

public static final String URL_GET_ALL = "http://192.168.1.9/Android/pegawai/tampilSemuaPgw.php";

public static final String URL_GET_EMP = "http://192.168.1.9/Android/pegawai/tampilPgw.php?id=";

public static final String URL_UPDATE_EMP = "http://192.168.1.9/Android/pegawai/updatePgw.php";

public static final String URL_DELETE_EMP = "http://192.168.1.9/Android/pegawai/hapusPgw.php?id=";

//Dibawah ini merupakan Kunci yang akan digunakan untuk mengirim permintaan ke Skrip PHP

public static final String KEY_EMP_ID = "id";

public static final String KEY_EMP_NAMA = "name";

public static final String KEY_EMP_POSISI = "desg"; //desg itu variabel untuk posisi

public static final String KEY_EMP_GAJIH = "salary"; //salary itu variabel untuk gajih

//JSON Tags

public static final String TAG_JSON_ARRAY="result";

public static final String TAG_ID = "id";

public static final String TAG_NAMA = "name";

public static final String TAG_POSISI = "desg";

public static final String TAG_GAJIH = "salary";

//ID karyawan

//emp itu singkatan dari Employee

public static final String EMP_ID = "emp_id";

}

Setelah selesai membuat java class konfigurasi, selanjutnya silahkan buat java class kembali dengan nama RequestHandler. Java Class ini kita gunakan untuk menangani permintaan jaringan. Silahkan ikuti kode program untuk java class RequestHandler seperti di bawah ini:

package com.kodingindonesia.mycrud;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.io.UnsupportedEncodingException;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLEncoder;

import java.util.HashMap;

import java.util.Map;

import javax.net.ssl.HttpsURLConnection;

/**

* Created by muhammadyusuf on 01/19/2017.

* kodingindonesia

*/

public class RequestHandler {

//Metode Untuk mengirim httpPostRequest

//Metode ini mengambil 2 Argumen

//Metode Pertama adalah URL dari Skrip yang digunakan untuk mengirimkan permintaan

//Yang lainnya adalah HashMap dengan nilai pasangan nama yang berisi data yang akan dikirim dengan permintaan

public String sendPostRequest(String requestURL,

HashMap<String, String> postDataParams) {

//Membuat URL

URL url;

//Objek StringBuilder untuk menyimpan pesan diambil dari server

StringBuilder sb = new StringBuilder();

try {

//Inisialisasi URL

url = new URL(requestURL);

//Membuat Koneksi HttpURLConnection

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

//Konfigurasi koneksi

conn.setReadTimeout(15000);

conn.setConnectTimeout(15000);

conn.setRequestMethod("POST");

conn.setDoInput(true);

conn.setDoOutput(true);

//Membuat Keluaran Stream

OutputStream os = conn.getOutputStream();

//Menulis Parameter Untuk Permintaan

//Kita menggunakan metode getPostDataString yang didefinisikan di bawah ini

BufferedWriter writer = new BufferedWriter(

new OutputStreamWriter(os, "UTF-8"));

writer.write(getPostDataString(postDataParams));

writer.flush();

writer.close();

os.close();

int responseCode = conn.getResponseCode();

if (responseCode == HttpsURLConnection.HTTP_OK) {

BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

sb = new StringBuilder();

String response;

//Reading server response

while ((response = br.readLine()) != null){

sb.append(response);

}

}

} catch (Exception e) {

e.printStackTrace();

}

return sb.toString();

}

public String sendGetRequest(String requestURL){

StringBuilder sb =new StringBuilder();

try {

URL url = new URL(requestURL);

HttpURLConnection con = (HttpURLConnection) url.openConnection();

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));

String s;

while((s=bufferedReader.readLine())!=null){

sb.append(s+" ");

}

}catch(Exception e){

}

return sb.toString();

}

public String sendGetRequestParam(String requestURL, String id){

StringBuilder sb =new StringBuilder();

try {

URL url = new URL(requestURL+id);

HttpURLConnection con = (HttpURLConnection) url.openConnection();

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));

String s;

while((s=bufferedReader.readLine())!=null){

sb.append(s+" ");

}

}catch(Exception e){

}

return sb.toString();

}

private String getPostDataString(HashMap<String, String> params) throws UnsupportedEncodingException {

StringBuilder result = new StringBuilder();

boolean first = true;

for (Map.Entry<String, String> entry : params.entrySet()) {

if (first)

first = false;

else

result.append("&");

result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));

result.append("=");

result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));

}

return result.toString();

}

}

Selanjutnya mari kita rubah tampilan dari activity_main.xml yang telah terbentuk sejak project pertama kali dibangun. Pada file xml ini kita akan gunakan sebagai tampilan menambah data pegawai (ADD). selain xml ini kita nantinya akan membuat tampilan lain atau file xml lainnya untuk menampilkan data semua pegawai dan untuk menampilkan data dari pegawai yang di pilih/select. Untuk file xml activity_main.xml silahkan ikuti kode programnya seperti berikut:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

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

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Nama Pegawai" />

<EditText

android:layout_width="match_parent"

android:layout_height="wrap_content"

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

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Posisi" />

<EditText

android:layout_width="match_parent"

android:layout_height="wrap_content"

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

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Gajih" />

<EditText

android:layout_width="match_parent"

android:layout_height="wrap_content"

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

<Button

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Tambah Pegawai"

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

<Button

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Daftar Pegawai"

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

</LinearLayout>

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

Selanjutnya silahkan ikuti kode program untuk MainActivity.java seperti berikut ini:

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.Button;

import android.widget.EditText;

import android.widget.Toast;

import java.util.HashMap;

/**

* Created by muhammadyusuf on 01/19/2017.

* kodingindonesia

*/

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

//Dibawah ini merupakan perintah untuk mendefinikan View

private EditText editTextName;

private EditText editTextDesg;

private EditText editTextSal;

private Button buttonAdd;

private Button buttonView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//Inisialisasi dari View

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

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

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

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

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

//Setting listeners to button

buttonAdd.setOnClickListener(this);

buttonView.setOnClickListener(this);

}

//Dibawah ini merupakan perintah untuk Menambahkan Pegawai (CREATE)

private void addEmployee(){

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

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

final String sal = editTextSal.getText().toString().trim();

class AddEmployee extends AsyncTask<Void,Void,String>{

ProgressDialog loading;

@Override

protected void onPreExecute() {

super.onPreExecute();

loading = ProgressDialog.show(MainActivity.this,"Menambahkan...","Tunggu...",false,false);

}

@Override

protected void onPostExecute(String s) {

super.onPostExecute(s);

loading.dismiss();

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

}

@Override

protected String doInBackground(Void... v) {

HashMap<String,String> params = new HashMap<>();

params.put(konfigurasi.KEY_EMP_NAMA,name);

params.put(konfigurasi.KEY_EMP_POSISI,desg);

params.put(konfigurasi.KEY_EMP_GAJIH,sal);

RequestHandler rh = new RequestHandler();

String res = rh.sendPostRequest(konfigurasi.URL_ADD, params);

return res;

}

}

AddEmployee ae = new AddEmployee();

ae.execute();

}

@Override

public void onClick(View v) {

if(v == buttonAdd){

addEmployee();

}

if(v == buttonView){

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

}

}

}

Silahkan klik Next Step di bawah ini untuk melanjutkan belajar.

Share: