Anda di halaman 1dari 18

HARI KEDUA

Belajar Tentang 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.

Secara umum intent terbagi dua intent implicit dan explicit yaitu sebagai berikut :

1. Intent Explicit
Intent dapat digunakan untuk transfer data antar Activity. Pada saat sebuah Activity
memanggil Activity yang lain, Intent dapat menyimpan data informasi yang ikut dikirimkan
pada pemanggilan tersebut, seperti berikut ini.

Intent intent = new Intent( this, MainActivity.class);

intent.putExtra( "NAMA", "dian" );


startActivity(intent);

Pada pemanggilan Activity tersebut, dikirimkan informasi berupa data NAMA dengan nilai
String “dian” dan data UMUR dengan nilai integer 17. Informasi tersebut dapat ditangkap oleh
activity yang dipanggil dengan code seperti ini.

Bundle extras = getIntent().getExtras();


String nama = extras.getString("NAMA");

2. Intent Implicit
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 :
Contoh Intent untuk mengirim email
Intent emailIntent = new Intent(android.content.Intent.
ACTION_SEND );

String emailList[] = { "diandeveloper@gmail.com" };

emailIntent.putExtra(android.content.Intent. EXTRA_EMAIL ,
emailList);

emailIntent.setType( "plain/text" );

emailIntent.putExtra(android.content.Intent. EXTRA_SUBJECT ,

"[diandeveloper - Mengenal Intent]" );

startActivity(Intent. createChooser(emailIntent, "Send via"));

Praktek 1.
Kita akan membuat satu aplikasi dimana ketika aplikasi itu di running kita harus inputkan
nama kita, dan nama itu akan di tangkap di activity lain setelah kita menekan tombol “OK”
Langkah – langkah membuatnya seperti berikut ini :
1. Buat Projek Baru
Nama Projek Hari ke 2
Sdk Api Min 14

Kita pilih tempelate Empty seperti gambar berikut ini :


Beri nama IntroActivity

2. Setelah itu kita buat logic dan layoutnya


file activity_main.xml isikan berikut ini

<?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:orientation="vertical"
android:background="@color/colorPrimary"
>
<EditText
android:gravity="center"
android:background="#fff"
android:id="@+id/introId"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="80dp"
android:hint="Input Your Name"
android:textColorHint="@color/colorAccent"
android:layout_width="match_parent"
android:layout_height="40dp" />
<Button
android:layout_marginTop="5dp"
android:layout_marginRight="10dp"
android:background="@android:color/holo_red_dark"
android:layout_gravity="right"
android:id="@+id/btnIntro"
android:text="Ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>

disarankan tidak copy paste


File logic javanya IntroActivity.java isikan berikut ini :
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class IntroActivity extends AppCompatActivity {

//deklarasi variabel
EditText edtIntro;
Button btnIntro;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_intro);
//inisialisasi id dari layout ada 2 widget
edtIntro = (EditText) findViewById(R.id.introId);
btnIntro = (Button) findViewById(R.id.btnIntro);

//buat button ada event klik


btnIntro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//buat string untuk mendapatkan data dari editext/ inputan
String edt = edtIntro.getText().toString();

//buat kondisi
if (edt.isEmpty()){
edtIntro.setError("Data Tidak Bisa Kosong");
} else {
//implementasi intent, panggil kelas Intent, objek
intent
Intent kirimData = new Intent(IntroActivity.this,
MainActivity.class);
//mengirim data dengan key "nama"
kirimData.putExtra("nama", edt);
//setiap penggunaan intgent harus di pakai satar
activity
startActivity(kirimData);
//finish utk mengakhiri activity
finish();

}
}
});

}
}
disarankan tidak copy paste

Setelah itu coba jalankan aplikasinya, ketika data kita isi kosong, kondisi if itu akan bekerja
dimana ada pesan error “data tidak bisa kosong”.
Setelah kita buat Intronya sekrang kita buat activity baru di projek itu, nama dari activity itu
yaitu MainActivity, caranya sebagai berikut :

Ket :
a. Klik kanan pada package pertama dalam folder java
b. Pilih new > pilih activity
c. Pilih empty activity
3. Setelah itu pada MainActivity Kita buatkan 3 button dan kita tambahkan textview
untuk menangkap data nama yang di kirim dari IntroActivity.
Seperti gambar berikut :

3 Button itu akan kita buat event klik pada setiap button, tetapi sebelumnya perlu kita
ketahu lifecycle Activity, seperti pada gambar di bawah, perlu kita ketahui method
pada activity ketika activity itu di jalankan, seperti berikut ini penjelasanya :
a. onCreate
method ini di jalankan terlebih dahulu, untuk menjalankan semuat aktivitas
pada activity maka kita harus panggil pada method onCreate
b. onStart
method ini akan di jalankan setelah method onCreate yaitu di mulai di
jalankan apa saja activitas yang kita berikan di method onCreate
c. onResume
method ini akan di jalankan ketika kita berpindah activity atau keluar dari
activity itu.
d. onPause
method ini di jalankan setelah method onResume
e. onStop dan onDestroy
dua method ini di jalankan ketika kita telah close pada aplikasi
Sekarang kita coba pada activity MainActivity kita berikan method lifecyclenya, isikan
kode berikut ini pada MainActivty.java dan running program lihat aktitivasnya.

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this, "Ini Method OnCreate",
Toast.LENGTH_SHORT).show();
}

@Override
protected void onStart() {
super.onStart();
Toast.makeText(this, "Ini Method OnStart",
Toast.LENGTH_SHORT).show();
}
@Override
protected void onResume() {
super.onResume();
Toast.makeText(this, "Ini Method OnResume",
Toast.LENGTH_SHORT).show();
}

