Kasar android studio mysql 2022

Halo semua, pada kesempatan kali ini kita akan bahas tutorial android lagi ya. Kali ini kita akan belajar membuat aplikasi CRUD Android dengan MySQL database. CRUD (Create , Read , Update , dan Delete) merupakan istilah lain dalam hal interaksi antara aplikasi dengan data. Membuat, membaca , memperbarui dan menghapus merupakan proses proses yang ada di setiap aplikasi yang terkoneksi / terhubung dengan database. Nah, pada artikel kali ini kita akan bahas lebih lanjut pembuatan aplikasi android menggunakan database MySQL. Aplikasi yang akan kita buat kali ini adalah aplikasi yang mengatur data siswa di kelas


Bagi kalian yang masih belajar android CRUD (Create , Read , Update , dan Delete) merupakan metode yang mudah untuk memahami suatu bahasa pemrograman termasuk java android. Metode CRUD merupakan skill basic / dasar yang harus disiapkan dalam membuat aplikasi. Karena suatu aplikasi yang kompleks pasti berurusan dengan yang namanya database. Tentu setiap aplikasi yang kita buat / kembangkan, kita berharap bahwa suatu saat aplikasi tersebut akan menjadi aplikasi yang ‘kompleks’ juga. Maka dari itu, setelah mempelajari sintaks – sintaks dasar suatu bahasa pemrograman kita harus mempelajari alur transaksi data (CRUD) aplikasi ke database


Sebelum lanjut, saya sarankan kalian memahami salah satu library yang akan kita gunakan disini yaitu Fast Android Networking supaya tidak bingung sintaks penggunaannya


Membuat Aplikasi CRUD Android dengan MySQL Database


Untuk membuat aplikasi android studio agar terhubung dengan database, kita membutuhkan yang namanya REST API (Representional State Transfer). Adalah suatu arsitektur komunikasi data menggunakan protokol HTTP untuk menerima dan merespon (request dan response) data


Gampangannya, API itu sebagai jembatan yang menghubungkan aplikasi dengan aplikasi lainnya. Nah, pada tutorial kali ini kita akan membuat API menggunakan bahasa PHP. Jadi pada kasus ini kita akan menghubungkan Android dengan PHP sebagai server sidenya,


Umumnya ada 4 metode HTTP yaitu


  • GET
  • POST
  • PUT
  • DELETE

Menyiapkan Database


Sebelum masuk ke dalam tahap pembuatan API server dan Aplikasi Android di android studio. Pertama – tama mari kita siapkan database beserta table yang akan kita gunakan di tutorial kali ini


Buatlah sebuah database baru dengan nama db_siswa


Kemudian execute SQL di bawah untuk membuat table baru bernama tb_siswa beserta data2nya


-- phpMyAdmin SQL Dump
-- version 4.5.2
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Feb 05, 2020 at 04:46 AM
-- Server version: 5.5.64-MariaDB-1ubuntu0.14.04.1
-- PHP Version: 5.6.23
 
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 utf8mb4 */;
 
--
-- Database: `db_siswa`
--
 
-- --------------------------------------------------------
 
--
-- Table structure for table `tb_siswa`
--
 
