Lompat ke konten Lompat ke sidebar Lompat ke footer

Tutorial CRUD Android Studio dengan MySQL Part #1

Assalamualaikum wr.wb
Gimana kabarnya sahabat koding? Semoga kita selalu diberikan kesehatan Aamiin.
Pada kesempatan kali ini kita akan belajar membuat aplikasi CRUD, apa itu CRUD? merupakan singkatan data (Create, Read, Update, Delete) yang kita akan implementasikan menggunakan Android dan database MySql.
Ini merupakan dasar yang sangat penting bagi teman-teman untuk mempelajarinya dari aplikasi yang berhubungan dengan database.

Untuk tutorial kali ini teman - teman yang ingin membuat atau berlajar CRUD Android menggunakan database MySql setidaknya teman - teman harus mempunyai sedikit pemahaman tentang bahasa pemrograman PHP serta memahami konsep dari database, terutama pada database MySql. Untuk memahami komunikasi antara aplikasi dengan database ini bukan merupakan perkara yang mudah, terutama database MySql tersimpan disisi server bukan pada perangkat Androidnya itu sendiri.

Agar dapat memudahkan teman-teman dalam pembuatan aplikasi ini, maka kita akan membuat aplikasi yang begitu sederhana tampa harus mementingkan tampilannya terlebih dahulu asalkan fungsi dari CRUDnya berhasil. Kenapa kita hanya membuat tampilan sederhana? Karena supaya teman - teman bisa fokus pada pelajaran inti yang admin sampaikan.

Nantinya setelah teman - teman telah memahami konsep dasar atau cara kerja dari aplikasi yang akan dibuat ini maka kita akan merubah tampilan dengan menambahkan Floating Action supaya tampilannya menjadi lebih menarik atau bisa memakai yang lainnya.

Tetapi pada tutorial ini kita akan fokus pada hal terpenting tampa memperdulikan tampilan terlebih dahulu Supaya teman - teman tidak dibuat bingung dengan penjelasan lainnya. Langsung saja kita bahas pembuatan aplikasi sederhana ini.

Untuk membuat aplikasi CRUD  kita akan membagi dalam tiga bagian , yaitu antara lain:

  1. Pembuatan database pada MySQL
  2. Pembuatan file atau script PHP
  3. Pembuatan Project dalam Androd Studio
Hal tersebut dilakukan agar dapat mempermudah kita dalam alur berfikir serta tidak membingungkan karena telah kita buat untuk konsep dan alur pengerjaannya. Sebelum kita memulai membuat aplikasi ini , langkah terpenting adalah kita akan menemtukan tema aplikasi yang akan kita bangun ini.

Pada kesempatan kali ini kita akan membuat aplikasi dengan studi kasus data pegawai, oleh sebab itu silahkan teman - teman simak pembahasan dibawah ini satu persatu:

1. Membuat Database MySQL 

Pada tahap yang satu ini teman - teman sangat perlu untuk memperhatikan penamaan dari database, table, maupun field yang akan teman - teman bangun. Sebelumnya jika teman - teman belum memahami konsep dari Database MySQL akan lebih baik jika teman - teman mempelajarinya terlebih dahulu. Tidak harus memiliki kemampuan yang mahir dalam hal Database MySQL, teman -teman hanya perlu memahami bagaimana caranya untuk membuat database pada MySQL, table seta field - fieldnya. Serta sedikit pemahaman mengenai perintah dasar SQL.

Jika teman - teman telah memahami bagaimana caranya untuk membuat database di MySQL, silahkan teman - teman buat dabase dengan nama db_android dengan nama table yaitu tb_pegawai
untuk struktur dari tablenya silahkan teman-teman perhatikan gambar dibawah ini:
Setelah teman - teman selesai membuat database dan table serta field - fieldnya maka tahapan selanjutnya adalah pembuatan file PHP atau script PHP nya.

2. Pembuatan Script PHP

