Download
PMO2 TI2015A Tegar Juni BAB 4. Notifikasi Dialog Intent
PMO2 TI2015A Tegar Juni BAB 4. Notifikasi Dialog Intent (Makalah)
Nama Anggota Kelompok :
- Dina Murniati Putri (NIM.15.11.0292)
- Erlangga Putra Buana (NIM.15.11.0294)
- Irvinda Yudha Febrian (NIM.15.11.0295)
- Nugraga Dani Aji (NIM.15.11.0290)
- Rahman Al Firous (NIM.15.11.0285)
- Tegar Juniar Wibowo (NIM.15.11.0291)
Seringkali kita memakai apliakasi terdapat event-event yang memberitahukan user dalam menggunakan aplikasi tersebut. Event-Event itudapat berupa peringtran, pemberitahuan, konfirmasi, atau berpindah antar form atau User Interface baru. Berikut akan kami jelaskan mengenai apa itu Notification, Dialog, dan Intent beserta contoh penerapan kedalam software aplikasi.
- Notification
Notification adalah salah fitur pada perangkat Android, yang akan menampilkan antar muka (User Interface) baik berupa pesan pemberitahuan, icon, text, background proses, dll., yang dapat kita lihat pada status bar. Kemudia user atau pengguna Android, dapat mengusap ke bawah (meng-expand), lalu memilih notifikasi tersebut, untuk melihat lebih detail lagi tentang informasi, salah satu notification tersebut.
Notification sering disematkan pada aplikasi-aplikasi, yang terpopuler saat ini. Seperti Aplikasi Facebook, Whatsapp, Instagram, dll. Yang pasti Notification sangat membantu user (pengguna) Android, menerima informasi atau pemberitahuan pada Aplikasi ,sosial media miliknya.
Membuat Notifikasi
Menetapkan informasi dan tindakan UI bagi pemberitahuan dalam objek NotificationCompat.Builder. Untuk membuat pemberitahuan itu sendiri, panggil NotificationCompat.Builder.build(), yang akan mengembalikan objek Notification berisi spesifikasi Anda. Untuk mengeluarkan pemberitahuan, Anda meneruskan objek Notification ke sistem dengan memanggil NotificationManager.notify().
Objek Notification harus berisi yang berikut ini:
- Ikon kecil, yang diatur dengan setSmallIcon()
- Judul, yang diatur dengan setContentTitle()
- Teks detail, yang diatur dengan setContentText()
Contoh penerapan notifikasi kedalam bentuk aplikasi Android.
- Buat project baru, misal kita namakan Android Notification.
- Kemudian pilih template Empty Activity, kemudian beri nama Activity-nya dengan MainActivity dan layout-nya dengan nama main_layout.
- Buat desainnya terlebih dahulu di main_layout.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:id=”@+id/activity_main”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:paddingLeft=”@dimen/activity_horizontal_margin”
android:paddingRight=”@dimen/activity_horizontal_margin”
android:paddingTop=”@dimen/activity_vertical_margin”
android:paddingBottom=”@dimen/activity_vertical_margin”
tools:context=”com.okedroid.contohnotification.MainActivity”>
<Button
android:text=”TAMPIL NOTIFICATION”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_centerVertical=”true”
android:layout_centerHorizontal=”true”
android:onClick=”tampilNotification”
android:id=”@+id/button”/>
</RelativeLayout>
- Kemudian berlanjut ke MainActivity.java
package com.okedroid.contohnotification;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.app.NotificationCompat;
import android.view.View;
public class MainActivity extends AppCompatActivity {
// identititas id unik untuk notification
public static final int NOTIFICATION_ID = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().setSubtitle(“Belajar di okedroid.com”);
}
public void tampilNotification(View view) {
/*
Menmbangun atau mensetup Notification dengan NotificationCompat.Builder
*/
NotificationCompat.Builder builder = (NotificationCompat.Builder) new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher) //ikon notification
.setContentTitle(“Notifikasi Saya”) //judul konten
.setAutoCancel(true)//untuk menswipe atau menghapus notification
.setContentText(“Hello Okedroid”); //isi text
/*
Kemudian kita harus menambahkan Notification dengan menggunakan NotificationManager
*/
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(NOTIFICATION_ID, builder.build()
);
}
}
Sumber:
- http://www.okedroid.com/2017/02/cara-membuat-contoh-notification-pada-aplikasi-android.html
- https://developer.android.com/guide/topics/ui/notifiers/notifications.html
- http://imamfarisi.com/membuat-notification-android/
- Dialog
Dialog adalah jendela kecil yang meminta pengguna untuk membuat keputusan atau memasukkan informasi tambahan. Dialog tidak mengisi layar dan biasanya digunakan untuk kejadian modal yang mengharuskan pengguna untuk melakukan aksi sebelum bisa melanjutkan.
Kelas Dialog adalah kelas basis untuk dialog, namun Anda harus menghindari pembuatan instance Dialog secara langsung. Sebagai gantinya, gunakan salah satu subkelas berikut:
- AlertDialog
Dialog yang bisa menampilkan judul, hingga tiga tombol, daftar item yang dapat dipilih, atau layout khusus.
- DatePickerDialog atau TimePickerDialog
Dialog berisi UI yang sudah didefinisikan dan memungkinkan pengguna memilih tanggal atau waktu.
Kelas-kelas ini mendefinisikan gaya dan struktur dialog Anda, namun Anda harus menggunakan DialogFragment sebagai kontainer dialog Anda. Kelas DialogFragment menyediakan semua kontrol yang Anda perlukan untuk membuat dialog dan mengelola penampilannya, sebagai ganti memanggil metode pada objek Dialog.
Menggunakan DialogFragment untuk mengelola dialog akan memastikan bahwa kelas itu menangani kejadian daur hidup dengan benar seperti ketika pengguna menekan tombol Kembali atau memutar layar. Kelas DialogFragment juga memungkinkan Anda menggunakan ulang UI dialog sebagai komponen yang bisa disematkan dalam UI yang lebih besar, persis seperti Fragment biasa (seperti saat Anda ingin dialog UI muncul berbeda pada layar besar dan kecil).
Contoh penerapan dialog dalam program
main_alert.xml
<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” tools:context=”.AlertMain” >
<Button android:id=”@+id/one_button_alert” android:layout_width=”200dip” android:layout_height=”wrap_content” android:layout_alignParentLeft=”true” android:layout_marginTop=”25dip” android:layout_marginLeft=”20dip” android:text=”One Button Alert” />
<Button android:id=”@+id/two_button_alert” android:layout_width=”200dip” android:layout_height=”wrap_content” android:layout_alignParentLeft=”true” android:layout_below=”@id/one_button_alert” android:layout_marginLeft=”20dip” android:text=”Two Button Alert” />
<Button android:id=”@+id/three_button_alert” android:layout_width=”200dip” android:layout_height=”wrap_content” android:layout_alignParentLeft=”true” android:layout_below=”@id/two_button_alert” android:layout_marginLeft=”20dip” android:text=”Three Button Alert” />
</RelativeLayout>l
AlertMain.java
package com.okedroid.myapplication;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
/** * Created by FATHUR on 12/16/2015. */public class AlertMain extends Activity {
private Button button1;
private Button button2;
private Button button3;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_alert);
button1 = (Button) findViewById(R.id.one_button_alert);
button2 = (Button) findViewById(R.id.two_button_alert);
button3 = (Button) findViewById(R.id.three_button_alert);
button1.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(
AlertMain.this);
builder.setTitle(“Contoh Alert”);
builder.setMessage(“Alert dengan 1 Action Button “);
builder.setPositiveButton(“OK”,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
Log.e(“info”, “OK”);
}
});
builder.show();
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(
AlertMain.this);
builder.setTitle(“Contoh Alert”);
builder.setMessage(“Alert dengan 2 Action Button “);
builder.setNegativeButton(“NO”,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
Log.e(“info”, “NO”);
}
});
builder.setPositiveButton(“YES”,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
Log.e(“info”, “YES”);
}
});
builder.show();
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(
AlertMain.this);
builder.setTitle(“Contoh Alert”);
builder.setMessage(“Alert dengan 3 Action Button “);
builder.setNegativeButton(“NO”,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
Log.e(“info”, “NO”);
}
});
builder.setPositiveButton(“YES”,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
Log.e(“info”, “YES”);
}
});
builder.setNeutralButton(“BATAL”,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
Log.e(“info”, “BATAL”);
}
});
builder.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;
}
}
Sumber:
- https://developer.android.com/guide/topics/ui/dialogs.html
- http://www.okedroid.com/2015/12/cara-membuat-contoh-aplikasi-penerapan-alert-dialog.html
- Intent
Intent adalah suatu perintah java di dalam bahasa pemrograman Android yang digunakan untuk berpindah dari layout activity sekarang ke activity lain. Intent merupakan suatu pesan yang digunakan untuk mengaktifkan tiga komponen dasar pada aplikasi Android yaitu Activity, Service, dan Broadcast Receiver. Aktifasi pada komponen-komponen tersebut bisa terjadi pada aplikasi yang sama atau berbeda, seperti menjalankan Activity, inisiasi Service, atau pengiriman pesan kepada Broadcast Receiver. Pada saat terjadi komunikasi antar komponen, Intent menyimpan paket informasi yang digunakan pada proses tersebut. Berikut ini adalah beberapa contoh mekanisme pengiriman Intent pada masing-masing jenis komponen :
- Object Intent untuk menjalankan Activity baru atau memerintahkan Activity melakukan sesuatu dengan mempassing object Intent pada fungsi Context.startActivity() atau Acvity.startActivityForResult().
- Object Intent untuk menginisiasi sebuah Service baru atau melakukan sesuatu pada Service yang sedang berjalan dengan mempassing object Intent pada fungsi Context.startService().
- Object Intent untuk mengirimkan pesan kepada seluruh Broadcast Receiver dengan mempassing object Intent pada fungsi Context.sendBroadcast(), Context.sendOrderedBroadcast(), atau Context.sendStickyBroadcast().
Intent untuk melakukan aktifitas tertentu
Mengirim email, membuka halaman website, melihat lokasi pada map, merupakan aktifitas-aktifitas yang biasanya ada pada aplikasi Android. Untuk melakukan aktifitas-aktifitas tersebut, kita bisa membuat sendiri fiturnya atau bisa dengan memanfaatkan Intent untuk mengerjakannya. Intent dapat memanggil aplikasi lain untuk mengerjakan aktifitas tersebut, seperti memanggil aplikasi Gmail untuk mengirim email, aplikasi browser seperti Opera atau Chrome untuk membuka halaman website, atau aplikasi Maps untuk menampilkan lokasi pada peta. Beberapa contoh pemanfaatan Intent untuk melakukan aktifitas tertentu dengan bantuan aplikasi lain :
- Intent untuk mengirim email
- Intent untuk membuka halaman website
- Intent untuk menampilkan lokasi pada peta
Alur program untuk intent:
- Program dijalankan.
- Menampilkan Halaman Utama (MainActivity) dengan 2 tombol untuk menuju halaman ke dua dan tombol keluar.
- Klik tombol Menuju Halaman Kedua – maka aplikasi akan menampilkan Halaman Kedua (ActivityKedua).
- Di Halaman Kedua, Klik tombol Menuju Halaman Utama – maka aplikasi akan kembali menampilkan tampilan layar halaman utama.
- Klik tombol Keluar – maka akan keluar aplikasi.
Penerapan intent dalam program
- Berikut adalah listing program di Ativity_main.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:id=”@+id/activity_main”
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.caratutorial.intent.MainActivity”>
<TextView
android:text=”HALAMAN UTAMA”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:layout_alignParentTop=”true”
android:layout_centerHorizontal=”true”
android:id=”@+id/textView”
android:textAlignment=”center”
android:textStyle=”normal|bold”
android:textSize=”18sp” />
<Button
android:text=”Menuju Halaman Kedua”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:layout_below=”@+id/textView”
android:layout_centerHorizontal=”true”
android:layout_marginTop=”50dp”
android:id=”@+id/button” />
<Button
android:text=”Keluar”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:layout_below=”@+id/button”
android:layout_centerHorizontal=”true”
android:id=”@+id/keluar” />
</RelativeLayout>
- Kemudian Buat activity baru dengan cara Klik Kanan app > New > Activity > pilih Empty Activity > kemudian pada Activity Name, isi dengan nama “ActivityKedua“ lalu klik Finish.
- Setelah selesai, berikut adalah listing program di activity_kedua.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:id=”@+id/activity_kedua”
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.caratutorial.intent.ActivityKedua”>
<TextView
android:text=”HALAMAN KEDUA”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:layout_alignParentTop=”true”
android:layout_centerHorizontal=”true”
android:id=”@+id/textView2″
android:textStyle=”normal|bold”
android:textAlignment=”center”
android:textSize=”18sp” />
<Button
android:text=”Menuju Halaman Utama”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:layout_marginTop=”50dp”
android:id=”@+id/button2″
android:textSize=”14sp”
android:layout_below=”@+id/textView2″
android:layout_alignParentLeft=”true”
android:layout_alignParentStart=”true” />
</RelativeLayout>
- Berikut adalah listing program di MainActivity.java
package com.caratutorial.intent;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button button, keluar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
keluar = (Button) findViewById(R.id.keluar);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, ActivityKedua.class);
MainActivity.this.startActivity(intent);
MainActivity.this.finish();
}
});
keluar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}
- Berikut adalah listing program di ActivityKedua.java
package com.caratutorial.intent;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class ActivityKedua extends AppCompatActivity {
Button button2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_kedua);
button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ActivityKedua.this, MainActivity.class);
ActivityKedua.this.startActivity(intent);
ActivityKedua.this.finish();
}});
}}
Properti Intent yang biasa digunakan:
- PendingIntent : digunakan jika ketika diklik notifikasinya dia manggil suatu activity.
- setContentIntent : diisi dengan PendingIntent
- setSmallIcon : icon kecil yang berada di kiri bawah (untuk android > 4.0 ) atau icon kecil yang berada di kanan bawah (untuk android < 5.0)
- setLargeIcon : icon besar yang berada di sebelah kiri notifikasi.
- setTicker : untuk menampilkan message pertama saat notifikasi berjalan.
- setAutoCancel : tampil tanda swipe untuk menghapus notifikasi. Kebalikan dari itu adalah .setOngoing(true) notifikasi akan terus tampil di atas dan tidak ada tanda swipe untuk menghapus notifikasinya contohnya adalah notification aplikasi bbm android, itu tidak bisa di swipe/hapus notificationya.
- setVibrate : untuk getar saat notifikasi keluar, setVibrate membutuhkan permission <uses-permission android:name=”android.permission.VIBRATE” /> di AndroidManifest.xml untuk bisa digunakan.
- setLight : untuk memunculkan warna/light saat notifikasi muncul.
- setDefault : di atas untuk bisa keluar sound default dari handphone saat notifikasi muncul.
- setContentTitle : untuk menampilkan message yang berada di tengah notifikasi
- setContentText : untuk menampilan message yang posisinya di bawah contentTitle.
Dan masih banyak lagi lainnya properti2 yang bisa di set di dalam notifikasi
Sumber:
https://diandeveloper.wordpress.com/2013/11/16/android-intent/
http://www.caratutorial.com/2016/10/tutorial-intent-android-studio-perintah.html