You are on page 1of 6

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)

tambahmhs.php

<?php
require_once('koneksi.inc.php');
$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);
?>

koneksi.inc.php

<?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 MainActivity.java (ditambah method)

public void tambahMhs(View view){


Intent intentTambah = new Intent(MainActivity.this,
TambahActivity.class);
startActivity(intentTambah);
}

Buat file java: TambahMhs.java

Tujuan: panggil url yang mempuyai parameter, hasil berupa “OK” dan “FAIL”

file TambahMhs.java

package com.latihan.darmanto.bacamhs2;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.ListView;
import android.widget.Toast;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class TambahMhs extends AsyncTask<Void,Integer,String> {

Context c;
String address;

ProgressDialog pd;

public TambahMhs(Context c, String address) {


this.c = c;
this.address = address;
}

//B4 JOB STARTS


@Override
protected void onPreExecute() {
super.onPreExecute();

pd = new ProgressDialog(c);
pd.setTitle("Fetch Data");
pd.setMessage("Fetching Data...Please wait");
pd.show();
}

@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) {
super.onPostExecute(s);

pd.dismiss(); // hilangkan dialog

if(s != null){
if(s.contains("OK")) {
Toast.makeText(c, "Data Mhs BERHASIL disimpan",
Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(c, "Data Mhs GAGAL disimpan",
Toast.LENGTH_SHORT).show();
}
}else {
Toast.makeText(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 url.openConnection(),
// hasil berupa HttpURLConnection
HttpURLConnection con= (HttpURLConnection)
url.openConnection();
// ciptakan input stream
is = new BufferedInputStream(con.getInputStream());

// 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 = br.readLine()) != null) {
sb.append(line+"\n");
System.out.println("linenya = "+line); // hanya
sbg test
}
}else {
return null;
}

return sb.toString();

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
}

Buat activity, dengan nama: TambahActivity.java dan xml: activity_tambah.xml

TambahActivity.java

package com.latihan.darmanto.bacamhs2;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;

public class TambahActivity extends AppCompatActivity {


String urlDasar="http://192.168.44.56/android1/tambahmhs.php";
// server localhost
String url;
TambahMhs tm;
EditText editNim, editNama;
RadioButton rbMi, rbSi;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tambah);
editNim = (EditText) findViewById(R.id.nim);
editNama = (EditText) findViewById(R.id.nama);
rbMi = (RadioButton) findViewById(R.id.mi);
rbSi = (RadioButton) findViewById(R.id.si);
}

public void simpanMhs(View view){


String prodi;
String nim = editNim.getText().toString().trim();
if(nim.isEmpty()){
Toast.makeText(this, "NIM tidak boleh kosong",
Toast.LENGTH_SHORT).show();
return;
}
String nama = editNama.getText().toString().trim();
String query;
if(rbMi.isChecked()){
prodi = rbMi.getText().toString();
}else{
prodi = rbSi.getText().toString();
}
query = "?nim="+nim+"&nama="+nama+"&prodi="+prodi;
url = urlDasar + query;
tm = new TambahMhs(TambahActivity.this,url);
tm.execute();
finish();
}
}
file tambah_activity.xml

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.latihan.darmanto.bacamhs2.TambahActivity"
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>

You might also like