Skip to main content
cara input data android mysql

Cara Input Data Android Mysql Operasi CRUD

Cara Input Data Android Mysql Operasi CRUD

Salam Sejahtera, kali ini kita akan membahas salah satu materi utama tentang Cara Input Data Android Mysql Operasi CRUD. Maksudnya kita akan membahas tentang proses pembuatan aplikasi secara klien server yaitu Android koneksi dengan Mysql menggunakan bahasa Pemrograman PHP atau menggunakan layanan web. Aplikasi jenis ini sering dibangun untuk jenis aplikasi menggunakan tempat penyimpanan yang besar yaitu Mysql. Proses pertama yang akan kita bahas yaitu Create (Input) Data dari Aplikasi Android ke Mysql Database.Untuk bisa melanjutkan ke pembahasan materi tentang cara input data android mysql Operasi CRUD sebaiknya materi sebelumnya dipahami terlebih dahulu. Materi ini merupakan lanjutan dari materi sebelumnya.

Baca :

Sekilas Tentang Input Data (Create)

Pemahaman tentang proses cara input data android mysql yaitu penginputan data pada aplikasi Android yang kita bangun kemudian data tersebut akan tersimpan di Database Mysql melalui perantara Layanan web (PHP). Cretae merupakan salah satu proses utama database. Jika sebelumnya telah kita buatkan File PHP dan database Mysql pada PC Server, kini kita akan membangun aplikasi pada sisi Klien yaitu pada perangkat Android.

Pembuatan Project Android melalui Android Studio

Jalankan IDE Android Studio kemudian buatkan project baru, berikan konfigurasi sebagai berikut:

  • Application Name : App_mahasiswa
  • Minimum SDK : API 15 (Android 4.03)
  • Target API : API 23
  • Activity Name : Main
  • Layout Name : main

Berikut sekilas penjelasan buat project awal Android Studio

cara input data android mysql
Create New Project
cara input data android mysql
Activity Name

 

Jika tidak ada kendala dalam pembuatan project, maka akan muncul tampilan awal project. Tahap selanjutnya kita akan melakukan editan kode untuk Layout nya.

Layout Tambah Data Untuk Input Data Android Mysql

Layout ini berfungsi untuk proses Input Data Android aplikasi. Kita akan edit file xml nya, akan kita tambahkan 3 Buah TextView, 3 EditText dan 2 Button. Untuk Layout nya pilih jenis : LinearLayout.

Buka file Main.xml, kemudian edit kodenya seperti berikut :

Source Code : Main.xml

<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="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" 
tools:context="com.example.ciqwan.app_crud.Main">
   
 <TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="NPM" />

    <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="Nama Lengkap" />

    <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="Jurusan" />

    <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 Data" 
android:id="@+id/buttonAdd" />

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

</LinearLayout>

Note : Untuk melakukan editan kode, bisa gunakan model Drag and Drop melalui Mode : Design atau Source Code Mode : Text

Berikut Tampilan Hasilnya Layout Utama : Main.xml

cara input data android mysql
Main.xml Layout Tambah Data

Bentuk tampilan yang sederhan dan simpel, jika mau ubah dengan tampilan lain nya silahkan sesuaikan saja.

File Kode Java Input Data

Berikutnya dalam materi cara input data android mysql, Proses Input Data Android, setelah tahapan pembuatan Layout untuk Form Input Data, kini kita akan membuat Script untuk memproses data nya melalui bahasa Java. Kita akan bahasa satu persatu Script Java untuk memproses hubungan ke Database Mysql.

File Config.java

Secara Default ketika kita membuat project awal Android Studio, file main.java akan dibuat secara otomatis. Berikut Source Code default nya:

Source Code : main.java

cara input data android mysql
Main.java Class Code

Untuk sementara biarkan saja dulu jangan diubah, kita akan mengubanya setelah pembuatan class lainnya.

Kita akan buatkan sebuah class baru java untuk menghandle Link URL tempat script PHP kita simpan di Server dan Field Database nya. Hal ini bertujuan agar ketika ada perubahan data, kita tinggal mengubahnya di class ini. Saya beri nama class nya “config.java”. Berikut cara buat class baru :

  • Klik kanan di nama Package : New->Java Class, kemudian beri nama : config , lihat gambar
cara input data android mysql
Create New Class Java
cara input data android mysql
Class Baru

Setelah Class nya terbuat, ketikkan code berikut, keterangan kode lihat di Komentar :

Source Code : Config.java

package com.example.ciqwan.app_crud;

/**
 * Created by Windows10 on 20/03/2016.
 */
public class Config {

    //Alamat URL tempat kita meletakkan script PHP di PC Server
    // Link untuk INSERT Data
    public static final String URL_ADD="http://192.168.1.75/crud/create.php";
    
