Anda di halaman 1dari 30

LAPORAN HASIL PRAKTIKUM

PEMROGRAMAN BERORIENTASI OBJEK

NAMA : ZARA AINUN SAFIRA


NIM : DBC 118 037
KELAS :D
MODUL : V (INTENT)

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKA RAYA
2019
LAPORAN HASIL PRAKTIKUM
PEMROGRAMAN BERORIENTASI OBJEK

Nama : ZARA AINUN SAFIRA


NIM : DBC 118 037
Kelas :D
Modul : V (INTENT)

Komposisi MAX Nilai


BAB I Tujuan dan Landasan Teori 10
BAB II Pembahasan 60
BAB III Kesimpulan 20
Daftar Pustaka 5
Lampiran 5
Jumlah 100

Penilai
Asisten Praktikum

Yusuf Hidayat
BAB I
TUJUAN DAN LANDASAN TEORI

1.1. TUJUAN
1.1.1. Mahasiswa dapat membangun aplikasi sederhana dengan
menggunakan intent.

1.2. LANDASAN TEORI


Sebuah aplikasi android dapat berisi banyak activity. Activity merupakan
potongan kode executable yang menyajikan user interface secara visual dan
berjalan selama diperlukan. Untuk berpindah dari activity satu ke activity
lainnya dilakukan dengan cara mengeksekusi activity berikutnya melalui
sebuah intent. Sehingga setiap activity dapat berinteraksi satu dengan yang
lainnya secara asynchronous. Intent dapat dipanggil dengan menggunakan
beberapa method berikut.
startActivity(intent) Untuk menjalankan sebuah activity.
Untuk mengirimkan sebuah intent kepada
sendBroadcast(intent)
komponen BroadcastReceiver.
startService(intent)
Untuk menghubungkan aplikais dengan sebuah
atau
background Service.
bindService(intent)
BAB II
PEMBAHASAN

2.1. Membuat Desain Aplikasi LatihanGUI2


Pada praktikum modul 5 kali ini bertujuan untuk membuat aplikasi
berbasis Android menggunakan Android Studio dalam bahasa pemrograman
Java. Yang mana di sini akan membahas beberapa widget dan activity dalam
pembuatan aplikasi Android. Langkah pertama adalah membuat project baru
dengan Activity yang dipilih adalah Empty Activity, Penamaan untuk project
ini adalah LatihanGUI2, package dinamakan sesuai modul dengan NIM dan
Nama mahasiswa, dan bahasa pemrogramannya Java. Spesifikasi minimum
level untuk Application Program Interface-nya adalah API 17: Android 4.2
(Jelly Bean).

Gambar 2.1 Membuat Project Baru (LatihanGUI2)

Langkah selanjutnya adalah men-design activity milik aplikasi ini. Palette


adalah tempat untuk memilih berbagai widget yang akan digunakan. Activity
pertama ini menggunakan widget Text View, Plain Text, Password Field, dan
Button. TextView pertama untuk keterangan text “Username =”, di
sampingnya terdapat Plain Text untuk memasukkan username seperti yang
sudah diperintahkan. Kemudian di bawahnya ada Text View kedua untuk
keterangan “Password =”, yang di sampingnya terdapat Password Field untuk
memasukkan password milik pengguna tersebut. Setelah username dan
password terisi, bisa diklik Button “Login” agar dapat pindah ke activity
selanjutnya, pada widget Button sendiri kegunaannya dapat diubah-ubah
sesuai keinginan pengguna di dalam source code yang menjalankan aplikasi
ini. Setiap activity yang dibuat pada aplikasi ini menggunakan Constrant
Layout, yang dapat mengatur posisi widget tersebut dengan keinginan si
pembuat sendiri.

Gambar 2.2 Membuat Desain Pada Activity Pertama (MainActivity)

Design pada activity kedua juga cukup sederhana, yang mana widget yang
digunakan adalah Text View dan Button saja. Widget Text View di sini
gunanya untuk menampilkan data yang diatur di source code-nya nanti.
Kedua Button yang dipakai memiliki kegunaan yang berbeda, Button “Call”
akan membuka call dialer, dan Button “Web” akan berpindah ke browser,
kegunaan kedua Button ini juga diatur dalam source code activity login.

Gambar 2.3 Membuat Desain Pada Activity Kedua (LoginActivity)


Setelah pembuatan design pada activity, dan pembuatan source code yang
akan dijelaskan lebih lanjut, di sini mencoba untuk me-running aplikasi yang
sudah rampung. Emulator yang digunakan adalah 3.2 HVGA seperti
ketentuan di modul. Yang pertama kali ditampilkan adalah activity utamanya,
yaitu activity_main. Seperti pembahasan pada pembuatan design sebelumnya,
aplikasi ini bekerja dengan baik melihat dari widget yang digunakan berada
pada posisi yang pas, dan keterangannya tidak salah. Tujuan login dari
activity ini adalah agar dapat mengakses activity kedua dengan syarat
username dan password yang dimasukkan harus benar.

Gambar 2.4 Tampilan Awal Running Aplikasi LatihanGUI2

Untuk inputan datanya sendiri di sini msukkan hanya berupa String atau
kalimat, yang mana ketika memasukkan data dari keyboard harus sama
dengan data yang sudah ditentukan dalam source code. Jika salah satu
inputan dari username atau password ada yang salah yang kemudian
mengklik Button “Login”, maka akan muncul Toast yang memberitahukan
bahwa username dan password tidak valid. Kedua masukkan benar jika
mengklik Button “Login” berhasil dan berpindah ke activity lainnya.
Gambar 2.5 Memasukkan Data Pengguna

Berikut tampilan ketika login berhasil dan berpindah ke activity


selanjutnya. Bisa dilihat pada Gambar 2.6, Text View yang sebelumnya
kosong sekarang berisi pesan yang mengambil data username yang telah
dimasukkan. Activity ini menyediakan dua pilihan berbentuk Button. Button
“Call” untuk memanggil sebuah nomor, dan Button “Web” untuk membuka
browser.

Gambar 2.6 Tampilan Activity Kedua Ketika Pengguna Berhasil Login

Seperti pada Gambar 2.7, adalah tampilan ketika mengklik salah satu
Button milik activity kedua. Untuk Call sendiri akan membuka dialer dengan
nomor yang secara otomatis karena telah meng-input-kannya di source code.
Browser yang akan dibuka di sini adalah alamat www.google.com, yang
mana juga dapat diatur web apa yang ingin dibuka di source code.
Gambar 2.7 Perpindahan Ketika Mengklik Button “Call” dan “Web”

2.2. Source Code Aplikasi LatihanGUI2


button_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

<corners android:radius="12dp" />


<solid android:color="@color/colorPrimary" />

</shape>
Pada program kali ini bertujuan untuk membuat sebuah aplikasi user login
untuk mengakses fitur tertentu dengan menggunakan beberapa widget
sederhana yang menopang aplikasi ini. Yang akan dibahas pertama kali
adalah file button_bg.xml. File ini dibuat untuk memberikan tampilan
background yang berbeda pada widget Button. Secara default, tampilan pada
Button sendiri berbentuk persegi panjang dengan ujung siku-siku, dan
berwarna abu-abu. File ini hanya sebagai tambahan untuk memvariasikan
design yang telah dibuat. Warna Button menggunakan warna hijau, dan ujung
perseginya menjadi sedikit rounded.

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayoutxmlns:android
d="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=".MainActivity">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="5dp"
android:text="@string/username"
android:textColor="#000000"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.004"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.029" />
Selanjutnya adalah pembahasan activity_main.xml yang merupakan file
layout yang dapat meng-edit desain dan meng-edit widget yang digunakan
dalam bentuk code. Tempat inilah yang dapat mengubah ingin menggunakan
layout yang seperti apa, antara Relative, Linear dan Constraint. Salah satu
widget yang dibahas di sini adalah TextView, dengan resources id-nya adalah
textView, nama penggantinya Username =, bisa dilihat hasil dari pengaturan
constraint pada widget tersebut secara otomatis akan muncul di bagian source
code-nya. Tambahan pada widget ini adalah membesarkan text yang berada
pada widget ini, dan text akan berwarna hitam dengan meng-input-kan kode
warnaya, yaitu #000000.

