Anda di halaman 1dari 32

LAPORAN TUGAS PRAKTIKUM 6

Disusun oleh:
Emiliyana Varida Sholehah
A1316028

TEKNIK INFORMATIKA
POLITEKNIK NEGERI TANAH LAUT
2018
1. Keyboard Sample
Deskripsi program
Menyentuh bidang teks EditText yang bisa diedit akan menempatkan kursor pada
bidang teks dan otomatis menampilkan keyboard di layar. Anda akan mengubah
atribut bidang entri teks sehingga keyboard akan menyarankan pembetulan ejaan
selagi Anda mengetik, dan otomatis memulai setiap kalimat baru dengan huruf
kapital. Misalnya:
 android:inputType="textCapSentences": Menyetel keyboard untuk menjadikan
huruf besar di awal kalimat.
 android:inputType="textAutoCorrect":Menyetel keyboard untuk menampilkan
koreksi ejaan otomatis selagi Anda memasukkan karakter.
 android:inputType="textMultiLine":Mengaktifkan kunci Return pada
keyboard untuk mengakhiri baris dan membuat baris kosong baru tanpa
menutup keyboard.
 android:inputType="textPassword”:Menyetel karakter yang dimasukkan
pengguna agar menjadi titik-titik untuk menyembunyikan sandi yang
dimasukkan.
Coding activity_main.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="com.example.emiliyana.keyboardsample.MainActivity"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">

<Button
android:id="@+id/button_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:onClick="showText"
android:text="@string/show" />

<EditText
android:id="@+id/editText_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@id/button_main"
android:inputType="textEmailAddress"
android:hint="@string/enter" />

</RelativeLayout>

Coding dimens.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="activity_horizontal_margin">16dp</dimen>
</resources>

Coding strings.xml
<resources>
<string name="app_name">Keyboard Sample</string>
<string name="show">Show</string>
<string name="enter">Enter An Email Address</string>
</resources>

Coding MainActivity.java
package com.example.emiliyana.keyboardsample;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void showText(View view) {
// Associate editText with the editText_main EditText
element.
EditText editText = (EditText)
findViewById(R.id.editText_main);
if (editText != null) {
// Assign showString to the text that was entered.
String showString = editText.getText().toString();
// Make the Toast message with showString.
Toast.makeText(this, showString,
Toast.LENGTH_SHORT).show();
}
}
}

Gambar Aplikasi
Kesimpulan
Pada gambar diatas merupakan aplikasi dimana terdapat interaksi secara
langsung yang diberikan oleh aplikasi dengan cara mengeluarkan keyboard secara
otomatis ketika kita menyentuh tulisan Enter An Email Address dan pesan apa yang
kita ketik dapat keluar secara otomatis dengan menekan button show. Dimana kita
dapat membaca ulang pesan kita setelah mengetik.

2. Phone Number Spinner


Deskripsi program
Setiap bidang teks mengharapkan tipe masukan teks tertentu, seperti alamat email,
nomor telepon, sandi, atau hanya teks biasa. Penting untuk menetapkan tipe masukan
untuk setiap bidang teks di aplikasi Anda sehingga sistem akan menampilkan metode
masukan virtual yang sesuai, seperti:
 Keyboard di layar standar untuk teks biasa
 Keyboard untuk alamat email yang menyertakan simbol "@" di lokasi penting
 Keypad ponsel untuk nomor telepon

Kemudian kita juga akan menambahkan kontrol masukan. Kontrol masukan adalah
komponen interaktif dalam antarmuka pengguna aplikasi Anda. Android menyediakan
aneka ragam kontrol yang bisa Anda gunakan dalam UI, seperti tombol, bilah
pencarian, kotak centang, tombol zoom, tombol toggle, spinner, dan masih banyak
lagi. (Untuk informasi selengkapnya tentang kontrol masukan, lihat Kontrol
Masukan.) Spinner menyediakan cara cepat untuk memilih salah satu dari serangkaian
nilai. Menyentuh spinner akan menampilkan daftar tarik-turun dengan semua nilai
yang tersedia, yang bisa dipilih oleh pengguna. Jika hanya menyediakan dua atau tiga
pilihan, Anda mungkin ingin menggunakan tombol radio untuk pilihan jika memiliki
ruang di layout untuk tombol-tombol itu. akan tetapi, jika ada lebih dari tiga pilihan,
spinner bekerja sangat baik, menggulir seperlunya untuk menampilkan item, dan
hanya membutuhkan sedikit ruang di layout Anda. Untuk informasi selengkapnya
tentang spinner, lihat Spinner. Untuk memberikan cara memilih label untuk nomor
telepon (misalnya Rumah, Kantor, Seluler, dan Lainnya), Anda bisa menambahkan
spinner ke layout agar tampil tepat di sebelah bidang nomor telepon.
Coding activity_main.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="com.example.emiliyana.phonenumberspinner.MainActivity"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:orientation="horizontal">