    // Filed yang digunakan untuk dikirimkan ke Database, sesuaikan saja dengan Field di Tabel Mahasiswa
    public static final String KEY_EMP_ID = "id";
    public static final String KEY_EMP_NPM = "npm";
    public static final String KEY_EMP_NAMA = "nama";
    public static final String KEY_EMP_JURUSAN = "jurusan";
    
    // Tags Format JSON 
    public static final String TAG_JSON_ARRAY="result";
    public static final String TAG_ID = "id";
    public static final String TAG_NPM = "npm";
    public static final String TAG_NAME = "nama";
    public static final String TAG_JURUSAN = "jurusan";

}

Note :

Jika kita lihat kode Script tersebut, Terdapat alamat IP yaitu : 192.168.1.1 , Ini adalah nomor IP komputer saya, anda harus menggantikan nya sesuai IP komputer masing-masing. Kita masih pakai komputer local, karena script PHP nya tidak kita Upload Oniner di Hosting. Cara Untuk mengecek nomor IP Komputer yaitu:

  • Buka Command Prompt, ketikkan perintah : ipconfig, sehinggan akan muncul tampilan berikut, dan catat bagian yang di lingkari merah, itulah nomor IP Komputer kita :
cara input data android mysql
IpConfig untuk alamat IP
  • Pastinya Nomor IP ini akan berubah-ubah, pastikan anda mencatatnya

File RequestHandler.java

Selanjutnya dalam cara input data android mysql. Setelah file Config.java selesai, selanjutnya kita akan buat sebuah class untuk menghandle dan memproses koneksi ke Server. Script ini agak panjang dan bisa kita Download gratis. Buatkan Class baru kemudian beri nama : RequestHandler.java, Edit seperti code berikut :

Source Code : RequestHandler.java

package com.example.ciqwan.app_crud;

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 Windows10 on 20/03/2016.
 */
public class RequestHandler  {
    //Method to send httpPostRequest
    //This method is taking two arguments
    //First argument is the URL of the script to which we will send the request
    //Other is an HashMap with name value pairs containing the data to be send with the request
    public String sendPostRequest(String requestURL,
                                  HashMap<String, String> postDataParams) {
        //Creating a URL
        URL url;

        //StringBuilder object to store the message retrieved from the server
        StringBuilder sb = new StringBuilder();
        try {
            //Initializing Url
            url = new URL(requestURL);

            //Creating an httmlurl connection
            HttpURLConnection conn=(HttpURLConnection) url.openConnection();

            //Configuring connection properties
            conn.setReadTimeout(15000);
            conn.setConnectTimeout(15000);
            conn.setRequestMethod("POST");
            conn.setDoInput(true);
            conn.setDoOutput(true);

            //Creating an output stream
            OutputStream os = conn.getOutputStream();

            //Writing parameters to the request
            //We are using a method getPostDataString which is defined below
            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+"\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();
    }
}

File main.java

Bagian Terakhir tentang cara input data android mysql, kita akan lakukan perubahan pada Script main.java. Buka class main.java, kemudian edit kodenya ubah menjadi sebagai berikut :

Source Code : main.java

package com.example.ciqwan.app_crud;

import android.app.ProgressDialog;
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;

public class Main extends AppCompatActivity implements View.OnClickListener {

    //Mendefinisikan View Edit Text
    private EditText editTextName;
    private EditText editTextDesg;
    private EditText editTextSal;
// Mendefinisikan View Button
    private Button buttonAdd;
  

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //Men Inisialisasi View Text dan Button
        editTextName = (EditText) findViewById(R.id.editTextName);
        editTextDesg = (EditText) findViewById(R.id.editTextDesg);
        editTextSal = (EditText) findViewById(R.id.editTextSalary);
        buttonAdd = (Button) findViewById(R.id.buttonAdd);
        
        //Berikan event listeners Klik ke Button
        buttonAdd.setOnClickListener(this);
        
    }

    //Adding an employee
    private void TambahData(){
        // Ubah setiap View EditText ke tipe Data String
        final String npm = editTextName.getText().toString().trim();
        final String nama = editTextDesg.getText().toString().trim();
        final String jurusan = editTextSal.getText().toString().trim();
        // Pembuatan Class AsyncTask yang berfungsi untuk koneksi ke Database Server

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

            ProgressDialog loading;

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                loading = ProgressDialog.show(Main.this,"Proses Kirim Data...","Wait...",false,false);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                loading.dismiss();
                Toast.makeText(Main.this, s, Toast.LENGTH_LONG).show();
            }

            @Override
            protected String doInBackground(Void... v) {
                HashMap<String,String> params = new HashMap<>();
                // Sesuaikan bagian ini dengan field di tabel Mahasiswa
                params.put(Config.KEY_EMP_NPM,npm);
                params.put(Config.KEY_EMP_NAMA,nama);
                params.put(Config.KEY_EMP_JURUSAN,jurusan);

                RequestHandler rh = new RequestHandler();
                String res = rh.sendPostRequest(Config.URL_ADD, params);
                return res;
            }
        }
        // Jadikan Class TambahData Sabagai Object Baru
        TambahData ae = new TambahData();
        ae.execute();
    }
// Methode untuk event penekanan Button
    @Override
    public void onClick(View v) {
        if(v == buttonAdd){
            TambahData();
        }


    }
}

Script Untuk Proses Tambah Data Selesai, Terakhir karena kita akan melakukan koneksi, set PERMISSION pada bagian file AndroidManifest.xml , tambahkan baris ini :

<uses-permission android:name=”android.permission.INTERNET” />

Lihat Gambar letak penambahan biar lebih jelas.

cara input data android mysql
Android Manifest.xml

Setelah semua tahapan selesai, kini kita Ujicobakan aplikasinya, Saya Ujicoba melalui Emulator Geny Motion. Dan Pastikan Web Server XAMPP telah diaktifkan bagian Apache dan Mysql.

cara input data android mysql
Emulator Android Geny Motion

Kesimpulan cara input data android mysql Operasi CRUD

  • Untuk proses Input Data saya ujicoba kan pada Komputer Lokal
  • Script yang kita butuhkan yaitu Config.java dan requestHandler.java untuk memproses data ke Server
  • Lakukan Ujicoba pada emulator, jika ujicoba langsung ke Device HP, pastika Link URL nya harus Hosting Online tidak bisa pakai Lokal.

BERSAMBUNG KE PROSES READ DATA

Facebook Comments

Ridwan, SST

Seorang Tenaga Pengajar Yang Kebetulan Suka Menulis Dan Membuat Tulisan Melalui Blog Web. CP : 0852 7747 2958 E-mail : awanpijay@rocketmail.com

More Posts - Website

Follow Me:
TwitterFacebookYouTube

Ridwan, SST

Seorang Tenaga Pengajar Yang Kebetulan Suka Menulis Dan Membuat Tulisan Melalui Blog Web. CP : 0852 7747 2958 E-mail : awanpijay@rocketmail.com

  • Suyono

    Tutorial yang bagus Pak. Yang saya tanyakan gimana update otomatisnya di aplikasi kalau databasenya diedit melalui websitenya, kayak update repository F-droid. Mohon pencerahannya. Terimakasih kunjungi juga di
    https://www.mykode.id/tutorial-android/custom-textview-android-dari-java-ke-smali/

    Tutorial membuat Custom TextView Android dari Java ke Smali. Masih newbie mohon dukungannya. Terima kasih.

    • Thank Suyono,, syaa belum pahami pertanayaan kamu,, maksudnya apakah Update nya lagsung di Aplikasi Android atau Webnya.., tutorial saya ni emang ada update lewat Aplikasi Android yang otomatis di Database akan berubah juga. Makasih

  • firman setiawan

    Tutorial yang menarik n sangant membantu pak,

    kalo misalnya di gabungin sama nav drawer gimana ya pak?

    jadi misalnya di menu drawer,ada Tambah Data,
    nah pas di touch menu tambah datanya muncul tampilan tambah datanya,
    kalo nav drawer nya si sudah bikin,
    cuma bingung ngisinya pak,
    terima kasih sebelumnya

    • firman setiawan

      apa harus bikin file java dan layout tersendiri,

    • Makasih masukan,, akan coba kita buatkan model demikian, thank

  • terimakasih pak.,
    insert data berhasil.,

    bagaimana caranya, agar setelah kita selesai input data,
    langsung halaman input datanya menjadi kosong lagi?
    sehingga kita bisa langsung mengisi-nya untuk input data selanjutnya.
    terimakasih.

  • Tambahan :
    Pada tutorial ini merujuk pada file create.php yang ada di halaman sebelah.
    sedangkan di halaman create.php yang dibuat, tidak dapat di-eksesuki karena kurang baris perintah untuk memanggil koneksi ke database-nya.
    Bisa ditambahkan perintah dibawah ini di baris awal setelah perintah IF :

    require_once(‘dbConnect.php’);

    itu baris kode untuk memanggil file koneksi ke database,
    terimakasih.

  • Joseph

    om saya sdh ikuti semua langkah” nya, namun ketika input data dari emulator kok gak masuk ke database…

    mohon pencerahan nya….

    • Dewi Damayanti

      itu karena koneksi ke database nya belum di masukin pa.

      coba yang create.php nya pake yang gini

      🙂

  • Joseph

    https://uploads.disquscdn.com/images/cdd8f5229cf01155a982e915177846d72412e6d30991d0a97cb79a2ef5075ece.jpg

    ketika input data, muncul error seperti pada gambar, kira-kira bagaimana penyelesaian-nya

    mohon pencerahan…

  • Feri Yusuf

    Makasih pak, tutorialnya sangat membantu. Kebetulan saya running langsung di real devicenya.

  • Marido Tan