CRUD Database MySQL dengan PHP Pada Apk Andoroid

Berikut pelaksanaan praktikum : 

  • Buka Aplikasi Android Studio. Setelah muncul seperti ini, klik Star a new Android Studio project.
  • Pilih template yang akan digunakan sesuai dengan kebutuhan, dan next.
  • Akan muncul tampilan seperti dibawah ini. Kita hanya perlu memberi nama project pada “Name” dan pilih lokasi penyimpanan project-nya akan disimpan difolder mana pada bagian “Save location”, selebihnya cukup biarkan saja. Untuk name kita beri nama “CRUD_PHPMySQL”. Jika sudah, klik “Finish”.
  • Ubah dan ketikkan script pada activity_mail.xml dibawah ini : 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp"
    android:paddingBottom="16dp"
    tools:context=".MainActivity">
    <TextView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="Nama Mahasiswa : "
        android:textSize="18dp"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextName" 
        android:hint="Masukan Nama Anda"
        android:inputType="text" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="N R P : "
        android:textSize="18dp" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextNRP"
        android:inputType="number" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Kelas : "
        android:textSize="18dp" />

    <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/spinnerkelas"
        android:spinnerMode="dropdown" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Blog URL : "
        android:textSize="18dp"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextBlog"
        android:hint="Input Link URL Blog"
        android:inputType="text" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Tambah Data Mahasiswa"
        android:id="@+id/buttonAdd" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Daftar Mahasiswa"
        android:id="@+id/buttonView" />

  </LinearLayout>

  • Tampilan dari kode program diatas akan muncul seperti ini : 
  • Selanjutnya ubah dan ketikkan script dibawah ini pada MainActivity.java : 
package dewiratnawati246.blogspot.crud_phpmysql;

import androidx.appcompat.app.AppCompatActivity;

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.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import java.nio.channels.AsynchronousChannelGroup;
import java.util.HashMap;

public   class MainActivity extends AppCompatActivity implements 
View.OnClickListener {
    private EditText editTextName;
    private EditText editTextNRP;
    private EditText editTextBlog;
    private Button buttonAdd;
    private Button buttonView;
    private Spinner spinnerKelas;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editTextName = (EditText) findViewById(R.id.editTextName);
        editTextNRP = (EditText) findViewById(R.id.editTextNRP);
        editTextBlog = (EditText) findViewById(R.id.editTextBlog);
        buttonAdd = (Button) findViewById(R.id.buttonAdd);
        buttonView = (Button) findViewById(R.id.buttonView);
        spinnerKelas = (Spinner) findViewById(R.id.spinnerkelas);
        String[] spinnerItem = new String[]{"TI-1","TI-2","TI-3","TI-Mlm"};
        ArrayAdapter<String> adapter = new  ArrayAdapter<>(this, android.R.layout.simple_spinner_item,spinnerItem);
        spinnerKelas.setAdapter(adapter);

        buttonAdd.setOnClickListener(this);
        buttonView.setOnClickListener(this);
    }

    private void addMhs(){
        final String name = editTextName.getText().toString().trim();
        final String nrp = editTextNRP.getText().toString().trim();
        final String blog = editTextBlog.getText().toString().trim();
        final String kelas =(String) spinnerKelas.getSelectedItem();
        Log.d("kelas",kelas);

        class AddMhs 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_MHS_NAMA,name);
                params.put(konfigurasi.KEY_MHS_NRP,nrp);
                params.put(konfigurasi.KEY_MHS_KELAS,kelas);
                params.put(konfigurasi.KEY_MHS_BLOG,blog);

                RequestHandler rh = new RequestHandler();

String res = rh.sendPostRequest(konfigurasi.URL_ADD, params);
                Log.d("res",res);
                return res;
            }
        }
        AddMhs ae = new AddMhs();
        ae.execute();
    }
    @Override
    public void onClick(View v) {
        if(v == buttonAdd){
            addMhs();
        }
        if(v == buttonView){
            startActivity(new Intent(this,TampilSemuaMhs.class));
        }
    }
}
  •  Selanjutnya kita buat activity baru yang berisi layout activity_tampil_semua_mhs.xml dan class tampilsemuamhs, dengan cara seperti dibawah ini : 

  • Isikan kolom Activity Name dengan nama TampilSemuaMhs : 

  • Activity_tampil_semua_mhs.xml ini berisikan semua data yg sudah diinput : 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp"
    android:paddingBottom="16dp"
    tools:context=".TampilSemuaMhs">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/listView" />

</LinearLayout>
  • Lalu untuk kode - kode java pada TampilSemuaMhs.java ketikkam script dibawah ini : 
package dewiratnawati246.blogspot.crud_phpmysql;

import androidx.appcompat.app.AppCompatActivity;

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

public class TampilSemuaMhs 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_mhs);
        listView = findViewById(R.id.listView);
        listView.setOnItemClickListener(this);
        getJSON();
    }

    private void showMhs(){
        JSONObject jsonObject = null;
        ArrayList <HashMap<String,String>> list = new ArrayList<HashMap<String, String>>();
        try {
            jsonObject = new JSONObject(JSON_STRING);
            JSONArray result = jsonObject.getJSONArray(konfigurasi.TAG_JSON_ARRAY);

for (int i = 0; i<result.length();i++){
                JSONObject jo = result.getJSONObject(i);
                String id = jo.getString(konfigurasi.TAG_ID);

                String name = jo.getString(konfigurasi.TAG_NAMA);
                HashMap<String,String> mhs = new HashMap<>();
                mhs.put(konfigurasi.TAG_ID, id);
                mhs.put(konfigurasi.TAG_NAMA, name);
                list.add(mhs);
            }
        }
        catch (JSONException e) {
            e.printStackTrace();
        }

        ListAdapter adapter = new SimpleAdapter(TampilSemuaMhs.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 <Void, Void, String>{
            ProgressDialog loading;
            @Override
            protected void onPreExecute(){
                super.onPreExecute();
                loading = ProgressDialog.show(TampilSemuaMhs.this,"Mengambil data","Mohon Tunggu",false,false);
            }

            @Override
            protected void onPostExecute(String s){
                super.onPostExecute(s);
                loading.dismiss();
                JSON_STRING = s;
                showMhs();
            }

            @Override
            protected String doInBackground(Void... params){

RequestHandler rh = new RequestHandler();
                Log.d("Testing","Test");
                String s = rh.sendGetRequest(konfigurasi.URL_GET_ALL);
                Log.d("response",s);

                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, TampilMhs.class);
        HashMap<String,String> map = (HashMap)parent.getItemAtPosition(position);
        String mhsID = map.get(konfigurasi.TAG_ID).toString();
        intent.putExtra(konfigurasi.MHS_ID,mhsID);
startActivity(intent);
    }
}

  • Buatlah acitivity lagi berisika layout list_item.xml. Caranya sama seperti sebelumnya, Activity Name kita beri nama ListView, sedangkan Layout Name kita beri nama list_item. Dan klik finish

  • Pada list_item.xml kita ketikkan script dibwah ini : 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/id" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/name" />

</LinearLayout>

  • Pada ListView.java kita ketikkan script seperti dibawah ini : 
package dewiratnawati246.blogspot.crud_phpmysql;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class ListView extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_item);
    }
}
  • Activity ini berfungsi untuk menampilkan data informasi salah satu data dari kumpulan data yang telah diinput, dengan mengklik salah satu nama  yang ingin ditampilkan informasinya, pada Layout activity_tampil_mhs, Activity Name kita beri nama TampilMhs. Jika sudah klik finish. 

  • Ketikkan script'nya seperti dibawah ini : 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    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="ID Mahasiswa : " />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextId" />
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nama Mahasiswa :" />

    <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="N R P :" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextNRP" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Kelas :" />

<Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/spinnerkelas"
        android:spinnerMode="dropdown" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Blog URL :" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextBlog" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Update Data Mahasiswa"
        android:id="@+id/buttonUpdate" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hapus Data"
        android:id="@+id/buttonDelete" />

