Menyinkronkan Data MySQL Dengan Database Lokal Di Android

Diposting oleh Chandra pada Android & Db

Pada saat ini, penggunaan aplikasi mobile semakin meningkat. Banyak pengembang aplikasi mobile yang ingin mengintegrasikan data dari database jarak jauh ke dalam aplikasi mereka. Namun, sinyal internet yang tidak stabil dapat membuat aplikasi menjadi lambat atau bahkan tidak dapat berfungsi sama sekali. Oleh karena itu, penting untuk menyinkronkan data dari database jarak jauh dengan database lokal di perangkat Android.

Dalam artikel ini, kami akan membahas cara menyinkronkan data MySQL dengan database lokal di Android. Kami akan menggunakan contoh aplikasi sederhana yang digunakan untuk menampilkan data produk. Kami akan membahas cara menghubungkan aplikasi Android dengan database MySQL, cara menyinkronkan data, dan cara menampilkan data di aplikasi Android.

Menghubungkan Aplikasi Android dengan Database MySQL

Sebelum kita dapat menyinkronkan data, kita harus terlebih dahulu menghubungkan aplikasi Android dengan database MySQL. Berikut adalah langkah-langkah yang perlu dilakukan:

  1. Buatlah akun di hosting MySQL, seperti 000webhost atau Hostinger.
  2. Buatlah database baru dan tambahkan tabel produk.
  3. Buatlah PHP file untuk mengakses database dan mengembalikan data dalam format JSON.
  4. Gunakan koneksi internet di aplikasi Android untuk mengakses PHP file.

Menyinkronkan Data MySQL dengan Database Lokal di Android

Cara Membuat Database MySQL

Berikut adalah contoh cara membuat database MySQL:

  • Masuk ke akun hosting dan buka panel kontrol.
  • Klik tombol "MySQL" dan pilih "Tabel Baru".
  • Menyinkronkan Data MySQL dengan Database Lokal di Android

  • Berikan nama tabel dan kolom yang diinginkan.
  • Klik tombol "Buat" untuk membuat tabel baru.

Cara Membuat PHP File untuk Mengakses Database

Berikut adalah contoh cara membuat PHP file untuk mengakses database:

Menyinkronkan Data MySQL dengan Database Lokal di Android

<?php
  $servername = "localhost";
  $username = "username";
  $password = "password";
  $dbname = "database_name";

  // Membuat koneksi
  $conn = new mysqli($servername, $username, $password, $dbname);

  if ($conn->connect_error) 
    die("Koneksi gagal: " . $conn->connect_error);
  

  // Membuat query untuk mengambil data produk
  $query = "SELECT * FROM produk";

  // Eksekusi query
  $result = $conn->query($query);

  // Membuat array untuk menampung data
  $data = array();

  // Perulangan untuk mengambil data
  while ($row = $result->fetch_assoc()) 
    $data[] = $row;
  

  // Membuat JSON dari array data
  $json = json_encode($data);

  // Menampilkan JSON
  echo $json;

  // Menutup koneksi
  $conn->close();
?>

Menggunakan Koneksi Internet di Aplikasi Android

Berikut adalah contoh cara menggunakan koneksi internet di aplikasi Android:

import android.os.AsyncTask;
import android.util.Log;

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

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class GetData extends AsyncTask<String, Void, String> 
  @Override
  protected String doInBackground(String... params) 
    try 
      URL url = new URL(params[0]);
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      conn.setRequestMethod("GET");

      int responseCode = conn.getResponseCode();

      if (responseCode == 200) 
        BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();

        while ((inputLine = in.readLine()) != null) 
          response.append(inputLine);
        
        in.close();

        return response.toString();
       else 
        return null;
      
     catch (Exception e) 
      Log.e("GetData", e.getMessage());
      return null;
    
  

Menyinkronkan Data

Setelah kita dapat menghubungkan aplikasi Android dengan database MySQL, kita dapat menyinkronkan data. Berikut adalah contoh cara menyinkronkan data:

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

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

import java.util.ArrayList;

public class DataHelper extends SQLiteOpenHelper 
  private static final String DATABASE_NAME = "produk.db";
  private static final int DATABASE_VERSION = 1;

  public DataHelper(Context context) 
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
  

  @Override
  public void onCreate(SQLiteDatabase db) 
    db.execSQL("CREATE TABLE produk (id INTEGER PRIMARY KEY, nama TEXT, harga INTEGER)");
  

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
    db.execSQL("DROP TABLE IF EXISTS produk");
    onCreate(db);
  

  public void sinkronkanData(String json) 
    try 
      JSONArray array = new JSONArray(json);

      for (int i = 0; i < array.length(); i++) 
        JSONObject object = array.getJSONObject(i);

        int id = object.getInt("id");
        String nama = object.getString("nama");
        int harga = object.getInt("harga");

        SQLiteDatabase db = getWritableDatabase();

        db.execSQL("INSERT INTO produk (id, nama, harga) VALUES (" + id + ", '" + nama + "', " + harga + ")");
      
     catch (Exception e) 
      Log.e("DataHelper", e.getMessage());
    
  

Menampilkan Data

Setelah kita dapat menyinkronkan data, kita dapat menampilkan data di aplikasi Android. Berikut adalah contoh cara menampilkan data:

import android.os.Bundle;
import android.widget.ListView;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity 
  private ListView listView;
  private ArrayList<Produk> produkList;

  @Override
  protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    listView = findViewById(R.id.listView);
    produkList = new ArrayList<>();

    DataHelper dataHelper = new DataHelper(this);
    String json = new GetData().execute("http://example.com/data.php").get();

    dataHelper.sinkronkanData(json);

    SQLiteDatabase db = dataHelper.getReadableDatabase();
    Cursor cursor = db.rawQuery("SELECT * FROM produk", null);

    while (cursor.moveToNext()) 
      int id = cursor.getInt(0);
      String nama = cursor.getString(1);
      int harga = cursor.getInt(2);

      Produk produk = new Produk(id, nama, harga);
      produkList.add(produk);
    

    ProdukAdapter adapter = new ProdukAdapter(this, produkList);
    listView.setAdapter(adapter);
  

Dalam artikel ini, kami telah membahas cara menyinkronkan data MySQL dengan database lokal di Android. Kami telah membahas cara menghubungkan aplikasi Android dengan database MySQL, cara menyinkronkan data, dan cara menampilkan data di aplikasi Android. Dengan menggunakan metode ini, pengguna aplikasi Android dapat mengakses data secara offline dan tetap dapat menggunakan aplikasi meskipun sinyal internet tidak kuat.

Menyinkronkan Data MySQL dengan Database Lokal di Android

Tutorial tentang Menyinkronkan Data MySQL dengan Database Lokal di Android