Pembuatan file PHP disini digunakan sebagai web service yang difungsikan untuk parsing data aplikasi Android. Pada tahap pembuatan script atau file PHP ini, ada beberapa file yang harus kita buat, berikut merupakan file php yang perlu teman - teman buat.

Langkah pertama yang paling penting adalah kita perlu membuat file koneksi dengan database, karena itu kita akan membuat file PHP dengan nama koneksi.php dan kemudian silahkan tulis perogramnya seperti dibawah ini:

<?php
 /*
 penulis: Muhammad Rizal Supriadi
 website: https://www.forumkoding.com/
 Nama Database yang sudah kita dibuat bernama "db_android" 
 Jika database teman - teman buat tidak sama dengan penulis maka ganti nama databasenya 
 sesuai dengan nama database yang teman - teman buat
 */
 //Mendefinisikan Konstanta
 define('HOST','localhost');
 define('USER','root');
 define('PASS','');
 define('DB','db_android');
 //membuat koneksi untuk database
 $con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect');
 ?>  
Setelah  kita selesai membuat koneksi dengan database. Langkah selanjutnya adalah  kita akan membuat file untuk memasukan data kedalam Database MySQL maka dari itu kita akan membuat file dengan nama tambahPgw.php kemudian silahkan teman - teman ikuti script dibawah ini:

<?php

 /*
 penulis: Muhammad Rizal Supriadi
 website: https://www.forumkoding.com/
 */
 if($_SERVER['REQUEST_METHOD']=='POST'){
  
  //Mendapatkan Nilai Variable
  $name = $_POST['name'];
  $desg = $_POST['desg'];
  $sal = $_POST['salary'];
  
  //Pembuatan Syntax SQL
  $sql = "INSERT INTO tb_pegawai (nama,posisi,gajih) VALUES ('$name','$desg','$sal')";
  
  //Import File Koneksi database
  require_once('koneksi.php');
  
  //Eksekusi Query database
  if(mysqli_query($con,$sql)){
   echo 'Berhasil Menambahkan Pegawai';
  }else{
   echo 'Gagal Menambahkan Pegawai';
  }
  mysqli_close($con);
 }
?>

Selain itu kita juga membutuhkan untuk yang berfungsi sebagai menampilkan semua data pegawai serta menampilkan detail data pegawai yang kita pilih atau kita select. Oleh karena itu kita akan membuat file PHP dengan nama tampilPgw.php dan silahkan teman-teman ikuti Script dibawah ini:

<?php

 /*
 penulis: Muhammad Rizal Supriadi
 website: https://www.forumkoding.com/

 */
 //untuk mendapatkan nilai ID dari table pegawai
 $id = $_GET['id'];
 //Importing database
 require_once('koneksi.php');
 
 //Sql query dengan table pegawai
 $sql = "SELECT * FROM tb_pegawai WHERE id=$id";
 //Mendapatkan Hasil
 $r = mysqli_query($con,$sql);
 //Memasukkan Hasil Kedalam Array
 $result = array();
 $row = mysqli_fetch_array($r);
 array_push($result,array(
   "id"=>$row['id'],
   "name"=>$row['nama'],
   "desg"=>$row['posisi'],
   "salary"=>$row['gajih']
  ));
 //Menampilkan data dalam format JSON
 echo json_encode(array('result'=>$result));
 mysqli_close($con);
?>
Sampai pada tahap ini teman - teman sudah berhasil membuat file php yang difungsikan untuk Read dan Create. Selanjutnya kita akan membuat file untuk mengupdate data. Dalam kasus yang kita buat ini kita akan mengupdate data pegawai, silahkan teman - teman buat file dengan nama updatePgw.php dan ikuti script dibawah ini:
 
