0% found this document useful (0 votes)
112 views15 pages

Android Studio - MySQL Dan JSON Dengan ListView

The document discusses connecting an Android application to a MySQL database using JSON and ListView. It provides steps to create an API in PHP to connect to the MySQL database and retrieve, insert, update and delete data. It also provides steps to design the Android activity layout and ListView layout to display the data retrieved from the database. Code snippets for the PHP files (connection file, select, insert, update, delete files) and Android activity and ListView layout files are included.

Uploaded by

Gusrio Tendra
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
112 views15 pages

Android Studio - MySQL Dan JSON Dengan ListView

The document discusses connecting an Android application to a MySQL database using JSON and ListView. It provides steps to create an API in PHP to connect to the MySQL database and retrieve, insert, update and delete data. It also provides steps to design the Android activity layout and ListView layout to display the data retrieved from the database. Code snippets for the PHP files (connection file, select, insert, update, delete files) and Android activity and ListView layout files are included.

Uploaded by

Gusrio Tendra
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 15

Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

MySQL dan JSON dengan ListView

Step 0 :
Nama database tes_jason
Scrip import :
-- phpMyAdmin SQL Dump
-- version 4.2.11
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: 24 Mei 2017 pada 16.17
-- Versi Server: 5.6.21
-- PHP Version: 5.5.19

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";


SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;


/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS
*/;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

--
-- Database: `tes_jason`
--

-- --------------------------------------------------------

--
-- Struktur dari tabel `datajason`
--

CREATE TABLE IF NOT EXISTS `datajason` (


`id` varchar(4) COLLATE latin1_general_ci NOT NULL,
`nama` varchar(160) COLLATE latin1_general_ci NOT NULL,
`alamat` varchar(50) COLLATE latin1_general_ci NOT NULL,
`jk` varchar(10) COLLATE latin1_general_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

--
-- Dumping data untuk tabel `datajason`
--

INSERT INTO `datajason` (`id`, `nama`, `alamat`, `jk`) VALUES


('A001', 'Yamiriko', 'Yami No Sekai', 'Laki-Laki'),
('A002', 'Riko Software', 'Pekanbaru', 'Laki-Laki'),
('A003', 'Delphi Anime Lover', 'http://delphianimelover.blogspot.co.id/', 'Laki-Laki'),
('A004', 'Gusrio Tendra', 'Dihatimu', 'Laki-Laki'),
('A005', 'Gusrio Tendra', 'Dihatimu', 'Laki-Laki'),
('A006', 'Heri Priadi', 'Jl. Google Gang Adsense', 'Pria');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `datajason`
--
ALTER TABLE `datajason`
ADD PRIMARY KEY (`id`);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;


/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

Pembuatan API menggunakan Bahasa pemrograman PHP.


koneksi.php
<?php

$user = "u481604106_riko";
$pass = "riko123456789@@";
$database = "u481604106_jason";
$host = "localhost";

$connect_db = mysqli_connect($host, $user, $pass, $database);


//mysql_select_db($database, $connect_db) or die("Database Tidak Ada");
// Check connection
if (mysqli_connect_errno())
{
echo "Tidak Bisa Menghubungkan Ke MySQL: " . mysqli_connect_error();
}
?>

tampilkan.php
<?php
include('koneksi.php');
$respon = array();
$sql = "SELECT * FROM datajason ORDER BY id";
$data = mysqli_query($connect_db,$sql);
if (mysqli_num_rows($data)>0){
$respon["data"] = array();
while ($row = mysqli_fetch_array($data)){
$item = array();
$item["id"] = $row["id"];
$item["nama"] = $row["nama"];
$item["alamat"] = $row["alamat"];
$item["jk"] = $row["jk"];

array_push($respon["data"], $item);
}
$respon["sukses"]=1;
} else {
$respon["sukses"]=0;
$respon["pesan"]="Data tidak ditemukan";
}
echo json_encode($respon);
?>

slect.php
Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

<?php
include('koneksi.php');
$respon = array();
$id = $_GET['id'];
$sql = "SELECT * FROM datajason WHERE id='$id'";
$data = mysqli_query($connect_db,$sql);
if (mysqli_num_rows($data)>0){
$respon["data"] = array();
while ($row = mysqli_fetch_array($data)){
$item = array();
$item["id"] = $row["id"];
$item["nama"] = $row["nama"];
$item["alamat"] = $row["alamat"];
$item["jk"] = $row["jk"];

array_push($respon["data"], $item);
}
$respon["sukses"]=1;
}
else {
$respon["sukses"]=0;
$respon["pesan"]="Data tidak ditemukan";
}
echo json_encode($respon);
?>

Insert.php
<?php
include('koneksi.php');
$id = $_GET['id'];
$nama = $_GET['nama'];
$alamat = $_GET['alamat'];
$jk = $_GET['jk'];
$respon = array();
$sql = "INSERT INTO datajason (id,nama,alamat, jk) VALUES ('$id','$nama',
'$alamat','$jk')";
$hasil = mysqli_query($connect_db,$sql);
if ($hasil){
$respon["sukses"]=1;
$respon["pesan"]="Data Berhasil Disimpan!";
}
else {
$respon["sukses"]=0;
$respon["pesan"]="Penyimpanan Gagal!";
}
echo json_encode($respon);
Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