<EditText
android:id="@+id/editText_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="phone"
android:hint="@string/hint_phonenumber" />

<Spinner
android:id="@+id/label_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Spinner>

<Button
android:id="@+id/button_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="showText"
android:text="@string/show_button" />
</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true">

<TextView
android:id="@+id/title_phonelabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/phonenumber_label"/>

<TextView
android:id="@+id/text_phonelabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nothing_entered"/>

</LinearLayout>

</RelativeLayout>

Coding strings.xml
<resources>
<string name="app_name">Phone Number Spinner</string>
<string name="phonenumber_label">"Phone Number: "</string>

<string-array name="labels_array">
<item>Home</item>
<item>Work</item>
<item>Mobile</item>
<item>Other</item>
</string-array>

<string name="spinner_work">Home</string>
<string name="hint_phonenumber">Enter phone number</string>
<string name="show_button">Show</string>
<string name="nothing_entered">Nothing entered.</string>
<string name="nothing_selected">"onNothingSelected: "</string>
</resources>

Coding dimens.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="activity_horizontal_margin">16dp</dimen>
</resources>

Coding MainActivity.java
package com.example.emiliyana.phonenumberspinner;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements


AdapterView.OnItemSelectedListener {
// Define TAG for logging.
private static final String TAG =
MainActivity.class.getSimpleName();
// Define mSpinnerLabel for the label (the spinner item that the
user chooses).
private String mSpinnerLabel = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Create the spinner.
Spinner spinner = (Spinner) findViewById(R.id.label_spinner);
if (spinner != null) {
spinner.setOnItemSelectedListener(this);
}

// Create ArrayAdapter using the string array and default


spinner layout.
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(this,
R.array.labels_array,
android.R.layout.simple_spinner_item);

// Specify the layout to use when the list of choices


appears.
adapter.setDropDownViewResource
(android.R.layout.simple_spinner_dropdown_item);

// Apply the adapter to the spinner.


if (spinner != null) {
spinner.setAdapter(adapter);
}

public void showText(View view) {


EditText editText = (EditText)
findViewById(R.id.editText_main);
if (editText != null) {
// Assign to showString both the entered string and
mSpinnerLabel.
String showString = (editText.getText().toString() + " -
" + mSpinnerLabel);
// Assign to phoneNumberResult the view for
text_phonelabel to prepare to show it.
TextView phoneNumberResult = (TextView)
findViewById(R.id.text_phonelabel);
// Show the showString in the phoneNumberResult.
if (phoneNumberResult != null)
phoneNumberResult.setText(showString);
}
}

@Override
public void onItemSelected(AdapterView<?> adapterView, View view,
int pos, long id) {
mSpinnerLabel =
adapterView.getItemAtPosition(pos).toString();
showText(view);
}

@Override
public void onNothingSelected(AdapterView<?> adapterView) {
Log.d(TAG, getString(R.string.nothing_selected));
}
}

Gambar Aplikasi
Kesimpulan
Pada gambar diatas merupakan aplikasi dimana terdapat interaksi secara
langsung yang diberikan oleh aplikasi dengan cara mengeluarkan keyboard secara
otomatis dengan format ketikan number, dan ketika kita menyentuh tulisan Enter
phone number dan kita diminta untuk memilih Home, Work, Mobile, atau Other dan
kemudian pesan apa yang kita ketik dapat keluar secara otomatis dengan menyentuh
button show. Dimana kita dapat membaca ulang pesan kita setelah mengetik ulang
pada bagian bawah layar.

3. Alart Sample
Deskripsi program
Anda bisa menyediakan dialog untuk peringatan yang mengharuskan pengguna
membuat keputusan. Dialog adalah jendela yang muncul di atas tampilan atau
mengisi tampilan, menyela alur aktivitas. Misalnya, sebuah dialog peringatan
mungkin mengharuskan pengguna untuk mengeklik Continue setelah membacanya,
atau memberi pilihan kepada pengguna untuk menyetujui suatu tindakan dengan
mengeklik tombol positif (seperti OK atau Accept), atau untuk tidak menyetujui
dengan mengeklik tombol negatif (seperti Cancel). Di Android, gunakan subkelas
AlertDialog dari kelas Dialog untuk menampilkan dialog standar untuk peringatan.

Coding activity_main.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="com.example.emiliyana.alertsample.MainActivity"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">

<TextView
android:id="@+id/top_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tap_test" />

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/top_message"
android:layout_marginTop="@dimen/button_top_margin"
android:text="@string/alert_button"
android:onClick="onClickShowAlert" />

</RelativeLayout>

Coding dimens.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="button_top_margin">36dp</dimen>
</resources>

Coding String.xml
<resources>
<string name="app_name">AlertSample</string>
<string name="tap_test">Tap to test the alert:</string>
<string name="alert_button">Alert</string>
<string name="alert_message">Click OK to continue, or Cancel to
stop:</string>
<string name="alert_title">Alert</string>
<string name="pressed_ok">Tekan OK</string>
<string name="pressed_cancel">Tekan Cancel</string>
<string name="ok">OK</string>
<string name="cancel">Cancel</string>
</resources>
Coding MainActivity.java
package com.example.emiliyana.alertsample;

import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

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

public void onClickShowAlert(View view) {


// Build the alert dialog.
AlertDialog.Builder myAlertBuilder = new
AlertDialog.Builder(MainActivity.this);
// Set the dialog title.
myAlertBuilder.setTitle(R.string.alert_title);
// Set the dialog message.
myAlertBuilder.setMessage(R.string.alert_message);
// Add the buttons.
myAlertBuilder.setPositiveButton(R.string.ok, new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// User clicked OK button.
Toast.makeText(getApplicationContext(),
R.string.pressed_ok,
Toast.LENGTH_SHORT).show();
}
});
myAlertBuilder.setNegativeButton(R.string.cancel, new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// User clicked the CANCEL button.
Toast.makeText(getApplicationContext(),
R.string.pressed_cancel,
Toast.LENGTH_SHORT).show();
}
});

// Create and show the AlertDialog.


myAlertBuilder.show();
}
}

Gambar Aplikasi

Kesimpulan
Pada gambar diatas merupakan aplikasi dimana terdapat interaksi secara
langsung yang diberikan oleh aplikasi dengan cara menyentuh button alert. Dimana
kita dapat memilih Ok atau Cancel untuk sebagai perintah peringatan kepada kita agar
kita mendapat pringatan sebelum kita memilih salah satu diantaranya, dan setelah kita
menyentuh salah satunya maka akan keluar pesan apa yang kita telah pilih seperti
gambar diatas.
4. Date Time Picker
Deskripsi program
Android menyediakan dialog yang siap digunakan, disebut picker, untuk memilih
waktu atau tanggal. Anda bisa menggunakannya untuk memastikan pengguna Anda
memilih waktu atau tanggal yang valid, yang diformat dengan benar dan disesuaikan
dengan waktu dan tanggal lokal pengguna. Masing-masing picker menyediakan
kontrol untuk memilih setiap bagian waktu (jam, menit, AM/PM) atau tanggal (bulan,
tanggal, tahun). Anda bisa membaca semua tentang mempersiapkan picker di Picker.
Dalam tugas ini, Anda akan membuat proyek baru, dan menambahkan picker tanggal
dan picker waktu. Anda juga akan mempelajari cara menggunakan fragmen. Fragmen
adalah perilaku atau bagian antarmuka pengguna dalam suatu aktivitas. Fragmen
mirip seperti aktivitas mini di dalam aktivitas utama, dengan siklus hidupnya sendiri,
dan digunakan untuk membangun picker. Semua pekerjaan dilakukan untuk Anda.
Untuk mengetahui tentang fragmen, lihat Fragmen dalam Panduan API. Salah satu
manfaat menggunakan fragmen untuk picker adalah Anda bisa mengisolasi bagian
kode untuk mengelola tanggal dan waktu untuk berbagai lokal yang menampilkan
tanggal dan waktu dengan cara yang berbeda. Praktik terbaik untuk menampilkan
picker adalah dengan menggunakan instance DialogFragment yang merupakan
subkelas Fragmen. DialogFragment menampilkan jendela dialog yang mengambang
di atas jendela aktivitasnya. Dalam latihan ini, Anda akan menambahkan fragmen
untuk setiap dialog picker dan menggunakan DialogFragment untuk mengelola daur
hidup dialog.