CREATE TABLE `tb_siswa` (
  `noinduk` int(5) NOT NULL,
  `nama` varchar(50) DEFAULT NULL,
  `alamat` varchar(100) DEFAULT NULL,
  `hobi` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
--
-- Dumping data for table `tb_siswa`
--
 
INSERT INTO `tb_siswa` (`noinduk`, `nama`, `alamat`, `hobi`) VALUES
(1, 'Alfansyah', 'Jalan Merdeka', 'Bermain Bola'),
(2, 'Wawan Aja', 'Jalan Kebenaran', 'Mancing');
 
--
-- Indexes for dumped tables
--
 
--
-- Indexes for table `tb_siswa`
--
ALTER TABLE `tb_siswa`
  ADD UNIQUE KEY `noinduk` (`noinduk`);
 
--
-- AUTO_INCREMENT for dumped tables
--
 
--
-- AUTO_INCREMENT for table `tb_siswa`
--
ALTER TABLE `tb_siswa`
  MODIFY `noinduk` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
/*!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 */;


 Kalau sudah, maka table tb_siswa sudah terisi dengan 2 data dan struktur seperti berikut


Kasar android studio mysql 2022


Membuat API Server

Kalau tadi sudah dijelaskan apa itu Restful API. Maka, mari langsung kita buat saja API Servernya. API server merupakan direktori yang diletakkan di web server untuk menaruh endpoint / api yang akan kita buat


Kasar android studio mysql 2022


Disini saya menamai direktori saya api-kompikaleng. Kemudian buat 5 file php dengan nama (sesuai gambar di atas) antara lain


  • koneksi. php , untuk mengatur koneksi PHP kita ke database MySQL
  • getData. php, berisi API Select data dari database
  • tambahSiswa. php, berisi API untuk menambahkan data ke database
  • hapusSiswa. php, berisi API untuk menghapus data dari database
  • updateSiswa. php, berisi API untuk melakukan update data di database
Kalau sudah mari kita isi ke-lima file tersebut,


koneksi. php

$namahost = '127. 0. 0. 1';

$username = 'akar';

$sandi = '123';

$database = 'db_siswa';

 

$conn = mysqli_connect($hostname,$username,$password,$database);

if(. $conn){

    echo "gagal";

}

 

 

 

?>

Di koneksi. php kita mendeklarasikan hostname,username,password, dan database kita. Sesuaikan dengan konfigurasi phpmyadmin / mysql kalian ya. Tetapi, untuk variabel database tetap diisi db_siswa


getData. php

include('koneksi. php'); //jangan lupa untuk include koneksi. php 

 

$sql = "SELECT * FROM tb_siswa";

 

$query = mysqli_query($conn,$sql);

 

if(mysqli_num_rows($query) > 0){

    while($row = mysqli_fetch_object($query)){

        $data['status'] = true;

        $data['result'][] = $row;

 

        // $data2 = respond(true, $row);

    }

}else{

    $data['status'] = false;

    $data['result'][] = "Data not Found";

}

 

print_r(json_encode($data));

 

 

?>


Di getData. php berfungsi untuk mengambil / select data yang ada di table tb_siswa kemudian encode sebagai json. Bagi kalian yang sudah pernah mencoba query sql dasar seharusnya tidak bingung ya dengan query di atas


tambahSiswa. php 

 

include('koneksi. php');

 

$nama       = $_POST['nama']; //menangkap nama dari post

$noinduk    = $_POST['noinduk']; //menangkap noinduk dari post

$alamat     = $_POST['alamat'];//menangkap alamat dari post

$hobi       = $_POST['hobi'];//menangkap hobi dari post

 

if(. empty($nama) && . empty($noinduk)){

 

    $sqlCheck = "SELECT COUNT(*) FROM tb_siswa WHERE noinduk='$noinduk' AND nama='$nama'";

    $queryCheck = mysqli_query($conn,$sqlCheck);

    $hasilCheck = mysqli_fetch_array($queryCheck);

if($hasilPeriksa[0] == 0){

        $sql = "INSERT INTO tb_siswa (nama,noinduk,alamat,hobi) VALUES('$nama','$noinduk','$alamat','$hobi')";

 

        $query = mysqli_query($conn,$sql);

 

        if(mysqli_affected_rows($conn) > 0){

            $data['status'] = true;

            $data['result'] = "Berhasil";

        }else{

            $data['status'] = false;

            $data['result'] = "Gagal";

        }

    }else{

        $data['status'] = false;

        $data['result'] = "Gagal, Data Sudah Ada";

    }

 

     

 

}

else{

    $data['status'] = false;

    $data['result'] = "Gagal, Nomor Induk dan Nama tidak boleh kosong. ";

}

 

 

print_r(json_encode($data));

 

 

 

 

?>


Sesuai namanya, di api tambahSiswa. php berfungsi untuk menambah data siswa ke database. Data siswa yang diperoleh (noinduk,nama,alamat,dan hobi) berasal dari aplikasi android yang akan kita buat setelah ini


deleteSiswa. php

 

include('koneksi. php');

 

$noinduk = $_POST['noinduk'];

 

if(. empty($noinduk)){

    $sql = "DELETE FROM tb_siswa WHERE noinduk='$noinduk' ";

 

    $query = mysqli_query($conn,$sql);

 

    $data['status'] = true;

    $data['result'] = 'Berhasil';

}else{

    $data['status'] = false;

    $data['result'] = 'Gagal';

}

 

print_r(json_encode($data));

 

 

?>

Api ini berfungsi untuk menghapus data siswa dari table tb_siswa.  

 

updateSiswa. php

 

 

include('koneksi. php');

 

$nama       = $_POST['nama'];

$noinduk    = $_POST['noinduk'];

$alamat     = $_POST['alamat'];

$hobi       = $_POST['hobi'];

 

if(. empty($nama) && . empty($noinduk)){

 

    $sql = "UPDATE tb_siswa set nama='$nama', alamat='$alamat', hobi='$hobi' WHERE noinduk='$noinduk' ";

 

    $query = mysqli_query($conn,$sql);

 

    if(mysqli_affected_rows($conn) > 0){

        $data['status'] = true;

        $data['result'] = "Berhasil";

    }else{

        $data['status'] = false;

        $data['result'] = "Gagal";

    }

 

}else{

    $data['status'] = false;

    $data['result'] = "Gagal, Nomor Induk dan Nama tidak boleh kosong. ";

}

 

 

print_r(json_encode($data));

 

 

 

 

?>

Api ini berfungsi untuk mengupdate / memperbarui data siswa dari table tb_siswa


Yap, sampai sini ke-lima API kita sudah berhasil dibuat dan artinya API server kita sudah siap. Artinya juga, kita bisa lanjut masuk ke dalam tahap selanjutnya di android studio. Sekarang, buka android studio kalian



Buat Projek di android studio

API server sudah siap


  1. Buatlah sebuah proyek baru di Android Studio
  2. Beri nama terserah deh

Siapkan Dependencies / Libraries

Aplikasi android kali ini kita akan menggunakan library untuk berbagai keperluan, antara lain


  • RecyclerView, sebagai wadah untuk data
  • CardView, sebagai wadah view recyclerview
  • Rengwuxian EditText , library untuk mempercantik tampilan EditText
  • Fast Android Networking, library untuk mengatur segala HTTP request (GET dan POST) yang akan digunakan untuk mengakses API Server yang sudah kita buat tadi


Masuk ke build. gradle, kemudian masukkan kode di bawah kemudian Sync Now untuk mendownload dependencies ke dalam projek


implementasi 'com. amitshekhar. android. android-networking. 1. 0. 2'

implementasi 'com. android. dukung. cardview-v7. 26. +'

implementasi 'com. android. dukung. recyclerview-v7. 26. +'

implementasi 'com. rengwuxian. materialedittext. library. 2. 1. 4'

 

Atur AndroidManifest. xml

Di android manifest kita akan menambahkan permission internet pada aplikasi kita


Tambahkan kode di bawah untuk memberikan permission internet ke aplikasi yang akan kita buat .  



Buat Layout Activity Main

    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"

peralatan. konteks=". Activity_Main">

 

   

android. id="@+id/srl_main"

android. layout_width="match_parent"

android. layout_height="match_parent">

       

android. layout_width="match_parent"

android. layout_height="match_parent">

           

android. id="@+id/rv_main"

android. layout_width="match_parent"

android. layout_height="match_parent">

 

           

       

   

 

Buat Layout untuk RecyclerView

Buat file baru di layout dengan cara Klik Kanan pada Layout -> New -> Layout Resource File


Baca Juga. Tutorial Integrasi Retrofit dengan RecyclerView


Beri nama template_rv. xml


Kemudian isi dengan script seperti berikut.  


    android. layout_width="match_parent"

android. layout_height="wrap_content"

    xmlns. app="http. //schemas. android. com/apk/res-auto"

android. id="@+id/cv_main"

aplikasi. cardElevation="5dp"

android. layout_margin="5dp"

android. dapat diklik = "benar"

android. longClickable = "benar"

android. latar depan="?android. selectableItemBackground">

   

android. layout_width="match_parent"

android. layout_height="wrap_content"

android. orientasi = "horizontal"

android. layout_margin="5dp">

       

android. layout_width="100dp"

android. layout_height="100dp"

android. src="@drawable/senyum"/>

       

android. layout_width="match_parent"

android. layout_height="match_parent"

android. orientasi = "vertikal"

android. gravitasi="pusat_vertikal">

           

android. id="@+id/tv_noind"

android. layout_width="wrap_content"

android. layout_height="wrap_content"

android. text="Nomor induk"/>

           

android. id="@+id/tv_nama"

android. layout_width="wrap_content"

android. layout_height="wrap_content"

android. teks="Nama"/>

           

android. id="@+id/tv_alamat"

android. layout_width="wrap_content"

android. layout_height="wrap_content"

android. teks="Alamat"/>

           

android. id="@+id/tv_hobi"

android. layout_width="wrap_content"

android. layout_height="wrap_content"

android. teks="Hobi"/>

       

   

 

 


Hasil

Kasar android studio mysql 2022


Silahkan berkreasi sesuai selera kalian tapi perlu diingat untuk menyesuaikan penaamaan ID dari TextView dan ImageView yang ada


Buat Adaptor RecyclerView

Untuk menampilkan data di RecyclerView, kita memerlukan adaptor. Adapter ini berfungsi untuk menghubungkan data yang masuk , ke dalam templaterv. xml yang sudah kita buat tadi


Data yang ada di adapter ini berasal dari ActivityMain yang didapat dari API yang sudah kita buat


Kasar android studio mysql 2022


impor android. aplikasi. Dialog Kemajuan;

impor android. isi. Konteks;

impor android. isi. Antarmuka Dialog;

impor android. isi. Maksud;

impor android. dukung. v7. aplikasi. AlertDialog;

impor android. dukung. v7. widget. Tampilan Kartu;

impor android. dukung. v7. widget. RecyclerView;

impor android. utilitas. Catatan;

impor android. melihat. LayoutInflater;

impor android. melihat. Melihat;

impor android. melihat. Grup Tampilan;

impor android. widget. TextView;

impor android. widget. Roti panggang;

 

impor com. androidnetworking. Jaringan Android;

impor com. androidnetworking. umum. Prioritas;

impor com. androidnetworking. kesalahan. ANError;

impor com. androidnetworking. antarmuka. JSONObjectRequestListener;

 

impor org. json. Objek JSON;

 

impor jawa. utilitas. ArrayList;

impor jawa. utilitas. Daftar;

impor jawa. utilitas. penebangan. Pawang;

 

public class RecycleViewAdapter extends RecyclerView.Adapter {

 

Konteks pribadi mKonteks;

    private ArrayList array_noinduk,array_nama,array_alamat,array_hobi;

ProgressDialog progressDialog;

 

kelas publik MyViewHolder memperluas RecyclerView. ViewHolder {

public TextView tv_noind,tv_nama,tv_alamat,tv_hobi;

CardView publik cv_main;

 

MyViewHolder publik (Lihat tampilan) {

super(tampilan);

cv_main = tampilan item. findViewById(R. Indo. cv_main);

tv_noind = tampilan item. findViewById(R. Indo. tv_noind);

tv_nama = tampilan item. findViewById(R. Indo. tv_nama);

tv_alamat = tampilan item. findViewById(R. Indo. tv_alamat);

tv_hobi = tampilan item. findViewById(R. Indo. tv_hobi);

 

progressDialog = ProgressDialog baru (mContext);

        }

    }

 

    public RecycleViewAdapter(Context mContext, ArrayList array_noinduk,ArrayList array_nama,ArrayList array_alamat,ArrayList array_hobi) {

super();

ini. mKonteks = mKonteks;

ini. array_noinduk = array_noinduk;

ini. nama_array = nama_array;

ini. larik_alamat = larik_alamat;

ini. larik_hobi = larik_hobi;

    }

 

@Mengesampingkan

publik MyViewHolder onCreateViewHolder(induk ViewGroup, int viewType) {

LayoutInflater layoutInflater = LayoutInflater. dari (induk. getContext());

Lihat itemView = layoutInflater. mengembang (R. tata letak. template_rv,induk,false);

mengembalikan RecycleViewAdapter baru. MyViewHolder(itemView);

    }

 

@Mengesampingkan

public void onBindViewHolder(pemegang MyViewHolder, posisi int akhir) {

pemegang. tv_noind. setText(array_noinduk. dapatkan(posisi));

pemegang. tv_nama. setText(array_nama. dapatkan(posisi));

pemegang. tv_alamat. setText(array_alamat. dapatkan(posisi));

pemegang. tv_hobi. setText(array_hobi. dapatkan(posisi));

pemegang. cv_main. setOnClickListener(Tampilan baru. OnClickListener() {

@Mengesampingkan

public void onClick(Lihat v) {

Maksud i = Maksud baru (mContext,Activity_Edit. kelas);

saya. putExtra("noinduk",array_noinduk. dapatkan(posisi));

saya. putExtra("nama",array_nama. dapatkan(posisi));

saya. putExtra("alamat",array_alamat. dapatkan(posisi));

saya. putExtra("hobi",array_hobi. dapatkan(posisi));

((Activity_Main)mKonteks). startActivityForResult(i,2);

}

});

pemegang. cv_main. setOnLongClickListener (Tampilan baru. OnLongClickListener() {

@Mengesampingkan

boolean publik onLongClick(Lihat v) {

AlertDialog baru. Builder((Activity_Main)mContext)

                        . setMessage("Ingin menghapus nomor induk "+array_noinduk. dapatkan(posisi)+" ?")

                        . setCancelable(false)

                        . setPositiveButton("Ya", DialogInterface baru. OnClickListener() {

@Mengesampingkan

public void onClick(DialogInterface dialog, int which) {

progressDialog. setMessage("Menghapus. ");

progressDialog. setCancelable(false);

progressDialog. menunjukkan();

 

Jaringan Android. posting("http. //192. 168. 168. 11/api-funtechsy/deleteSiswa. php")

                                        . addBodyParameter("noinduk",""+array_noinduk. dapatkan (posisi))

                                        . setPrioritas(Prioritas. MEDIUM)

                                        . membangun()

                                        . getAsJSONObject(baru JSONObjectRequestListener() {

@Mengesampingkan

public void onResponse(JSONObject response) {

progressDialog. membubarkan();

mencoba {

Status Boolean = respons. getBoolean("status");

Catatan. d("status",""+status);

Hasil string = respons. getString("hasil");

jika(status){

if(mContext instanceof Activity_Main){

((Activity_Main)mKonteks). scrollRefresh();

}

}kalau tidak{

Roti panggang. makeText(mContext, ""+hasil, Toast. LENGTH_SHORT). menunjukkan();

}

}tangkap (Pengecualian e){

e. printStackTrace();

}

}

 

@Mengesampingkan

public void onError(ANError anError) {

anError. printStackTrace();

}

});

}

})

                        . setNegativeButton("Tidak", DialogInterface baru. OnClickListener() {

@Mengesampingkan

public void onClick(DialogInterface dialog, int which) {

dialog. membatalkan();

}

})

                        . menunjukkan();

kembali salah;

}

});

 

    }

 

@Mengesampingkan

public int getItemCount() {

mengembalikan array_noinduk. ukuran();

    }

}

Sebelumnya, Sesuaikan http. //192. 168. 168. 11/api-funtechsy/ dengan direktori API Server kalian. Kode di atas kita mengakses API deleteSiswa. php melalui fungsi onLongClickListener dari CardView. Artinya jika kita menekan lama cardview maka akan muncul notif untuk menghapus data / tidak


Aktivitas_Utama. java

Di activity main ini kita akan mengatur hampir sebagian besar komponen yang ada di aplikasi ini


Di Activity_Main. java kita akan mengakses API getData. php menggunakan Fast Android Networking kemudian mempassing datanya ke adapter untuk ditampilkan.  


impor android. aplikasi. Dialog Kemajuan;

impor android. isi. Maksud;

impor android. os. AsyncTask;

impor android. os. Pawang;

impor android. dukung. anotasi. Dapat dibatalkan;

impor android. dukung. v4. widget. GesekRefreshLayout;

impor android. dukung. v7. aplikasi. AppCompatActivity;

impor android. os. Bundel;

impor android. dukung. v7. widget. LinearLayoutManager;

impor android. dukung. v7. widget. RecyclerView;

impor android. utilitas. Catatan;

impor android. melihat. Menu;

impor android. melihat. ItemMenu;

impor android. widget. Roti panggang;

 

impor com. androidnetworking. Jaringan Android;

impor com. androidnetworking. umum. Prioritas;

impor com. androidnetworking. kesalahan. ANError;

impor com. androidnetworking. antarmuka. JSONObjectRequestListener;

 

impor org. json. JSONArray;

impor org. json. Objek JSON;

 

impor jawa. utilitas. ArrayList;

 

kelas publik Activity_Main memperluas AppCompatActivity {

 

SwipeRefreshLayout srl_main;

RecyclerView rv_main;

    ArrayList array_nama,array_noinduk,array_alamat,array_hobi;

ProgressDialog progressDialog;

 

RecycleViewAdapter recycleViewAdapter;

 

@Mengesampingkan

void terlindungi onCreate(Bundle storedInstanceState) {

super. onCreate(savedInstanceState);

setContentView(R. tata letak. aktivitas__main);

srl_main    = findViewById(R. Indo. srl_main);

rv_main     = findViewById(R. Indo. rv_main);

progressDialog = ProgressDialog baru (ini);

 

rv_main. hasFixedSize();

        LinearLayoutManager layoutManager = new LinearLayoutManager(this,LinearLayoutManager. VERTIKAL, salah);

rv_main. setLayoutManager(layoutManager);

 

 

srl_main. setOnRefreshListener(SwipeRefreshLayout baru. OnRefreshListener() {

@Mengesampingkan

public void onRefresh() {

scrollRefresh();

srl_main. setMenyegarkan(false);

}

});

 

scrollRefresh();

    }

 

gulir batal publikRefresh () {

progressDialog. setMessage("Mengambil Data. ");

progressDialog. setCancelable(false);

progressDialog. menunjukkan();

Handler baru(). postDelayed(new Runnable() {

@Mengesampingkan

menjalankan kekosongan publik () {

getData();

}

},1200);

    }

 

batal initializeArray(){

array_noinduk = new ArrayList<>();

array_nama = new ArrayList<>();

array_alamat = new ArrayList<>();

array_hobi = new ArrayList<>();

 

array_noinduk. jernih();

nama_array. jernih();

array_alamat. jernih();

array_hobi. jernih();

    }

 

public void getData(){

initializeArray();

Jaringan Android. dapatkan("http. //192. 168. 168. 11/api-funtechsy/getData. php")

                . setTag("Dapatkan Data")

                . setPrioritas(Prioritas. MEDIUM)

                . membangun()

                . getAsJSONObject(baru JSONObjectRequestListener() {

@Mengesampingkan

public void onResponse(JSONObject response) {

progressDialog. membubarkan();

 

mencoba{

Status Boolean = respons. getBoolean("status");

jika(status){

JSONArray ja = tanggapan. getJSONArray("hasil");

Catatan. d("jawaban",""+ja);

for(int i = 0 ; i < ja. panjangnya() ;

JSONObjek jo = ja. getJSONObject(i);

 

array_noinduk. tambahkan (jo. getString("noinduk"));

nama_array. tambahkan (jo. getString("nama"));

array_alamat. tambahkan (jo. getString("alamat"));

array_hobi. tambahkan (jo. getString("hobi"));

}

recycleViewAdapter = RecycleViewAdapter baru (Activity_Main. ini,array_noinduk,array_nama,array_alamat,array_hobi);

rv_main. setAdapter(daur ulangViewAdapter);

}kalau tidak{

Roti panggang. makeText(Activity_Main. ini, "Gagal Mengambil Data", Bersulang. LENGTH_SHORT). menunjukkan();

recycleViewAdapter = RecycleViewAdapter baru (Activity_Main. ini,array_noinduk,array_nama,array_alamat,array_hobi);

rv_main. setAdapter(daur ulangViewAdapter);

}

}

tangkap (Pengecualian e){

e. printStackTrace();

}

 

}

 

@Mengesampingkan

public void onError(ANError anError) {

 

}

});

    }

 

@Mengesampingkan

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater(). mengembang (R. Tidak bisa. menutambah,menu);

kembali super. onCreateOptionsMenu(menu);

    }

 

 

@Mengesampingkan

public boolean onOptionsItemSelected(MenuItem item) {

int id = barang. getItemId();

jika(id==R. Indo. menu_add){

Maksud i = Maksud baru (Activity_Main. ini,Activity_Add. class);

startActivityForResult(i,1);

        }

kembali super. onOptionsItemSelected(item);

    }

 

@Mengesampingkan

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {

super. onActivityResult(requestCode, resultCode, data);

jika(kodepermintaan==1){

if(resultCode==RESULT_OK){

scrollRefresh();

}else if(resultCode==RESULT_CANCELED){

Roti panggang. makeText(ini, "Dibatalkan", Toast. LENGTH_SHORT). menunjukkan();

}

        }

 

jika(kodepermintaan==2){

if(resultCode==RESULT_OK){

scrollRefresh();

}else if(resultCode==RESULT_CANCELED){

Roti panggang. makeText(ini, "Dibatalkan", Toast. LENGTH_SHORT). menunjukkan();

}

        }

    }

}