@Override
protected void onPause() {
super.onPause();
Toast.makeText(this, "Ini Method OnPause",
Toast.LENGTH_SHORT).show();

@Override
protected void onStop() {
super.onStop();
Toast.makeText(this, "Ini Method OnStop",
Toast.LENGTH_SHORT).show();
}

@Override
protected void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Ini Method OnDestroy",
Toast.LENGTH_SHORT).show();
}
}
disarankan untuk mengetik (nanti setiap mengetik 1 – 5 huruf akn muncul auto complete /
saran kode yang akan di gunakan, jada tidak perlu mengetik semuanya.

coba jalankan programnya dengan mengisi semuat method itu pada MainActivity,

setelah itu kita hapus semua methonya, kecuali method onCreate.


Tambahkan kode dibawah ini pada layout 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"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_gravity="right"
android:layout_weight="1"
android:textSize="25sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nama Pengguna"
/>
<TextView
android:textSize="25sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" : "
/>

<TextView
android:layout_weight="1"
android:textSize="25sp"
android:id="@+id/txtNama"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Your Name"
/>
</LinearLayout>

<Button
android:id="@+id/btnToast"
android:text="Toast"
android:background="@android:color/holo_blue_bright"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btnalert"
android:text="Alert Dialog"
android:background="@android:color/holo_blue_bright"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btnHitungLuasActivity"
android:text="input Data"
android:background="@android:color/holo_blue_bright"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

</LinearLayout>
disarankan untuk mengetik
Setelah itu logicnya pada MainActivty kita tambahkan kode berikut ini :

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

public class MainActivity extends AppCompatActivity {

//deklarasi variabel untuk setiap widgetnya


TextView txtNama;

Button btnToast;

Button btnInput;

Button btnalert;

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

//inisialisasi setiap id yang ada di layout

txtNama = (TextView) findViewById(R.id.txtNama);


btnToast = (Button) findViewById(R.id.btnToast);
btnInput =(Button) findViewById(R.id.btnInput);
btnalert = (Button) findViewById(R.id.btnalert);
//buat get intent untuk menangkap kiriman intent dari IntroActivity
Intent getData = getIntent();
txtNama.setText(getData.getStringExtra("nama"));

//buat event klik pada button toast


btnToast.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "Ini Event Toast",
Toast.LENGTH_SHORT).show();
}
});

//buat event btnalert


btnalert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

AlertDialog.Builder alert = new


AlertDialog.Builder(MainActivity.this);

//icon untuk alert


alert.setIcon(R.mipmap.ic_launcher);
// judul alert
alert.setTitle("INI CONTOH ALERT");
//pesan pada alert
alert.setMessage("isikan isi pesan alert apa aja ya ?");

//buat alert button ok


alert.setPositiveButton("OK", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface,
int i) {

}
});
//jangan lupa alert di show
alert.show();

});

//buat evnt pada btn input


btnInput.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//berikan intent ke activity lain
//sebelumnya buat activity baru, namanya InputdataActivity
startActivity(new Intent(MainActivity.this,
InputdataActivity.class));
}
});

disarankan untuk mengetik


di coba jalankan aplikasinya, dan coba setiap button ketika di klik
4. setelah kita buat MainActivity,kita tambahkan activty empty lagi, beri nama
InputData activity, seperti pada gambar dibawah ini.
Akses ke InputdataActivity sudak kita berikan pada button input di main activity.

Di InputdataActivity kita akan memberikan 3 widget yaitu EditText untuk inputan, Button
untuk event klik dan TextView untuk menangakap apa yang di inputkan di EditText.

Pada layout activity_inputdata kita akan buat seperti gambar dibawah ini :
Isikan kode berikut ini pada layout activity_inputdata.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:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<EditText
android:gravity="top"
android:inputType="textMultiLine"
android:id="@+id/edtInputData"
android:hint="Input Data here"
android:layout_width="match_parent"
android:layout_height="150dp" />
<Button
android:layout_margin="20dp"
android:background="@color/colorPrimaryDark"
android:id="@+id/btnInputData"
android:text="input data"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/txtInputData"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</LinearLayout>

Pada InputdataActivity.java kita isi berikut ini


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class InputdataActivity extends AppCompatActivity {

//deklarasi variebel
EditText edtInputData;

Button btnInputData;

TextView txtInputData;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inputdata);
//inisialisasi
edtInputData = (EditText) findViewById(R.id.edtInputData);
txtInputData = (TextView)findViewById(R.id.txtInputData);
btnInputData = (Button) findViewById(R.id.btnInputData);
//berikan event pada button input data
btnInputData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//buat string unutk menangkap inputan dan mengubahnya ke
data String
String edtInput = edtInputData.getText().toString();

//kondisi jika data kosong akan ada pesan errror


if (edtInput.isEmpty()){
edtInputData.setError("Data Harus di Isi");
} else {
//toast untuk menampilkan data berhasil
Toast.makeText(InputdataActivity.this, "succses !!",
Toast.LENGTH_SHORT).show();
//data inputan di set pada text view
txtInputData.setText(edtInput);
}

}
});

}
}
disarankan tidak copy paste
jika aplikasinya dijalankan seperti pada gambar-gambar dibawah ini :
Setelah mengikuti isi dari modul ini, sebagai bahan latihan coba membuat kakulator di
android dan proggramm menghitung luas / keliling persegi.
Contohnya seperti gambar berikut :
Semoga Apa yang di pelajari dari modul ini, bisa dipahami dengan benar.

Anda mungkin juga menyukai