Advertisement
Guest User

Aldiiiiiiiiiiiiiiiii

a guest
Oct 23rd, 2019
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 15.53 KB | None | 0 0
  1. // TambahDataPasienActivity.java
  2.  
  3. package com.example.aplikasipasien.Activity;
  4.  
  5. import androidx.annotation.NonNull;
  6. import androidx.annotation.Nullable;
  7. import androidx.appcompat.app.AppCompatActivity;
  8. import androidx.core.app.ActivityCompat;
  9. import androidx.room.Room;
  10.  
  11. import android.Manifest;
  12. import android.app.Activity;
  13. import android.content.Intent;
  14. import android.content.pm.PackageManager;
  15. import android.graphics.Bitmap;
  16. import android.graphics.BitmapFactory;
  17. import android.graphics.drawable.BitmapDrawable;
  18. import android.net.Uri;
  19. import android.os.AsyncTask;
  20. import android.os.Bundle;
  21. import android.provider.MediaStore;
  22. import android.view.View;
  23. import android.widget.Button;
  24. import android.widget.ImageView;
  25. import android.widget.RadioButton;
  26. import android.widget.RadioGroup;
  27. import android.widget.Toast;
  28.  
  29. import com.example.aplikasipasien.Database.DataConverter;
  30. import com.example.aplikasipasien.Database.Pasien;
  31. import com.example.aplikasipasien.Database.PasienDAO;
  32. import com.example.aplikasipasien.Database.PasienDatabase;
  33. import com.example.aplikasipasien.R;
  34. import com.google.android.material.textfield.TextInputLayout;
  35.  
  36. import java.io.ByteArrayOutputStream;
  37. import java.io.FileNotFoundException;
  38. import java.io.InputStream;
  39.  
  40. public class TambahDataPasienActivity extends AppCompatActivity {
  41.  
  42.     public static Pasien dataPasien;
  43.     private Button btnSimpan, btnKeluar, btnUpload;
  44.     private TextInputLayout edtNama, edtAlamat, edtRuangan, edtDokter;
  45.     private ImageView imgFotoPasien;
  46.     private RadioButton lakilaki, perempuan;
  47.     private RadioGroup jenisKelamin;
  48.     private String myJenisKelamin;
  49.     private PasienDatabase db;
  50.     private Bitmap bmpImage;
  51.     private PasienDAO pasienDAO;
  52.     final int CAMERA_INTENT = 51;
  53.  
  54.  
  55.     @Override
  56.     protected void onCreate(Bundle savedInstanceState) {
  57.         super.onCreate(savedInstanceState);
  58.         setContentView(R.layout.activity_tambah_data_pasien);
  59.  
  60.         getSupportActionBar().setTitle("Tambah Pasien");
  61.  
  62.         btnSimpan = findViewById(R.id.btn_simpan);
  63.         btnKeluar = findViewById(R.id.btn_keluar);
  64.         edtNama = findViewById(R.id.edt_nama);
  65.         edtAlamat = findViewById(R.id.edt_alamat);
  66.         edtRuangan = findViewById(R.id.edt_ruangan);
  67.         edtDokter = findViewById(R.id.edt_dokter);
  68.         btnUpload = findViewById(R.id.btn_upload_foto_pasien);
  69.         imgFotoPasien = findViewById(R.id.img_foto_pasien);
  70.         lakilaki = findViewById(R.id.laki);
  71.         perempuan = findViewById(R.id.perempuan);
  72.         jenisKelamin = findViewById(R.id.rg_enis_kelamin);
  73.  
  74.         bmpImage = null;
  75.  
  76.         pasienDAO = PasienDatabase.getDBInstance(this).pasienDAO();
  77.  
  78.         setData();
  79.  
  80.         btnSimpan.setOnClickListener(new View.OnClickListener() {
  81.             @Override
  82.             public void onClick(View view) {
  83.                 String nama = edtNama.getEditText().getText().toString().trim();
  84.                 String alamat = edtAlamat.getEditText().getText().toString().trim();
  85.                 String ruangan = edtRuangan.getEditText().getText().toString().trim();
  86.                 String dokter = edtDokter.getEditText().getText().toString().trim();
  87.  
  88.                 if (dataPasien == null){
  89.                     insertPasien(nama, alamat, ruangan, dokter);
  90.                 }else {
  91.                     updatePasien(nama, alamat, ruangan, dokter);
  92.                 }
  93.             }
  94.         });
  95.  
  96.         btnKeluar.setOnClickListener(new View.OnClickListener() {
  97.             @Override
  98.             public void onClick(View view) {
  99.                 finish();
  100.             }
  101.         });
  102.  
  103.         btnUpload.setOnClickListener(new View.OnClickListener() {
  104.             @Override
  105.             public void onClick(View view) {
  106.                 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  107.                 if (intent.resolveActivity(getPackageManager()) != null) {
  108.                     startActivityForResult(intent, CAMERA_INTENT);
  109.                 }
  110.             }
  111.         });
  112.  
  113.     }
  114.  
  115.     private void insertPasien(String nama, String alamat, String ruangan, String dokter) {
  116.         final Pasien pasien = new Pasien();
  117.         pasien.setNama_pasien(nama);
  118.         pasien.setAlamat_pasien(alamat);
  119.         pasien.setRuangan_pasien(ruangan);
  120.         pasien.setDokter_pasien(dokter);
  121.         if (lakilaki.isChecked()) {
  122.             myJenisKelamin = "Laki-Laki";
  123.         }else if (perempuan.isChecked()) {
  124.             myJenisKelamin = "Perempuan";
  125.         }
  126.         pasien.setJenis_kelamin_pasien(myJenisKelamin);
  127.         pasien.setFoto_pasien(imageViewToByte(imgFotoPasien));
  128.  
  129.         new AsyncTask<Void, Void, Long>() {
  130.             @Override
  131.             protected Long doInBackground(Void... voids) {
  132. //                    Long cek = db.pasienDAO().insertPasien(pasien);
  133.                 Long cek = pasienDAO.insertPasien(pasien);
  134.                 return cek;
  135.             }
  136.  
  137.             @Override
  138.             protected void onPostExecute(Long aLong) {
  139.                 Toast.makeText(TambahDataPasienActivity.this, "Data Berhasil Disimpan", Toast.LENGTH_SHORT).show();
  140.                 finish();
  141.             }
  142.         }.execute();
  143.  
  144.         Toast.makeText(this, "Data Berhasil di Simpan", Toast.LENGTH_SHORT).show();
  145.         finish();
  146.     }
  147.  
  148.     private void updatePasien(String nama, String alamat, String ruangan, String dokter) {
  149.         final Pasien pasien = new Pasien();
  150.         pasien.setId(dataPasien.getId());
  151.         pasien.setNama_pasien(nama);
  152.         pasien.setAlamat_pasien(alamat);
  153.         pasien.setRuangan_pasien(ruangan);
  154.         pasien.setDokter_pasien(dokter);
  155.         if (lakilaki.isChecked()) {
  156.             myJenisKelamin = "Laki-Laki";
  157.         }else if (perempuan.isChecked()) {
  158.             myJenisKelamin = "Perempuan";
  159.         }
  160.         pasien.setJenis_kelamin_pasien(myJenisKelamin);
  161.         pasien.setFoto_pasien(imageViewToByte(imgFotoPasien));
  162.         new AsyncTask<Void, Void, Integer>() {
  163.             @Override
  164.             protected Integer doInBackground(Void... voids) {
  165.                 Integer cek = pasienDAO.updateDataPasien(pasien);
  166.                 return cek;
  167.             }
  168.  
  169.             @Override
  170.             protected void onPostExecute(Integer aLong) {
  171.                 Toast.makeText(TambahDataPasienActivity.this, "Data Berhasil di update", Toast.LENGTH_SHORT).show();
  172.                 finish();
  173.             }
  174.         }.execute();
  175.     }
  176.  
  177.     private byte[] imageViewToByte(ImageView imageView) {
  178.         Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
  179.         ByteArrayOutputStream stream = new ByteArrayOutputStream();
  180.         bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
  181.         byte[] byteArray = stream.toByteArray();
  182.         return byteArray;
  183.     }
  184.  
  185.     @Override
  186.     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
  187.         super.onActivityResult(requestCode, resultCode, data);
  188.         switch (requestCode) {
  189.             case CAMERA_INTENT:
  190. //                if (requestCode == Activity.RESULT_OK) {
  191.                 bmpImage = (Bitmap) data.getExtras().get("data");
  192.                 if (bmpImage != null) {
  193.                     imgFotoPasien.setImageBitmap(bmpImage);
  194.                 }
  195.                 break;
  196.         }
  197.     }
  198.  
  199.     private void setData() {
  200.         if (dataPasien != null){
  201.             edtNama.getEditText().setText(dataPasien.getNama_pasien());
  202.             edtAlamat.getEditText().setText(dataPasien.getAlamat_pasien());
  203.             edtRuangan.getEditText().setText(dataPasien.getRuangan_pasien());
  204.             edtDokter.getEditText().setText(dataPasien.getDokter_pasien());
  205.             switch (dataPasien.getJenis_kelamin_pasien()) {
  206.                 case "Laki-Laki":
  207.                     lakilaki.setChecked(true);
  208.                     break;
  209.                 case "Perempuan":
  210.                     perempuan.setChecked(true);
  211.                     break;
  212.             }
  213.             imgFotoPasien.setImageBitmap(DataConverter.converByteArray2Image(dataPasien.getFoto_pasien()));
  214.         }
  215.     }
  216.  
  217. }
  218.  
  219.  
  220. // Adapter Pasien
  221.  
  222. package com.example.aplikasipasien.Adapter;
  223.  
  224. import android.app.AlertDialog;
  225. import android.content.Context;
  226. import android.content.DialogInterface;
  227. import android.content.Intent;
  228. import android.os.AsyncTask;
  229. import android.view.LayoutInflater;
  230. import android.view.View;
  231. import android.view.ViewGroup;
  232. import android.widget.ImageButton;
  233. import android.widget.ImageView;
  234. import android.widget.RelativeLayout;
  235. import android.widget.TextView;
  236. import android.widget.Toast;
  237.  
  238. import androidx.annotation.NonNull;
  239. import androidx.recyclerview.widget.RecyclerView;
  240. import androidx.room.Room;
  241. import com.example.aplikasipasien.Activity.DetailPasienActivity;
  242. import com.example.aplikasipasien.Activity.TambahDataPasienActivity;
  243. import com.example.aplikasipasien.Database.DataConverter;
  244. import com.example.aplikasipasien.Database.Pasien;
  245. import com.example.aplikasipasien.Database.PasienDatabase;
  246. import com.example.aplikasipasien.R;
  247.  
  248. import java.util.List;
  249.  
  250. public class AdapterPasienActivity extends RecyclerView.Adapter<AdapterPasienActivity.MyViewHolder> {
  251.  
  252.     private Context context;
  253.     private List<Pasien> listData;
  254.     private PasienDatabase db;
  255.  
  256.     public AdapterPasienActivity() {
  257.  
  258.     }
  259.  
  260.     public AdapterPasienActivity(Context context, List<Pasien> listData) {
  261.         this.context = context;
  262.         this.listData = listData;
  263.     }
  264.  
  265.     @NonNull
  266.     @Override
  267.     public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  268.         View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_row_pasien, parent, false);
  269.         return new MyViewHolder(view);
  270.     }
  271.  
  272.     @Override
  273.     public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) {
  274.  
  275.         final Pasien pasien = listData.get(position);
  276.         holder.tvNamaPasien.setText(pasien.getNama_pasien());
  277.         holder.tvRuanganPasien.setText(pasien.getRuangan_pasien());
  278.         holder.tvJenisKelamin.setText(pasien.getJenis_kelamin_pasien());
  279.         holder.imgFoto.setImageBitmap(DataConverter.converByteArray2Image(pasien.getFoto_pasien()));
  280.         holder.imgBtnDelete.setOnClickListener(new View.OnClickListener() {
  281.             @Override
  282.             public void onClick(View view) {
  283.                 AlertDialog.Builder builder = new AlertDialog.Builder(context);
  284.                 builder.setTitle("Konfirmasi");
  285.                 builder.setMessage("Yakin ingin menghapus?");
  286.                 builder.setCancelable(true);
  287.                 builder.setPositiveButton("Ya", new DialogInterface.OnClickListener() {
  288.                     @Override
  289.                     public void onClick(DialogInterface dialogInterface, int i) {
  290.                         db = Room.databaseBuilder(context, PasienDatabase.class, "pasiendb").build();
  291.  
  292.                         new AsyncTask<Void, Void, Integer>() {
  293.                             @Override
  294.                             protected Integer doInBackground(Void... voids) {
  295.                                 Integer cek = db.pasienDAO().deleteDataPasien(pasien);
  296.                                 return cek;
  297.                             }
  298.  
  299.                             @Override
  300.                             protected void onPostExecute(Integer aLong) {
  301.                                 Toast.makeText(context, "Data Berhasil Dihapus", Toast.LENGTH_SHORT).show();
  302.                                 if (aLong == 1){
  303.                                     listData.remove(position);
  304.                                     notifyDataSetChanged();
  305.                                 }
  306.                             }
  307.                         }.execute();
  308.                     }
  309.                 });
  310.                 builder.setNegativeButton("Tidak", new DialogInterface.OnClickListener() {
  311.                     @Override
  312.                     public void onClick(DialogInterface dialog, int i) {
  313.                         dialog.cancel();
  314.                     }
  315.                 });
  316.                 builder.show();
  317.             }
  318.         });
  319.  
  320.         holder.imgBtnEdit.setOnClickListener(new View.OnClickListener() {
  321.             @Override
  322.             public void onClick(View view) {
  323.                 TambahDataPasienActivity.dataPasien = listData.get(position);
  324.                 context.startActivity(new Intent(context, TambahDataPasienActivity.class));
  325.             }
  326.         });
  327.  
  328.         holder.item.setOnClickListener(new View.OnClickListener() {
  329.             @Override
  330.             public void onClick(View view) {
  331.                 Pasien pasien = listData.get(position);
  332. //                TambahDataPasienActivity.dataPasien = listData.get(position);
  333.                 context.startActivity(new Intent(context, DetailPasienActivity.class).putExtra("detail", pasien));
  334.             }
  335.         });
  336.  
  337.     }
  338.  
  339.     @Override
  340.     public int getItemCount() {
  341.         return listData.size();
  342.     }
  343.  
  344.     public class MyViewHolder extends RecyclerView.ViewHolder {
  345.         ImageView imgFoto;
  346.         TextView tvNamaPasien, tvRuanganPasien, tvJenisKelamin;
  347.         ImageButton imgBtnDelete, imgBtnEdit;
  348.         RelativeLayout item;
  349.  
  350.         public MyViewHolder(@NonNull View itemView) {
  351.             super(itemView);
  352.             imgFoto = itemView.findViewById(R.id.img_foto);
  353.             tvNamaPasien = itemView.findViewById(R.id.tv_nama_pasien);
  354.             tvRuanganPasien = itemView.findViewById(R.id.tv_ruangan_pasien);
  355.             imgBtnDelete = itemView.findViewById(R.id.img_btn_delete);
  356.             imgBtnEdit = itemView.findViewById(R.id.img_btn_edit);
  357.             tvJenisKelamin = itemView.findViewById(R.id.tv_jenis_kelamin_pasien);
  358.             item = itemView.findViewById(R.id.item);
  359.         }
  360.     }
  361. }
  362.  
  363.  
  364. // Main Menu
  365.  
  366. package com.example.aplikasipasien.Activity;
  367.  
  368. import androidx.appcompat.app.AppCompatActivity;
  369. import androidx.appcompat.widget.Toolbar;
  370. import androidx.cardview.widget.CardView;
  371.  
  372. import android.content.Intent;
  373. import android.os.Bundle;
  374. import android.view.View;
  375.  
  376. import com.example.aplikasipasien.R;
  377.  
  378. public class MainActivity extends AppCompatActivity implements View.OnClickListener {
  379.  
  380.     CardView cvPasien, cvPengguna, cvTentang, cvKeluar;
  381.  
  382.     @Override
  383.     protected void onCreate(Bundle savedInstanceState) {
  384.         super.onCreate(savedInstanceState);
  385.         setContentView(R.layout.activity_main);
  386.  
  387.         cvPasien = findViewById(R.id.cardview_pasien);
  388.         cvPengguna = findViewById(R.id.cardview_input);
  389.         cvTentang = findViewById(R.id.cardview_tentang);
  390.         cvKeluar = findViewById(R.id.cardview_keluar);
  391.  
  392.         cvPasien.setOnClickListener(this);
  393.         cvPengguna.setOnClickListener(this);
  394.         cvTentang.setOnClickListener(this);
  395.         cvKeluar.setOnClickListener(this);
  396.  
  397.     }
  398.  
  399.     @Override
  400.     public void onClick(View v) {
  401.         switch (v.getId()) {
  402.             case R.id.cardview_pasien:
  403.                 Intent intentPasien = new Intent(MainActivity.this, DaftarPasienActivity.class);
  404.                 startActivity(intentPasien);
  405.                 break;
  406.  
  407.             case R.id.cardview_input:
  408.                 Intent intentInput = new Intent(MainActivity.this, TambahDataPasienActivity.class);
  409.                 startActivity(intentInput);
  410.                 break;
  411.  
  412.             case R.id.cardview_tentang:
  413.                 Intent intentTentang = new Intent(MainActivity.this, TentangAplikasiActivity.class);
  414.                 startActivity(intentTentang);
  415.                 break;
  416.  
  417.             case R.id.cardview_keluar:
  418.                 break;
  419.         }
  420.     }
  421. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement