Aplikasi Sederhana Dengan
Menu Login dan ListView
Menggunakan Android Studio
berikut ini saya akan memberikan contoh pembuatan aplikasi menggunakan android studio, dimana di dalamnya terdapat menu Login dan ListView.
tanpa perlu berlama-lama, berikut ini adalah tutorialnya:
pertama-tama, buat lah project baru dengan pilih create new>empety activity>berinama project>finish.
setelah selesai lalu kita tambahkan beberapa empety activity lagi.
di sini saya menambahkan 4 empety activity, dengan cara clik app>java>clik kanan pada com.e.uas(tergantung nama project)>new>activity>empety activity. lakukan sebanyak 4 kali atau sesuai kebutuhan
setelah selesai kemudian buat 1 java class lagi untuk Adapter.
caranya clik kanan pada com.e.uas>new>java class.
setelah selesai kita masukan code nya, mulai dari login:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/colorPrimary"
tools:ignore="ExtraText">
<Button
android:text="LOGIN"
android:textColor="#FFF"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:background="?android:attr/selectableItemBackground"
android:id="@+id/button2"
android:onClick="loginMasuk"
android:textStyle="normal|bold"
tools:ignore="HardcodedText,ObsoleteLayoutParam"/>
</LinearLayout>
<EditText
android:id="@+id/edittext_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:inputType="textCapWords"
style="@style/AppTheme"
android:layout_centerVertical="true"
android:textSize="30sp"
android:fontFamily="monospace"
tools:ignore="Autofill,HardcodedText,TextFields" />
<EditText
android:id="@+id/edittext_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Username"
android:inputType="textCapWords"
android:layout_marginBottom="16dp"
android:textSize="30sp"
android:layout_above="@+id/edittext_password"
tools:ignore="Autofill,HardcodedText" />
<TextView
android:text="User Login"
android:textColor="#fff"
android:background="#0091EA"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView2"
android:textStyle="normal|bold"
android:textSize="36sp"
android:textAlignment="center"
android:layout_alignParentTop="true"
android:layout_marginTop="42dp"
tools:ignore="HardcodedText" />
</RelativeLayout>
lalu akan tampil seperti ini
kemudian masukan code berikut pada class nya
package com.e.uas;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
EditText editText1 ,editText2; //Deklarasi object dari class EdiText
String text1 ,text2; //Deklarasi object string
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().setTitle("User Login");
getSupportActionBar().setSubtitle("Mr.Bee.com");
}
public void loginMasuk(View view) {
//Method onClick pada Button
editText1 = (EditText) findViewById(R.id.edittext_username);
editText2 = (EditText) findViewById(R.id.edittext_password);
text1 = editText1.getText().toString();
text2 = editText2.getText().toString();
//Kondisi jika username dan password benar maka akan menampilkan pesan text toast
//Login sukses dan masuk ke activity 2
if ((text1.contains("Reno Wahyudin")) && ((text2.contains("123456")))) {
Toast.makeText(this, "Login Sukses", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this, Menu.class);
startActivity(intent);
} else if ((text1.matches("") || text2.matches("")))
/*
Atau jika input text 1 dan text 2 kosong
*/ {
//Maka akan menampilkan pesan text toast
Toast.makeText(this, "Isikan Username dan Password", Toast.LENGTH_SHORT).show();
} else {
//jika kedua kondisi diatas tidak memenuhi
Toast.makeText(this, "Login Gagal /Username Password Salah", Toast.LENGTH_SHORT).show();
}
}
}
Setelah selesai lanjut pada menu untuk listview
berikut adalah codenya:
<?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=".Menu">
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
terlihat sama saja pada design karena bagian pentingnya ada pada class berikut.
package com.e.uas;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import java.util.ArrayList;
public class Menu extends AppCompatActivity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
listView = findViewById(R.id.list);
//data untuk di tampil
String[] values = new String[] { "Baju", "Jaket", "Celana",};
// buat list data
final ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < values.length; ++i) {
list.add(values[i]);
}
// masukin data ke adapter
final Adapter adapter = new Adapter(this,
android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter);
//set action listview
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//nentuin targer action
Intent intent;
if (position == 0) {
intent = new Intent(Menu.this, Baju.class);
} else if (position == 1) {
intent = new Intent(Menu.this, Jaket.class);
} else {
intent = new Intent(Menu.this, Celana.class);
}
startActivity(intent);
}
});
}
}
setelah selesai maka hasilnya akan seperti berikut
dengan Username"Reno Wahyudin", dan Password "123456" lalu clik Login dan akan langsung muncul di menu Listview
setelah selesai kita tinggal melanjutkan ke 3 activity lainnya, tapi sebelumnya silahkan masukan code berikut ke dalam class Adapter.
package com.e.uas;
import android.content.Context;
import android.widget.ArrayAdapter;
import java.util.HashMap;
import java.util.List;
public class Adapter extends ArrayAdapter<String> {
HashMap<String, Integer> mIdMap = new HashMap<String, Integer>();
public Adapter(Context context, int textViewResourceId,
List<String> objects) {
super(context, textViewResourceId, objects);
for (int i = 0; i < objects.size(); ++i) {
mIdMap.put(objects.get(i), i);
}
}
@Override
public long getItemId(int position) {
String item = getItem(position);
return mIdMap.get(item);
}
@Override
public boolean hasStableIds() {
return true;
}
}
jika sudah selesai maka tinggal lanjut ke activity selanjutnya.
dengan code sebagai berikut
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.android.justjava.MainActivity">
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="Masukan nama anda"
android:id="@+id/edt_name"
android:inputType="text"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Jenis Baju"
android:textSize="25dp"/>
<CheckBox
android:id="@+id/Kemeja_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kemeja"
android:paddingLeft="16dp"
android:textSize="15sp"/>
<CheckBox
android:id="@+id/Kaos_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kaos Oblong"
android:paddingLeft="16dp"
android:textSize="15sp"/>
<CheckBox
android:id="@+id/Batik_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Baju Batik"
android:paddingLeft="16dp"
android:textSize="15sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="jumlah"
android:textSize="25dp"
android:textAllCaps="true"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="48dp"
android:onClick="increment"
android:text="+"
android:layout_height="48dp" />
<TextView
android:textColor="#212121"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:paddingRight="8dp"
android:paddingLeft="8dp"
android:id="@+id/quantity_textview"
android:textSize="25dp"/>
<Button
android:layout_width="48dp"
android:onClick="decrement"
android:text="-"
android:layout_height="48dp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Harga"
android:textSize="30dp"
android:textAllCaps="true"
android:layout_marginBottom="16dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textColor="#212121"
android:id="@+id/price_textview"
android:textSize="25dp"/>
<Button
android:layout_width="wrap_content"
android:layout_marginBottom="16dp"
android:onClick="Submitorder"
android:layout_height="wrap_content"
android:text="Order"/>
</LinearLayout>
</ScrollView>
lalu akan tampil sebagai berikut
kemudian tinggal masukan code untuk classnya
package com.e.uas;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.text.NumberFormat;
public class Baju extends AppCompatActivity {
int quantity=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_baju);
}
public void increment(View view){//perintah tombol tambah
if(quantity==100){
Toast.makeText(this,"pesanan maximal 100",Toast.LENGTH_SHORT).show();
return;
}
quantity = quantity+1 ;
display(quantity);
}
public void decrement(View view){//perintah tombol tambah
if (quantity==1){
Toast.makeText(this,"pesanan minimal 1",Toast.LENGTH_SHORT).show();
return;
}
quantity = quantity -1;
display(quantity);
}
public void Submitorder(View view) {
EditText nameEditText=(EditText)findViewById(R.id.edt_name);
String name=nameEditText.getText().toString();
Log.v("MainActivity","Nama:"+name);
CheckBox KemejaChekBox= (CheckBox) findViewById(R.id.Kemeja_checkbox);
boolean Kemeja=KemejaChekBox.isChecked();//mengidentifikasi check
Log.v("MainActivity","has whippedcream:"+Kemeja);
CheckBox KaosChekBox= (CheckBox) findViewById(R.id.Kaos_checkbox);
boolean Kaos=KaosChekBox.isChecked();//mengidentifikasi check
Log.v("MainActivity","has whippedcream:"+Kaos);
CheckBox BatikChekBox= (CheckBox) findViewById(R.id.Batik_checkbox);
boolean Batik=BatikChekBox.isChecked();//mengidentifikasi check
Log.v("MainActivity","has whippedcream:"+Batik);
int price=calculateprice(Kemeja,Kaos,Batik);//memanggil method jumlah harga
String pricemessage=createOrderSummary(price,name,Kemeja,Kaos,Batik);
displayMessage(pricemessage);
}
private int calculateprice(boolean Kemeja,boolean Kaos, boolean Batik){//jumlah pesanan * harga
int harga=5000;
if(Kemeja){
harga=harga+120000;//harga tambahan toping
}
if (Kaos){
harga=harga+25000;
}
if (Batik){
harga=harga+220000;
}
return quantity * harga;
}
private String createOrderSummary(int price, String name, boolean addKemeja, boolean addKaos, boolean addBatik) {//hasil pemesanan
String pricemessage=" Nama ="+name;
pricemessage+="\n Kemeja? "+addKemeja;
pricemessage+="\n Kaos? "+addKaos;
pricemessage+="\n Batik? "+addBatik;
pricemessage+="\n quantity"+quantity;
pricemessage+="\n Total Rp"+price;
pricemessage+="\n Thankyou";
return pricemessage;
}
//method ini untuk mencetak hasil perintah yang di tampilkan dengan inisial quantity_textview di textview 0
private void displayMessage(String message) {
TextView priceTextView = (TextView) findViewById(R.id.price_textview);
priceTextView.setText(message);
}
private void display(int number) {
TextView quantityTextView = (TextView) findViewById(R.id.quantity_textview);
quantityTextView.setText("" + number);
}
private void displayPrice(int number) {
TextView priceTextView = (TextView) findViewById(R.id.price_textview);
priceTextView.setText(NumberFormat.getCurrencyInstance().format(number));
}
}
setelah selesai dan tidak ada eror, silahkan di coba di run kemudian Login>Baju(pada menu Lisview) makanakan tampil seperti di bawah.
untuk 2 activity lainnya silahkan lanjutkan seperti activity "Baju" di atas.
sekian tutorial dari saya
Terimakasih










Komentar
Posting Komentar