SQL Delete

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

NIM : A11.2018.

11600
Nama : SAFIELLA AULIA WIDYA KUSUMA
Build.gradle(project)
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.google.gms:google-services:4.3.4' classpath
'com.android.tools.build:gradle:4.1.1'

// NOTE: Do not place your application dependencies here; they belong


// in the individual module build.gradle files
}
}

allprojects {
repositories {
google()
jcenter()
}
}

task clean(type: Delete) {


delete rootProject.buildDir
}

Build.gradle(module)

plugins {
id 'com.android.application'
id 'com.google.gms.google-services'
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"

defaultConfig {
applicationId "com.example.firebaseoke"
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-
optimize.txt'), 'proguard-rules.pro' }
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}

dependencies {

implementation 'androidx.appcompat:appcompat:1.2.0' implementation


'com.google.android.material:material:1.2.1' implementation
'androidx.constraintlayout:constraintlayout:2.0.4' implementation
'com.google.firebase:firebase-database:19.6.0'
testImplementation 'junit:junit:4.13.1'
androidTestImplementation
'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:es
presso-core:3.3.0' implementation
platform('com.google.firebase:firebase-bom:26.2.0')
implementation 'androidx.legacy:legacy support-v4:1.0.0'
}

MainActivity.java
package com.example.firebaseoke;

import androidx.annotation.NonNull; import


androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import
androidx.recyclerview.widget.Linea
rLayoutManager;
import androidx.recyclerview.widg
et.RecyclerView;

import android.app.Dialog; import


android.graphics.Color;
import android.graphics.drawable.ColorDrawable; import
android.os.Bundle;
import android.text.TextUtils; import
android.util.Log; import
android.view.View;
import android.view.WindowManager;
import android.widget.Button; import
android.widget.EditText; import
android.widget.ImageButton; import
android.widget.TextView; import
android.widget.Toast;

import com.example.firebaseoke.paketku.AdapterDataku; import


com.example.firebaseoke.paketku.Dataku;
import com.google.android.gms.tasks.OnSuccessListener;
import
com.google.android.material.floatingactionbutton.Floati
ngActionButton;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError; import
com.google.firebase.database.DatabaseReference; import
com.google.firebase.database.FirebaseDatabase; import
com.google.firebase.database.ValueEventListener;

import java.util.ArrayList; import


java.util.List; import
java.util.Objects;

public class MainActivity extends AppCompatActivity {

FloatingActionButton tblData;
RecyclerView recyclerView;
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef =
database.getReference("Dataku");
List<Dataku> list = new ArrayList<>();
AdapterDataku adapterDataku;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

tblData = findViewById(R.id.tbl_data); recyclerView =


findViewById(R.id.recycle_view);
recyclerView.setLayoutManager(ne
w
LinearLayoutManager(this )); tblDa
ta.setOnClickListener(new
View.OnClickListener(){
@Override
public void onClick(View view){
showDialogTambahData();
}
});
bacaData();
}

private void bacaData() {


// Read from the database
myRef.addValueEventListener(new ValueEventListener() { @Override
public void onDataChange(DataSnapshot dataSnapshot) { list.clear();
for(DataSnapshot snapshot :
dataSnapshot.getChildren()){ Dataku
value = snapshot.getValue(Dataku.class);
list.add(value);
}
adapterDataku = new AdapterDataku(MainActivity.this,list);
recyclerView.setAdapter(adapterDataku);

setClick();

@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
Log.w("TAG", "Failed to read value.", error.toException());
}
});
}

private void setClick() {


adapterDataku.setOnCallBack(new
AdapterDataku.OnCallBack() { @Override
public void onTblHapus(Dataku dataku) {
hapusData(dataku);
}

@Override
public void onTblEdit(Dataku dataku) {
showDialogEditData(dataku);
}
});
}

private void showDialogEditData(Dataku dataku) { Dialog dialog


= new Dialog(this);
dialog.requestWindowFeature(getWindow().FEATURE_NO_TITLE);
dialog.setContentView(R.layout.tambah_data_layout);

Objects.requireNonNull(dialog.getWindow()
).setBackgroundDrawable(new ColorDrawable(Color.
TRANSPARENT));
dialog.setCancelable(true);
WindowManager.LayoutParams lp = new
WindowManager.LayoutParams(); lp.copyFrom(Obje
cts.requireNonNull(dialog.getWindow()).getAttributes
()); lp.width
= WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
dialog.getWindow().setAttributes(lp);

ImageButton tblKeluar = dialog.findViewById(R.id.tbl_keluar);


tblKeluar.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
dialog.dismiss();
}
});

EditText txtTambah =
dialog.findViewById(R.id.txt_tambah_data); Button
tblTambah = dialog.findViewById(R.id.tbl_tambah);
TextView tvTambah =
dialog.findViewById(R.id.tv_tambah);

txtTambah.setText(dataku.getIsi());
tblTambah.setText("Update");
tvTambah.setText("Edit Data");

tblTambah.setOnClickListener(new View.OnClickListener(){ @Override


public void onClick(View view){
if(TextUtils.isEmpty((txtTambah.getText()))){
tblTambah.setError("Silahkan isi data");
}else{
editData(dataku, txtTambah.getText().toString()); dialog.dismiss();
}
}
});
dialog.show();
}

private void editData(Dataku dataku, String baru) {

myRef.child(dataku.getKunci()).child("isi").setValue(b
aru).addOnSuccessListener(new OnSuccessListener<
Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(getApplicationContext(),"update
berhasil",Toast.LENGTH_SHORT).show();
}
});
}

private void hapusData(Dataku dataku) {


myRef.child(dataku.getKunci()).removeValue(new
DatabaseReference.CompletionListener() {
@Override
public void onComplete(@Nullable DatabaseError error, @NonNull
DatabaseReference ref) {
Toast.makeText(getApplicationContext(),dataku.getIsi()+" telah
dihapus",Toast.LENGTH_SHORT).show();
}
});
}

private void showDialogTambahData() { Dialog


dialog = new Dialog(this);
dialog.requestWindowFeature(getWindow().FEATURE_NO_TITLE);
dialog.setContentView(R.layout.tambah_data_layout);

Objects.requireNonNull(dialog.getWindow()
).setBackgroundDrawable(new ColorDrawable(Color.
TRANSPARENT));
dialog.setCancelable(true);
WindowManager.LayoutParams lp = new
WindowManager.LayoutParams(); lp.copyFrom(Obje
cts.requireNonNull(dialog.getWindow()).getAttributes
()); lp.width
= WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
dialog.getWindow().setAttributes(lp);

ImageButton tblKeluar = dialog.findViewById(R.id.tbl_keluar);


tblKeluar.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
dialog.dismiss();
}
});

EditText txtTambah =
dialog.findViewById(R.id.txt_tambah_data); Button
tblTambah = dialog.findViewById(R.id.tbl_tambah);

tblTambah.setOnClickListener(new View.OnClickListener(){ @Override


public void onClick(View view){
if(TextUtils.isEmpty((txtTambah.getText()))){
tblTambah.setError("Silahkan isi data");
}else{
simpanData(txtTambah.getText().toString());
dialog.dismiss();
}
}
});
dialog.show();
}

private void simpanData(String s) {

String kunci = myRef.push().getKey(); Dataku


dataku = new Dataku(kunci,s);

myRef.child(kunci).setValue(dataku).addOnSuccessListener(new
OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(getApplicationContext(),"berhasil",Toast.LENGTH_
SHORT).show(); }
});
}
}

AdapterDataku.java

package com.example.firebaseoke.paketku; import

android.content.Context;
import android.view.LayoutInflater;
import android.view.View; import
android.view.ViewGroup;
import android.widget.ImageButton; import
android.widget.TextView;

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