Sebelumnya, jangan lupa sesuaikan http. //192. 168. 168. 11/api-funtechsy dengan API Server kalian


Bisa dilihat di Activity_Main. java kita mengambil data melalui fungsi getData() yang mengakses API getData. php menggunakan library FAN dan kemudian data arraynya dioper ke adapter untuk ditampilkan


Buat Activity_Add. Jawa

Buatlah activity baru dengan cara Klik kanan pada nama package -> New ->Activity -> Empty Activity


Beri nama Activity_Add.  


Kasar android studio mysql 2022

Setelah membuat Activity_Add. java, maka akan otomatis terbuat layout baru bernama activity_add. xml


Tata letak

Kali ini kita akan buat layoutnya, buka activity_add. xml kemudian isi dengan script seperti berikut


    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"

peralatan. konteks=". Aktivitas_Tambah"

android. orientasi="vertikal">

 

   

android. layout_width="match_parent"

android. layout_height="match_parent"

android. layout_margin="20dp"

android. orientasi="vertikal">

 

       

android. layout_width="match_parent"

android. layout_height="wrap_content"

android. text="Tambah Data Siswa"

android. perataan teks="tengah"

android. textAppearance="?android. teksPenampilanBesar"

android. textColor="#000" />

 

       

android. layout_width="match_parent"