<?php

 /*
 penulis: Muhammad Rizal Supriadi
 website: https://www.forumkoding.com/
 */
 if($_SERVER['REQUEST_METHOD']=='POST'){
  //MEndapatkan Nilai Dari Variable
  $id = $_POST['id'];
  $name = $_POST['name'];
  $desg = $_POST['desg'];
  $sal = $_POST['salary'];
  
  //import file koneksi database
  require_once('koneksi.php');
  
  //Membuat SQL Query
  $sql = "UPDATE tb_pegawai SET nama = '$name', posisi = '$desg', gajih = '$sal' WHERE id = $id;";

  //Meng-update Database
  if(mysqli_query($con,$sql)){
   echo 'Berhasil Update Data Pegawai';
  }else{
   echo 'Gagal Update Data Pegawai';
  }
  mysqli_close($con);
 }
?> 
Pada tahap selanjutnya kita buat file yang difungsikan untuk menghapus data pegawai yatitu hapusPgw.php dan ikuti script dibawah ini:

<?php

 /*
 penulis: Muhammad Rizal Supriadi
 website: https://www.forumkoding.com/
 */

 //Mendapatkan Nilai ID
 $id = $_GET['id'];
 //Import File Koneksi Database
 require_once('koneksi.php');
 //Membuat SQL Query
 $sql = "DELETE FROM tb_pegawai WHERE id=$id;";

 //Menghapus Nilai pada Database
 if(mysqli_query($con,$sql)){
 echo 'Berhasil Menghapus Pegawai';
 }else{
 echo 'Gagal Menghapus Pegawai';
 }

 mysqli_close($con);
 ?>
Kita sudah selesai membuat file PHP untuk fungsi masing-masing proses yaitu Create, Read, Update, Delete. Maka kita sudah selesai untuk pembuatan yang berhubungan dengan script PHP. File PHP yang telah kita buat tadi silahkan simpan dalam satu folder bernama pegawai. Karena admin menggunakan XAMPP sebagai web servernya maka file php tersebut disimpan di folder htdocs, untuk penjelasan lengkapnya silahkan perhatikan directorynya : (C:\xampp\htdocs\Android\pegawai).

Untukd dapat diakses pada android kita perlu mengetahui berapa IP dari komputer yang teman - teman miliki, untuk mengetahui IP komputer atau laptop kita. Silahkan teman - teman buka CMD dengan mengerikan perintah ipconfig maka IP komputer atau laptop kita akan tampil seperti gambar berikut ini:
Pada Ip laptop admin disana tertera 192.168.43.122 maka untuk pathnya nanti pada Android Studio adalah
http://192.168.43.122/Android/pegawai/nama_file.php
Bagaimana teman - teman apakah berhasil melalukan semua langkah diatas? Untuk saran, teman - teman ikuti terlebih dahulu sesuai dengan yang admin jelaskan. Mulai dari nama database, table, serta field -fieldnya. Setelah itu teman - teman pahami alur dari programnya ketika teman - teman sudah paham .. maka cobalah untuk menggantinya sedikit - sedikit.

Tahap selanjutnya kita akan membahas tentang Android Studionya. Silahkan teman - teman simak pembahasan dibawah ini.

3. Project Pada Android Studio 

Ini merupakan inti dari pembuatan project atau aplikasi kita, karena memang kita akan membuat aplikasi android. Untuk tahapannya silahkan teman - teman buat project baru dengan nama MyCRUD pada project yang akan dibuat.

Jika projec yang teman - teman buat telah terbuka maka langkah selanjutnya adalah silahkan buka file Manifest dan tambahkan perintah berikut:

<uses-permission android:name="android.permission.INTERNET" />
Perintah diatas metupakan perintah izin mengakses internet meskipun dalam project yang kita buat adalah bersifatnya local tetap perlu menambahkan perintahnya tersebut. Untuk penemptan scriptnya kalian letakan seperti gambar dibawah ini:
Langkah selanjutnya silahkan teman - teman buat file Java Class baru dalam package yang ada dengan namanya yaitu konfigurasi. Dan silahkan teman - teman ikuti kode pemrograman berikut ini:
Sebagai catatan, teman - teman jangan lupa memperhatikan bagian pemanggilan URL (maksud nya pemanggilan file PHP yang tersimpan diservernya). Dan diawali dengan Ip Komputer atau Laptopnya masing - masing

 package com.forumkoding.mycrud;

/**
 * Created by Muhammad Rizal Supriadi on 14/02/2020.
 * forumkoding.com
 */

public class konfigurasi {
    //Dibawah ini adalah Pengalamatan tempat terseimpannya Lokasi Skrip CRUD PHP
    //Tutorial Kali ini, kita menggunakan localhost maka untuk alamatnya tertuju ke file PHP
    //dimana PHP file tersebut disimpan
    //Catatan! JANGAN LUPA untuk Mengganti IP SESUAI DENGAN IP KOMPUTER teman - teman DIMANA DATA PHP BERADA
    public static final String URL_ADD="http://192.168.43.122/Android/pegawai/tambahPgw.php";
    public static final String URL_GET_ALL = "http://192.168.43.122/Android/pegawai/tampilSemuaPgw.php";
    public static final String URL_GET_EMP = "http://192.168.43.122/Android/pegawai/tampilPgw.php?id=";
    public static final String URL_UPDATE_EMP = "http://192.168.43.122/Android/pegawai/updatePgw.php";
    public static final String URL_DELETE_EMP = "http://192.168.43.122/Android/pegawai/hapusPgw.php?id=";

    //Dibawah ini merupakan script atau perintah untuk mengirim permintaan ke dalam 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 merupakan sebuah variabel untuk posisi
    public static final String KEY_EMP_GAJIH = "salary"; //salary itu merupakan 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 merupakan singkatan dari Employee
    public static final String EMP_ID = "emp_id";

}
Setelah teman - teman selesai membuat file untuk konfigurasi, Selanjutnya silahkan teman - teman buat class lagi dengan nama RequestHandler. File Java class ini akan kita gunakan sebagai menangani permintaan pada jaringan, Untuk scriptnya silahkan teman - teman ikuti script java class RequestHandler seperti dibawah ini:

package com.forumkoding.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 Muhammad Rizal Supriadi on 14/02/2020.
 * forumkoding.com
 */
public class RequestHandler {
    //Metode yang digunakan mengirim httpPostRequest
      public String sendPostRequest(String requestURL,
                                  HashMap<String, String> postDataParams) {
        //Membuat URL
        URL url;

        //Objek StringBuilder digunakan menyimpan pesan diambil dari server
        StringBuilder sb = new StringBuilder();
  try {
            //Inisialisasi URL
            url = new URL(requestURL);

            //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();

            //Menuliskan 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;
                //Pembaca respon server
                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();
    }
}
Selanjutnya kita akan merubah tampilan dari file acrivity_main.xml yang secara otomatis terbentuk sejak project android pertama kali dibuat. Pada file ini kita akan menggunakannya sebagai tampilan untuk menambah data pegawai (Create). Selain file xml ini kita nanti akan membuat tampilan lainnya atau file xml lainnya yang digunakan untuk menampilkan seluruh data pegawai ataupun data yang dipilih (select).
Untuk file xml activity_main.xml silahkan teman - teman ikuti kode programnya seperti dibawah ini:

<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 sctipt diatas kita dapat melihat tampilannya atau hasilnya seperti gambar dibawh ini:
Untuk Tutorial CRUD Android Studio dengan MySQL Part #1 ini admin cukupkan sampai disini, untuk tutorial lanjutannya silahkan teman-teman kunjungi artikel berikut ini: Tutorial CRUD Android Studio dengan MySQL Part #2 . Semoga berhasil mengikuti tutorial diatas.

Terimakasi telah berkungjung,
semoga bermanfaat --  Salam Success

By: Muhammad Rizal Supriadi

Posting Komentar untuk "Tutorial CRUD Android Studio dengan MySQL Part #1"