com.example.firebaseoke.R;

import java.util.List;

public class AdapterDataku extends


RecyclerView.Adapter<AdapterDataku.ViewHolder> { Context context;
List<Dataku> list; OnCallBack

onCallBack;

public void setOnCallBack(OnCallBack onCallBack) { this.onCallBack


= onCallBack;
}

public AdapterDataku(Context context, List<Dataku> list) { this.context =


context;
this.list = list;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup
parent, int viewType) { View view =
LayoutInflater.from(context).inflate(R.layout.list_data_layout,parent,fal
se); return new ViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.teksViewData.setText(list.get(position).getIsi());
holder.tblHapus.setOnClickListener(new
View.OnClickListener() { @Override public
void onClick(View v) {
onCallBack.onTblHapus(list.get(position));
}
});

holder.tblEdit.setOnClickListener(new
View.OnClickListener() { @Override public
void onClick(View v) {
onCallBack.onTblEdit(list.get(position));
}
});
}

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

public class ViewHolder extends RecyclerView.ViewHolder { TextView

teksViewData;
ImageButton tblHapus, tblEdit;

public ViewHolder(@NonNull View itemView) {


super(itemView);

teksViewData =
itemView.findViewById(R.id.teks_view_d
ata); tblHapus
= itemView.findViewById(R.id.tbl_hapus);

tblEdit = itemView.findViewById(R.id.tbl_edit);
}
}

public interface OnCallBack{


void onTblHapus(Dataku dataku); void
onTblEdit(Dataku dataku);
}
}

Dataku.java

package com.example.firebaseoke.paketku; public

class Dataku {
String kunci;
String isi; public

Dataku(){

}
public Dataku(String kunci, String isi) { this.kunci =
kunci;
this.isi = isi;
}

public String getKunci() { return


kunci;
}

public void setKunci(String kunci) { this.kunci =


kunci;
}

public String getIsi() { return isi;


}

public void setIsi(String isi) { this.isi = isi;


}
}

activity_main.xml

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


<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schema
s.android.com/apk/res/android
"
xmlns:app="http://schemas.an
droid.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

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

<com.google.android.material.floatingactionbu
tton.FloatingActionButton android:id="@
+id/tbl_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="20dp"
android:src="@drawable/ic_baseline_add_circle_24"/>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

List_data_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white" android:
layout_margin="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp">

<TextView
android:id="@+id/teks_view_data"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="List_data"
android:layout_weight="1"
android:textColor="@color/black"/>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<ImageButton
android:id="@+id/tbl_hapus"
android:layout_width="wrap_content
" android:layout_height="wrap_cont
ent"
android:src="@drawable/ic_baseline_delete_forever_24"/>
<ImageButton
android:id="@+id/tbl_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_baseline_edit_24"/>

</LinearLayout>

</LinearLayout>

</androidx.cardview.widget.CardView>

Tambah_data_layout.xml

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


<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:layout_gravity="center"
android:background="@android:color/white"
android:orientation="vertical">

<RelativeLayout android:layout_width="wrap_content"
android:layout_height="?actionBarSize"
android:background="@color/teal_700">

<TextView
android:id="@+id/tv_tambah"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tambah Data"
android:textStyle="bold"
android:layout_centerInParent="true"
android:textSize="20dp"/>

<ImageButton
android:id="@+id/tbl_keluar"
android:layout_width="wrap_content"
android:layout_height="match_p
arent"
android:padding="20dp" android:
layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:src="@drawable/ic_baseline_close_24"
android:background="@android:color/transparent"/>

</RelativeLayout>

<EditText
android:id="@+id/txt_tambah_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:textColor="@color/black"/>

<Button
android:id="@+id/tbl_tambah"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/darker_gray"
android:text="tambah" android:layout_gravity="end"
android:layout_margin="20dp"/>

</LinearLayout>

You might also like