?>

ubah.php
<?php
include('koneksi.php');
$id = $_GET['id'];
$nama = $_GET['nama'];
$alamat = $_GET['alamat'];
$jk = $_GET['jk'];
$respon = array();
$sql = "UPDATE datajason SET nama='$nama',alamat='$alamat', jk='$jk' WHERE
id='$id'";
$hasil = mysqli_query($connect_db,$sql);
if ($hasil){
$respon["sukses"]=1;
$respon["pesan"]="Pengubahan Data Berhasil";
}
else {
$respon["sukses"]=0;
$respon["pesan"]="Pengubahan Data Gagal";
}
echo json_encode($respon);
?>

hapus.php
<?php
include('koneksi.php');
$id = $_GET['id'];
$respon = array();
$sql = "DELETE FROM datajason WHERE id='$id'";
$hasil = mysqli_query($connect_db,$sql);
if ($hasil){
$respon["sukses"]=1;
$respon["pesan"]="Delete Berhasil";
}
else {
$respon["sukses"]=0;
$respon["pesan"]="Delete Gagal";
}
echo json_encode($respon);
?>

Selesai pembutan api diatas selanjutnya masukkan baris coding dibawah ini pada
compile 'com.mcxiaoke.volley:library:1.0.19'
Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

Step 1 :
Buatlah projek dengan nama : Android_MySQL
Untuk nama aktivitynya : Utama

Step 2 :
Selanjutnya mendesain tampilan activity/form utama yang akan digunakan. Langsung saja
gunakan coding ini dengan sedikit pengeditan pada :
tools:context="rikosoftware.costumlistviewbiasa.MainActivity"

activity_utama.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_utama"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="2dp"
android:paddingLeft="2dp"
android:paddingRight="2dp"
Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

android:paddingTop="2dp"
tools:context="rikosoftware.android_mysql.Utama">

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView" />

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

<Button
android:text="Ubah atau Hapus Data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/BtnUbahHapus" />

<Button
android:text="Keluar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnKeluar" />
</LinearLayout>
</ScrollView>
</RelativeLayout>

Step 3 :
Desain tampilan Listviewnya yang berasal dari Resource Layout. Cara membuatnya :
1. Klik kanan pada layout  New  Layout Resource File. Terlihat pada gambar :
Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

2. Lalu ketikkan listview. Terlihat seperti

Isi coding xml dari file costum_list_view.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="100dp">

<TextView
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtID"
android:textSize="18sp"
android:textStyle="normal|bold" />

