LANJUTAN PROJECT CLINET SERVER part 04

Pada laporan ke-4 kali ini, saya akan menjelaskan tentang penambahan field di android, mysql dan server.
TetapPersiapan file yang kemarin, contoh di bawahini :
A.    Database
è Buka localhost/phpmyadmin
è Buat database dengan nama pakaian

B.     PHP
è Buka folder htdocs ( C : xampp/htdocs )
è Buat sebuah folder bernama pakaian
è di dalam folder server, buat sebuah file dengan nama index.php

C.   Android
è Buat sebuah project (File -> New Android Application) dan beri nama pakaian
è Pada lokasi src pastikan sudah ada file :
a.       MainActivity.java
b.      Koneksi.Java
c.       Pakaian.java

File yang di atasadalah file yang kemarinsaya, upload di laporan ke-3 saya. Namun kali ini, sayasudahmenggantikontennyasepertigambar-gambar yang ada di bawahini.

Database
Ekseskusi query ini untuk membuat tabel_biodata
Jika dibrowse, maka hasilnya akan kelihatan seperti gambar berikut :


PHP - index.php


Buka server.php yang berada di lokasi C:\xampp\htdocs\server\index.php, lalu ketikkan source code berikut :
<form method="post" action="simpan_data.php">
            <table border="0" align="center">
            <tr>
            <td colspan="5" align="center"><h2>From Inputan</h2></td>

            </tr>
            <tr>
                        <td>Merk</td>
                        <td>:</td>
                        <td><input type="text" name="merk"/></td>
            </tr>
            <tr>
                        <td>Jenis</td>
                        <td>:</td>
                        <td><input type="text" name="jenis"/></td>
            </tr>
            <tr>
                        <td>Ukuran</td>
                        <td>:</td>
                        <td><input type="text" name="ukuran"/></td>

            </tr>
            <tr>
                        <td>Harga</td>
                        <td>:</td>
                        <td><input type="number" name="harga"/></td>
            </tr>
            <tr>
            <td></td>
            <td></td>
                        <td><input type="submit" value="Simpan"/>
                        <input type="reset" value="Reset"/></td>
            </tr>
            </table>
           
</form>




Android

Android - main.xml
<LinearLayoutxmlns: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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
       android:orientation="vertical"
tools:context="com.examplore.deathnote.MainActivity">

<Button
android:id="@+id/buttonTambahPakaian"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Tambah Data Loundry"/>

<HorizontalScrollView
android:id="@+id/horizontalScrollView"
android:layout_width="fill_parent"
android:layout_height="wrap_content">

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

<TableLayout
android:id="@+id/tablePakaian"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp">
</TableLayout>
</ScrollView>
</HorizontalScrollView>

</LinearLayout>












Android - class.java

MainActivity,java

package com.is.pakaian;

import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;



import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.os.StrictMode;
import android.support.v4.view.ViewPager.LayoutParams;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;

@SuppressLint("NewApi") public class MainActivity extends Activity implements OnClickListener {

     Pakaian pakaian = new Pakaian();
     TableLayout tabelPakaian;

     Button buttonTambahPakaian;
     ArrayList<Button> buttonEdit = new ArrayList<Button>();
     ArrayList<Button> buttonDelete = new ArrayList<Button>();

     JSONArray arrayPakaian;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (android.os.Build.VERSION.SDK_INT > 9) {
              StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                .permitAll().build();
              StrictMode.setThreadPolicy(policy);
             }
        //pengenalan variabel
        tabelPakaian = (TableLayout) findViewById(R.id.tablePakaian);
          buttonTambahPakaian = (Button) findViewById(R.id.buttonTambahPakaian);
          buttonTambahPakaian.setOnClickListener(this);

          TableRow barisTabel = new TableRow(this);
          barisTabel.setBackgroundColor(Color.CYAN);

          TextView viewHeaderId = new TextView(this);
          TextView viewHeaderMerk = new TextView(this);
          TextView viewHeaderJenis = new TextView(this);
          TextView viewHeaderUkuran = new TextView(this);
          TextView viewHeaderHarga = new TextView(this);
          TextView viewHeaderAction = new TextView(this);

          viewHeaderId.setText("ID");
          viewHeaderMerk.setText("Merk");
          viewHeaderJenis.setText("Jenis");
          viewHeaderUkuran.setText("Ukuran");
          viewHeaderHarga.setText("Harga");
          viewHeaderAction.setText("Action");

          viewHeaderId.setPadding(5, 1, 5, 1);
          viewHeaderMerk.setPadding(5, 1, 5, 1);
          viewHeaderJenis.setPadding(5, 1, 5, 1);
          viewHeaderUkuran.setPadding(5, 1, 5, 1);
          viewHeaderHarga.setPadding(5, 1, 5, 1);
          viewHeaderAction.setPadding(5, 1, 5, 1);

          barisTabel.addView(viewHeaderId);
          barisTabel.addView(viewHeaderMerk);
          barisTabel.addView(viewHeaderJenis);
          barisTabel.addView(viewHeaderUkuran);
          barisTabel.addView(viewHeaderHarga);
          barisTabel.addView(viewHeaderAction);

          tabelPakaian.addView(barisTabel, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT));

          try {

           arrayPakaian = new JSONArray(pakaian.tampilPakaian());

           for (int i = 0; i < arrayPakaian.length(); i++) {
            JSONObject jsonChildNode = arrayPakaian.getJSONObject(i);
            String merk = jsonChildNode.optString("merk");
            String jenis = jsonChildNode.optString("jenis");
            String ukuran = jsonChildNode.optString("ukuran");
            String harga = jsonChildNode.optString("harga");
            String id = jsonChildNode.optString("id");

            System.out.println("Merk :" + merk);
            System.out.println("Jenis :" + jenis);
            System.out.println("Ukuran :" + ukuran);
            System.out.println("Harga :" + harga);
            System.out.println("ID :" + id);

            barisTabel = new TableRow(this);

            if (i % 2 == 0) {
             barisTabel.setBackgroundColor(Color.LTGRAY);
            }

            TextView viewId = new TextView(this);
            viewId.setText(id);
            viewId.setPadding(5, 1, 5, 1);
            barisTabel.addView(viewId);

            TextView viewMerk = new TextView(this);
            viewMerk.setText(merk);
            viewMerk.setPadding(5, 1, 5, 1);
            barisTabel.addView(viewMerk);

            TextView viewJenis = new TextView(this);
            viewJenis.setText(jenis);
            viewJenis.setPadding(5, 1, 5, 1);
            barisTabel.addView(viewJenis);

            TextView viewUkuran = new TextView(this);
            viewUkuran.setText(ukuran);
            viewUkuran.setPadding(5, 1, 5, 1);
            barisTabel.addView(viewUkuran);

            TextView viewHarga = new TextView(this);
            viewHarga.setText(harga);
            viewHarga.setPadding(5, 1, 5, 1);
            barisTabel.addView(viewHarga);

            buttonEdit.add(i, new Button(this));
            buttonEdit.get(i).setId(Integer.parseInt(id));
            buttonEdit.get(i).setTag("Edit");
            buttonEdit.get(i).setText("Edit");
            buttonEdit.get(i).setOnClickListener(this);
            barisTabel.addView(buttonEdit.get(i));

            buttonDelete.add(i, new Button(this));
            buttonDelete.get(i).setId(Integer.parseInt(id));
            buttonDelete.get(i).setTag("Delete");
            buttonDelete.get(i).setText("Delete");
            buttonDelete.get(i).setOnClickListener(this);
            barisTabel.addView(buttonDelete.get(i));

            tabelPakaian.addView(barisTabel, new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT,
              LayoutParams.MATCH_PARENT));
           }
          } catch (JSONException e) {
           e.printStackTrace();
          }
         }

         public void onClick(View view) {

          if (view.getId() == R.id.buttonTambahPakaian) {
           // Toast.makeText(MainActivity.this, "Button Tambah Data",
           // Toast.LENGTH_SHORT).show();

           tambahPakaian();

          } else {
           /*
            * Melakukan pengecekan pada data array, agar sesuai dengan index
            * masing-masing button
            */
           for (int i = 0; i < buttonEdit.size(); i++) {

            /* jika yang diklik adalah button edit */
            if (view.getId() == buttonEdit.get(i).getId() && view.getTag().toString().trim().equals("Edit")) {
             // Toast.makeText(MainActivity.this, "Edit : " +
             // buttonEdit.get(i).getId(), Toast.LENGTH_SHORT).show();
             int id = buttonEdit.get(i).getId();
             getDataByID(id);

            } /* jika yang diklik adalah button delete */
            else if (view.getId() == buttonDelete.get(i).getId() && view.getTag().toString().trim().equals("Delete")) {
             // Toast.makeText(MainActivity.this, "Delete : " +
             // buttonDelete.get(i).getId(), Toast.LENGTH_SHORT).show();
             int id = buttonDelete.get(i).getId();
             deletePakaian(id);

            }
           }
          }
         }

         public void deletePakaian(int id) {
          pakaian.deletePakaian(id);

          /* restart acrtivity */
          finish();
          startActivity(getIntent());

         }

         public void getDataByID(int id) {

          String merkEdit = null, jenisEdit = null, ukuranEdit = null, hargaEdit = null;
          JSONArray arrayPersonal;

          try {

           arrayPersonal = new JSONArray(pakaian.getPakaianById(id));

           for (int i = 0; i < arrayPersonal.length(); i++) {
            JSONObject jsonChildNode = arrayPersonal.getJSONObject(i);
            merkEdit = jsonChildNode.optString("merk");
            jenisEdit = jsonChildNode.optString("jenis");
            ukuranEdit = jsonChildNode.optString("ukuran");
           hargaEdit = jsonChildNode.optString("harga");
           }
          } catch (JSONException e) {
           e.printStackTrace();
          }

          LinearLayout layoutInput = new LinearLayout(this);
          layoutInput.setOrientation(LinearLayout.VERTICAL);

          // buat id tersembunyi di alertbuilder
          final TextView viewId = new TextView(this);
          viewId.setText(String.valueOf(id));
          viewId.setTextColor(Color.TRANSPARENT);
          layoutInput.addView(viewId);

          final EditText editMerk = new EditText(this);
          editMerk.setText(merkEdit);
          layoutInput.addView(editMerk);

          final EditText editJenis = new EditText(this);
          editJenis.setText(jenisEdit);
          layoutInput.addView(editJenis);

          final EditText editUkuran = new EditText(this);
          editUkuran.setText(ukuranEdit);
          layoutInput.addView(editUkuran);

          final EditText editHarga = new EditText(this);
          editHarga.setText(hargaEdit);
          layoutInput.addView(editHarga);

          AlertDialog.Builder builderEditPakaian = new AlertDialog.Builder(this);
          builderEditPakaian.setIcon(R.drawable.ic_launcher);
          builderEditPakaian.setTitle("Update Pakaian");
          builderEditPakaian.setView(layoutInput);
          builderEditPakaian.setPositiveButton("Update", new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int which) {
            String merk = editMerk.getText().toString();
            String jenis = editJenis.getText().toString();
            String ukuran = editUkuran.getText().toString();
            String harga = editHarga.getText().toString();

            System.out.println("Merk : " + merk + " Jenis : " + jenis+ " Ukuran : " + ukuran+ " Harga : " + harga);

            String laporan = pakaian.updatePakaian(viewId.getText().toString(), editMerk.getText().toString(),
                    editJenis.getText().toString(),editUkuran.getText().toString(),  editHarga.getText().toString());

            Toast.makeText(MainActivity.this, laporan, Toast.LENGTH_SHORT).show();

            /* restart acrtivity */
            finish();
            startActivity(getIntent());
           }

          });

          builderEditPakaian.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();
           }
          });
          builderEditPakaian.show();

         }

         public void tambahPakaian() {
          /* layout akan ditampilkan pada AlertDialog */
          LinearLayout layoutInput = new LinearLayout(this);
          layoutInput.setOrientation(LinearLayout.VERTICAL);

          final EditText editMerk = new EditText(this);
          editMerk.setHint("Merk");
          layoutInput.addView(editMerk);

          final EditText editJenis = new EditText(this);
          editJenis.setHint("Jenis");
          layoutInput.addView(editJenis);

          final EditText editUkuran = new EditText(this);
          editUkuran.setHint("Ukuran");
          layoutInput.addView(editUkuran);

          final EditText editHarga = new EditText(this);
          editHarga.setHint("Harga");
          layoutInput.addView(editHarga);

          AlertDialog.Builder builderInsertPakaian = new AlertDialog.Builder(this);
          builderInsertPakaian.setIcon(R.drawable.ic_launcher);
          builderInsertPakaian.setTitle("Insert Pakaian");
          builderInsertPakaian.setView(layoutInput);
          builderInsertPakaian.setPositiveButton("Insert", new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int which) {
            String merk = editMerk.getText().toString();
            String jenis = editJenis.getText().toString();
            String ukuran = editUkuran.getText().toString();
            String harga = editHarga.getText().toString();

            System.out.println("Merk : " + merk + " Jenis : " + jenis+ " Ukuran : " + ukuran+ " Harga : " + harga);

            String laporan = pakaian.inserPakaian(merk, jenis, ukuran, harga);

            Toast.makeText(MainActivity.this, laporan, Toast.LENGTH_SHORT).show();

            /* restart acrtivity */
            finish();
            startActivity(getIntent());
           }

          });

          builderInsertPakaian.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();
           }
          });
          builderInsertPakaian.show();
         }
}