<EditText
android:id="@+id/editText"
android:layout_width="186dp"
android:layout_height="48dp"
android:layout_marginStart="84dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="16dp"
android:ems="10"
android:importantForAutofill="no"
android:inputType="textPersonName"
android:labelFor="@id/editText"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
Widget kedua adalah Plain Text atau EditText. Yang mana resource id-nya
adalah editText, tipe inputannya textPersonName.

<TextView
android:id="@+id/textView2"
android:layout_width="98dp"
android:layout_height="27dp"
android:layout_marginStart="12dp"
android:layout_marginTop="72dp"
android:text="@string/password"
android:textColor="#000000"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.03" />
Widget ketiga sama seperti yang pertama, yaitu TextView. Dengan
resource id-nya textView2, text yang akan ditampilkan adalah Password =.
Warna dan besarnya pun diatur sama seperti Text View pertama.

<EditText
android:id="@+id/editText2"
android:layout_width="185dp"
android:layout_height="49dp"
android:layout_marginStart="84dp"
android:layout_marginTop="72dp"
android:layout_marginEnd="16dp"
android:autofillHints=""
android:ems="10"
android:inputType="textPassword"
android:labelFor="@id/editText2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
tools:targetApi="o" />
Widget keempat juga Plain Text atau EditText, dengan resource id-nya
editText2. Tipe inputan widget ini adalah textPassword, yang mana ketika
memasukkan text pada widget ini akan berubah mnejadi Bullet seperti
password field pada umumnya.

<Button
android:id="@+id/button"
android:background="@drawable/button_bg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="116dp"
android:layout_marginTop="139dp"
android:layout_marginEnd="58dp"
android:text="@string/login"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
</androidx.constraintlayout.widget.ConstraintLayout>
Widget terakhir pada layout ini adalah Button, dengan resource id-nya
button. Di sini dapat dilihat bahwa widget ini memanggil layout button_bg
dari package drawable yang sebelumnya sudah dibuat khusus Button. Style
yang digunakan pada text Button ini adalah bold, agar terlihat lebih tegas
tampilannya. Text untuk Button ini adalah Login.

layout_login.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayoutxmlns: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">

<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="129dp"
android:layout_marginTop="118dp"
android:layout_marginEnd="129dp"
android:layout_marginBottom="263dp"
android:text="@string/parsing"
android:textColor="@android:color/black"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
Layout kedua adalah layout_login.xml untuk activity kedua. Layout ini juga
menggunakan Constraint, yang bisa diatur sesuai keinginan si pembuat.
Widget yang digunakan pertama kali adalah Text View, dengan resource id
textView3. Text View ini akan berubah dengan menggunakan message pada
source code class-nya.

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="116dp"
android:layout_marginTop="171dp"
android:background="@drawable/button_bg"
android:text="@string/call"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.003" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="116dp"
android:layout_marginTop="216dp"
android:background="@drawable/button_bg"
android:text="@string/web"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.055" />
</androidx.constraintlayout.widget.ConstraintLayout>
Widget kedua dan ketiga adalah Button, yang masing-masing memiliki
resource id button2 dengan text Call, dan button3 dengan text Web.

