Latihan Ppb: Koneksi Andoid Studio dengan Mysql

Koneksi Awal

1. Membuat database dan table beserta isi datanya.

create database ppb;

create table pegawai(nip varchar(5) primary key not null,
nama_peg varchar(45), gaji int(12));

insert into pegawai values
('A0001','Aji',15000000),
('A0002','Kusumadhany',10000000);

2. Membuat koneksi dengan nama file “index.php” dan letakkan didalam htdocs xampp, isi file tersebut:

<?php
try
{
    //benar
    $konn=new PDO("mysql:host=localhost;dbname=ppb","root","");
}
catch(PDOexception $err)
{

}

if ($_SERVER['REQUEST_METHOD']==='GET')
{
    $msql="select *from pegawai order by nip";
    $hasil=$konn->prepare($msql);
    $hasil->execute();
    $data=$hasil->fetchAll(PDO::FETCH_ASSOC);
    echo json_encode($data);
}
?>

 

Hasil jika dibuka di browser:

Latihan Ppb: Koneksi Andoid Studio dengan Mysql

3. Buka Android studio, dan buat project baru.

4. Buka file ‘AndroidManifest.xml’ dan tambahkan kode berikut diatas <application

<uses-permission android:name="android.permission.INTERNET"/>

5. Dan tambahkan kode berikut dibawah <application

android:usesCleartextTraffic="true"

6. Menambahkan library retrofit, caranya:

  • Pergi ke file
  • -> project structure
  • -> dependencies
  • -> app
  • -> tekan tombol “+” dibawah Declared Dependencies
  • -> pilih library dependency
  • -> cari “com.squareup.retrofit2:retrofit:2.9.0”
  • Lalu klik ok dan apply
  • dan juga cari com.squareup.retrofit2:converter-gson:2.9.0

7. Buat Package adaptor, api, class, interface dan model, caranya:

  • klik kanan “com.example.latihanmysql” pada folder java
  • new
  • package

Latihan Ppb: Koneksi Andoid Studio dengan Mysql

8. Masukkan “mainactivity.java” kedalam package class.

9. Isi activity_main dengan kode berikut:

<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".CLASS.MainActivity">

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerviewPegawai"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/tombolInput"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:src="@android:drawable/ic_input_add" />

</RelativeLayout>

10. Buat class dengan nama “ModelPegawai” didalam package Model, dan isi dengan kode:

package com.example.latihanmysql.MODEL;

public class ModelPegawai {
    String nip;
    String nama_peg;
    int gaji;
}

11. Kemudian buat constructor dengan cara klik kanan -> generate -> constructor

Latihan Ppb: Koneksi Andoid Studio dengan Mysql

12. Buat getter dan setter dengan cara klik kanan -> generate -> getter & setter

Latihan Ppb: Koneksi Andoid Studio dengan Mysql

13. Sehingga sekarang “ModelPegawai.java” berisi kode berikut:

package com.example.latihanmysql.MODEL;

public class ModelPegawai {
    String nip;
    String nama_peg;
    int gaji;

    public ModelPegawai(String nip, String nama_peg, int gaji) {
        this.nip = nip;
        this.nama_peg = nama_peg;
        this.gaji = gaji;
    }

    public String getNip() {
        return nip;
    }

    public void setNip(String nip) {
        this.nip = nip;
    }

    public String getNama_peg() {
        return nama_peg;
    }

    public void setNama_peg(String nama_peg) {
        this.nama_peg = nama_peg;
    }

    public int getGaji() {
        return gaji;
    }

    public void setGaji(int gaji) {
        this.gaji = gaji;
    }
}

 

14. Buat java class “KoneksiApi” dalam package API, dan berikut isi kodenya:

package com.example.latihanmysql.API;

import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;


public class KoneksiApi {
    public final static String url_base="http://192.168.43.13/kuliah/pemrograman_perangkat_bergerak/";
    private static Retrofit retrofit;

    public static Retrofit KoneksiAPI()
    {
        if (retrofit==null)
        {
            retrofit=new Retrofit.Builder()
                    .baseUrl(url_base)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }
        return retrofit;
    }
}

15. Membuat “InterfacePegawai” pada package interface.

package com.example.latihanmysql.INTERFACE;

import com.example.latihanmysql.MODEL.ModelPegawai;

import java.util.List;

import retrofit2.Call;
import retrofit2.http.GET;

public interface InterfacePegawai {
    @GET("pegawai/")
    Call<List<ModelPegawai>> tampilPegawai();
}

16. Membuat “AdaptorPegawai” didalam package Adaptor.

package com.example.latihanmysql.ADAPTOR;

import androidx.recyclerview.widget.RecyclerView;

public class AdaptorPegawai extends RecyclerView.Adapter<AdaptorPegawai.myviewHolder> {
}