android. layout_height="wrap_content"

android. layout_marginTop="40dp"

android. orientasi = "horizontal"

android. weightSum="6">

           

android. tata letak_berat = "1"

android. layout_width="0dp"

android. padding="10dp"

android. layout_height="match_parent"

android. src="@drawable/ic_local_activity_black_24dp"/>

           

android. id="@+id/et_noinduk"

android. tata letak_berat = "5"

android. layout_width="0dp"

android. layout_height="wrap_content"

android. petunjuk = "Nomor Induk"

aplikasi. met_floatingLabel="normal"/>

       

 

       

android. layout_width="match_parent"

android. layout_height="wrap_content"

android. layout_marginTop="20dp"

android. orientasi = "horizontal"

android. weightSum="6">

           

android. tata letak_berat = "1"

android. layout_width="0dp"

android. padding="10dp"

android. layout_height="match_parent"

android. src="@drawable/ic_local_activity_black_24dp"/>

           

android. id="@+id/et_nama"

android. tata letak_berat = "5"

android. layout_width="0dp"

android. layout_height="wrap_content"

                android. hint="Nama"

aplikasi. met_floatingLabel="normal"/>

       

 

       

android. layout_width="match_parent"

android. layout_height="wrap_content"

android. layout_marginTop="20dp"