strings.xml
<resources>
<string name="app_name">LatihanGUI2</string>
<string name="username">Username =</string>
<string name="login">Login</string>
<string name="password">Password =</string>
<string name="web">Web</string>
<string name="call">Call</string>
<string name="parsing">TextView</string>
<string name="welcome">"Welcome !"</string>
</resources>
Selanjutnya adalah file resource value untuk string. Tempat ini adalah
untuk memasukkan dan meng-edit value setiap widget yang digunakan dalam
bentuk string. LatihanGUI2 adalah nama aplikasinya dengan id app_name,
Username milik textView dengan id username, Password milik textView2
dengan id password, Login milik button dengan id login, Web milik button2
dengan id web, Call milik button3 dengan id call, TextView milik textView3
dengan id parsing.

LoginActivity.java
package dbc118037.zara.Tugas2;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
Masuk ke dalam source code LoginActivity yang akan menjalankan
activity kedua. Sebelum itu, di sini meng-import beberapa widget yang akan
digunakan. Diantaranya adalah AppCompatActivity yang merupakan library
default dari program ketika mendesain aplikasi sebelumnya. Intent di sini di-
import agar dapat menggunakannya untuk berpindah halaman. Kemudian Uri
adalah serangkaian karakter yang secara jelas mengidentifikasi sumber daya
tertentu. Untuk menjamin keseragaman, semua URI mengikuti seperangkat
aturan sintaks yang telah ditentukan. Bundle di sini fungsinya untuk lebih
mudah merilis aplikasi yang dibuat ini. View adalah objek yang sesuatu dari
layar dan dapat berinteraksi dengan pengguna. Selanjutnya adalah import
widget Button, dan TextView.

public class LoginActivity extends AppCompatActivity {


private String user;
private String KEY_NAME = "USER";

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

TextView mView = (TextView)findViewById(R.id.textView3);


Button mButton2 = (Button)findViewById(R.id.button2);
Button mButton3 = (Button)findViewById(R.id.button3);
Masuk ke dalam method intinya, yaitu public class LoginActivity yang
mewariskan AppCompatActivity dengan keyword extends. Kemudian meng-
override method onCreate yang merupakan kondisi awal saat Activity baru
diciptakan. Dimana layout yang dibaca oleh setContentView adalah
login_activity. Di dalamnya mendeklarasi widget yang digunakan, TextView
jadi mView, Button menjadi mButton2, dan mButton3. Agar widget
sebelumnya dapat diakses di sini menggunakan findViewById yang gunanya
untuk mencari widget tersebut menggunakan id yang sebelumnya sudah
dimasukkan pada file login_activity.
Bundle extras = getIntent().getExtras();
user = extras.getString(KEY_NAME);
mView.setText("Welcome, "+user+" !");

mButton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String number = "012345678";
Intent callIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:
“number));
startActivity(callIntent);}
});

mButton3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String url = "http://www.google.com";
Intent webIntent = new Intent(Intent.ACTION_VIEW);
webIntent.setData(Uri.parse(url));
startActivity(webIntent);}
}); } }
Pada blok ini menjelaskan tampilannya seperti apa dan kegunaannya di
activity kedua. Text View pada activity ini ketika dijalankan akan
menampilkan pesan dengan mengambil nilai dari activity pertama
menggunakan getIntent().getExtras(). Selanjutnya ada mButton2 memakai
fungsi setClickOnListener gunanya adalah untuk melakukan sebuah aksi
terhadap mButton2, yaitu onClick. Dimana ketika mengklik Button tersebut
akan mengeksekusi pernyataan yang berada di dalam fungsi ini. Pertama-
tama adalah mendeklarasikan number dengan nilai yang sudah dimasukkan
012345678 bertipe data String. Kemudian membuat objek callIntent untuk
pemanggilan atau berpindah ke ACTION_DIAL dan menggunakan Uri.parse
untuk memasukkannomor yang ingin ditelfon dari variabel number tadi.
Untuk memulai activity-nya menggunakan startActivity(callIntent).
mButton3 menggunakan fungsi yang sama seperti mButton2, yang kali ini
mendeklarasikan url dengan data yang langsung dimasukkan
www.google.com. Objek webIntent akan berpindah ke browser dengan
ACTION_VIEW. Intent ini men-set datanya menggunakan Uri.parse dengan
variabelnya adalah url. Menuliskan startActivity(webIntent) untuk memulai
perpindahannya.

