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
Posting Komentar