BAB I
PENDAHULUAN
1.
LATAR BELAKANG
PERLUNYA APLIKASI
Aplikasi
Bank sampah akan menampung, memilah dan menyalurkan sampah bernilai ekonomi
pada pasar (pengepul/lapak) sehingga masyarakat mendapatkan keuntungan ekonomi dari menabung sampah dan aplikasi Bank Sampah di harapkan pengguna muda
khususnya perempuan bisa membantu orang tua dalam mendapatkan keuntungan
ekonomi dari menabung sampah sehingga anak muda bisa ikut serta dalam menjaga
kelestarian lingkungan dari sampah tersebut.
2.
TUJUAN APLIKASI
Aplikasi Bank sampah akan menampung, memilah
dan menyalurkan sampah bernilai ekonomi pada pasar (pengepul/lapak) sehingga
masyarakat mendapatkan keuntungan
ekonomi dari menabung sampah dan agar mengurangi sampah yang seharusnya masih
lauak di daur ulang agar lingkungan bersih dari penumpukan sampah itu sendiri.
BAB II
PERANCANGAN APLIKASI
a. Alur Kerja Aplikasi
Pertama masuk aplikasi akan langsung masuk pada halaman login di mana pada halaman ini user(pengguna) harus terlebih dahulu mendaftarkan akunnya agar bisa masuk kepada halaman selanjut nya
Kedua apabila belum terdaftar pada menu daftar
masuk kepada halaman daftar di mana harus terlebih dahulu memasuki Nama
Panjang,Email,Password Dan Nomor Telepon Apabila Sudah Semuanya Masuk Kembali
menu login
Pada Ketiga setelah mendaftar masukkan email
dan password yang telah di daftarkan klik tombol login agar masuk pada halaman
utama pada aplikasi tersebut
Setelah Masuk Halaman Utama itu
Merupakan Halaman Aplikasi Setelah Login Di Mana Ada Menu
HOME,GALERI,MAPS,CONTACT SALDO Dan LOGOUT.
Pada halaman utama kita masuk pada halaman Maps di mana pada halaman maps berfungsi untuk melihat titik lokasi di mana lokasi bank sampah berada.
Ketika Kita
masuk halaman menu maps akan terlihat
peta yang merupakan lokasi dari bank sampah itu sendiri dimana tempat
penampungan atau tempat dari bank sampah.
Pada halaman utama kita masuk pada halaman Keluar di mana pada halaman Keluar berfungsi untuk keluar dari akun kita di dalamnya.
Pada halaman Kontak Person di mana pada halaman kotak person berfungsi untuk menghubungi pihak admin dari bank sampah tersebut.
a. Kebutuhan Data
Data yang di butuhkan dalam membuat aplikasi
bank sampah yaitu data diri pengguna seperti Email,Password,Nama dan No Telepon
di mana untuk mempunyai akun bank sampah di perlukan data tersebut.
Data Yang Di Perlukan Nama Panjang,Email,Password dan Telepon.
Gambar
9 Daftar Akun
b.
Fitur Yang
DiSediakan
Fitur-Fitur yang disediakan pada halaman utama
bank sampah yaitu HOME,GALERI,MAPS,CONTACT,SALDO Dan KELUAR.
Gambar
10 Halaman Utama
BAB III
HASIL IMPLEMENTASI
A.
activity_login.xml
<?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"
android:background="#000000"
tools:context=".Login">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="BANK SAMPAH"
android:textColor="#FFFF"
android:textSize="25dp"
android:fontFamily="@font/aclonica"
android:textAlignment="center"
android:layout_marginTop="50dp"
/>
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="90dp"
android:layout_centerHorizontal="true"
android:src="@drawable/bck"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_marginTop="200dp"
android:layout_marginBottom="-4dp"
android:fontFamily="@font/aclonica"
android:text="Login"
android:textAlignment="center"
android:textColor="#FFFF"
android:textSize="25dp" />
//masukan edit text
<EditText
android:id="@+id/Email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="280dp"
android:background="#FFF"
android:fontFamily="@font/grand_hotel"
android:textColorHint="#000000"
android:hint="Email"
android:layout_marginRight="50dp"
android:layout_marginLeft="50dp"
android:textSize="20dp"
android:inputType="textEmailAddress"
/>
//masukan password
<EditText
android:id="@+id/Password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="330dp"
android:background="#FFF"
android:fontFamily="@font/grand_hotel"
android:textColorHint="#000000"
android:hint="Password"
android:layout_marginRight="50dp"
android:layout_marginLeft="50dp"
android:textSize="20dp"
android:inputType="textPassword" />
//Tombol untuk masuk halaman utama
<Button
android:id="@+id/login_masuk"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="450dp"
android:textColor="#FFFF"
android:layout_marginRight="50dp"
android:layout_marginLeft="50dp"
android:textSize="20dp"
android:text="login"/>
<TextView
android:id="@+id/buatdaftar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="490dp"
android:textColor="#FFF"
android:text="Anda belum Punya
Akun?"
android:layout_marginRight="50dp"
android:layout_marginLeft="50dp"
android:textSize="15dp"
/>
//Tombol
untuk masuk halaman daftar
<Button
android:id="@+id/menudaftar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="520dp"
android:layout_marginRight="50dp"
android:layout_marginLeft="50dp"
android:textColor="#FFF"
android:textSize="20dp"
android:text="daftar"/>
</RelativeLayout
>
B.
Login.java
package com.yoga.banksampah;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
public class Login extends AppCompatActivity {
EditText mEmail, mPassword;
Button mRegistrasi, mMasuk;
FirebaseAuth fAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
mEmail = findViewById(R.id.Email);
mPassword = findViewById(R.id.Password);
mRegistrasi = findViewById(R.id.menudaftar);
mMasuk = findViewById(R.id.login_masuk);
mRegistrasi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), Registrasi.class));
finish();
}
});
fAuth = FirebaseAuth.getInstance();
mMasuk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = mEmail.getText().toString().trim();
String password = mPassword.getText().toString().trim();
if (TextUtils.isEmpty(email)) {
mEmail.setError("Masukan Email");
return;
}
if (TextUtils.isEmpty(password)) {
mPassword.setError("Masukan Password");
return;
}
//autentikasi user email dan password
fAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
Toast.makeText(Login.this, "Selamat Datang Di Bank Sampah", Toast.LENGTH_SHORT).show();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}else {
Toast.makeText(Login.this, "GAGAL MENDAFTAR" + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
}
});
}
}
C.
activity_registrasi.xml
D. <?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"
android:background="#000000"
android:orientation="vertical"
tools:context=".Registrasi">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="50dp"
android:fontFamily="@font/aclonica"
android:text="BANK SAMPAH"
android:textAlignment="center"
android:textColor="#FFFF"
android:textSize="25dp" />
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="90dp"
android:src="@drawable/bck" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_marginTop="200dp"
android:layout_marginBottom="-4dp"
android:fontFamily="@font/grand_hotel"
android:text="DAFTAR"
android:textAlignment="center"
android:textColor="#FFFF"
android:textSize="20dp" />
//masukan nama
<EditText
android:id="@+id/Nama"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginTop="230dp"
android:layout_marginRight="50dp"
android:background="#FFF"
android:fontFamily="@font/grand_hotel"
android:hint="Nama Panjang"
android:inputType="textPersonName"
android:textColorHint="#000000"
android:textSize="20dp" />
//masukan email
<EditText
android:id="@+id/Email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginTop="280dp"
android:layout_marginRight="50dp"
android:background="#FFF"
android:fontFamily="@font/grand_hotel"
android:hint="Email"
android:inputType="textEmailAddress"
android:textColorHint="#000000"
android:textSize="20dp" />
//masukan password
<EditText
android:id="@+id/Password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginTop="330dp"
android:layout_marginRight="50dp"
android:background="#FFF"
android:fontFamily="@font/grand_hotel"
android:hint="Password"
android:inputType="textPassword"
android:textColorHint="#000000"
android:textSize="20dp" />
//masukan telepon
<EditText
android:id="@+id/Phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginTop="380dp"
android:layout_marginRight="50dp"
android:background="#FFF"
android:fontFamily="@font/grand_hotel"
android:hint="Telepon"
android:inputType="textPhonetic"
android:textColorHint="#000000"
android:textSize="20dp" />
<Button
android:id="@+id/daftar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginTop="450dp"
android:layout_marginRight="50dp"
android:text="DAFTAR"
android:textSize="20dp" />
<TextView
android:id="@+id/buatdaftar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginTop="490dp"
android:layout_marginRight="50dp"
android:text="Anda Sudah Punya Akun?"
android:textColor="#FFF"
android:textSize="15dp" />
<Button
android:id="@+id/menumasuk"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginTop="520dp"
android:layout_marginRight="50dp"
android:text="Masuk"
android:textSize="20dp" />
</RelativeLayout>
C.
Registrasi.java
D. package com.yoga.banksampah;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
public class Registrasi extends AppCompatActivity {
EditText mFullNama, mEmail, mPassword, mTelepon;
Button mRegistrasi, mMasuk;
FirebaseAuth fAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registrasi);
mFullNama = findViewById(R.id.Nama);
mEmail = findViewById(R.id.Email);
mPassword = findViewById(R.id.Password);
mTelepon = findViewById(R.id.Phone);
mRegistrasi = findViewById(R.id.daftar);
mMasuk = findViewById(R.id.menumasuk);
mMasuk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), Login.class));
finish();
}
});
fAuth = FirebaseAuth.getInstance();
if (fAuth.getCurrentUser() != null) {
startActivity(new Intent(getApplicationContext(), MainActivity.class));
finish();
}
mRegistrasi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = mEmail.getText().toString().trim();
String password = mPassword.getText().toString().trim();
String phone = mTelepon.getText().toString().trim();
final String nama = mFullNama.getText().toString().trim();
//cek email
if (TextUtils.isEmpty(email)) {
mEmail.setError("Masukan Email");
return;
}
//cek password
if (TextUtils.isEmpty(password)) {
mPassword.setError("Masukan Password");
return;
}
//cek telepon
if (TextUtils.isEmpty(phone)) {
mTelepon.setError("Masukan Telepon");
return;
}
//cek nama
if (TextUtils.isEmpty(nama)) {
mPassword.setError("Masukan Nama");
return;
}
//registrasi firebase
fAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
//masuk daftar
if (task.isSuccessful()) {
Toast.makeText(Registrasi.this, "DAFTAR BERHASIL", Toast.LENGTH_SHORT).show();
//masuk login
startActivity(new Intent(getApplicationContext(), Login.class));
} else {
Toast.makeText(Registrasi.this, "GAGAL MENDAFTAR" + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
}
});
}
}
E.
activity_kontak.xml
<?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"
android:background="#000000"
tools:context=".kontak">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="BANK SAMPAH"
android:textColor="#FFFF"
android:textSize="25dp"
android:fontFamily="@font/aclonica"
android:textAlignment="center"
android:layout_marginTop="20dp"
/>
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="50dp"
android:layout_centerHorizontal="true"
android:src="@drawable/bck"
/>
<ImageButton
android:id="@+id/wa"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="170dp"
android:layout_centerHorizontal="true"
android:background="@drawable/wa"
/>
<Button
android:id="@+id/nowa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/wa"
android:layout_centerHorizontal="true"
android:text="0895377053254"
/>
<ImageView
android:id="@+id/nohp"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_below="@id/nowa"
android:layout_centerHorizontal="true"
android:src="@drawable/telepon"
/>
<TextView
android:id="@+id/hp"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_below="@+id/nohp"
android:background="#FFF"
android:layout_centerHorizontal="true"
android:text="081808931497"
android:textStyle="bold"
android:textAlignment="center"
android:layout_marginTop="20dp"
/>
</RelativeLayout >
F.
Kontak,java
G. package com.yoga.banksampah;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
public class kontak extends AppCompatActivity {
public ImageButton mwa;
public Button mnowa;
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_kontak);
mwa = (ImageButton)
findViewById(R.id.wa);
mnowa = (Button)
findViewById(R.id.nowa);
mwa.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View
v) {
Intent whatsapp = new Intent(Intent.ACTION_VIEW);
whatsapp.setData(Uri.parse("https://api.whatsapp.com/send?phone=62895377053254"));//berfungsi untuk
menghubungi dengan whatsapp
startActivity(whatsapp);
}
});
mwa.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View
v) {
Intent wa = new Intent(Intent.ACTION_VIEW);
wa.setData(Uri.parse("https://api.whatsapp.com/send?phone=62895377053254"));//berfungsi untuk
menghubungi dengan whatsapp
startActivity(wa);
}
});
}
}
H.
MapsActivity.java
package com.yoga.banksampah;
import androidx.fragment.app.FragmentActivity;
import android.os.Bundle;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
/**
* Manipulates the map once available.
* This callback is triggered when the map is ready to be used.
* This is where we can add markers or lines, add listeners or move the camera. In this case,
* we just add a marker near Sydney, Australia.
* If Google Play services is not installed on the device, the user will be prompted to install
* it inside the SupportMapFragment. This method will only be triggered once the user has
* installed Google Play services and returned to the app.
*/
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
//buat maps bank sampah 1
LatLng banksampah1 = new LatLng(-7.8213729,110.3768844);
mMap.addMarker(new MarkerOptions().position(banksampah1).title("Bank Sampah"));
//buat maps bank sampah 2
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(banksampah1,13));
LatLng banksampah2 = new LatLng(-7.825522,110.3713998);
mMap.addMarker(new MarkerOptions().position(banksampah2).title("Bank Sampah 2"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(banksampah2));
}
}
I.
MainActivity.java
J. fAuth = FirebaseAuth.getInstance();
makeluar.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View
v) {
fAuth.signOut();
startActivity(new Intent(getApplicationContext(),
Login.class));
}
});
// berfungsi untuk keluar dari
akun firebase atau logout dari aplikasi
BAB IV
KESIMPULAN
Aplikasi Bank sampah akan menampung,
memilah dan menyalurkan sampah bernilai ekonomi pada pasar (pengepul/lapak)
sehingga masyarakat mendapatkan
keuntungan ekonomi dari menabung sampah dan Pada aplikasi Bank Sampah di harapkan pengguna muda khususnya perempuan
bisa membantu orang tua dalam mendapatkan keuntungan ekonomi dari menabung
sampah sehingga anak muda bisa ikut serta dalam menjaga kelestarian lingkungan
dari sampah tersebut.
Semoga dengan
adanya aplikasi ini bisa menjaga lingkungan agar sampah bisa berkurang dan
semoga anak muda jaman sekarang membantu para orang tuanya dalam memanfaatkan
sampah yang masih bisa di pergunakan menjadi keuntungan ekonomi itu sendiri