Coding activity_main.xml
<?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="com.example.emiliyana.datetimepickers.MainActivity"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/text_size"
android:text="@string/choose_datetime" />

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button_date"
android:layout_marginTop="@dimen/button_top_margin"
android:text="@string/date_button"
android:onClick="showDatePickerDialog"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button_time"
android:layout_marginTop="@dimen/button_top_margin"
android:layout_alignBottom="@id/button_date"
android:layout_toRightOf="@id/button_date"
android:text="@string/time_button"
android:onClick="showTimePickerDialog"/>

</RelativeLayout>

</LinearLayout>

Coding dimens.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="text_size">20sp</dimen>
<dimen name="button_top_margin">12dp</dimen>
</resources>

Coding strings.xml
<resources>
<string name="app_name">Date Time Pickers</string>
<string name="choose_datetime">Choose the date and time:</string>
<string name="date_button">Date</string>
<string name="time_button">Time</string>
<string name="date_picker">datePicker</string>
<string name="time_picker">timePicker</string>
<string name="date">"Date: "</string>
<string name="time">"Time: "</string>

<!-- TODO: Remove or change this placeholder text -->


<string name="hello_blank_fragment">Hello blank fragment</string>
</resources>

Coding MainActivity.java
package com.example.emiliyana.datetimepickers;

import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void showDatePickerDialog(View v) {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(),
getString(R.string.date_picker));
}

public void showTimePickerDialog(View view) {


DialogFragment newFragment = new TimePickerFragment();
newFragment.show(getSupportFragmentManager(),
getString(R.string.time_picker));
}

public void processDatePickerResult(int year, int month, int day)


{
// The month integer returned by the date picker starts
counting at 0
// for January, so you need to add 1 to show months starting
at 1.
String month_string = Integer.toString(month + 1);
String day_string = Integer.toString(day);
String year_string = Integer.toString(year);
// Assign the concatenated strings to dateMessage.
String dateMessage = (month_string + "/" + day_string + "/" +
year_string);
Toast.makeText(this, getString(R.string.date) + dateMessage,
Toast.LENGTH_SHORT).show();
}

public void processTimePickerResult(int hourOfDay, int minute) {


// Convert time elements into strings.
String hour_string = Integer.toString(hourOfDay);
String minute_string = Integer.toString(minute);
// Assign the concatenated strings to timeMessage.
String timeMessage = (hour_string + ":" + minute_string);
Toast.makeText(this, getString(R.string.time) + timeMessage,
Toast.LENGTH_SHORT).show();
}
}
Coding TimePickerFragment.java
package com.example.emiliyana.datetimepickers;

import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.text.format.DateFormat;
import android.widget.TimePicker;
import java.util.Calendar;

/**
* A simple {@link Fragment} subclass.
*/
public class TimePickerFragment extends DialogFragment implements
TimePickerDialog.OnTimeSetListener {

@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the picker.
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);

// Create a new instance of TimePickerDialog and return it.


return new TimePickerDialog(getActivity(), this, hour,
minute,
DateFormat.is24HourFormat(getActivity()));
}

public void onTimeSet(TimePicker view, int hourOfDay, int minute)


{
// Do something with the time chosen by the user.
// Set the activity to the Main Activity.
MainActivity activity = (MainActivity) getActivity();
// Invoke Main Activity's processTimePickerResult() method.
activity.processTimePickerResult(hourOfDay, minute);
}
}

Coding DatePickerFragment.java
package com.example.emiliyana.datetimepickers;

import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.widget.DatePicker;

import java.util.Calendar;

/**
* A simple {@link Fragment} subclass.
*/
public class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {

@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker.
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);

// Create a new instance of DatePickerDialog and return it.


return new DatePickerDialog(getActivity(), this, year, month,
day);
}

public void onDateSet(DatePicker view, int year, int month, int


day) {
// Do something with the date chosen by the user.

MainActivity activity = (MainActivity) getActivity();


// Invoke Main Activity's processDatePickerResult() method.
activity.processDatePickerResult(year, month, day);
}
}

Gambar Aplikasi
Kesimpulan

Pada gambar diatas merupakan aplikasi dimana terdapat interaksi secara


langsung yang diberikan oleh aplikasi dengan cara menyentuh salah satu button date
atau time. Dimana kita dapat mengetahui tanggal dan waktu pada saat kita memilih
dan menyentuh salah satu button tersebut, contoh ketika kita menekan button time
maka akan keluar jam pada layar android dan kita juga dapat mengetahui baik jam
maupun detik pada waktu saat kita menyentuk button time dan ketika kita menyemtuh
ok maka akan keluar pesan jam saat kita menekan ok sebelumnya, dan begitu pula
reaksi aplikasi ini ketika kita menyentuh button date.

5. DroidCafe
Deskripsi program
Anda bisa membuat tampilan agar bisa diklik, sebagai tombol, dengan menambahkan
atribut android:onClick di layout XML. Misalnya, Anda bisa membuat gambar agar
berfungsi sebagai tombol dengan menambahkan android:onClick ke ImageView. Kita
juga akan menambahkan Tombol radio. Tombol radio adalah kontrol masukan yang
berguna untuk memilih hanya satu opsi dari serangkaian opsi. Anda harus
menggunakan tombol radio jika Anda ingin pengguna melihat semua opsi yang
tersedia secara berdampingan. Jika tidak perlu menampilkan semua opsi secara
berdampingan, sebaiknya gunakan spinner. Nanti dalam praktik ini, Anda akan
menambahkan aktivitas dan layout layar lainnya untuk menyetel opsi pengantaran
untuk pesanan makanan, dan menggunakan tombol radio untuk pilihan pengantaran.
Untuk ringkasan dan kode contoh lainnya untuk tombol radio, lihat Tombol Radio.

Coding activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
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="com.example.emiliyana.droidcafe.MainActivity">

<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />

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

<include layout="@layout/content_main" />

<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@android:drawable/ic_dialog_email" />

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

Coding content_main.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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.emiliyana.droidcafe.MainActivity"
tools:showIn="@layout/activity_main">

<TextView
android:id="@+id/textintro"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/padding_regular"
android:text="@string/intro_text"
android:textSize="@dimen/text_heading" />

<TextView
android:id="@+id/choose_dessert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textintro"
android:padding="@dimen/padding_regular"
android:text="@string/choose_a_dessert" />

<ImageView
android:id="@+id/donut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/choose_dessert"
android:contentDescription="@string/donuts"
android:onClick="showDonutOrder"
android:padding="@dimen/padding_regular"
android:src="@drawable/donut_circle" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/choose_dessert"
android:layout_toRightOf="@id/donut"
android:padding="@dimen/padding_wide"
android:text="@string/donuts" />

<ImageView
android:id="@+id/ice_cream"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/donut"
android:contentDescription="@string/ice_cream_sandwiches"
android:onClick="showIceCreamOrder"
android:padding="@dimen/padding_regular"
android:src="@drawable/icecream_circle" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/donut"
android:layout_toRightOf="@id/ice_cream"
android:padding="@dimen/padding_wide"
android:text="@string/ice_cream_sandwiches" />

<ImageView
android:id="@+id/froyo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/ice_cream"
android:contentDescription="@string/froyo"
android:onClick="showFroyoOrder"
android:padding="@dimen/padding_regular"
android:src="@drawable/froyo_circle" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/ice_cream"
android:layout_toRightOf="@id/froyo"
android:padding="@dimen/padding_wide"
android:text="@string/froyo" />

</RelativeLayout>

Coding activity_order.xml
<?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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.emiliyana.droidcafe.OrderActivity">

<TextView
android:id="@+id/order_intro_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/text_margin_bottom"
android:layout_marginTop="@dimen/text_margin_top"
android:text="@string/choose_delivery_method"
android:textSize="@dimen/intro_text_size" />

<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/order_intro_text"
android:orientation="vertical">

<RadioButton
android:id="@+id/sameday"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked"
android:text="@string/same_day_messenger_service" />

<RadioButton
android:id="@+id/nextday"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked"
android:text="@string/next_day_ground_delivery" />

<RadioButton
android:id="@+id/pickup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked"
android:text="@string/pick_up" />
</RadioGroup>

</RelativeLayout>

Coding dimens.xml
<resources>
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="fab_margin">16dp</dimen>
<dimen name="text_heading">24sp</dimen>
<dimen name="padding_regular">10dp</dimen>
<dimen name="padding_wide">35dp</dimen>
<dimen name="text_margin_bottom">6dp</dimen>
<dimen name="text_margin_top">24dp</dimen>
<dimen name="intro_text_size">18sp</dimen>
</resources>

Coding strings.xml
<resources>
<string name="app_name">Droid Cafe</string>
<string name="action_settings">Settings</string>
<string name="intro_text">Droid Desserts</string>
<string name="choose_a_dessert">Choose a dessert.</string>
<string name="donuts">Donuts are glazed and sprinkled with
candy.</string>
<string name="ice_cream_sandwiches">Ice cream sandwiches have
chocolate wafers and vanilla filling</string>
<string name="froyo">FroYo is premium self-serve frozen
yogurt.</string>
<string name="donut_order_message">You ordered a donut.</string>
<string name="ice_cream_order_message">You ordered an ice cream
sandwich.</string>
<string name="froyo_order_message">You ordered a FroYo.</string>
<string name="choose_delivery_method">Choose a delivery
method:</string>
<string name="same_day_messenger_service">Same day messenger
service</string>
<string name="next_day_ground_delivery">Next day ground
delivery</string>
<string name="pick_up">Pick up</string>
<string name="chosen">"Chosen: "</string>
<string name="action_contact">Contact</string>
<string name="action_order">Order</string>
<string name="action_status">Status</string>
<string name="action_favorites">Favorites</string>
<string name="action_order_message">You selected Order.</string>
<string name="action_status_message">You selected
Status.</string>
<string name="action_favorites_message">You selected
Favorites.</string>
<string name="action_contact_message">You selected
Contact.</string>
<string name="title_activity_order">Order Activity</string>
<string name="google_mtv_coord_zoom12">geo:37.422114,-
122.086744?z=12</string>
<string name="nothing_clicked">onRadioButtonClicked: Nothing
clicked.</string>
</resources>

Coding MainActivity.java
package com.example.emiliyana.droidcafe;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

FloatingActionButton fab = (FloatingActionButton)


findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action",
Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void displayToast(String message) {
Toast.makeText(getApplicationContext(), message,
Toast.LENGTH_SHORT).show();
}
public void showFoodOrder(String message) {
displayToast(message);
Intent intent = new Intent(this, OrderActivity.class);
startActivity(intent);
}
/**
* Shows a message that the donut image was clicked.
*/
public void showDonutOrder(View view) {
showFoodOrder(getString(R.string.donut_order_message));
}

/**
* Shows a message that the ice cream sandwich image was clicked.
*/
public void showIceCreamOrder(View view) {
showFoodOrder(getString(R.string.ice_cream_order_message));
}

/**
* Shows a message that the froyo image was clicked.
*/
public void showFroyoOrder(View view) {
showFoodOrder(getString(R.string.froyo_order_message));
}
}

Coding OrderActivity.java
package com.example.emiliyana.droidcafe;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.RadioButton;
import android.widget.Toast;

public class OrderActivity extends AppCompatActivity {

private static final String TAG_ACTIVITY =


OrderActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order);
}

public void displayToast(String message) {


Toast.makeText(getApplicationContext(), message,
Toast.LENGTH_SHORT).show();
}

public void onRadioButtonClicked(View view) {


// Is a button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch (view.getId()) {
case R.id.sameday:
if (checked)
// Same day service
displayToast(getString(R.string.chosen) +

getString(R.string.same_day_messenger_service));
break;
case R.id.nextday:
if (checked)
// Next day delivery
displayToast(getString(R.string.chosen) +

getString(R.string.next_day_ground_delivery));
break;
case R.id.pickup:
if (checked)
// Pick up
displayToast(getString(R.string.chosen) +
getString(R.string.pick_up));
break;
default:
Log.d(TAG_ACTIVITY,
getString(R.string.nothing_clicked));
break;
}
}
}

Gambar Aplikasi

Kesimpulan
Pada gambar diatas merupakan aplikasi dimana terdapat interaksi secara
langsung yang diberikan oleh aplikasi dengan cara menyentuh salah satu Gambar atau
menyentuh gambar pesan. Dimana kita dapat mengetahui gambar apa yang telah kita
sentuh karena setelah menyentuh gambar tersebut kita akan berpindah ke aktivitas
layar lain dengan deskripsi gambar apa yang telah kita sentuh dan kita juga akan dapat
memilih radio mana, dan pada saat kita menyentuh salah satu radio tersebut aplikasi
akan secara otomatis mengeluakan pesan radio mana yang telah kita pilih.