Minggu, 06 Oktober 2019

KUMPULAN APLIKASI DENGAN LIST VIEW

KUMPULAN APLIKASI DENGAN LIST VIEW


A. DESKRIPSI :

Aplikasi android ini memiliki beberapa program didalamnya antara lain, konversi mata uang dan keliling lingkaran. Pada tampilan awal akan dimintakan username dan password untuk login ke dalam aplikasi yang ada didalamnya. Pada halaman menu / list view ada option menu dipojok kanan atas yang terdapat didalamnya menu about, home, dan exit. Di setiap aplikasi juga ditambah option menu untuk mempermudah pengguna.


B. BUAT PROJECT BARU :

1. Membuat Aplikasi Konversi Mata Uang

Untuk membuat aplikasi ini kita buat projeck baru dengan :
Nama Projeck : konversimatauang
Phone : PIXEL 2 API 16
Activity : Empty Activity
Activity Name : MainActivity 
Jika workspace android studio sudah siap digunakan, kita masuk ke tab activity_main.xml lalu kita ubah desainnya hingga seperti ini :


Untuk membuat desain Xml seperti diatas, Berikut ini adalah source code xml nya :

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.konversimatauang.MainActivity">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="122dp"
        android:layout_height="116dp"
        android:layout_marginStart="141dp"
        android:layout_marginLeft="141dp"
        android:layout_marginTop="82dp"
        android:layout_marginEnd="142dp"
        android:layout_marginRight="142dp"
        android:layout_marginBottom="42dp"
        android:background="#0E59F1"
        app:layout_constraintBottom_toTopOf="@+id/linearLayout"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@mipmap/ic_launcher" />

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="56dp"
        android:layout_marginLeft="56dp"
        android:layout_marginTop="43dp"
        android:layout_marginEnd="57dp"
        android:layout_marginRight="57dp"
        android:layout_marginBottom="36dp"
        android:orientation="horizontal"
        android:padding="20dp"
        app:layout_constraintBottom_toTopOf="@+id/button"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imageView">

        <EditText
            android:id="@+id/editText"
            android:layout_width="120dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:hint="0 Rupiah"
            android:inputType="textPersonName"
            android:textSize="20sp" />

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:text="="
            android:textSize="20sp" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="Hasil Konversi"
            android:textSize="20sp" />
    </LinearLayout>

    <Button
        android:id="@+id/button"
        android:layout_width="270dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="161dp"
        android:layout_marginLeft="161dp"
        android:layout_marginTop="10dp"
        android:layout_marginEnd="162dp"
        android:layout_marginRight="162dp"
        android:layout_marginBottom="20dp"
        android:background="#F50000"
        android:onClick="toUSD"
        android:text="Rp > USD"
        android:textColor="#FFFDFD"
        android:textSize="20sp"
        app:layout_constraintBottom_toTopOf="@+id/button2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/linearLayout" />

    <Button
        android:id="@+id/button2"
        android:layout_width="270dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="161dp"
        android:layout_marginLeft="161dp"
        android:layout_marginTop="10dp"
        android:layout_marginEnd="162dp"
        android:layout_marginRight="162dp"
        android:layout_marginBottom="20dp"
        android:background="#B19502"
        android:onClick="toYEN"
        android:text="Rp > YEN"
        android:textColor="#FFFFFF"
        android:textSize="20sp"
        app:layout_constraintBottom_toTopOf="@+id/button3"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button" />

    <Button
        android:id="@+id/button3"
        android:layout_width="270dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="70dp"
        android:layout_marginLeft="70dp"
        android:layout_marginTop="10dp"
        android:layout_marginEnd="71dp"
        android:layout_marginRight="71dp"
        android:layout_marginBottom="184dp"
        android:background="#11A806"
        android:onClick="toEURO"
        android:text="Rp > EURO"
        android:textColor="#FFFCFC"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button2" />

    <Button
        android:id="@+id/button7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="65dp"
        android:layout_marginLeft="65dp"
        android:layout_marginTop="75dp"
        android:layout_marginEnd="258dp"
        android:layout_marginRight="258dp"
        android:layout_marginBottom="46dp"
        android:text="Logout"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button3" />

    <Button
        android:id="@+id/button8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="162dp"
        android:layout_marginLeft="162dp"
        android:layout_marginTop="12dp"
        android:layout_marginEnd="161dp"
        android:layout_marginRight="161dp"
        android:layout_marginBottom="109dp"
        android:text="Reset"
        android:textSize="20sp"
        android:textStyle="bold|italic"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button3" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="82dp"
        android:layout_marginLeft="82dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="82dp"
        android:layout_marginRight="82dp"
        android:layout_marginBottom="35dp"
        android:text="Ferdian Putra Dinanda - 161021450161"
        app:layout_constraintBottom_toTopOf="@+id/imageView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Setelah sudah selesai memasukkan source code xml diatas akan dihasilkan gambar pada Emulator seperti ini :



 Kemudian untuk membuat button dan editText dapat berfungsi kita masuk ke Tab MainActivity.java lalu masukan source code sebagai berikut :