nantinya kodenya akan berwarna merah, tinggal klik lampu yang berwarna merah, nanti kodenya akan menjadi seperti dibawah ini:

package com.example.latihanmysql.ADAPTOR;

import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

public class AdaptorPegawai extends RecyclerView.Adapter<AdaptorPegawai.myviewHolder> {
    @NonNull
    @Override
    public myviewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return null;
    }

    @Override
    public void onBindViewHolder(@NonNull AdaptorPegawai.myviewHolder holder, int position) {

    }

    @Override
    public int getItemCount() {
        return 0;
    }

    public class myviewHolder extends RecyclerView.ViewHolder {
        public myviewHolder(@NonNull View itemView) {
            super(itemView);
        }
    }
}

17. Kemudian tambahkan kode berikut:

ArrayList<ModelPegawai> modelPegawaiArrayList;

dibawah kode:

public class AdaptorPegawai extends RecyclerView.Adapter<AdaptorPegawai.myviewHolder>

18. Kemudian dibawah kode:

ArrayList<ModelPegawai> modelPegawaiArrayList;

Klik kanan -> generate -> constructor.

Sehingga hasilnya:

public class AdaptorPegawai extends RecyclerView.Adapter<AdaptorPegawai.myviewHolder> {
    ArrayList<ModelPegawai> modelPegawaiArrayList;

    public AdaptorPegawai(ArrayList<ModelPegawai> modelPegawaiArrayList) {
        this.modelPegawaiArrayList = modelPegawaiArrayList;
    }

19. Kemudian pada layout tambahkan layout resource file dengan nama “format_pegawai”, caranya:

klik kanan pada layout -> new -> layout resource file.

20. Buat kode format_pegawai seperti berikut:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:padding="5dp"
    android:layout_height="match_parent">

    <androidx.cardview.widget.CardView
        android:backgroundTint="@color/purple_200"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">


    <TextView
        android:id="@+id/nippegawai"
        android:hint="nip pegawai"
        android:layout_marginLeft="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <TextView
        android:id="@+id/namapegawai"
        android:hint="nama pegawai"
        android:layout_below="@id/nippegawai"
        android:layout_marginLeft="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <TextView
        android:id="@+id/gajipegawai"
        android:hint="gaji pegawai"
        android:layout_below="@id/namapegawai"
        android:layout_marginLeft="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

        </RelativeLayout>
    </androidx.cardview.widget.CardView>
</RelativeLayout>

Menampilkan Data

21. Pada file “Activity_main”, tambahkan kode berikut:

tools:listitem="@layout/format_pegawai"

didalam:

<androidx.recyclerview.widget.RecyclerView

Sehingga menjadi:

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerviewPegawai"
    tools:listitem="@layout/format_pegawai"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

22. Buka “Adaptor Pegawai”, kemudian tambahkan kode berikut:

            enip=itemView.findViewById(R.id.nippegawai);
            enama=itemView.findViewById(R.id.namapegawai);
            egaji=itemView.findViewById(R.id.gajipegawai);

dibawah:

        public myviewHolder(@NonNull View itemView) {
            super(itemView);

Sehingga hasilnya:

    public class myviewHolder extends RecyclerView.ViewHolder {
        TextView enip,enama,egaji;
        public myviewHolder(@NonNull View itemView) {
            super(itemView);
            enip=itemView.findViewById(R.id.nippegawai);
            enama=itemView.findViewById(R.id.namapegawai);
            egaji=itemView.findViewById(R.id.gajipegawai);

        }

23. Kemudian tambahkan kode berikut didalam getItemCount:

 return modelPegawaiArrayList.size();

sehingga hasilnya:

    @Override
    public int getItemCount() {
        return modelPegawaiArrayList.size();
    }

24. Kemudian pada onBinViewHolder tambahkan kode berikut:

        holder.enip.setText(modelPegawaiArrayList.get(position).getNip());
        holder.enama.setText(modelPegawaiArrayList.get(position).getNama_peg());
        holder.egaji.setText(modelPegawaiArrayList.get(position).getGaji());

Sehingga menjadi:

    @Override
    public void onBindViewHolder(@NonNull AdaptorPegawai.myviewHolder holder, int position) {
        holder.enip.setText(modelPegawaiArrayList.get(position).getNip());
        holder.enama.setText(modelPegawaiArrayList.get(position).getNama_peg());
        holder.egaji.setText(modelPegawaiArrayList.get(position).getGaji());
    }

25. Pada onCreateViewHolder tambahkan kode:

        Context context=parent.getContext();
        LayoutInflater inflater=LayoutInflater.from(context);
        View view=inflater.inflate(R.layout.format_pegawai,parent, false);
        return new AdaptorPegawai.myviewHolder(view);

Sehingga menjadi:

    @Override
    public myviewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        Context context=parent.getContext();
        LayoutInflater inflater=LayoutInflater.from(context);
        View view=inflater.inflate(R.layout.format_pegawai,parent, false);
        return new AdaptorPegawai.myviewHolder(view);
    }

26. Buka file “MainActivity.java“, lalu buat kodenya seperti berikut:

package com.example.latihanmysql.CLASS;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;

import com.example.latihanmysql.API.KoneksiApi;
import com.example.latihanmysql.INTERFACE.InterfacePegawai;
import com.example.latihanmysql.MODEL.ModelPegawai;
import com.example.latihanmysql.R;

import java.util.ArrayList;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

public class MainActivity extends AppCompatActivity {
    RecyclerView recyclerView_peg;
    ArrayList<ModelPegawai> modelPegawaiArrayList=new ArrayList<>();
    InterfacePegawai interfacePegawai;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        recyclerView_peg=findViewById(R.id.recyclerviewPegawai);
        interfacePegawai= KoneksiApi.KoneksiAPI().create(InterfacePegawai.class);
        recyclerView_peg.setLayoutManager(new LinearLayoutManager(this));

}
    
}

lalu tambahkan kode berikut diatas kurung kurawal tutup terakhir:

