Senin, 23 September 2019

Deskripsi Project :
Aplikasi pemesanan makanan seperti kopi tersebut melakukan pemesanan secara online di android,terdapat form pemesanan kopi, akan membuat aplikasi pemesanan makanan dalam hal ini pemesanan kopi.

Aplikasi pemesanan kopi yang akan di buat sangat simpel. User diharuskan mengisi form :
  • Isi nama
  • Pilih tambahkan topping atau tidak
  • Tentukan jumlah pesanan
  • Ketika di klik tombol pesan sekarang akan ditampilkan berapa jumlah yang harus dibayar
Penjelasan :
  • EditText : digunakan untuk membuat layout isian masukan nama anda
  • TextView : digunakan untuk menampilkan teks = tambahkan topping, harga, dan jumlah
  • Button : digunakan untuk membuat tombol pesan sekarang 
  • View : digunakan untuk membuat pembatas antara harga dan jumlah
  • Checkbox : digunakan untuk menambahkan menu krim dan coklat
  • Layout yang digunakan yaitu : LinearLayout dan ScrollView

Pembuatan Layout


<?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"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="30dp"
        tools:context=".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="Tambahkan Topping"
            android:textSize="25dp"/>
        <CheckBox
            android:id="@+id/WhippedCream_checkbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Krim"
            android:paddingLeft="16dp"
            android:textSize="15sp"/>
        <CheckBox
            android:id="@+id/Chocolate_checkbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Coklat"
            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: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>

        <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:text="Pesan Sekarang"/>
    </LinearLayout>
</ScrollView>



Pengkodingan Java


package badoystudio.com.pemesananmakanan;

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.TextView;
import android.widget.Toast;

import java.text.NumberFormat;

import static android.R.string.no;
import static android.os.Build.VERSION_CODES.N;

/**
 * This app displays an order form to order coffee.
 */
public class MainActivity extends AppCompatActivity {

    int quantity=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


    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 whippedcreamChekBox= (CheckBox) findViewById(R.id.WhippedCream_checkbox);
        boolean haswhippedcream=whippedcreamChekBox.isChecked();//mengidentifikasi check
        Log.v("MainActivity","has whippedcream:"+haswhippedcream);

        CheckBox chocolateChekBox= (CheckBox) findViewById(R.id.Chocolate_checkbox);
        boolean haschocolate=chocolateChekBox.isChecked();//mengidentifikasi check
        Log.v("MainActivity","has whippedcream:"+haschocolate);

        int price=calculateprice(haswhippedcream,haschocolate);//memanggil method jumlah harga
        String pricemessage=createOrderSummary(price,name,haswhippedcream,haschocolate);


        displayMessage(pricemessage);

    }
    private int calculateprice(boolean addwhipedcream,boolean addchocolate){//jumlah pesanan * harga
        int harga=5000;

        if(addwhipedcream){
            harga=harga+1000;//harga tambahan toping
        }

        if (addchocolate){
            harga=harga+2000;
        }

        return quantity * harga;
    }
    private String createOrderSummary(int price, String name, boolean addChocolate, boolean addWhippedCream) {//hasil pemesanan
        String pricemessage=" Nama = "+name;
        pricemessage+="\n Tambahkan Coklat =" +addWhippedCream;
        pricemessage+="\n Tambahkan Krim =" +addChocolate;
        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));
    }

}






Penjelasan :
Dari kodingan java yang dimasukan diatas (coba perhatikan perbarisnya ) akan menemukan bahwa logika program aplikasi pemesanan makanan yang buat yaitu :
  • User bisa memesan kopi sampai jumlah 100
  • Harga kopi adalah Rp. 5000
  • Jika ada penambahan topping krim dikenakan biaya tambahan Rp. 1000
  • Jika ada penambahan topping coklat dikenakan biaya tambahan Rp. 2000