package com.example.konversimatauang;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.text.NumberFormat;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {
    EditText editText;
    Button button, button2, button3, btnExit, btnReset;
    TextView textView2;
    double angka;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editText = (EditText) findViewById(R.id.editText);
        button = (Button) findViewById(R.id.button);
        button2 = (Button) findViewById(R.id.button2);
        button3 = (Button) findViewById(R.id.button3);
        textView2 = (TextView) findViewById(R.id.textView2);
        btnExit = (Button) findViewById(R.id.button7);
        btnExit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
        btnReset = (Button) findViewById(R.id.button8);
        btnReset.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                textView2.setText("");
                editText.setText("");
            }
        });
    }
    public boolean cek(){
        if (editText.getText().toString().isEmpty()){
            Toast.makeText(this, "Silahkan masukan jumlah uang", Toast.LENGTH_SHORT).show();
            return false;
        }
        return true;
    }
    public void toYEN(View v){
        if (!cek()){
            return;
        }
        try{
            angka = Double.parseDouble(editText.getText().toString());
        }catch(Exception ex){
            Toast.makeText(this, "Masukkan angka", Toast.LENGTH_SHORT).show();
        }
        double hasil = angka / 132;
        textView2.setText(NumberFormat.getCurrencyInstance(Locale.JAPAN).format(hasil));
        Toast.makeText(this, "1 Yen = Rp 131", Toast.LENGTH_SHORT).show();
    }
    public void toEURO(View v){
        if (!cek()){
            return;
        }
        try{
            angka = Double.parseDouble(editText.getText().toString());
        }catch(Exception e){
            Toast.makeText(this, "Masukkan angka", Toast.LENGTH_SHORT).show();
        }
        double hasil = angka / 17228;
        textView2.setText(NumberFormat.getCurrencyInstance(Locale.GERMANY).format(hasil));
        Toast.makeText(this, "1 Euro = Rp 15.450", Toast.LENGTH_SHORT).show();
    }
    public void toUSD(View v){
        if (!cek()){
            return;
        }
        try{
            angka = Double.parseDouble(editText.getText().toString());
        }catch(Exception e){
            Toast.makeText(this, "Masukkan angka", Toast.LENGTH_SHORT).show();
        }
        double hasil = angka / 14808;
        textView2.setText(NumberFormat.getCurrencyInstance(Locale.US).format(hasil));
        Toast.makeText(this, "1 U$D = Rp 14087", Toast.LENGTH_SHORT).show();
    }
}
Jika sudah memasukkan source code seperti diatas kita dapat menguji aplikasi konversi mata uang yang sudah kita buat. Hasilnya akan seperti berikut :





2. Membuat Aplikasi Keliling Lingkaran

Pada aplikasi ini kita dapat mengetahui keliling dari lingkaran dengan memasukkan jari-jari dari lingkaran tersebut.
Untuk membuat tampilan awalnya kita buat dengan source code sebagai berikut :
<?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=".KelilingLingkaran">

    <TextView        android:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentTop="true"        android:layout_marginStart="110dp"        android:layout_marginTop="31dp"        android:layout_marginEnd="110dp"        android:text="Keliling Lingkaran"        android:textAlignment="center"        android:textAppearance="?android:attr/textAppearanceLarge"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toTopOf="parent" />

    <EditText        android:id="@+id/ekeliling"        android:layout_width="211dp"        android:layout_height="42dp"        android:layout_alignBaseline="@+id/textView2"        android:layout_alignBottom="@+id/textView2"        android:layout_marginStart="50dp"        android:layout_marginLeft="50dp"        android:layout_marginTop="42dp"        android:layout_toRightOf="@+id/textView2"        android:ems="10"        android:textSize="16sp"        app:layout_constraintStart_toEndOf="@+id/textView4"        app:layout_constraintTop_toBottomOf="@+id/eluas">

        <requestFocus />
    </EditText>

    <TextView        android:id="@+id/textView2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/textView1"        android:layout_alignLeft="@+id/textView1"        android:layout_marginStart="16dp"        android:layout_marginLeft="16dp"        android:layout_marginTop="96dp"        android:text="Jari-jari"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toTopOf="parent" />

    <Button        android:id="@+id/btnhapus"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignBaseline="@+id/btnproses"        android:layout_alignBottom="@+id/btnproses"        android:layout_marginStart="100dp"        android:layout_marginLeft="100dp"        android:layout_marginTop="40dp"        android:layout_toRightOf="@+id/textView1"        android:onClick="myClickHandler"        android:text="Hapus"        app:layout_constraintStart_toEndOf="@+id/btnproses"        app:layout_constraintTop_toBottomOf="@+id/ejari" />

    <TextView        android:id="@+id/textView3"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignBaseline="@+id/eluas"        android:layout_alignLeft="@+id/textView2"        android:layout_alignBottom="@+id/eluas"        android:layout_marginStart="32dp"        android:layout_marginLeft="32dp"        android:layout_marginTop="168dp"        android:text="Luas"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/textView2" />

    <TextView        android:id="@+id/textView4"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignBaseline="@+id/ejari"        android:layout_alignRight="@+id/textView3"        android:layout_alignBottom="@+id/ejari"        android:layout_marginStart="24dp"        android:layout_marginLeft="24dp"        android:layout_marginTop="72dp"        android:text="Keliling"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/textView3" />

    <Button        android:id="@+id/btnproses"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/ekeliling"        android:layout_alignLeft="@+id/ekeliling"        android:layout_marginStart="80dp"        android:layout_marginLeft="80dp"        android:layout_marginTop="40dp"        android:onClick="myClickHandler"        android:text="Proses"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/ejari" />

    <EditText        android:id="@+id/eluas"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@+id/btnproses"        android:layout_centerVertical="true"        android:layout_marginStart="55dp"        android:layout_marginLeft="55dp"        android:layout_marginTop="54dp"        android:ems="10"        app:layout_constraintStart_toEndOf="@+id/textView3"        app:layout_constraintTop_toBottomOf="@+id/btnhapus" />

    <EditText        android:id="@+id/ejari"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/eluas"        android:layout_alignLeft="@+id/eluas"        android:layout_marginStart="50dp"        android:layout_marginLeft="50dp"        android:layout_marginTop="21dp"        android:ems="10"        app:layout_constraintStart_toEndOf="@+id/textView2"        app:layout_constraintTop_toBottomOf="@+id/textView1" />

</androidx.constraintlayout.widget.ConstraintLayout>

Sehingga tampilan dari aplikasi ini akan seperti dibawah :



Setelah itu kita masukkan source code untuk aplikasi ini.

package com.example.konversimatauang;

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

import androidx.appcompat.app.AppCompatActivity;

public class KelilingLingkaran extends AppCompatActivity {
    EditText eJari, eLuas, eKeliling;

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


    }
    public void myClickHandler(View v){
        eJari = (EditText) findViewById(R.id.ejari);
        eLuas = (EditText) findViewById(R.id.eluas);
        eKeliling = (EditText) findViewById(R.id.ekeliling);


        switch (v.getId()){
            case R.id.btnproses:
                int jari = Integer.parseInt(eJari.getText().toString());


                double luas = 3.14 * jari * jari ;
                double keliling = 2 * 3.14 ;

                eLuas.setText(String.valueOf(luas));
                eKeliling.setText(String.valueOf(keliling));

                break;
            case R.id.btnhapus:
                eJari.setText("");
                eLuas.setText("");
                eKeliling.setText("");

                break;
        }
    }
    @Override    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.optionmenu, menu);
        //getMenuInflater().inflate(R.menu.menu_main, menu);        return true;

    }
    public boolean onOptionsItemSelected(android.view.MenuItem item) {
        if (item.getItemId() == R.id.about) {
            startActivity(new Intent(this, about.class));
        } else if (item.getItemId() == R.id.home) {
            startActivity(new Intent(this, home.class));
        } else if (item.getItemId() == R.id.exit) {
            moveTaskToBack(true);
        }
        return true;

    }
}


Setelah selesai memasukkan source code diatas, bisa langsung di coba aplikasinya. berjalan atau tidak.

3. Membuat Aplikasi Login

Selanjutnya kita buat Aplikasi Login untuk dapat menggunakan Aplikasi Konversi Mata Uang yang sudah kita buat. Langkah pertama, Klik Kanan pada Package yang sama dengan Aplikasi Konversi Mata Uang lalu pilih New > Activity > Empty Activity. Beri nama Activity dengan "Login" lalu Next. Jika sudah akan muncul .java dan .xml baru. Selanjutnya kita desain terlebih dahulu tampilan login sesuai keinginan kita. Kalau yang saya buat tampilannya seperti berikut :




source code yang saya buat untuk mendapatkan tampilan seperti diatas sebagai berikut :
<?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=".Login">

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="643dp"
        android:text="LOGIN"
        android:textSize="30sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.527"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="111dp"
        android:layout_marginLeft="111dp"
        android:layout_marginTop="60dp"
        android:layout_marginEnd="88dp"
        android:layout_marginRight="88dp"
        android:layout_marginBottom="584dp"
        android:text="APLIKASI KONVERSI MATA UANG"
        android:textSize="16sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView3" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="102dp"
        android:layout_height="110dp"
        android:layout_marginStart="144dp"
        android:layout_marginLeft="144dp"
        android:layout_marginTop="25dp"
        android:layout_marginEnd="139dp"
        android:layout_marginRight="139dp"
        android:layout_marginBottom="10dp"
        app:layout_constraintBottom_toTopOf="@+id/editText2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView4"
        app:srcCompat="@mipmap/ic_launcher_round"
        tools:srcCompat="@mipmap/ic_launcher_round" />

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="49dp"
        android:layout_height="46dp"
        android:layout_marginStart="45dp"
        android:layout_marginLeft="45dp"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="260dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/editText3"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imageView4"
        app:srcCompat="@android:drawable/ic_secure" />

    <ImageView
        android:id="@+id/imageView4"
        android:layout_width="73dp"
        android:layout_height="68dp"
        android:layout_marginStart="40dp"
        android:layout_marginLeft="40dp"
        android:layout_marginTop="240dp"
        android:layout_marginEnd="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginBottom="30dp"
        app:layout_constraintBottom_toTopOf="@+id/imageView3"
        app:layout_constraintEnd_toStartOf="@+id/editText2"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.49"
        app:srcCompat="@android:drawable/btn_star_big_on" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="26dp"
        android:layout_marginLeft="26dp"
        android:layout_marginTop="54dp"
        android:layout_marginEnd="83dp"
        android:layout_marginRight="83dp"
        android:layout_marginBottom="42dp"
        android:ems="10"
        android:hint="username"
        android:inputType="textPersonName"
        app:layout_constraintBottom_toTopOf="@+id/editText3"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/imageView4"
        app:layout_constraintTop_toBottomOf="@+id/imageView2" />

    <EditText
        android:id="@+id/editText3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="40dp"
        android:layout_marginLeft="40dp"
        android:layout_marginTop="10dp"
        android:layout_marginEnd="80dp"
        android:layout_marginRight="80dp"
        android:layout_marginBottom="260dp"
        android:ems="10"
        android:hint="password"
        android:inputType="textPersonName"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/imageView3"
        app:layout_constraintTop_toBottomOf="@+id/editText2" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="120dp"
        android:layout_marginLeft="120dp"
        android:layout_marginTop="34dp"
        android:layout_marginEnd="203dp"
        android:layout_marginRight="203dp"
        android:layout_marginBottom="169dp"
        android:text="Sign in"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editText3" />

</androidx.constraintlayout.widget.ConstraintLayout>
Jika sudah mendesain tampilan dari login, kita langsung ke  Tab Login.java kemudian masukkan source code seperti berikut :
package com.example.konversimatauang;

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

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;


public class Login extends AppCompatActivity {
    EditText username, password;
    Button btnLogin;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        username = (EditText) findViewById(R.id.editText2);
        password = (EditText) findViewById(R.id.editText3);
        btnLogin = (Button) findViewById(R.id.button4);
        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String usernameKey = username.getText().toString();
                String passwordKey = password.getText().toString();

                if (usernameKey.equals("ferdian") && passwordKey.equals("dinanda")){
                    Toast.makeText(getApplicationContext(), "LOGIN SUKSES",
                            Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(Login.this, MainActivity.class);
                startActivity(intent);
            } else {
                AlertDialog.Builder builder = new AlertDialog.Builder(Login.this);
                builder.setMessage("username atau password salah")
                        .setNegativeButton("Retry", null).create().show();
            }
        }
        });
    }
}


4. Tampilan Home

Untuk membuat tampilan home yang terdiri dari beberapa aplikasi diatas. kita gunakan List View sebagai tempat dari aplikasi yang sudah kita buat.
masukkan soource code terlebih dahulu.

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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=".home" >

    <ListView        android:id="@+id/listView"        android:layout_width="match_parent"        android:layout_height="match_parent"/>

</LinearLayout>

Kemudian masukkan source code pada javanya :

package com.example.konversimatauang;

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;


public class home extends AppCompatActivity {

    ListView LV;
    String [] Menu = {"Konversi Mata Uang","Keliling Lingkaran"};
    Button button;

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        LV = (ListView) findViewById(R.id.listView);


        ArrayAdapter adapai = new ArrayAdapter(this,android.R.layout.simple_list_item_single_choice,Menu);
        LV.setAdapter(adapai);

        LV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override            public void onItemClick(AdapterView<?>arg0, View arg1, int itemKe, long arg3) {
                String itemText = (String) LV.getItemAtPosition(itemKe);
                Toast.makeText(getBaseContext(), "Anda Mengklik " + itemText, Toast.LENGTH_LONG).show();
                if(itemText.equalsIgnoreCase("Konversi Mata Uang")){
                    Intent I = new Intent(arg0.getContext(),MainActivity.class);
                    startActivityForResult(I,0);
                } else if(itemText.equalsIgnoreCase("Keliling Lingkaran")){
                    Intent I = new Intent(arg0.getContext(),KelilingLingkaran.class);
                    startActivityForResult(I,0);
                }
            }
        });

            }

    @Override    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.optionmenu, menu);
        //getMenuInflater().inflate(R.menu.menu_main, menu);        return true;

    }
    public boolean onOptionsItemSelected(android.view.MenuItem item) {
        if (item.getItemId() == R.id.about) {
            startActivity(new Intent(this, about.class));
        } else if (item.getItemId() == R.id.exit) {
            moveTaskToBack(true);
        }
        return true;

    }
    @Override    public void onBackPressed(){

    }

    }
Setelah selesai memasukkan source code diatas kita akan mendapatkan tampilan seperti ini :


Keterangan :
1. Pada login ini saya membuat username "ferdian" dan password "dinanda" untuk dapat masuk ke dalam Aplikasi Konversi Mata Uang.
2. Agar kedua Activity dapat terhubung, perhatikan source code pada  Tab Login.java
      if (usernameKey.equals("ferdian") && passwordKey.equals("dinanda")){
                    Toast.makeText(getApplicationContext(), "LOGIN SUKSES",
                            Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(Login.this, MainActivity.class);
                startActivity(intent);
source code diatas berfungsi untuk menghubungkan Login dengan Konversi Mata Uang. 

Jika sudah memasukkan source code seperti diatas kita dapat menguji pada Emulator yang ada.
Hasil seperti ini :


Jika kita Klik SIGN IN, maka akan langsung masuk ke Aplikasi Konversi Mata Uang dengan tampilan seperti ini :



Demikian pembuatan KumpulanAplikasi dengan Login. Semoga ilmu diatas dapat bermanfaat. Silahkan dicoba untuk desain dan codingan yang sudah saya buat, apabila ada kesulitan tulis saja dikolom komentar. Terima Kasih, Sekian.