<TextView
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtNama"
android:textAlignment="textEnd"
android:textSize="14sp"
android:textStyle="normal|italic" />

<TextView
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtAlamat"
android:textAlignment="textEnd"
android:textSize="14sp"
android:textStyle="normal|italic" />

<TextView
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtJK"
android:textSize="18sp"
android:textStyle="normal|bold" />
</LinearLayout>
</LinearLayout>

Step 5 :
Buat Class dengan nama : CostumView.java
Cara membuatnya :
1. Pilih pada javanya dan folder dibawahnya lalu pilih New  Java Class
Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

2. Buat nama classnya : CostumView,, lalu klik OK

Coding lengkapnya CostumView.java


package rikosoftware.android_mysql;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.TextView;

import org.w3c.dom.Text;

import java.util.List;

/**
* Created by RikoSoftware on 5/24/2017.
*/

public class CostumView extends BaseAdapter {


//private final Context context;
//private final String[] tnId, tnNama, tnAlamat, tnJk;
private LayoutInflater inflater;
private Activity activity;
private List<DataJason>dataJasonItems;

public CostumView(Activity activity, List<DataJason>dataJasonItems){


Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

this.activity = activity;
this.dataJasonItems=dataJasonItems;
}

@Override
public int getCount() {
return dataJasonItems.size();
}

@Override
public Object getItem(int location) {
return dataJasonItems.get(location);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (inflater == null)
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null)
convertView = inflater.inflate(R.layout.costum_list_view, null);

//View rowView = inflater.inflate(R.layout.costum_list_view, parent, false);


TextView tvId=(TextView)convertView.findViewById(R.id.txtID);
TextView tvNama=(TextView)convertView.findViewById(R.id.txtNama);
TextView tvAlamat=(TextView)convertView.findViewById(R.id.txtAlamat);
TextView tvJK=(TextView)convertView.findViewById(R.id.txtJK);

DataJason DJ = dataJasonItems.get(position);

tvId.setText("ID: " + DJ.getKode());


tvNama.setText("Nama: " + DJ.getNama());
tvAlamat.setText("Alamat : " + DJ.getAlamat());
tvJK.setText("Jenis Kelamin : " + DJ.getJkel());

return convertView;
}
}

Lakukan cara yang sama dengan Classs CostumView.java pada Class DataJason.java
Class DataJason ini gunanya untuk menampung data dari database dan yang akan ditempelkan
DataJason.java
package rikosoftware.android_mysql;

import java.util.ArrayList;

/**
* Created by RikoSoftware on 5/28/2017.
*/

public class DataJason {


Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

private String kode,nama,alamat,jkel;


private ArrayList<String>djason;

public DataJason(){
}

public DataJason(String kode, String nama, String alamat, String jkel){


this.kode=kode;
this.nama=nama;
this.alamat=alamat;
this.jkel=jkel;
}

public String getKode(){


return kode;
}

public void setKode(String tampungid){


this.kode=tampungid;
}

public String getNama(){


return nama;
}

public void setNama(String tampungNama){


this.nama=tampungNama;
}

public String getAlamat(){


return alamat;
}

public void setAlamat(String tampungAlamat){


this.alamat=tampungAlamat;
}

public String getJkel(){


return jkel;
}

public void setJkel(String tampungJkel){


this.jkel=tampungJkel;
}
}

URLHP.java
package rikosoftware.android_mysql;

import android.net.Uri;

/**
* Created by RikoSoftware on 5/24/2017.
*/

