Android merupakan bukan hal yang baru bagi masyarakat, OS buatan raksasa internet saat ini yaitu GOOGLE peran nya sangat penting dalam dunia teknologi saat ini. Mulai dari pelajar sampai orang pekerja pasti bisa menjalankan sistem operasi satu ini.
kali ini saya akan membuat suatu aplikasi yang dimana berguna untuk sistem absensi siswa.
mari kita mulai.


  • AndroidManifest


androidManifest
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.projek.rekkyar"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="KAMMI" android:roundIcon="@drawable/teamwork" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".AbsenActivity"></activity> <activity android:name=".RegisterActivity" /> <activity android:name=".LoginActivity" /> <activity android:name=".SplashActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.DETAIL" /> <category android:name="android intent.category.DETAIL" /> </intent-filter> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="MainActivity" /> </activity> </application> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.INTERNET" /> </manifest>


  • MAINACTIVITY
mainActivity

package com.projek.rekkyar;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Layout;
import android.view.AbsSavedState;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
public class MainActivity extends AppCompatActivity {
    private ImageView loginphoto;
    private ImageView iv;
    private Object ImageView;
    FirebaseAuth MFirebaseAuth;
    private FirebaseAuth.AuthStateListener mAuthStateListener;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView = (ImageView)findViewById(R.id.ivadmin);
        iv =(ImageView)findViewById(R.id.ivadmin);
        iv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(MainActivity.this, LoginActivity.class);
                startActivity(i);
            }
        });
        ImageView =(ImageView)findViewById(R.id.ivlogout);
        iv =(ImageView)findViewById(R.id.ivlogout);
        iv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FirebaseAuth.getInstance().signOut();
                Intent i = new Intent(MainActivity.this, LoginActivity.class);
                startActivity(i);
            }
        });
        ImageView =(ImageView)findViewById(R.id.ivdata);
        iv =(ImageView)findViewById(R.id.ivdata);
        iv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(MainActivity.this, AbsenActivity.class);
                startActivity(i);
            }
        });
    }
}

  • MAINXML


<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    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:background="@drawable/bgapps"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="32dp"
            android:layout_marginRight="20dp"
            android:layout_marginLeft="20dp">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="RECKY ARIANTO"
                android:textSize="25sp"
                android:textColor="#ffff"
                android:textStyle="bold"
                android:id="@+id/txtproject"/>
            <TextView
                android:text="161021450265"
                android:layout_below="@+id/txtproject"
                android:layout_marginTop="6dp"
                android:textSize="15sp"
                android:textColor="#52baff"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

            <ImageView
                android:id="@+id/login_photo"
                android:layout_width="62dp"
                android:layout_height="62dp"
                android:layout_alignParentRight="true"
                android:src="@drawable/teamwork" />
        </RelativeLayout>
        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:alignmentMode="alignMargins"
            android:columnOrderPreserved="false"
            android:rowCount="3"
            android:columnCount="2">
            <androidx.cardview.widget.CardView
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                app:cardElevation="10dp"
                app:cardCornerRadius="12dp"
                android:layout_margin="12dp">
                <LinearLayout
                    android:id="@+id/acadmin"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:orientation="vertical"
                    android:padding="16dp">
                    <ImageView
                        android:id="@+id/ivadmin"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/admin" />
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="12dp"
                        android:text="ADMIN"
                        android:textColor="#6f6f6f"
                        android:textSize="18sp" />
                </LinearLayout>
            </androidx.cardview.widget.CardView>
            <androidx.cardview.widget.CardView
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                app:cardElevation="10dp"
                app:cardCornerRadius="12dp"
                android:layout_margin="12dp">
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical"
                    android:padding="16dp"
                    android:gravity="center">
                    <ImageView
                        android:id="@+id/ivdata"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/contact" />
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textSize="18sp"
                        android:layout_marginTop="12dp"
                        android:textColor="#6f6f6f"
                        android:text="DATA"/>
                </LinearLayout>
            </androidx.cardview.widget.CardView>
            <androidx.cardview.widget.CardView
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                app:cardElevation="10dp"
                app:cardCornerRadius="12dp"
                android:layout_margin="12dp">
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical"
                    android:padding="16dp"
                    android:gravity="center">
                    <ImageView
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/bookmark"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textSize="18sp"
                        android:layout_marginTop="12dp"
                        android:textColor="#6f6f6f"
                        android:text="ADMIN"/>
                </LinearLayout>
            </androidx.cardview.widget.CardView>
            <androidx.cardview.widget.CardView
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                app:cardElevation="10dp"
                app:cardCornerRadius="12dp"
                android:layout_margin="12dp">
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical"
                    android:padding="16dp"
                    android:gravity="center">
                    <ImageView
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/bookmark"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textSize="18sp"
                        android:layout_marginTop="12dp"
                        android:textColor="#6f6f6f"
                        android:text="ADMIN"/>
                </LinearLayout>
            </androidx.cardview.widget.CardView>
            <androidx.cardview.widget.CardView
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                app:cardElevation="10dp"
                app:cardCornerRadius="12dp"
                android:layout_margin="12dp">
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical"
                    android:padding="16dp"
                    android:gravity="center">
                    <ImageView
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/bookmark"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textSize="18sp"
                        android:layout_marginTop="12dp"
                        android:textColor="#6f6f6f"
                        android:text="ADMIN"/>
                </LinearLayout>
            </androidx.cardview.widget.CardView>
            <androidx.cardview.widget.CardView
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                app:cardElevation="10dp"
                app:cardCornerRadius="12dp"
                android:layout_margin="12dp">
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical"
                    android:padding="16dp"
                    android:gravity="center">
                    <ImageView
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/bookmark"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textSize="18sp"
                        android:layout_marginTop="12dp"
                        android:textColor="#6f6f6f"
                        android:text="ADMIN"/>
                </LinearLayout>
            </androidx.cardview.widget.CardView>
            <androidx.cardview.widget.CardView
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                app:cardElevation="10dp"
                app:cardCornerRadius="12dp"
                android:layout_margin="12dp">
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical"
                    android:padding="16dp"
                    android:gravity="center">
                    <ImageView
                        android:id="@+id/ivlogout"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/bug" />
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textSize="18sp"
                        android:layout_marginTop="12dp"
                        android:textColor="#6f6f6f"
                        android:text="LOGOUT"/>
                </LinearLayout>
            </androidx.cardview.widget.CardView>


        </GridLayout>
    </LinearLayout>
</ScrollView>


  • LOGIN



 package com.projek.rekkyar;
import androidx.annotation.NonNull;
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 android.widget.ImageView;
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;
import com.google.firebase.auth.FirebaseUser;
        public class LoginActivity extends AppCompatActivity {
            private EditText usermail, userpass;
            private Button btnlogin;
            private ProgressBar loadingbar;
            private FirebaseAuth mAuth;
            private Intent MainActivity;
            private ImageView loginPhoto;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_login);
                usermail = findViewById(R.id.editMail);
                userpass = findViewById(R.id.editPass);
                btnlogin = findViewById(R.id.btnlogin);
                loadingbar = findViewById(R.id.loadingbar);
                mAuth = FirebaseAuth.getInstance();
                MainActivity = new Intent(this, com.projek.rekkyar.MainActivity.class);
                loginPhoto = findViewById(R.id.login_photo);
                loginPhoto.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Intent registerActivity = new Intent(getApplicationContext(),RegisterActivity.class);
                        startActivity(registerActivity);
                        finish();

                    }
                });
                loadingbar.setVisibility(View.INVISIBLE);
                btnlogin.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        loadingbar.setVisibility(View.VISIBLE);
                        btnlogin.setVisibility(View.INVISIBLE);
                        final String mail = usermail.getText().toString();
                        final String password = userpass.getText().toString();
                        if (mail.isEmpty() || password.isEmpty()) {
                            showMessage("Please Verify All Field");
                            btnlogin.setVisibility(View.VISIBLE);
                            loadingbar.setVisibility(View.INVISIBLE);
                        }
                        else
                        {
                            signIn(mail,password);
                        }



                    }
                });

            }
            private void signIn(String mail, String password) {

                mAuth.signInWithEmailAndPassword(mail,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {

                        if (task.isSuccessful()) {
                            loadingbar.setVisibility(View.INVISIBLE);
                            btnlogin.setVisibility(View.VISIBLE);
                            updateUI();
                        }
                        else {
                            showMessage(task.getException().getMessage());
                            btnlogin.setVisibility(View.VISIBLE);
                            loadingbar.setVisibility(View.INVISIBLE);
                        }

                    }
                });


            }
            private void updateUI() {
                Toast.makeText(LoginActivity.this,"Berhasil Masuk",Toast.LENGTH_LONG).show();
                startActivity(MainActivity);
                finish();
            }
            private void showMessage(String text) {
                Toast.makeText(getApplicationContext(),text,Toast.LENGTH_LONG).show();
            }

            @Override
            protected void onStart() {
                super.onStart();
                FirebaseUser user = mAuth.getCurrentUser();
                if(user != null) {
                    //user is already connected  so we need to redirect him to home page
                    updateUI();
                }


            }
        }

  • LOGINXML 


<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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="@drawable/bgapps"
    tools:context=".LoginActivity">

    <EditText
        android:id="@+id/editMail"
        android:layout_width="273dp"
        android:layout_height="49dp"
        android:background="@drawable/edit_text_style"
        android:ems="10"
        android:hint="Email"
        android:inputType="textEmailAddress"
        android:textColorHint="#fafafa"
        app:layout_constraintBottom_toTopOf="@+id/guideline"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />
    <EditText
        android:id="@+id/editPass"
        android:layout_width="273dp"
        android:layout_height="49dp"
        android:layout_marginTop="20dp"
        android:background="@drawable/edit_text_style"
        android:ems="10"
        android:hint="Password"
        android:inputType="textPassword"
        android:textColorHint="#fafafa"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editMail" />
    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_end="366dp" />
    <Button
        android:id="@+id/btnlogin"
        android:layout_width="130dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="80dp"
        android:text="Login"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        android:background="@drawable/edit_text_style"
        android:textColor="#fafafa"/>
    <ImageView
        android:id="@+id/login_photo"
        android:layout_width="108dp"
        android:layout_height="133dp"
        android:layout_marginTop="120dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/admin" />
    <ProgressBar
        android:id="@+id/loadingbar"
        style="?android:attr/progressBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="@+id/btnlogin"
        app:layout_constraintEnd_toEndOf="@+id/btnlogin"
        app:layout_constraintStart_toStartOf="@+id/btnlogin"
        app:layout_constraintTop_toTopOf="@+id/btnlogin" />
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Belum punya Akun? Klik Avatar di atas."
        app:layout_constraintBottom_toTopOf="@+id/loadingbar"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.497"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editPass" />
</androidx.constraintlayout.widget.ConstraintLayout>


  • REGISTERJAVA 


package com.projek.rekkyar;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
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 android.os.Bundle;
//firebase
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 RegisterActivity extends AppCompatActivity {
    EditText usermail, userpass;
    Button btnSignUp;
    TextView tvSignIn;
    FirebaseAuth mFirebaseAuth;
    ProgressBar loadbar2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        mFirebaseAuth = FirebaseAuth.getInstance();
        usermail = findViewById(R.id.editText);
        userpass = findViewById(R.id.editText2);
        btnSignUp = findViewById(R.id.button2);
        tvSignIn = findViewById(R.id.textView);
        loadbar2 = findViewById(R.id.loadbar2);
        btnSignUp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String email = usermail.getText().toString();
                String pwd = userpass.getText().toString();
                loadbar2.setVisibility(View.VISIBLE);
                btnSignUp.setVisibility(View.INVISIBLE);
                if (email.isEmpty()){
                    usermail.setError("Please enter email id");
                    usermail.requestFocus();
                }
                else if(pwd.isEmpty()){
                    userpass.setError("Please enter your password");
                    userpass.requestFocus();
                }
                else  if(email.isEmpty() && pwd.isEmpty()){
                    Toast.makeText(RegisterActivity.this,"Fields Are Empty!",Toast.LENGTH_SHORT).show();
                }
                else  if(!(email.isEmpty() && pwd.isEmpty())){
                    mFirebaseAuth.createUserWithEmailAndPassword(email, pwd).addOnCompleteListener(RegisterActivity.this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if(!task.isSuccessful()){
                                Toast.makeText(RegisterActivity.this,"SignUp Unsuccessful, Please Try Again",Toast.LENGTH_SHORT).show();
                            }
                            else {
                                startActivity(new Intent(RegisterActivity.this,MainActivity.class));
                            }
                        }
                    });
                }
                else{
                    Toast.makeText(RegisterActivity.this,"Error Occurred!",Toast.LENGTH_SHORT).show();
                }
            }
        });
        tvSignIn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(RegisterActivity.this,LoginActivity.class);
                startActivity(i);
            }
        });
    }
}


  • REGISTERXML 