MainActivity.java
package dbc118037.zara.Tugas2;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivityextends AppCompatActivity {


private String KEY_NAME = "USER";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button mButton = (Button) findViewById(R.id.button);
Selanjutnya adalah pembahasan MainActivity yang akan menjalankan
aplikasi secara keseluruhan. Sebelum itu, di sini meng-import beberapa
widget yang akan digunakan. Diantaranya adalah AppCompatActivity,
Intent, Bundle, View, Button, EditText, dan Toast. Masuk ke dalam method
utamanya, yaitu public class MainActivity yang mewariskan
AppCompatActivity dengan keyword extends. Kemudian meng-override
method onCreate yang merupakan kondisi awal saat Activity baru
diciptakan. Layout yang akan dibaca oleh setContentView adalah
activity_main. Di dalamnya mendeklarasi widget Button menjadi mButton.
Agar Button dapat diakses di sini menggunakan findViewById yang gunanya
untuk mencari widget tersebut menggunakan id yang sebelumnya sudah
dimasukkan pada file activity_main.

mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String user = "Zara";
String pass = "Zara";
String mUser = ((EditText)
findViewById(R.id.editText)).getText().toString();
String mPass = ((EditText)
findViewById(R.id.editText2)).getText().toString();

if (user.matches(mUser) &&pass.matches(mPass)) {
Intent i = new Intent(MainActivity.this, LoginActivity.class);
i.putExtra(KEY_NAME, user);
startActivity(i);
} else {
Toast.makeText(MainActivity.this, "Username and Password
Invalid", Toast.LENGTH_LONG).show();
} } }); }
}
Selanjutnya ada mButton2 memakai fungsi setClickOnListener gunanya
adalah untuk melakukan sebuah aksi terhadap mButton, yaitu onClick.
Pertama-tama adalah mendeklarasikan user dan pass dengan nilai yang sudah
dimasukkan “Zara” bertipe data String. Di sini juga membuatkan obek untuk
editText dan editText2, yaitu mUser dan mPass, yang ketika pengguna
memasukkan nilai untuk widget tersebut akan diambil nilainya menggunakan
getText().toString(). Button inilah yang akan menentukan apakah data yang
dimasukkan sudah benar atau tidak dibantu dengan percabangan if..else. Jika
user cocok dengan inputan mUser, dan pass juga cocok dengan inputan
mPass, maka akan berpindah menggunakan intent ke activity kedua dengan
mengakses LoginActivity.class. Selain dari ini maka akan menampilkan
Toast yang membuat pop-out text dengan pilihan durasi long yang sedikit
lebih lama dari short. Pesan yang ditampilkan adalah Username dan
Password salah karena tidak cocok dengan nilai dari user dan pass.
BAB III
KESIMPULAN

Kesimpulan yang dapat diambil oleh praktikan dari praktikum modul 5 ini
adalah sebagai berikut:
1. Pada suatu aplikasi bisa memiliki banyak activity,yang mana tampilannya pun
akan berubah mengikuti layout milik activity itu sendiri.
2. Perpindahan activity atau halaman tampilan dibantu oleh intent.
3. Intent terdapat dua jenis, yaitu Explicit dan Implicit. Explicit sendiri adalah
yang paling sederhana untuk memahami intent, yang mana tujuannya untuk
berpindah halaman ke activity lain yang telah dibuat di dalam aplikasi
tersebut.
4. Untuk Implicit, kegunaannya untuk memanggil fungsi activity di luar aplikasi
yang sudah ada di fungsi internal android. Pada program yang di bahas juga
menggunakan intent ini, dengan memanggil Dialer Call, dan Open Browser.
5. Kedua intent ini dapat digunakan secara bebas sesuai kebutuhan pembuat
aplikasi.
DAFTAR PUSTAKA