android. orientasi = "horizontal"

android. weightSum="6">

           

android. tata letak_berat = "1"

android. layout_width="0dp"

android. padding="10dp"

android. layout_height="match_parent"

android. src="@drawable/ic_local_activity_black_24dp"/>

           

                android. id="@+id/et_alamat"

android. tata letak_berat = "5"

android. layout_width="0dp"

android. layout_height="wrap_content"

                android. hint="Alamat"

aplikasi. met_floatingLabel="normal"/>

       

 

       

android. layout_width="match_parent"

android. layout_height="wrap_content"

android. layout_marginTop="20dp"

android. orientasi = "horizontal"

android. weightSum="6">

           

android. tata letak_berat = "1"

android. layout_width="0dp"

android. padding="10dp"

android. layout_height="match_parent"

android. src="@drawable/ic_local_activity_black_24dp"/>

           

                android. id="@+id/et_hobi"

android. tata letak_berat = "5"

android. layout_width="0dp"

android. layout_height="wrap_content"

                android. hint="Hobi"

aplikasi. met_floatingLabel="normal"/>

       

 

       

            android. id="@+id/btn_submit"

android. layout_marginTop="20dp"

            android. layout_width="120dp"

            android. layout_height="50dp"

            android. layout_gravity="center"

            android. drawableStart="@drawable/ic_present_to_all_black_24dp"

            android. text="Submit"

            android. textAllCaps="false"/>

   

