Menambah Record ke Tabel MySQL
SECTION 1 : DATABASE
nama database: mhsdb
nama tabel: mhs
create database mhsdb;
use mhsdb;
create table mhs(
id int auto_increment,
nim varchar(9) not null,
nama varchar(40) not null,
jurusan varchar(2),
primary key (id)
) engine = innodb;
insert into mhs(nim, nama, jurusan) values
('145610001', 'Endang Hanami', 'SI'),
('145610002', 'Susi Susanti', 'SI'),
('145610004', 'Agung Widodo', 'SI'),
('144510001', 'Nani Subekti', 'TI'),
('144510003', 'Siti Mahmudah', 'TI'),
('145610005', 'Sri Yuliani', 'SI');
SECTION 2 : PHP
File PHP ini diletakkan di folder server: android1 (jika pakai XAMPP: diletakkan di
htdocs\android1)
[Link]
<?php
require_once('[Link]');
$nim = $_GET['nim'];
$nama = $_GET['nama'];
$prodi = $_GET['prodi'];
$sql = "INSERT INTO mhs(nim, nama, jurusan)
values('$nim', '$nama', '$prodi')";
$conn = koneksi();
if(mysqli_query($conn, $sql))
print("OK");
else
print("FAIL");
mysqli_close($conn);
?>
[Link]
<?php
// menciptakan koneksi
function koneksi(){
//koneksi database mysql
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "mhsdb";
$conn =
mysqli_connect($servername, $username, $password, $dbname) or
die('Koneksi gagal: ' . mysqli_connect_error());
return $conn;
}
?>
SECTION 3 : Android
Menggunakan project Android sebelumnya. Pada file content_main.xml, tambahkan
button.
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_below="@+id/textView"
android:text="Tambah"
android:onClick="tambahMhs"/>
Modifikasi pada file [Link] (ditambah method)
public void tambahMhs(View view){
Intent intentTambah = new Intent([Link],
[Link]);
startActivity(intentTambah);
}
Buat file java: [Link]
Tujuan: panggil url yang mempuyai parameter, hasil berupa “OK” dan “FAIL”
file [Link]
package [Link].bacamhs2;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class TambahMhs extends AsyncTask<Void,Integer,String> {
Context c;
String address;
ProgressDialog pd;
public TambahMhs(Context c, String address) {
this.c = c;
[Link] = address;
}
//B4 JOB STARTS
@Override
protected void onPreExecute() {
[Link]();
pd = new ProgressDialog(c);
[Link]("Fetch Data");
[Link]("Fetching Data...Please wait");
[Link]();
}
@Override
protected String doInBackground(Void... params) {
String data = tambahData(); // konek ke server
return data;
}
// melakukan parsing
// parameter s adalah string data hasil dr server
// s = “OK” berhasil menambah record
// s = “FAIL” gagal menambah record
@Override
protected void onPostExecute(String s) {
[Link](s);
[Link](); // hilangkan dialog
if(s != null){
if([Link]("OK")) {
[Link](c, "Data Mhs BERHASIL disimpan",
Toast.LENGTH_SHORT).show();
}else {
[Link](c, "Data Mhs GAGAL disimpan",
Toast.LENGTH_SHORT).show();
}
}else {
[Link](c,"Gagal konek ke server",
Toast.LENGTH_SHORT).show();
}
}
// konek ke server dan membawa data
// return value berupa data hasil download
// jika tidak berhasil, return value = null
private String tambahData() {
//connect and get a stream
InputStream is=null;
String line =null;
try {
URL url=new URL(address); // ciptakan objek URL
// buka koneksi dengan [Link](),
// hasil berupa HttpURLConnection
HttpURLConnection con= (HttpURLConnection)
[Link]();
// ciptakan input stream
is = new BufferedInputStream([Link]());
// ciptakan objek buffer reader berdasar input stream
BufferedReader br =
new BufferedReader(new InputStreamReader(is));
StringBuffer sb = new StringBuffer();
if(br != null) {
// menghasilkan (membaca) baris teks yg ada pada
BufferReader
while ((line = [Link]()) != null) {
[Link](line+"\n");
[Link]("linenya = "+line); // hanya
sbg test
}
}else {
return null;
}
return [Link]();
} catch (MalformedURLException e) {
[Link]();
} catch (IOException e) {
[Link]();
}finally {
if(is != null) {
try {
[Link]();
} catch (IOException e) {
[Link]();
}
}
}
return null;
}
}
Buat activity, dengan nama: [Link] dan xml: activity_tambah.xml
[Link]
package [Link].bacamhs2;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class TambahActivity extends AppCompatActivity {
String urlDasar="[Link]
// server localhost
String url;
TambahMhs tm;
EditText editNim, editNama;
RadioButton rbMi, rbSi;
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_tambah);
editNim = (EditText) findViewById([Link]);
editNama = (EditText) findViewById([Link]);
rbMi = (RadioButton) findViewById([Link]);
rbSi = (RadioButton) findViewById([Link]);
}
public void simpanMhs(View view){
String prodi;
String nim = [Link]().toString().trim();
if([Link]()){
[Link](this, "NIM tidak boleh kosong",
Toast.LENGTH_SHORT).show();
return;
}
String nama = [Link]().toString().trim();
String query;
if([Link]()){
prodi = [Link]().toString();
}else{
prodi = [Link]().toString();
}
query = "?nim="+nim+"&nama="+nama+"&prodi="+prodi;
url = urlDasar + query;
tm = new TambahMhs([Link],url);
[Link]();
finish();
}
}
file tambah_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[Link]
xmlns:app="[Link]
xmlns:tools="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="[Link]"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NIM"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/nim"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nama"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/nama"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Prodi"/>
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SI"
android:id="@+id/si"
android:checked="true"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MI"
android:id="@+id/mi"/>
</RadioGroup>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Simpan"
android:onClick="simpanMhs"/>
</LinearLayout>