Sabtu, 06 April 2019

Aplikasi pemesanan makanan (UAS)

MOBILE PROGRAMMING (UAS)

Irin Yudhiana
161011400089

APLIKASI PEMESANAN MAKANAN

Deskripsi

Aplikasi ini dibuat untuk mempermudah pengguna nya untuk memesan makanan,aplikasi ini dibuat secara sederhana oleh aplikasi android studio.
Sebelum masuk ke Aplikasi nya , admin akan diminta untuk login terlebih dahulu. Di dalam aplikasi pemesanan makanan  tersebut akan diminta untuk input nama customer , makanan yang akan di pesan , dan setiap pemesanan makanan mendapatkan free 1 topping yaitu ( baso,sozzis, atau Telur ) . 
Setelah itu klik Pesan Sekarang , nanti otomatis akan muncul struk beserta harga yang harus dibayar oleh customer .

Desain Activity

Berikut adalah komponen komponen nya :
 - mainactivity.java code
 - activitymain.xml code

 -listview.java code
 -listvew.xml code
 - Tampilan aplikasi
-android.support.Design.28.0.0

MainActivity.java Log in


package com.unpam.irinyudhiana161011400089;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void confirm(View view){
        Intent intent=new Intent(MainActivity.this,listview.class);
 startActivity(intent);


    }
}

MainActivity XML Log in

<?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"
    android:background="@drawable/login"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".MainActivity"
    android:padding="10dp">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="PESAN MAKANAN"
        android:textSize="35dp"
        android:gravity="center"
        android:textStyle="bold"
        android:layout_marginBottom="90dp"
        android:textColor="#CC2929"/>

    <android.support.design.widget.TextInputLayout

         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="10dp"
        app:errorEnabled="true"
         >

         <EditText
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:hint="Username"
             android:inputType="textEmailAddress"
             android:layout_marginTop="10dp"
             android:textSize="20sp"/>


     </android.support.design.widget.TextInputLayout>
    <android.support.design.widget.TextInputLayout

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
      app:errorEnabled="true"
        app:passwordToggleEnabled="true"
        >

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Password"
            android:inputType="textPassword"
            android:layout_marginTop="10dp"
            android:textSize="20sp"/>


    </android.support.design.widget.TextInputLayout>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Log In"
        android:layout_marginTop="20sp"
        android:background="@drawable/button"
        android:onClick="confirm"/>

</LinearLayout>

ListVew.java

package com.unpam.irinyudhiana161011400089;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class listview extends AppCompatActivity {
    ListView lv;
    String [] Menu={"Favorite Menu","Recomended Menu","New Menu","Best Seller Menu"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_listview);

        lv=(ListView)findViewById(R.id.listvw);
        ArrayAdapter adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_single_choice, Menu);
        lv.setAdapter(adapter);

        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 Memilih "+ itemText, Toast.LENGTH_LONG).show();
                if(itemText.equals("Favorite Menu")){

                    Intent intent=new Intent(arg0.getContext(),Favmenu.class);
                    startActivityForResult(intent,0);




                }
            }
        });

    }

}

ListView.XML


<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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/login"
    tools:context=".listview">

    <ListView
        android:id="@+id/listvw"
        android:layout_width="395dp"
        android:layout_height="715dp"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="8dp" />
</android.support.constraint.ConstraintLayout>

MainActivity XML Pemesanan


<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:layout_width="fill_parent"

    android:layout_height="fill_parent"
    android:background="@drawable/login"

    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"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="vertical"

        android:padding="30dp"

        tools:context=".menu">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="FAVORITE MENU"
            android:gravity="center"
            android:textSize="40dp"
            android:textColor="#CC2929"
            android:textStyle="bold"/>

        <TextView

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nama"
             android:layout_marginTop="20sp"
            android:textSize="20dp"/>

        <EditText

            android:layout_width="match_parent"

            android:layout_height="match_parent"

            android:hint="Masukan nama anda ...."

            android:id="@+id/edt_name"

            android:inputType="text"/>

        <EditText

            android:layout_width="wrap_content"