Hasil

Kasar android studio mysql 2022

 

Activity_Add akan berfungsi sebagai tampilan dan pemroses tambah data siswa


Activity_Add. java

Setelah berhasil membuat layoutnya, mari kita lanjut ke javanya


Buka Activity_Add. java (Sesuai dengan nama activity add kalian),


isikan script berikut


package com. example. pkl. alfansimplecrud; //sesuai nama package kalian

 

impor android. aplikasi. Dialog Kemajuan;

impor android. isi. Antarmuka Dialog;

impor android. isi. Maksud;

impor android. os. Pawang;

impor android. dukung. v7. aplikasi. AlertDialog;

impor android. dukung. v7. aplikasi. AppCompatActivity;

impor android. os. Bundel;

impor android. utilitas. Catatan;

impor android. melihat. Menu;

impor android. melihat. ItemMenu;

impor android. melihat. Melihat;

import android. widget. Button;

impor android. widget. Roti panggang;

 

impor com. androidnetworking. Jaringan Android;

impor com. androidnetworking. umum. Prioritas;

impor com. androidnetworking. kesalahan. ANError;

impor com. androidnetworking. antarmuka. JSONObjectRequestListener;

 

impor org. json. Objek JSON;

 

public class Activity_Add extends AppCompatActivity {

 

    com. rengwuxian. materialedittext. MaterialEditText et_noinduk,et_nama,et_alamat,et_hobi;

    String noinduk,nama,alamat,hobi;

    Button btn_submit;

ProgressDialog progressDialog;

 

@Mengesampingkan

void terlindungi onCreate(Bundle storedInstanceState) {

super. onCreate(savedInstanceState);

        setContentView(R. layout. activity__add);

 

        et_noinduk          = findViewById(R. id. et_noinduk);

        et_nama             = findViewById(R. id. et_nama);

        et_alamat           = findViewById(R. id. et_alamat);

        et_hobi             = findViewById(R. id. et_hobi);

        btn_submit          = findViewById(R. id. btn_submit);

 

        progressDialog      = new ProgressDialog(this);

 

        btn_submit. setOnClickListener(new View. OnClickListener() {

@Mengesampingkan

public void onClick(Lihat v) {

                progressDialog. setMessage("Menambahkan Data. ");

                progressDialog. setCancelable(false);

                progressDialog. show();

 

                noinduk = et_noinduk. getText(). toString();

                nama = et_nama. getText(). toString();

                alamat = et_alamat. getText(). toString();

                hobi = et_hobi. getText(). toString();

 

                new Handler(). postDelayed(new Runnable() {

@Mengesampingkan

                    public void run() {

                        validasiData();

}

                },1000);

}

            });

 

    }

 

    void validasiData(){

        if(noinduk. equals("") . nama. equals("") . alamat. equals("") . hobi. equals("")){

            progressDialog. dismiss();

            Toast. makeText(Activity_Add. this, "Periksa kembali data yang anda masukkan . ", Toast. LENGTH_SHORT). show();

        }else {

kirimData();

        }

    }

 

batal kirimData(){

Jaringan Android. posting("http. //192. 168. 168. 11/api-funtechsy/tambahSiswa. php") //sesuaikan dengan api server kalian

                . addBodyParameter("noinduk",""+noinduk)

                . addBodyParameter("nama",""+nama)

                . addBodyParameter("alamat",""+alamat)

                . addBodyParameter("hobi",""+hobi)

                . setPrioritas(Prioritas. MEDIUM)

                . setTag("Tambah Data")

                . membangun()

                . getAsJSONObject(baru JSONObjectRequestListener() {

@Mengesampingkan

public void onResponse(JSONObject response) {

progressDialog. membubarkan();

                        Log. d("cekTambah",""+response);

                        try {

Status Boolean = respons. getBoolean("status");

                            String pesan = response. getString("result");

                            Toast. makeText(Activity_Add. this, ""+pesan, Toast. LENGTH_SHORT). show();

                            Log. d("status",""+status);

jika(status){

                                new AlertDialog. Builder(Activity_Add. this)

                                        . setMessage("Berhasil Menambahkan Data . ")

                                        . setCancelable(false)

                                        . setPositiveButton("Kembali", new DialogInterface. OnClickListener() {

@Mengesampingkan

                                            public void onClick(DialogInterface dialog, int which) {

                                                Intent i = getIntent();

                                                setResult(RESULT_OK,i);

                                                Activity_Add. this. finish();

}

                                            })

                                        . show();

}

                            else{

                                new AlertDialog. Builder(Activity_Add. this)

                                        . setMessage("Gagal Menambahkan Data . ")

                                        . setPositiveButton("Kembali", new DialogInterface. OnClickListener() {

@Mengesampingkan

                                            public void onClick(DialogInterface dialog, int which) {

                                                Intent i = getIntent();

                                                setResult(RESULT_CANCELED,i);

                                                Activity_Add. this. finish();

}

                                        })

                                        . setCancelable(false)

                                        . show();

}

                        }catch (Exception e){

e. printStackTrace();

}

 

 

}

 

@Mengesampingkan

public void onError(ANError anError) {

                            Log. d("ErrorTambahData",""+anError. getErrorBody());

}

});

    }

 

@Mengesampingkan

public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater(). inflate(R. menu. menu_back,menu);

kembali super. onCreateOptionsMenu(menu);

    }

 

@Mengesampingkan

public boolean onOptionsItemSelected(MenuItem item) {

int id = barang. getItemId();

        if(id==R. id. menu_back){

            this. finish();

        }

kembali super. onOptionsItemSelected(item);

    }

}