Dosen Teknik Informatika. 2019. Praktikum Pemrograman Berorientasi Objek.


Universitas Palangka Raya. Fakultas Teknik. Jurusan Teknik Informatika.
LAMPIRAN

Gambar 1. Membuat Project Baru (LatihanGUI2)

Gambar 2. Membuat Desain Pada Activity Pertama (activity_main.xml)

Gambar 3. Membuat Desain Pada Activity Kedua (login_activity.xml)


Gambar 4. Tampilan Awal Running Aplikasi LatihanGUI2

Gambar 5. Memasukkan Data Pengguna

Gambar 6. Tampilan Activity Kedua Ketika Pengguna Berhasil Login


Gambar 7. Perpindahan Ketika Mengklik Button “Call” dan “Web”

Gambar 8. Input Program LatihanGUI2 (button_bg.xml)


Gambar 9. Input Program LatihanGUI2 (activity_main.xml)
Gambar 10. Input Program LatihanGUI2 (login_activity.xml)

Gambar 11. Input Program LatihanGUI2 (strings.xml)

Gambar 12. Input Program LatihanGUI2 (LoginActivity.java)


Gambar 13. Input Program LatihanGUI2 (MainActivity.java)
LAPORAN RENCANA PRAKTIKUM
PEMROGRAMAN BERORIENTASI OBJEK

Nama : Zara Ainun Safira


NIM : DBC 118 037
Kelas :D
Modul : V (INTENT)

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKA RAYA
2019
MODUL V
INTENT

Activity_main.java
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayoutxmlns:android="http://sche
mas.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=".MainActivity">

<EditText
android:id="@+id/edit_message"
android:layout_width="274dp"
android:layout_height="59dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="5dp"
android:autofillHints=""
android:labelFor="@id/edit_message"
android:inputType="textPersonName"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.39"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
tools:targetApi="o" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="sendMessage"
android:text="@string/send"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.076"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.224"/>

</androidx.constraintlayout.widget.ConstraintLayout>
String.xml
<resources>
<string name="app_name">MyFirstApp</string>
<string name="edit_message">Enter a message</string>
<string name="button_send">Send</string>
<string name="action_settings">Settinga</string>
<string name="title_activity_main">MainActivity</string>
<string name="title_activity_display_message">My Message</string>
<string name="hello_world">Hello world!</string>
<string name="textview">TextView</string>
<string name="send">Send</string>
<string name="menu">my menu Item!</string>
</resources>

MainActivity.java
package modulpbo5.tugas1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Menu;
import android.widget.EditText;

public class MainActivity extends Activity {

public final static String EXTRA_MESSAGE =


"modulpbo5.myfirstapp.MESSAGE";

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

@Override
public booleanonCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.menu, menu);

return true;}

public void sendMessage(View view) {


Intent intent = new Intent(MainActivity.this,
DisplayMessageActivity.class);
EditTexteditText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);}}

menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/menu"
app:showAsAction="never"/>

</menu>

DisplayMessageActivity.java
package modulpbo5.tugas1;

import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.content.Intent;
import android.view.MenuItem;
import android.widget.TextView;

import androidx.core.app.NavUtils;

public class DisplayMessageActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);
Intent intent = getIntent();
String message =
intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

TextViewtextView = new TextView(this);


textView.setTextSize(40);
textView.setText(message);
setContentView(textView);
setupActionBar();}

private void setupActionBar(){

if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB){
getActionBar().setDisplayHomeAsUpEnabled(true);}}

public booleanonOptionsItemSelected(MenuItem item){


switch(item.getItemId()){
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;}

return super.onOptionsItemSelected(item);}}

Gambar 1. Output Aplikasi MyFirstApp Menggunakan Emulator

Anda mungkin juga menyukai