android:id="@+id/pesann"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:text="Indomie Soto"
            android:layout_marginBottom="15dp"
            android:textColor="#CC2929"
            android:textStyle="bold"
            android:textSize="30dp"/>



        <TextView

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="Tambahkan Topping"

            android:textSize="25dp"/>

        <RadioButton

            android:id="@+id/WhippedCream_radiobutton"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="Sozzis"

            android:paddingLeft="16dp"

            android:textSize="15sp"/>

        <RadioButton

            android:id="@+id/Chocolate_checkbox"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="Telor"

            android:paddingLeft="16dp"

            android:textSize="15sp"/>

        <RadioButton

            android:id="@+id/baso"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="Baso"

            android:paddingLeft="16dp"

            android:textSize="15sp"/>



        <View

            android:layout_marginTop="10dp"

            android:layout_width="match_parent"

            android:layout_height="2dp"

            android:background="@color/colorAccent"/>







        <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:background="@drawable/button"
                android:textSize="30sp"
                android:text="+"
android:textColor="@color/txt"


                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:textSize="30sp"
                android:onClick="decrement"
                android:textColor="@color/txt"

                android:text="-"
                 android:background="@drawable/button"
                android:layout_height="48dp" />

        </LinearLayout>



        <View

            android:layout_marginTop="10dp"

            android:layout_width="match_parent"

            android:layout_height="2dp"

            android:background="@color/colorAccent"/>



        <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:background="@drawable/button"
            android:textColor="@color/txt"
 android:textSize="20sp"
            android:text="ORDER"/>





    </LinearLayout>

</ScrollView>

MainActivity.java Pemesanan


package com.unpam.irinyudhiana161011400089;


import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

import android.view.View;

import android.widget.CheckBox;

import android.widget.EditText;

import android.widget.RadioButton;

import android.widget.TextView;

import android.widget.Toast;



import java.text.NumberFormat;



import static android.R.string.no;

import static android.os.Build.VERSION_CODES.N;
import static com.unpam.irinyudhiana161011400089.R.id.pesann;


public class Favmenu extends AppCompatActivity {



    int quantity=0;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_favmenu);

    }





    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);





        EditText pesannEditText=(EditText)findViewById(R.id.pesann);

        String pesann=pesannEditText.getText().toString();

        Log.v("MainActivity","pesan:"+pesann);



        RadioButton whippedcreamChekBox= (RadioButton) findViewById(R.id.WhippedCream_radiobutton);

        boolean haswhippedcream=whippedcreamChekBox.isChecked();//mengidentifikasi check

        Log.v("MainActivity","has whippedcream:"+haswhippedcream);



        RadioButton chocolateChekBox= (RadioButton) findViewById(R.id.Chocolate_checkbox);

        boolean haschocolate=chocolateChekBox.isChecked();//mengidentifikasi check

        Log.v("MainActivity","has whippedcream:"+haschocolate);





        RadioButton Baso= (RadioButton) findViewById(R.id.baso);

        boolean hasbaso=Baso.isChecked();//mengidentifikasi check

        Log.v("MainActivity","has baso:"+hasbaso);



        int price=calculateprice(haswhippedcream,haschocolate,hasbaso);//memanggil method jumlah harga

        String pricemessage=createOrderSummary(price,name,pesann,haswhippedcream,haschocolate);





        displayMessage(pricemessage);



    }

    private int calculateprice(boolean addwhipedcream,boolean addchocolate,boolean addbaso){//jumlah pesanan * harga

        int harga=5000;



        if(addwhipedcream){

            harga=harga+1000;//harga tambahan toping

        }



        if (addchocolate){

            harga=harga+2000;

        }

        if (addbaso){

            harga=harga+3000;

        }



        return quantity * harga;

    }

    private String createOrderSummary(int price, String name, String pesann,  boolean addChocolate, boolean addWhippedCream) {//hasil pemesanan

        String pricemessage=" Nama = "+name;

        pricemessage+="\n Best Seller :" +pesann;

        pricemessage+="\n Jumlah Pemesanan =" +quantity;

        pricemessage+="\n Total = Rp " +price;

        pricemessage+="\n Terimakasih";

        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));

    }





}


Hasil akan tampil seperti gambar dibawah ini:



















Form Log in:



Form ListView:



Form Pemesanan dan Hasil output:


Sekian 
Terimakasih...