Pada script di atas kita mengambil nilai nama,noinduk,alamat, dan hobi dari edit text setelah kita melakukan klik pada button submit. Kemudian memanggil fungsi validasi data sebelum dikirim kan ke API lewat fungsi kirimData()


Oh iya, jangan lupa untuk mengubah link API server sesuai dengan API server kalian ya


Buat Activity_Edit. java

Setelah kita membuat Activity_Add untuk mengatur proses tambah data, saatnya kita membuat activity edit untuk mengatur proses ubah data (Dalam kasus ini data siswa)


New -> Activity -> Empty Activity.  


Kasar android studio mysql 2022

.

Tata letak

Kalau sudah, pertama kita akan buat layoutnya terlebih dahulu


Buka activity_edit. xml. Salin dan tempelkan


    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"

peralatan. konteks=". Aktivitas_Tambah"

android. orientasi="vertikal">

 

   

android. layout_width="match_parent"

android. layout_height="match_parent"

android. layout_margin="20dp"

android. orientasi="vertikal">

 

       

android. layout_width="match_parent"

android. layout_height="wrap_content"

            android. text="Edit Data Siswa"

android. perataan teks="tengah"

android. textAppearance="?android. teksPenampilanBesar"

android. textColor="#000" />

 

       

android. layout_width="match_parent"

android. layout_height="wrap_content"

android. layout_marginTop="40dp"

android. orientasi = "horizontal"

android. weightSum="6">

           

android. tata letak_berat = "1"

android. layout_width="0dp"

android. padding="10dp"

android. layout_height="match_parent"

android. src="@drawable/ic_local_activity_black_24dp"/>

           

android. id="@+id/et_noinduk"

                android. enabled="false"

android. tata letak_berat = "5"

android. layout_width="0dp"

android. layout_height="wrap_content"

android. petunjuk = "Nomor Induk"

aplikasi. met_floatingLabel="normal"/>

       

 

       

android. layout_width="match_parent"

android. layout_height="wrap_content"

android. layout_marginTop="20dp"

android. orientasi = "horizontal"

android. weightSum="6">

           

android. tata letak_berat = "1"

android. layout_width="0dp"

android. padding="10dp"

android. layout_height="match_parent"

android. src="@drawable/ic_local_activity_black_24dp"/>

           

android. id="@+id/et_nama"

android. tata letak_berat = "5"

android. layout_width="0dp"

android. layout_height="wrap_content"

                android. hint="Nama"

aplikasi. met_floatingLabel="normal"/>

       

 

       

android. layout_width="match_parent"

android. layout_height="wrap_content"

android. layout_marginTop="20dp"

android. orientasi = "horizontal"

android. weightSum="6">

           

android. tata letak_berat = "1"

android. layout_width="0dp"

android. padding="10dp"

android. layout_height="match_parent"

android. src="@drawable/ic_local_activity_black_24dp"/>

           

                android. id="@+id/et_alamat"

android. tata letak_berat = "5"

android. layout_width="0dp"

android. layout_height="wrap_content"

                android. hint="Alamat"

aplikasi. met_floatingLabel="normal"/>

       

 

       

android. layout_width="match_parent"

android. layout_height="wrap_content"

android. layout_marginTop="20dp"

android. orientasi = "horizontal"

android. weightSum="6">

           

android. tata letak_berat = "1"

android. layout_width="0dp"

android. padding="10dp"

android. layout_height="match_parent"

android. src="@drawable/ic_local_activity_black_24dp"/>

           

                android. id="@+id/et_hobi"

android. tata letak_berat = "5"

android. layout_width="0dp"

android. layout_height="wrap_content"

                android. hint="Hobi"

aplikasi. met_floatingLabel="normal"/>

       

 

       

            android. id="@+id/btn_submit"

android. layout_marginTop="20dp"

            android. layout_width="120dp"

            android. layout_height="50dp"

            android. layout_gravity="center"

            android. drawableStart="@drawable/ic_present_to_all_black_24dp"

            android. text="Update"

            android. textAllCaps="false"/>

   


Hasil

Kasar android studio mysql 2022


 

Activity_Edit. java


Lanjut ke javanya, salin dan tempelkan kode berikut


package com. example. pkl. alfansimplecrud;

 

impor android. aplikasi. Dialog Kemajuan;

impor android. isi. Antarmuka Dialog;

impor android. isi. Maksud;

impor android. os. Pawang;

impor android. dukung. v7. aplikasi. AlertDialog;

impor android. dukung. v7. aplikasi. AppCompatActivity;

impor android. os. Bundel;

impor android. utilitas. Catatan;

impor android. melihat. Menu;

impor android. melihat. ItemMenu;

impor android. melihat. Melihat;

import android. widget. Button;

impor android. widget. Roti panggang;

 

impor com. androidnetworking. Jaringan Android;

impor com. androidnetworking. umum. Prioritas;

impor com. androidnetworking. kesalahan. ANError;

impor com. androidnetworking. antarmuka. JSONObjectRequestListener;

 

impor org. json. Objek JSON;

 

public class Activity_Edit extends AppCompatActivity {

 

    com. rengwuxian. materialedittext. MaterialEditText et_noinduk,et_nama,et_alamat,et_hobi;

    String noinduk,nama,alamat,hobi;

    Button btn_submit;

ProgressDialog progressDialog;

 

@Mengesampingkan

void terlindungi onCreate(Bundle storedInstanceState) {

super. onCreate(savedInstanceState);

        setContentView(R. tata letak. activity__edit);

 

        et_noinduk          = findViewById(R. id. et_noinduk);

        et_nama             = findViewById(R. id. et_nama);

        et_alamat           = findViewById(R. id. et_alamat);

        et_hobi             = findViewById(R. id. et_hobi);

        btn_submit          = findViewById(R. id. btn_submit);

 

        progressDialog      = new ProgressDialog(this);

 

        getDataIntent();

 

        btn_submit. setOnClickListener(new View. OnClickListener() {

@Mengesampingkan

public void onClick(Lihat v) {

                progressDialog. setMessage("Menambahkan Data. ");

                progressDialog. setCancelable(false);

                progressDialog. show();

 

                noinduk = et_noinduk. getText(). toString();

                nama = et_nama. getText(). toString();

                alamat = et_alamat. getText(). toString();

                hobi = et_hobi. getText(). toString();

 

                new Handler(). postDelayed(new Runnable() {

@Mengesampingkan

                    public void run() {

                        validasiData();

}

                },1000);

}

});

 

    }

 