Koneksi,java

package com.is.pakaian;


           
            import java.io.IOException;
            import java.io.InputStream;
            import java.io.InputStreamReader;
            import java.net.HttpURLConnection;
            import java.net.URL;
            import java.net.URLConnection;

            public class Koneksi {

                public String call(String url) {
                      int BUFFER_SIZE = 2000;
                      InputStream in = null;
                      try {
                       in = OpenHttpConnection(url);
                      } catch (IOException e) {
                       e.printStackTrace();
                       return "";
                      }
                      InputStreamReader isr = new InputStreamReader(in);
                      int charRead;
                      String str = "";
                      char[] inputBuffer = new char[BUFFER_SIZE];
                      try {
                       while ((charRead = isr.read(inputBuffer)) > 0) {
                        String readString = String.copyValueOf(inputBuffer, 0, charRead);
                        str += readString;
                        inputBuffer = new char[BUFFER_SIZE];
                       }
                       in.close();
                      } catch (IOException e) {
                       // Handle Exception
                       e.printStackTrace();
                       return "";
                      }
                      return str;
                     }

                     private InputStream OpenHttpConnection(String url) throws IOException {
                      InputStream in = null;
                      int response = -1;
                      URL url1 = new URL(url);
                      URLConnection conn = url1.openConnection();
                      if (!(conn instanceof HttpURLConnection))
                       throw new IOException("Not An Http Connection");
                      try {
                       HttpURLConnection httpconn = (HttpURLConnection) conn;
                       httpconn.setAllowUserInteraction(false);
                       httpconn.setInstanceFollowRedirects(true);
                       httpconn.setRequestMethod("GET");
                       httpconn.connect();
                       response = httpconn.getResponseCode();
                       if (response == HttpURLConnection.HTTP_OK) {
                        in = httpconn.getInputStream();
                       }
                      } catch (Exception e) {
                       throw new IOException("Error connecting2");
                      }
                      return in;
                     }
            }