    @Override
    protected void onResume() {
        retrofit2.Call<List<ModelPegawai>> tampildata = interfacePegawai.tampilPegawai();
        tampildata.enqueue(new Callback<List<ModelPegawai>>() {
            @Override
            public void onResponse(Call<List<ModelPegawai>> call, Response<List<ModelPegawai>> response) {
                ArrayList<ModelPegawai> modelPegawaiArrayList = (ArrayList<ModelPegawai>) response.body();
                AdaptorPegawai adaptorPegawai = new AdaptorPegawai(modelPegawaiArrayList);
                recyclerView_peg.setAdapter(adaptorPegawai);
            }

            @Override
            public void onFailure(Call<List<ModelPegawai>> call, Throwable t) {

            }
        });

        super.onResume();
    }

Entry Data

27. Buat “Empty activity” dengan nama EntryDataPegawai.

28. Tambahkan kode berikut, didalam layout “activity_entry_data_pegawai“.

<?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:layout_width="match_parent"
    android:padding="5dp"
    android:layout_height="match_parent"
    tools:context=".CLASS.EntryDataPegawai">

    <TextView
        android:id="@+id/teksentry"
        android:textAppearance="@style/TextAppearance.AppCompat.SearchResult.Title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Entry data Pegawai" />

    <EditText
        android:id="@+id/nippegawai"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/teksentry"
        android:hint="nip guru" />
    <EditText
        android:id="@+id/namapegawai"
        android:hint="nama guru"
        android:layout_below="@+id/nippegawai"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <EditText
        android:id="@+id/gajipegawai"
        android:hint="status guru"
        android:layout_below="@+id/namapegawai"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <LinearLayout
        android:layout_below="@+id/gajipegawai"
        android:layout_width="match_parent"
        android:gravity="center"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/tombolsave"
            android:text="save"
            android:layout_margin="4dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <Button
            android:id="@+id/tombolview"
            android:text="view"
            android:layout_margin="4dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

    </LinearLayout>
</RelativeLayout>

29. Buka “MainActivity.java” dan tambahkan kode berikut:

        FloatingActionButton tmblinput;
        tmblinput=findViewById(R.id.tombolinput);
        tmblinput.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(view.getContext(),EntryDataPegawai.class);
                view.getContext().startActivity(intent);
            }
        });

Dibawah kode:

recyclerView_peg.setLayoutManager(new LinearLayoutManager(this));

30. Buka “EntryDataPegawai”, dan tambahkan kode:

package com.example.mysql.CLASS;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.example.mysql.MODEL.ModelPegawai;
import com.example.mysql.R;

public class EntryDataPegawai extends AppCompatActivity implements View.OnClickListener {
    EditText ednip,ednama,edgaji;
    Button btnsimpan,btnview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_entry_data_pegawai);
        ednip=findViewById(R.id.nippegawai);
        ednama=findViewById(R.id.namapegawai);
        edgaji=findViewById(R.id.gajipegawai);

        btnsimpan=findViewById(R.id.tombolsave);
        btnview=findViewById(R.id.tombolview);

        btnsimpan.setOnClickListener(this);
        btnview.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {
        if (view.getId()==R.id.tombolsave)
        {

        }else
        {
            Intent intent=new Intent(view.getContext(),MainActivity.class);
            view.getContext().startActivity(intent);
        }
    }
}
Share your love
Arataside
Arataside

Hi semua, saya adalah admin di arataside.com

Articles: 29

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *