hirupmotekar.comhirupmotekar.com/.../2017/11/pertemuan-ke-5-pmo-klompok-3… · web viewakan...

22
TUGAS PERTEMUAN KE 5 PEMOGRAMAN MOBILE Disusun Untuk Memenuhi Tugas : Mata Kuliah : Pemrogaman Mobile 2 Nama : Muhammad Hafidz A. 15.11.0195 Dwi Andi Kurniawan 15.11.0214 Oftriah 15.11.0237 Dilla Alfianur Kumalasari 15.11.0238 Hifari Agarica 15.11.0240 Kelas : TI 15 C Program Studi : Teknik Informatika STMIK AMIKOM PURWOKERTO

Upload: others

Post on 26-Dec-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

TUGAS PERTEMUAN KE 5

PEMOGRAMAN MOBILE

Disusun Untuk Memenuhi Tugas :

Mata Kuliah : Pemrogaman Mobile 2

Nama : Muhammad Hafidz A. 15.11.0195

Dwi Andi Kurniawan 15.11.0214

Oftriah 15.11.0237

Dilla Alfianur Kumalasari 15.11.0238

Hifari Agarica 15.11.0240

Kelas : TI 15 C

Program Studi : Teknik Informatika

STMIK AMIKOM PURWOKERTO

JL.LET. JEND . POL SOEMARTO (DEPAN SPN) PURWOKERTO

2017 / 2018

Page 2: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

FRAGMENT

Fragment mewakili perilaku atau bagian dari antarmuka pengguna dalam Activity.

Anda bisa mengombinasikan beberapa fragmen dalam satu aktivitas untuk membangun UI

multipanel dan menggunakan kembali sebuah fragmen dalam beberapa aktivitas. Anda bisa

menganggap fragmen sebagai bagian modular dari aktivitas, yang memiliki daur hidup

sendiri, menerima kejadian masukan sendiri, dan yang bisa Anda tambahkan atau hapus saat

aktivitas berjalan (semacam "sub aktivitas" yang bisa digunakan kembali dalam aktivitas

berbeda).

Fragmen harus selalu tersemat dalam aktivitas dan daur hidup fragmen secara

langsung dipengaruhi oleh daur hidup aktivitas host-nya. Misalnya, saat aktivitas dihentikan

sementara, semua fragmen di dalamnya juga dihentikan sementara, dan bila aktivitas

dimusnahkan, semua fragmen juga demikian. Akan tetapi, saat aktivitas berjalan

(dalam status daur hidup dilanjutkan, Anda bisa memanipulasi setiap fragmen secara

terpisah, seperti menambah atau membuangnya. Saat melakukan transaksi fragmen, Anda

juga bisa menambahkannya ke back-stack yang dikelola oleh aktivitas —setiap entri back-

stack merupakan catatan transaksi fragmen yang terjadi. Dengan back-stack pengguna dapat

membalikkan transaksi fragmen (mengarah mundur), dengan menekan tombol Kembali.

Bila Anda menambahkan fragmen sebagai bagian dari layout aktivitas, fragmen itu

akan berada dalam ViewGroup di hierarki tampilan aktivitas tersebut dan fragmen

mendefinisikan layout tampilannya sendiri. Anda bisa menyisipkan fragmen ke dalam layout

aktivitas dengan mendeklarasikan fragmen dalam file layout aktivitas, sebagai

elemen <fragment>, atau dari kode aplikasi dengan menambahkannya ke ViewGroup yang

ada. Akan tetapi, fragmen tidak harus menjadi bagian dari layout aktivitas; Anda juga bisa

menggunakan fragmen tanpa UI-nya sendiri sebagai pekerja tak terlihat untuk aktivitas

tersebut.

MEMBUAT FRAGMENT

Untuk membuat fragmen, Anda harus membuat subkelas Fragment (atau subkelasnya

yang ada). Kelas Fragment memiliki kode yang mirip seperti Activity. Kelas ini memiliki

metode callback yang serupa dengan aktivitas, seperti onCreate(), onStart(), onPause(),

dan onStop(). Sebenarnya , jika Anda mengkonversi aplikasi Android saat ini untuk

Page 3: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

menggunakan fragmen, Anda mungkin cukup memindahkan kode dari metode callback

aktivitas ke masing-masing metode callback fragmen.

Biasanya, Anda harus mengimplementasikan setidaknya metode daur hidup berikut ini:

1. onCreate()

Sistem akan memanggilnya saat membuat fragmen. Dalam implementasi, Anda harus

melakukan inisialisasi komponen penting dari fragmen yang ingin dipertahankan saat

fragmen dihentikan sementara atau dihentikan, kemudian dilanjutkan.

2. onCreateView()

Sistem akan memanggilnya saat fragmen menggambar antarmuka penggunanya untuk

yang pertama kali. Untuk menggambar UI fragmen, Anda harus

mengembalikan View dari metode ini yang menjadi akar layout fragmen. Hasil yang

dikembalikan bisa berupa null jika fragmen tidak menyediakan UI.

3. onPause()

Sistem akan memanggil metode ini sebagai indikasi pertama bahwa pengguna sedang

meninggalkan fragmen Anda (walau itu tidak selalu berarti fragmen sedang

Page 4: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

dimusnahkan). Inilah biasanya tempat Anda harus mengikat setiap perubahan yang

harus dipertahankan selepas sesi pengguna saat ini (karena pengguna mungkin tidak

kembali).

Kebanyakan aplikasi harus mengimplementasikan setidaknya tiga metode ini untuk setiap

fragmen, namun ada beberapa metode callback lain yang juga harus Anda gunakan untuk

menangani berbagai tahap daur hidup fragmen. Semua metode callback daur hidup akan

dibahas secara lebih detail, di bagian tentang Menangani Daur Hidup Fragmen.

Ada juga beberapa subkelas yang mungkin perlu diperpanjang, sebagai ganti kelas

basis Fragment:

1. DialogFragment

Menampilkan dialog mengambang. Penggunaan kelas ini untuk membuat dialog

merupakan alternatif yang baik dari penggunaan metode helper dialog di

kelas Activity, karena Anda bisa menyatukan dialog fragmen ke dalam back-stack

fragmen yang dikelola oleh aktivitas, sehingga pengguna bisa menutup ke fragmen

yang ditinggalkan.

2. ListFragment

Menampilkan daftar item yang dikelola oleh adaptor

(misalnya SimpleCursorAdapter), serupa dengan ListActivity. Menampilkan beberapa

metode pengelolaan tampilan daftar seperti callback onListItemClick() untuk

menangani kejadian klik.

3. PreferenceFragment

Menampilkan hierarki objek Preference sebagai daftar, serupa

dengan PreferenceActivity. Hal ini berguna saat membuat aktivitas "setelan" untuk

aplikasi Anda.

MENAMBAHKAN FRAGMENT PADA ACTIVITY

Biasanya, fragmen berkontribusi pada sebagian UI ke aktivitas host, yang disematkan sebagai

bagian dari hierarki tampilan keseluruhan aktivitas. Ada dua cara untuk menambahkan

fragmen ke layout aktivitas:

Page 5: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

Deklarasikan fragmen dalam file layout aktivitas.

Dalam hal ini, Anda bisa menetapkan properti layout fragmen seakan-akan sebuah

tampilan. Misalnya, berikut ini adalah file layout untuk aktivitas dengan dua fragmen:

<?xml version="1.0" encoding="utf-8"?>

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

    android:orientation="horizontal"

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    <fragment android:name="com.example.news.ArticleListFragment"

            android:id="@+id/list"

            android:layout_weight="1"

            android:layout_width="0dp"

            android:layout_height="match_parent" />

    <fragment android:name="com.example.news.ArticleReaderFragment"

            android:id="@+id/viewer"

            android:layout_weight="2"

            android:layout_width="0dp"

            android:layout_height="match_parent" />

</LinearLayout>

Atribut android:name dalam <fragment> menetapkan kelas Fragment untuk dibuat

instance-nya dalam layout.

Saat sistem membuat layout aktivitas, sistem membuat instance setiap fragmen

sebagaimana yang ditetapkan dalam layout dan memanggil

metode onCreateView() masing-masing, untuk mengambil setiap fragmen. Sistem akan

menyisipkan View yang dikembalikan oleh fragmen secara langsung, menggantikan

elemen <fragment>.

Catatan: Setiap fragmen memerlukan identifier unik yang bisa digunakan sistem untuk

memulihkan fragmen jika aktivitas dimulai kembali (dan identifier yang bisa digunakan

menangkap fragmen untuk melakukan transaksi, seperti membuangnya). Ada tiga cara

untuk memberikan ID bagi fragmen:

o Menyediakan atribut android:id bersama ID unik.

Page 6: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

o Menyediakan atribut android:tag bersama string unik.

o Jika Anda tidak menyediakan dua hal tersebut, sistem akan menggunakan ID tampilan

kontainer.

Atau, secara programatis tambahkan fragmen ke ViewGroup yang ada.

Kapan saja saat aktivitas berjalan, Anda bisa menambahkan fragmen ke layout aktivitas.

Anda cukup menetapkan ViewGroup di tempat memasukkan fragmen.

Untuk membuat transaksi fragmen dalam aktivitas (seperti menambah, membuang, atau

mengganti fragmen), Anda harus menggunakan API dari FragmentTransaction. Anda bisa

mengambil instance FragmentTransaction dari Activity seperti ini:

FragmentManager fragmentManager = getFragmentManager();

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

Selanjutnya Anda bisa menambahkan fragmen menggunakan metode add(), dengan

menetapkan fragmen yang akan ditambahkan dan tampilan tempat menyisipkannya.

Misalnya:

ExampleFragment fragment = new ExampleFragment();

fragmentTransaction.add(R.id.fragment_container, fragment);

fragmentTransaction.commit();

Argumen pertama yang diteruskan ke add() adalah ViewGroup tempat fragmen harus

dimasukkan, yang ditetapkan oleh ID sumber daya, dan parameter kedua merupakan

fragmen yang akan ditambahkan.

Setelah membuat perubahan dengan FragmentTransaction, Anda harus

memanggil commit() untuk menerapkan perubahan.

MEMBUAT UI FLEXIBLE DENGAN FRAGMENT

Flexible UI adalah Flexible UI di Android Studio, bagaimana aplikasi Android dapat

dibangun dengan menggunakan lebih dari satu fragment dan cukup memiliki 1 Activity.

Contoh Flexible UI dalam fragment :

Buatlah Layout pada Activity_main.xml dengan kodingan seperti dibawah:

Page 7: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

Setelah itu masukan kode pada MainActivity.Java seperti dibawah :

Buatlah layout baru bernama Fragmentfrist.xml dan isikan seperti kode dibawah ini :

Page 8: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

Buatlah java class baru FirstFragment.Java dan isikan kode seperti dibawah :

Buatlah layout baru bernama fragment_second.xml kemudian tambahkan kode seperti dibawah ini :

Page 9: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

Bualah java class baru SecondFragment.java setelah itu isikan kode seperti dibawah:

Buatlah layout baru bernama Fragment_third.xml kemudian isilah kode seperti dibawah :

Page 10: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

Hasil ketika Program dijalankan :

Page 11: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

KOMUNIKASI ANTAR FRAGMENT

Berkomunikasi dengan Aktivitas

Meskipun Fragment diimplementasikan sebagai objek yang tidak bergantung

pada Activity dan bisa digunakan dalam banyak aktivitas, instance tertentu dari fragmen

secara langsung terkait dengan aktivitas yang dimuatnya.

Khususnya, fragmen bisa mengakses instance Activity dengan getActivity() dan dengan

mudah melakukan tugas-tugas seperti mencari tampilan dalam layout aktivitas:

View listView = getActivity().findViewById(R.id.list);

Demikian pula, aktivitas Anda bisa memanggil metode di fragmen dengan mendapatkan

referensi ke Fragment dari FragmentManager,

menggunakan findFragmentById() atau findFragmentByTag(). Misalnya:

ExampleFragment fragment = (ExampleFragment)

getFragmentManager().findFragmentById(R.id.example_fragment);

Komunikasi Antar Fragment

Berikut beberapa hal yang perlu kamu ketahui untuk membuat fragment saling

berkomunikasi:

1. Jangan langsung referensi dari fragment ke fragment lainnya.

2. Buatlah Interface yang berisikan method yang akan bertindak sebagai pembawa suatu

event.

3. Implements interface pada activity

4. Fragment 1 menggunakan interface untuk mengirim pesan.

5. Pada activity, method interface yang telah diimplementasikan dapat direferensikan ke

fragment 2 dan melakukan perubahan pada sesuai method yang diberikan.

Langkah langkah:

1. Buatlah dua java class baru, lalu berinama FragmentA dan FragmentB

Page 12: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi
Page 13: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

2. Buat juga 2 Layout baru dan berinama fragment_a dan fragment_b Pada layout fragment_a kita menambahkan sebuha button

Pada layout fragment_b kita menambahkan TextView

Page 14: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

3. Buatlah Interface dengan nama Communicator ,Interface ini akan digunakan untuk menghubungkan antara FragmentA dan Fragment B

4. Pada Layout activity_main masukan layout fragment

Page 15: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

5. Pada MainActivity.java ketikan coding dibawah ini

6. Hasilnya

Page 16: hirupmotekar.comhirupmotekar.com/.../2017/11/Pertemuan-Ke-5-PMO-Klompok-3… · Web viewAkan tetapi, saat aktivitas berjalan (dalam status daur hidup dilanjutkan, Anda bisa memanipulasi

Daftar Pustaka

“Fragments”, https://developer.android.com/guide/components/fragments.html?hl=id

diakses pada 28 Oktober 2017

“Tutorial Komunikasi Antar Fragments”, https://blog.teknorial.com/tutorial-komunikasi-

antar-fragment/ diakses pada 28 Oktober 2017

“Fragments UI”, https://developer.android.com/training/basics/fragments/fragment-

ui.html?hl=id diakses pada 30 Oktober 2017

“Belajar Mengenal Perbedaan Activity dan Fragment Android”,

http://www.okedroid.com/2017/03/belajar-mengenal-perbedaan-activity-dan-

fragment-android.html diakses pada 2 November 2017

“Penggunaan Fragment dalam Flexible UI di Android Studio”,

http://sniptcode.com/penggunaan-fragment-dalam-flexible-ui-di-android-studio/

diakses pada 1 November 2017