public class URLPHP {


public static final String tandaBaca = "@#&=*+-_.,:!?()/~'%";

public static String tambahdata(String iddata, String nama, String alamat, String
jk){
//return
Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

Uri.encode("http://srv1.delphianimelover.com/tesjason/insert.php?id="+iddata+"&nama="+
nama+"&alamat="+alamat+"&jk="+jk,tandaBaca);
return
Uri.encode("http://rikosoftware.esy.es/insert.php?id="+iddata+"&nama="+nama+"&alamat="
+alamat+"&jk="+jk,tandaBaca);
}

public static String caridata(String iddata){


return "http://rikosoftware.esy.es/slect.php?id="+iddata;
}

public static String updatedata(String iddata, String nama, String alamat,


String jk){
return
Uri.encode("http://rikosoftware.esy.es/ubah.php?id="+iddata+"&nama="+nama+"&alamat="+a
lamat+"&jk="+jk,tandaBaca);
}

public static String hapusdata(String iddata){


return
Uri.encode("http://rikosoftware.esy.es/hapus.php?id="+iddata,tandaBaca);
}

public static String tampildata(){


return "http://rikosoftware.esy.es/tampilkan.php";
}
}

Step 6 :
Pengodingan pada Utama.java
package rikosoftware.android_mysql;

import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class Utama extends AppCompatActivity {


private Button btInput, btUbahHapus, btkeluar;
private AlertDialog.Builder dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_utama);

//Coding Menmbuat Judul Pada Action Bar


if(Integer.valueOf(android.os.Build.VERSION.SDK) >= 11){
android.support.v7.app.ActionBar ab = getSupportActionBar();
ab.setTitle("Android MySQL");
ab.setSubtitle("Halaman Utama");
}
else {
Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

setTitle("Android MySQL");
}

btInput = (Button)findViewById(R.id.btnSimpan);
btUbahHapus = (Button)findViewById(R.id.BtnUbahHapus);
btkeluar = (Button)findViewById(R.id.btnKeluar);

tambahdata();
ubahhapusdata();
keluar();

private void tambahdata(){


btInput.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent pencet = new Intent(Utama.this,TambahData.class);
startActivity(pencet);
}
});
}

private void ubahhapusdata(){


btUbahHapus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent pencet = new Intent(Utama.this,UbahHapusData.class);
startActivity(pencet);
}
});
}

private void keluar(){


btkeluar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog = new AlertDialog.Builder(Utama.this);
dialog.setCancelable(false);
dialog.setIcon(R.mipmap.ic_launcher);
dialog.setTitle("Keluar Aplikasi");
dialog.setMessage("Kamu Mau Keluar dari Aplikasi ini?");
dialog.setPositiveButton("Ya", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
dialog.setNegativeButton("Tidak", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog.show();
}
});
}

boolean back1 = false; //inisialisasi variabel back1


@Override
public void onBackPressed() {
Android Studio MySQL dan JSON dengan ListView Jean Riko Kurniawan Putra

if (back1) { //apabila back1 = true maka keluar dari aplikasi


finish();
} else { //apabila back1 = false maka akan muncul toast, lalu back1
diset menjadi true
back1 = true;
Toast toasttengah = Toast.makeText(Utama.this, "tekan back sekali lagi",
Toast.LENGTH_SHORT);
toasttengah.setGravity(Gravity.CENTER,0,0);
toasttengah.show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
back1 = false; //apabila user tidak menekan back selama 2 detik,
maka back1 diset menjadi false kembali
}
}, 2000);
}
}
}

Bio Grafi Penulis:


Nama : Jean Riko Kurniawan Putra, M.Kom
Hobi : Programming Desktop dan Programming Android,
Anime, Jejepangan
Tempat/Tanggal Lahir : Medan, 16 Januari 1990
Alamat : Jl. Hangtuah No 275 A Kel. Rejosari Kec. Tenayan Rata
Kota Pekanbaru Provinsi Riau
Facebook : https://www.facebook.com/Jean.Riko.K.P
Telegram : @Yamiriko
Aktivis Grup Sekaligus Admin : https://t.me/delphipekanbaru
Pekerjaan : Dosen, Programmer disebuah CV di Pekanbaru
WA/Line/Telegram/Phone : 0823-8694-4596
Email : riko.kurniawan18@yahoo.co.id
Blog : http://delphianimelover.blogspot.com/

You might also like