<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".RegisterActivity">
    <EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="313dp"
        android:layout_marginEnd="85dp"
        android:layout_marginRight="85dp"
        android:layout_marginStart="84dp"
        android:layout_marginLeft="84dp"
        android:layout_marginTop="152dp"
        android:ems="10"
        android:hint="Email"
        android:inputType="textEmailAddress"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="85dp"
        android:layout_marginStart="85dp"
        android:layout_marginTop="8dp"
        android:ems="10"
        android:hint="Password"
        android:inputType="textPassword"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editText"
        app:layout_constraintVertical_bias="0.052" />
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="136dp"
        android:layout_marginEnd="163dp"
        android:layout_marginStart="163dp"
        android:text="Sudah ada akun? Sign in disini"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="Sign Up"
        android:textColor="#fff"
        android:background="@drawable/edit_text_style"
        app:layout_constraintBottom_toTopOf="@+id/textView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editText2" />
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="145dp"
        android:layout_height="136dp"
        android:layout_marginTop="104dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/teamwork" />
    <ProgressBar
        android:id="@+id/loadbar2"
        style="?android:attr/progressBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="@+id/button2"
        app:layout_constraintEnd_toEndOf="@+id/button2"
        app:layout_constraintStart_toStartOf="@+id/button2"
        app:layout_constraintTop_toTopOf="@+id/button2"
        app:layout_constraintVertical_bias="0.0" />
</androidx.constraintlayout.widget.ConstraintLayout>


  • SPLASHJAVA 



package com.projek.rekkyar;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.TextView;
public class SplashActivity extends AppCompatActivity {
    private TextView tv;
    private ImageView iv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        tv = (TextView) findViewById(R.id.tv);
        iv = (ImageView) findViewById(R.id.iv);
        Animation myanim = AnimationUtils.loadAnimation(this,R.anim.mytransisi);
        tv.startAnimation(myanim);
        iv.startAnimation(myanim);
        final Intent i = new Intent(this,MainActivity.class);
        Thread timer =new Thread() {
            public void run () {
                try{
                    sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                finally {
                    startActivity(i);
                    finish();
                }
            }
        };
        timer.start();
    }
}

  • SPLASHXML 



<?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:id="@+id/activity_splash"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimary"
    tools:context=".SplashActivity">
    <LinearLayout
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <ImageView
            android:id="@+id/iv"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:layout_gravity="center"
            android:src="@drawable/teamwork" />
        <TextView
            android:id="@+id/tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Rekky Project"
            android:textColor="@color/putih"
            android:textSize="25sp"
            android:textStyle="bold" />
    </LinearLayout>
</RelativeLayout>

CONTOH VIDEO

UAS MOBILE PROGRAMMING

Sunday, October 6, 2019
0 Comments

APLIKASI PENCATAT KEUANGAN HARIAN


Pada kali ini saya akan membagikan tentang aplikasi pencatat keuangan yang saya buat, yaitu "DOMPETQU" aplikasi ini berbasis di android KITKAT keatas. jika di intsall di bawah minimum spek android tidak akan bisa.
oke langsung saja kita lihat aplikasi nya.



  • SPLASH SCREEN

splash
yang pertama adalah tampilan awal saat kita membuka aplikasi seperti gambar di atas. tampilan akan muncul selama 4 detik. lalu akan pindah otomatis ke halaman utama.


  • HALAMAN UTAMA


tampilan awal

Pada Tampilan awal kita akan menemukan 4 nama dan 4 kolom isi lalu di tambah dengan 4 tombol yang berfungsi SIMPAN,LIHAT,UBAH dan HAPUS.


jika kita mengisi kolom yang tersedia dan menekan tombol SIMPAN makan akan berhasil dan keluar notifokasi "berhasil KAKA"

lalu jika kita ingin melihat hasil, maka akan keluar seperti.
tampil data

namun jika kita ingin merubah data nya. isi kan "ID" yang tertera di hasil lalu pilih yang ingin di ubah dan tekan lagi tombol UBAH. maka akan berubah seperti ini.