Pakaian.java

package com.is.pakaian;

publicclass Pakaian extends Koneksi {

             String URL = "http://10.0.2.2/Server/server.php";
     String url = "";
     String response = "";

public String tampilPakaian() {
try {
url = URL + "?operasi=view";
       System.out.println("URL Tampil Pakaian: " + url);
response = call(url);
      } catch (Exception e) {
      }
returnresponse;
     }

public String inserPakaian(String merk, String jenis,String ukuran, String harga) {
try {
url = URL + "?operasi=insert&merk=" + merk + "&jenis=" + jenis+ "&ukuran=" + ukuran+ "&harga=" + harga;
       System.out.println("URL Insert Pakaian : " + url);
response = call(url);
      } catch (Exception e) {
      }
returnresponse;
     }

public String getPakaianById(int id) {
try {
url = URL + "?operasi=get_pakaian_by_id&id=" + id;
       System.out.println("URL Insert Pakaian : " + url);
response = call(url);
      } catch (Exception e) {
      }
returnresponse;
     }

public String updatePakaian(String id, String merk, String jenis, String ukuran, String harga) {
try {
url = URL + "?operasi=update&id=" + id + "&merk=" + merk + "&jenis=" + jenis + "&ukuran=" + ukuran + "&harga=" + harga;
       System.out.println("URL Insert Biodata : " + url);
response = call(url);
      } catch (Exception e) {
      }
returnresponse;
     }

public String deletePakaian(int id) {
try {
url = URL + "?operasi=delete&id=" + id;
       System.out.println("URL Insert Pakaian : " + url);
response = call(url);
      } catch (Exception e) {
      }
returnresponse;
     }

}




Untuk hasil running bisa lihat gambar di bawah ini…





Inilah hasil running project.




Selesai..maafjikatampilannyakurangcantik, andabisamemperindahtampilannyadengan CSS <HTML>dan lain sebagainya…






Komentar