PMO Pertemuan 4 : Notifikasi, Dialog, dan Intent

Pemberitahuan(notification)

  • Pemberitahuan adalah pesan yang bisa Anda tampilkan kepada pengguna di luar UI normal aplikasi. Bila Anda memberi tahu sistem untuk mengeluarkan pemberitahuan, pemberitahuan akan muncul lebih dahulu sebagai ikon dalam area pemberitahuan. Untuk melihat detail pemberitahuan, pengguna membuka laci pemberitahuan. Baik area pemberitahuan maupun laci pemberitahuan adalah area-area yang dikontrol sistem yang bisa dilihat pengguna kapan saja.

 

Contoh Penerapan :

activity_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: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>

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) newNotificationCompat.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()

);

}

}

 

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

 

Penerapan Dialog

Pada activity_main.xml

<?xml version=”1.0″ encoding=”utf-8″?

<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”

android:orientation=”vertical” android:layout_width=”match_parent”

android:gravity=”center_vertical|center_horizontal“

android:layout_height=”match_parent”>

<Button

android:id=”@+id/bt_alert”

android:layout_width=”wrap_content”

android:text=”Munculkan Alert Dialog”

android:elevation=”0dp”

android:layout_height=”wrap_content” />

 

</LinearLayout>

 

Pada MainActivity.java

public class MainActivity extends AppCompatActivity {

private Button btAlert;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

btAlert = (Button) findViewById(R.id.bt_alert);

btAlert.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

showDialog();

}  });

}

 

private void showDialog(){

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

// set title dialog

alertDialogBuilder.setTitle(“Keluar dari aplikasi?”);

 

// set pesan dari dialog

alertDialogBuilder

.setMessage(“Klik Ya untuk keluar!”)

.setIcon(R.mipmap.ic_launcher)

.setCancelable(false)

.setPositiveButton(“Ya”,new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog,int id) {

// jika tombol diklik, maka akan menutup activity ini

TWOHAlertDialog.this.finish();

}

})

 

.setNegativeButton(“Tidak”,new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

// jika tombol ini diklik, akan menutup dialog

// dan tidak terjadi apa2

dialog.cancel();

}

});

 

// membuat alert dialog dari builder

AlertDialog alertDialog = alertDialogBuilder.create();

 

// menampilkan alert dialog

alertDialog.show();

}

}

Demo

 

Intent

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 :

  1. Object Intent untuk menjalankan Activity baru atau memerintahkan Activity melakukan sesuatu dengan mempassing object Intent pada fungsi Context.startActivity() atau Acvity.startActivityForResult().
  2. Object Intent untuk menginisiasi sebuah Service baru atau melakukan sesuatu pada Service yang sedang berjalan dengan mempassing object Intent pada fungsi Context.startService().
  3. Object Intent untuk mengirimkan pesan kepada seluruh Broadcast Receiver dengan mempassing object Intent pada fungsi Context.sendBroadcast(), Context.sendOrderedBroadcast(), atau Context.sendStickyBroadcast().

Penerapan Intent

Pada activity_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=”hello.codedroid.helloworld.MainActivity”>

 

<TextView

android:id=”@+id/content1″

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:text=”Hello World!”

android:textAlignment=”center”

android:textStyle=”bold”

android:textSize=”24sp”

android:layout_centerHorizontal=”true” />

<Button

android:id=”@+id/btn1″

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:layout_below=”@+id/content1″

android:layout_marginTop=”10dp”

android:text=”@string/next”

android:layout_alignParentLeft=”true”

android:layout_alignParentStart=”true” />

</RelativeLayout>

 

Pada MainActivity.java

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button button1=(Button)findViewById(R.id.btn1);

button1.setOnClickListener(new View.OnClickListener() {

public void onClick(View arg0) {

Intent  i =new Intent(getApplicationContext(),Second.class);

i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//ini untuk mengclear Activity sebelumnya biar tidak terjadi penumpukan activity

startActivity(i);

}

});

}

}

 

Kemudian membuat activity baru

Pada activity_second.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_second”

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=”hello.codedroid.helloworld.Second”>

 

<TextView

android:id=”@+id/content2″

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:text=”ini Halaman 2″

android:textAlignment=”center”

android:textStyle=”bold”

android:textSize=”24sp”

android:layout_centerHorizontal=”true” />

 

<Button

android:id=”@+id/btn2″

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:layout_below=”@+id/content2″

android:layout_marginTop=”10dp”

android:text=”@string/prev”

android:layout_alignParentLeft=”true”

android:layout_alignParentStart=”true” />

</RelativeLayout>

 

 

Di second.java

public class Second extends AppCompatActivity {

/*

extends bisa menggunakan Activity/ AppCompatActivity

jika menggunakan extends Activity maka title bar tidak akan muncul

*/

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_second);

Button button1=(Button)findViewById(R.id.btn2);

button1.setOnClickListener(new View.OnClickListener() {

public void onClick(View arg0) {

Intent  i =new Intent(getApplicationContext(),MainActivity.class);

i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//ini untuk mengclear Activity sebelumnya biar tidak terjadi penumpukan activity

startActivity(i);

}

});

}

}

 

Untuk value string xml anda bisa gunakan strings.xml berikut atau anda bisa merubah sendiri

<resources>

<string name=”app_name”>Hello World</string>

<string name=”Hal_next”>Halaman 2</string>

<string name=”prev”>Kembali ke Halaman sebelumnya</string>

<string name=”next”>Ke Halaman Selanjutnya</string>

</resources>

 

 

Pastikan AndroidManifest.xml seperti berikut

<?xml version=”1.0″ encoding=”utf-8″?>

<manifest xmlns:android=”http://schemas.android.com/apk/res/android”

package=”hello.codedroid.helloworld”>

 

<application

android:allowBackup=”true”

android:icon=”@mipmap/ic_launcher”

android:label=”@string/app_name”

android:supportsRtl=”true”

android:theme=”@style/AppTheme”>

<activity android:name=”.MainActivity”>

<intent-filter>

<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.LAUNCHER” />

</intent-filter>

</activity>

<activity android:name=”.Second”

android:label=”@string/Hal_next”></activity>

</application>

 

</manifest>

 

Download Powerpoint Notifikasi, Dialog dan Intent

 

Anggota Kelompok

1.Kukuh Prasetyo Adhi    (15.11.0307)

2.Warsito Aji    (15.11.0306)

3.Karima Dewi R    (15.11.0313)

4.Alfano Kurniawan W   (15.11.0316)

5.Bagus Nanda P  (15.11.0301)

6.Shisen Nugraha B  (15.11.0311)

 

 

 

Daftar Pustaka

https://developer.android.com/guide/topics/ui/notifiers/notifications.html?hl=id

http://www.okedroid.com/2017/02/cara-membuat-contoh-notification-pada-aplikasi-android.html

https://diandeveloper.wordpress.com/2013/11/16/android-intent/

https://developer.android.com/guide/topics/ui/dialogs.html?hl=id

https://www.twoh.co/2017/01/07/tutorial-cara-membuat-alert-dialog-sederhana-di-android/

https://codefordroid.blogspot.co.id/2017/01/mengenal-dan-membuat-intent-di-android.html