ubah data
Ubah data berhasil. lanjut untuk menghapus data. Cara nya sama yaitu dengan mengisi kan "ID" yang ingin di hapus, lalu tekan tombol hapus makan akan jadi seperti ini.
hapus data

Aplikasi yang saya buat ini menggunakan SQLITE android yang dimana memakai CRUD sebagai navigasi nya.



desain mainactivity 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"    tools:context=".MainActivity"    android:background="@color/colorPrimary">
    <LinearLayout        android:layout_width="match_parent"        android:layout_height="match_parent"        android:gravity="center"        android:orientation="vertical">
        <TextView            android:id="@+id/textView"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="JENIS" />
        <EditText            android:id="@+id/editText"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:ems="10"            android:inputType="textPersonName"            android:text="TAMBAH/KURANG" />
        <TextView            android:id="@+id/textView2"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="NOMINAL" />
        <EditText            android:id="@+id/editText2"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:ems="10"            android:inputType="number"            android:text="" />
        <TextView            android:id="@+id/textView3"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="DESKRIPSI" />
        <EditText            android:id="@+id/editText3"            android:layout_width="match_parent"            android:layout_height="200dp"            android:ems="10"            android:inputType="textPersonName" />
        <TextView            android:id="@+id/textView4"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="ID" />
        <EditText            android:id="@+id/editText4"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:ems="10"            android:inputType="textPersonName" />
        <Button            android:id="@+id/button1"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="SIMPAN" />
        <Button            android:id="@+id/button2"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="LIHAT HASIL" />
        <Button            android:id="@+id/button3"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="UBAH" />
        <Button            android:id="@+id/button4"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="HAPUS" />    </LinearLayout>


</RelativeLayout>

  • Source Code untuk mainActivity.java

package com.e.dompetnya;
import androidx.appcompat.app.AlertDialog;import androidx.appcompat.app.AppCompatActivity;
import android.database.Cursor;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
    DataBaseHelper myDb;    EditText editJenis,editNominal,editDeskripsi,editId;    Button btnSimpan;    Button btnList;    Button btnUbah;    Button btnHapus;
    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        myDb = new DataBaseHelper(this);
        editJenis = (EditText) findViewById(R.id.editText);        editNominal = (EditText) findViewById(R.id.editText2);        editDeskripsi = (EditText) findViewById(R.id.editText3);        editId = (EditText) findViewById(R.id.editText4);        btnSimpan = (Button) findViewById(R.id.button1);        btnList = (Button) findViewById(R.id.button2);        btnUbah = (Button) findViewById(R.id.button3);        btnHapus = (Button) findViewById(R.id.button4);        AddBtnSimpan();        viewBtnList();        UpdateData();        DeleteData();    }
    public void DeleteData() {
        btnHapus.setOnClickListener(
                new View.OnClickListener() {
                    @Override                    public void onClick(View v) {
                        Integer deleteRows = myDb.deleteData(editId.getText() .toString());                        if (deleteRows > 0)
                            Toast.makeText(MainActivity.this,"Data di Hapus",Toast.LENGTH_LONG).show();                        else                            Toast.makeText(MainActivity.this,"Data gagal Hapus",Toast.LENGTH_LONG).show();
                    }
                }
        );    }

    public void AddBtnSimpan() {
        btnSimpan.setOnClickListener(
                new View.OnClickListener() {
                    @Override                    public void onClick(View v) {
                        boolean isInserted= myDb.insertData(editJenis.getText().toString(),                                editNominal.getText().toString(),                                editDeskripsi.getText().toString());                        if (isInserted =true)
                            Toast.makeText(MainActivity.this,"Berhasil KAKA", Toast.LENGTH_LONG).show();                        else                            Toast.makeText(MainActivity.this,"Gagal KAKA", Toast.LENGTH_LONG).show();
                    }
                }
        );    }
    public void UpdateData() {
        btnUbah.setOnClickListener(
                new View.OnClickListener() {
                    @Override                    public void onClick(View v) {
                        boolean isUpdate = myDb.updateData(editId.getText() .toString() ,editJenis.getText() .toString() ,editNominal.getText() .toString() ,editDeskripsi.getText() .toString());                        if (isUpdate == true )
                            Toast.makeText(MainActivity.this,"DIupdate KAKA", Toast.LENGTH_LONG).show();                        else                            Toast.makeText(MainActivity.this,"Gagal KAKA", Toast.LENGTH_LONG).show();                    }
                }
        );    }

    public void viewBtnList() {
        btnList.setOnClickListener(
                new View.OnClickListener() {
                    @Override                    public void onClick(View v) {
                       Cursor res = myDb.getAllData();                       if (res.getCount() == 0) {
                           //show message                           showMessage("eror guys","Nothing found");                           return;                       }

                       StringBuffer buffer = new StringBuffer();                       while (res.moveToNext()) {
                           buffer.append("Id :"+ res.getString(0)+"\n");                           buffer.append("JENIS :"+ res.getString(1)+"\n");                           buffer.append("NOMINAL :"+ res.getString(2)+"\n");                           buffer.append("DESKRIPSI :"+ res.getString(3)+"\n\n");                       }

                       //show all data                        showMessage("Data",buffer.toString());                    }
                }
        );    }

    public void showMessage(String title,String Message) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);        builder.setCancelable(true);        builder.setTitle(title);        builder.setMessage(Message);        builder.show();    }

}

  • Source Code Database nya(SQLite)

package com.e.dompetnya;
import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
public class DataBaseHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME = "transaksi.db";    public static final String TABLE_NAME = "transaksi_table";    public static final String BARIS_1 = "Id";    public static final String BARIS_2 = "JENIS";    public static final String BARIS_3 = "NOMINAL";    public static final String BARIS_4 = "DESKRIPSI";
    public DataBaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);    }

    @Override    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table " + TABLE_NAME +" (ID INTEGER PRIMARY KEY AUTOINCREMENT,JENIS TEXT,NOMINAL INTEGER,DESKRIPSI TEXT)");    }

    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
       db.execSQL("DROP TABLE IF EXISTS " +TABLE_NAME);       onCreate(db);    }

    public boolean insertData(String JENIS,String NOMINAL,String DESKRIPSI) {
        SQLiteDatabase db = this.getWritableDatabase();        ContentValues contentValues = new ContentValues();        contentValues.put(BARIS_2 ,JENIS);        contentValues.put(BARIS_3 ,NOMINAL);        contentValues.put(BARIS_4 ,DESKRIPSI);        long result = db.insert(TABLE_NAME,null ,contentValues);        if (result == -1)
            return false;        else            return true;    }

    public Cursor getAllData()  {
        SQLiteDatabase db = this.getWritableDatabase();        Cursor res = db.rawQuery("select * from "+TABLE_NAME,null);        return res;    }

    public boolean updateData(String id,String JENIS,String NOMINAL,String DESKRIPSI) {
        SQLiteDatabase db = this.getWritableDatabase();        ContentValues contentValues = new ContentValues();        contentValues.put(BARIS_1 ,id);        contentValues.put(BARIS_2 ,JENIS);        contentValues.put(BARIS_3 ,NOMINAL);        contentValues.put(BARIS_4 ,DESKRIPSI);        db.update(TABLE_NAME, contentValues, "Id = ?",new String[] { id });        return true;    }

    public Integer deleteData (String id) {
        SQLiteDatabase db = this.getWritableDatabase();        return db.delete(TABLE_NAME, "Id = ?",new String[] {id});    }
}


  • Source Code SplashScreen JAVA

package com.dompet;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;import android.os.Bundle;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.ImageView;import android.widget.TextView;
import org.w3c.dom.Text;
public class MainActivity extends AppCompatActivity {
    private TextView tv ;    private ImageView iv ;
    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv = (TextView) findViewById(R.id.tv);        iv = (ImageView) findViewById(R.id.iv);        Animation myanim = AnimationUtils.loadAnimation(this,R.anim.mytransisi);        tv.startAnimation(myanim);        iv.startAnimation(myanim);        final Intent i = new Intent(this,HomeActivity.class);        Thread timer =new Thread() {
            public void run() {
                try {
                    sleep(5000);                } catch (InterruptedException e) {
                    e.printStackTrace();                } finally {
                    startActivity(i);
                }
            }
        };        timer.start();    }
}

  • Source Code SplashScreen XML

TUGAS UTS MOBILE PROGAMMING

Monday, September 23, 2019
0 Comments

- Copyright © Rekkyar - Blogger Templates - Powered by Blogger - Designed by Johanes Djogan -