    void getDataIntent(){

        Bundle bundle = getIntent(). getExtras();

        if(bundle. =null){

            et_noinduk. setText(bundle. getString("noinduk"));

            et_nama. setText(bundle. getString("nama"));

et_alamat. setText(bundel. getString("alamat"));

            et_hobi. setText(bundle. getString("hobi"));

        }else{

            et_noinduk. setText("");

            et_nama. setText("");

            et_alamat. setText("");

            et_hobi. setText("");

        }

 

    }

 

    void validasiData(){

        if(noinduk. equals("") . nama. equals("") . alamat. equals("") . hobi. equals("")){

            progressDialog. dismiss();

            Toast. makeText(Activity_Edit. this, "Periksa kembali data yang anda masukkan . ", Toast. LENGTH_SHORT). show();

        }else {

            updateData();

        }

    }

 

    void updateData(){

        AndroidNetworking. post("http. //example. com/updateSiswa. php")

                . addBodyParameter("noinduk",""+noinduk)

                . addBodyParameter("nama",""+nama)

                . addBodyParameter("alamat",""+alamat)

                . addBodyParameter("hobi",""+hobi)

                . setTag("Update Data")

                . setPrioritas(Prioritas. MEDIUM)

                . membangun()

                . getAsJSONObject(baru JSONObjectRequestListener() {

@Mengesampingkan

public void onResponse(JSONObject response) {

progressDialog. membubarkan();

                        Log. d("responEdit",""+response);

mencoba{

Status Boolean = respons. getBoolean("status");

jika(status){

                                new AlertDialog. Builder(Activity_Edit. this)

                                        . setMessage("Berhasil Mengupdate Data")

                                        . setCancelable(false)

                                        . setPositiveButton("Kembali", new DialogInterface. OnClickListener() {

@Mengesampingkan

                                            public void onClick(DialogInterface dialog, int which) {

                                                Intent i = getIntent();

                                                setResult(RESULT_OK,i);

                                                Activity_Edit. this. finish();

}

                                        })

                                        . show();

}kalau tidak{

                                new AlertDialog. Builder(Activity_Edit. this)

                                        . setMessage("Gagal Mengupdate Data")

                                        . setCancelable(false)

                                        . setPositiveButton("Kembali", new DialogInterface. OnClickListener() {

@Mengesampingkan

                                            public void onClick(DialogInterface dialog, int which) {

                                                Intent i = getIntent();

                                                setResult(RESULT_CANCELED,i);

                                                Activity_Edit. this. finish();

}

                                        })

                                        . show();

}

                        }catch (Exception e){

e. printStackTrace();

}

}

 

@Mengesampingkan

public void onError(ANError anError) {

 

}

});

    }

 

@Mengesampingkan

public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater(). inflate(R. menu. menu_back,menu);

kembali super. onCreateOptionsMenu(menu);

    }

 

@Mengesampingkan

public boolean onOptionsItemSelected(MenuItem item) {

int id = barang. getItemId();

        if(id==R. id. menu_back){

            this. finish();

        }

kembali super. onOptionsItemSelected(item);

    }

}


Hampir sama seperti tambah data, kita menangkap nilai dari nama,noinduk,alamat,dan hobi setelah kita melakukan klik pada button submit yang kemudian dilanjutkan dengan fungsi validasi data sebelum dipost ke API


Sampai sini, aplikasi kita sudah selesai. Silahkan build dan Run Aplikasi


Hasil Aplikasi


Kasar android studio mysql 2022


Kasar android studio mysql 2022


Kasar android studio mysql 2022


Kasar android studio mysql 2022


Kasar android studio mysql 2022


Kasar android studio mysql 2022


Kasar android studio mysql 2022


Kasar android studio mysql 2022

 

Bagi kalian kaum rebahan yang suka jalan instan, saya sudah siapkan source code lengkapnya kok, tenang


Baca Juga . Upload Gambar Android ke Server dengan Retrofit


Source Code . https. //github. com/alfansyahgg/BasicCRUDAndroidAlfan


Bagaimana? Apa aplikasi kalian berjalan semestinya?. Kalau kalian merasa artikel ini bermanfaat, jangan lupa tinggalkan komentar ya . )


Sekian dulu deh artikel membuat aplikasi crud android dengan mysql database kali ini. Semoga kalian semua berhasil ya

How to perform CRUD operation in Android Studio?

We will perform CRUD operations using Room Database on Android. .
Step 1. Create a New Project. .
Step 2. Adding dependency for using Room in build. gradle files. .
Step 3. Working with the activity_main. xml file

Can I use MySQL for Android studio?

This is very useful in case you have a webserver, and you want to access its data on your android application. MYSQL is used as a database at the webserver and PHP is used to fetch data from the database.

How to connect to MySQL database in Android Studio?

This is when the user have registered. .
Step 1 . Create a mySQL database in phpMyAdmin. .
Step 2 . Create 3 php files. .
Step 3 . Components should have in Android Studio. .
Step 4 . Design the activity_main. xml. .
Step 5 . Create a class named Design the. .
Step 6 . Write the code in MainActivity. java. .
Step 7 . You can test you app

How to make simple CRUD in PHP and MySQL?

How to Make Simple CRUD in PHP and MySQL .
Single Query Execution
Multi Queries Execution
CRUD in PHP and MySQL With Prepared Statements
Select Query Execution
Perbarui Permintaan Menggunakan Pernyataan yang Disiapkan
Delete Query Using Prepared Statement
Conclusion