</LinearLayout>
  • Dari script kode - kode diatas, maka akan tampil seperti ini : 

  • Ketikkan kode java pada class TampilMhs.java :
package dewiratnawati246.blogspot.crud_phpmysql;

import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;

public class TampilMhs extends AppCompatActivity implements View.OnClickListener {
    private EditText editTextId;
    private EditText editTextName;
    private EditText editTextNRP;
    private EditText editTextBlog;

    private Spinner spinnerKelas;
    private Button buttonUpdate;
    private Button buttonDelete;

    private String id;


    String[] spinnerItem = new String[] {"TI-1","TI-2","TI-3","TI-Mlm"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tampil_mhs);
        Intent intent = getIntent();
id = intent.getStringExtra(konfigurasi.MHS_ID);
        editTextId = findViewById(R.id.editTextId);
        editTextName = findViewById(R.id.editTextName);
        editTextNRP = findViewById(R.id.editTextNRP);
        spinnerKelas = findViewById(R.id.spinnerkelas);
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item,spinnerItem);
        spinnerKelas.setAdapter(adapter);
        editTextBlog = findViewById(R.id.editTextBlog);

        buttonUpdate = findViewById(R.id.buttonUpdate);
        buttonDelete = findViewById(R.id.buttonDelete);
        buttonDelete.setOnClickListener(this);
        buttonUpdate.setOnClickListener(this);
        editTextId.setText(id);
        getMhs();
}

    private void getMhs(){
        class GetMhs extends AsyncTask<Void,Void,String>{
            ProgressDialog loading;

            @Override
            protected void onPreExecute(){
                super.onPreExecute();
                loading = ProgressDialog.show(TampilMhs.this,"Fetching . . .","Wait. . .",false,false);
            }

            @Override
            protected void onPostExecute (String s){
                super.onPostExecute(s);
                loading.dismiss();
                showMhs(s);
            }

            @Override
            protected String doInBackground(Void... params){
RequestHandler rh = new RequestHandler();
                String s = rh.sendGetRequestParam(konfigurasi.URL_GET_EMP,id);
                return s;
            }
        }
        GetMhs ge = new GetMhs();
        ge.execute();
    }

    private void showMhs(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 nrp = c.getString(konfigurasi.TAG_NRP);
            String kelas = c.getString(konfigurasi.TAG_KELAS);
String blog = c.getString(konfigurasi.TAG_BLOG);
            editTextName.setText(name);
            editTextNRP.setText(nrp);
            ArrayAdapter<String> berhitung = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item,spinnerItem);
            int selectionPosition= berhitung.getPosition(kelas);
            spinnerKelas.setSelection(selectionPosition);
            editTextBlog.setText(blog);
        }
        catch (JSONException e){
            e.printStackTrace();
        }
    }
    private void updateMhs(){
        final String name = editTextName.getText().toString().trim();
        final String nrp = editTextNRP.getText().toString().trim();
        final String kelas = (String)spinnerKelas.getSelectedItem();
final String blog = editTextBlog.getText().toString().trim();
        class UpdateMhs extends AsyncTask<Void,Void,String>{ ProgressDialog loading;
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                loading = ProgressDialog.show(TampilMhs.this,"Updating...","Wait...",false,
                        false);
            }
            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                loading.dismiss();
                Toast.makeText(TampilMhs.this,s,Toast.LENGTH_LONG).show();
            }
            @Override
            protected String doInBackground(Void... params) {
                HashMap<String,String> hashMap = new HashMap<>();
hashMap.put(konfigurasi.KEY_MHS_ID,id);
                hashMap.put(konfigurasi.KEY_MHS_NAMA,name);
                hashMap.put(konfigurasi.KEY_MHS_NRP,nrp);
                hashMap.put(konfigurasi.KEY_MHS_KELAS,kelas);
                hashMap.put(konfigurasi.KEY_MHS_BLOG,blog);
                RequestHandler rh = new RequestHandler();
                String s = rh.sendPostRequest(konfigurasi.URL_UPDATE_EMP,hashMap);
                Log.d("res",s);
                return s;
            }
        }
        UpdateMhs ue = new UpdateMhs();
        ue.execute();
    }

    private void deleteMhs(){
        class DeleteMhs extends AsyncTask<Void,Void,String>{
            ProgressDialog loading;

@Override
            protected void onPreExecute(){
                super.onPreExecute();
                loading = ProgressDialog.show(TampilMhs.this, "Updating. . .","Tunggu. . .",false,false);
            }

            @Override
            protected void onPostExecute(String s){
                super.onPostExecute(s);
                loading.dismiss();
                Toast.makeText(TampilMhs.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;
            }
}
        DeleteMhs de = new DeleteMhs();
        de.execute();
    }

    private void confirmDeleteMhs(){
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
        alertDialogBuilder.setMessage("Apakah kamu yakin ingin menghapus data ini ?");
        alertDialogBuilder.setPositiveButton("Ya", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                deleteMhs();
                startActivity(new Intent(TampilMhs.this, TampilSemuaMhs.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){
            updateMhs();
        }
        if (v==buttonDelete){
            confirmDeleteMhs();
        }
    }
}

  • Selanjutnya buat class baru dengan nama konfigurasi.java : 

  • Lalu ketikkan script dibawa ini : 
package dewiratnawati246.blogspot.crud_phpmysql;

public class konfigurasi {
    public static final String URL_ADD = "http://android.unggasid.com/mhs/tambahMhs.php";
    public static final String URL_GET_ALL = "http://android.unggasid.com/mhs/tampilSemuaMhs.php";
    public static final String URL_GET_EMP = "http://android.unggasid.com/mhs/tampilMhs.php?id=";
    public static final String URL_UPDATE_EMP = "http://android.unggasid.com/mhs/updateMhs.php";
    public static final String URL_DELETE_EMP = "http://android.unggasid.com/mhs/hapusMhs.php?id=";

    public static final String KEY_MHS_ID = "id";
    public static final String KEY_MHS_NAMA = "name";
    public static final String KEY_MHS_NRP = "nrp";
public static final String KEY_MHS_KELAS = "kelas";
    public static final String KEY_MHS_BLOG = "blog";

    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_NRP = "nrp";
    public static final String TAG_KELAS = "kelas";
    public static final String TAG_BLOG = "blog";


    public static final String MHS_ID = "mhs_id";
}

  • Buat class baru RequestHandler.java untuk menangani permintaan jaringan : 
package dewiratnawati246.blogspot.crud_phpmysql;

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;

public class RequestHandler {

    //metode yang digunakan mengirim httpPostRequest
    public String sendPostRequest (String requestURL, HashMap<String,String>postDataParams){
        URL url;
StringBuilder sb = new StringBuilder();
        try{
            url = new URL(requestURL);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(15000);
            conn.setConnectTimeout(15000);
            conn.setRequestMethod("POST");
            conn.setDoInput(true);
            conn.setDoOutput(true);

            OutputStream os = conn.getOutputStream();
            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;
                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+"\n");
            }
        }
        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+"\n");
            }
        }
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();
    }
}
  • Lalu ubah script pada AndroidManifest.xml : 
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="dewiratnawati246.blogspot.crud_phpmysql">
    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:usesCleartextTraffic="true"
        android:supportsRtl="true"
        android:theme="@style/Theme.CRUD_PHPMySQL">
        <activity android:name=".TampilMhs"></activity>
        <activity android:name=".ListView" />
        <activity android:name=".TampilSemuaMhs" />

<activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

  • Maka, jika dijalankan maka akan tampil seperti ini : 






Sekian pelaksanaan praktikum mengenai CRUD Database MySQL dengan PHP Pada Apk Andoroid dan terima kasih sudah mampir ke blog ini🙏




Komentar

Postingan populer dari blog ini

PENGENALAN LAYOUTING (LinearLayout, RelativeLayout, TableLayout, AbsoluteLayout) PADA ANDROID STUDIO

PENGENALAN SQLITE PADA ANDROID STUDIO